function n6040103_OnTalk(MapID, InstanceID, TargetID, TargetTypeID, RoleID, TalkIndex)
local curmon = tonumber(os.date("%m"))
local curday = tonumber(os.date("%d"))
local curhour = tonumber(os.date("%H"))
local curmin = tonumber(os.date("%M"))
local time1 = curmon*10000 + curday *100 + curhour--月日时
if time1 ~=role.GetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_timeX"]) then
role.SetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_baomingX"], 0)--报名0没有有报名,1普通组2是专业组
role.SetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_timeX"], time1)--
role.SetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_jifenX"],0)
end
local x = role.GetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_baomingX"])
local money = role.GetRoleSilver(MapID, InstanceID,RoleID)
local lev = role.GetRoleLevel(MapID, InstanceID,RoleID)
local juan = role.GetRoleItemNum(RoleID, 4810040)
if TalkIndex == -1 then
if curhour == 20 or (curhour == 21 and curmin < 40)then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211162) -- 竞技场项目报名人:\n 选择你所报名的组别,普通组报名需要20金,专业组报名需要50金和一个专业参赛卷,你仅仅只能参加一个组别。每日20:00开启竞技场报名。
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 4)
msg.AddMsgEvent(MsgID, 1, 211124) -- 参加普通组比赛
msg.AddMsgEvent(MsgID, 21, 5)
msg.AddMsgEvent(MsgID, 1, 211125) -- 参加专业组比赛
msg.AddMsgEvent(MsgID, 21, 8)
msg.AddMsgEvent(MsgID, 1, 211126) --传送起跑准备区
msg.DispatchRoleMsgEvent(RoleID, MsgID)
else
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211162) -- 竞技场项目报名人:\n 选择你所报名的组别,普通组报名需要20金,专业组报名需要50金和一个专业参赛卷,你仅仅只能参加一个组别。每日20:00开启竞技场报名。
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 8)
msg.AddMsgEvent(MsgID, 1, 211126) --传送起跑准备区
msg.DispatchRoleMsgEvent(RoleID, MsgID)
end
elseif TalkIndex == 4 then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211163) -- 竞技场项目报名人:\n 你确定要报名普通组比赛吗?参加普通组之后就不能参加专业组比赛了。
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 6)
msg.AddMsgEvent(MsgID, 1, 100001) -- 确定
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100002) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
elseif TalkIndex == 5 then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211163) -- 竞技场项目报名人:\n 你确定要报名专业组比赛吗?参加普通组之后就不能参加普通组比赛了。
msg.AddMsgEvent(MsgID, 24, TargetID) --
msg.AddMsgEvent(MsgID, 21, 7)
msg.AddMsgEvent(MsgID, 1, 100001) -- 确定
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100002) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
elseif TalkIndex == 6 then
if x == 1 then--业余组
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211165) -- 竞技场项目报名人:\n 你已经报名普通组比赛,不能再报名了。
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
elseif x == 2 then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211166) -- 竞技场项目报名人:\n 专业组和普通组比赛你只能参加一项
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
elseif lev < 50 then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211167) -- 竞技场项目报名人:\n 你的等级不足50级,不能报名参赛。
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
elseif money < 200000 then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211168) -- 竞技场项目报名人:\n 报名比赛要缴纳报名费,你身上好像没那么多钱。
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
else
role.SetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_baomingX"], 1)
role.SetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_gotX"], 0)
role.DecRoleSilver(MapID, InstanceID,RoleID,200000, 400)
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211169) -- 竞技场项目报名人:\n 竞技场比赛普通组比赛你已经报名成功,比赛在21:40开始,快去准备参加比赛吧.\n 竞技场内会刷新各种石像,利用炸弹将他们杀死会获得分数,21:55结束时分数最高者获得冠军。
msg.AddMsgEvent(MsgID, 24, TargetID) --
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
end
elseif TalkIndex == 7 then
if x == 1 then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211166) -- 竞技场项目报名人:\n 专业组和普通组比赛你只能参加一项
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
elseif x == 2 then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211170) -- 竞技场项目报名人:\n 你已经报名专业组比赛,不能再报名了。
msg.AddMsgEvent(MsgID, 24, TargetID) --
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
elseif lev < 50 then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211167) -- 竞技场项目报名人:\n 你的等级不足50级,不能报名参赛。
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
elseif money < 500000 then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211168) -- 竞技场项目报名人:\n 报名比赛要缴纳报名费,你身上好像没那么多钱。
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
elseif juan < 1 then
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211171) -- 竞技场项目报名人:\n 报名专业组比赛要缴纳专业参赛卷。
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
else
role.SetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_baomingX"], 2)
role.SetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_gotX"], 0)
role.RemoveFromRole(MapID, InstanceID,RoleID,4810040, 1, 400) --删除一个参赛卷
role.DecRoleSilver(MapID, InstanceID,RoleID,500000, 420)
local MsgID = msg.BeginMsgEvent()
msg.AddMsgEvent(MsgID, 20, 211172) -- 竞技场项目报名人:\n 竞技场比赛专业组比赛你已经报名成功,比赛在21:40开始,快去准备参加比赛吧.\n 竞技场内会刷新各种石像,利用炸弹将他们杀死会获得分数,21:55结束时分数最高者获得冠军。
msg.AddMsgEvent(MsgID, 24, TargetID)
msg.AddMsgEvent(MsgID, 21, 99)
msg.AddMsgEvent(MsgID, 1, 100001) -- 取消
msg.DispatchRoleMsgEvent(RoleID, MsgID)
end
elseif TalkIndex == 8 then
role.RoleGotoNewMap(MapID, InstanceID, RoleID, MapID, 240,3087,633)--
end
end
aux.RegisterCreatureEvent(6040103, 7, "n6040103_OnTalk")
--10秒怪物消失6040138
function chihongjuxiang_OnDisappear(MapID, InstanceID, TargetID, TargetTypeID)
local curmon = tonumber(os.date("%m"))
local curday = tonumber(os.date("%d"))
local curhour = tonumber(os.date("%H"))
local curmin = tonumber(os.date("%M"))
local curtime = curhour*100 + curmin
if curtime >= 2140 and curtime <= 2155 then
local chihongjuxiang ={}
chihongjuxiang[1]={157,3215,780}
chihongjuxiang[2]={170,3220,778}
chihongjuxiang[3]={197,3222,791}
chihongjuxiang[4]={185,3229,809}
chihongjuxiang[5]={169,3229,807}
chihongjuxiang[6]={174,3222,796}
chihongjuxiang[7]={152,3210,787}
chihongjuxiang[8]={146,3213,770}
chihongjuxiang[9]={139,3213,749}
chihongjuxiang[10]={128,3204,726}
for i = 1,10 do
local chihongjuxiang1 = map.GetMapScriptData(MapID,InstanceID,1,20)
if chihongjuxiang1 == nil or chihongjuxiang1 < 0 then
chihongjuxiang1 = 0
end
local num = 30 - chihongjuxiang1
if num > 0 then
map.MapCreateColCreature(MapID, InstanceID,6040127, chihongjuxiang[i][1],chihongjuxiang[i][2],chihongjuxiang[i][3], 1)
map.SetMapScriptData(MapID,InstanceID,1,20,chihongjuxiang1+1)
else
break
end
end
map.MapCreateColCreature(MapID, InstanceID,6040138, 1,1,1, 1)
local weilanjuxiang = {}
weilanjuxiang[1]={167,3214,765}
weilanjuxiang[2]={185,3222,773}
weilanjuxiang[3]={199,3222,743}
for q = 1,3 do
local weilanjuxiang1 = map.GetMapScriptData(MapID,InstanceID,1,25)
if weilanjuxiang1 == nil then
weilanjuxiang1 = 0
end
local num1 = 3 - weilanjuxiang1
if num1 > 0 then
map.MapCreateColCreature(MapID, InstanceID,6040130, weilanjuxiang[q][1],weilanjuxiang[q][2],weilanjuxiang[q][3], 1)
map.SetMapScriptData(MapID,InstanceID,1,25,weilanjuxiang1+1)
else
break
end
end
end
end
aux.RegisterCreatureEvent(6040138, 13, "chihongjuxiang_OnDisappear")
function G6040127_OnDie(MapID, InstanceID, TargetID, TargetTypeID, RoleID)
local chihongjuxiang = map.GetMapScriptData(MapID,InstanceID,1,20)
local shenlvjuxiang = map.GetMapScriptData(MapID,InstanceID,1,23)
map.SetMapScriptData(MapID,InstanceID,1,20,chihongjuxiang-1)
local x,y,z = unit.GetPosition(MapID, InstanceID, RoleID)
local r = math.random(100)
if shenlvjuxiang < 10 then
if r <= 10 then
map.MapCreateColCreature(MapID, InstanceID,6040131, x, y, z, 1)
map.SetMapScriptData(MapID,InstanceID,1,23,shenlvjuxiang+1)
end
end
if role.IsRoleHaveBuff(MapID, InstanceID,RoleID,59463) then
jingjichangjifen(RoleID,10*2)
else
jingjichangjifen(RoleID,10)
end
end
aux.RegisterCreatureEvent(6040127, 4, "G6040127_OnDie")
function G6040127_OnDisappear(MapID, InstanceID, TargetID, TargetTypeID)
local chihongjuxiang = map.GetMapScriptData(MapID,InstanceID,1,20)
map.SetMapScriptData(MapID,InstanceID,1,20,chihongjuxiang-1)
end
aux.RegisterCreatureEvent(6040127, 13, "G6040127_OnDisappear")
--20秒怪物消失6040138
function shenheijuxiang_OnDisappear(MapID, InstanceID, TargetID, TargetTypeID)
local curmon = tonumber(os.date("%m"))
local curday = tonumber(os.date("%d"))
local curhour = tonumber(os.date("%H"))
local curmin = tonumber(os.date("%M"))
local curtime = curhour*100 + curmin
if curtime >= 2140 and curtime <= 2155 then
local shenheijuxiang ={}
shenheijuxiang[1] ={112,3193,740}
shenheijuxiang[2] ={105,3194,733}
shenheijuxiang[3] ={100,3216,779}
shenheijuxiang[4] ={114,3216,790}
shenheijuxiang[5] ={130,3200,795}
shenheijuxiang[6] ={142,3204,793}
shenheijuxiang[7] ={177,3219,733}
for i = 1,7 do
local shenheijuxiang1 = map.GetMapScriptData(MapID,InstanceID,1,21)
if shenheijuxiang1 == nil or shenheijuxiang1 < 0 then
shenheijuxiang1 = 0
end
local num = 15 - shenheijuxiang1
if num > 0 then
map.MapCreateColCreature(MapID, InstanceID,6040128, shenheijuxiang[i][1],shenheijuxiang[i][2],shenheijuxiang[i][3], 1)
map.SetMapScriptData(MapID,InstanceID,1,21,shenheijuxiang1+1)
else
break
end
end
map.MapCreateColCreature(MapID, InstanceID,6040139, 1,1,1, 1)
end
end
aux.RegisterCreatureEvent(6040139, 13, "shenheijuxiang_OnDisappear")
function G6040128_OnDie(MapID, InstanceID, TargetID, TargetTypeID, RoleID)
local shenheijuxiang = map.GetMapScriptData(MapID,InstanceID,1,21)
local shenlvjuxiang = map.GetMapScriptData(MapID,InstanceID,1,23)
map.SetMapScriptData(MapID,InstanceID,1,21,shenheijuxiang-1)
local x,y,z = unit.GetPosition(MapID, InstanceID, RoleID)
local r = math.random(100)
if shenlvjuxiang < 10 then
if r <= 3 then
map.MapCreateColCreature(MapID, InstanceID,6040131, x, y, z, 1)
map.SetMapScriptData(MapID,InstanceID,1,23,shenlvjuxiang+1)
end
end
if role.IsRoleHaveBuff(MapID, InstanceID,RoleID,59463) then
jingjichangjifen(RoleID,20*2)
else
jingjichangjifen(RoleID,20)
end
end
aux.RegisterCreatureEvent(6040128, 4, "G6040128_OnDie")
function G6040128_OnDisappear(MapID, InstanceID, TargetID, TargetTypeID)
local shenheijuxiang = map.GetMapScriptData(MapID,InstanceID,1,21)
map.SetMapScriptData(MapID,InstanceID,1,21,shenheijuxiang-1)
end
aux.RegisterCreatureEvent(6040128, 13, "G6040128_OnDisappear")
--30秒挂消失
function huanyanjuxiang_OnDisappear(MapID, InstanceID, TargetID, TargetTypeID)
local curmon = tonumber(os.date("%m"))
local curday = tonumber(os.date("%d"))
local curhour = tonumber(os.date("%H"))
local curmin = tonumber(os.date("%M"))
local curtime = curhour*100 + curmin
if curtime >= 2140 and curtime <= 2155 then
local huangyanjuxiang ={}
huangyanjuxiang[1] ={163,3257,725}
huangyanjuxiang[2] ={167,3202,820}
for i = 1,2 do
local huangyanjuxiang1 = map.GetMapScriptData(MapID,InstanceID,1,22)
if huangyanjuxiang1 == nil or huangyanjuxiang1 < 0 then
huangyanjuxiang1 = 0
end
local num = 5 - huangyanjuxiang1
if num > 0 then
map.MapCreateColCreature(MapID, InstanceID,6040129, huangyanjuxiang[i][1],huangyanjuxiang[i][2],huangyanjuxiang[i][3], 1)
map.SetMapScriptData(MapID,InstanceID,1,22,huangyanjuxiang1+1)
else
break
end
end
map.MapCreateColCreature(MapID, InstanceID,6040140, 1,1,1, 1)
end
end
aux.RegisterCreatureEvent(6040140, 13, "huanyanjuxiang_OnDisappear")
function G6040129_OnDie(MapID, InstanceID, TargetID, TargetTypeID, RoleID)
local huanyanjuxiang = map.GetMapScriptData(MapID,InstanceID,1,22)
map.SetMapScriptData(MapID,InstanceID,1,22,huanyanjuxiang-1)
if role.IsRoleHaveBuff(MapID, InstanceID,RoleID,59463) then
jingjichangjifen(RoleID,30*2)
else
jingjichangjifen(RoleID,30)
end
end
aux.RegisterCreatureEvent(6040129, 4, "G6040129_OnDie")
function G6040129_OnDisappear(MapID, InstanceID, TargetID, TargetTypeID)
local huanyanjuxiang = map.GetMapScriptData(MapID,InstanceID,1,22)
map.SetMapScriptData(MapID,InstanceID,1,22,huanyanjuxiang-1)
end
aux.RegisterCreatureEvent(6040129, 13, "G6040129_OnDisappear")
--蔚蓝怪死亡消失
function G6040130_OnDie(MapID, InstanceID, TargetID, TargetTypeID, RoleID)
local weilanjuxiang = map.GetMapScriptData(MapID,InstanceID,1,25)
map.SetMapScriptData(MapID,InstanceID,1,23,weilanjuxiang-1)
unit.AddBuff(MapID, InstanceID, RoleID,5946301,TargetTypeID)
end
aux.RegisterCreatureEvent(6040130, 4, "G6040130_OnDie")
function G6040130_OnDisappear(MapID, InstanceID, TargetID, TargetTypeID)
local weilanjuxiang = map.GetMapScriptData(MapID,InstanceID,1,25)
map.SetMapScriptData(MapID,InstanceID,1,20,weilanjuxiang-1)
end
aux.RegisterCreatureEvent(6040130, 13, "G6040130_OnDisappear")
--深绿怪死亡消失
function G6040131_OnDie(MapID, InstanceID, TargetID, TargetTypeID, RoleID)
local shenlvjuxiang = map.GetMapScriptData(MapID,InstanceID,1,23)
map.SetMapScriptData(MapID,InstanceID,1,23,shenlvjuxiang-1)
if role.IsRoleHaveBuff(MapID, InstanceID,RoleID,59463) then
jingjichangjifen(RoleID,100*2)
else
jingjichangjifen(RoleID,100)
end
end
aux.RegisterCreatureEvent(6040131, 4, "G6040131_OnDie")
function G6040130_OnDisappear(MapID, InstanceID, TargetID, TargetTypeID)
local shenlvjuxiang = map.GetMapScriptData(MapID,InstanceID,1,23)
map.SetMapScriptData(MapID,InstanceID,1,20,shenlvjuxiang-1)
end
aux.RegisterCreatureEvent(6040131, 13, "G6040131_OnDisappear")
function jingjichangjifen(RoleID,num)
local curhour = tonumber(os.date("%H"))
local curmin = tonumber(os.date("%M"))
local curtime = curhour*100 + curmin
if curtime >=2140 and curtime <= 2200 then
local MapID = 3390517288
local InstanceID = -1
local i = role.GetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_jifenX"])
if i == nil then
i = 0
end
for q=30,32 do --容错性修改
if map.GetMapScriptData(MapID,InstanceID,1,q) == RoleID then
if map.GetMapScriptData(MapID,InstanceID,1,q+3) >= i then
i = map.GetMapScriptData(MapID,InstanceID,1,q+3)
end
end
end
i = i + num
role.SetRoleScriptData(RoleID, 1, RoleDataType["aoyunjinjichang_jifenX"], i)
local QuestID1 = msg.BeginMsgEvent()
msg.AddMsgEvent(QuestID1, 13, 0)
msg.AddMsgEvent(QuestID1, 1, 211205)--当前积分为
msg.AddMsgEvent(QuestID1, 9, i)--当前积分为
msg.DispatchRoleMsgEvent(RoleID, QuestID1)
local arrID = {}
local arrNum = {}
local bNew = 1
for l=30,32 do
arrID[l] = map.GetMapScriptData(MapID,InstanceID,1,l)
if arrID[l] == nil then
arrID[l] = 0
end
if arrID[l] == RoleID then
arrNum[l] = i
bNew = 0
else
arrNum[l] = map.GetMapScriptData(MapID,InstanceID,1,l+3)
if arrNum[l] == nil then
arrNum[l] = 0
end
end
end
if bNew == 1 then
arrID[33] = RoleID;
arrNum[33] = i;
else
arrID[33] = 0;
arrNum[33] = 0;
end
for m=30, 32 do
for n=m+1,33 do
if arrNum[n] > arrNum[m] then
local temp = arrNum[m]
arrNum[m] = arrNum[n]
arrNum[n] = temp
temp = arrID[m]
arrID[m] = arrID[n]
arrID[n] = temp
end
end
end
for j=30,32 do
map.SetMapScriptData(MapID,InstanceID,1,j,arrID[j])
map.SetMapScriptData(MapID,InstanceID,1,j+3,arrNum[j])
end
end
end