Exemple #1
0
        public void SendTaxiMenu(ref WS_PlayerData.CharacterObject objCharacter, ulong cGuid)
        {
            if (!WorldServiceLocator._WorldServer.WORLD_CREATUREs.ContainsKey(cGuid))
            {
                return;
            }
            int currentTaxi = WorldServiceLocator._WS_DBCDatabase.GetNearestTaxi(WorldServiceLocator._WorldServer.WORLD_CREATUREs[cGuid].positionX, WorldServiceLocator._WorldServer.WORLD_CREATUREs[cGuid].positionY, checked ((int)WorldServiceLocator._WorldServer.WORLD_CREATUREs[cGuid].MapID));

            if (!objCharacter.TaxiZones[currentTaxi])
            {
                objCharacter.TaxiZones.Set(currentTaxi, value: true);
                Packets.PacketClass SMSG_NEW_TAXI_PATH = new Packets.PacketClass(Opcodes.SMSG_NEW_TAXI_PATH);
                try
                {
                    objCharacter.client.Send(ref SMSG_NEW_TAXI_PATH);
                }
                finally
                {
                    SMSG_NEW_TAXI_PATH.Dispose();
                }
                Packets.PacketClass SMSG_TAXINODE_STATUS = new Packets.PacketClass(Opcodes.SMSG_TAXINODE_STATUS);
                try
                {
                    SMSG_TAXINODE_STATUS.AddUInt64(cGuid);
                    SMSG_TAXINODE_STATUS.AddInt8(1);
                    objCharacter.client.Send(ref SMSG_TAXINODE_STATUS);
                }
                finally
                {
                    SMSG_TAXINODE_STATUS.Dispose();
                }
            }
            else
            {
                Packets.PacketClass SMSG_SHOWTAXINODES = new Packets.PacketClass(Opcodes.SMSG_SHOWTAXINODES);
                try
                {
                    SMSG_SHOWTAXINODES.AddInt32(1);
                    SMSG_SHOWTAXINODES.AddUInt64(cGuid);
                    SMSG_SHOWTAXINODES.AddInt32(currentTaxi);
                    SMSG_SHOWTAXINODES.AddBitArray(objCharacter.TaxiZones, 32);
                    objCharacter.client.Send(ref SMSG_SHOWTAXINODES);
                }
                finally
                {
                    SMSG_SHOWTAXINODES.Dispose();
                }
            }
        }