bayuMIR/Mirserver/Mir200/Envir/QuestDiary/游戏功能/A0_通用类/限时冲榜.lua
2026-06-18 02:06:14 +08:00

109 lines
2.5 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)
local id = data[1].page
if not data or 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)
local id = data[1].id
local rankId = data[1].rankid
if not data or not id or not rankId then
return
end
LOGPrint(rankId,id)
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 {}
if rankCfg[id] ~= Player.getname(actor) then
Func.sendmsg9(actor,"[限时冲榜]:#70|请不要领取不该是你的奖励!")
return
end
local lingqu = Sys.getkeycount(self.rankStr[rankId]) or nil
if lingqu == nil and lingqu == Player.getname(actor) then
Func.sendmsg9(actor,"[限时冲榜]:#70|请不要重复领取!")
return
end
Func.mailitem(actor,self.cfg[id]["rank_"..rankId],string.format("%s-[第%d名]奖励",self.name[rankId],id))
Sys.setkeycount(self.rankStr[rankId], id,Player.getname(actor))
end
XianShiChongBangOBJ.allowFunc = {"getrank", "givesrank"}
return XianShiChongBangOBJ