bayuMIR/Mirserver/Mir200/Envir/QuestDiary/游戏功能/A0_通用类/活动大厅.lua

611 lines
22 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

HuodongzhongxinOBJ = Up_BaseClass:new()
HuodongzhongxinOBJ._name = "HuodongzhongxinOBJ"
---* 注册变量排行
RegRankVar("INT_大乱斗积分", 0, 1, 100, 0)
HuodongzhongxinOBJ.DaLuanDouRewardCfg = {
[1] = { rankName = "第一名", rewardText = "金币200w 千年玄石500 混沌碎片宝箱*3", items = { { "金币", 2000000, 0 }, { "千年玄石", 500, 0 }, { "混沌碎片宝箱", 3, 0 } } },
[2] = { rankName = "第二名", rewardText = "金币150w 千年玄石300 混沌碎片宝箱*2", items = { { "金币", 1500000, 0 }, { "千年玄石", 300, 0 }, { "混沌碎片宝箱", 2, 0 } } },
[3] = { rankName = "第三名", rewardText = "金币100w 千年玄石200 混沌碎片宝箱*1", items = { { "金币", 1000000, 0 }, { "千年玄石", 200, 0 }, { "混沌碎片宝箱", 1, 0 } } },
[4] = { rankName = "第四名", rewardText = "金币80w 千年玄石100 100万经验卷*20", items = { { "金币", 800000, 0 }, { "千年玄石", 100, 0 }, { "100万经验卷", 20, 0 } } },
[5] = { rankName = "第五名", rewardText = "金币60w 千年玄石60 100万经验卷*15", items = { { "金币", 600000, 0 }, { "千年玄石", 60, 0 }, { "100万经验卷", 15, 0 } } },
[6] = { rankName = "第六名", rewardText = "金币50w 千年玄石50 100万经验卷*10", items = { { "金币", 500000, 0 }, { "千年玄石", 50, 0 }, { "100万经验卷", 10, 0 } } },
[7] = { rankName = "第七名", rewardText = "金币40w 千年玄石50 100万经验卷*10", items = { { "金币", 400000, 0 }, { "千年玄石", 50, 0 }, { "100万经验卷", 10, 0 } } },
[8] = { rankName = "第八名", rewardText = "金币30w 千年玄石50 100万经验卷*10", items = { { "金币", 300000, 0 }, { "千年玄石", 50, 0 }, { "100万经验卷", 10, 0 } } },
[9] = { rankName = "第九名", rewardText = "金币20w 千年玄石50 100万经验卷*10", items = { { "金币", 200000, 0 }, { "千年玄石", 50, 0 }, { "100万经验卷", 10, 0 } } },
[10] = { rankName = "第十名", rewardText = "金币10w 千年玄石50 100万经验卷*10", items = { { "金币", 100000, 0 }, { "千年玄石", 50, 0 }, { "100万经验卷", 10, 0 } } },
[0] = { rankName = "参与奖", rewardText = "金币5w 千年玄石50 100万经验卷*10", items = { { "金币", 50000, 0 }, { "千年玄石", 50, 0 }, { "100万经验卷", 10, 0 } } },
}
function HuodongzhongxinOBJ:getDaluandouReward(rank)
rank = tonumber(rank) or 0
if rank >= 1 and rank <= 10 then
return self.DaLuanDouRewardCfg[rank]
end
return self.DaLuanDouRewardCfg[0]
end
function HuodongzhongxinOBJ:buildDaluandouRewardMsg()
local str = { "", "大乱斗奖励:" }
for i = 1, 10 do
local cfg = self:getDaluandouReward(i)
table.insert(str, string.format("%s%s", cfg.rankName, cfg.rewardText))
end
local joinCfg = self:getDaluandouReward(0)
table.insert(str, string.format("%s%s", joinCfg.rankName, joinCfg.rewardText))
return table.concat(str, "\n")
end
function HuodongzhongxinOBJ:getDaluandouRewardItems(rewardCfg)
local items = {}
for _, item in ipairs(rewardCfg.items or {}) do
table.insert(items, table.concat(item, "#"))
end
return table.concat(items, "&")
end
function HuodongzhongxinOBJ:getDaluandouRewardItemList(rewardCfg)
local items = {}
for _, item in ipairs(rewardCfg.items or {}) do
table.insert(items, {
name = item[1],
count = item[2],
bind = item[3] or 0,
})
end
return items
end
function HuodongzhongxinOBJ:getDaluandouRewardList()
local list = {}
for i = 1, 10 do
local cfg = self:getDaluandouReward(i)
table.insert(list, { rank = i, rankName = cfg.rankName, rewardText = cfg.rewardText, rewardItems = self:getDaluandouRewardItemList(cfg) })
end
local joinCfg = self:getDaluandouReward(0)
table.insert(list, { rank = 0, rankName = joinCfg.rankName, rewardText = joinCfg.rewardText, rewardItems = self:getDaluandouRewardItemList(joinCfg) })
return list
end
function HuodongzhongxinOBJ:filterDaluandouRank(rankList)
local data = {}
for _, v in ipairs(rankList or {}) do
local name = v[2]
local jifen = tonumber(v[3]) or 0
if name and name ~= "" and jifen > 0 then
local rank = #data + 1
local rewardCfg = self:getDaluandouReward(rank)
table.insert(data, { rank, name, jifen, rewardCfg.rewardText })
if rank >= 10 then
break
end
end
end
return data
end
function HuodongzhongxinOBJ:sendDaluandouReward(name, rank, jifen)
if not name or name == "" or (tonumber(jifen) or 0) <= 0 then
return
end
local rewardCfg = self:getDaluandouReward(rank)
local rewards = self:getDaluandouRewardItems(rewardCfg)
if rewards == "" then
return
end
local title = "勇者大乱斗奖励"
local memo = string.format("您在勇者大乱斗中获得%s积分%d请查收奖励", rewardCfg.rankName, tonumber(jifen) or 0)
sendmail("#" .. name, 77, title, memo, rewards)
end
-- 配置文件
HuodongzhongxinOBJ.cfg = {
[1] = {
name = "圣域夺宝",
msg = [[每日 10点-11点、 16点-17点开启圣域夺宝。
地图内刷新超多不同级别的boss爆率超高等你来战。
活动结束后将会强制传送出地图。
进入条件4转及以上玩家可进入。]],
map = "圣域",
give = { { "灭·怒斩", 1 }, { "主宰战盔", 1 }, { "5000万经验卷", 1 }, { "天妖戒", 1 }, { "炙の爪", 1 }, { "火之结晶", 1 } },
check = {
{ "检测转生", "不小于", 4 },
},
},
[2] = {
name = "冰魔之地",
msg = [[共三层,清除完当前地图怪物可进入下一层,
最后1层刷新超级boss。
开启时间每日12点-14点13.30将不可再进入,
14点将强制传送出去。
]],
map = "起始之地",
give = { { "血·至尊宝刀", 1 }, { "主宰战盔", 1 }, { "神龙の赐福", 1 }, { "5000万经验卷", 1 }, { "雮尘珠", 1 }, { "上古源石", 1 } },
},
[3] = {
name = "大乱斗",
msg = [[报名人数大于10人活动开启等级不低于4转。
开启时间每周246 19.30点(19.25开启报名)
1.达到开启条件后19.30自动传送进入活动场地
2.人物死亡后出局 回到盟重安全区
3.每击杀1人获得10点积分地图中每3秒自动获得1点
4.活动时间结束后 邮件自动发放奖励。
]] .. HuodongzhongxinOBJ:buildDaluandouRewardMsg(),
map = "勇者大乱斗",
give = { { "金币", 1 }, { "千年玄石", 1 }, { "混沌碎片宝箱", 1 }, { "100万经验卷", 1 } },
check = {
{ "比较数字变量", VarCfg.Player.TL.int["大乱斗已报名"], "周期", "大于", 0 },
},
},
}
----*计划任务表
HuodongzhongxinOBJ.Scheduled = {
[1] = {
name = "开启圣域夺宝",
time = "10:00:00#16:00:00",
itype = 1, --* 每天执行
func = "huodongzhongxinobj_shengyu_start",
param = nil,
},
[2] = {
name = "关闭圣域夺宝",
time = "11:00:00#17:00:00",
itype = 1, --* 每天执行
func = "huodongzhongxinobj_shengyu_end",
param = nil,
},
[4] = {
name = "零点清理活动状态",
time = "00:01:00#14:00:00",
itype = 1, --* 每天执行
func = "huodongzhongxinobj_setstatus",
param = nil,
},
[6] = {
name = "冰魔之地开启",
time = "12:00:00",
itype = 1, --* 每天执行
func = "huodongzhongxinobj_binmo_start",
param = nil,
},
[7] = {
name = "冰魔之地结束",
time = "14:00:00",
itype = 1, --* 每天执行
func = "huodongzhongxinobj_binmo_on",
param = nil,
},
[8] = {
name = "冰魔之地停止进入",
time = "13:30:00",
itype = 1, --* 每天执行
func = "huodongzhongxinobj_binmo_closemap",
param = nil,
},
[9] = {
name = "大乱斗开启报名",
time = "2 19:25:00#4 19:25:00#6 19:25:00",
itype = 2, --* 每周执行
func = "huodongzhongxinobj_daluandou_baoming",
param = nil,
},
[10] = {
name = "大乱斗开启",
time = "2 19:30:00#4 19:30:00#6 19:30:00",
itype = 2, --* 每周执行
func = "huodongzhongxinobj_daluandou_start",
param = nil,
},
[11] = {
name = "大乱斗结束",
time = "2 20:00:00#4 20:00:00#6 20:00:00",
itype = 2, --* 每周执行
func = "huodongzhongxinobj_daluandou_end",
param = nil,
},
}
for i, v in pairs(HuodongzhongxinOBJ.Scheduled or {}) do
table.insert(RebotOBJ.Scheduled, v)
end
-- ---* 加入上线同步数据
Player.sycCfg[HuodongzhongxinOBJ._name] = HuodongzhongxinOBJ.cfg
for i, v in ipairs(HuodongzhongxinOBJ.id or {}) do
Npc.clicknpcCfg[v] = HuodongzhongxinOBJ
end
HuodongzhongxinOBJ.openVar = {
VarCfg.sys.int["圣域夺宝"],
VarCfg.sys.int["冰魔之地"],
VarCfg.sys.int["大乱斗"],
}
HuodongzhongxinOBJ.BingMoMon = Func.require("cfg_冰魔之地刷怪")
HuodongzhongxinOBJ.activityMapCfg = {
["圣域"] = function()
return (Sys.getint(VarCfg.sys.int["圣域夺宝"]) or 0) == 1
end,
["起始之地"] = function()
local status = Sys.getint(VarCfg.sys.int["冰魔之地"]) or 0
return status == 1 or status == 2
end,
["魔兽前哨"] = function()
local status = Sys.getint(VarCfg.sys.int["冰魔之地"]) or 0
return status == 1 or status == 2
end,
["巨魔巢穴"] = function()
local status = Sys.getint(VarCfg.sys.int["冰魔之地"]) or 0
return status == 1 or status == 2
end,
["勇者大乱斗"] = function()
return (Sys.getint(VarCfg.sys.int["大乱斗"]) or 0) == 1
end,
}
function HuodongzhongxinOBJ:forceDaluandouAttackMode(player)
local modeVar = VarCfg.Player.TL.int["大乱斗进入前攻击模式"]
local oldMode = Player.getTLint(player, modeVar) or 0
if oldMode <= 0 then
Player.setTLint(player, modeVar, (getattackmode(player) or 1) + 1)
end
setattackmode(player, 0, 1800)
end
function HuodongzhongxinOBJ:restoreDaluandouAttackMode(player)
local modeVar = VarCfg.Player.TL.int["大乱斗进入前攻击模式"]
local oldMode = Player.getTLint(player, modeVar) or 0
if oldMode > 0 then
setattackmode(player, -1, 0)
changeattackmode(player, oldMode - 1)
Player.setTLint(player, modeVar, 0)
end
end
function HuodongzhongxinOBJ:syncDaluandouAttackMode(player)
local mapid = getbaseinfo(player, ConstCfg.gbase.mapid)
if mapid == "勇者大乱斗" then
if (Sys.getint(VarCfg.sys.int["大乱斗"]) or 0) == 1 then
self:forceDaluandouAttackMode(player)
end
else
self:restoreDaluandouAttackMode(player)
end
end
function huodongzhongxinobj_delay_kick(player)
local mapid = getbaseinfo(player, ConstCfg.gbase.mapid)
local checkFunc = HuodongzhongxinOBJ.activityMapCfg[mapid]
if checkFunc and not checkFunc() then
mapmove(player, "3", 330, 330, 8)
end
end
function HuodongzhongxinOBJ:kickPlayer(player, msg)
if msg then
Func.sendmsg9(player, msg)
end
delaygoto(player, 100, "huodongzhongxinobj_delay_kick", 0)
end
function HuodongzhongxinOBJ:kickPlayersInMaps(mapSet, msg)
local player_list = getplayerlst(0)
for _, player in ipairs(player_list or {}) do
local mapid = getbaseinfo(player, ConstCfg.gbase.mapid)
if mapSet[mapid] then
self:kickPlayer(player, msg)
end
end
end
function HuodongzhongxinOBJ:checkActivityMap(player)
local mapid = getbaseinfo(player, ConstCfg.gbase.mapid)
local checkFunc = self.activityMapCfg[mapid]
if checkFunc and not checkFunc() then
Player.setTLint(player, VarCfg.Player.TL.int["大乱斗已报名"], 0)
Player.setTLint(player, VarCfg.Player.TL.int["大乱斗积分"], 0)
self:kickPlayer(player, "[活动大厅]:#70|活动已结束,已自动传送回安全区!")
return false
end
return true
end
function HuodongzhongxinOBJ:up(actor, p1, p2, p3, data)
local id = data[1]
if not data or not id then
return
end
---* 检测活动状态
local _status = Sys.getint(self.openVar[id]) or 0
if _status ~= 1 then
return Func.sendmsg9(actor, "[活动大厅]:#70|活动未开启,不可进入!")
end
local func = self.cfg[id]
local _mapid = getbaseinfo(actor, ConstCfg.gbase.mapid)
if _mapid == func.map then
return Func.sendmsg9(actor, "你已经在活动地图了!#249")
end
if func.check then
if Func.checkcontion(actor, func.check, true, true) then
Message:SubLink(actor, self._name .. "_close", data)
MapCfg.gotomap(actor, func.map)
if id == 3 then
addbuff(actor, 10025)
self:forceDaluandouAttackMode(actor)
end
end
else
Message:SubLink(actor, self._name .. "_close", data)
MapCfg.gotomap(actor, func.map)
end
end
--------------------------------------*圣域夺宝
function huodongzhongxinobj_shengyu_start(sys)
Sys.setint(VarCfg.sys.int["圣域夺宝"], 1)
sendmsg(-1, 2,
string.format('{"Msg":"%s","FColor":251,"BColor":0,"Type":5,"Y":30}', string.format("[活动大厅]圣域夺宝已经开启,可通过活动大厅进入!")))
end
function huodongzhongxinobj_shengyu_end(sys)
Sys.setint(VarCfg.sys.int["圣域夺宝"], 2)
HuodongzhongxinOBJ:kickPlayersInMaps({ ["圣域"] = true }, "[活动大厅]:#70|圣域夺宝已经结束,已自动传送回安全区!")
sendmsg(-1, 2,
string.format('{"Msg":"%s","FColor":251,"BColor":0,"Type":5,"Y":30}', string.format("[活动大厅]圣域夺宝已经结束!")))
end
function huodongzhongxinobj_setstatus(sys)
Sys.setint(VarCfg.sys.int["圣域夺宝"], 0)
end
--------------------------------------*冰魔之地
function huodongzhongxinobj_binmo_start(sys)
Sys.setint(VarCfg.sys.int["冰魔之地"], 1)
for i, v in ipairs(HuodongzhongxinOBJ.BingMoMon or {}) do
local MonNum = getmoncount(v.MapID, getdbmonfieldvalue(v.MonName, ConstCfg.monbase[1][1]), true)
if MonNum > 0 then
killmonsters(v.MapID, v.MonName, 0, true, true)
end
local MapInfo_width = getmapinfo(v.MapID, 0)
local MapInfo_height = getmapinfo(v.MapID, 1)
local _x = v.x and v.x or math.floor(MapInfo_width / 2)
local _y = v.y and v.y or math.floor(MapInfo_height / 2)
local _range = v.range and v.range or math.floor(math.max(MapInfo_width, MapInfo_height) / 2)
genmon(v.MapID, _x, _y, v.MonName, _range, v.Num, v.color and v.color or 215)
end
sendmsg(-1, 2,
string.format('{"Msg":"%s","FColor":251,"BColor":0,"Type":5,"Y":30}', string.format("[活动大厅]冰魔之地已经开启,可通过活动大厅进入!")))
end
function huodongzhongxinobj_binmo_on(sys)
Sys.setint(VarCfg.sys.int["冰魔之地"], 3)
HuodongzhongxinOBJ:kickPlayersInMaps({ ["起始之地"] = true, ["魔兽前哨"] = true, ["巨魔巢穴"] = true },
"[活动大厅]:#70|冰魔之地已经结束,已自动传送回安全区!")
sendmsg(-1, 2,
string.format('{"Msg":"%s","FColor":251,"BColor":0,"Type":5,"Y":30}', string.format("[活动大厅]冰魔之地已经结束!")))
end
function HuodongzhongxinOBJ_BinMo_End(sys)
huodongzhongxinobj_binmo_on(sys)
end
function huodongzhongxinobj_binmo_closemap(sys)
Sys.setint(VarCfg.sys.int["冰魔之地"], 2)
sendmsg(-1, 2,
string.format('{"Msg":"%s","FColor":251,"BColor":0,"Type":5,"Y":30}', string.format("[活动大厅]冰魔之地已经关闭入口!")))
end
--------------------------------------*大乱斗
---* 报名
function huodongzhongxinobj_daluandou_baoming(sys)
local _bool = Sys.getint(VarCfg.sys.int["大乱斗报名"]) > 0 and true or false
if not _bool then
Sys.setint(VarCfg.sys.int["大乱斗报名"], 1)
sendmsg(-1, 2,
string.format('{"Msg":"%s","FColor":251,"BColor":0,"Type":5,"Y":30}',
string.format("[活动大厅]大乱斗已经开启报名,可通过活动大厅进行报名,5分钟后活动开启!")))
end
end
-- huodongzhongxinobj_daluandou_baoming()
---* 开启活动
function huodongzhongxinobj_daluandou_start(sys)
local _RegisterNum = Sys.getTLint(VarCfg.sys.TL.int["大乱斗报名人数"]) or 0
Sys.setint(VarCfg.sys.int["大乱斗报名"], 0)
if _RegisterNum < 0 then
sendmsg(-1, 2,
string.format('{"Msg":"%s","FColor":251,"BColor":0,"Type":5,"Y":30}',
string.format("[活动大厅]由于勇者大乱斗报名人数低于10人,本次大乱斗无法开启!")))
return
end
Sys.setint(VarCfg.sys.int["大乱斗"], 1)
local player_list = getplayerlst(0)
for i, player in ipairs(player_list or {}) do
local _bool = Player.getTLint(player, VarCfg.Player.TL.int["大乱斗已报名"]) or 0
if _bool > 0 then
local _mapid = getbaseinfo(player, ConstCfg.gbase.mapid)
if _mapid ~= "勇者大乱斗" then
MapCfg.gotomap(player, "勇者大乱斗")
addbuff(player, 10025)
HuodongzhongxinOBJ:forceDaluandouAttackMode(player)
end
end
end
sendmsg(-1, 2,
string.format('{"Msg":"%s","FColor":251,"BColor":0,"Type":5,"Y":30}',
string.format("[活动大厅]勇者大乱斗已经开启,已报名的玩家将自动传送至地图!")))
end
-- huodongzhongxinobj_daluandou_start()
---* 结束活动
function huodongzhongxinobj_daluandou_end(sys)
if Sys.getint(VarCfg.sys.int["大乱斗"]) > 0 then
Sys.setint(VarCfg.sys.int["大乱斗"], 0)
local rankList = HuodongzhongxinOBJ:filterDaluandouRank(GetRankVar(VarCfg.Player.TL.int["大乱斗积分"], 10, 0) or {})
local rankNameSet = {}
for _, rankData in ipairs(rankList or {}) do
local rank = tonumber(rankData[1]) or 0
local name = rankData[2]
local jifen = tonumber(rankData[3]) or 0
if rank >= 1 and rank <= 10 and jifen > 0 then
rankNameSet[name] = true
HuodongzhongxinOBJ:sendDaluandouReward(name, rank, jifen)
end
end
local player_list = getplayerlst(0)
for _, player in ipairs(player_list or {}) do
local mapid = getbaseinfo(player, ConstCfg.gbase.mapid)
local name = Player.getname(player)
local jifen = Player.getTLint(player, VarCfg.Player.TL.int["大乱斗积分"]) or 0
if jifen > 0 and name and name ~= "" and not rankNameSet[name] then
HuodongzhongxinOBJ:sendDaluandouReward(name, 0, jifen)
end
local isApply = (Player.getTLint(player, VarCfg.Player.TL.int["大乱斗已报名"]) or 0) > 0
if isApply or mapid == "勇者大乱斗" then
Player.setTLint(player, VarCfg.Player.TL.int["大乱斗已报名"], 0)
Player.setTLint(player, VarCfg.Player.TL.int["大乱斗积分"], 0)
end
if mapid == "勇者大乱斗" then
HuodongzhongxinOBJ:restoreDaluandouAttackMode(player)
HuodongzhongxinOBJ:kickPlayer(player, "[活动大厅]:#70|勇者大乱斗已经结束,已自动传送回安全区!")
end
end
sendmsg(-1, 2,
string.format('{"Msg":"%s","FColor":251,"BColor":0,"Type":5,"Y":30}',
string.format("[活动大厅]勇者大乱斗已经结束,奖励直接发送到胜利者邮件,请保持在线!")))
end
end
----* 注册事件
local function HuodongzhongxinOBJ_struckdamage(actor, target, hitter, magicId, damage, model, Info)
if Info.target_Name == "冰眼巨魔" then
if Info.target_curhp_per < 50 then
local _num = 0
for i = 1, 2, 1 do
_num = _num +
getmoncount(Info.self_map, getdbmonfieldvalue("冰眼巨魔(分身)" .. i, ConstCfg.monbase[1][1]), true)
end
if _num == 0 then
local fensheng_1 = genmonex(Info.self_map, Info.self_x, Info.self_y, "冰眼巨魔(分身)1", 5, 1, 0, 249, "冰眼巨魔", 0)
local fensheng_2 = genmonex(Info.self_map, Info.self_x, Info.self_y, "冰眼巨魔(分身)2", 5, 1, 0, 249, "冰眼巨魔", 0)
for i, v in ipairs(fensheng_1 or {}) do
addhpper(v, "=", 50)
end
for i, v in ipairs(fensheng_2 or {}) do
addhpper(v, "=", 50)
end
end
-- Info._damage = 0
-- else
-- Info._damage = 6000
end
end
end
GameEvent.add(EventCfg.onAttackMondamage, HuodongzhongxinOBJ_struckdamage, HuodongzhongxinOBJ)
-----* 大乱斗报名
function HuodongzhongxinOBJ:BaoMing(actor)
local _relevel = getbaseinfo(actor, ConstCfg.gbase.renew_level) or 0
if _relevel < 4 then
return Func.sendmsg9(actor, "[大乱斗]:#70|您的转生不足4转,不可报名!")
end
local _bool = Player.getTLint(actor, VarCfg.Player.TL.int["大乱斗已报名"]) > 0 and true or false
if _bool then
Func.sendmsg9(actor, "[大乱斗]:#70|您已经报过名了,请保持在线并等待活动开启!")
else
local _RegisterNum = Sys.getTLint(VarCfg.sys.TL.int["大乱斗报名人数"]) or 0
Sys.setTLint(VarCfg.sys.TL.int["大乱斗报名人数"], _RegisterNum + 1)
Player.setTLint(actor, VarCfg.Player.TL.int["大乱斗已报名"], 1)
Func.sendmsg9(actor, "[大乱斗]:#70|恭喜您报名成功,请保持在线并等待活动开启!")
end
end
-----------* 大乱斗杀人事件
local function HuodongzhongxinOBJ_killplay(actor, killed, Info)
if Sys.getint(VarCfg.sys.int["大乱斗"]) > 0 then
local self_points = Player.getTLint(actor, VarCfg.Player.TL.int["大乱斗积分"]) or 0
Player.setTLint(actor, VarCfg.Player.TL.int["大乱斗积分"], self_points + 10)
end
end
GameEvent.add(EventCfg.onkillplay, HuodongzhongxinOBJ_killplay, HuodongzhongxinOBJ)
GameEvent.add(EventCfg.onLogin, function(actor)
HuodongzhongxinOBJ:checkActivityMap(actor)
HuodongzhongxinOBJ:syncDaluandouAttackMode(actor)
end, HuodongzhongxinOBJ)
GameEvent.add(EventCfg.goEnterMap, function(actor)
HuodongzhongxinOBJ:checkActivityMap(actor)
HuodongzhongxinOBJ:syncDaluandouAttackMode(actor)
end, HuodongzhongxinOBJ)
------* 大乱斗获取排名
function HuodongzhongxinOBJ:luandouGetData(actor, p1, p2, p3, sendata)
local sendID = sendata and json2tbl(sendata)[1] or 10001
local rankVar = VarCfg.Player.TL.int["大乱斗积分"]
local selfRank = GetPlayRankVar(actor, rankVar) or 0
local selfJifen = Player.getTLint(actor, rankVar) or 0
local selfRewardText = ""
if selfJifen > 0 then
if selfRank > 0 and selfRank <= 10 then
selfRewardText = self:getDaluandouReward(selfRank).rewardText
else
selfRank = 0
selfRewardText = self:getDaluandouReward(0).rewardText
end
else
selfRank = 0
end
local data = {}
data.Rank = self:filterDaluandouRank(GetRankVar(rankVar, 10, 0) or {})
data.RewardList = self:getDaluandouRewardList()
data.self = {
Rank = selfRank,
name = Player.getname(actor),
jifen = selfJifen,
rewardText = selfRewardText,
}
sendluamsg(actor, sendID, 0, 0, 0, tbl2jsonex(data))
end
HuodongzhongxinOBJ.allowFunc = { "luandouGetData", "up", "BaoMing" }
return HuodongzhongxinOBJ