如何在Roblox中实现YouTube订阅数差值的控制台显示?
实现订阅数差值打印功能
要实现订阅数差值的控制台输出,核心是记录每次获取的订阅数并与上一次的值做对比。以下是修改后的完整代码:
local HttpService = game:GetService("HttpService") local API_KEY = "SECRET" -- 替换为你的API密钥 local CHANNEL_ID = "UCA4yZCVHlHZVknfesTU3XOg" -- 替换为你的频道ID local fonts = { Enum.Font.Arcade, Enum.Font.Arial, Enum.Font.ArialBold, Enum.Font.Bangers, Enum.Font.Bodoni, Enum.Font.Cartoon, Enum.Font.Code, Enum.Font.Creepster, Enum.Font.DenkOne, Enum.Font.Fantasy, Enum.Font.Fondamento, Enum.Font.FredokaOne, Enum.Font.Garamond, Enum.Font.Gotham, Enum.Font.GothamBlack, } -- 全局变量保存上一次的订阅数,初始为nil local lastSubscriberCount = nil local function getChannelStats() print("SENDING REQUEST") local success, result = pcall(function() local url = string.format("https://www.googleapis.com/youtube/v3/channels?part=statistics&id=%s&key=%s", CHANNEL_ID, API_KEY) local response = HttpService:GetAsync(url) local data = HttpService:JSONDecode(response) -- 将API返回的字符串订阅数转为数字 local currentSubscriberCount = tonumber(data.items[1].statistics.subscriberCount) script.Parent.Text = tostring(currentSubscriberCount) script.Parent.Font = fonts[math.random(1, #fonts)] -- 计算并打印差值 if lastSubscriberCount ~= nil then local difference = currentSubscriberCount - lastSubscriberCount print(string.format("订阅数差值: %d", difference)) end -- 更新上一次的订阅数为当前值 lastSubscriberCount = currentSubscriberCount end) if not success then warn("获取频道数据出错:", result) --script.Parent.Text = "加载数据失败。" end end -- 初始调用并每2秒刷新一次 getChannelStats() while true do wait(2) getChannelStats() end
关键修改点说明:
- 添加全局变量
lastSubscriberCount用于存储上一次获取的订阅数,初始值为nil,避免第一次运行时出现无效差值。 - 将API返回的
subscriberCount(字符串类型)通过tonumber()转为数字,确保差值计算的正确性。 - 在获取当前订阅数后,判断
lastSubscriberCount是否已初始化,若已初始化则计算差值并通过print()输出到控制台。 - 每次成功获取数据后,更新
lastSubscriberCount为当前值,为下一次对比做准备。
内容的提问来源于stack exchange,提问作者PatoFlamejanteTV
相关产品推荐
相关产品推荐

