Ejemplo n.º 1
0
        public static void HandlePort(IRealmClient client, RealmPacketIn packet)
        {
            int            num1            = packet.ReadInt16();
            BattlegroundId id              = (BattlegroundId)packet.ReadUInt32();
            int            num2            = packet.ReadInt16();
            bool           flag            = packet.ReadBoolean();
            Character      activeCharacter = client.ActiveCharacter;

            if (flag)
            {
                BattlegroundInvitation invitation = activeCharacter.Battlegrounds.Invitation;
                if (invitation == null || invitation.Team.Battleground == null)
                {
                    return;
                }
                Battleground battleground = invitation.Team.Battleground;
                if (battleground.Template.Id != id)
                {
                    return;
                }
                battleground.TeleportInside(activeCharacter);
            }
            else
            {
                activeCharacter.Battlegrounds.CancelRelation(id);
            }
        }
Ejemplo n.º 2
0
        public static void SendStatusInvited(Character chr, int inviteTimeout)
        {
            BattlegroundStatus     battlegroundStatus = BattlegroundStatus.Preparing;
            BattlegroundInvitation invitation         = chr.Battlegrounds.Invitation;

            using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.SMSG_BATTLEFIELD_STATUS))
            {
                packet.Write(invitation.QueueIndex);
                Battleground   battleground = invitation.Team.Battleground;
                BattlegroundId id           = battleground.Template.Id;
                packet.Write((byte)0);
                packet.Write((byte)1);
                packet.Write((uint)id);
                packet.Write((ushort)8080);
                packet.Write((byte)0);
                packet.Write((byte)0);
                packet.Write(battleground.InstanceId);
                packet.Write((byte)chr.FactionGroup.GetBattlegroundSide());
                packet.Write((int)battlegroundStatus);
                packet.Write((int)battleground.Id);
                packet.Write(inviteTimeout);
                chr.Send(packet, false);
            }
        }