diff options
Diffstat (limited to 'npc/pre-re/merchants/alchemist.txt')
-rw-r--r-- | npc/pre-re/merchants/alchemist.txt | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/npc/pre-re/merchants/alchemist.txt b/npc/pre-re/merchants/alchemist.txt new file mode 100644 index 000000000..b99f7bf25 --- /dev/null +++ b/npc/pre-re/merchants/alchemist.txt @@ -0,0 +1,276 @@ +//===== rAthena Script ======================================= +//= Alchemist Shop +//===== By: ================================================== +//= rAthena Team +//===== Current Version: ===================================== +//= 1.7 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Selling Alchemist Materials and Manuals +//===== Additional Comments: ================================= +//= 1.1 fixed Medicine Bowl issue, thanx 2 MasterOfMuppets +//= 1.2 Reddozen's fixes of typos. added optional Elemental +//= Potion Guide. [Lupus] +//= 1.3 Deleted Elemental Potions Guide due to original quest [Lupus] +//= 1.4 Alchemists can now purchase 2000 Medicine Bowls at once. [SinSloth] +//= 1.5 Updated to Aegis 10.3 Standards. [L0ne_W0lf] +//= 1.6 Corrected canceling purchase. [L0ne_W0lf] +//= 1.7 Updated to match AEGIS script. [Masao] +//============================================================ + +alde_alche,31,186,3 script Craft Book Salesman#alde 883,{ + + mes "[Craft Book Salesman]"; + mes "Welcome."; + mes "I'm here to sell"; + mes "^0000FFspecial craft books^000000 for Geneticists."; + next; + mes "[Craft Book Salesman]"; + mes "Geneticists have some skills"; + mes "that require craft books to activate."; + next; + mes "[Craft Book Salesman]"; + mes "The more craft books you have,"; + mes "the more skills you can use."; + next; + mes "[Craft Book Salesman]"; + mes "Please understand that"; + mes "I specialize in the sale of these special books and"; + mes "I ^FF0000don't sell other items^000000."; + next; + mes "[Craft Book Salesman]"; + mes "Okay then, here's the list of available craft books."; + next; + switch(select("[Apple Bomb Craft Book] 100,000 zeny:[Pineapple Bomb Craft Book] 100,000 zeny:[Coconut Bomb Craft Book] 100,000 zeny:[Melon Bomb Craft Book] 100,000 zeny:[Banana Bomb Craft Book] 100,000 zeny:[Plant Gene Cultivation Method] 100,000 zeny:[Superior Potion Craft Manual] 100,000 zeny:[Mix Cooking Book] 100,000 zeny:[Health Improvement Research Book] 100,000 zeny:[Vigor Drink Recipe] 100,000 zeny:Close")){ + case 1: + callsub S_SellManual,6279,100000; + break; + case 2: + callsub S_SellManual,6280,100000; + break; + case 3: + callsub S_SellManual,6281,100000; + break; + case 4: + callsub S_SellManual,6282,100000; + break; + case 5: + callsub S_SellManual,6283,100000; + break; + case 6: + callsub S_SellManual,6284,100000; + break; + case 7: + callsub S_SellManual,6285,100000; + break; + case 8: + callsub S_SellManual,11022,100000; + break; + case 9: + callsub S_SellManual,11023,100000; + break; + case 10: + callsub S_SellManual,11024,100000; + break; + case 11: + mes "[Craft Book Salesman]"; + mes "Thank you for your patronage."; + mes "Please come again."; + close; + } + +S_SellManual: + mes "[Craft Book Salesman]"; + mes ""+getitemname(getarg(0))+"?"; + mes "That'll be "+getarg(1)+" zeny ea."; + mes "How many of these books would you like to purchase?"; + next; + input .@amount; + if (.@amount == 0) { + mes "[Craft Book Salesman]"; + mes "Would you like to see some different books?"; + close; + } + if (.@amount < 1 || .@amount > 99 ){ + mes "[Craft Book Salesman]"; + mes "You cannot purchase more than 100 at a time."; + close; + } + mes "[Craft Book Salesman]"; + mes "You've entered "+.@amount+"x "+getitemname(getarg(0))+"."; + mes "That'll be "+getarg(1) * .@amount+" Zeny."; + mes "Would you like to continue?"; + next; + if (select("Yes:No") == 1) { + if (Zeny < getarg(1) * .@amount) { + mes "[Craft Book Salesman]"; + mes "You don't"; + mes "have enough zeny."; + mes "Check how much zeny"; + mes "you have first."; + close; + } + if (checkweight(getarg(0),.@amount) == 0){ + mes "[Craft Book Salesman]"; + mes "It doesn't seem like you can carry everything."; + mes "Please check the space in your inventory."; + close; + } + mes "[Craft Book Salesman]"; + mes "Thank you for your patronage."; + set Zeny,Zeny - getarg(1) * .@amount; + getitem getarg(0),.@amount; + close; + } + mes "[Craft Book Salesman]"; + mes "Please take your time"; + mes "before you make your decision."; + close; +} + +alde_alche,24,188,3 script Guild Dealer 740,{ + if (checkweight(1201,1) == 0) { + mes "- Wait a minute! -"; + mes "- Currently you are carrying -"; + mes "- too many items with you. -"; + mes "- Please come back again -"; + mes "- after you store some items into kafra storage. -"; + close; + } + mes "[Gever Al Sharp]"; + mes "Welcome to the"; + mes "Alchemist Union."; + mes "How can I assist you today?"; + next; + switch(select("Purchase materials.:Purchase a production manual.:Quit.")) { + case 1: + mes "[Gever Al Sharp]"; + mes "What would you like?"; + next; + if (select("Medicine Bowl - 8 Zeny:Cancel.") == 1) { + mes "[Gever Al Sharp]"; + mes "How many do you want?"; + mes "Enter '0' if you want to quit."; + next; + while(1) { + input .@input,0,2001; + if (.@input == 0) { + mes "[Gever Al Sharp]"; + mes "The deal was cancelled."; + mes "Come again next time."; + close; + } + else if (.@input < 1 || .@input > 2000) { + mes "[Gever Al Sharp]"; + mes "The number must"; + mes "be less than 2000."; + next; + } + else { + break; + } + } + set .@sell,.@input * 8; + set .@item_weight,.@input * 10; + if (Zeny < .@sell) { + mes "[Gever Al Sharp]"; + mes "You don't"; + mes "have enough zeny."; + mes "Check how much zeny"; + mes "you have first."; + close; + } + if ((MaxWeight - Weight) < .@item_weight) { + mes "[Gever Al Sharp]"; + mes "It doesn't seem like"; + mes "you can carry everything."; + mes "Please check the space"; + mes "in your inventory."; + close; + } + set zeny,zeny-.@sell; + getitem 7134,.@input; //Medicine_Bowl + mes "[Gever Al Sharp]"; + mes "Thank you."; + mes "Come again."; + close; + } + mes "[Gever Al Sharp]"; + mes "Well then,"; + mes "come again when"; + mes "you need to purchase"; + mes "materials related to"; + mes "Alchemy, alright?"; + close; + case 2: + mes "[Gever Al Sharp]"; + mes "What do you need?"; + mes "Manuals are generally 100,000 zeny. But there are a couple of special manuals that will cost more."; + next; + switch(select("Potion Creation Guide:Alcohol Creation Guide:Bottle Grenade Creation Guide:Acid Bottle Creation Guide:Plant Bottle Creation Guide:Marine Sphere Bottle Creation Guide:Glistening Coat Creation Guide:Condensed Potion Creation Guide:Cancel Deal.")) { + case 1: + callsub S_SellManual,7144,100000; //Normal_Potion_Book + break; + case 2: + callsub S_SellManual,7127,100000; //Alcol_Create_Book + break; + case 3: + callsub S_SellManual,7128,100000; //FireBottle_Create_Book + break; + case 4: + callsub S_SellManual,7129,100000; //Acid_Create_Book + break; + case 5: + callsub S_SellManual,7130,100000; //Plant_Create_Book + break; + case 6: + callsub S_SellManual,7131,100000; //Mine_Create_Book + break; + case 7: + callsub S_SellManual,7132,100000; //Coating_Create_Book + break; + case 8: + callsub S_SellManual,7133,240000; //Slim_Potion_Create_Book + break; + case 9: + mes "[Gever Al Sharp]"; + mes "Well then..."; + mes "Come back if you"; + mes "ever need to buy"; + mes "a production manual."; + close; + } + case 3: + mes "[Gever Al Sharp]"; + mes "Alright then,"; + mes "have a good day."; + close; + } + +S_SellManual: + if (Zeny < getarg(1)) { + mes "[Gever Al Sharp]"; + mes "You don't"; + mes "have enough zeny."; + mes "Check how much zeny"; + mes "you have first."; + close; + } + mes "[Gever Al Sharp]"; + mes ""+getitemname(getarg(0))+"?"; + mes "That'll be "+getarg(1)+" zeny."; + next; + if (select("Purchase.:Quit.") == 1) { + set zeny,zeny-getarg(1); + getitem getarg(0),1; + mes "[Gever Al Sharp]"; + mes "Thank you for"; + mes "your patronage."; + close; + } + mes "[Gever Al Sharp]"; + mes "Come again"; + mes "next time."; + close; +} |