bayuMIR/Mirserver/Mir200/Envir/QuestDiary/游戏功能/A0_通用类/限时冲榜.lua

113 lines
2.8 KiB
Lua

XianShiChongBangOBJ = Up_BaseClass:new()
XianShiChongBangOBJ._name = "XianShiChongBangOBJ"
-- 配置文件
XianShiChongBangOBJ.cfg = Func.require("cfg_限时冲榜")
-- ---* 加入上线同步数据
Player.sycCfg[XianShiChongBangOBJ._name] = XianShiChongBangOBJ.cfg
for i, v in ipairs(XianShiChongBangOBJ.id or {}) do
Npc.clicknpcCfg[v] = XianShiChongBangOBJ
end
XianShiChongBangOBJ.rank = {
VarCfg.Player.int["攻击力排行榜"],
VarCfg.Player.int["九秘排行榜"],
-- VarCfg.Player.int["首爆统计"]
}
for i, v in ipairs(XianShiChongBangOBJ.rank) do
RegRankVar(v, 0, 1)
end
XianShiChongBangOBJ.rankStr = {
VarCfg.sys.str["攻击冲榜"],
VarCfg.sys.str["九秘冲榜"],
-- VarCfg.sys.str["首爆冲榜"]
}
XianShiChongBangOBJ.name = {
"战力榜",
"神魔榜",
-- "首爆榜",
}
function XianShiChongBangOBJ:getrank(actor, p1, p2, p3, data)
if not data or not data[1] then
return
end
local id = tonumber(data[1].page)
if not id then
return
end
if self.rank[id] then
local rankCfg = GetRankVar(self.rank[id], 10, 0) or {}
local data = {}
data.other = {
Rank = rankCfg,
SeverTime = Sys.getint(VarCfg.sys.int["开区时间戳"]) or 0,
}
Message:SubLink(actor, self._name .. "_sync", data)
end
end
function XianShiChongBangOBJ:givesrank(actor, p1, p2, p3, data)
if not data or not data[1] then
return
end
local id = tonumber(data[1].id)
local rankId = tonumber(data[1].rankid)
if not id or not rankId then
return
end
if not self.rank[rankId] then
return Func.sendmsg9(actor, "[限时冲榜]:#70|排行榜不存在!")
end
local SeverTime = Sys.getint(VarCfg.sys.int["开区时间戳"]) or 0
if SeverTime == 0 then
return
end
if os.time() < SeverTime + 86400 then
return Func.sendmsg9(actor, "[限时冲榜]:#70|还未到活动截止时间,开区24小时后可领取!")
end
local rankCfg = GetRankVar(self.rank[rankId], 10, 0) or {}
local rankData = rankCfg[id]
local rankName = rankData and rankData[2]
if not rankName or rankName ~= Player.getname(actor) then
return Func.sendmsg9(actor, "[限时冲榜]:#70|请不要领取不该是你的奖励!")
end
local rewardCfg = self.cfg[id] and self.cfg[id]["rank_" .. rankId]
if not rewardCfg then
return Func.sendmsg9(actor, "[限时冲榜]:#70|奖励配置不存在!")
end
local lingqu = Sys.getkeycount(self.rankStr[rankId], id)
if lingqu then
return Func.sendmsg9(actor, "[限时冲榜]:#70|请不要重复领取!")
end
Func.mailitem(actor, rewardCfg, string.format("%s-[第%d名]奖励", self.name[rankId], id))
Sys.setkeycount(self.rankStr[rankId], id, Player.getname(actor))
end
XianShiChongBangOBJ.allowFunc = {"getrank", "givesrank"}
return XianShiChongBangOBJ