summaryrefslogblamecommitdiff
path: root/world/map/npc/001-1/trader.txt
blob: a90ca8a591ba4a7485d6a1bf1f3589649643966e (plain) (tree)
1
2
3
4
5



                                             
 













                                                                                                                                   
                 

       





                                                    
                 

         





                                                                   
                 

        












                                                                                                                                         

        

                                                                                                       
                 

        


                                                                                                                          

            




                                                       
                 

       




                                                                                                                 
                 

          




                                                                                               
                 

           




                                                                                                                                                                                                                  
                 

          











                                                                                                            
                 
 
          











                                                                                                                 
                 

       











                                                                                                                                
                 

       

                                                                                                                               
                 

          

                                                                                                        
                 

                 

                                           
                 

     

                                






                         
          
 
// Teaches Trading skill
// Offers item conversion for non-magic users
// Updated by: TheKandiman
// Reviewed by: Wombat

001-1.gat,57,33,0|script|Trader|115,{
    set @TRADE_SKILL, 2;
    set @Ironprice, 1000;
    set @Sulphurprice, 1200;
    set @Potionprice, 500;
    if ((getskilllv(@TRADE_SKILL) > 0) && baselevel >= 25) goto L_Trade;
    if (getskilllv(@TRADE_SKILL) > 0) goto L_Later;

    mes "[Trader]";
    mes "\"Hello. I came here to trade wares with the people of Tulimshar. Unfortunately for you, I've traded everything I had.\"";
    next;
    menu
        "Oh. I'll go then.", -,
        "You don't have anything?", L_More;
    goto L_Close;

L_More:
    mes "[Trader]";
    mes "\"No. I have nothing for you. Except...\"";
    next;
    menu
        "Yes?", L_Except,
        "Ok then.",  -;
    goto L_Close;

L_Except:
    mes "[Trader]";
    mes "\"I could teach you how to trade.  It'll cost you 5GP.\"";
    next;
    menu
        "Sure.", L_Teach,
        "No thank you.", -;
    goto L_Close;

L_Teach:
    if (zeny < 5) goto L_NotEnoughMoney;
    set zeny, zeny - 5;
    setskill @TRADE_SKILL, 1;
    mes "[Trader]";
    mes "\"You can initiate trade with someone by right-clicking on them and choosing trade.";
    mes "You'll both add the items and set the GP you're putting up then press propose trade.";
    mes "After both parties have proposed their side, you can both review the trade, and then accept or reject by closing the window.\"";
    next;
    mes "[Trader]";
    mes "\"Items added to the trade cannot be removed, and so mistakes have to be dealt with by canceling the trade.";
    mes "You need to press the change button to let the other person know about GP changes.\"";
    next;
    goto L_Later;

L_Later:
    mes "[Trader]";
    mes "\"Please feel free to check back later.  I'm expecting a large shipment of goods to trade.\"";
    goto L_Close;

L_Trade:
    mes "[Trader]";
    mes "\"Welcome back!  My shipment came in and I have a bunch of things that I can trade now.  What would you like?\"";
    goto L_Trademenu;

L_Trademenu:
    menu
        "Do you have Iron Powder?", L_Iron,
        "How about Sulphur Powder?", L_Sulphur,
        "I need Medium Healing Potions.", L_Healpots,
        "I think I have everything I need, thanks.", -;
    goto L_Close;

L_Iron:
    mes "[Trader]";
    mes "\"I do have a few of those.  I will give you 4 Iron Powders for 1 Iron Ore and " + @Ironprice + "gp.\"";
    menu
        "Sure.", L_Ipowder,
        "What a ripoff!  No way!", -;
    goto L_Close;

L_Sulphur:
    mes "[Trader]";
    mes "\"I can trade you 5 Sulphur Powders for 1 Pile of Ash and " + @Sulphurprice + "gp.\"";
    menu
        "Here you go.", L_Spowder,
        "Are you nuts?! Forget it!", -;
    goto L_Close;

L_Healpots:
    mes "[Trader]";
    mes "\"Healing potions are always useful, but I rarely need anything larger than the small ones.  I will happily trade you 1 Medium Healing Potion for 3 Small Healing Potions and " + @Potionprice + "gp.\"";
    menu
        "Alright.", L_Pots,
        "Whoa, that's way too much.", -;
    goto L_Close;

L_Ipowder:
    if (countitem("IronOre") < 1) goto L_Missing;
    if (zeny < @Ironprice) goto L_NotEnoughMoney;
    getinventorylist;
    if (@inventorylist_count == 100 && countitem("IronOre") > 1 && countitem("IronPowder") < 1) goto L_Full;
    delitem "IronOre", 1;
    set zeny, zeny - @Ironprice;
    getitem "IronPowder", 4;
    mes "[Trader]";
    mes "\"There you go.  Would you like to trade anything else?\"";
    menu
        "Yes.", L_Trademenu,
        "No.", L_No;
    goto L_Close;

L_Spowder:
    if (countitem("PileOfAsh") < 1) goto L_Missing;
    if (zeny < @Sulphurprice) goto L_NotEnoughMoney;
    getinventorylist;
    if (@inventorylist_count == 100 && countitem("PileOfAsh") > 1 && countitem("SulphurPowder") < 1) goto L_Full;
    delitem "PileOfAsh", 1;
    set zeny, zeny - @Sulphurprice;
    getitem "SulphurPowder", 5;
    mes "[Trader]";
    mes "\"There you go.  Would you like to trade anything else?\"";
    menu
        "Yes.", L_Trademenu,
        "No.", L_No;
    goto L_Close;

L_Pots:
    if (countitem("SmallHealingPotion") < 3) goto L_Missing;
    if (zeny < @Potionprice) goto L_NotEnoughMoney;
    getinventorylist;
    if (@inventorylist_count == 100 && countitem("SmallHealingPotion") > 3 && countitem("MediumHealingPotion") < 1) goto L_Full;
    delitem "SmallHealingPotion", 3;
    set zeny, zeny - @Potionprice;
    getitem "MediumHealingPotion", 1;
    mes "[Trader]";
    mes "\"There you go.  Would you like to trade anything else?\"";
    menu
        "Yes.", L_Trademenu,
        "No.", L_No;
    goto L_Close;

L_Full:
    mes "[Trader]";
    mes "\"You must have been making a lot of trades...your bag is completely full!  Come back after you've made some room.\"";
    goto L_Close;

L_Missing:
    mes "[Trader]";
    mes "\"It looks like you're missing some items.  Please come back when you have enough to trade.\"";
    goto L_Close;

L_NotEnoughMoney:
    mes "[Trader]";
    mes "\"You don't have enough money.\"";
    goto L_Close;

L_No:
    mes "[Trader]";
    mes "\"Have a great day!\"";
    goto L_Close;

L_Close:
    set @TRADE_SKILL, 0;
    set @Ironprice, 0;
    set @Sulphurprice, 0;
    set @Potionprice, 0;
    close;
}