//================= Hercules Script ======================================= //= _ _ _ //= | | | | | | //= | |_| | ___ _ __ ___ _ _| | ___ ___ //= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| //= | | | | __/ | | (__| |_| | | __/\__ \ //= \_| |_/\___|_| \___|\__,_|_|\___||___/ //================= License =============================================== //= This file is part of Hercules. //= http://herc.ws - http://github.com/HerculesWS/Hercules //= //= Copyright (C) 2012-2015 Hercules Dev Team //= Copyright (C) Kisuka //= Copyright (C) L0ne_W0lf //= Copyright (C) Lupus //= Copyright (C) DZeroX //= //= Hercules is free software: you can redistribute it and/or modify //= it under the terms of the GNU General Public License as published by //= the Free Software Foundation, either version 3 of the License, or //= (at your option) any later version. //= //= This program is distributed in the hope that it will be useful, //= but WITHOUT ANY WARRANTY; without even the implied warranty of //= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //= GNU General Public License for more details. //= //= You should have received a copy of the GNU General Public License //= along with this program. If not, see . //========================================================================= //= Old Pharmacist //================= Description =========================================== //= Trade in items for potions. //================= Current Version ======================================= //= 1.4 //========================================================================= alberta_in,16,28,4 script Pharmacist 1_M_PUBMASTER,{ if (checkweight(Knife,1) == 0) { mes "- Wait a moment! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please come back later -"; mes "- after you put some items into kafra storage. -"; close; } mes "[Old Pharmacist]"; mes "Ummmm..."; mes "What brings you here...?"; switch(select("Make Potion", "Talk.", "Mixing Information", "Cancel")) { case 1: next; if (MaxWeight - Weight < 5000) { mes "[Old Pharmacist]"; mes "Why are you carrying these so many!"; mes "Don't be greedy, carry only as much you need!"; next; mes "[Old Pharmacist]"; mes "You are too heavy to receive potions from me..."; mes "Go store some items in your storage first!"; close; } else { mes "[Old Pharmacist]"; mes "You have all the stuff ready, right? Which one would you like?"; switch(select("Red Potion.", "Orange Potion.", "Yellow Potion.", "White Potion.", "Blue Potion.", "Green Potion.", "Actually, I don't want anything.")) { case 1: callsub L_Making,507,3,501; case 2: next; mes "[Old Pharmacist]"; if (countitem(Red_Herb) < countitem(Empty_Bottle)) { .@max = countitem(Red_Herb); } else if (countitem(Yellow_Herb) < countitem(Empty_Bottle)) { .@max = countitem(Yellow_Herb); } else { .@max = countitem(Empty_Bottle); } if ((countitem(Red_Herb) < 1) || (countitem(Yellow_Herb) < 1) || (countitem(Empty_Bottle) == 0)) { mes "You rascal! What did you expect?! Coming here with nothing. Tsk!"; mes "Get lost!"; close; } if (Zeny < 3) { mes "You rascal! What did you expect?! Coming here with nothing. Tsk!"; mes "Get lost!"; close; } mes "How many?"; switch(select("Make as many as I can.", "I want to choose an amount.", "Actually, I don't want anything.")) { case 1: next; if ((countitem(Red_Herb) < .@max) || (countitem(Yellow_Herb) < .@max) || (countitem(Empty_Bottle) < .@max) || (Zeny < .@max*3)) { mes "[Old Pharmacist]"; mes "You rascal! You don't even have all the materials and you want me to make you potions?!"; close; } Zeny -= (.@max*5); delitem Red_Herb,.@max; delitem Yellow_Herb,.@max; delitem Empty_Bottle,.@max; getitem Orange_Potion,.@max; break; case 2: next; mes "[Old Pharmacist]"; mes "Then pick a number below 100. If you don't want any, just enter '0'. With the materials you have, you can make about "+.@max+" potions."; input(.@amount); if (.@amount <= 0) { next; mes "[Old Pharmacist]"; mes "Make up your mind, will you?!"; close; } if (.@amount > 100) { next; mes "[Old Pharmacist]"; mes "Are you deaf? I said less than 100!"; close; } if ((countitem(Red_Herb) < .@amount) || (countitem(Yellow_Herb) < .@amount) || (countitem(Empty_Bottle) < .@amount) || (Zeny < .@amount*3)) { next; mes "[Old Pharmacist]"; mes "You rascal! You don't even have all the materials and you want me to make you potions?!"; close; } next; Zeny -= (.@amount*5); delitem Red_Herb,.@amount; delitem Yellow_Herb,.@amount; delitem Empty_Bottle,.@amount; getitem Orange_Potion,.@amount; break; case 3: next; mes "[Old Pharmacist]"; mes "What?!"; mes "Grrr..."; mes "Bleh!"; mes "Get lost!"; close; } mes "[Old Pharmacist]"; mes "Here you go. It's all done so you can take it. But remember! Abusing medicine is not good."; 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 "[Old Pharmacist]"; mes "What?!"; mes "Grrr..."; mes "Bleh!"; mes "Get lost!"; close; } } case 2: mes "[Old Pharmacist]"; mes "With medicine, you can increase a person's ability to regenerate. But, they're only good up to a point. *Sigh* I'm starting to think of the days when I was young. I must be getting old."; next; mes "[Old Pharmacist]"; mes "Anyways, a potion is merely a potion. Nothing more and nothing less."; close; case 3: mes "[Old Pharmacist]"; mes "Hrrrmm..."; mes "You young ones can be quite annoying. But, since you asked, I'll explain."; next; mes "[Old Pharmacist]"; mes "Herbs work well by themselves, but if you use my special techniques and skills to make potions out of them, the effect is much much greater."; next; mes "[Old Pharmacist]"; mes "If you ask eagerly and politely, I will make them for you. But, not for free... Don't worry though, I only charge a small fee, so it's not that expensive."; next; mes "[Old Pharmacist]"; mes "Red Potion - ^0098E52 Red Herbs, 1 Empty Bottle, 2 zeny fee.^000000"; mes "Orange Potion - ^0098E51 Red Herb, 1 Yellow Herb, 1 Empty Bottle, 5 zeny fee.^000000"; mes "Yellow Potion - ^0098E52 Yellow Herbs, 1 Empty Bottle, 10 zeny.^000000"; next; mes "[Old Pharmacist]"; mes "White Potion - ^0098E52 White Herbs, 1 Empty Bottle, 20 zeny fee.^000000"; mes "Blue Potion - ^0098E52 Blue Herbs, 1 Empty Bottle, 30 zeny fee.^000000"; mes "Green Potion - ^0098E52 Green Herbs, 1 Empty Bottle, 3 zeny fee.^000000"; close; case 4: mes "[Old Pharmacist]"; mes "What a boring person. If you have something to say, why don't you say it?!"; close; } // Arguments: // - 0: Herb required. // - 1: Zeny cost. // - 2: Potion given. L_Making: next; mes "[Old Pharmacist]"; if ((countitem(getarg(0))/2) < countitem(Empty_Bottle)) { .@max = countitem(getarg(0))/2; } else { .@max = countitem(Empty_Bottle); } if ((countitem(getarg(0)) < 2) || (countitem(Empty_Bottle) == 0)) { mes "You rascal! What did you expect?! Coming here with nothing. Tsk!"; mes "Get lost!"; close; } if (Zeny < 3) { mes "You rascal! What did you expect?! Coming here with nothing. Tsk!"; mes "Get lost!"; close; } mes "How many?"; switch(select("Make as many as I can.", "I want to choose an amount.", "Actually, I don't want anything.")) { case 1: next; if ((countitem(getarg(0)) < .@max*2) || (countitem(Empty_Bottle) < .@max) || (Zeny < .@max*getarg(1))) { mes "[Old Pharmacist]"; mes "You rascal! You don't even have all the materials and you want me to make you potions?!"; close; } Zeny -= (.@max*getarg(1)); delitem getarg(0),.@max*2; delitem Empty_Bottle,.@max; getitem getarg(2),.@max; break; case 2: next; mes "[Old Pharmacist]"; mes "Then pick a number below 100. If you don't want any, just enter '0'. With the materials you have, you can make about "+.@max+" potions."; input(.@amount); next; if (.@amount <= 0) { mes "[Old Pharmacist]"; mes "Make up your mind, will you?!"; close; } if (.@amount > 100) { mes "[Old Pharmacist]"; mes "Are you deaf? I said less than 100!"; close; } if ((countitem(getarg(0)) < .@amount*2) || (countitem(Empty_Bottle) < .@amount) || (Zeny < .@amount*getarg(1))) { mes "[Old Pharmacist]"; mes "You rascal! You don't even have all the materials and you want me to make you potions?!"; close; } Zeny -= (.@amount*getarg(1)); delitem getarg(0),.@amount*2; delitem Empty_Bottle,.@amount; getitem getarg(2),.@amount; break; case 3: next; mes "[Old Pharmacist]"; mes "What?!"; mes "Grrr..."; mes "Bleh!"; mes "Get lost!"; close; } mes "[Old Pharmacist]"; mes "Here you go. It's all done so you can take it. But remember! Abusing medicine is not good."; close; }