local jobxianzhi = 2 --限制战斗职业几开
login_job_tab = login_job_tab or {} -- 职业表
local login_daoshu_tab = login_daoshu_tab or {} -- 时间倒数表
--local Loginset_NPCxq = {106602,"登录",4,7777,13,13} --NPC详情
local loginplayer_supertab = loginplayer_supertab or {} --玩家登录表
local login_safe = login_safe or {}
loginplayer_supertab2 = loginplayer_supertab2 or {} --记录离线摆摊的角色的表
----------
--该lua不可在线重载
function Loginmac_event(player,mac) --登录注册
local playerjob = Char.GetData(player,51)--获取职业
if (playerjob >= 10 and playerjob <= 59) or (playerjob >= 70 and playerjob <= 89) or (playerjob >= 110 and playerjob <= 119) or (playerjob >= 130 and playerjob <= 199) then --若是战斗职业,除去封印、盗贼、传教、饲养
if login_safe[player]==nil then
if login_job_tab[mac] == nil then--设置职业表的值
login_job_tab[mac] = 1
--NLG.SystemMessage(player,"login_job_tab[mac]="..login_job_tab[mac].."")
else
login_job_tab[mac] = login_job_tab[mac] + 1
if login_job_tab[mac] > jobxianzhi then --若超过设定职业
Loginset_NPC(npcindex,player)
end
end
login_safe[player]=1
NLG.SystemMessage(player,"[系统]目前登录的限开职业数量为:"..login_job_tab[mac].."")
end
end
return 0
end
function Logoutjobpanding_event(player,mac) --登出注册
local playerjob = Char.GetData(player,51)--获取职业
if login_safe[player] then
login_safe[player]=nil
end
if loginplayer_supertab2[player] then
loginplayer_supertab2[player]=nil
return 0
end
if (playerjob >= 10 and playerjob <= 59) or (playerjob >= 70 and playerjob <= 89) or (playerjob >= 110 and playerjob <= 119) or (playerjob >= 130 and playerjob <= 199) then --若是战斗职业,除去封印、盗贼、传教、饲养
if login_job_tab[mac] then
login_job_tab[mac] = login_job_tab[mac] - 1
end
--print("login_job_tab[mac] ="..login_job_tab[mac] .."")
if login_job_tab[mac] == 0 then
login_job_tab[mac] = nil
--print("\n 无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无")
end
end
return 0
end
function Loginset_startloop (npcindex)
-- print("\n loop测试")
if login_daoshu_tab[npcindex] == nil then
login_daoshu_tab[npcindex] = 11 -- 倒数表设置倒数10秒
end
login_daoshu_tab[npcindex] = login_daoshu_tab[npcindex] - 1
if login_daoshu_tab[npcindex] == 0 then -- 当倒数到0时
Char.SetLoopEvent(nil, "Loginset_startloop",npcindex,0) --回收loop
login_daoshu_tab[npcindex] = nil --回收倒数表
NLG.Close_Socket(loginplayer_supertab[npcindex])
loginplayer_supertab[npcindex] = nil
NL.DelNpc(npcindex);
npcindex = nil;
else
NLG.SystemMessage(loginplayer_supertab[npcindex],"[提示]:您的战斗职业多开已达到上限,还有"..login_daoshu_tab[npcindex] .."秒将会强制切断与服务器的链接")--其余时间报时
end
return 0
end
function Loginset_NPC(Loginset_npcindex,player)
if Loginset_npcindex == nil then
Loginset_npcindex = NL.CreateNpc(nil,"Loginset_NPCzhizuo")
end
local x = math.random(40,80)
local y = math.random(40,80)
Char.SetData(Loginset_npcindex,%对象_形象%,106602)
Char.SetData(Loginset_npcindex,%对象_原形%,106602)
Char.SetData(Loginset_npcindex,%对象_原名%,"登录")
Char.SetData(Loginset_npcindex,%对象_方向%,4)
Char.SetData(Loginset_npcindex,%对象_地图%,7777)
Char.SetData(Loginset_npcindex,%对象_X%,x)
Char.SetData(Loginset_npcindex,%对象_Y%,y)
NLG.UpChar(Loginset_npcindex)
Char.SetLoopEvent(nil, "Loginset_startloop",Loginset_npcindex,1000) --开始loop
loginplayer_supertab[Loginset_npcindex]=player
return true
end
function Loginset_NPCzhizuo(index)
return true;
end
|
|