Code:
#region WeaponMaster
case 7050:
{
if (LinkBack == 0)
{
Text("Hello my friend, welcome. I'm WeaponMaster. I can upgrade anything,", CSocket);
Text("that is under its maximum level. You can also try ArtisanWind in TwinCity", CSocket);
Text("or MagicArtisan if the item's level is under 120. They will upgrade your item", CSocket);
Text("in exchange of an amount of meteors. ArtisanWind sometime manage to fail, and", CSocket);
Text("my friend here, MagicArtisan, sometimes wants too many meteors, but he never fails.", CSocket);
Text("Like MagicArtisan, me, I do not fail upgrading the desired item, you can always count on me.", CSocket);
Text("I'll upgrade anything for 1 DragonBall to its next level.", CSocket);
Link("Headwear", 1, CSocket);
Link("Necklace/Bag", 2, CSocket);
Link("Armor", 3, CSocket);
Link("Weapon", 4, CSocket);
Link("Shield/Off-Hand Weapon", 5, CSocket);
Link("Ring/Bracelet", 6, CSocket);
Link("Boots", 8, CSocket);
Link("Keep your offers away from me.", 255, CSocket);
Face(32, CSocket);
End(CSocket);
}
else if (LinkBack == 1)
{
if (!HasItem(1088000, 1, CSocket))
return;
Struct.ItemInfo Item;
CSocket.Client.Equipment.TryGetValue(LinkBack, out Item);
if (Item == null)
return;
int NextItemID;
NextItemID = Calculation.NextEquipLevel(Item.ItemID);
Struct.ItemData EquipData;
Struct.ItemData NextItemData;
Nano.Items.TryGetValue(Item.ItemID, out EquipData);
Nano.Items.TryGetValue(NextItemID, out NextItemData);
if (NextItemData == null) return;
if (EquipData == null) return;
if (NextItemData.Level < EquipData.Level)
return;
if (NextItemData.Level > CSocket.Client.Level)
return;
Item.ItemID = NextItemID;
Item.Dura = NextItemData.Dura;
Item.MaxDura = NextItemData.Dura;
Database.Database.UpdateItem(Item);
DeleteItem(1088000, 1, CSocket);
CSocket.Client.Equipment[LinkBack] = Item;
CSocket.Send(ConquerPacket.ItemInfo(Item.UID, Item.ItemID, Item.Plus, Item.Bless, Item.Enchant, Item.Soc1, Item.Soc2, Item.Dura, Item.MaxDura, Item.Progress, Item.Position, Item.Color));
CSocket.Send(ConquerPacket.ItemUsage(Item.UID, LinkBack, Struct.ItemUsage.UpdateItem));
ConquerPacket.ToLocal(ConquerPacket.SpawnCharacter(CSocket), CSocket.Client.X, CSocket.Client.Y, (int)CSocket.Client.Map, 0, 0);
}
else if (LinkBack == 2)
{
if (!HasItem(1088000, 1, CSocket))
return;
Struct.ItemInfo Item;
CSocket.Client.Equipment.TryGetValue(LinkBack, out Item);
if (Item == null)
return;
int NextItemID;
NextItemID = Calculation.NextEquipLevel(Item.ItemID);
Struct.ItemData EquipData;
Struct.ItemData NextItemData;
Nano.Items.TryGetValue(Item.ItemID, out EquipData);
Nano.Items.TryGetValue(NextItemID, out NextItemData);
if (NextItemData == null) return;
if (EquipData == null) return;
if (NextItemData.Level < EquipData.Level)
return;
if (NextItemData.Level > CSocket.Client.Level)
return;
Item.ItemID = NextItemID;
Item.Dura = NextItemData.Dura;
Item.MaxDura = NextItemData.Dura;
Database.Database.UpdateItem(Item);
DeleteItem(1088000, 1, CSocket);;
CSocket.Client.Equipment[LinkBack] = Item;
CSocket.Send(ConquerPacket.ItemInfo(Item.UID, Item.ItemID, Item.Plus, Item.Bless, Item.Enchant, Item.Soc1, Item.Soc2, Item.Dura, Item.MaxDura, Item.Progress, Item.Position, Item.Color));
CSocket.Send(ConquerPacket.ItemUsage(Item.UID, LinkBack, Struct.ItemUsage.UpdateItem));
ConquerPacket.ToLocal(ConquerPacket.SpawnCharacter(CSocket), CSocket.Client.X, CSocket.Client.Y, (int)CSocket.Client.Map, 0, 0);
}
else if (LinkBack == 3)
{
if (!HasItem(1088000, 1, CSocket))
return;
Struct.ItemInfo Item;
CSocket.Client.Equipment.TryGetValue(LinkBack, out Item);
if (Item == null)
return;
int NextItemID;
NextItemID = Calculation.NextEquipLevel(Item.ItemID);
Struct.ItemData EquipData;
Struct.ItemData NextItemData;
Nano.Items.TryGetValue(Item.ItemID, out EquipData);
Nano.Items.TryGetValue(NextItemID, out NextItemData);
if (NextItemData == null) return;
if (EquipData == null) return;
if (NextItemData.Level < EquipData.Level)
return;
if (NextItemData.Level > CSocket.Client.Level)
return;
Item.ItemID = NextItemID;
Item.Dura = NextItemData.Dura;
Item.MaxDura = NextItemData.Dura;
Database.Database.UpdateItem(Item);
DeleteItem(1088000, 1, CSocket);
CSocket.Client.Equipment[LinkBack] = Item;
CSocket.Send(ConquerPacket.ItemInfo(Item.UID, Item.ItemID, Item.Plus, Item.Bless, Item.Enchant, Item.Soc1, Item.Soc2, Item.Dura, Item.MaxDura, Item.Progress, Item.Position, Item.Color));
CSocket.Send(ConquerPacket.ItemUsage(Item.UID, LinkBack, Struct.ItemUsage.UpdateItem));
ConquerPacket.ToLocal(ConquerPacket.SpawnCharacter(CSocket), CSocket.Client.X, CSocket.Client.Y, (int)CSocket.Client.Map, 0, 0);
}
else if (LinkBack == 4)
{
if (!HasItem(1088000, 1, CSocket))
return;
Struct.ItemInfo Item;
CSocket.Client.Equipment.TryGetValue(LinkBack, out Item);
if (Item == null)
return;
int NextItemID;
NextItemID = Calculation.NextEquipLevel(Item.ItemID);
Struct.ItemData EquipData;
Struct.ItemData NextItemData;
Nano.Items.TryGetValue(Item.ItemID, out EquipData);
Nano.Items.TryGetValue(NextItemID, out NextItemData);
if (NextItemData == null) return;
if (EquipData == null) return;
if (NextItemData.Level < EquipData.Level)
return;
if (NextItemData.Level > CSocket.Client.Level)
return;
Item.ItemID = NextItemID;
Item.Dura = NextItemData.Dura;
Item.MaxDura = NextItemData.Dura;
Database.Database.UpdateItem(Item);
DeleteItem(1088000, 1, CSocket);
CSocket.Client.Equipment[LinkBack] = Item;
CSocket.Send(ConquerPacket.ItemInfo(Item.UID, Item.ItemID, Item.Plus, Item.Bless, Item.Enchant, Item.Soc1, Item.Soc2, Item.Dura, Item.MaxDura, Item.Progress, Item.Position, Item.Color));
CSocket.Send(ConquerPacket.ItemUsage(Item.UID, LinkBack, Struct.ItemUsage.UpdateItem));
ConquerPacket.ToLocal(ConquerPacket.SpawnCharacter(CSocket), CSocket.Client.X, CSocket.Client.Y, (int)CSocket.Client.Map, 0, 0);
}
else if (LinkBack == 5)
{
if (!HasItem(1088000, 1, CSocket))
return;
Struct.ItemInfo Item;
CSocket.Client.Equipment.TryGetValue(LinkBack, out Item);
if (Item == null)
return;
int NextItemID;
NextItemID = Calculation.NextEquipLevel(Item.ItemID);
Struct.ItemData EquipData;
Struct.ItemData NextItemData;
Nano.Items.TryGetValue(Item.ItemID, out EquipData);
Nano.Items.TryGetValue(NextItemID, out NextItemData);
if (NextItemData == null) return;
if (EquipData == null) return;
if (NextItemData.Level < EquipData.Level)
return;
if (NextItemData.Level > CSocket.Client.Level)
return;
Item.ItemID = NextItemID;
Item.Dura = NextItemData.Dura;
Item.MaxDura = NextItemData.Dura;
Database.Database.UpdateItem(Item);
DeleteItem(1088000, 1, CSocket);
CSocket.Client.Equipment[LinkBack] = Item;
CSocket.Send(ConquerPacket.ItemInfo(Item.UID, Item.ItemID, Item.Plus, Item.Bless, Item.Enchant, Item.Soc1, Item.Soc2, Item.Dura, Item.MaxDura, Item.Progress, Item.Position, Item.Color));
CSocket.Send(ConquerPacket.ItemUsage(Item.UID, LinkBack, Struct.ItemUsage.UpdateItem));
ConquerPacket.ToLocal(ConquerPacket.SpawnCharacter(CSocket), CSocket.Client.X, CSocket.Client.Y, (int)CSocket.Client.Map, 0, 0);
}
else if (LinkBack == 6)
{
if (!HasItem(1088000, 1, CSocket))
return;
Struct.ItemInfo Item;
CSocket.Client.Equipment.TryGetValue(LinkBack, out Item);
if (Item == null)
return;
int NextItemID;
NextItemID = Calculation.NextEquipLevel(Item.ItemID);
Struct.ItemData EquipData;
Struct.ItemData NextItemData;
Nano.Items.TryGetValue(Item.ItemID, out EquipData);
Nano.Items.TryGetValue(NextItemID, out NextItemData);
if (NextItemData == null) return;
if (EquipData == null) return;
if (NextItemData.Level < EquipData.Level)
return;
if (NextItemData.Level > CSocket.Client.Level)
return;
Item.ItemID = NextItemID;
Item.Dura = NextItemData.Dura;
Item.MaxDura = NextItemData.Dura;
Database.Database.UpdateItem(Item);
DeleteItem(1088000, 1, CSocket);
CSocket.Client.Equipment[LinkBack] = Item;
CSocket.Send(ConquerPacket.ItemInfo(Item.UID, Item.ItemID, Item.Plus, Item.Bless, Item.Enchant, Item.Soc1, Item.Soc2, Item.Dura, Item.MaxDura, Item.Progress, Item.Position, Item.Color));
CSocket.Send(ConquerPacket.ItemUsage(Item.UID, LinkBack, Struct.ItemUsage.UpdateItem));
ConquerPacket.ToLocal(ConquerPacket.SpawnCharacter(CSocket), CSocket.Client.X, CSocket.Client.Y, (int)CSocket.Client.Map, 0, 0);
}
else if (LinkBack == 8)
{
if (!HasItem(1088000, 1, CSocket))
return;
Struct.ItemInfo Item;
CSocket.Client.Equipment.TryGetValue(LinkBack, out Item);
if (Item == null)
return;
int NextItemID;
NextItemID = Calculation.NextEquipLevel(Item.ItemID);
Struct.ItemData EquipData;
Struct.ItemData NextItemData;
Nano.Items.TryGetValue(Item.ItemID, out EquipData);
Nano.Items.TryGetValue(NextItemID, out NextItemData);
if (NextItemData == null) return;
if (EquipData == null) return;
if (NextItemData.Level < EquipData.Level)
return;
if (NextItemData.Level > CSocket.Client.Level)
return;
Item.ItemID = NextItemID;
Item.Dura = NextItemData.Dura;
Item.MaxDura = NextItemData.Dura;
Database.Database.UpdateItem(Item);
DeleteItem(1088000, 1, CSocket);;
CSocket.Client.Equipment[LinkBack] = Item;
CSocket.Send(ConquerPacket.ItemInfo(Item.UID, Item.ItemID, Item.Plus, Item.Bless, Item.Enchant, Item.Soc1, Item.Soc2, Item.Dura, Item.MaxDura, Item.Progress, Item.Position, Item.Color));
CSocket.Send(ConquerPacket.ItemUsage(Item.UID, LinkBack, Struct.ItemUsage.UpdateItem));
ConquerPacket.ToLocal(ConquerPacket.SpawnCharacter(CSocket), CSocket.Client.X, CSocket.Client.Y, (int)CSocket.Client.Map, 0, 0);
}
break;
}
#endregion