br_MapID = 1644196352 --Активация ивента function King_OnStart(actID) King_baoming = 0 King_ChooseSide() end --Окно сообщения function King_1_OnClick(MapID, InstanceID, RoleID, TOMsgID, ToMapID, x, y, z) local curhour = tonumber(os.date("%H")) local curmin = tonumber(os.date("%M")) local day = os.date("%A") if (day == "Wednesday" or day == "Wednesday") and 18 == curhour and (curmin >= 50 or curmin <= 58) then CreatKingRoleObj(RoleID) -- Регистрация игрока elseif 19 == curhour and (curmin == 1 or curmin == 5) then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 102, 951041) msg.DispatchBroadcast(MsgID,-1,-1,-1) end end function King_2_OnClick(MapID, InstanceID, RoleID, TOMsgID, ToMapID, x, y, z) local curhour = tonumber(os.date("%H")) local curmin = tonumber(os.date("%M")) local day = os.date("%A") if (day == "Wednesday" or day == "Wednesday") and 18 == curhour and (curmin >= 59 or curmin <= 00) then unit.AddBuff(MapID, InstanceID, RoleID, 3545301, RoleID) end end --Сообщение function King_MSG(actID) local Djartland = map.MapCreateColCreature(3424073512, -1, 9010680, 549, 22980, 259, 1) map.SetMapScriptData(3424073512, -1, 1, 1, Djartland) local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 102, 900291) msg.AddMsgEvent(MsgID, 5, TargetTypeID) msg.DispatchWorldMsgEvent(MsgID) end --Окончание ивента function King_OnEnd(actID) for k,v in pairs(King_Battle) do local BattleObj = King_Battle[k] BattleObj:SetPlayerFinalPoint_King() map.DeleteInstance(br_MapID, k) end King_Battle = {} King_Side = {} King_Role = {} King_Area = {} King_Roletotal = 0 end function King_OnTimerMin(actID) local Min = tonumber(os.date("%M")) if Min % 6 == 0 then for k,v in pairs(King_Battle) do local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 101, 951037) --Флаг крови появился на просторах Снежного пика в координатах 181 208. Отнесите его к Кристальному источнику, чтобы заработать дополнительные очки для своей команды. msg.DispatchMapMsgEvent(MsgID, br_MapID,k) end end end aux.RegisterActEvent(1212, 4, "King_OnTimerMin") aux.RegisterActEvent(1212, 3, "King_OnEnd") aux.RegisterActEvent(1212, 2, "King_OnStart") aux.RegisterActEvent(1512, 3, "King_OnEnd") aux.RegisterActEvent(1512, 2, "King_OnStart") aux.RegisterActEvent(1210, 2, "King_MSG") aux.RegisterActEvent(1510, 2, "King_MSG") aux.RegisterActEvent(1210, 8, "King_1_OnClick") aux.RegisterActEvent(1320, 8, "King_2_OnClick") aux.RegisterActEvent(1510, 8, "King_1_OnClick") aux.RegisterActEvent(1620, 8, "King_2_OnClick") --Разговор с нпц function x9010680_OnTalk(MapID, InstanceID, TargetID, TargetTypeID, RoleID, TalkIndex) local curmon = tonumber(os.date("%m")) local curday = tonumber(os.date("%d")) local curyear = tonumber(os.date("%Y")) local curtime = curyear*10000 + curmon*100 + curday local curhour = tonumber(os.date("%H")) local curmin = tonumber(os.date("%M")) local day = os.date("%A") local rolelevel = role.GetRoleLevel(MapID, InstanceID, RoleID) if TalkIndex == -1 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 951042) --Ивент Ледовое побоище доступен только во вторник и четверг, с 8:30 до 9:30, с 21:30 до 22:30. При перемещении на локацию ивента все игроки делятся на 2 команды. Участвовать в боях на Снежном пике можно либо в своём снаряжении, либо в специальном сете снаряжения, созданном специально для битвы (попадает в инвентарь при телепортации на локацию). Побеждает команда, набравшая наибольшее количество убийств в течение ивента. Участники победившей команды могут получить наивысшую награду после завершения ивента. msg.AddMsgEvent(MsgID, 24, TargetID) if act.GetActIsStart(1210) == true or act.GetActIsStart(1510) == true then msg.AddMsgEvent(MsgID, 21, 4) msg.AddMsgEvent(MsgID, 1, 951043) --Принять участие в войне end if act.GetActIsStart(1214) == true or act.GetActIsStart(1514) == true then msg.AddMsgEvent(MsgID, 21, 9) msg.AddMsgEvent(MsgID, 1, 206707) --Войти на поле боя end if act.GetActIsStart(1213) == true or act.GetActIsStart(1513) == true then msg.AddMsgEvent(MsgID, 21, 5) msg.AddMsgEvent(MsgID, 1, 951045) --Получить награду end msg.AddMsgEvent(MsgID, 21, 25) msg.AddMsgEvent(MsgID, 1, 951046) -- Правила msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 100002) -- OK msg.DispatchRoleMsgEvent(RoleID, MsgID) elseif TalkIndex == 4 then -- Принять участие в войне if King_Role[RoleID] ~= nil then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 950625) --Вы уже зарегистрированы! msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 100001) msg.DispatchRoleMsgEvent(RoleID, MsgID) else if rolelevel < 45 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 950627) --Королева Снежного Пика:\nК сожалению, ты будешь обречен на смерть, если приблизишься к полю боя. Стань сильным, получи 80-ый уровень и возвращайся. Тогда ты сможешь помочь! msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 100001) msg.DispatchRoleMsgEvent(RoleID, MsgID) else CreatKingRoleObj(RoleID) local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 951047) --Вы уже зарегистрированы! msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 100001) msg.DispatchRoleMsgEvent(RoleID, MsgID) end end elseif TalkIndex == 25 then -- Привила local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 951049) --Королева Снежного Пика:\nБез регистрации ты не можешь пройти на поле боя. msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 100001) msg.DispatchRoleMsgEvent(RoleID, MsgID) elseif TalkIndex == 5 then -- Получить награду local rea = role.GetRoleScriptData(RoleID, 1, RoleDataType["King_point"]) local rew = role.GetRoleScriptData(RoleID, 1, RoleDataType["King_win"]) if rea == 1 and rew == 1 then role.AddRoleItem(MapID, InstanceID, RoleID, 3500207, 50, -1, 8, 420) --- Набор притендента role.AddRoleItem(MapID, InstanceID, RoleID, 6600576, 2, -1, 8, 420) --- Ожерелье +45 role.AddRoleItem(MapID, InstanceID, RoleID, 6601999, 3, -1, 8, 420) --- Ожерелье +45 role.AddRoleItem(MapID, InstanceID, RoleID, 4810109, 10, -1, 8, 420) --- Ожерелье +45 role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) elseif rea == 2 and rew == 1 then role.AddRoleItem(MapID, InstanceID, RoleID, 3500207, 30, -1, 8, 420) --- Набор притендента role.AddRoleItem(MapID, InstanceID, RoleID, 6601999, 2, -1, 8, 420) role.AddRoleItem(MapID, InstanceID, RoleID, 6600576, 1, -1, 8, 420) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) elseif rea == 3 and rew == 1 then role.AddRoleItem(MapID, InstanceID, RoleID, 3500207, 20, -1, 8, 420)--- Набор притендента role.AddRoleItem(MapID, InstanceID, RoleID, 6601999, 1, -1, 8, 420) role.AddRoleItem(MapID, InstanceID, RoleID, 4810109, 6, -1, 8, 420) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) elseif rea > 4 and rew == 1 then role.AddRoleItem(MapID, InstanceID, RoleID, 3500207, 10, -1, 8, 420) ---- Набор притендента role.AddRoleItem(MapID, InstanceID, RoleID, 4810109, 5, -1, 8, 420) ---- Набор притендента role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) elseif rea > 5 and rew == 1 then role.AddRoleItem(MapID, InstanceID, RoleID, 3500207, 10, -1, 8, 420) ---- Набор притендента role.AddRoleItem(MapID, InstanceID, RoleID, 4810109, 5, -1, 8, 420) ---- Набор притендента role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) elseif rea > 6 and rew == 1 then role.AddRoleItem(MapID, InstanceID, RoleID, 3500207, 10, -1, 8, 420) ---- Набор притендента role.AddRoleItem(MapID, InstanceID, RoleID, 4810109, 5, -1, 8, 420) ---- Набор притендента role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) elseif rea > 7 and rew == 1 then role.AddRoleItem(MapID, InstanceID, RoleID, 3500207, 10, -1, 8, 420) ---- Набор притендента role.AddRoleItem(MapID, InstanceID, RoleID, 4810109, 5, -1, 8, 420) ---- Набор притендента role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) elseif rea > 8 and rew == 1 then role.AddRoleItem(MapID, InstanceID, RoleID, 3500207, 10, -1, 8, 420) ---- Набор притендента role.AddRoleItem(MapID, InstanceID, RoleID, 4810109, 5, -1, 8, 420) ---- Набор притендента role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) elseif rea > 9 and rew == 1 then role.AddRoleItem(MapID, InstanceID, RoleID, 3500207, 10, -1, 8, 420) ---- Набор притендента role.AddRoleItem(MapID, InstanceID, RoleID, 4810109, 5, -1, 8, 420) ---- Набор притендента role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) elseif rea > 10 and rew == 1 then role.AddRoleItem(MapID, InstanceID, RoleID, 3500207, 10, -1, 8, 420) ---- Набор притендента role.AddRoleItem(MapID, InstanceID, RoleID, 4810109, 5, -1, 8, 420) ---- Набор притендента role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) end elseif TalkIndex == 9 then -- Вход на поле боя if GetKingRoleObj(RoleID) == nil then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 20, 950629) --Королева Снежного Пика:\nБез регистрации ты не можешь пройти на поле боя. msg.AddMsgEvent(MsgID, 24, TargetID) msg.AddMsgEvent(MsgID, 21, -1) msg.AddMsgEvent(MsgID, 1, 100001) msg.DispatchRoleMsgEvent(RoleID, MsgID) else local k = math.random(44) role.RoleGotoNewMap(MapID, InstanceID, RoleID, br_MapID, brpoint[k][1], brpoint[k][2], brpoint[k][3]) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_win"], 0) role.SetRoleScriptData(RoleID, 1, RoleDataType["King_point"],0) end end end aux.RegisterCreatureEvent(9010680, 7, "x9010680_OnTalk")