I need a solution for one of my NPCs... Ethereal
All the other options in his menu to bless things like boots armor... exc.. work
But the headgear option just simply doesn't work...
I've tried to figure out what is wrong with the code but I just can't figure it out.
If someone would help me fix this issue I would greatly appreciate it.
Here is the code I use now
Code:
#region Ethereal
case 35015:
{
if (Control == 0)
{
GC.AddSend(Packets.NPCSay("I can set your itens bless, for some tortoise gens super."));
GC.AddSend(Packets.NPCLink("I want upgrade it.", 1));
GC.AddSend(Packets.NPCLink("Just passing by.", 255));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
GC.Agreed = false;
}
else if (Control == 1)
{
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("Boots", 8));
GC.AddSend(Packets.NPCSetFace(N.Avatar));
GC.AddSend(Packets.NPCFinish());
}
else if (Control >= 1 && Control <= 8)
{
Game.Item I = GC.MyChar.Equips.Get((byte)(Control));
if (I.Bless != 7)
{
byte TortoiseNeed = 0;
if (I.Bless == 0)
TortoiseNeed = 5;
else if (I.Bless == 1)
TortoiseNeed = 1;
else if (I.Bless == 3)
TortoiseNeed = 3;
else if (I.Bless == 5)
TortoiseNeed = 5;
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.", Control));
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)(Control), 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)(Control), I, GC.MyChar);
GC.MyChar.EquipStats((byte)(Control), 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
I use NewestCoServer version 5165 that I've updated to work with SQL if it matters






