local aizhinandao_NPCxq = {98503,"爱之南岛",4,1000,225,83} --NPC详情
local TimeWarpMsg = "\n 限时爱之南岛在每周4的20点开启,21点关门,进去溜达一阵子后22点会全部传送出来,里面掉落大量魔石。" --活动说明
local LevelLimet = 30 --限制入场等级
local TimeWarpToMap = 60061 --传送地图
local TimeWarpToPosX = 129 --传送x坐标
local TimeWarpToPosY = 24 --传送y坐标
local TimeWarpLeaveMap = 1000 --离开时传送地图
local TimeWarpDays = {4} ----开放日期 0-6 周日-周6
local TimeWarpOpen = 20 --入场时间
local TimeWarpclose = 21 --禁止入场时间
local TimeWarpClean = 22 --清场时间
local aidaomac_tab = aidaomac_tab or {} --mac记录表
----------
Global_Reg.RegInit("aizhinandao_zhuce");--全局注册
Global_Reg.RegLoginGateEvent("aizhinandao_logingate");--登出传送石
--Global_Reg.RegLogoutEvent("aizhinandao_logout");--登出游戏
local TimeWarpValue3 = {}
for _,v in pairs(TimeWarpDays) do
TimeWarpValue3[v] = 1
end
function aizhinandao_logingate(player) --登出传送石
local user=Char.GetData(player,2002);
local mac = Mac[user]
if aidaomac_tab[mac] and aidaomac_tab[mac] == 1 then
aidaomac_tab[mac] = nil
elseif aidaomac_tab[mac] and aidaomac_tab[mac] == 2 then
aidaomac_tab[mac] = 1
end
return 0
end
function aizhinandao_logout(player,mac) --登出游戏
local playerjob = Char.GetData(player,51)--获取职业
if playerjob~=540 then
local maptype = Char.GetData(player,%对象_地图类型%)
local mapid = Char.GetData(player,4)
if maptype==0 then
if mapid == 60061 or mapid == 62101 or mapid == 60062 then
if aidaomac_tab[mac] then
if aidaomac_tab[mac] == 1 then
aidaomac_tab[mac] = nil
elseif aidaomac_tab[mac] == 2 then
aidaomac_tab[mac] = 1
end
end
end
end
end
return 0
end
function aizhinandao_login_event(player) --登录注册
local playerjob = Char.GetData(player,51)--获取职业
local xingqiji = tonumber(os.date("%w"))
local nowtime = tonumber(os.date("%H"))
if TimeWarpValue3[xingqiji] and nowtime >= TimeWarpOpen and nowtime <=TimeWarpclose then
return 0
else
if playerjob ~=540 then
local maptype = Char.GetData(player,%对象_地图类型%)
if maptype==0 then
local mapid = Char.GetData(player,4)
if mapid == 60061 or mapid == 62101 or mapid == 60062 then --爱岛判断,若在爱岛,不是佣兵
-- NLG.SystemMessage(player,"xingqiji="..xingqiji.." nowtime="..nowtime.."")
local x = math.random(58,93)--随机传送到x,y
local y = math.random(84,93)
NLG.Warp(player,0,1000,x,y)
end
end
end
end
return 0
end
function aizhinandao_chuangkou(npc,player) --窗口
local xingqiji = tonumber(os.date("%w"))
local nowtime = tonumber(os.date("%H"))
local msg = "3\n这里是爱之南岛\n请选择:\n\n1.爱之南岛说明"
local joinmsg = "\n2.参加爱之南岛"
if TimeWarpValue3[xingqiji] and nowtime == TimeWarpOpen then --若是开放时间
msg = msg..joinmsg
end
if NLG.CanTalk(npc,player) then
NLG.ShowWindowTalked(player,2,2,222,msg,npc)
end
end
function aizhinandao_gongneng(npc,player,_SqeNo,_select,_data) --功能
--NLG.SystemMessage(player,"\n _SqeNo是:"..(_SqeNo or "空").."它的类型是"..type(_SqeNo).."\n _select是:".. (_select or "空").."它的类型是"..type(_select).."\n _data是:"..(_data or "空").."它的类型是"..type(_data))
if _SqeNo == 222 then
if _select == 0 then
if _data == "1" then
NLG.ShowWindowTalked(player,0,2,9999,TimeWarpMsg,npc)
elseif _data == "2" then
local xingqiji = tonumber(os.date("%w"))
local nowtime = tonumber(os.date("%H"))
local user=Char.GetData(player,2002);
local mac = Mac[user]
if TimeWarpValue3[xingqiji] and nowtime == TimeWarpOpen then --若是开放时间
if Char.GetData(player,%对象_等级%) >= LevelLimet and aidaomac_tab[mac] ~= 2 then --限制等级
for i = 1,4 do
local GroupIndex = Char.GetTeamIndex(player, i);
if(GroupIndex>=0)then
local jobnum = Char.GetData(GroupIndex,51)
if jobnum~=540 then
NLG.DischargeParty(GroupIndex);
end
end
end
NLG.Warp(player,0,TimeWarpToMap,TimeWarpToPosX,TimeWarpToPosY)
NLG.DischargeParty(player)
Char.SetLoopEvent(nil, "aizhinandao_startloop",npc,1000) --开始loop
if aidaomac_tab[mac] == nil then
aidaomac_tab[mac] = 1
-- NLG.SystemMessage(player,"1111111")
elseif aidaomac_tab[mac] == 1 then
aidaomac_tab[mac] = 2
-- NLG.SystemMessage(player,"222222222")
end
elseif aidaomac_tab[mac] == 2 then
NLG.SystemMessage(player,"您已经有两个角色在爱之南岛内了")
else
NLG.SystemMessage(player,"你的等级不足以进入爱之南岛。")
end
else
NLG.SystemMessage(player,"当前爱之南岛不在开放时间内。")
end
end
end
end
end
function aizhinandao_startloop (npc)
-- print("\n loop测试")
local xingqiji = tonumber(os.date("%w"))
local nowtime = tonumber(os.date("%H"))
if TimeWarpValue3[xingqiji] and nowtime == TimeWarpClean then -- 到了关门时间
local tTable = NLG.GetMapPlayerList(0,TimeWarpToMap);--获取爱岛内所有玩家索引,返回值为table
local tTable2 = NLG.GetMapPlayerList(0,62101);--获取爱岛内所有玩家索引,返回值为table
local tTable3 = NLG.GetMapPlayerList(0,60062);--获取爱岛内所有玩家索引,返回值为table
if type(tTable) == "table" then
for k,v in pairs(tTable) do
local x = math.random(58,93)--随机传送到x,y
local y = math.random(84,93)
NLG.Warp(v,0,TimeWarpLeaveMap,x,y)
end
if type(tTable2) == "table" then
for a,b in pairs(tTable2) do
local x = math.random(58,93)--随机传送到x,y
local y = math.random(84,93)
NLG.Warp(v,0,TimeWarpLeaveMap,x,y)
end
end
if type(tTable3) == "table" then
for a,b in pairs(tTable3) do
local x = math.random(58,93)--随机传送到x,y
local y = math.random(84,93)
NLG.Warp(v,0,TimeWarpLeaveMap,x,y)
end
end
Char.SetLoopEvent(nil,nil,npc,0) --回收loop
end
end
return 0
end
function aizhinandao_zhuce() --NPC注册
aizhinandao_NPC()
return 0
end
function aizhinandao_NPC(npc) --NPC设置
if npc == nil then
npc = NL.CreateNpc(nil,"aizhinandao_NPCzhizuo")
end
Char.SetData(npc,1,aizhinandao_NPCxq[1])
Char.SetData(npc,2,aizhinandao_NPCxq[1])
Char.SetData(npc,2000,aizhinandao_NPCxq[2])
Char.SetData(npc,7,aizhinandao_NPCxq[3])
Char.SetData(npc,4,aizhinandao_NPCxq[4])
Char.SetData(npc,5,aizhinandao_NPCxq[5])
Char.SetData(npc,6,aizhinandao_NPCxq[6])
LuaNpcIndex["aizhinandao_npc"]=npc;--读取使用用 LuaNpcIndex.aizhinandao_npc 就可以读取对应NPC index
InstallNpc("aizhinandao_npc",npc);
NLG.UpChar(npc)
Char.SetTalkedEvent(nil,"aizhinandao_chuangkou",npc)
Char.SetWindowTalkedEvent(nil,"aizhinandao_gongneng",npc)
return true
end
function aizhinandao_NPCzhizuo(index)
return 1;
end
|
|