-- определение объекта -- объекты поля боя могут открыть несколько боя Poboishe_Battle = {} -- лагерь объекта Poboishe_Side = {} --Игроки объекты Poboishe_Role = {} --Обновить область реквизита объекта Poboishe_Area = {} Poboishe_Roletotal = 0 Poboishe_Exp = {} Poboishe_Exp[50]= 243000 Poboishe_Exp[51]= 255000 Poboishe_Exp[52]= 265000 Poboishe_Exp[53]= 276000 Poboishe_Exp[54]= 289000 Poboishe_Exp[55]= 314000 Poboishe_Exp[56]= 327000 Poboishe_Exp[57]= 339000 Poboishe_Exp[58]= 352000 Poboishe_Exp[59]= 388000 Poboishe_Exp[60]= 507000 Poboishe_Exp[61]= 525000 Poboishe_Exp[62]= 544000 Poboishe_Exp[63]= 564000 Poboishe_Exp[64]= 582000 Poboishe_Exp[65]= 606000 Poboishe_Exp[66]= 627000 Poboishe_Exp[67]= 648000 Poboishe_Exp[68]= 670000 Poboishe_Exp[69]= 720000 Poboishe_Exp[70]= 1073000 Poboishe_Exp[71]= 1107000 Poboishe_Exp[72]= 1143000 Poboishe_Exp[73]= 1180000 Poboishe_Exp[74]= 1217000 Poboishe_Exp[75]= 1256000 Poboishe_Exp[76]= 1293000 Poboishe_Exp[77]= 1331000 Poboishe_Exp[78]= 1370000 Poboishe_Exp[79]= 2116000 Poboishe_Exp[80]= 2178000 Poboishe_Exp[81]= 2241000 Poboishe_Exp[82]= 2303000 Poboishe_Exp[83]= 2370000 Poboishe_Exp[84]= 2438000 Poboishe_Exp[85]= 2505000 Poboishe_Exp[86]= 2572000 Poboishe_Exp[87]= 2640000 Poboishe_Exp[88]= 2709000 Poboishe_Exp[89]= 2782000 Poboishe_Exp[90]= 3490000 Poboishe_Exp[91]= 3546000 Poboishe_Exp[92]= 3602000 Poboishe_Exp[93]= 3662000 Poboishe_Exp[94]= 3720000 Poboishe_Exp[95]= 3777000 Poboishe_Exp[96]= 3833000 Poboishe_Exp[97]= 3887000 Poboishe_Exp[98]= 3941000 Poboishe_Exp[99]= 3996000 Poboishe_Exp[100]= 4050000 Poboishe_Exp[101]= 4100000 Poboishe_Exp[102]= 4150000 Poboishe_Exp[103]= 4200000 Poboishe_Exp[104]= 4250000 Poboishe_Exp[105]= 4300000 Poboishe_Exp[106]= 4350000 Poboishe_Exp[107]= 4400000 Poboishe_Exp[108]= 4450000 Poboishe_Exp[109]= 4500000 Poboishe_Exp[110]= 4550000 --Вход на локацию function S66_1_OnPlayerEnter(MapID, InstanceID, RoleID) local RoleObj = Poboishe_Role[RoleID] RoleObj:GetAttBuff_Poboishe() RoleObj:WuDi_Poboishe() RoleObj:SetColor_Poboishe() RoleObj:ShowPoboisheTime() RoleObj:PlayerEnterPoboishe() local BattleObj = Poboishe_Battle[InstanceID] BattleObj:SendAllInfo_Poboishe() end --Убийство персонажа function s66_1_KillPeople(MapID, InstanceID, RoleID, KillerID) if unit.IsPlayer(KillerID) and unit.IsPlayer(RoleID) and RoleID ~= KillerID then local RoleObj = Poboishe_Role[KillerID] RoleObj:GetKillExp_Poboishe() local point = 1 local b = role.GetRoleItemNum(RoleID,5300104) if b >0 then local x,y,z = unit.GetPosition(MapID, InstanceID,RoleID) map.MapCreateCreature(MapID, InstanceID, 9010354, x, y, z, 1, "") role.RemoveFromRole(MapID, InstanceID, RoleID, 5300104, 1, 101) local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 101, 950633) --Флаг крови оставлен в координатах msg.AddMsgEvent(MsgID, 9, x) msg.AddMsgEvent(MsgID, 9, z) msg.DispatchMapMsgEvent(MsgID, S66_1_MapID,InstanceID) end if RoleObj.Side == "Red" then Poboishe_Battle[RoleObj.InstanceID].RedPlayer.Point = Poboishe_Battle[RoleObj.InstanceID].RedPlayer.Point + point elseif RoleObj.Side == "Blue" then Poboishe_Battle[RoleObj.InstanceID].BluePlayer.Point = Poboishe_Battle[RoleObj.InstanceID].BluePlayer.Point + point end local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 101, 206726) msg.AddMsgEvent(MsgID, 2, RoleID) msg.DispatchRoleMsgEvent(KillerID, MsgID) --Вы убили игрока и получили опты local BattleObj = Poboishe_Battle[InstanceID] BattleObj:SendAllInfo_Poboishe() end end --Игрок покидает поле боя function s66_1_LeaveMap(MapID, InstanceID, RoleID) unit.UnsetState(MapID, InstanceID, RoleID, 10) unit.UnsetState(MapID, InstanceID, RoleID, 11) local c1 = role.GetRoleItemNum(RoleID,6600488) local c2 = role.GetRoleItemNum(RoleID,6600565) local c3 = role.GetRoleItemNum(RoleID,6600566) local c4 = role.GetRoleItemNum(RoleID,6600559) local c5 = role.GetRoleItemNum(RoleID,6600560) local c6 = role.GetRoleItemNum(RoleID,6600561) local c7 = role.GetRoleItemNum(RoleID,6600562) local c8 = role.GetRoleItemNum(RoleID,6600563) local c9 = role.GetRoleItemNum(RoleID,6600564) role.RemoveFromRole(MapID, InstanceID, RoleID, 6600488, c1, 101) role.RemoveFromRole(MapID, InstanceID, RoleID, 6600565, c2, 101) role.RemoveFromRole(MapID, InstanceID, RoleID, 6600566, c3, 101) role.RemoveFromRole(MapID, InstanceID, RoleID, 6600559, c4, 101) role.RemoveFromRole(MapID, InstanceID, RoleID, 6600560, c5, 101) role.RemoveFromRole(MapID, InstanceID, RoleID, 6600561, c6, 101) role.RemoveFromRole(MapID, InstanceID, RoleID, 6600562, c7, 101) role.RemoveFromRole(MapID, InstanceID, RoleID, 6600563, c8, 101) role.RemoveFromRole(MapID, InstanceID, RoleID, 6600564, c9, 101) role.RemoveSkill(RoleID, 91008) role.RemoveSkill(RoleID, 91009) role.RemoveSkill(RoleID, 91010) local b = role.GetRoleItemNum(RoleID,5300104) if b >0 then map.MapCreateCreature(S66_1_MapID, InstanceID, 9010354, 181, 7239, 208, 1, "") unit.CancelBuff(MapID, InstanceID, RoleID, 9995801) role.RemoveFromRole(MapID, InstanceID, RoleID, 5300104, 1, 101) local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 101, 950632) --Флаг крови появился на просторах Снежного пика в координатах 181 208. Отнесите его к Кристальному источнику, чтобы заработать дополнительные очки для своей команды. msg.DispatchMapMsgEvent(MsgID, MapID,InstanceID) end local RoleObj = Poboishe_Role[RoleID] if RoleObj ~= nil then RoleObj:PlayerLeavePoboishe() local BattleObj = Poboishe_Battle[InstanceID] BattleObj:SendAllInfo_Poboishe() end end --Воскрешение игрока function s66_1_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) local k = math.random(9) local RoleObj = Poboishe_Role[RoleID] RoleObj:WuDi_Poboishe() return ReviveHP, ReviveMP,S66_1_Point[k].x, S66_1_Point[k].y*51,S66_1_Point[k].z, MapID end -- Проверка на отношения function s66_1_FriendEnemy(MapID, InstanceID, SrcID, TargetID) if unit.IsPlayer(SrcID) and unit.IsPlayer(TargetID) then local RoleObj1 = GetPoboisheRoleObj(SrcID) local RoleObj2 = GetPoboisheRoleObj(TargetID) if RoleObj1 ~= nil and RoleObj2 ~= nil then if RoleObj1.Side == RoleObj2.Side then return true, false, false, true else return false, true, false, true end end end return false, false, false, false end --Регистрация скриптов aux.RegisterMapEvent("s66_1", 2, "S66_1_OnPlayerEnter") aux.RegisterMapEvent("s66_1", 5, "s66_1_KillPeople") aux.RegisterMapEvent("s66_1", 3, "s66_1_LeaveMap") aux.RegisterMapEvent("s66_1", 11, "s66_1_RoloRevive") aux.RegisterMapEvent("s66_1", 16, "s66_1_FriendEnemy")