Beispiel #1
0
        public static void RegisterVeicheRequest(IRealmClient client, RealmPacketIn packet)
        {
            packet.ReadInt32();
            int       num          = (int)packet.ReadByte();
            short     slotInq      = packet.ReadInt16();
            Asda2Item shopShopItem = client.ActiveCharacter.Asda2Inventory.GetShopShopItem(slotInq);

            if (shopShopItem == null)
            {
                Asda2MountHandler.SendVeicheRegisteredResponse(client.ActiveCharacter, (Asda2Item)null,
                                                               Asda2MountHandler.RegisterMountStatus.Fail, -1);
                client.ActiveCharacter.SendInfoMsg("Mount item not fount. Restart client please.");
            }
            else
            {
                MountTemplate mount = (MountTemplate)null;
                if (Asda2MountMgr.TemplatesByItemIDs.ContainsKey(shopShopItem.ItemId))
                {
                    mount = Asda2MountMgr.TemplatesByItemIDs[shopShopItem.ItemId];
                }
                if (mount == null)
                {
                    Asda2MountHandler.SendVeicheRegisteredResponse(client.ActiveCharacter, (Asda2Item)null,
                                                                   Asda2MountHandler.RegisterMountStatus.Fail, -1);
                    client.ActiveCharacter.SendInfoMsg("Selected item is not mount.");
                }
                else if (client.ActiveCharacter.OwnedMounts.ContainsKey(mount.Id))
                {
                    Asda2MountHandler.SendVeicheRegisteredResponse(client.ActiveCharacter, (Asda2Item)null,
                                                                   Asda2MountHandler.RegisterMountStatus.Fail, -1);
                    client.ActiveCharacter.SendInfoMsg("Selected mount already registered.");
                }
                else if ((int)client.ActiveCharacter.MountBoxSize <= client.ActiveCharacter.OwnedMounts.Count)
                {
                    Asda2MountHandler.SendVeicheRegisteredResponse(client.ActiveCharacter, (Asda2Item)null,
                                                                   Asda2MountHandler.RegisterMountStatus.Fail, -1);
                    client.ActiveCharacter.SendInfoMsg("Not enoght space in mount inventory.");
                }
                else
                {
                    if (client.ActiveCharacter.OwnedMounts.ContainsKey(mount.Id))
                    {
                        return;
                    }
                    Asda2MountRecord asda2MountRecord = new Asda2MountRecord(mount, client.ActiveCharacter);
                    client.ActiveCharacter.OwnedMounts.Add(mount.Id, asda2MountRecord);
                    asda2MountRecord.Create();
                    shopShopItem.Amount = 0;
                    Asda2MountHandler.SendVeicheRegisteredResponse(client.ActiveCharacter, shopShopItem,
                                                                   Asda2MountHandler.RegisterMountStatus.Ok, mount.Id);
                }
            }
        }
Beispiel #2
0
        public static void GetOnMountRequest(IRealmClient client, RealmPacketIn packet)
        {
            int key = packet.ReadInt32();

            if (client.ActiveCharacter.OwnedMounts.ContainsKey(key))
            {
                client.ActiveCharacter.MountId = key;
            }
            else
            {
                Asda2MountHandler.SendCharacterOnMountStatusChangedResponse(client.ActiveCharacter,
                                                                            Asda2MountHandler.UseMountStatus.Fail);
                client.ActiveCharacter.YouAreFuckingCheater("Trying to use not owned Mount.", 30);
            }
        }
Beispiel #3
0
 public static void SummonMountRequest(IRealmClient client, RealmPacketIn packet)
 {
     if (packet.ReadBoolean())
     {
         if (client.ActiveCharacter.LastTransportUsedTime.AddSeconds(30.0) > DateTime.Now)
         {
             client.ActiveCharacter.SendInfoMsg("Mount is on cooldown.");
         }
         else
         {
             Asda2MountHandler.SendVeicheStatusChangedResponse(client.ActiveCharacter,
                                                               Asda2MountHandler.MountStatusChanged.Summonig);
             Asda2MountHandler.SendMountSummoningResponse(client.ActiveCharacter);
         }
     }
     else
     {
         client.ActiveCharacter.MountId = -1;
     }
 }