113 lines
2.8 KiB
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
|