I took 12tails bless npc and fixed it up and put it into wuxing oven code.
This npc works perfectly.
Only does -1 to fan and tower and does -7 to all other equips.
The one that 12tails released was just a bit buggy.
Just change all the Linkback to Control and it will work.
Hope you enjoy.
Code:
#region Enchanter
case 35016:
{
if (Linkback == 0)
{
GC.AddSend(Packets.NPCSay("Compose or Enchant or Bless using Tortoise gems?"));
GC.AddSend(Packets.NPCLink("Compose", 250));
GC.AddSend(Packets.NPCLink("Enchant", 251));
GC.AddSend(Packets.NPCLink("Bless", 252));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
else if (Linkback == 250)
GC.AddSend(Packets.GeneralData(GC.MyChar.EntityID, 1, N.Loc.X, N.Loc.Y, 0x7e));
else if (Linkback == 251)
GC.AddSend(Packets.GeneralData(GC.MyChar.EntityID, 0x443, GC.MyChar.Loc.X, GC.MyChar.Loc.Y, 116));
else if (Linkback == 252)
{
GC.AddSend(Packets.NPCSay("Choose the equipment you want to set bless."));
GC.AddSend(Packets.NPCLink("Headgear", 1));
GC.AddSend(Packets.NPCLink("Necklace/Bag", 2));
GC.AddSend(Packets.NPCLink("Armor", 3));
GC.AddSend(Packets.NPCLink("Weapon", 4));
GC.AddSend(Packets.NPCLink("Shield", 5));
GC.AddSend(Packets.NPCLink("Ring", 6));
GC.AddSend(Packets.NPCLink("Next", 200));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
else if (Linkback == 200)
{
GC.AddSend(Packets.NPCSay("Choose the equipment you want to set bless."));
GC.AddSend(Packets.NPCLink("Boots", 8));
GC.AddSend(Packets.NPCLink("HeavenFan", 10));
GC.AddSend(Packets.NPCLink("StarTower", 11));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
else if (Linkback >= 1 && Linkback <= 8)
{
Game.Item I = GC.MyChar.Equips.Get((byte)(Linkback));
if (I.Bless != 7)
{
byte TortoiseNeed = 0;
if (I.Bless == 0)
TortoiseNeed = 10;
else if (I.Bless == 1)
TortoiseNeed = 15;
else if (I.Bless == 3)
TortoiseNeed = 20;
else if (I.Bless == 5)
TortoiseNeed = 25;
if (!GC.Agreed)
{
GC.AddSend(Packets.NPCSay("You need " + TortoiseNeed + " Super Tortoises to upgrade. Do you want it?"));
GC.AddSend(Packets.NPCSay("Your item current bless is " + I.Bless + "."));
if (I.Bless != 0)
GC.AddSend(Packets.NPCSay("It will be " + (I.Bless + 2) + "."));
GC.AddSend(Packets.NPCLink("Yes.", Linkback));
GC.AddSend(Packets.NPCLink("Nevermind.", 255));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
GC.Agreed = true;
}
else
{
GC.Agreed = false;
if (GC.MyChar.InventoryContains(700073, TortoiseNeed))
{
GC.MyChar.EquipStats((byte)(Linkback), false);
for (byte i = 0; i < TortoiseNeed; i++)
GC.MyChar.RemoveItem(GC.MyChar.NextItem(700073));
if (I.Bless == 0)
I.Bless = 1;
else
I.Bless += 2;
GC.MyChar.Equips.Replace((byte)(Linkback), I, GC.MyChar);
GC.MyChar.EquipStats((byte)(Linkback), true);
GC.AddSend(Packets.NPCSay("Here you are. It's done."));
GC.AddSend(Packets.NPCLink("Thanks.", 255));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
else
{
GC.AddSend(Packets.NPCSay("You don't have enough Tortoise Gems."));
GC.AddSend(Packets.NPCLink("I see.", 255));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
}
}
else
{
GC.AddSend(Packets.NPCSay("You cannot upgrade an item's bless which is already at maximum."));
GC.AddSend(Packets.NPCLink("I see", 255));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
}
else if (Linkback >= 10 && Linkback <= 11)
{
Game.Item I = GC.MyChar.Equips.Get((byte)(Linkback));
if (I.Bless != 1)
{
byte TortoiseNeed = 0;
if (I.Bless == 0)
TortoiseNeed = 30;
if (!GC.Agreed)
{
GC.AddSend(Packets.NPCSay("You need " + TortoiseNeed + " Super Tortoises to upgrade. Do you want it?"));
GC.AddSend(Packets.NPCSay("Your item current bless is " + I.Bless + "."));
GC.AddSend(Packets.NPCLink("Yes.", Linkback));
GC.AddSend(Packets.NPCLink("Nevermind.", 255));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
GC.Agreed = true;
}
else
{
GC.Agreed = false;
if (GC.MyChar.InventoryContains(700073, TortoiseNeed))
{
GC.MyChar.EquipStats((byte)(Linkback), false);
for (byte i = 0; i < TortoiseNeed; i++)
GC.MyChar.RemoveItem(GC.MyChar.NextItem(700073));
if (I.Bless == 0)
I.Bless = 1;
GC.MyChar.Equips.Replace((byte)(Linkback), I, GC.MyChar);
GC.MyChar.EquipStats((byte)(Linkback), true);
GC.AddSend(Packets.NPCSay("Here you are. It's done."));
GC.AddSend(Packets.NPCLink("Thanks.", 255));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
else
{
GC.AddSend(Packets.NPCSay("You don't have enough Tortoise Gems."));
GC.AddSend(Packets.NPCLink("I see.", 255));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
}
}
else
{
GC.AddSend(Packets.NPCSay("You cannot upgrade an item's bless which is already at maximum."));
GC.AddSend(Packets.NPCLink("I see", 255));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
}
break;
}
#endregion






