--Вход на локацию function Arena_Frontir_OnPlayerEnter(MapID, InstanceID, RoleID) ReviveHP = role.GetRoleAttValue(MapID, InstanceID, RoleID, 8) ReviveMP = role.GetRoleAttValue(MapID, InstanceID, RoleID, 10) role.ModRoleAttValue(MapID, InstanceID, RoleID, 9, ReviveHP) role.ModRoleAttValue(MapID, InstanceID, RoleID, 11, ReviveMP) map.SetMapScriptData(MapID,InstanceID,1,1,act.GetActScriptData(1185, 1, 3)) map.SetMapScriptData(MapID,InstanceID,1,2,act.GetActScriptData(1185, 1, 4)) local a = map.GetMapScriptData(MapID,InstanceID,1,1) local b = map.GetMapScriptData(MapID,InstanceID,1,2) unit.CancelBuff(MapID, InstanceID, a, 9999601) unit.CancelBuff(MapID, InstanceID, b, 9999601) unit.CancelBuff(MapID, InstanceID, a, 9019301) unit.CancelBuff(MapID, InstanceID, b, 9019301) role.SetRoleState(a, 4, 1) role.SetRoleState(b, 4, 1) unit.SetState(MapID, InstanceID,a, 8) unit.SetState(MapID, InstanceID,b, 9) --Enemylast role.frontirenemy(a, 1, b) role.frontirenemy(b, 1, a) ---Проверка апостол ли оба класса local a = map.GetMapScriptData(MapID,InstanceID,1,1) local b = map.GetMapScriptData(MapID,InstanceID,1,2) ---Подготовка к битве unit.AddBuff(MapID, InstanceID, a, 3824301, a) unit.AddBuff(MapID, InstanceID, b, 3824301, b) ---Откат unit.AddBuff(MapID, InstanceID, a, 6936101, a) unit.AddBuff(MapID, InstanceID, b, 6936101, b) --[[if role.GetRoleClass(a) == 12 and role.GetRoleClass(b) == 12 then unit.AddBuff(MapID, InstanceID, a, 9244501, a) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, b, 9244501, b) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, a, 9244601, a) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, b, 9244601, b) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, a, 9244701, a) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, b, 9244701, b) ---Повышение урона духа +100к end ---Проверка паладин ли оба класса if role.GetRoleClass(a) == 7 and role.GetRoleClass(b) == 7 then unit.AddBuff(MapID, InstanceID, a, 9244501, a) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, b, 9244501, b) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, a, 9244601, a) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, b, 9244601, b) ---Повышение урона духа +100к end ---Проверка паладин ли оба класса if role.GetRoleClass(a) == 12 and role.GetRoleClass(b) == 7 then unit.AddBuff(MapID, InstanceID, a, 9244501, a) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, b, 9244501, b) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, a, 9244601, a) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, b, 9244601, b) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, a, 9244701, a) ---Повышение урона духа +100к end ---Проверка паладин ли оба класса if role.GetRoleClass(a) == 7 and role.GetRoleClass(b) == 12 then unit.AddBuff(MapID, InstanceID, a, 9244501, a) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, b, 9244501, b) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, a, 9244601, a) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, b, 9244601, b) ---Повышение урона духа +100к unit.AddBuff(MapID, InstanceID, b, 9244701, b) ---Повышение урона духа +100к end--]] local k = role.GetRoleScriptData(a, 1, RoleDataType["ArenaTime"]) local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 16, 28) -- msg.AddMsgEvent(MsgID, 16, k) --剩余时间 msg.DispatchRoleMsgEvent(RoleID, MsgID) if RoleID == act.GetActScriptData(1185, 1, 4) then act.SetActScriptData(1185, 1, 3, 0) act.SetActScriptData(1185, 1, 4, 0) map.MapCreateColCreature(MapID, InstanceID,1094007,200, 75, 200, true, "") map.MapCreateColCreature(MapID, InstanceID,1094011,1, 75, 1, true, "") end end --Убийство персонажа 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) --Бой окончен. Победитель: <p1>. msg.AddMsgEvent(MsgID, 2, KillerID) msg.DispatchRoleMsgEvent(KillerID, MsgID) map.MapCreateColCreature(MapID, InstanceID,1094008,200, 75, 200, true, "") role.AddRoleItem(MapID, InstanceID, KillerID, 6600799, 1, -1, 8, 420) --- Медаль доблести 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, RoleID) msg.AddMsgEvent(MsgID, 2, KillerID) msg.AddMsgEvent(MsgID, 2, KillerID) msg.DispatchWorldMsgEvent(MsgID) else local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 13, 1) msg.AddMsgEvent(MsgID, 1, 952801) --魔王凯·米隆已经被XXX击败,混沌魔域的恶魔们再无还手之力! msg.AddMsgEvent(MsgID, 2, KillerID) msg.AddMsgEvent(MsgID, 2, RoleID) msg.AddMsgEvent(MsgID, 2, KillerID) msg.DispatchWorldMsgEvent(MsgID) end if act.GetActIsStart(1185) == true or act.GetActIsStart(1191) == true then arena_frontire_reiting_sql(KillerID,1,0,20,1) arena_frontire_reiting_sql_mouth(KillerID,1,0,20,1) local _, _, _, my_rating_point,my_rating_victory,my_rating_defeat,_ = arena_frontire_reiting_sql(RoleID,0,0,0,0) if tonumber(my_rating_point) >= 10 then arena_frontire_reiting_sql(RoleID,0,1,-10,1) else arena_frontire_reiting_sql(RoleID,0,1,0,1) end local _, _, _, my_rating_point,my_rating_victory,my_rating_defeat,_ = arena_frontire_reiting_sql_mouth(RoleID,0,0,0,0) if tonumber(my_rating_point) >= 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 --Игрок покидает поле боя 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 --Воскрешение игрока function Arena_Frontir_RoloRevive(MapID, InstanceID, RoleID, Type, ReviveHP, ReviveMP, x, y, z, RebornMapID) ReviveHP = role.GetRoleAttValue(MapID, InstanceID, RoleID, 8) ReviveMP = role.GetRoleAttValue(MapID, InstanceID, RoleID, 10) return ReviveHP, ReviveMP,1281, 20287,1339, 3390518568 end function Arena_Frontir_GetOnePerfectMap(MapID, InstanceID, RoleID) local a = act.GetActScriptData(1185, 1, 3) return a end function Arena_Frontir_CanTakeOverWhenOnline(MapID, RoleID) role.UnSetRoleState(RoleID, 4, 1) unit.UnsetState(MapID, InstanceID, RoleID, 8) unit.UnsetState(MapID, InstanceID, RoleID, 9) 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) return 1, 3390518568,1281,20287,1339 end function Arena_Frontir_CanEnter(MapID, InstanceID, RoleID) if role.GetRoleLevel(MapID, InstanceID, RoleID) >= 80 then return 1 else return 0 end end function c1094007_On_Disappear(MapID, InstanceID, TargetID, TargetTypeID) local a = map.GetMapScriptData(MapID,InstanceID,1,1) local b = map.GetMapScriptData(MapID,InstanceID,1,2) local k1 = role.GetRoleAttValue(MapID, InstanceID, a, 9) local k2 = role.GetRoleAttValue(MapID, InstanceID, b, 9) if k1 > k2 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 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 map.DeleteInstance(Arena[i], map.GetMapScriptData(MapID,InstanceID,1,1)) 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 for i = 1,4 do map.DeleteInstance(Arena[i], map.GetMapScriptData(MapID,InstanceID,1,1)) 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")