Dialog
Code:
if (CurrentNPC == 99999)
{
SendPacket(General.MyPackets.NPCSay("I am the greatest merchant in all the lands! Whatever you want, I've got it!"));
SendPacket(General.MyPackets.NPCLink("Show me what you got.", 34));
SendPacket(General.MyPackets.NPCLink("Just passing by.", 255));
SendPacket(General.MyPackets.NPCSetFace(30));
SendPacket(General.MyPackets.NPCFinish());
}
Code:
if (CurrentNPC == 99999)
{
if (Control == 33)
{
SendPacket(General.MyPackets.NPCSay("What would you like? [Page. 2]"));
SendPacket(General.MyPackets.NPCLink("[S]DragonGem [975 cps]", 51));
SendPacket(General.MyPackets.NPCLink("[S]PhoenixGem [975 cps]", 52));
SendPacket(General.MyPackets.NPCLink("[S]MoonGem [975 cps]", 53));
SendPacket(General.MyPackets.NPCLink("[S]VioletGem [975 cps]", 54));
SendPacket(General.MyPackets.NPCLink("[S]RainbowGem [975 cps]", 55));
SendPacket(General.MyPackets.NPCLink("[S]TortoiseGem [975 cps]", 56));
SendPacket(General.MyPackets.NPCLink("Less...", 34));
SendPacket(General.MyPackets.NPCSetFace(30));
SendPacket(General.MyPackets.NPCFinish());
}
if (Control == 34)
{
SendPacket(General.MyPackets.NPCSay("What would you like? [Page. 1]"));
SendPacket(General.MyPackets.NPCLink("StarDrill [3780 cps]", 1));
SendPacket(General.MyPackets.NPCLink("+1Stone [8 cps]", 3));
SendPacket(General.MyPackets.NPCLink("+2Stone [37 cps]", 4));
SendPacket(General.MyPackets.NPCLink("MeteorScroll [130 cps]", 5));
SendPacket(General.MyPackets.NPCLink("DBScroll [2200 cps]", 6));
SendPacket(General.MyPackets.NPCLink("PenitenceAmulet [100 cps]", 2));
SendPacket(General.MyPackets.NPCLink("More...", 33));
SendPacket(General.MyPackets.NPCSetFace(30));
SendPacket(General.MyPackets.NPCFinish());
}
if (Control >= 51 && Control <= 56)
{
if (Control == 51)
{
item = 700013;
item2 = "DragonGem";
cost = 975;
}
else if (Control == 52)
{
item = 700003;
item2 = "PhoenixGem";
cost = 975;
}
else if (Control == 53)
{
item = 700063;
item2 = "MoonGem";
cost = 975;
}
else if (Control == 54)
{
item = 700053;
item2 = "VioletGem";
cost = 975;
}
else if (Control == 55)
{
item = 700033;
item2 = "RainbowGem";
cost = 975;
}
else if (Control == 56)
{
item = 700073;
item2 = "TortoiseGem";
cost = 975;
}
Amount = "";
byte Max = (byte)(40 - MyChar.ItemsInInventory);
SendPacket(General.MyPackets.NPCSay("How many " + item2 + "s do you want? (Max: " + Max + ")"));
SendPacket(General.MyPackets.NPCLink2("Amount:", 31));
SendPacket(General.MyPackets.NPCLink("Cancel.", 34));
SendPacket(General.MyPackets.NPCSetFace(0));
SendPacket(General.MyPackets.NPCFinish());
}
if (Control >= 1 && Control <= 6)
{
if (Control == 1)//StarDrill
{
item = 1200006;
item2 = "StarDrill";
cost = 3780;
}
else if (Control == 2)
{
item = 723727;
item2 = "PenitenceAmulet";
cost = 100;
}
else if (Control == 3)//+1Stone
{
item = 730001;
item2 = "+1Stone";
cost = 8;
}
else if (Control == 4)//+1Stone
{
item = 730002;
item2 = "+2Stone";
cost = 37;
}
else if (Control == 5)//MeteorScroll
{
item = 720027;
item2 = "MeteorScroll";
cost = 130;
}
else if (Control == 6)//DBScroll
{
item = 720028;
item2 = "DBScroll";
cost = 2200;
}
Amount = "";
byte Max = (byte)(40 - MyChar.ItemsInInventory);
SendPacket(General.MyPackets.NPCSay("How many " + item2 + "s do you want? (Max: " + Max + ")"));
SendPacket(General.MyPackets.NPCLink2("Amount:", 31));
SendPacket(General.MyPackets.NPCLink("Cancel.", 34));
SendPacket(General.MyPackets.NPCSetFace(0));
SendPacket(General.MyPackets.NPCFinish());
}
if (Control == 31)
{
byte Max = (byte)(40 - MyChar.ItemsInInventory);
string amountx = "";
bool ValidAmount = true;
for (int i = 14; i < 14 + Data[13]; i++)
{
amountx += Convert.ToChar(Data[i]);
}
if (amountx.IndexOfAny(new char[10] { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' }) > -1)
{
ValidAmount = true;
}
else
{
ValidAmount = false;
}
try
{
if (ValidAmount)
{
Amount += Convert.ToByte(amountx);
if (byte.Parse(Amount) <= Max)
{
SendPacket(General.MyPackets.NPCSay("You would like " + amountx + ", correct?"));
SendPacket(General.MyPackets.NPCLink("Yes.", 16));
SendPacket(General.MyPackets.NPCLink("No.", 34));
SendPacket(General.MyPackets.NPCLink("Cancel.", 255));
SendPacket(General.MyPackets.NPCSetFace(0));
SendPacket(General.MyPackets.NPCFinish());
}
else
{
SendPacket(General.MyPackets.NPCSay("Too many! Not enough room in your inventory."));
SendPacket(General.MyPackets.NPCLink("Cancel.", 255));
SendPacket(General.MyPackets.NPCSetFace(0));
SendPacket(General.MyPackets.NPCFinish());
return;
}
}
else
{
SendPacket(General.MyPackets.NPCSay("That is not a Valid Character!"));
SendPacket(General.MyPackets.NPCLink("Cancel.", 255));
SendPacket(General.MyPackets.NPCSetFace(0));
SendPacket(General.MyPackets.NPCFinish());
return;
}
}
catch (Exception Exc) { General.WriteLine(Exc.ToString()); }
}
if (Control >= 10 && Control <= 16)
{
if (Control == 16)
{
amount = byte.Parse(Amount);
tcost = cost * amount;
}
SendPacket(General.MyPackets.NPCSay(amount + " " + item2 + "(s) at " + cost + " cps each brings the total to " + tcost + " cps."));
SendPacket(General.MyPackets.NPCLink("Purchase.", 20));
SendPacket(General.MyPackets.NPCLink("Cancel.", 255));
SendPacket(General.MyPackets.NPCSetFace(0));
SendPacket(General.MyPackets.NPCFinish());
}
if (Control == 20)
{
if (MyChar.CPs >= tcost)
{
for (int i = 0; i < amount; i++)
MyChar.AddItem(item + "-0-0-0-0-0", 0, (uint)General.Rand.Next(36457836));
MyChar.CPs -= tcost;
SendPacket(General.MyPackets.Vital(MyChar.UID, 30, MyChar.CPs));
Amount = "";
}
else
{
SendPacket(General.MyPackets.NPCSay("You don't have enough CPs."));
SendPacket(General.MyPackets.NPCLink("I see.", 255));
SendPacket(General.MyPackets.NPCSetFace(0));
SendPacket(General.MyPackets.NPCFinish());
}
}
}






