//===== eAthena Script ======================================= //= Grandpa Pharmacist //===== By: ================================================== //= DZeroX //===== Current Version: ===================================== //= 1.0a //===== Compatible With: ===================================== //= eAthena SVN Trunk //===== Description: ========================================= //= Trade in items for potions //=============================== //= Breakdown of arguments used //= arg(0): Herb required. //= arg(1): Zeny cost. //= arg(2): z //===== Additional Comments: ================================= //= 1.0 - Fully working. //============================================================ alberta_in.gat,16,28,4 script Grandpa Pharmacist 61,{ mes "[Grandpa Pharmacist]"; mes "Err....Are you a customer...?"; switch(select("Make Potion","Talk.","Instruction of making potions","Cancel")) { case 1: next; set .@weight,MaxWeight-Weight; if ((.@weight) < 10000) { mes "[Grandpa Pharmacist]"; mes "Oh, boy! Why are carrying so much stuffs with you?"; mes "Don't be so greedy! bring little by little."; next; mes "[Grandpa Pharmacist]"; mes "At least, you should have some space to carry the potions..."; mes "Why don't you keep some of them in storage and come back to me again?"; close; } else { mes "[Grandpa Pharmacist]"; mes "Did you bring all the ingredients? Which potion do you want to make?"; switch(select("Red Potion.","Orange Potion.","Yellow Potion.","White Potion.","Blue Potion.","Green Potion.","Nah, I changed my mind.")) { case 1: callsub L_making,507,3,501; case 2: next; mes "[Grandpa Pharmacist]"; if (countitem(507) < countitem(713)) { set .@max,countitem(507); } if (countitem(508) < countitem(713)) { set .@max,countitem(508); } else { set .@max,countitem(713); } if ((countitem(507) < 1) || (countitem(508) < 1) || (countitem(713) == 0)) { mes "You are silly! How can you make a potion if you don't even have ingredients?!"; mes "Go away!"; close; } if (Zeny < 3) { mes "You are silly! Did you think you can make a potion without money?"; mes "Go away!"; close; } mes "How many?"; switch(select("As many as I can","I will set the amounts.","Nah, forget about it.")) { case 1: next; if ((countitem(507) < .@max) || (countitem(508) < .@max) || (countitem(713) < .@max) || (Zeny < .@max*3)) { mes "[Grandpa Pharmacist]"; mes "You punk! Do you want me to make stuff from insufficient ingredients?"; close; } set Zeny,Zeny-(.@max*getarg(1)); delitem getarg(0),.@max*2; delitem 713,.@max; getitem getarg(2),.@max; mes "[Grandpa Pharmacist]"; mes "Here. Take them."; mes "Keep it in mind! Overdose could lead you to death."; close; case 2: next; mes "[Grandpa Pharmacist]"; mes "Set the amounts from 1 to 100. type '0' if you want to Cancel"; mes "I think you can make "+.@max+" potions?"; input .@amount; if (.@amount == 0) { next; mes "[Grandpa Pharmacist]"; mes "Can't you do it correctly?!"; close; } if (.@amount > 100) { next; mes "[Grandpa Pharmacist]"; mes "Are you a deaf of something? I can't make more than 100."; close; } if ((countitem(507) < .@amount) || (countitem(508) < .@amount) || (countitem(713) < .@amount) || (Zeny < .@amount*3)) { next; mes "[Grandpa Pharmacist]"; mes "You punk! Do you want me to make stuff from insufficient ingredients?"; close; } next; set Zeny,Zeny-(.@amount*getarg(1)); delitem getarg(0),.@amount*2; delitem 713,.@amount; getitem getarg(2),.@amount; mes "[Grandpa Pharmacist]"; mes "Here. Take them."; mes "Keep it in mind! Overdose could lead you to death."; close; case 3: next; mes "[Grandpa Pharmacist]"; mes "What did you say?! You little punk.. Get out of here!"; close; } case 3: callsub L_making,508,10,503; case 4: callsub L_making,509,20,504; case 5: callsub L_making,510,30,505; case 6: callsub L_making,511,3,506; case 7: mes "[Grandpa Pharmacist]"; mes "What did you say?! You little punk.. Get out of here!"; close; } } case 2: next; mes "[Grandpa Pharmacist]"; mes "You can improve immune system with medicine. But youhave to be careful in medicine otherwise you would be addicted..."; mes "Oh man... Since I'm old, I enjoy recalling my youth."; mes "Anyway, the potion is just a medicine which can assist you. That's all."; close; case 3: next; mes "[Grandpa Pharmacist]"; mes "Phew... What an annoying young people... Fine, I will explain how the potion works on you."; next; mes "[Grandpa Pharmacist]"; mes "You can just use raw herbs but I can process herbs to make potions which have greater effect."; next; mes "[Grandpa Pharmacist]"; mes "If you ask me to make potions, I will make them with the few fee."; next; mes "[Grandpa Pharmacist]"; mes "Red_Potion - ^0098E5Red Herb: 2ea, Empty Bottle: 1ea, Fee: 3 zeny.^000000"; mes "Orange_Potion - ^0098E5Red Herb: 1ea, Yellow Herb: 1ea, Empty Bottle: 1ea, Fee: 5 zeny.^000000"; mes "Yellow_Potion - ^0098E5Yellow Herb: 2ea, Empty Bottle: 1ea, Fee: 10 zeny.^000000"; next; mes "[Grandpa Pharmacist]"; mes "White_Potion - ^0098E5White Herb: 2ea, Empty Bottle: 1ea, Fee: 20 zeny.^000000"; mes "Blue_Potion - ^0098E5Blue Herb: 2ea, Empty Bottle: 1ea, Fee: 30 zeny.^000000"; mes "Green_Potion - ^0098E5Green Herb: 2ea, Empty Bottle: 1ea, Fee: 3 zeny.^000000"; close; case 4: next; mes "[Grandpa Pharmacist]"; mes "Don't you have anything to say?"; close; } L_making: next; mes "[Grandpa Pharmacist]"; if ((countitem(getarg(0))/2) < countitem(713)) { set .@max,countitem(getarg(0))/2; } else { set .@max,countitem(713); } if ((countitem(getarg(0)) < 2) || (countitem(713) == 0)) { mes "You are silly! How can you make a potion if you don't even have ingredients?!"; mes "Go away!"; close; } if (Zeny < 3) { mes "You are silly! Did you think you can make a potion without money?"; mes "Go away!"; close; } mes "How many?"; switch(select("As many as I can","I will set the amounts.","Nah, forget about it.")) { case 1: next; if ((countitem(getarg(0)) < .@max*2) || (countitem(713) < .@max) || (Zeny < .@max*getarg(1))) { mes "[Grandpa Pharmacist]"; mes "You punk! Do you want me to make stuff from insufficient ingredients?"; close; } set Zeny,Zeny-(.@max*getarg(1)); delitem getarg(0),.@max*2; delitem 713,.@max; getitem getarg(2),.@max; mes "[Grandpa Pharmacist]"; mes "Here. Take them."; mes "Keep it in mind! Overdose could lead you to death."; close; case 2: next; mes "[Grandpa Pharmacist]"; mes "Set the amounts from 1 to 100. type '0' if you want to Cancel"; mes "I think you can make "+.@max+" potions?"; input .@amount; if (.@amount == 0) { next; mes "[Grandpa Pharmacist]"; mes "Can't you do it correctly?!"; close; } if (.@amount > 100) { next; mes "[Grandpa Pharmacist]"; mes "Are you a deaf of something? I can't make more than 100."; close; } if ((countitem(getarg(0)) < .@amount*2) || (countitem(713) < .@amount) || (Zeny < .@amount*getarg(1))) { next; mes "[Grandpa Pharmacist]"; mes "You punk! Do you want me to make stuff from insufficient ingredients?"; close; } next; set Zeny,Zeny-(.@amount*getarg(1)); delitem getarg(0),.@amount*2; delitem 713,.@amount; getitem getarg(2),.@amount; mes "[Grandpa Pharmacist]"; mes "Here. Take them."; mes "Keep it in mind! Overdose could lead you to death."; close; case 3: next; mes "[Grandpa Pharmacist]"; mes "What did you say?! You little punk.. Get out of here!"; close; } }