//===== eAthena Script =======================================
//= Grandpa Pharmacist
//===== By: ==================================================
//= DZeroX
//===== Current Version: =====================================
//= 1.0
//===== 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;
}
}