-- ============================================================================= -- СИСТЕМА АРЕНЫ FRONTIR - ОБРАБОТЧИКИ КАРТЫ -- Версия: 2.0 -- Описание: Логика управления ареной, боями и рейтингом -- ============================================================================= -- ============================================================================= -- Обработчик входа игрока на арену Frontir -- Настраивает игроков для боя, применяет баффы и устанавливает врагов -- ============================================================================= function Arena_Frontir_OnPlayerEnter(MapID, InstanceID, RoleID) -- Восстановление HP и MP до максимума local ReviveHP = role.GetRoleAttValue(MapID, InstanceID, RoleID, 8) -- Максимальный HP local ReviveMP = role.GetRoleAttValue(MapID, InstanceID, RoleID, 10) -- Максимальный MP role.ModRoleAttValue(MapID, InstanceID, RoleID, 9, ReviveHP) -- Текущий HP role.ModRoleAttValue(MapID, InstanceID, RoleID, 11, ReviveMP) -- Текущий MP -- Получение ID двух игроков для боя map.SetMapScriptData(MapID, InstanceID, 1, 1, act.GetActScriptData(1185, 1, 3)) -- Игрок 1 map.SetMapScriptData(MapID, InstanceID, 1, 2, act.GetActScriptData(1185, 1, 4)) -- Игрок 2 local playerA = map.GetMapScriptData(MapID, InstanceID, 1, 1) -- ID первого игрока local playerB = map.GetMapScriptData(MapID, InstanceID, 1, 2) -- ID второго игрока -- Снятие существующих баффов unit.CancelBuff(MapID, InstanceID, playerA, 9999601) -- Бафф 1 unit.CancelBuff(MapID, InstanceID, playerB, 9999601) -- Бафф 1 unit.CancelBuff(MapID, InstanceID, playerA, 9019301) -- Бафф 2 unit.CancelBuff(MapID, InstanceID, playerB, 9019301) -- Бафф 2 -- Установка состояний игроков role.SetRoleState(playerA, 4, 1) -- Состояние для игрока A role.SetRoleState(playerB, 4, 1) -- Состояние для игрока B unit.SetState(MapID, InstanceID, playerA, 8) -- Состояние карты для A unit.SetState(MapID, InstanceID, playerB, 9) -- Состояние карты для B -- Установка врагов для системы последнего врага role.frontirenemy(playerA, 1, playerB) -- A считает B врагом role.frontirenemy(playerB, 1, playerA) -- B считает A врагом -- Получение ID игроков для применения баффов local playerA = map.GetMapScriptData(MapID, InstanceID, 1, 1) local playerB = map.GetMapScriptData(MapID, InstanceID, 1, 2) -- Применение базовых баффов для подготовки к битве unit.AddBuff(MapID, InstanceID, playerA, 3824301, playerA) -- Боевой бафф unit.AddBuff(MapID, InstanceID, playerB, 3824301, playerB) -- Боевой бафф -- Применение баффов отката способностей unit.AddBuff(MapID, InstanceID, playerA, 6936101, playerA) -- Бафф отката unit.AddBuff(MapID, InstanceID, playerB, 6936101, playerB) -- Бафф отката -- ЗАКОММЕНТИРОВАННЫЙ КОД: Специальные баффы для определенных классов -- (Апостол - класс 12, Паладин - класс 7) -- Код закомментирован, так как требует дополнительного тестирования -- Отправка сообщения об оставшемся времени арены local arenaTime = role.GetRoleScriptData(playerA, 1, RoleDataType["ArenaTime"]) local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 16, 28) -- ID типа сообщения msg.AddMsgEvent(MsgID, 16, arenaTime) -- Оставшееся время msg.DispatchRoleMsgEvent(RoleID, MsgID) -- Специальная логика для второго игрока if RoleID == act.GetActScriptData(1185, 1, 4) then -- Сброс данных активности act.SetActScriptData(1185, 1, 3, 0) act.SetActScriptData(1185, 1, 4, 0) -- Создание NPC существ для арены map.MapCreateColCreature(MapID, InstanceID, 1094007, 200, 75, 200, true, "") -- NPC 1 map.MapCreateColCreature(MapID, InstanceID, 1094011, 1, 75, 1, true, "") -- NPC 2 end end -- ============================================================================= -- Обработчик убийства игрока в арене Frontir -- Обрабатывает победу, награды и обновление рейтинга -- ============================================================================= function Arena_Frontir_KillPeople(MapID, InstanceID, RoleID, KillerID) -- Проверка, что убийца и жертва - игроки и не один и тот же игрок if unit.IsPlayer(KillerID) and unit.IsPlayer(RoleID) and RoleID ~= KillerID then -- Отправка сообщения победителю local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 101, 950660) -- "Бой окончен. Победитель: " msg.AddMsgEvent(MsgID, 2, KillerID) -- ID победителя msg.DispatchRoleMsgEvent(KillerID, MsgID) -- Создание NPC для завершения боя map.MapCreateColCreature(MapID, InstanceID, 1094008, 200, 75, 200, true, "") -- Выдача награды победителю - Медаль доблести role.AddRoleItem(MapID, InstanceID, KillerID, 6600799, 1, -1, 8, 420) -- Случайное сообщение о победе (1 из 3 вариантов) local messageVariant = math.random(3) local worldMsgID = msg.BeginMsgEvent() msg.AddMsgEvent(worldMsgID, 13, 1) msg.AddMsgEvent(worldMsgID, 1, 952801) -- ID глобального сообщения if messageVariant == 1 then -- Вариант 1: Жертва, Убийца, Убийца msg.AddMsgEvent(worldMsgID, 2, RoleID) msg.AddMsgEvent(worldMsgID, 2, KillerID) msg.AddMsgEvent(worldMsgID, 2, KillerID) else -- Вариант 2-3: Убийца, Жертва, Убийца msg.AddMsgEvent(worldMsgID, 2, KillerID) msg.AddMsgEvent(worldMsgID, 2, RoleID) msg.AddMsgEvent(worldMsgID, 2, KillerID) end msg.DispatchWorldMsgEvent(worldMsgID) -- Обновление рейтинга, если активность запущена if act.GetActIsStart(1185) or act.GetActIsStart(1191) then -- Обновление рейтинга победителя (+20 славы, +1 победа) arena_frontire_reiting_sql(KillerID, 1, 0, 20, 1) -- Ежедневный рейтинг arena_frontire_reiting_sql_mouth(KillerID, 1, 0, 20, 1) -- Месячный рейтинг -- Получение текущего рейтинга проигравшего local _, _, _, loser_rating = arena_frontire_reiting_sql(RoleID, 0, 0, 0, 0) -- Штраф для проигравшего (-10 славы если рейтинг >= 10, иначе 0) if tonumber(loser_rating) >= 10 then arena_frontire_reiting_sql(RoleID, 0, 1, -10, 1) -- Ежедневный рейтинг else arena_frontire_reiting_sql(RoleID, 0, 1, 0, 1) -- Ежедневный рейтинг end -- Аналогичная логика для месячного рейтинга local _, _, _, loser_monthly_rating = arena_frontire_reiting_sql_mouth(RoleID, 0, 0, 0, 0) if tonumber(loser_monthly_rating) >= 10 then arena_frontire_reiting_sql_mouth(RoleID, 0, 1, -10, 1) -- Месячный рейтинг else arena_frontire_reiting_sql_mouth(RoleID, 0, 1, 0, 1) -- Месячный рейтинг end end end end -- ============================================================================= -- Обработчик выхода игрока с поля боя арены Frontir -- Очищает баффы, состояния и удаляет инстанс карты -- ============================================================================= function Arena_Frontir_LeaveMap(MapID, InstanceID, RoleID) -- Снятие баффов арены unit.CancelBuff(MapID, InstanceID, RoleID, 9244201) -- Сброс состояний игрока role.UnSetRoleState(RoleID, 4, 1) unit.UnsetState(MapID, InstanceID, RoleID, 8) unit.UnsetState(MapID, InstanceID, RoleID, 9) -- Удаление инстанса карты map.DeleteInstance(MapID, InstanceID) end -- ============================================================================= -- Обработчик воскрешения игрока в арене Frontir -- Возвращает параметры для воскрешения на заданных координатах -- ============================================================================= function Arena_Frontir_RoloRevive(MapID, InstanceID, RoleID, Type, ReviveHP, ReviveMP, x, y, z, RebornMapID) -- Получение максимальных значений HP и MP ReviveHP = role.GetRoleAttValue(MapID, InstanceID, RoleID, 8) -- Максимальный HP ReviveMP = role.GetRoleAttValue(MapID, InstanceID, RoleID, 10) -- Максимальный MP -- Возврат параметров воскрешения -- Координаты: X=1281, Y=20287, Z=1339, MapID=3390518568 return ReviveHP, ReviveMP, 1281, 20287, 1339, 3390518568 end -- ============================================================================= -- Получение ID основной карты арены -- ============================================================================= function Arena_Frontir_GetOnePerfectMap(MapID, InstanceID, RoleID) local mainMapID = act.GetActScriptData(1185, 1, 3) return mainMapID end -- ============================================================================= -- Обработчик подключения игрока онлайн -- Очищает состояния и возвращает координаты для телепортации -- ============================================================================= function Arena_Frontir_CanTakeOverWhenOnline(MapID, RoleID) -- Сброс состояний игрока role.UnSetRoleState(RoleID, 4, 1) unit.UnsetState(MapID, InstanceID, RoleID, 8) unit.UnsetState(MapID, InstanceID, RoleID, 9) -- Возврат координат выхода: MapID, X, Y, Z return 3390518568, 1281, 20287, 1339 end -- ============================================================================= -- Получение координат выхода из арены -- Очищает состояния и удаляет инстанс -- ============================================================================= function Arena_Frontir_GetExporMapAndCoord(MapID, InstanceID, RoleID) -- Сброс состояний игрока role.UnSetRoleState(RoleID, 4, 1) unit.UnsetState(MapID, InstanceID, RoleID, 8) unit.UnsetState(MapID, InstanceID, RoleID, 9) -- Удаление инстанса карты map.DeleteInstance(MapID, InstanceID) -- Возврат: тип выхода, MapID, X, Y, Z return 1, 3390518568, 1281, 20287, 1339 end -- ============================================================================= -- Проверка возможности входа в арену Frontir -- Требуемый уровень: 80+ -- ============================================================================= function Arena_Frontir_CanEnter(MapID, InstanceID, RoleID) local playerLevel = role.GetRoleLevel(MapID, InstanceID, RoleID) if playerLevel >= 80 then return 1 -- Доступ разрешен else return 0 -- Доступ запрещен end end -- ============================================================================= -- Обработчик исчезновения NPC 1094007 (завершение боя по таймауту) -- Определяет победителя по количеству HP и обновляет рейтинг -- ============================================================================= function c1094007_On_Disappear(MapID, InstanceID, TargetID, TargetTypeID) local playerA = map.GetMapScriptData(MapID, InstanceID, 1, 1) local playerB = map.GetMapScriptData(MapID, InstanceID, 1, 2) local hpA = role.GetRoleAttValue(MapID, InstanceID, playerA, 9) -- Текущий HP игрока A local hpB = role.GetRoleAttValue(MapID, InstanceID, playerB, 9) -- Текущий HP игрока B if hpA > hpB then -- Игрок A победил (больше HP) if act.GetActIsStart(1185) or act.GetActIsStart(1191) then -- Обновление рейтинга победителя arena_frontire_reiting_sql(playerA, 1, 0, 20, 1) arena_frontire_reiting_sql_mouth(playerA, 1, 0, 20, 1) -- Глобальное сообщение о победе local messageVariant = math.random(3) local worldMsgID = msg.BeginMsgEvent() msg.AddMsgEvent(worldMsgID, 13, 1) msg.AddMsgEvent(worldMsgID, 1, 952801) if messageVariant == 1 then msg.AddMsgEvent(worldMsgID, 2, playerB) -- Проигравший msg.AddMsgEvent(worldMsgID, 2, playerA) -- Победитель msg.AddMsgEvent(worldMsgID, 2, playerA) -- Победитель else msg.AddMsgEvent(worldMsgID, 2, playerA) -- Победитель msg.AddMsgEvent(worldMsgID, 2, playerB) -- Проигравший msg.AddMsgEvent(worldMsgID, 2, playerA) -- Победитель end msg.DispatchWorldMsgEvent(worldMsgID) -- Штраф для проигравшего local _, _, _, loser_rating = arena_frontire_reiting_sql(playerB, 0, 0, 0, 0) if tonumber(loser_rating) >= 10 then arena_frontire_reiting_sql(playerB, 0, 1, -10, 1) else arena_frontire_reiting_sql(playerB, 0, 1, 0, 1) end local _, _, _, loser_monthly_rating = arena_frontire_reiting_sql_mouth(playerB, 0, 0, 0, 0) if tonumber(loser_monthly_rating) >= 10 then arena_frontire_reiting_sql_mouth(playerB, 0, 1, -10, 1) else arena_frontire_reiting_sql_mouth(playerB, 0, 1, 0, 1) end end -- Получаем всех игроков в инстансе и выкидываем их перед удалением local RoleTbl = map.GetMapAllRoleID(MapID, InstanceID) if RoleTbl ~= nil then for i, playerID in pairs(RoleTbl) do if playerID ~= nil and playerID ~= 0 then -- Проверяем, что игрок действительно в этом инстансе local playerMap, playerInstance = role.GetRoleMapID(playerID) if playerMap == MapID and playerInstance == InstanceID then -- Выкидываем на безопасную карту выхода role.RoleGotoNewMap(MapID, InstanceID, playerID, 3390518568, 1281, 20287, 1339) end end end end -- Получаем всех игроков в инстансе и выкидываем их перед удалением local RoleTbl = map.GetMapAllRoleID(MapID, InstanceID) if RoleTbl ~= nil then for i, playerID in pairs(RoleTbl) do if playerID ~= nil and playerID ~= 0 then -- Проверяем, что игрок действительно в этом инстансе local playerMap, playerInstance = role.GetRoleMapID(playerID) if playerMap == MapID and playerInstance == InstanceID then -- Выкидываем на безопасную карту выхода role.RoleGotoNewMap(MapID, InstanceID, playerID, 3390518568, 1281, 20287, 1339) end end end end map.DeleteInstance(MapID, InstanceID) end if k2 > k1 then if act.GetActIsStart(1185) == true or act.GetActIsStart(1191) == true then arena_frontire_reiting_sql(b,1,0,20,1) arena_frontire_reiting_sql_mouth(b,1,0,20,1) local th = math.random(3) if th == 1 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 13, 1) msg.AddMsgEvent(MsgID, 1, 952801) --魔王凯·米隆已经被XXX击败,混沌魔域的恶魔们再无还手之力! msg.AddMsgEvent(MsgID, 2, a) msg.AddMsgEvent(MsgID, 2, b) msg.AddMsgEvent(MsgID, 2, b) msg.DispatchWorldMsgEvent(MsgID) else local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 13, 1) msg.AddMsgEvent(MsgID, 1, 952801) --魔王凯·米隆已经被XXX击败,混沌魔域的恶魔们再无还手之力! msg.AddMsgEvent(MsgID, 2, b) msg.AddMsgEvent(MsgID, 2, a) msg.AddMsgEvent(MsgID, 2, b) msg.DispatchWorldMsgEvent(MsgID) end local _, _, _, my_rating_point,my_rating_victory,my_rating_defeat,_ = arena_frontire_reiting_sql(a,0,0,0,0) if tonumber(my_rating_point) >= 10 then arena_frontire_reiting_sql(a,0,1,-10,1) else arena_frontire_reiting_sql(a,0,1,0,1) end local _, _, _, my_rating_point,my_rating_victory,my_rating_defeat,_ = arena_frontire_reiting_sql_mouth(a,0,0,0,0) if tonumber(my_rating_point) >= 10 then arena_frontire_reiting_sql_mouth(a,0,1,-10,1) else arena_frontire_reiting_sql_mouth(a,0,1,0,1) end end map.DeleteInstance(MapID, InstanceID) end end aux.RegisterCreatureEvent(1094007, 13, "c1094007_On_Disappear") function c1094008_On_Disappear(MapID, InstanceID, TargetID, TargetTypeID) local Arena = {} Arena[1] = 965742749 Arena[2] = 965743517 Arena[3] = 965743261 Arena[4] = 965744029 for i = 1,4 do local arenaInstanceID = map.GetMapScriptData(MapID,InstanceID,1,1) -- Получаем всех игроков в инстансе и выкидываем их перед удалением local RoleTbl = map.GetMapAllRoleID(Arena[i], arenaInstanceID) if RoleTbl ~= nil then for j, playerID in pairs(RoleTbl) do if playerID ~= nil and playerID ~= 0 then -- Проверяем, что игрок действительно в этом инстансе local playerMap, playerInstance = role.GetRoleMapID(playerID) if playerMap == Arena[i] and playerInstance == arenaInstanceID then -- Выкидываем на безопасную карту выхода role.RoleGotoNewMap(Arena[i], arenaInstanceID, playerID, 3390518568, 1281, 20287, 1339) end end end end map.DeleteInstance(Arena[i], arenaInstanceID) end end aux.RegisterCreatureEvent(1094008, 13, "c1094008_On_Disappear") function c1094011_On_Disappear(MapID, InstanceID, TargetID, TargetTypeID) map.MapCreateColCreature(MapID, InstanceID,1094011,1, 75, 1, true, "") local RoleTbl = map.GetMapAllRoleID(MapID,InstanceID) if table.maxn(RoleTbl) == 1 then local Arena = {} Arena[1] = 965742749 Arena[2] = 965743517 Arena[3] = 965743261 Arena[4] = 965744029 local a = map.GetMapScriptData(MapID,InstanceID,1,1) local b = map.GetMapScriptData(MapID,InstanceID,1,2) if RoleTbl[1] == a then if act.GetActIsStart(1185) == true or act.GetActIsStart(1191) == true then arena_frontire_reiting_sql(a,1,0,20,1) arena_frontire_reiting_sql_mouth(a,1,0,20,1) local th = math.random(3) if th == 1 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 13, 1) msg.AddMsgEvent(MsgID, 1, 952801) --魔王凯·米隆已经被XXX击败,混沌魔域的恶魔们再无还手之力! msg.AddMsgEvent(MsgID, 2, b) msg.AddMsgEvent(MsgID, 2, a) msg.AddMsgEvent(MsgID, 2, a) msg.DispatchWorldMsgEvent(MsgID) else local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 13, 1) msg.AddMsgEvent(MsgID, 1, 952801) --魔王凯·米隆已经被XXX击败,混沌魔域的恶魔们再无还手之力! msg.AddMsgEvent(MsgID, 2, a) msg.AddMsgEvent(MsgID, 2, b) msg.AddMsgEvent(MsgID, 2, a) msg.DispatchWorldMsgEvent(MsgID) end local _, _, _, my_rating_point,my_rating_victory,my_rating_defeat,_ = arena_frontire_reiting_sql(b,0,0,0,0) if tonumber(my_rating_point) >= 10 then arena_frontire_reiting_sql(b,0,1,-10,1) else arena_frontire_reiting_sql(b,0,1,0,1) end local _, _, _, my_rating_point,my_rating_victory,my_rating_defeat,_ = arena_frontire_reiting_sql_mouth(b,0,0,0,0) if tonumber(my_rating_point) >= 10 then arena_frontire_reiting_sql_mouth(b,0,1,-10,1) else arena_frontire_reiting_sql_mouth(b,0,1,0,1) end end end if RoleTbl[1] == b then if act.GetActIsStart(1185) == true or act.GetActIsStart(1191) == true then arena_frontire_reiting_sql(b,1,0,20,1) arena_frontire_reiting_sql_mouth(b,1,0,20,1) local th = math.random(3) if th == 1 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 13, 1) msg.AddMsgEvent(MsgID, 1, 952801) --魔王凯·米隆已经被XXX击败,混沌魔域的恶魔们再无还手之力! msg.AddMsgEvent(MsgID, 2, a) msg.AddMsgEvent(MsgID, 2, b) msg.AddMsgEvent(MsgID, 2, b) msg.DispatchWorldMsgEvent(MsgID) else local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 13, 1) msg.AddMsgEvent(MsgID, 1, 952801) --魔王凯·米隆已经被XXX击败,混沌魔域的恶魔们再无还手之力! msg.AddMsgEvent(MsgID, 2, b) msg.AddMsgEvent(MsgID, 2, a) msg.AddMsgEvent(MsgID, 2, b) msg.DispatchWorldMsgEvent(MsgID) end local _, _, _, my_rating_point,my_rating_victory,my_rating_defeat,_ = arena_frontire_reiting_sql(a,0,0,0,0) if tonumber(my_rating_point) >= 10 then arena_frontire_reiting_sql(a,0,1,-10,1) else arena_frontire_reiting_sql(a,0,1,0,1) end local _, _, _, my_rating_point,my_rating_victory,my_rating_defeat,_ = arena_frontire_reiting_sql_mouth(a,0,0,0,0) if tonumber(my_rating_point) >= 10 then arena_frontire_reiting_sql_mouth(a,0,1,-10,1) else arena_frontire_reiting_sql_mouth(a,0,1,0,1) end end end local Arena = {} Arena[1] = 965742749 Arena[2] = 965743517 Arena[3] = 965743261 Arena[4] = 965744029 for i = 1,4 do local arenaInstanceID = map.GetMapScriptData(MapID,InstanceID,1,1) -- Получаем всех игроков в инстансе и выкидываем их перед удалением local RoleTbl = map.GetMapAllRoleID(Arena[i], arenaInstanceID) if RoleTbl ~= nil then for j, playerID in pairs(RoleTbl) do if playerID ~= nil and playerID ~= 0 then -- Проверяем, что игрок действительно в этом инстансе local playerMap, playerInstance = role.GetRoleMapID(playerID) if playerMap == Arena[i] and playerInstance == arenaInstanceID then -- Выкидываем на безопасную карту выхода role.RoleGotoNewMap(Arena[i], arenaInstanceID, playerID, 3390518568, 1281, 20287, 1339) end end end end map.DeleteInstance(Arena[i], arenaInstanceID) end end end aux.RegisterCreatureEvent(1094011, 13, "c1094011_On_Disappear") function Arena_Frontir_FriendEnemy(MapID, InstanceID, SrcID, TargetID) return false, true, false, true end aux.RegisterMapEvent("e01", 15, "Arena_Frontir_CanEnter") aux.RegisterMapEvent("e01", 2, "Arena_Frontir_OnPlayerEnter") aux.RegisterMapEvent("e01", 5, "Arena_Frontir_KillPeople") aux.RegisterMapEvent("e01", 3, "Arena_Frontir_LeaveMap") aux.RegisterMapEvent("e01", 11, "Arena_Frontir_RoloRevive") aux.RegisterMapEvent("e01", 13, "Arena_Frontir_GetExporMapAndCoord") aux.RegisterMapEvent("e01", 12, "Arena_Frontir_CanTakeOverWhenOnline") aux.RegisterMapEvent("e01", 14, "Arena_Frontir_GetOnePerfectMap") aux.RegisterMapEvent("e01", 16, "Arena_Frontir_FriendEnemy") aux.RegisterMapEvent("e02", 15, "Arena_Frontir_CanEnter") aux.RegisterMapEvent("e02", 2, "Arena_Frontir_OnPlayerEnter") aux.RegisterMapEvent("e02", 5, "Arena_Frontir_KillPeople") aux.RegisterMapEvent("e02", 3, "Arena_Frontir_LeaveMap") aux.RegisterMapEvent("e02", 11, "Arena_Frontir_RoloRevive") aux.RegisterMapEvent("e02", 13, "Arena_Frontir_GetExporMapAndCoord") aux.RegisterMapEvent("e02", 12, "Arena_Frontir_CanTakeOverWhenOnline") aux.RegisterMapEvent("e02", 14, "Arena_Frontir_GetOnePerfectMap") aux.RegisterMapEvent("e02", 16, "Arena_Frontir_FriendEnemy") aux.RegisterMapEvent("e03", 15, "Arena_Frontir_CanEnter") aux.RegisterMapEvent("e03", 2, "Arena_Frontir_OnPlayerEnter") aux.RegisterMapEvent("e03", 5, "Arena_Frontir_KillPeople") aux.RegisterMapEvent("e03", 3, "Arena_Frontir_LeaveMap") aux.RegisterMapEvent("e03", 11, "Arena_Frontir_RoloRevive") aux.RegisterMapEvent("e03", 13, "Arena_Frontir_GetExporMapAndCoord") aux.RegisterMapEvent("e03", 12, "Arena_Frontir_CanTakeOverWhenOnline") aux.RegisterMapEvent("e03", 14, "Arena_Frontir_GetOnePerfectMap") aux.RegisterMapEvent("e03", 16, "Arena_Frontir_FriendEnemy") aux.RegisterMapEvent("e04", 15, "Arena_Frontir_CanEnter") aux.RegisterMapEvent("e04", 2, "Arena_Frontir_OnPlayerEnter") aux.RegisterMapEvent("e04", 5, "Arena_Frontir_KillPeople") aux.RegisterMapEvent("e04", 3, "Arena_Frontir_LeaveMap") aux.RegisterMapEvent("e04", 11, "Arena_Frontir_RoloRevive") aux.RegisterMapEvent("s60", 11, "Arena_Frontir_RoloRevive") aux.RegisterMapEvent("e04", 13, "Arena_Frontir_GetExporMapAndCoord") aux.RegisterMapEvent("e04", 12, "Arena_Frontir_CanTakeOverWhenOnline") aux.RegisterMapEvent("e04", 14, "Arena_Frontir_GetOnePerfectMap") aux.RegisterMapEvent("e04", 16, "Arena_Frontir_FriendEnemy")