^_^ here you go ppl a very simple and nice shop
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());
}
Controls
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());
}
}
}
^_^ here you go ppl a very simple and nice shop
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());
}
Controls
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());
}
}
}
If im using TheCOServer Where should i add this information? I looked where the npc dialog is but its set up differently than above. Dialog.ini shows the way it looks below.
[10053]
face=2
txt0=Hello there how are you i am the teleporter magician where do u want to go
opt0=Bird Island-Phoenix Castle-Desert City-Mine Cave-Market-Lottory-No I will stay
req=gold,100-gold,100-gold,100-gold,100-gold,100-cps,27
rew=teleport,1015,723,573-teleport,1011,190,271-teleport,1000,500,650-teleport,1003,70,50-teleport,1036,210,195-teleport,700,40,47
[Relase+Tipp] Flyff NPC Shop Editor V2 06/13/2010 - Flyff Private Server - 10 Replies Hallo liebe E*pvper
Ich wollte hier mal den NPC Shop Editor von Caali Relasen.
Nunja viele wollen es lieber nicht,weil sie meinen,dass die Item List unvollständig ist bzw. man sieht die Item Icons nicht.Erstmal der Download zum NPC Shop Editor
Download : Klick
Tipp 1)
[Relase]NPC Shop Editor v2 [FINAL] 02/22/2010 - Flyff Hacks, Bots, Cheats, Exploits & Macros - 13 Replies Hi liebe Elitepvper Community ,
Ihr wisst bestimmt das Caali einen NPC Shop Editor veröffentlicht hat.
Der war aber leider sehr mager an Items.
Deswegen hab ich mich rangesetzt und eine erweiterte Version gebastelt
In der Version sind glaub ich 99% der v11 Items vorhanden und ALLE Icons.
Ihr könnt mir ruhig glauben wenn ich euch sagen das es ein haufen Arbeit war.
..::Umgang::..
Ich glaube wie man damit umgeht muss ich euch nicht wirklich erklären^^
Need item type and token type boot 03/18/2008 - Conquer Online 2 - 1 Replies Hi All programers and makers of boots, Great job. Could some one make item and token type boot for patch 5118. Please