示例#1
0
 public static void SendDissmissResultResponse(Asda2Battleground client, DismissPlayerResult status, short targetSessId, int targetAccId)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.DissmissResult)) //6190
     {
         packet.WriteByte((byte)status);                                       //{status}default value : 0 Len : 1
         packet.WriteInt16(targetSessId);                                      //{targetSessId}default value : 15 Len : 2
         packet.WriteInt32(targetAccId);                                       //{accId}default value : 361343 Len : 4
         client.Send(packet, addEnd: true);
     }
 }
示例#2
0
 public static void SendWarChatResponseResponse(Asda2Battleground btlgrnd, string senderName, string message, int factionId, Locale locale)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.WarChatResponse)) //6719
     {
         packet.WriteByte(3);                                                   //value name : unk5 default value : 3Len : 1
         packet.WriteFixedAsciiString(senderName, 20);                          //{senderName}default value :  Len : 20
         packet.WriteFixedAsciiString(message, 200, locale);                    //{message}default value :  Len : 200
         btlgrnd.Send(packet, true, (short?)factionId, locale);
     }
 }
 public static void SendWarChatResponseResponse(Asda2Battleground btlgrnd, string senderName, string message,
                                                int factionId, Locale locale)
 {
     using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.WarChatResponse))
     {
         packet.WriteByte(3);
         packet.WriteFixedAsciiString(senderName, 20, Locale.Start);
         packet.WriteFixedAsciiString(message, 200, locale);
         btlgrnd.Send(packet, true, new short?((short)factionId), locale);
     }
 }
示例#4
0
 public static void SendQuestionDismissPlayerOrNotResponse(Asda2Battleground client, Character initer, Character target)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.QuestionDismissPlayerOrNot)) //6188
     {
         packet.WriteInt16(initer.SessionId);                                              //{initerSessId}default value : 0 Len : 2
         packet.WriteInt16(initer.Asda2FactionId);                                         //{factionId}default value : 1 Len : 2
         packet.WriteInt16(target.SessionId);                                              //{targetSessId}default value : 15 Len : 2
         packet.WriteInt32(target.AccId);                                                  //{dismissTargetAccId}default value : 361343 Len : 4
         client.Send(packet, true, initer.Asda2FactionId);
     }
 }
 public static void SendDissmissResultResponse(Asda2Battleground client, DismissPlayerResult status,
                                               short targetSessId, int targetAccId)
 {
     using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.DissmissResult))
     {
         packet.WriteByte((byte)status);
         packet.WriteInt16(targetSessId);
         packet.WriteInt32(targetAccId);
         client.Send(packet, true, new short?(), Locale.Any);
     }
 }
 public static void SendQuestionDismissPlayerOrNotResponse(Asda2Battleground client, Character initer,
                                                           Character target)
 {
     using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.QuestionDismissPlayerOrNot))
     {
         packet.WriteInt16(initer.SessionId);
         packet.WriteInt16(initer.Asda2FactionId);
         packet.WriteInt16(target.SessionId);
         packet.WriteInt32(target.AccId);
         client.Send(packet, true, new short?(initer.Asda2FactionId), Locale.Any);
     }
 }
 public static void SendCharacterHasLeftWarResponse(Asda2Battleground btlgrnd, int leaverAccId, byte leaverWarId,
                                                    string leaverName, int factionId)
 {
     using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.CharacterHasLeftWar))
     {
         packet.WriteByte(0);
         packet.WriteInt32(leaverAccId);
         packet.WriteByte(leaverWarId);
         packet.WriteFixedAsciiString(leaverName, 20, Locale.Start);
         btlgrnd.Send(packet, true, new short?((short)factionId), Locale.Any);
     }
 }
示例#8
0
 public static void SendCharacterHasLeftWarResponse(Asda2Battleground btlgrnd, int leaverAccId, byte leaverWarId,
                                                    string leaverName, int factionId)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.CharacterHasLeftWar)) //6721
     {
         packet.WriteByte(0);                                                       //value name : unk5 default value : 0Len : 1
         packet.WriteInt32(leaverAccId);                                            //{accId}default value : -1 Len : 4
         packet.WriteByte(leaverWarId);                                             //{warId}default value : 10 Len : 1
         packet.WriteFixedAsciiString(leaverName, 20);                              //{lefterName}default value :  Len : 20
         btlgrnd.Send(packet, true, (short?)factionId);
     }
 }
示例#9
0
 public static void SendSomeOneKilledSomeOneResponse(Asda2Battleground btlgrnd, int killerAccId, int killerWarId,
                                                     string killerName, string victimName)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.SomeOneKilledSomeOne)) //6730
     {
         packet.WriteInt32(killerAccId);                                             //{killerAccId}default value : 315044 Len : 4
         packet.WriteInt32(killerWarId);                                             //{killerWarId}default value : 8 Len : 4
         packet.WriteInt32(1);                                                       //value name : unk7 default value : 1Len : 4
         packet.WriteFixedAsciiString(killerName, 20);                               //{killerName}default value :  Len : 20
         packet.WriteFixedAsciiString(victimName, 20);                               //{vicimName}default value :  Len : 20
         btlgrnd.Send(packet, addEnd: true);
     }
 }
示例#10
0
 public static void SendHowManyPeopleInWarTeamsResponse(Asda2Battleground btlgrnd, Character chr = null)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.HowManyPeopleInWarTeams)) //6742
     {
         packet.WriteInt16(btlgrnd.LightTeam.Count);                                    //{light}default value : 20 Len : 2
         packet.WriteInt16(btlgrnd.DarkTeam.Count);                                     //{dark}default value : 24 Len : 2
         if (chr != null)
         {
             chr.Send(packet, addEnd: true);
         }
         else
         {
             btlgrnd.Send(packet, addEnd: true);
         }
     }
 }
示例#11
0
 public static void SendTeamPointsResponse(Asda2Battleground btlgrnd, Character chr = null)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.TeamPoints)) //6729
     {
         packet.WriteInt32(btlgrnd.LightScores);                           //{light}default value : 106 Len : 4
         packet.WriteInt32(btlgrnd.DarkScores);                            //{dark}default value : 462 Len : 4
         if (chr != null)
         {
             chr.Send(packet, addEnd: true);
         }
         else
         {
             btlgrnd.Send(packet, addEnd: true);
         }
     }
 }
 public static void SendTeamPointsResponse(Asda2Battleground btlgrnd, Character chr = null)
 {
     using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.TeamPoints))
     {
         packet.WriteInt32(btlgrnd.LightScores);
         packet.WriteInt32(btlgrnd.DarkScores);
         if (chr != null)
         {
             chr.Send(packet, true);
         }
         else
         {
             btlgrnd.Send(packet, true, new short?(), Locale.Any);
         }
     }
 }
 public static void SendHowManyPeopleInWarTeamsResponse(Asda2Battleground btlgrnd, Character chr = null)
 {
     using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.HowManyPeopleInWarTeams))
     {
         packet.WriteInt16(btlgrnd.LightTeam.Count);
         packet.WriteInt16(btlgrnd.DarkTeam.Count);
         if (chr != null)
         {
             chr.Send(packet, true);
         }
         else
         {
             btlgrnd.Send(packet, true, new short?(), Locale.Any);
         }
     }
 }
示例#14
0
 //todo players on war info
 //todo dismiss player from war
 //todo change Capitan
 //todo ocupation triggers
 public static void SendWarCurrentActionInfoResponse(Asda2Battleground btlgrnd,
                                                     BattleGroundInfoMessageType status, Int16 value, Character chr = null, short?factionId = null)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.WarCurrentActionInfo)) //6728
     {
         packet.WriteByte((byte)status);                                             //{status}default value : 8 Len : 1
         packet.WriteInt16(value);                                                   //{mins}default value : 0 Len : 2
         if (chr == null)
         {
             btlgrnd.Send(packet, addEnd: false, asda2FactionId: factionId);
         }
         else
         {
             chr.Send(packet);
         }
     }
 }
 public static void SendWarCurrentActionInfoResponse(Asda2Battleground btlgrnd,
                                                     BattleGroundInfoMessageType status, short value, Character chr = null, short?factionId = null)
 {
     using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.WarCurrentActionInfo))
     {
         packet.WriteByte((byte)status);
         packet.WriteInt16(value);
         if (chr == null)
         {
             btlgrnd.Send(packet, false, factionId, Locale.Any);
         }
         else
         {
             chr.Send(packet, false);
         }
     }
 }
        public static void SendSomeOneKilledSomeOneResponse(Asda2Battleground btlgrnd, int killerAccId, int killerWarId,
                                                            string killerName, string victimName)
        {
            Character characterByAccId = WCell.RealmServer.Global.World.GetCharacterByAccId((uint)killerAccId);
            AchievementProgressRecord progressRecord = characterByAccId.Achievements.GetOrCreateProgressRecord(21U);

            switch (++progressRecord.Counter)
            {
            case 13:
                characterByAccId.DiscoverTitle(Asda2TitleId.Soldier129);
                break;

            case 25:
                characterByAccId.GetTitle(Asda2TitleId.Soldier129);
                break;

            case 75:
                characterByAccId.DiscoverTitle(Asda2TitleId.Killer130);
                break;

            case 100:
                characterByAccId.GetTitle(Asda2TitleId.Killer130);
                break;

            case 500:
                characterByAccId.DiscoverTitle(Asda2TitleId.Assassin131);
                break;

            case 1000:
                characterByAccId.GetTitle(Asda2TitleId.Assassin131);
                break;
            }

            progressRecord.SaveAndFlush();
            using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.SomeOneKilledSomeOne))
            {
                packet.WriteInt32(killerAccId);
                packet.WriteInt32(killerWarId);
                packet.WriteInt32(1);
                packet.WriteFixedAsciiString(killerName, 20, Locale.Start);
                packet.WriteFixedAsciiString(victimName, 20, Locale.Start);
                btlgrnd.Send(packet, true, new short?(), Locale.Any);
            }
        }
        public static void RegisterToWarRequest(IRealmClient client, RealmPacketIn packet)
        {
            Asda2Battleground asda2Battleground = Asda2BattlegroundMgr.AllBattleGrounds[
                client.ActiveCharacter.MapId == MapId.Alpia
                    ? Asda2BattlegroundTown.Alpia
                    : (client.ActiveCharacter.MapId == MapId.Silaris
                        ? Asda2BattlegroundTown.Silaris
                        : (client.ActiveCharacter.MapId == MapId.Aquaton
                            ? Asda2BattlegroundTown.Aquaton
                            : Asda2BattlegroundTown.Flamio))][0];

            if (client.ActiveCharacter.Level < (int)asda2Battleground.MinEntryLevel ||
                client.ActiveCharacter.Level > (int)asda2Battleground.MaxEntryLevel)
            {
                Asda2BattlegroundHandler.SendRegisteredToWarResponse(client, RegisterToBattlegroundStatus.WrongLevel);
            }
            else if (client.ActiveCharacter.CurrentBattleGround != null)
            {
                Asda2BattlegroundHandler.SendRegisteredToWarResponse(client,
                                                                     RegisterToBattlegroundStatus.YouHaveAlreadyRegistered);
            }
            else if (asda2Battleground.DissmisedCharacterNames.Contains(client.ActiveCharacter.Name))
            {
                Asda2BattlegroundHandler.SendRegisteredToWarResponse(client,
                                                                     RegisterToBattlegroundStatus.YouCantEnterCauseYouHaveBeenDissmised);
            }
            else if (client.ActiveCharacter.Asda2FactionId < (short)0 ||
                     client.ActiveCharacter.Asda2FactionId > (short)1)
            {
                Asda2BattlegroundHandler.SendRegisteredToWarResponse(client,
                                                                     RegisterToBattlegroundStatus.BattleGroupInfoIsInvalid);
            }
            else if (asda2Battleground.Join(client.ActiveCharacter))
            {
                Asda2BattlegroundHandler.SendRegisteredToWarResponse(client, RegisterToBattlegroundStatus.Ok);
            }
            else
            {
                Asda2BattlegroundHandler.SendRegisteredToWarResponse(client, RegisterToBattlegroundStatus.Fail);
                client.ActiveCharacter.SendInfoMsg("Sry no more free war places. Try again later.");
            }
        }
        public static void StartOcupyPointRequest(IRealmClient client, RealmPacketIn packet)
        {
            packet.Position += 2;
            byte num = packet.ReadByte();

            if (!client.ActiveCharacter.IsAsda2BattlegroundInProgress ||
                client.ActiveCharacter.MapId != MapId.BatleField)
            {
                client.ActiveCharacter.YouAreFuckingCheater("Trying to occupy point while not in war.", 20);
            }
            else
            {
                Asda2Battleground currentBattleGround = client.ActiveCharacter.CurrentBattleGround;
                if ((int)num >= currentBattleGround.Points.Count)
                {
                    client.ActiveCharacter.YouAreFuckingCheater("Trying to occupy unknown war point.", 20);
                }
                else
                {
                    currentBattleGround.Points[(int)num].TryCapture(client.ActiveCharacter);
                }
            }
        }
示例#19
0
 public static void SendUpdateWarManagerScreenDataResponse(IRealmClient client, Asda2Battleground btlgrnd)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.UpdateWarManagerScreenData)) //6701
     {
         packet.WriteByte(1);                                                              //{status}default value : 1 Len : 1
         packet.WriteByte(0);                                                              //value name : unk6 default value : 0Len : 1
         packet.WriteInt16(btlgrnd.StartTime.Hour);                                        //{startTimeHours}default value : 8 Len : 2
         packet.WriteInt16(btlgrnd.StartTime.Minute);                                      //{startTimeMins}default value : 0 Len : 2
         packet.WriteInt16(btlgrnd.EndTime.Hour);                                          //{endTimeHours}default value : 8 Len : 2
         packet.WriteInt16(btlgrnd.EndTime.Minute);                                        //{endTimeMins}default value : 25 Len : 2
         packet.WriteInt16(btlgrnd.AmountOfBattleGroundsInList);                           //{battlesInListCount}default value : 1 Len : 2
         packet.WriteInt16(btlgrnd.LightTeam.Count);                                       //{forLitePeople}default value : 1 Len : 2
         packet.WriteInt16(btlgrnd.DarkTeam.Count);                                        //{forDarkPeople}default value : 0 Len : 2
         packet.WriteByte(0);                                                              //{mustBe0}default value : 0 Len : 1
         packet.WriteInt32(0);                                                             //{canBe0}default value : 586427422 Len : 4
         packet.WriteInt16(btlgrnd.LightWins);                                             //{winWarsLight}default value : 639 Len : 2
         packet.WriteInt16(btlgrnd.DarkWins);                                              //{winWarsDark}default value : 548 Len : 2
         packet.WriteInt16(btlgrnd.LightLooses);                                           //{lightLoses}default value : 548 Len : 2
         packet.WriteInt16(btlgrnd.DarkLooses);                                            //{darkLoses}default value : 639 Len : 2
         packet.WriteInt16(btlgrnd.LightWins + btlgrnd.LightLooses);                       //{totalWars}default value : 1187 Len : 2
         packet.WriteByte(0);                                                              //{dailyWarsMinusOne}default value : 0 Len : 1
         packet.WriteInt16(btlgrnd.MinEntryLevel);                                         //{minEnterLevel}default value : 10 Len : 2
         packet.WriteInt16(btlgrnd.MaxEntryLevel);                                         //{maxEnterLevel}default value : 29 Len : 2
         packet.WriteByte((byte)btlgrnd.WarType);
         client.Send(packet, addEnd: true);
     }
 }
示例#20
0
        public static void AddBattleGround(Asda2BattlegroundTown town)
        {
            var newBtgrnd = new Asda2Battleground {
                Town = town
            };

            switch (town)
            {
            case Asda2BattlegroundTown.Alpia:
                newBtgrnd.MinEntryLevel = 10;
                newBtgrnd.MaxEntryLevel = 29;
                break;

            case Asda2BattlegroundTown.Silaris:
                newBtgrnd.MinEntryLevel = 30;
                newBtgrnd.MaxEntryLevel = 49;
                break;

            case Asda2BattlegroundTown.Flamio:
                newBtgrnd.MinEntryLevel = 10;
                newBtgrnd.MaxEntryLevel = 250;
                break;

            case Asda2BattlegroundTown.Aquaton:
                newBtgrnd.MinEntryLevel = 10;
                newBtgrnd.MaxEntryLevel = 250;
                break;
            }
            var nextStartTimeEntry = GetNextStartTime(town);

            if (nextStartTimeEntry == null)
            {
                World.BroadcastMsg("WarManager", "War system broken, restart server!", Color.Red);
                return;
            }

            newBtgrnd.StartTime = nextStartTimeEntry.Time;
            newBtgrnd.WarType   = nextStartTimeEntry.Type;
            newBtgrnd.EndTime   = newBtgrnd.StartTime.AddMinutes(WarLengthMinutes);

            newBtgrnd.Points.Add(new Asda2WarPoint()
            {
                Id = 0, X = 258, Y = 165, BattleGround = newBtgrnd
            });
            newBtgrnd.Points.Add(new Asda2WarPoint()
            {
                Id = 1, X = 211, Y = 218, BattleGround = newBtgrnd
            });
            newBtgrnd.Points.Add(new Asda2WarPoint()
            {
                Id = 2, X = 308, Y = 221, BattleGround = newBtgrnd
            });
            newBtgrnd.Points.Add(new Asda2WarPoint()
            {
                Id = 3, X = 260, Y = 250, BattleGround = newBtgrnd
            });
            newBtgrnd.Points.Add(new Asda2WarPoint()
            {
                Id = 4, X = 209, Y = 284, BattleGround = newBtgrnd
            });
            newBtgrnd.Points.Add(new Asda2WarPoint()
            {
                Id = 5, X = 307, Y = 285, BattleGround = newBtgrnd
            });
            newBtgrnd.Points.Add(new Asda2WarPoint()
            {
                Id = 6, X = 258, Y = 340, BattleGround = newBtgrnd
            });

            foreach (var asda2WarPoint in newBtgrnd.Points)
            {
                asda2WarPoint.OwnedFaction = -1;
                World.TaskQueue.RegisterUpdatableLater(asda2WarPoint);
            }
            AllBattleGrounds[town].Add(newBtgrnd);
            World.TaskQueue.RegisterUpdatableLater(newBtgrnd);
        }
        public static void SendWarTeamListResponse(Character chr)
        {
            Asda2Battleground        currentBattleGround = chr.CurrentBattleGround;
            List <List <Character> > characterListList   = new List <List <Character> >();

            lock (currentBattleGround.JoinLock)
            {
                if (chr.Asda2FactionId == (short)0)
                {
                    int num = currentBattleGround.LightTeam.Count / 6;
                    if (num == 0)
                    {
                        num = 1;
                    }
                    for (int index = 0; index < num; ++index)
                    {
                        characterListList.Add(currentBattleGround.LightTeam.Values.Skip <Character>(index * 6)
                                              .Take <Character>(6).ToList <Character>());
                    }
                }
                else
                {
                    int num = currentBattleGround.DarkTeam.Count / 6;
                    if (num == 0)
                    {
                        num = 1;
                    }
                    for (int index = 0; index < num; ++index)
                    {
                        characterListList.Add(currentBattleGround.DarkTeam.Values.Skip <Character>(index * 6)
                                              .Take <Character>(6).ToList <Character>());
                    }
                }

                foreach (List <Character> characterList in characterListList)
                {
                    using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.WarTeamList))
                    {
                        foreach (Character character in characterList)
                        {
                            packet.WriteByte(character.CurrentBattleGroundId);
                            packet.WriteByte(character.Asda2FactionId);
                            packet.WriteInt16(character.SessionId);
                            packet.WriteInt32(character.AccId);
                            packet.WriteByte(character.CharNum);
                            packet.WriteByte(3);
                            packet.WriteByte(character.Asda2FactionRank);
                            packet.WriteInt16(character.Level);
                            packet.WriteByte(character.ProfessionLevel);
                            packet.WriteByte((byte)character.Archetype.ClassId);
                            packet.WriteByte(character.Guild == null ? 0 : (character.Guild.ClanCrest == null ? 0 : 1));
                            packet.WriteSkip(character.Guild == null
                                ? Asda2BattlegroundHandler.guildCrest
                                : character.Guild.ClanCrest ?? Asda2BattlegroundHandler.guildCrest);
                            packet.WriteInt16(character.IsInGroup ? 1 : -1);
                            packet.WriteInt16(character.BattlegroundDeathes);
                            packet.WriteInt16(character.BattlegroundKills);
                            packet.WriteInt16(character.BattlegroundActPoints);
                            packet.WriteFixedAsciiString(character.Name, 20, Locale.Start);
                            packet.WriteFixedAsciiString(character.Guild == null ? "" : character.Guild.Name, 17,
                                                         Locale.Start);
                            packet.WriteInt16((short)character.Asda2Position.X);
                            packet.WriteInt16((short)character.Asda2Position.Y);
                        }

                        chr.Send(packet, false);
                    }
                }

                Asda2BattlegroundHandler.SendWarTeamListEndedResponse(chr.Client);
            }
        }
示例#22
0
        public static void AddBattleGround(Asda2BattlegroundTown town)
        {
            Asda2Battleground asda2Battleground = new Asda2Battleground()
            {
                Town = town
            };

            switch (town)
            {
            case Asda2BattlegroundTown.Alpia:
                asda2Battleground.MinEntryLevel = (byte)10;
                asda2Battleground.MaxEntryLevel = (byte)29;
                break;

            case Asda2BattlegroundTown.Silaris:
                asda2Battleground.MinEntryLevel = (byte)30;
                asda2Battleground.MaxEntryLevel = (byte)49;
                break;

            case Asda2BattlegroundTown.Flamio:
                asda2Battleground.MinEntryLevel = (byte)50;
                asda2Battleground.MaxEntryLevel = (byte)69;
                break;

            case Asda2BattlegroundTown.Aquaton:
                asda2Battleground.MinEntryLevel = (byte)70;
                asda2Battleground.MaxEntryLevel = (byte)90;
                break;
            }

            Asda2BattlegroundType type;

            asda2Battleground.StartTime = Asda2BattlegroundMgr.GetNextWarTime(town, out type, DateTime.Now);
            asda2Battleground.WarType   = type;
            asda2Battleground.EndTime   = asda2Battleground.StartTime.AddMinutes(type == Asda2BattlegroundType.Occupation
        ? (double)Asda2BattlegroundMgr.OccupationDurationMins
        : (double)Asda2BattlegroundMgr.DeathMatchDurationMins);
            asda2Battleground.Points.Add(new Asda2WarPoint()
            {
                Id           = (short)0,
                X            = (short)258,
                Y            = (short)165,
                BattleGround = asda2Battleground
            });
            asda2Battleground.Points.Add(new Asda2WarPoint()
            {
                Id           = (short)1,
                X            = (short)211,
                Y            = (short)218,
                BattleGround = asda2Battleground
            });
            asda2Battleground.Points.Add(new Asda2WarPoint()
            {
                Id           = (short)2,
                X            = (short)308,
                Y            = (short)221,
                BattleGround = asda2Battleground
            });
            asda2Battleground.Points.Add(new Asda2WarPoint()
            {
                Id           = (short)3,
                X            = (short)260,
                Y            = (short)250,
                BattleGround = asda2Battleground
            });
            asda2Battleground.Points.Add(new Asda2WarPoint()
            {
                Id           = (short)4,
                X            = (short)209,
                Y            = (short)284,
                BattleGround = asda2Battleground
            });
            asda2Battleground.Points.Add(new Asda2WarPoint()
            {
                Id           = (short)5,
                X            = (short)307,
                Y            = (short)285,
                BattleGround = asda2Battleground
            });
            asda2Battleground.Points.Add(new Asda2WarPoint()
            {
                Id           = (short)6,
                X            = (short)258,
                Y            = (short)340,
                BattleGround = asda2Battleground
            });
            foreach (Asda2WarPoint point in asda2Battleground.Points)
            {
                point.OwnedFaction = (short)-1;
                World.TaskQueue.RegisterUpdatableLater((IUpdatable)point);
            }

            Asda2BattlegroundMgr.AllBattleGrounds[town].Add(asda2Battleground);
            World.TaskQueue.RegisterUpdatableLater((IUpdatable)asda2Battleground);
        }
 public static void SendUpdateWarManagerScreenDataResponse(IRealmClient client, Asda2Battleground btlgrnd)
 {
     using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.UpdateWarManagerScreenData))
     {
         packet.WriteByte(1);
         packet.WriteByte(0);
         packet.WriteInt16(btlgrnd.StartTime.Hour);
         packet.WriteInt16(btlgrnd.StartTime.Minute);
         packet.WriteInt16(btlgrnd.EndTime.Hour);
         packet.WriteInt16(btlgrnd.EndTime.Minute);
         packet.WriteInt16(btlgrnd.AmountOfBattleGroundsInList);
         packet.WriteInt16(btlgrnd.LightTeam.Count);
         packet.WriteInt16(btlgrnd.DarkTeam.Count);
         packet.WriteByte(0);
         packet.WriteInt32(0);
         packet.WriteInt16(btlgrnd.LightWins);
         packet.WriteInt16(btlgrnd.DarkWins);
         packet.WriteInt16(btlgrnd.LightLooses);
         packet.WriteInt16(btlgrnd.DarkLooses);
         packet.WriteInt16((int)btlgrnd.LightWins + (int)btlgrnd.LightLooses);
         packet.WriteByte(0);
         packet.WriteInt16(btlgrnd.MinEntryLevel);
         packet.WriteInt16(btlgrnd.MaxEntryLevel);
         packet.WriteByte((byte)btlgrnd.WarType);
         client.Send(packet, true);
     }
 }