[RELASE]New type of Shop

05/25/2009 12:31 $HaDoW#1
^_^ 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());
                                    }
                                }
                            }
05/25/2009 12:35 felipeboladao#2
Good Release $HaDoW...
05/25/2009 12:53 $HaDoW#3
Thanks ^_^
05/26/2009 15:19 sec0nd2n0ne#4
Quote:
Originally Posted by $HaDoW View Post
^_^ 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

Thanks for any help you guys can provide
05/26/2009 16:11 Pete1990#5
Not gonna be rude but this is out of Cov2 or Kinish source:)
05/26/2009 16:41 sec0nd2n0ne#6
Quote:
Originally Posted by Pete1990 View Post
Not gonna be rude but this is out of Cov2 or Kinish source:)
Instead of not being rude help me lol :P
05/26/2009 16:43 $HaDoW#7
dude ^_^ did I sayd that I have created it ? no ! :)
05/26/2009 17:55 suboy#8
Quote:
Originally Posted by $HaDoW View Post
dude ^_^ did I sayd that I have created it ? no ! :)
well lol u could of say u didnt create it
05/26/2009 17:59 $HaDoW#9
who gives a shit :D ALMOST everyone here only leech and cant even say thanks -_-