local sw_tab = sw_tab or {} --声望表
local xzitem_tab = {} --限制道具表
local swdaoshu_tab = swdaoshu_tab or {} -- 时间倒数表
xzitem_tab[790004] = 1
xzitem_tab[34638] = 1
xzitem_tab[16420] = 1
-----------------
Global_Reg.RegInit("zhuanzhi_init");
function zhuanzhi_init()
NL.RegJobsChange (nil,"zhuanzhi_event");--创建一个所有玩家转职会触发的Lua函数
return 0;
end
function zhuanzhi_event(player, JobsID)
local sw = Char.GetData(player, %对象_声望%)
local rsw = Char.GetData(player, %对象_日声望上限%)
local itemid = -1
local zhuanzhiitem = Char.ItemNum(player, 607686) -- 生产系转职保证书
local user=Char.GetData(player,2002);
local mac = Mac[user]
local nowjob = Char.GetData(player,51)--获取原职业
-----------判断生产转职保证书-----
if zhuanzhiitem >= 1 then --拥有转职保证书
if nowjob >= 200 and nowjob <= 499 then --原职业为生产系
if JobsID >= 200 and JobsID <= 499 then--目标职业为生产系
-- NLG.SystemMessage(player, "JobsID="..JobsID..",nowjob="..nowjob)
else
NLG.SystemMessage(player, "不可携带生产系转职保证书转职为战斗系。")
return -1
end
else
NLG.SystemMessage(player, "战斗系不可携带生产系转职保证书进行转职。")
return -1
end
end
-----
for x = 0,7 do --判断身上的装备
local ItemIndex = Char.GetItemIndex(player, x)
local itemid = Item.GetData(ItemIndex, 0)
local Name = Item.GetData(ItemIndex, %道具_已鉴定名%)
if xzitem_tab[itemid] then --若有限制装备提示并拦截
NLG.SystemMessage(player, "你身上装备的"..Name.."不可携带转职")
-- NLG.SystemMessage(player, "sw="..sw..",rsw="..rsw.."")
return -1
end
end
sw_tab[player] = {sw,rsw}
swdaoshu_tab[player] = 1 -- 倒数表设置倒数1秒
Char.SetLoopEvent(nil, "zhuanzhi_startloop",player,100) --开始loop
-- NLG.SystemMessage(player, "sw="..sw..",rsw="..rsw.."")
-----------转职判断是否战斗系-----
if (JobsID >= 10 and JobsID <= 59) or (JobsID >= 70 and JobsID <= 89) or (JobsID >= 110 and JobsID <= 119) or (JobsID >= 130 and JobsID <= 199) then --若转职的是战斗职业,除去封印、盗贼、饲养、传教
if (nowjob >= 10 and nowjob <= 59) or (nowjob >= 70 and nowjob <= 89) or (nowjob >= 110 and nowjob <= 119) or (nowjob >= 130 and nowjob <= 199) then --若原本的是战斗职业,除去封印、盗贼、饲养、传教
local a = login_job_tab[mac] or 0
NLG.SystemMessage(player,"[系统]目前登录的限开职业数量为:"..a.."")
else
if login_job_tab[mac] == nil then--设置职业表的值
login_job_tab[mac] = 1
else
login_job_tab[mac] = login_job_tab[mac] + 1
if login_job_tab[mac] > 2 then --若超过设定职业
Loginset_NPC(npcindex,player)
end
end
NLG.SystemMessage(player,"[系统]目前登录的限开职业数量为:"..login_job_tab[mac].."")
end
else--若是转非战斗系
if (nowjob >= 10 and nowjob <= 89) or (nowjob >= 110 and nowjob <= 119) or (nowjob >= 130 and nowjob <= 199) then --若原本的是战斗职业,除去封印、盗贼、饲养
if login_job_tab[mac] then
login_job_tab[mac] = login_job_tab[mac] - 1
NLG.SystemMessage(player,"[系统]目前登录的限开职业数量为:"..login_job_tab[mac].."")
if login_job_tab[mac] == 0 then
login_job_tab[mac] = nil
end
end
end
end
return 0
end
function zhuanzhi_startloop (player)
local sw = Char.GetData(player, %对象_声望%)
local rsw = Char.GetData(player, %对象_日声望上限%)
-- print("\n loop测试")
swdaoshu_tab[player] = swdaoshu_tab[player] - 1
if swdaoshu_tab[player] == 0 then -- 当倒数到0时
Char.SetLoopEvent(nil,nil,player,0) --回收loop
swdaoshu_tab[player] = nil --回收倒数表
Char.SetData(player, %对象_声望%,sw_tab[player][1])
Char.SetData(player, %对象_日声望上限%,sw_tab[player][2])
sw_tab[player] = nil --回收声望表
-- else
-- NLG.SystemMessage(player,"还有"..swdaoshu_tab[player] .."")--其余时间报时
end
return 0
end
|
|