Need Help In ArtisanWand

08/13/2014 15:25 arneljan#1
Need Help in ArtisanWand Not Functionally will where to look for this Code.

[Only registered and activated users can see links. Click Here To Register...]
08/13/2014 23:00 Aceking#2
packet 1010 off the top of my head, don't remember what type exactly....
08/13/2014 23:21 Super Aids#3
Packet structure may be different, Idk if it has ever changed.
Code:
//Project by BaussHacker aka. L33TS

using System;

namespace ProjectX_V3_Game.Packets.Item
{
	/// <summary>
	/// Description of Improve.
	/// </summary>
	public class Improve
	{
		public static void Handle(Entities.GameClient client, ItemPacket packet)
		{
			if (client.Booth != null)
				return;
			if (!client.Alive)
				return;
			
			if (!client.Inventory.ContainsByUID(packet.UID) && client.Inventory.ContainsByUID(packet.Data1))
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_NOT_FOUND))
					client.Send(msg);
				return;
			}
			
			Data.ItemInfo ToUpgrade = client.Inventory.GetItemByUID(packet.UID);
			if (ToUpgrade.CurrentDura < ToUpgrade.MaxDura)
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_LOW_DURA))
					client.Send(msg);
				return;
			}
			
			Data.ItemInfo Dragonball = client.Inventory.GetItemByUID(packet.Data1);
			if (Dragonball == null || ToUpgrade == null)
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_NOT_FOUND))
					client.Send(msg);
				return;
			}
			if (ToUpgrade.IsGarment() || ToUpgrade.IsArrow() || ToUpgrade.IsBottle() ||
			    ToUpgrade.IsSteed() || ToUpgrade.IsMisc())
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_INVALID_UPGRADE))
					client.Send(msg);
				return;
			}
			if (ToUpgrade.Quality >= 9)
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_SUPER))
					client.Send(msg);
				return; // super
			}
			if (Dragonball.ItemID != 1088000)
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(
					client.Name,
					string.Format(Core.MessageConst.ITEM_AMOUNT_FAIL, "Dragonball's")))
					client.Send(msg);
				return;
			}

			uint NewID = ToUpgrade.ItemID;
			if (ToUpgrade.Quality >= 6)
				NewID = (ToUpgrade.ItemID + 1);
			else
			{
				while ((NewID % 10) < 6)
				{
					NewID++;
				}
			}
			
			if (Core.Kernel.ItemInfos.Contains(NewID))
			{
				Data.ItemInfo newItem;
				if (Core.Kernel.ItemInfos.TrySelect(NewID, out newItem))
				{
					if (newItem.Quality > ToUpgrade.Quality && newItem.Name == ToUpgrade.Name)
					{
						if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.QualityUpgradeChance))
						{
							Data.ItemInfo NewUpgradedItem = newItem.Copy();
							NewUpgradedItem.SetStats(ToUpgrade);
							
							client.Inventory.RemoveItemByUID(ToUpgrade.UID);
							client.Inventory.RemoveItemByUID(Dragonball.UID);
							
							if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.FirstSocketChance) &&
							    NewUpgradedItem.Gem1 == Enums.SocketGem.NoSocket)
							{
								NewUpgradedItem.Gem1 = Enums.SocketGem.EmptySocket;
							}
							else if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.SecondSocketChance) &&
							         NewUpgradedItem.Gem2 == Enums.SocketGem.NoSocket)
							{
								NewUpgradedItem.Gem2 = Enums.SocketGem.EmptySocket;
							}

							client.Inventory.AddItem(NewUpgradedItem);
						}
					}
				}
			}
		}
	}
}
Code:
//Project by BaussHacker aka. L33TS

using System;

namespace ProjectX_V3_Game.Packets.Item
{
	/// <summary>
	/// Description of Uplev.
	/// </summary>
	public class Uplev
	{
		public static void Handle(Entities.GameClient client, ItemPacket packet)
		{
			if (client.Booth != null)
				return;
			if (!client.Alive)
				return;
			
			if (!client.Inventory.ContainsByUID(packet.UID) && client.Inventory.ContainsByUID(packet.Data1))
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_NOT_FOUND))
					client.Send(msg);
				return;
			}
			
			Data.ItemInfo ToUpgrade = client.Inventory.GetItemByUID(packet.UID);
			if (ToUpgrade.CurrentDura < ToUpgrade.MaxDura)
				return;
			
			Data.ItemInfo Meteor = client.Inventory.GetItemByUID(packet.Data1);
			if (Meteor == null || ToUpgrade == null)
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_NOT_FOUND))
					client.Send(msg);
				return;
			}
			if (ToUpgrade.IsGarment() || ToUpgrade.IsArrow() || ToUpgrade.IsBottle() ||
			    ToUpgrade.IsSteed() || ToUpgrade.IsMisc())
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_INVALID_UPGRADE))
					client.Send(msg);
				return;
			}
			if (ToUpgrade.RequiredLevel >= 120)
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(client.Name, Core.MessageConst.ITEM_MAX_LEVEL))
					client.Send(msg);
				return; // max level
			}
			if (Meteor.ItemID != 1088001 && Meteor.ItemID != 1088002)
			{
				using (var msg = Packets.Message.MessageCore.CreateSystem(
					client.Name,
					string.Format(Core.MessageConst.ITEM_AMOUNT_FAIL, "Meteor- or Meteortear's")))
					client.Send(msg);
				return;
			}

			uint NewID = ToUpgrade.ItemID + 10;
			int loop = 4;
			while (!Core.Kernel.ItemInfos.Contains(NewID))
			{
				NewID += 10;
				loop--;
				if (loop <= 0)
					break;
			}
			
			if (Core.Kernel.ItemInfos.Contains(NewID))
			{
				Data.ItemInfo newItem;
				if (Core.Kernel.ItemInfos.TrySelect(NewID, out newItem))
				{
					if (newItem.RequiredLevel > ToUpgrade.RequiredLevel && newItem.TypeName == ToUpgrade.TypeName)
					{
						if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.LevelUpgradeChance))
						{
							Data.ItemInfo NewUpgradedItem = newItem.Copy();
							NewUpgradedItem.SetStats(ToUpgrade);
							
							client.Inventory.RemoveItemByUID(ToUpgrade.UID);
							client.Inventory.RemoveItemByUID(Meteor.UID);
							
							if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.FirstSocketChance) &&
							    NewUpgradedItem.Gem1 == Enums.SocketGem.NoSocket)
							{
								NewUpgradedItem.Gem1 = Enums.SocketGem.EmptySocket;
							}
							else if (Calculations.BasicCalculations.ChanceSuccess(Core.NumericConst.SecondSocketChance) &&
							         NewUpgradedItem.Gem2 == Enums.SocketGem.NoSocket)
							{
								NewUpgradedItem.Gem2 = Enums.SocketGem.EmptySocket;
							}
							
							client.Inventory.AddItem(NewUpgradedItem);
						}
					}
				}
			}
		}
	}
}
Code:
//Project by BaussHacker aka. L33TS

using System;
using ProjectX_V3_Lib.Network;

namespace ProjectX_V3_Game.Packets
{
	/// <summary>
	/// Client -> Server
	/// Server -> Client
	/// </summary>
	public class ItemPacket : DataPacket
	{
		public ItemPacket()
			: base(92, Packets.PacketType.ItemPacket)
		{
			
		}
		public ItemPacket(DataPacket inPacket)
			: base(inPacket)
		{
			
		}
		
		/// <summary>
		/// Gets the item action.
		/// </summary>
		public Enums.ItemAction Action
		{
			get { return (Enums.ItemAction)ReadUInt32(12); }
			set { WriteUInt32((uint)value, 12); }
		}
		
		public uint UID
		{
			get { return ReadUInt32(4); }
			set { WriteUInt32(value, 4); }
		}
		
		public uint Data1
		{
			get { return ReadUInt32(8); }
			set { WriteUInt32(value, 8); }
		}
		
		public uint Data2
		{
			get { return ReadUInt32(20); }
			set { WriteUInt32(value, 20); }
		}
		
		/// <summary>
		/// Offset [8/0x08]
		/// </summary>
		public ushort Data1Low
		{
			get { return (ushort)Data1; }
			set { Data1 = (uint)((Data1High << 16) | value); }
		}

		/// <summary>
		/// Offset [10/0x0a]
		/// </summary>
		public ushort Data1High
		{
			get { return (ushort)(Data1 >> 16); }
			set { Data1 = (uint)((value << 16) | Data1Low); }
		}
		
		public void SetGears(Data.Equipments equips)
		{
			if (equips.Contains(Enums.ItemLocation.Head))
				WriteUInt32(equips[Enums.ItemLocation.Head].UID, 32);
			if (equips.Contains(Enums.ItemLocation.Necklace))
				WriteUInt32(equips[Enums.ItemLocation.Necklace].UID, 36);
			if (equips.Contains(Enums.ItemLocation.Armor))
				WriteUInt32(equips[Enums.ItemLocation.Armor].UID, 40);
			
			if (equips.MaskedRightHand != null)
				WriteUInt32(equips.MaskedRightHand.UID, 44);
			else if (equips.Contains(Enums.ItemLocation.WeaponR))
				WriteUInt32(equips[Enums.ItemLocation.WeaponR].UID, 44);
			
			if (equips.MaskedLeftHand != null)
				WriteUInt32(equips.MaskedLeftHand.UID, 48);
			else if (equips.Contains(Enums.ItemLocation.WeaponL))
				WriteUInt32(equips[Enums.ItemLocation.WeaponL].UID, 48);
			
			if (equips.Contains(Enums.ItemLocation.Ring))
				WriteUInt32(equips[Enums.ItemLocation.Ring].UID, 52);
			if (equips.Contains(Enums.ItemLocation.Bottle))
				WriteUInt32(equips[Enums.ItemLocation.Bottle].UID, 56);
			if (equips.Contains(Enums.ItemLocation.Boots))
				WriteUInt32(equips[Enums.ItemLocation.Boots].UID, 60);
			
			if (equips.MaskedGarment != null)
				WriteUInt32(equips.MaskedGarment.UID, 64);
			else if (equips.Contains(Enums.ItemLocation.Garment))
				WriteUInt32(equips[Enums.ItemLocation.Garment].UID, 64);
			
			//	if (equips.Contains(Enums.ItemLocation.Fan))
			//		WriteUInt32(equips[Enums.ItemLocation.Fan].UID, 68);
			//	if (equips.Contains(Enums.ItemLocation.Tower))
			//WriteUInt32(equips[Enums.ItemLocation.Tower].UID, 72);
			if (equips.Contains(Enums.ItemLocation.SteedArmor))
				WriteUInt32(equips[Enums.ItemLocation.SteedArmor].UID, 76);
			else if (equips.Contains(Enums.ItemLocation.Steed))
				WriteUInt32(equips[Enums.ItemLocation.Steed].UID, 76);
			//if (equips.Contains(Enums.ItemLocation.Head))
			//	WriteUInt32(equips[Enums.ItemLocation.Head].UID, 80);
		}
		
		/// <summary>
		/// Handling the ItemPacket.
		/// </summary>
		/// <param name="client">The client.</param>
		/// <param name="packet">The packet.</param>
		public static void Handle(Entities.GameClient client, DataPacket packet)
		{
			using (var item = new ItemPacket(packet))
			{
				if (item.Action != Enums.ItemAction.Ping)
				{
					if (client.Trade.Trading)
						return;
				}
				switch (item.Action)
				{
						#region Ping : 27
					case Enums.ItemAction.Ping:
						Item.Ping.Handle(client, item);
						break;
						#endregion
						#region Drop : 37
					case Enums.ItemAction.Drop:
						Item.Drop.Handle(client, item);
						break;
						#endregion
						#region Buy : 1
					case Enums.ItemAction.Buy:
						Item.Buy.Handle(client, item);
						break;
						#endregion
						#region Sell : 2
					case Enums.ItemAction.Sell:
						Item.Sell.Handle(client, item);
						break;
						#endregion
						#region Use
					case Enums.ItemAction.Use:
						Item.Use.Handle(client, item);
						break;
						#endregion
						#region Unequip : ?
					case Enums.ItemAction.Unequip:
						Item.Unequip.Handle(client, item);
						break;
						#endregion
						#region Improve : ?
					case Enums.ItemAction.Improve:
						Item.Improve.Handle(client, item);
						break;
						#endregion
						#region Uplev : ?
					case Enums.ItemAction.Uplev:
						Item.Uplev.Handle(client, item);
						break;
						#endregion
						#region ActivateAccessory : ?
					case Enums.ItemAction.ActivateAccessory:
						Item.ActivateAccessory.Handle(client, item);
						break;
						#endregion
						#region QueryMoneySaved : ?
					case Enums.ItemAction.QueryMoneySaved:
						Item.QueryMoneySaved.Handle(client, item);
						break;
						#endregion
						#region SaveMoney : ?
					case Enums.ItemAction.SaveMoney:
						Item.SaveMoney.Handle(client, item);
						break;
						#endregion
						#region DrawMoney : ?
					case Enums.ItemAction.DrawMoney:
						Item.DrawMoney.Handle(client, item);
						break;
						#endregion
						#region Bless : ?
					case Enums.ItemAction.Bless:
						Item.Bless.Handle(client, item);
						break;
						#endregion
						#region BoothAdd : ?
					case Enums.ItemAction.BoothAdd:
						Item.BoothAdd.Handle(client, item);
						break;
						#endregion
						#region BoothAddCP : ?
					case Enums.ItemAction.BoothAddCP:
						Item.BoothAddCP.Handle(client, item);
						break;
						#endregion
						#region BoothBuy : ?
					case Enums.ItemAction.BoothBuy:
						Item.BoothBuy.Handle(client, item);
						break;
						#endregion
						#region BoothDelete : ?
					case Enums.ItemAction.BoothDelete:
						Item.BoothDelete.Handle(client, item);
						break;
						#endregion
						#region BoothDelete : ?
					case Enums.ItemAction.BoothQuery:
						Item.BoothQuery.Handle(client, item);
						break;
						#endregion
						
						#region default
					default:
						Console.WriteLine("Unhandled item packet: {0} User: {1}", item.Action, client.Name);
						break;
						#endregion
				}
			}
		}
	}
}
Code:
//Project by BaussHacker aka. L33TS

using System;

namespace ProjectX_V3_Game.Enums
{
	/// <summary>
	/// The different types of actions ItemPacket handles.
	/// </summary>
	public enum ItemAction : uint
	{
		/// <summary>
		/// [00]
		/// </summary>
		None = 0,

		/// <summary>
		/// [01]
		/// </summary>
		Buy = 1,

		/// <summary>
		/// [02]
		/// </summary>
		Sell = 2,

		/// <summary>
		/// [03]
		/// </summary>
		Remove = 3,

		/// <summary>
		/// [04]
		/// </summary>
		Use = 4,

		/// <summary>
		/// [05]
		/// </summary>
		Equip = 5,

		/// <summary>
		/// [06]
		/// </summary>
		Unequip = 6,

		/// <summary>
		/// [07]
		/// </summary>
		SplitItem = 7,

		/// <summary>
		/// [08]
		/// </summary>
		CombineItem = 8,

		/// <summary>
		/// [09]
		/// </summary>
		QueryMoneySaved = 9,

		/// <summary>
		/// [10]
		/// </summary>
		SaveMoney = 10,

		/// <summary>
		/// [11]
		/// </summary>
		DrawMoney = 11,

		/// <summary>
		/// [12]
		/// </summary>
		DropMoney = 12,

		/// <summary>
		/// [13]
		/// </summary>
		SpendMoney = 13,

		/// <summary>
		/// [14]
		/// </summary>
		Repair = 14,

		/// <summary>
		/// [15]
		/// </summary>
		RepairAll = 15,

		/// <summary>
		/// [16]
		/// </summary>
		Ident = 16,

		/// <summary>
		/// [17]
		/// </summary>
		Durability = 17,

		/// <summary>
		/// [18]
		/// </summary>
		DropEquipment = 18,

		/// <summary>
		/// [19]
		/// </summary>
		Improve = 19,

		/// <summary>
		/// [20]
		/// </summary>
		Uplev = 20,

		/// <summary>
		/// [21]
		/// </summary>
		BoothQuery = 21,

		/// <summary>
		/// [22]
		/// </summary>
		BoothAdd = 22,

		/// <summary>
		/// [23]
		/// </summary>
		BoothDelete = 23,

		/// <summary>
		/// [24]
		/// </summary>
		BoothBuy = 24,

		/// <summary>
		/// [25]
		/// </summary>
		SynchroAmount = 25,

		/// <summary>
		/// [26]
		/// </summary>
		Fireworks = 26,

		/// <summary>
		/// [27]
		/// </summary>
		Ping = 27,

		/// <summary>
		/// [28]
		/// </summary>
		Enchant = 28,

		/// <summary>
		/// [29]
		/// </summary>
		BoothAddCP = 29,

		/// <summary>
		/// [33]
		/// </summary>
		PkItemRedeem = 33,
		
		/// <summary>
		/// [37]
		/// </summary>
		Drop = 37,

		Bless = 40,
		ActivateAccessory = 41,

		SocketEquipment = 43,

		/// <summary>
		/// [46]
		/// </summary>
		DisplayGears = 46,

		/// <summary>
		/// [52]
		/// </summary>
		RequestItemTooltip = 52,
	}
}
ItemPacket = 1009

Old af codes lmfaooo.