[GP] Loginset.lua--职业限开

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式
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


回复

使用道具 举报

快速回复 返回顶部 返回列表