-- Данные скрипта карты f01 -- mapscriptdata[1] - флаг спавна монстров в зоне -- [2] - флаг убийства первого босса -- [3] - флаг убийства второго босса -- [4] - флаг убийства третьего босса -- [5] - флаг убийства четвертого босса -- Обработчик входа игрока на карту f01 -- Вызывается при входе игрока на карту function f01_OnPlayerEnter(MapID, InstanceID, RoleID) -- Проверяем входные параметры if MapID == nil or InstanceID == nil or RoleID == nil then return end -- Проверяем и снимаем специальный бафф, если он есть local bhave = role.IsRoleHaveBuff(MapID, InstanceID, RoleID, 99996) if bhave == true then unit.CancelBuff(MapID, InstanceID, RoleID, 9999601) end -- Отправляем приветственное сообщение всем игрокам на карте local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 102, 100076) msg.DispatchMapMsgEvent(MsgID, MapID, InstanceID, -1) -- Проверяем, созданы ли уже монстры в этой зоне local monsterhave = map.GetMapScriptData(MapID, InstanceID, 1, 1) if monsterhave == 0 then -- Открываем двери (закомментировано) --[[ map.OpenCloseDoor(MapID, InstanceID, 1110, 1) map.OpenCloseDoor(MapID, InstanceID, 1111, nil) --]] -- Создаем основного монстра зоны map.MapCreateCreature(MapID, InstanceID, 3030003, 336, 50, 58) -- Устанавливаем флаг, что монстры созданы map.SetMapScriptData(MapID, InstanceID, 1, 1, 1) end -- Статистика посещения карты (закомментировано) -- instanceData(1, RoleID, 24, 31) -- UpdateRoleData(RoleID, 15, 1) end -- Регистрация обработчика входа игрока на карту aux.RegisterMapEvent("f01", 2, "f01_OnPlayerEnter") -- Обработчик входа в триггер на карте f01 -- Управляет телепортацией и взаимодействием с объектами function f01_OnEnterTrigger(MapID, InstanceID, RoleID, ObjID) -- Проверяем входные параметры if MapID == nil or InstanceID == nil or RoleID == nil or ObjID == nil then return end -- Триггер выхода из зоны (ObjID == 1116) if ObjID == 1116 then -- Отправляем сообщение игроку local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 102, 100078) -- msg.DispatchMapMsgEvent(MsgID, MapID, InstanceID, -1) -- Закомментировано msg.DispatchRoleMsgEvent(RoleID, MsgID) -- Телепортируем игрока в следующую зону role.RoleGotoNewMap(MapID, InstanceID, RoleID, 3424071976, 1283, 20830, 1347) end -- Триггер специального события (ObjID == 1120) if ObjID == 1120 then -- Проверяем флаг специального события local specialEventFlag = map.GetMapScriptData(MapID, InstanceID, 1, 2) if specialEventFlag == 0 then -- Отправляем сообщение игроку о специальном событии local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 102, 100077) -- msg.DispatchMapMsgEvent(MsgID, MapID, InstanceID, -1) -- Закомментировано msg.DispatchRoleMsgEvent(RoleID, MsgID) end -- Телепортация закомментирована -- role.RoleGotoNewMap(MapID, InstanceID, RoleID, 3424071976, 1283, 20830, 1347) end end -- Регистрация обработчика входа в триггер aux.RegisterMapEvent("f01", 6, "f01_OnEnterTrigger")