bayuMIR/Mirserver/Mir200/Envir/QuestDiary/游戏功能/A1_一大陆/人物转生.lua
2026-06-18 02:06:14 +08:00

107 lines
2.4 KiB
Lua

ZhuanShengOBJ = Up_BaseClass:new()
ZhuanShengOBJ._name = "ZhuanShengOBJ"
-- NPCID
ZhuanShengOBJ.id = { 6 }
-- 配置文件
ZhuanShengOBJ.cfg = Func.require("cfg_ZhuanSheng")
-- ---* 加入上线同步数据
-- Player.sycCfg[ZhuanShengOBJ._name] = ZhuanShengOBJ.cfg
for i, v in ipairs(ZhuanShengOBJ.id or {}) do
Npc.clicknpcCfg[v] = ZhuanShengOBJ
end
function ZhuanShengOBJ:main(actor, ...)
local info = { ... }
ZhuanShengOBJ:up_sync(actor, "ZhuanShengOBJ_main",info[1])
end
function ZhuanShengOBJ:up(actor)
if not Npc.CheckNPCRange(actor,6) then
return
end
local re_level = getbaseinfo(actor, ConstCfg.gbase.renew_level) or 0
if re_level >= #self.cfg then
Func.sendmsg9(actor,"[转生]:#70|转生已经满级!")
return
end
local level = getbaseinfo(actor, ConstCfg.gbase.level) or 0
local cfg = self.cfg[re_level + 1]
if level < cfg.level then
Func.sendmsg9(actor, string.format("[转生]:#70|人物等级不足:%d级", cfg.level))
return
end
if Func.takeitmes(actor, cfg.xh, true, true) then
for i, v in ipairs(self.cfg) do
deprivetitle(actor, string.format("转生Lv.%d", i))
end
if confertitle(actor, string.format("转生Lv.%d", re_level + 1), 0) then
setbaseinfo(actor, ConstCfg.sbase.level, level - cfg.d_l)
setbaseinfo(actor, ConstCfg.sbase.renew_level, re_level + 1)
setlocklevel(actor,2,cfg.level_top)
Func.sendmsg9(actor, "[转生]:#70|恭喜你转生成功!")
self:up_sync(actor, "ZhuanShengOBJ_sync",6)
end
end
end
function ZhuanShengOBJ:up_sync(actor, syncTitle,npcid)
local level = getbaseinfo(actor, ConstCfg.gbase.renew_level) or 0
local data = {}
data.cfg = {}
for i = 1, level < #self.cfg and level + 1 or level, 1 do
if self.cfg[i] then
data.cfg[i] = self.cfg[i]
end
end
data.npcid = npcid and npcid or nil
Message:SubLink(actor, syncTitle, data)
end
----* 上线重新锁定等级
local function ZhuanShengOBJ_login(actor)
local relevel = getbaseinfo(actor,ConstCfg.gbase.renew_level)
if ZhuanShengOBJ.cfg[relevel] then
setlocklevel(actor,2,ZhuanShengOBJ.cfg[relevel].level_top)
else
setlocklevel(actor,2,65)
end
end
GameEvent.add(EventCfg.onLogin,ZhuanShengOBJ_login,ZhuanShengOBJ)
ZhuanShengOBJ.allowFunc = {"up", "main"}
return ZhuanShengOBJ