Added subfunctions to juicmaker and grampa pharmacist npcs.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@219 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
kobra_k88 2004-11-16 17:28:04 +00:00
parent fd4bf8a483
commit ec5d1d3b62
4 changed files with 261 additions and 280 deletions

View File

@ -36,6 +36,11 @@ Other Ppl
Date Added
======
11/16
* - grandpa_pharmacist.txt: Added subfunction for potion making as well as zeny/input
exploit safeguards. Used Lupus's "loopless" technique.
- juice_maker.txt: Added subfunction for juice making. Also changed amount of
fruit needed to 1.
- xmas.txt: Corrected some typos. [kobra_k88]
* - Removed Empty Bottle from amatsu shops to prevent exploits.
- Fixed Npc Position on Lutie( warper.txt and warper2.txt). [shadow]

View File

@ -10,15 +10,21 @@
//= Beat up Antonios and grab his socks. Get at least 3 and
//= give them to Santa Claus Claus in exchange for a present.
//= Includes X-mas mobs.
//= This npc will disable, the current Santa Claus Claus npc.
//= This npc will disable, the current Santa Claus npc.
//===== Additional Comments: =================================
//= Fixed the spawns [shadowlady]
//============================================================
xmas_in.gat,100,96,4 script Father Christmas::Santa2 718,{
if(event_xmas != 1) goto M_2;
mes "[Santa Claus]";
if(event_xmas == 1) goto L_Start;
mes "Merry Christmas! I have a gift for you! Ho Ho Ho!";
getitem 644,1;
set event_xmas,1;
close;
L_Start:
mes "I'm having a bit of a problem...";
mes "Do you care to listen?";
next;
@ -84,12 +90,6 @@ xmas_in.gat,100,96,4 script Father Christmas::Santa2 718,{
mes "and get more for me and I'll";
mes "reward you.";
close;
M_2:
mes "Merry Christmas! I got a gift for you!";
mes "Ho Ho Ho!;"
getitem 644,1;
set event_xmas,1;
M_End:
mes "[Santa Claus]";
mes "I see. Well, at the very least";
@ -129,6 +129,9 @@ gef_fild10.gat,0,0,0,0 monster Santa Poring 1062,15,0,0,0
gef_fild11.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
gef_fild11.gat,0,0,0,0 monster Gobline Xmas 1245,5,0,0,0
gef_fild11.gat,0,0,0,0 monster Santa Poring 1062,15,0,0,0
gef_fild12.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
gef_fild13.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
gef_fild14.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
glast_01.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
glast_01.gat,0,0,0,0 monster Santa Poring 1062,15,0,0,0
@ -243,9 +246,6 @@ prt_fild10.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
prt_fild10.gat,0,0,0,0 monster Santa Poring 1062,15,0,0,0
prt_fild11.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
prt_fild11.gat,0,0,0,0 monster Santa Poring 1062,15,0,0,0
gef_fild12.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
gef_fild13.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
gef_fild14.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
cmd_fild01.gat,0,0,0,0 monster Antonio 1247,1,0,0,0
cmd_fild02.gat,0,0,0,0 monster Antonio 1247,1,0,0,0

View File

@ -3,171 +3,84 @@
//===== By: ==================================================
//= kobra_k88
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= eAthena 7.15 +
//===== Description: =========================================
//= trade in items for potions
//= Trade in items for potions
//===============================
//= Breakdown of arguments used
//= arg(0): first item id#
//= arg(1): 2nd item id# if needed, or else use 0
//= arg(2): zeny cost
//= arg(3): potion id#
//= arg(4): potion name
//===== Additional Comments: =================================
//= Fully working
//= 1.1 Negative input bug fixed [Lupus]
//= 1.2 Created a subfunc for the potion making part. Added more
//= input/zeny exploit checks. Added Lupus's "loopless" technique.[kobra_k88]
//============================================================
alberta_in.gat,16,28,4 script Grampa Pharmacist 61,
{
set @count, 0;
mes "[Grampa Pharmacist]";
mes "Hmmm... what do you want...?";
next;
menu "Make Potion",M_Make, "Talk",M_Talk, "Information",M_Info, "Cancel",M_End;
M_Make:
if(countitem(713) < 1) goto ssL_NdBottle;
mes "[Grampa Pharmacist]";
mes "Did you prepare all the items needed? If so what potion do you want?";
M_Menu:
next;
menu "Red Potion",M_0, "Orange Potion",M_1, "Yellow Potion",M_2, "White Potion",M_3, "Blue Potion",M_4, "Green Potion",M_5,
"Nah, I change my mind.",M_End;
menu "Red Potion",M_0, "Orange Potion",M_1, "Yellow Potion",M_2,
"White Potion",M_3, "Blue Potion",M_4, "Green Potion",M_5,
"Nah, I change my mind.",M_End;
M_0:
set @pot$, "red";
set @pot, 501;
set @item1, 507;
set @zeny, 3;
goto sL_Make;
callsub sF_Make, 507, 0, 2, 501, "red";
goto M_Menu;
M_1:
if(countitem(507)<1 || countitem(508)<1) goto ssL_NdHerbs;
if(Zeny < 5) goto ssL_NdZeny;
set @pot$, "orange";
set @pot, 502;
mes "[Grampa Pharmacist]";
mes "How many?";
next;
menu "As many as possible.",sM_1a, "I will set the amount.",sM_1b, "Nah, forget about it",M_Menu;
sM_1a:
if(countitem(507)<1 || countitem(508)<1 || countitem(713)<1 || Zeny< 5) goto ssL_End;
set @count, @count +1;
delitem 507, 1;
delitem 508, 1;
delitem 713, 1;
set Zeny, Zeny - 5;
goto sM_1a;
sM_1b:
input @count;
if(@count<1) goto ssL_NdNegative;
if(countitem(507)<@count || countitem(508)<@count) goto ssL_NdHerbs;
if(countitem(713) < @count) goto ssL_NdBottle;
if(Zeny<(5*@count)) goto ssL_NdZeny;
delitem 507, @count;
delitem 508, @count;
delitem 713, @count;
set Zeny, Zeny - (@zeny*@count);
goto ssL_End;
callsub sF_Make, 507, 508, 5, 502, "orange";
goto M_Menu;
M_2:
set @pot$, "yellow";
set @pot, 503;
set @item1, 508;
set @zeny, 10;
goto sL_Make;
callsub sF_Make, 508, 0, 10, 503, "yellow";
goto M_Menu;
M_3:
set @pot$, "white";
set @pot, 504;
set @item1, 509;
set @zeny, 20;
goto sL_Make;
callsub sF_Make, 509, 0, 20, 504, "white";
goto M_Menu;
M_4:
set @pot$, "blue";
set @pot, 505;
set @item1, 510;
set @zeny, 30;
goto sL_Make;
callsub sF_Make, 510, 0, 30, 505, "blue";
goto M_Menu;
M_5:
set @pot$, "green";
set @pot, 506;
set @item1, 511;
set @zeny, 3;
sL_Make:
if(countitem(@item1) < 2) goto ssL_NdHerbs;
if(Zeny < @zeny) goto ssL_NdZeny;
mes "[Grampa Pharmacist]";
mes "How many?";
next;
menu "As many as possible.",sM_0a, "I will set the amount.",sM_0b, "Nah, forget about it",M_Menu;
sM_0a:
if((countitem(@item1) < 2) || (countitem(713) < 1) || (Zeny < @zeny)) goto ssL_End;
set @count, @count +1;
delitem @item1, 2;
delitem 713, 1;
set Zeny, Zeny - @zeny;
goto sM_0a;
sM_0b:
input @count;
if(@count<1) goto ssL_NdNegative;
if(countitem(@item1) < (2*@count)) goto ssL_NdHerbs;
if(countitem(713) < @count) goto ssL_NdBottle;
if(Zeny < (@zeny*@count)) goto ssL_NdZeny;
delitem @item1, (2*@count);
delitem 713, @count;
set Zeny, Zeny - (@zeny*@count);
ssL_End:
mes "[Grampa Pharmacist]";
mes "Here are your "+@pot$+" potions.";
getitem @pot, @count;
close;
ssL_NdBottle:
mes "[Grampa Pharmacist]";
mes "You don't have enough empty tubes to put the medicine in you idiot!!";
close;
ssL_NdHerbs:
mes "[Grampa Pharmacist]";
mes "You rascal! What did you expect from me? You didn't even bring all of the right herbs!";
mes "Get lost!";
close;
ssL_NdNegative:
mes "[Grampa Pharmacist]";
mes "You dirty cheater! What did you expect from me? Next time set positive amount of the potions!";
mes "Get off!";
close;
ssL_NdZeny:
mes "[Gramp Pharmacist]";
mes "You don't have enough zeny for potions.";
close;
callsub sF_Make, 511, 0, 3, 506, "green";
goto M_Menu;
M_Talk:
mes "[Grampa Pharmacist]";
mes "The right type of medicinal Herbs can replenish a person's HP or SP.";
mes "~Sigh~ I'm starting to reminisce about my youth.... a sign that I must be getting old.....";
mes "The right type of medicinal Herbs can replenish a person's HP or SP";
mes ". ~Sigh~ I'm starting to reminisce about my youth.... a sign that I";
mes "must be getting old.....";
next;
mes "[Grampa Pharmacist]";
mes "Anyways, a potion is merely an, 'easy to use', form of medicinal Herbs..... nothing more and nothing less.";
mes "... A potion is merely an, 'easy to use', form of medicinal Herbs";
mes "..... nothing more and nothing less.";
close;
M_Info:
mes "[Grampa Pharmacist]";
mes "~Sigh~... you young ones can be quite bothersome... Fine, I will explain to you how potions work....";
mes "~Sigh~... you young ones can be quite bothersome.. Fine, I will";
mes "explain to you how potions work....";
next;
mes "[Grampa Pharmacist]";
mes "Though the bennefits from consuming the various Herbs found around Rune-Midgard are great......";
mes "By refining them into potions, the effects of the Herbs are dramatically enhanced.";
mes "Though the bennefits from consuming the various Herbs found around";
mes "Rune-Midgard are great... by refining them into potions, the";
mes "effects of the Herbs are dramatically enhanced.";
next;
mes "[Grampa Pharmacist]";
mes "The process of refining herbs into potions is a special one that I created. For a small fee I can make any potion you desire.";
mes "The process of refining herbs into potions is a special one that I";
mes "created. For a small fee I can make any potion you desire.";
next;
mes "[Grampa Pharmacist]";
mes "^FF5533Red Potion^000000 - 2 Red Herbs, 1 Empty Bottle, 2 Zeny fee.";
@ -183,4 +96,68 @@ alberta_in.gat,16,28,4 script Grampa Pharmacist 61,
mes "[Grampa Pharmacist]";
mes "Didn't you have something to say?!";
close;
// Subfunction for making potions
//================================
sF_Make:
set @herbnum, 2;
if(getarg(1) != 0) set @herbnum, 1;
if(countitem(getarg(0)) < @herbnum) goto L_NdHerbs;
if((countitem(getarg(1)) < @herbnum) && (getarg(1) != 0)) goto L_NdHerbs;
if(countitem(713) < 1) goto L_NdBottle;
if(Zeny < getarg(2)) goto L_NdZeny;
mes "[Grampa Pharmacist]";
mes "How many?";
next;
menu "As many as possible.",sM_0a, "I will set the amount.",sM_0b, "Nah, forget about it",M_End;
sM_0a:
set @amount, 1000;
if(zeny/getarg(2) < @amount) set @amount, zeny/getarg(2);
if(countitem(getarg(0))/@herbnum < @amount) set @amount, countitem(getarg(0))/@herbnum;
if((countitem(getarg(1))/@herbnum < @amount) && (countitem(getarg(1)) != 0)) set @amount, countitem(getarg(1))/@herbnum;
if(countitem(713) < @amount) set @amount, countitem(713);
if(@amount > 0) goto L_End;
mes "[Grampa Pharmacist]";
mes "Jeez... you don't even have the right items.....";
close;
sM_0b:
input @amount;
if(@amount<1 || @amount>1000) goto L_BadAmnt;
if(countitem(getarg(0))/@herbnum < @amount) goto L_NdHerbs;
if((countitem(getarg(1))/@herbnum < @amount) && (countitem(getarg(1)) != 0)) goto L_NdHerbs;
if(countitem(713) < @amount) goto L_NdBottle;
if(Zeny < (getarg(2)*@amount)) goto L_NdZeny;
L_End:
mes "[Grampa Pharmacist]";
mes "Here are your " +getarg(4)+ " potions.";
delitem getarg(0), (@amount*@herbnum);
if(getarg(1) != 0) delitem getarg(1), (@amount*@herbnum);
delitem 713, @amount;
set Zeny, Zeny - (getarg(2)*@amount);
getitem getarg(3), @amount;
close;
L_NdBottle:
mes "[Grampa Pharmacist]";
mes "You don't have enough empty bottles to put the medicine in you idiot!!";
return;
L_NdHerbs:
mes "[Grampa Pharmacist]";
mes "You rascal! What did you expect from me? You didn't even bring all of the right herbs!";
return;
L_NdZeny:
mes "[Grampa Pharmacist]";
mes "You don't have enough zeny for that many potions.";
return;
L_BadAmnt:
mes "[Grampa Pharmacist]";
mes "What?! That's not a valid amount!";
return;
}

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= kobra_k88
//===== Current Version: =====================================
//= 1.3
//= 1.3a
//===== Compatible With: =====================================
//= eAthena 7.15 +
//===== Description: =========================================
@ -13,20 +13,21 @@
//= 1.1 fixed input number check [Lupus]
//= 1.2 fixed misplaced Grape<->Carrot juices [Lupus]
//= 1.3 added a loopless menu 'as many as possible' [Lupus]
//= 1.3a Turned the juice making part of the Juicer npc into a
//= subfunc. Changed fruit amount needed to 1.[kobra_k88]
//============================================================
// Morrison ------------------------------------------------
prt_in.gat,47,173,2 script Morrison 97,
{
if(MEAT > 10) goto L_Candy;
if(MARIANNE == 10) goto L_GoAway;
mes "[Little Morrison]";
if(MEAT > 10) goto L_Candy;
if(MARIANNE == 1) goto L_GoAway;
mes "Wahhhhh!!! Wahh... NO more! NO more!";
mes "I won't... eat anymore stupid ^0000ffFruit^000000 things!!";
emotion 28;
next;
menu "Talk",M_Talk,"Cancel",M_End;
@ -34,8 +35,10 @@ prt_in.gat,47,173,2 script Morrison 97,
if(countitem(517) > 0) goto L_Meat; //Meat
mes "[Little Morrison]";
mes "Arhhggg!! I'VE HAD ENOUGH!!! I can't eat anymore ^0000ffFruits^000000!";
mes "They taste so SOUR..... I have to PEEL them before I can eat them.....they feel sticky and squishy...... it's really ANNOYING!!!!";
mes "Arhhggg!! I'VE HAD ENOUGH!!! I can't eat anymore ^0000ffFruits^000000! They";
mes "taste so SOUR..... I have to PEEL them before I can eat them.....";
mes "they feel sticky and squishy...... it's really ANNOYING!!!!";
emotion 16;
next;
mes "[LIttle Morrison]";
mes "I just HATE FRUIT! I can't even get full off of the stuff.(~sigh~)";
@ -45,13 +48,16 @@ prt_in.gat,47,173,2 script Morrison 97,
L_Meat:
mes "[Little Morrison]";
mes "...(sniff)....(sniff)(sniff).... Oh! Is that ^ff0000Meat^000000???";
emotion 5;
next;
mes "[Little Morrison]";
mes "Do you have some ^ff0000Meat^000000?!!!~(drools)~";
mes "Umm... that yummy smell is making me SOOO HUNGRYYYY!!!l";
emotion 37;
next;
mes "[Little Morrison]";
mes "... Umm... excuse me..... could you give me some of that meat PLEEAASSSE?";
emotion 28;
next;
menu "Give him some",sM_Give,"Ignore him",sM_Ignore;
@ -59,32 +65,36 @@ prt_in.gat,47,173,2 script Morrison 97,
set MORRISON,1;
set MEAT,MEAT + 1;
delitem 517,1; //Meat
mes "[Little Morrison]";
mes "Whoah~!!! It's real Meat, Meat!";
mes "Mmmm! It makes my mouth water.";
mes "Oh thank you. Now I feel happy. Yum Yum...";
emotion 38;
close;
sM_Ignore:
set MORRISON,2;
mes "[Little Morrison]";
mes "Boo...";
mes "Boo... Fine... Alright, Alright~!!! Selfish meanie!";
emotion 36;
close;
M_End:
mes "[Little Morrison]";
mes "Wahhhhh!!! No matter how hard I try, I just can't eat Vegetables or ^0000ffFruit^000000! They're plain disgusting!!";
mes "Wahhhh!!! No matter how hard I try, I just can't eat Vegetables";
mes "or ^0000ffFruit^000000! They're plain disgusting!!";
emotion 28;
close;
L_GoAway:
mes "[Little Morrison]";
mes "Pffff... Leave me alone! You DON'T CARE about me! I'm gonna DIE because of these stupid Veggies and Fuits so MIND your own business!";
mes "Pffff... Leave me alone! You DON'T CARE about me! I'm gonna DIE";
mes "because of these stupid Veggies and Fuits so MIND your own business!";
emotion 32;
close;
L_Candy:
mes "[Little Morrison]";
mes "Ah..I am full now.";
mes "You don't have to feed me any more. I think I am gonna BURST if i keep eating more.";
mes "Ah..I am full now. You don't have to feed me any more. I think I";
mes "am gonna BURST if I keep eating more.";
next;
mes "[Little Morrison]";
mes "And... um... Take this.";
@ -92,9 +102,9 @@ L_Candy:
getitem 529,3;
getitem 530,1;
set MEAT,0;
mes "[Little Morrison]";
mes "It is from my secret stash of Candy that I hide from my Mom. Since you gave me some Meat, I will give you some candy." ;
mes "It is from my secret stash of Candy that I hide from my Mom. Since";
mes "you gave me some Meat, I will give you some candy." ;
close;
}
@ -102,66 +112,78 @@ L_Candy:
// Housewife Marianne ---------------------------------------------------
prt_in.gat,49,172,2 script Housewife Marianne 53,
{
mes "[Housewife Marianne]";
if(MORRISON == 1) goto L_GaveMeat;
if(MORRISON == 2) goto L_Juice;
mes "[Housewife Marianne]";
mes "Morrison!! Please eat some fruit will ya? Fruit~!";
mes "*Sob*~!! Like father like son...";
emotion 28;
next;
menu "Talk",M_Talk,"Cancel",M_Cancel;
close;
M_Talk:
mes "[Housewife Marianne]";
mes "(~Sigh~)...This is Morrison... My one and only son.";
mes "He's going through some kinda faze and doesn't want to eat any ^0000ffFruits^000000 or vegetables. Look at his face, it turns sour just hearing about ^0000fffFruit^000000...";
mes "(~Sigh~)...This is Morrison... My one and only son. He's going";
mes "through some kinda faze and doesn't want to eat any ^0000ffFruits^000000 or";
mes "vegetables.";
emotion 40;
next;
mes "[Housewife Marianne]";
mes "All he wants to eat is but ^ff0000Meat^000000... (sigh)...he needs ^0000ffFruits^000000 and vegetables for a proper diet.";
mes "Look at his face..., it turns sour just hearing about ^0000ffFruit^000000...";
next;
mes "[Housewife Marianne]";
mes "All he wants to eat is but ^ff0000Meat^000000... (sigh)...he needs";
mes "^0000ffFruits^000000 and vegetables for a proper diet.";
next;
close;
M_Cancel:
mes "[Housewife Marianne]";
mes "Morrison!! I will get mad at you if you keep doing this!";
emotion 36;
close;
L_GaveMeat:
set MORRISON,0;
mes "[Housewife Marianne]";
mes "Oh MY GOD!!... Oh lord...";
emotion 23;
next;
mes "[Housewife Marianne]";
mes "WHAT ARE YOU DOING!! HOW DARE YOU feed my son!! And ^ff0000MEAT^000000 of all things!!!";
next;
mes "[Housewife Marianne]";
mes "Arrrgh~~!! Get Lost right now!!!!!!";
emotion 32;
close;
L_Juice:
set MORRISON,0;
set MARIANNE,1;
mes "[Housewife Marianne]";
mes "Thank you for not giving my son any meat. I'm trying to feed him ^0000ffFruits^000000 and vegetables, but this child doesn't want to eat anything except Meat...";
mes "Thank you for not giving my son any meat. I'm trying to feed him";
mes "^0000ffFruits^000000 and vegetables, but this child doesn't want to eat";
mes "anything except Meat...";
next;
mes "[Housewife Marianne]";
mes "What if I could turn ^0000ffFruits^000000 into a ^0000ffJuice^000000... for example...Orange juice... Would my child like it?";
mes "What if I could turn ^0000ffFruits^000000 into a ^0000ffJuice^000000... for example...Orange";
mes "juice... Would my child like it?";
emotion 20;
next;
mes "[Housewife Marianne]";
mes "Ah! Now I remember..There is a town where you can get a variety of ^0000ffFruit^000000 turned into ^0000ffFruit Juices^000000.";
mes "Ah! Now I remember..There is a town where you can get a variety of";
mes "^0000ffFruit^000000 turned into ^0000ffFruit Juices^000000.";
emotion 5;
next;
mes "[Housewife Marianne]";
mes "... Was is it...^ff0000Payon^000000...or ^ff0000Morroc^000000...?";
emotion 20;
next;
close;
}
// Juicer Marx Hansen -----------------------------------------------------------------------
payon_in01.gat,5,48,3 script Juicer Marx Hansen 86,
// Juicer Marx Hansen ---------------------------------------------------------
payon_in01.gat,5,48,7 script Juicer Marx Hansen 86,
{
mes "[Juicer Marx Hansen]";
if(MARIANNE == 1) goto L_Juice;
@ -189,120 +211,97 @@ payon_in01.gat,5,48,3 script Juicer Marx Hansen 86,
mes "Ok then.";
close;
//--------------
L_Juice:
mes "Welcome to my shop. Do you come here to process Fruits like the rest?";
//---------
mes "Welcome to my shop. Are you here to process Fruits like everyone else?";
next;
menu "Yes, I do.",M_1a,"How do you make fruit juice?",M_1b,"No, I don't.",M_1End;
menu "Yes, I am.",M_1a, "How do you make fruit juice?",M_1b, "Nope.",M_1End;
M_1a:
mes "[Juicer Marx Hansen]";
mes "So what kind of fruit juice would you like to process?";
next;
menu "Apple Juice",sM_1a,"Banana Juice",sM_1b,"Grape Juice",sM_1c,"Carrot Juice",sM_1d,"Nope, I'm fine.",sM_1End;
menu "Apple Juice",sM_1a,"Banana Juice",sM_1b,"Grape Juice",sM_1c,"Carrot Juice",sM_1d,"None.",M_1End;
sM_1a:
set @FRUIT,512;
set @JUICE,531;
goto sL_Make;
callsub sF_Make, 512, "apples", 531;
goto M_1a;
sM_1b:
set @FRUIT,513;
set @JUICE,532;
goto sL_Make;
callsub sF_Make, 513, "bananas", 532;
goto M_1a;
sM_1c:
set @FRUIT,514;
set @JUICE,533;
goto sL_Make;
callsub sF_Make, 514, "grapes", 533;
goto M_1a;
sM_1d:
set @FRUIT,515;
set @JUICE,534;
sL_Make:
mes "[Juicer Marx Hansen]";
mes "How many bottles would you like?";
next;
menu "I'll tell you.",sL_Make_InputN, "As many as possible",-, "I've changed my mind.",sM_1End;
set @FRUITNUM,100; //max possible amount of Juice
//calc max possible # juices
if(Zeny/3 < @FRUITNUM) set @FRUITNUM,Zeny/3;
if(countitem(@FRUIT) < @FRUITNUM) set @FRUITNUM,countitem(@FRUIT);
if(countitem(713) < @FRUITNUM) set @FRUITNUM,countitem(713);
if(@FRUITNUM > 0) goto sL_Make_Max;
mes "[Juicer Marx Hansen]";
mes "Doh! You don't have enough ingredients for a single bottle of juice.";
emotion 0;
close;
sL_Make_Max:
delitem @FRUIT,@FRUITNUM; //del Fruit
delitem 713,@FRUITNUM; //del Empty Bottle
set Zeny,Zeny-@FRUITNUM*3;
getitem @JUICE,@FRUITNUM; //get Juice
goto sL_Make_Got;
sL_Make_InputN:
mes "[Juicer Marx Hansen]";
mes "Very well then. How many bottles would you like?";
mes "Enter 0 if you don't want any.";
next;
input @input;
if(@input < 1) goto sM_1End;
set @FRUITNUM,(3*@input);
set @ZENYNUM,(3*@input);
if(countitem(@FRUIT) < @FRUITNUM) goto sl_Fruits;
if(countitem(713) < @input) goto sl_Bottles;
if(Zeny < @ZENYNUM) goto sl_Zeny;
delitem @FRUIT,@FRUITNUM; //del Fruit
delitem 713,@input; //del Empty Bottle
set Zeny,Zeny - @ZENYUM; //get Juice
getitem @JUICE,@input;
sL_Make_Got:
mes "[Juicer Marx Hansen]";
mes "Here you are. Take it.";
close;
sl_Fruits:
mes "[Juicer Marx Hansen]";
mes "You don't have enough fruit.";
if (@FRUIT == 512) mes "You need "+@FRUITNUM+" apples to make that much apple juice.";
if (@FRUIT == 513) mes "You need "+@FRUITNUM+" bannanas to make that much bannana juice.";
if (@FRUIT == 514) mes "You need "+@FRUITNUM+" grapes to make that much grape juice.";
if (@FRUIT == 515) mes "You need "+@FRUITNUM+" carrots to make that much carrot juice.";
next;
goto M_1a;
close;
sl_Bottles:
mes "[Juicer Marx Hansen]";
mes "You don't have enough bottles. You need "+@input+" empty bottle(s) to make that many juice drinks.";
next;
goto M_1a;
sl_Zeny:
mes "[Juicer Marx Hansen]";
mes "You don't have enough zeny. You need "+@ZENYNUM+" zeny, to make that many juice drinks.";
next;
goto M_1a;
sM_1End:
mes "[Juicer Marx Hansen]";
mes "Oh well... see you next time.";
close;
callsub sF_Make, 515, "carrots", 534;
goto M_1a;
M_1b:
mes "[Juicer Marx Hansen]";
mes "# Fruit Juice Info #";
mes "Apple Juice - Apple x 3 ea, Empty Bottle x 1 ea, 3 zeny.";
mes "Banane Juice - Banana x 3 ea, Empty Bottle x 1 ea, 3 zeny.";
mes "Carrot Juice - Carrot x 3 ea, Empty Bottle x 1 ea, 3 zeny.";
mes "Grape Juice - Grape x 3 ea, Empty Bottle x 1 ea, 3 zeny.";
mes "- ^FF3355Apple^000000 Juice - Apple x 1 ea, Empty Bottle x 1 ea, 3 zeny.";
mes "- ^D5A500Banana^000000 Juice - Banana x 1 ea, Empty Bottle x 1 ea, 3 zeny.";
mes "- ^FF8800Carrot^000000 Juice - Carrot x 1 ea, Empty Bottle x 1 ea, 3 zeny.";
mes "- ^AA00AAGrape^000000 Juice - Grape x 1 ea, Empty Bottle x 1 ea, 3 zeny.";
close;
M_1End:
mes "[Juicer Marx Hansen]";
mes "Oh well... see you next time.";
close;
}
// Subfunction for making juice
//----------------------------------
sF_Make:
mes "[Juicer Marx Hansen]";
mes "How many bottles would you like?";
next;
menu "I'll tell you.",M_Tell, "As many as possible",-, "I've changed my mind.",M_1End;
set @amount,1000; //max possible amount of Juice
//calc max possible # juices
if(Zeny/3 < @amount) set @ipnut, Zeny/3;
if(countitem(getarg(0)) < @amount) set @amount, countitem(getarg(0));
if(countitem(713) < @amount) set @amount, countitem(713);
if(@amount > 0) goto L_Make;
mes "[Juicer Marx Hansen]";
mes "Doh! You don't have enough ingredients for a single bottle of juice.";
emotion 0;
close;
M_Tell:
mes "[Juicer Marx Hansen]";
mes "Very well then. Enter 0 if you don't want any. Also you cannot";
mes "buy more than 1000 at a time.";
next;
input @amount;
if(@amount < 1 || @amount > 1000) return;
if(countitem(getarg(0)) < @amount) goto sL_NoFruits;
if(countitem(713) < @amount) goto sL_NoBottles;
if(Zeny < @amount * 3) goto sL_NoZeny;
L_Make:
delitem getarg(0), @amount; //del Fruit
delitem 713, @amount; //del Empty Bottle
set Zeny, Zeny - @amount * 3;
getitem getarg(2), @amount; //get Juice
mes "[Juicer Marx Hansen]";
mes "Here you are. Take it.";
close;
sL_NoFruits:
mes "[Juicer Marx Hansen]";
mes "You don't have enough fruit.";
mes "You need " +@amount+ " " +getarg(1)+ " to make that much juice.";
next;
return;
sL_NoBottles:
mes "[Juicer Marx Hansen]";
mes "You don't have enough bottles. You need "+@amount+" empty bottle(s) to make that many juice drinks.";
next;
return;
sL_NoZeny:
mes "[Juicer Marx Hansen]";
mes "You don't have enough zeny. You need " +(@amount*3)+ " zeny, to make that many juice drinks.";
next;
return;
}