コード例 #1
0
ファイル: Send.Items.cs プロジェクト: Rai/aura
		/// <summary>
		/// Sends ItemUpdate to creature's client.
		/// </summary>
		/// 
		/// <param name="creature"></param>
		/// <param name="item"></param>
		public static void ItemUpdate(Creature creature, Item item)
		{
			var packet = new Packet(Op.ItemUpdate, creature.EntityId);
			packet.AddItemInfo(item, ItemPacketType.Private);

			creature.Client.Send(packet);
		}
コード例 #2
0
        /// <summary>
        /// Sends BankAddItem to creature's client.
        /// </summary>
        /// <param name="creature"></param>
        /// <param name="item"></param>
        /// <param name="bankId"></param>
        /// <param name="tabName"></param>
        public static void BankAddItem(Creature creature, Item item, string bankId, string tabName)
        {
            var packet = new Packet(Op.BankAddItem, creature.EntityId);

            packet.PutString(tabName);
            packet.PutString(bankId);
            packet.PutLong(0);
            packet.PutLong(0);
            packet.AddItemInfo(item, ItemPacketType.Private);

            creature.Client.Send(packet);
        }
コード例 #3
0
ファイル: Send.NPCs.cs プロジェクト: pie3467/aura
        /// <summary>
        /// Sends OpenNpcShop to creature's client.
        /// </summary>
        /// <param name="creature"></param>
        /// <param name="shop"></param>
        public static void OpenNpcShop(Creature creature, NpcShop shop)
        {
            var packet = new Packet(Op.OpenNpcShop, creature.EntityId);
            packet.PutString("shopname");
            packet.PutByte(0);
            packet.PutByte(0);
            packet.PutInt(0);
            packet.PutByte((byte)shop.Tabs.Count);
            foreach (var tab in shop.Tabs)
            {
                packet.PutString("[{0}]{1}", tab.Order, tab.Title);

                // [160200] ?
                {
                    packet.PutByte(0);
                }

                packet.PutShort((short)tab.Items.Count);
                foreach (var item in tab.Items)
                    packet.AddItemInfo(item, ItemPacketType.Private);
            }

            creature.Client.Send(packet);
        }
コード例 #4
0
ファイル: Send.Misc.cs プロジェクト: Rai/aura
		/// <summary>
		/// Sends DressingRoomAddItemListing to creature's client.
		/// </summary>
		/// <param name="creature"></param>
		/// <param name="result"></param>
		public static void DressingRoomAddItemListing(Creature creature, Item item)
		{
			var packet = new Packet(Op.DressingRoomAddItemListing, creature.EntityId);
			packet.AddItemInfo(item, ItemPacketType.Private);
			creature.Client.Send(packet);
		}
コード例 #5
0
ファイル: Send.Misc.cs プロジェクト: Rai/aura
		/// <summary>
		/// Sends OpenDressingRoomR to creature's client.
		/// </summary>
		/// <param name="creature"></param>
		/// <param name="result"></param>
		public static void OpenDressingRoomR(PlayerCreature creature)
		{
			var gp = new Packet(Op.OpenDressingRoomR, creature.EntityId);

			gp.PutByte(1);
			gp.PutString(creature.Client.Account.Id);
			gp.PutInt(creature.DressingRoomItems.Count);

			foreach (Item item in creature.DressingRoomItems)
			{
				gp.PutLong(0);
				gp.AddItemInfo(item, ItemPacketType.Private);
			}

			// 039 [........000008AF] Int    : 2223 (Count & pon charge for hair, face, etc?)
			gp.PutInt(0);

			// 040 [........00000003] Int    : 3
			// 041 [........00000001] Int    : 1
			// 042 [..............04] Byte   : 4

			creature.Client.Send(gp);
		}
コード例 #6
0
ファイル: Send.Misc.cs プロジェクト: Rai/aura
		/// <summary>
		/// Sends ViewEquipmentR to creature's client.
		/// </summary>
		/// <param name="creature"></param>
		/// <param name="targetEntityId"></param>
		/// <param name="items"></param>
		public static void ViewEquipmentR(Creature creature, Creature target)
		{
			var packet = new Packet(Op.ViewEquipmentR, creature.EntityId);
			packet.PutByte(target != null);
			if (target != null)
			{
				packet.PutLong(target.EntityId);

				var items = target.Inventory.GetEquipment();
				packet.PutInt(items.Length);
				foreach (var item in items)
					packet.AddItemInfo(item, ItemPacketType.Private);
			}

			creature.Client.Send(packet);
		}
コード例 #7
0
ファイル: Send.Entrusting.cs プロジェクト: aura-project/aura
		/// <summary>
		/// Sends EntrustmentAddItem to creature's client.
		/// </summary>
		/// <param name="creature"></param>
		/// <param name="pocket"></param>
		/// <param name="item"></param>
		public static void EntrustmentAddItem(Creature creature, Pocket pocket, Item item)
		{
			var packet = new Packet(Op.EntrustmentAddItem, creature.EntityId);
			packet.PutByte((byte)pocket);
			packet.AddItemInfo(item, ItemPacketType.Private);

			creature.Client.Send(packet);
		}
コード例 #8
0
        /// <summary>
        /// Sends OpenNpcShop to creature's client.
        /// </summary>
        /// <param name="creature"></param>
        /// <param name="shop"></param>
        public static void OpenNpcShop(Creature creature, IList<NpcShopTab> tabs)
        {
            var packet = new Packet(Op.OpenNpcShop, creature.EntityId);
            packet.PutString("shopname"); // e.g. TirchonaillShop_Dilys
            packet.PutByte(0); // 1 in remote shops?
            packet.PutByte(0);
            packet.PutInt(0);
            packet.PutByte((byte)tabs.Count);
            foreach (var tab in tabs)
            {
                packet.PutString("[{0}]{1}", tab.Order, tab.Title);

                // [160200] ?
                {
                    packet.PutByte(0);
                }

                var items = tab.GetItems();
                packet.PutShort((short)items.Count);
                foreach (var item in items)
                    packet.AddItemInfo(item, ItemPacketType.Private);
            }

            creature.Client.Send(packet);
        }
コード例 #9
0
        /// <summary>
        /// Sends OpenBank to creature's client.
        /// </summary>
        /// <param name="creature"></param>
        /// <param name="bank"></param>
        /// <param name="race"></param>
        public static void OpenBank(Creature creature, BankInventory bank, BankTabRace race, string bankId, string bankTitle)
        {
            var packet = new Packet(Op.OpenBank, creature.EntityId);

            packet.PutByte(1);
            packet.PutByte((byte)race);
            packet.PutLong(DateTime.Now);
            packet.PutByte(0);
            packet.PutString(creature.Client.Account.Id);
            packet.PutString(bankId);
            packet.PutString(bankTitle);
            packet.PutInt(bank.Gold);

            var tabList = bank.GetTabList(race);
            packet.PutInt(tabList.Count);
            foreach (var tab in tabList)
            {
                packet.PutString(tab.Name);
                packet.PutByte((byte)tab.Race);

                // [190200, NA204 (2015-05-19)] ?
                // Haven't opened a bank in a while, could've been
                // added earlier. -- exec
                {
                    packet.PutInt(0);
                }

                packet.PutInt(tab.Width);
                packet.PutInt(tab.Height);

                var itemList = tab.GetItemList();
                packet.PutInt(itemList.Count);
                foreach (var item in itemList)
                {
                    packet.PutString(item.Bank);
                    packet.PutLong(item.BankTransferRemaining);
                    packet.PutLong(item.BankTransferStart);
                    packet.AddItemInfo(item, ItemPacketType.Private);
                }
            }

            creature.Client.Send(packet);
        }
コード例 #10
0
		/// <summary>
		/// Sends PersonalShopAddItem to creature's client.
		/// </summary>
		/// <param name="creature"></param>
		/// <param name="item"></param>
		public static void PersonalShopAddItem(Creature creature, Item item)
		{
			var packet = new Packet(Op.PersonalShopAddItem, creature.EntityId);
			packet.AddItemInfo(item, ItemPacketType.Private);
			packet.PutInt(item.PersonalShopPrice);

			creature.Client.Send(packet);
		}
コード例 #11
0
		/// <summary>
		/// Sends PersonalShopOpenR to creature's client.
		/// </summary>
		/// <param name="creature"></param>
		/// <param name="shop">Null for negative response</param>
		public static void PersonalShopOpenR(Creature creature, PersonalShop shop)
		{
			var items = shop.GetPricedItems();

			var packet = new Packet(Op.PersonalShopOpenR, creature.EntityId);
			packet.PutByte(shop != null);
			if (shop != null)
			{
				packet.PutLong(shop.Owner.EntityId);
				packet.PutString(shop.Owner.Name);
				packet.PutString(shop.Description);
				packet.PutString(shop.GetBagLayout());
				packet.PutByte(0);

				foreach (var item in items)
				{
					packet.AddItemInfo(item, ItemPacketType.Private);
					packet.PutInt(item.PersonalShopPrice);
				}
			}

			creature.Client.Send(packet);
		}