Преглед изворни кода

* Implemented Official Cooking Quest.
- Optimized Rachel donation quest, and added Rachel Guide.
- Fixed the name of one of Rachel's shops. (Tool Dealer -> Fruit Gardener)
- Fixed some typos in the Kyle Hyre Quest's additional comments.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10714 54d463be-8e91-2dee-dedb-b68131a5f0ec

L0ne_W0lf пре 18 година
родитељ
комит
5ccf97cbc0

+ 4 - 0
npc/Changelog.txt

@@ -1,6 +1,10 @@
 Date		Added
 ======
 2007/06/07
+	* Rev. 10714 Implemented Official Cooking Quest. [L0ne_W0lf]
+	- Optimized Rachel donation quest, and added Rachel Guide.
+	- Fixed the name of one of Rachel's shops. (Tool Dealer -> Fruit Gardener)
+	- Fixed some typos in the Kyle Hyre Quest's additional comments.
 	* Fixed a bug and some typos to Socket Enchant NPC. [SinSloth]
 	- Added totally custom Moscovia warps by Azazel [Lupus]
 2007/06/06

+ 96 - 0
npc/guides/guides_rachel.txt

@@ -0,0 +1,96 @@
+rachel,138,146,5	script	Rachel Guide	934,{
+	mes "[Rachel Guide]";
+	mes "Welcome to the capital of";
+	mes "Arunafeltz, Rachel where a warm";
+	mes "breath of goddess Freya reaches.";
+	mes "If this is the first time for you";
+	mes "to use the guide services, why";
+	mes "don't you check the \"Notice\" menu first?";
+	while(1) {
+		next;
+		switch(select("Village Guide:Remove Marks from Mini-Map:Notice:Cancel")) {
+		case 1:
+			mes "[Rachel Guide]";
+			mes "I can tell you any building location as long as it is in Rachel.";
+			mes "So where do you want to go?";
+			if (.@compass_check == 0) {
+				mes "Would you like me";
+				mes "to mark locations";
+				mes "on your Mini-Map?";
+				next;
+				if (select("Yes:No") == 1) set .@compass_check,1;
+				next;
+
+			}
+			while(1) {
+				if (.@wait_button_chk == 0) set .@wait_button_chk,1;
+				else next;
+
+				switch(select("Cheshrumnir:Inn:Weapon Shop:Tool Shop:Airport:Cancel")) {
+				case 1:
+					mes "[Rachel Guide]";
+					mes "Cheshrumnir is a holy ground where pope, the incarnation of goddess Freya stays.";
+					mes "Take the road to the norh to find the building.";
+					if (.@compass_check == 1) viewpoint 1,150,249,1,0xFF0000;
+					break;
+				case 2:
+					mes "[Rachel Guide]";
+					mes "You can rest your fatigue off the journey in the Inn.";
+					mes "The left building next to me is the Inn of Rachel.";
+					if (.@compass_check == 1) viewpoint 1,115,149,2,0xFF00FF;
+					break;
+				case 3:
+					mes "[Rachel Guide]";
+					mes "Do you want to check out the weapons that are sold in Rachel?";
+					mes "The weapon shop is located nearby the western gate.";
+					if (.@compass_check == 1) viewpoint 1,42,87,3,0x99FFFF;
+					break;
+				case 4:
+					mes "[Rachel Guide]";
+					mes "Rachel tool shop sells the best quality potions.";
+					mes "It's located nearby the western gate.";
+					if (.@compass_check == 1) viewpoint 1,83,78,4,0x0000FF;
+					break;
+				case 5:
+					mes "[Rachel Guide]";
+					mes "The Airport is located outside the eastern gate.";
+					if (.@compass_check == 1) viewpoint 1,273,125,5,0x00FF00;
+					break;
+				case 6:
+					mes "[Rachel Guide]";
+					mes "If you like to get rid of all the location marks on your Mini-Map,";
+					mes "just ask me again, and choose \"Remove Marks from Mini-Map\" menu.";
+					set .@Exitloop,1;
+					break;
+				}
+				if (.@Exitloop) break;
+			}
+			break;
+
+		case 2:
+			viewpoint 2,150,249,1,0xFF0000;
+			viewpoint 2,115,149,2,0xFF00FF;
+			viewpoint 2,42,87,3,0x99FFFF;
+			viewpoint 2,83,78,4,0x0000FF;
+			viewpoint 2,273,125,5,0x00FF00;
+			mes "[Rachel Guide]";
+			mes "Okay, they are gone now. If you have more locations to ask, just let me know.";
+			break;
+		case 3:
+			mes "[Rachel Guide]";
+			mes "When you are using the ''Village Guide'' menu,";
+			mes "make sure that building locations will be marked on your mini-map at the upper right side of your screen.";
+			mes "If you cannot see your mini-map, use the short cut key ''ctrl+tab'' or press the ''Map'' button on your basic information windows, okay?";
+			mes "And you can also zoom out your mini-map by using the ''-'' button in case you cannot view the entire map of the village.";
+			break;
+		case 4:
+			mes "[Rachel Guide]";
+			mes "Hope you have a wonderfull journey";
+			mes "in Arunafeltz.";
+			set .@Exitloop2,1;
+			break;
+		}
+		if (.@Exitloop2) break;
+	}
+	close;
+}

+ 2 - 1
npc/merchants/shops.txt

@@ -25,6 +25,7 @@
 //= 1.9 Uncommented Homunculus shop, since Homunculus is working on trunk now. [Evera]
 //= 1.9a Pet Merchant -> Lighthalzen [erKURITA]
 //= 1.9b Added items to Chivas Regal
+//= 1.9c Slight update for Rachel shop: Tool Dealer -> Fruit Gardener [L0ne_W0lf]
 //============================================================ 
 
 
@@ -279,9 +280,9 @@ prt_in,164,140,4	shop	Weapon Dealer	66,1146:-1,1245:-1
 //RACHEL
 //=======================================================
 ra_in01,175,364,3	shop	Armor Dealer	919,2101:-1,2103:-1,2403:-1,2405:-1,2503:-1,2321:-1,2314:-1,2309:-1,2335:-1,2628:-1
-ra_in01,254,300,3	shop	Tool Dealer	931,512:-1,513:-1
 ra_in01,257,269,3	shop	Tool Dealer	919,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,611:-1,1065:-1,610:-1
 ra_in01,176,389,3	shop	Weapon Dealer	931,1201:-1,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1,13003:-1,1601:-1,1604:-1,1607:-1
+ra_in01,254,300,3	shop	Fruit Gardener	931,512:-1,513:-1
 rachel,65,80,0	shop	Vegetable Gardener	919,515:-1,535:-1,516:-1
 
 //=======================================================

+ 6 - 6
npc/quests/Kiel_Hyre_Quest.txt

@@ -37,7 +37,7 @@
 //=	Made .KHQuestBusy$ into a temp global variable. $@KHQuestBusy$. 
 //= 2.0 Changed the labels on the "Big Doors" to "Identifier Names" to prevent an error with using getvariableofnpc [L0ne_W0lf]
 //= 2.1 Fifth door now checks for a variable HIGHER or EQUAL to 74 not 84, as pointed out by Stollen. [L0ne_W0lf]
-//= 2.2 Another fix for elly, no longer RESETS to 26 when you tak to her. [L0ne_W0lf]
+//= 2.2 Another fix for Elly, no longer RESETS to 26 when you talk to her. [L0ne_W0lf]
 //= 2.3 Should NOT have been setting .KHQuestBusy at all. It's not used or accessed anymore. Removed. [L0ne_W0lf]
 //= 2.4 Lots of fixes (4ish) from Valandi. [L0ne_W0lf]
 //=	Added a getmapuser check to the mapwarp in KHTimerEnd so it's not trying to warp out 0 users. [L0ne_W0lf]
@@ -48,7 +48,7 @@
 //=	Fixed where Golden_Key and Exquisite_Button are deleted.
 //=	Removed KHTimerEnd, and instead use OnReset.
 //=	Fixed typo in the second NPC that gives Black Keycards.
-//=	Added and Monster Warps. (Keeps monsters from being in dungeon quest area.) Non-functional though.
+//=	Added Monster Warps. (Keeps monsters from being in dungeon quest area.) [Non-functional]
 //= 2.6 Stupid mistake, accidentally had 4 copies of the same script in 1... [L0ne_W0lf the bonehead]
 //= 2.7 Fixed the wrong name being displayed for Kiel Hyre in one dialog. 
 //=	Removed $@KH_DoorInvoker entirely. The quest is now working like it should according to iRO.
@@ -57,12 +57,12 @@
 //= 2.8 Fixed the weight checking in Vandt, and added official dialog. [L0ne_W0lf]
 //=	Added weight checks for all NPCs that give items. Semi-official dialog.
 //=	Got the missing portion of dialog for Mills'.
-//=	Will add further improper dialogs as I get to them on the second runthrough of the quest.
+//=	Will add further proper dialogs as I get to them on the second runthrough of the quest.
 //= 2.8a minor optimization with extra goto, else or empty switch [Lupus]
-//= 2.9 Fixed the "enablenpc problem with the missing spaces. No idea how it happened. [L0ne_W0lf]
-//= 3.0 Fixed a typo in Elly, in her room. (<= should have been <) [L0ne_W0lf]
+//= 2.9 Fixed the "enablenpc" problem with the missing spaces. No idea how it happened. [L0ne_W0lf]
+//= 3.0 Fixed a typo in Elly, in her room. (was <= should have been <) [L0ne_W0lf]
 //=	Added an 'end;' to the cookie basket. Kiel Hyre's final dialog will now delete all quest-related items.
-//= 3.1 Moved hte "delitem" for all related quest items to the poroper NPC. [L0ne_W0lf
+//= 3.1 Moved the "delitem" for all related quest items to the proper NPC. [L0ne_W0lf]
 //============================================================ 
 
 //============================================================================

+ 2396 - 523
npc/quests/cooking_quest.txt

@@ -1,13 +1,14 @@
 //===== eAthena Script ======================================= 
 //= Cooking Quest
 //===== By: ================================================== 
-//= Reddozen
+//= Reddozen; L0ne_W0lf
 //===== Current Version: ===================================== 
-//= 1.5a
+//= 1.6
 //===== Compatible With: ===================================== 
-//= eAthena 1.0+
+//= eAthena SVN
 //===== Description: ========================================= 
-//= Official Cooking Quest
+//= [Aegis Conversion]
+//= Official Cooking Quest (10.3)
 //===== Additional Comments: ================================= 
 //= 1.1 Fixed wrong item ID, added missing ";, optimized [Lupus]
 //= 1.1a minor bugfix, thx 2 Irmin [Lupus]
@@ -18,583 +19,2455 @@
 //= 1.4 Fixed spelling, added some dialoguesm optimized
 //= fixed bugs. Tested, fully working [Lupus]
 //= 1.5 More fixes [Lupus]
+//= 1.6 Quest is now up to iRO 10.3 standards. [L0ne_W0lf]
+//= - Not sure what the EnableItemMove is for, as there is no 
+//= command to disable being able to move items.
 //============================================================ 
 
-prt_castle,43,30,6	script	Chef Apprentice	878,{
-
-	mes "[Chef's Apprentice]";
-
-	if(cooking == 1) goto L_Remind;
-
-	if(cooking == 2){
-		mes "I see you passed the test.";
-		mes "Good job!";
+prt_castle,43,30,3	script	Charles Orleans#cook	878,{
+	set .@now_weight,MaxWeight-Weight;
+	if (.@now_weight < 2000) {
+		mes "[Charles Orleans]";
+		mes "Just one second.";
+		mes "You're carrying too";
+		mes "many items with you";
+		mes "right now, so you better";
+		mes "place some of your things";
+		mes "into Kafra Storage, yes?";
+		close2;
+		//EnableItemMove;
+		end;
+	}
+	if (BaseJob == Job_Novice) {
+		if (sex) {
+			cutin "orleans_5",0;
+			mes "[Charles Orleans]";
+			mes "Excuse me, monsieur?";
+			mes "Yes, you. If you're not";
+			mes "here as hired help for the";
+			mes "kitchen, then I'd like to";
+			mes "ask you to leave now.";
+			next;
+			emotion e_an;
+			mes "[Charles Orleans]";
+			mes "Please don't be";
+			mes "offended, but I can't";
+			mes "concentrate on my ";
+			mes "cooking when Novices";
+			mes "like yourself are running";
+			mes "around here like children.";
+			close;
+		}
+		cutin "orleans_1",0;
+		mes "[Charles Orleans]";
+		mes "Mademoiselle, what";
+		mes "are you doing in this";
+		mes "area of the castle?";
+		mes "Oh, you must be lost~";
 		next;
-		mes "[Chef's Apprentice]";
-		mes "This book would be quite helpful for a novice chef.";
-		getitem 7472, 1;//Items: Lv1 Cookbook,
-		set cook_book, 7472;
-		set cooking, 3;
-		close;
+		cutin "orleans_2",0;
+		mes "[Charles Orleans]";
+		mes "Please, use the stairs";
+		mes "to the right to exit into the";
+		mes "main structure. My dear,";
+		mes "be careful and watch your";
+		mes "step when you climb up";
+		mes "the stairs for me, alright?";
+		goto L_End;
 	}
-
-	if(cooking == 3){
-		mes "Hi there. Is there something";
-		mes "that I can help you with?";
+	else if (getequipid(1) != 5026) {
+		if (sex) {
+			cutin "orleans_5",0;
+			emotion e_an;
+			mes "[Charles Orleans]";
+			mes "Monsieur, why you look";
+			mes "at me so? Is it the Morroc";
+			mes "silk shirt I am wearing, my";
+			mes "hair styled by Madam Veronica,";
+			mes "or my brand name muffler";
+			mes "refined by Monsieur Antonio?";
+			next;
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "Perhaps you are in awe";
+			mes "of the latest, fashionable";
+			mes "spectacles that was designed";
+			mes "by the artists from the Rekenber Corporation? Please, do tell~";
+			next;
+			cutin "orleans_2",0;
+			mes "[Charles Orleans]";
+			mes "Wait, wait just a";
+			mes "moment. Do you know";
+			mes "anything about the latest";
+			mes "trends? You don't seem";
+			mes "to be very fashionable...";
+			next;
+			cutin "orleans_5",0;
+			cutin "orleans_4",0;
+			mes "[Charles Orleans]";
+			mes "Ugh, if I can avoid it,";
+			mes "I usually prefer not to";
+			mes "associate with ruffians.";
+			mes "But I do find that you";
+			mes "adventurers do have";
+			mes "your strong points...";
+			goto L_End;
+		}
+		cutin "orleans_1",0;
+		mes "[Charles Orleans]";
+		mes "Oh! Pardon the squalor";
+		mes "of my humble kitchen,";
+		mes "Mademoiselle. But even";
+		mes "the splendor of the Prontera";
+		mes "Castle pales to the radiance";
+		mes "of your captivating beauty.";
 		next;
-		menu "Buy Supplies",M_BuySupply, "Talk about cooking",L_Cook_Talk, "Leave",L_No_Talk;		
-
-		M_BuySupply:
-			mes "[Chef's Apprentice]";
-			mes "Outdoor Cooking Set - 500z each";
-			mes " How many?";
-			input @amount;
-			if(@amount < 1) goto ER_Invalid;
-			if(@amount > 100) goto ER_TooMuch;
-			if(@amount*500 > Zeny) goto ER_Zeny;
-			set Zeny, Zeny-(@amount*500);
-			getitem 12125, @amount;//Items: Outdoor Cooker,
+		cutin "orleans_2",0;
+		mes "[Charles Orleans]";
+		mes "Tell me, who is the";
+		mes "lovely child holding";
+		mes "the cat right next to you?";
+		mes "I know it is rude to ask,";
+		mes "but I am emboldened by";
+		mes "my, shall we say, curiosity.";
+		next;
+		switch(select("......?:She is my sister:Actually, I don't know her.")) {
+		case 1:
+			cutin "nyuang_3",2;
+			donpcevent "Child with Cat#cook::onDelight";
+			mes "[The kid with a cat]";
+			mes "Nyahahaha,";
+			mes "Nyahahaha~";
+			mes "Meow~ Meow~";
 			next;
-			mes "[Chef's Apprentice]";
-			mes "Enjoy!";
-			close;
-
-		L_Cook_Talk:
-			mes "[Chef's Apprentice]";
-			mes "You passed the test,";
-			mes "but were your results";
-			mes "worth while?";
+			cutin "orleans_2",0;
+			emotion e_heh;
+			mes "[Charles Orleans]";
+			mes "What a lovely child.";
+			mes "Be quiet like a good girl.";
 			next;
-			menu "Taste my food",-, "No, it was horrible",L_Taste_End;
-
-			mes "[Chef's Apprentice]";
-			mes "I don't know about that.";
-			mes "It may not be safe...";
+			break;
+		case 2:
+			cutin "nyuang_1",2;
+			donpcevent "Child with Cat#cook:OnWhat";
+			mes "[Child with Cat]";
+			mes "...Nya?";
+			mes "...Meow?";
 			next;
-			menu "Please taste it",-, "You're probably right",L_Taste_End;
-
-			mes "[Chef's Apprentice]";
-			mes "Why would I want to try";
-			mes "the food of a novice chef?";
+			cutin "orleans_2",0;
+			emotion e_lv2;
+			mes "[Charles Orleans]";
+			mes "She is lovely and";
+			mes "quite although she";
+			mes "doesn't look like you.";
+			mes "Even her cat looks adorable.";
+			break;
+		case 3:
+			cutin "nyuang_2",2;
+			donpcevent "Child with Cat#cook::OnPif";
+			mes "[Child with Cat]";
+			mes "Nyahahaha,";
+			mes "Nyahahaha~";
+			mes "Meow, meow~";
 			next;
-			menu "Please try",-, "Yeah, I'm too new at this",L_Taste_End;
-
-			mes "[Chef's Apprentice]";
-			mes "I'll make a deal with you.";
-			mes "if you cook me one of every";
-			mes "Lv 1 food, then I'll try";
-			mes "your Cooking...";
+			cutin "orleans_4",0;
+			cutin "orleans_3",0;
+			emotion e_swt2;
+			mes "[Charles Orleans]";
+			mes "Ah, again, let me";
+			mes "apologize. I had believed";
+			mes "that this child was fortunate";
+			mes "enough to be a companion";
+			mes "of the mademoiselle.";
+			break;
+		}
+		next;
+		cutin "orleans_1",0;
+		mes "[Charles Orleans]";
+		mes "Allow me to introduce";
+		mes "myself to you, amour.";
+		mes "I am your ever faithful";
+		mes "servant whose heart is";
+		mes "enraptured by your gaze.";
+		mes "My name is Charles Orleans.";
+		next;
+		cutin "orleans_4",0;
+		mes "[Charles Orleans]";
+		mes "Yet there is one thing that";
+		mes "anguishes me. Ever since his";
+		mes "highness, King Tristram III,";
+		mes "has vanished, I have found no";
+		mes "one worthy of tasting my wares.";
+		mes "My life now lacks meaning...";
+		next;
+		mes "[Charles Orleans]";
+		mes "Alas, recently I have been";
+		mes "reduced to teaching mere";
+		mes "apprentices, tyros in the";
+		mes "culinary arts, my skills.";
+		mes "It is frustrating--many of";
+		mes "them do not have any talent!";
+		next;
+		cutin "orleans_3",0;
+		mes "[Charles Orleans]";
+		mes "Ah, forgive me, dear";
+		mes "Mademoiselle. I hope you";
+		mes "understand the difficulty";
+		mes "I am forced to suffer. When";
+		mes "next we meet, I would very much like to give you a sweet dessert.";
+		next;
+		cutin "orleans_1",0;
+		mes "[Charles Orleans]";
+		mes "Yes, women with your";
+		mes "beauty definitely deserve";
+		mes "the luscious flavors of the";
+		mes "treats that only I can offer.";
+		mes "Until that day comes, I shall";
+		mes "reluctantly bid you adieu.";
+		goto L_End;
+	}
+	else if (cooking == 0) {
+		cutin "orleans_5",0;
+		emotion e_dots;
+		mes "[Charles Orleans]";
+		mes "Oh, have you come here";
+		mes "to learn cooking? ^333333*Sigh*^000000";
+		mes "I don't feel like teaching";
+		mes "anything today--in fact,";
+		mes "I think teaching is a waste";
+		mes "of my time! ^333333*Sigh*^000000 However...";
+		next;
+		switch(select("Um, are you talking to me?:Wait, don't you remember me?:Sir Orleans?")) {
+		case 1:
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "Who else would";
+			mes "I be talking to?";
+			mes "To Madeleine over";
+			mes "there? Or that child";
+			mes "holding that mangy";
+			mes "cat? Sacrebleu!";
 			next;
-			menu "Agree",-, "Refuse",L_Taste_End;
-
-			mes "[Chef's Apprentice]";
-			mes "You'll need to make all";
-			mes "six foods. Let me know";
-			mes "when you're finished.";
-			set cooking, 4;
-			close;
-
-		L_Taste_End:
-			mes "[Chef's Apprentice]";
-			mes "Come back when you feel";
-			mes "more confident.";
-			close;
-
-		L_No_Talk:
-			mes "[Chef's Apprentice]";
-			mes "Come back to vist anytime!";
-			mes "Have a good day.";
-			close;
+			cutin "nyuang_4",2;
+			mes "[Child with Cat]";
+			mes "Grrrrrrr!";
+			mes "Rrrroreow!";
+			next;
+			cutin "orleans_4",0;
+			cutin "orleans_3",0;
+			emotion e_omg;
+			mes "[Charles Orleans]";
+			mes "Goodness, you scared me!";
+			mes "What an ill natured kid!";
+			mes "Who brought this kid in?";
+			break;
+		case 2:
+			mes "[Charles Orleans]";
+			mes "I can't remember every";
+			mes "tyro who's begged me for";
+			mes "instruction in the culinary";
+			mes "arts. I could swear you've";
+			mes "come here months ago, it's";
+			mes "just--what was your name...?";
+			next;
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "Bah! No matter.";
+			mes "I suppose that's";
+			mes "of no importance";
+			mes "at the moment.";
+			break;
+		case 3:
+			cutin "orleans_4",0;
+			mes "[Charles Orleans]";
+			mes "E-excuse me? I may be";
+			mes "your instructor, but you";
+			mes "can call me by my first name.";
+			mes "I know that I can be strict,";
+			mes "but please: in the end, we are colleagues, even if I am superior.";
+			next;
+			cutin "orleans_1",0;
+			mes "[Charles Orleans]";
+			mes "Fine, fine...";
+			mes "If you insist on your";
+			mes "modicum of expressed";
+			mes "respect, then you may";
+			mes "call me ''Sir Charles.''";
+			next;
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "Ah... That does have";
+			mes "a rather fine ring to it.";
+			mes "I actually earned that title";
+			mes "from the king himself, even";
+			mes "if I'm a knight only in title and manner, rather than strength.";
+			break;
+		}
+		next;
+		cutin "orleans_7",0;
+		mes "[Charles Orleans]";
+		mes "Well then, let's get started";
+		mes "today with making a simple";
+		mes "dish. Okay, ^FF0000I don't teach recipes";
+		mes "more than once^000000, ^FF0000so make sure";
+		mes "that you write this down^000000. Now";
+		mes "then, what shall we cook?";
+		next;
+		cutin "orleans_6",0;
+		set .@cook_m1,rand(1,6);
+		if (.@cook_m1 == 1) {
+			set cooking,1;
+			mes "[Charles Orleans]";
+			mes "Ahhh, how about";
+			mes "'Fried Grasshopper Legs?'";
+			mes "To the uninitiated, it may";
+			mes "seem to be a disgusting dish,";
+			mes "but trust me, its exquisite taste is pure pleasure for your palate.";
+			next;
+			mes "[Charles Orleans]";
+			mes "Now, please bring";
+			mes "^4D4DFF5 Grasshopper Legs^000000,";
+			mes "^4D4DFF1 Cooking Oil^000000, and";
+			mes "^4D4DFF1 Old Frying Pan^000000.";
+			mes "Then, we can begin.";
+			goto L_End;
+		}
+		else if (.@cook_m1 == 2) {
+			set cooking,2;
+			mes "[Charles Orleans]";
+			mes "Ah, I've got it!";
+			mes "Let's make ''Grape Juice";
+			mes "Herbal Tea.'' The weather";
+			mes "is perfect right now for";
+			mes "a cool, refreshing drink.";
+			next;
+			mes "[Charles Orleans]";
+			mes "Please bring";
+			mes "^4D4DFF3 Grapes^000000, and";
+			mes "^4D4DFF2 Red Potions^000000";
+			mes "so that we can";
+			mes "begin the lesson~";
+			goto L_End;
+		}
+		else if (.@cook_m1 == 3) {
+			set cooking,3;
+			mes "[Charles Orleans]";
+			mes "I've got it~";
+			mes "We can make";
+			mes "''Honey Grape Juice.''";
+			mes "Please bring me the";
+			mes "following ingredients so";
+			mes "that we can begin the lesson.";
+			next;
+			mes "[Charles Orleans]";
+			mes "^4D4DFF1 Honey^000000,";
+			mes "^4D4DFF2 Grapes^000000, and";
+			mes "^4D4DFF1 Red Potion^000000.";
+			goto L_End;
+		}
+		else if (.@cook_m1 == 4) {
+			set cooking,4;
+			mes "[Charles Orleans]";
+			mes "Mmm, why don't we";
+			mes "make ''Frog Egg and";
+			mes "Squid Ink Soup?'' Those";
+			mes "bereft of gourmet taste may";
+			mes "think it's disgusting, but it's";
+			mes "actually quite scrumptious.";
+			next;
+			mes "[Charles Orleans]";
+			mes "Well then,";
+			mes "please bring me";
+			mes "^4D4DFF1 Bag of Grain^000000,";
+			mes "^4D4DFF10 Spawns^000000, and";
+			mes "^4D4DFF1 Squid Ink^000000.";
+			goto L_End;
+		}
+		else if (.@cook_m1 == 5) {
+			set cooking,5;
+			mes "[Charles Orleans]";
+			mes "Ah, I know what";
+			mes "would be perfect right";
+			mes "now. ''Steamed Crab";
+			mes "Nippers.'' Now, please";
+			mes "bring these ingredients";
+			mes "so we can make this soup.";
+			next;
+			mes "[Charles Orleans]";
+			mes "We'll need";
+			mes "^4D4DFF10 Green Herbs^000000,";
+			mes "^4D4DFF10 Nippers^000000, and";
+			mes "^4D4DFF1 Yellow Potion^000000.";
+			goto L_End;
+		}
+		set cooking,6;
+		mes "[Charles Orleans]";
+		mes "Ooh, you know what";
+		mes "would be scrumptious?";
+		mes "''Fried Monkey Tails.'' Yes,";
+		mes "that sounds perfect! Please";
+		mes "bring these ingredients so";
+		mes "that I can teach you this dish.";
+		next;
+		mes "[Charles Orleans]";
+		mes "We'll need";
+		mes "^4D4DFF1 Frying Pan^000000,";
+		mes "^4D4DFF5 Yoyo Tails^000000, and";
+		mes "^4D4DFF1 Cooking Oil^000000.";
+		goto L_End;
 	}
-
-	if(cooking == 4){
-		if(countitem(12056)
-			&& countitem(12061)
-			&& countitem(12046)
-			&& countitem(12066)
-			&& countitem(12041)
-			&& countitem(12051)) {//Items: Frog Spawn Soup, Grape Juice with Honey, Grape Juice and Tea, Fried Monkey Tail, Boiled Locust, Steamed Crab Pincer,
-
-			delitem 12056, 1;//Items: Frog Spawn Soup,
-			delitem 12061, 1;//Items: Grape Juice with Honey,
-			delitem 12046, 1;//Items: Grape Juice and Tea,
-			delitem 12066, 1;//Items: Fried Monkey Tail,
-			delitem 12041, 1;//Items: Boiled Locust,
-			delitem 12051, 1;//Items: Steamed Crab Pincer,
-
-			mes "What!? Through already?";
-			mes "Let me see what you've made";
+	else if (cooking == 1) {
+		if (countitem(940) > 4 && countitem(7031) > 0 && countitem(7457) > 0) {
+			cutin "orleans_4",0;
+			emotion e_an;
+			mes "[Charles Orleans]";
+			mes "Finally, you're here! Never";
+			mes "forget: your ingredients must";
+			mes "always be as fresh as possible.";
+			mes "If not, your cuisine will be much poorer in quality. Now, let me";
+			mes "explain how to make this dish.";
 			next;
-
-			mes "[Chef's Apprentice]";
-			mes "Great job, but there's";
-			mes "still one thing that I need";
-			mes "you to do. Talk to a friend";
-			mes "of mine in Payon. We used";
-			mes "to study together.";
+			cutin "orleans_6",0;
+			mes "[Charles Orleans]";
+			mes "Scrub the Grasshopper Legs";
+			mes "as cleanly as you can before";
+			mes "placing them in the Frying Pan.";
+			mes "Afterwards, pour half a bottle of Cooking Oil and fry the legs at";
+			mes "high heat for about 20 minutes.";
 			next;
-			mes "[Chef's Apprentice]";
-			mes "Take him this ^000080Leather Pouch^000000,";
-			mes "and I'll put in a good word";
-			mes "for you with my teacher.";
-
-			getitem 7432, 1;//Items: Leather Pouch,
-			set cooking, 5;
-		} else {
-			mes "Please come back when you've cooked";
-			mes "all the Lv 1 foods.";
+			mes "[Charles Orleans]";
+			mes "Now, follow the instructions";
+			mes "that I've just given you to the";
+			mes "letter! Hmmm... Good, good.";
+			mes "That's not bad at all. Alright,";
+			mes "you're almost there...";
 			next;
-			menu "Buy Supplies",M_BuySupply, "Leave",L_No_Talk;		
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "There, you're done!";
+			mes "The presentation can use";
+			mes "a little work, but at least you";
+			mes "know this recipe now. That's";
+			mes "all for today, so please go";
+			mes "and practice on your own now.";
+			delitem 940,5; //Grasshopper's_Leg
+			delitem 7031,1; //Old_Frying_Pan
+			delitem 7457,1; //Cooking_Oil
+			set cooking,7;
+			getitem 12041,1; //Str_Dish01
+			goto L_End;
 		}
-		close;
+		cutin "orleans_6",0;
+		set .@talk_j,rand(1,2);
+		if (.@talk_j == 1) {
+			mes "[Charles Orleans]";
+			mes "Hurry and bring me";
+			mes "the ingredients to make";
+			mes "Fried Grasshopper Legs!";
+			mes "If a restaurant patron had";
+			mes "ordered this, then you'd";
+			mes "already be making him wait!";
+			goto L_End;
+		}
+		mes "[Charles Orleans]";
+		mes "Just go and ambush those";
+		mes "happy-go-lucky grasshoppers";
+		mes "just playing in the fields. Hurry and smash them, then rip their";
+		mes "legs off--but be humane about it! ";
+		goto L_End;
 	}
-
-	if(cooking == 5){
-		mes "Please, don't forget to";
-		mes "hand my ^000080Leather Pouch^000000";
-		mes "to my friend in Payon.";
+	else if (cooking == 2) {
+		if (countitem(514) > 2 && countitem(501) > 1) {
+			cutin "orleans_4",0;
+			mes "[Charles Orleans]";
+			mes "Finally, you're here! Never";
+			mes "forget: your ingredients must";
+			mes "always be as fresh as possible.";
+			mes "If not, your cuisine will be much poorer in quality. Now, let me";
+			mes "explain how to make this dish.";
+			next;
+			cutin "orleans_6",0;
+			mes "[Charles Orleans]";
+			mes "You extract the juice";
+			mes "from the Grapes like this--";
+			mes "we can't use pre-made Grape";
+			mes "Juice for the sake of freshness. Then, you need to boil the Red";
+			mes "Potions in a bain-marie...";
+			next;
+			mes "[Charles Orleans]";
+			mes "When the Red Potions";
+			mes "reach the right consistency,";
+			mes "gently stir in the juice that you just squeezed from the Grapes.";
+			mes "Now, I want you to try it. Hmm... That's not bad... Good, good...";
+			next;
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "There, you're done!";
+			mes "The presentation can use";
+			mes "a little work, but at least you";
+			mes "know this recipe now. That's";
+			mes "all for today, so please go";
+			mes "and practice on your own now.";
+			delitem 514,3; //Grape
+			delitem 501,2; //Red_Potion
+			set cooking,7;
+			getitem 12046,1; //Int_Dish01
+			goto L_End;
+		}
+		cutin "orleans_6",0;
+		set .@talk_j,rand(1,2);
+		if (.@talk_j == 1) {
+			mes "[Charles Orleans]";
+			mes "What are you doing?";
+			mes "Hurry and bring me the";
+			mes "ingredients for Grape Juice";
+			mes "Herbal Tea! At a real restaurant, you'd never be able to take your";
+			mes "time like this! Quickly, now!";
+			goto L_End;
+		}
+		mes "[Charles Orleans]";
+		mes "Having trouble finding";
+		mes "Grapes? Just pop open";
+		mes "those cute little Poporings...";
+		mes "Of course, you should try to";
+		mes "be humane when you hunt them...";
+		goto L_End;
+	}
+	else if (cooking == 3) {
+		if (countitem(518) > 0 && countitem(514) > 1 && countitem(501) > 0) {
+			cutin "orleans_4",0;
+			mes "[Charles Orleans]";
+			mes "Finally, you're here! Never";
+			mes "forget: your ingredients must";
+			mes "always be as fresh as possible.";
+			mes "If not, your cuisine will be much poorer in quality. Now, let me";
+			mes "explain how to make this dish.";
+			next;
+			cutin "orleans_6",0;
+			mes "[Charles Orleans]";
+			mes "First, skin the Grapes";
+			mes "and extract the seeds. Then,";
+			mes "blend the Grapes with the";
+			mes "Honey. Take this blended";
+			mes "mixture and carefully stir";
+			mes "it into the Red Potion...";
+			next;
+			mes "[Charles Orleans]";
+			mes "When the pulp is fully";
+			mes "mixed into the Red Potion,";
+			mes "you'll be finished. Now, go";
+			mes "and try making it yourself.";
+			mes "Right, that's good. Yes...";
+			mes "Wait, wait! Okay, there you go~";
+			next;
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "There, you're done!";
+			mes "The presentation can use";
+			mes "a little work, but at least you";
+			mes "know this recipe now. That's";
+			mes "all for today, so please go";
+			mes "and practice on your own now.";
+			delitem 518,1; //Honey
+			delitem 514,2; //Grape
+			delitem 501,1; //Red_Potion
+			set cooking,7;
+			getitem 12061,1; //Dex_Dish01
+			goto L_End;
+		}
+		cutin "orleans_6",0;
+		set .@talk_j,rand(1,2);
+		if (.@talk_j == 1) {
+			mes "[Charles Orleans]";
+			mes "What's taking you so";
+			mes "long? You should have";
+			mes "brought me the ingredients";
+			mes "to make Honey Grape Juice";
+			mes "a while ago. Hurry it up!";
+			goto L_End;
+		}
+		mes "[Charles Orleans]";
+		mes "You're having trouble";
+		mes "finding some Honey for the";
+		mes "Honey Grape Juice, aren't you?";
+		mes "Just go and hunt some bears,";
+		mes "they're always carrying some";
+		mes "of that Honey around.";
+		goto L_End;
+	}
+	else if (cooking == 4) {
+		if (countitem(577) > 0 && countitem(908) > 9 && countitem(1024) > 0) {
+			cutin "orleans_4",0;
+			mes "[Charles Orleans]";
+			mes "Finally, you're here! Never";
+			mes "forget: your ingredients must";
+			mes "always be as fresh as possible.";
+			mes "If not, your cuisine will be much poorer in quality. Now, let me";
+			mes "explain how to make this dish.";
+			next;
+			cutin "orleans_6",0;
+			mes "[Charles Orleans]";
+			mes "Mill the grain until";
+			mes "it's a fine flour, then";
+			mes "boil the Squid Ink at";
+			mes "medium heat. Once it";
+			mes "bubbles, pour in the flour.";
+			next;
+			mes "[Charles Orleans]";
+			mes "Keep stirring, slowly";
+			mes "adding the Spawns. When";
+			mes "it all boils again, reduce the";
+			mes "heat and simmer for about 10";
+			mes "minutes. Okay, now you try it.";
+			mes "That's good, good... Alright~";
+			next;
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "There, you're done!";
+			mes "The presentation can use";
+			mes "a little work, but at least you";
+			mes "know this recipe now. That's";
+			mes "all for today, so please go";
+			mes "and practice on your own now.";
+			delitem 577,1; //Grain
+			delitem 908,10; //Spawn
+			delitem 1024,1; //Chinese_ink
+			set cooking,7;
+			getitem 12056,1; //Agi_Dish01
+			goto L_End;
+		}
+		cutin "orleans_6",0;
+		set .@talk_j,rand(1,2);
+		if (.@talk_j == 1) {
+			mes "[Charles Orleans]";
+			mes "What are you doing?";
+			mes "You're supposed to be";
+			mes "preparing ingredients";
+			mes "for Frog Egg and Squid";
+			mes "Ink Soup right now!";
+			goto L_End;
+		}
+		mes "[Charles Orleans]";
+		mes "You have to be careful";
+		mes "when you're handling Frog";
+		mes "Eggs. If you feed them raw to";
+		mes "somebody, well, their flavor is";
+		mes "decidely less than magnifique.";
+		goto L_End;
+	}
+	else if (cooking == 5) {
+		if (countitem(960) > 9 && countitem(511) > 9 && countitem(503) > 0) {
+			cutin "orleans_4",0;
+			mes "[Charles Orleans]";
+			mes "Finally, you're here! Never";
+			mes "forget: your ingredients must";
+			mes "always be as fresh as possible.";
+			mes "If not, your cuisine will be much poorer in quality. Now, let me";
+			mes "explain how to make this dish.";
+			next;
+			cutin "orleans_6",0;
+			mes "[Charles Orleans]";
+			mes "Boil the Nippers in Yellow";
+			mes "Potion on low heat for about";
+			mes "30 minutes. Then, bring it down";
+			mes "to a simmer and carefully stir";
+			mes "in the Green Herbs one by one.";
+			next;
+			mes "[Charles Orleans]";
+			mes "This is an easy recipe, but";
+			mes "I still want you to demonstrate";
+			mes "for me. Okay, let's see now...";
+			mes "You're doing fine. Now, wait...";
+			mes "Good, good, okay, it's ready";
+			mes "for the Green Herbs now...";
+			next;
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "There, you're done!";
+			mes "The presentation can use";
+			mes "a little work, but at least you";
+			mes "know this recipe now. That's";
+			mes "all for today, so please go";
+			mes "and practice on your own now.";
+			delitem 960,10; //Nipper
+			delitem 511,10; //Green_Herb
+			delitem 503,1; //Yellow_Potion
+			set cooking,7;
+			getitem 12051,1; //Vit_Dish01
+			goto L_End;
+		}
+		cutin "orleans_6",0;
+		set .@talk_j,rand(1,2);
+		if (.@talk_j == 1) {
+			mes "[Charles Orleans]";
+			mes "Shouldn't you be";
+			mes "preparing all of the";
+			mes "ingredients for Steamed";
+			mes "Crab Nippers? You need";
+			mes "to work quickly for those";
+			mes "hungry restaurant patrons!";
+			goto L_End;
+		}
+		mes "[Charles Orleans]";
+		mes "It shouldn't be too hard";
+		mes "to gather Nippers. Just";
+		mes "find some Vadons and crush";
+		mes "them, making sure to rip off";
+		mes "their Nippers. That sounds strange, I know, but just do it.";
+		goto L_End;
+	}
+	else if (cooking == 6) {
+		if (countitem(942) > 4 && countitem(7031) > 0 && countitem(7457) > 0) {
+			cutin "orleans_4",0;
+			mes "[Charles Orleans]";
+			mes "Finally, you're here! Never";
+			mes "forget: your ingredients must";
+			mes "always be as fresh as possible.";
+			mes "If not, your cuisine will be much poorer in quality. Now, let me";
+			mes "explain how to make this dish.";
+			next;
+			cutin "orleans_6",0;
+			mes "[Charles Orleans]";
+			mes "Pluck the hair from the";
+			mes "tails and rinse them well";
+			mes "under cold water. Pour half";
+			mes "a bottle of Cooking Oil unto";
+			mes "a preheated pan, and then";
+			mes "quickly fry the tails.";
+			next;
+			mes "[Charles Orleans]";
+			mes "The trick is to fry the";
+			mes "tails quickly without burning";
+			mes "them, so you'll probably want";
+			mes "to cook using medium-high heat.";
+			mes "Show me what you've learned now... Alright, that's not bad... Hmmm...";
+			next;
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "There, you're done!";
+			mes "The presentation can use";
+			mes "a little work, but at least you";
+			mes "know this recipe now. That's";
+			mes "all for today, so please go";
+			mes "and practice on your own now.";
+			delitem 942,5; //Yoyo_Tail
+			delitem 7031,1; //Old_Frying_Pan
+			delitem 7457,1; //Cooking_Oil
+			set cooking,7;
+			getitem 12066,1; //Luk_Dish01
+			goto L_End;
+		}
+		cutin "orleans_6",0;
+		set .@talk_j,rand(1,2);
+		if (.@talk_j == 1) {
+			mes "[Charles Orleans]";
+			mes "You better go prepare";
+			mes "those ingredients for Fried";
+			mes "Monkey Tails are quickly as";
+			mes "you can. In a real restaurant,";
+			mes "you'd never able to take your";
+			mes "time like this. Toute allure!";
+			goto L_End;
+		}
+		mes "[Charles Orleans]";
+		mes "You need more tails?";
+		mes "Just sneak up on some";
+		mes "Yoyos, swiftly kill them,";
+		mes "and then slice off their tails.";
+		mes "You're a beginner, but I won't";
+		mes "allow you to be inhumane!";
+		goto L_End;
+	}
+	else if (cooking == 7) {
+		cutin "orleans_7",0;
+		mes "[Charles Orleans]";
+		mes "Oh... I'm so exhausted!";
+		mes "I have too much wisdom and";
+		mes "skills to pass on! Teaching is";
+		mes "not an endeavor I enjoy, but";
+		mes "I do realize it is necessary";
+		mes "for my cuisine to survive me...";
+		next;
+		cutin "orleans_1",0;
+		mes "[Charles Orleans]";
+		mes "Peser le bien et le mal...";
+		mes "Even though it pains me,";
+		mes "I suppose I have to continue";
+		mes "teaching until one of you can";
+		mes "become a worthy successor.";
+		mes "It will take some time...";
+		goto L_End;
+	}
+	else if (cooking == 8) {
+		cutin "orleans_5",0;
+		mes "[Charles Orleans]";
+		mes "Strange, strange...";
+		mes "What is that kid and";
+		mes "that cat doing here?";
+		mes "The kitchen is no place";
+		mes "for them--at the very least,";
+		mes "not for pets, you know.";
+		next;
+		cutin "orleans_4",0;
+		mes "[Charles Orleans]";
+		mes "Pardon moi, child,";
+		mes "but would you remove";
+		mes "yourself and your cat";
+		mes "from the premises? This";
+		mes "is a kitchen, and everything";
+		mes "here needs to be clean!";
+		next;
+		cutin "nyuang_1",2;
+		mes "[Child with Cat]";
+		mes "...Nyaaa?";
+		mes "...Meow?";
+		next;
+		switch(select("What's your name, kid?:Do you want to eat something?:Here, kitty~:Get out!")) {
+		case 1:
+			donpcevent "Child with Cat#cook::OnOkay";
+			mes "[Child with Cat]";
+			mes "Nyaaa~";
+			mes "nyaaa~";
+			mes "(Purrrrrr)";
+			next;
+			cutin "orleans_4",0;
+			mes "[Charles Orleans]";
+			mes ".....Who told you";
+			mes "to ask her name?";
+			mes "You don't even understand what she is saying.";
+			goto L_End;
+		case 2:
+			cutin "nyuang_2",2;
+			donpcevent "Child with Cat#cook::OnPif";
+			mes "[Child with Cat]";
+			mes "Nyaaaa~";
+			mes "(Purrrrrr~)";
+			next;
+			cutin "orleans_5",0;
+			mes "[Charles Orleans]";
+			mes "That was a good idea...";
+			mes "Offering them food to get";
+			mes "them to leave. Mon dieu, if";
+			mes "the child won't talk to us...";
+			mes "Still, we need to get those";
+			mes "two out of the kitchen.";
+			goto L_End;
+		case 3:
+			cutin "nyuang_3",2;
+			donpcevent "Child with Cat#cook::OnHeh";
+			mes "[Child with Cat]";
+			mes "Nyahahaha~";
+			mes "Nyhhahaha~";
+			mes "(Meow, meow~)";
+			next;
+			cutin "orleans_4",0;
+			mes "[Charles Orleans]";
+			mes "...Are you playing with that kid...?";
+			mes "...Then I don't need you to be here.";
+			goto L_End;
+		case 4:
+			donpcevent "Child with Cat#cook::OnDot";
+			mes "[Child with Cat]";
+			mes "...";
+			mes "(Meow?)";
+			next;
+			cutin "nyuang_4",2;
+			donpcevent "Child with Cat#cook::OnAngry";
+			specialeffect2 1; //EF_HIT2
+			percentheal -10,0;
+			mes "[Child with Cat]";
+			mes "Grrrrrrr!";
+			mes "(RRRrrreow!)";
+			next;
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "Oh, look out!";
+			mes "You should have";
+			mes "been more careful";
+			mes "handling that cat...";
+			goto L_End;
+		}
+	}
+	else if (cooking == 9) {
+		cutin "orleans_5",0;
+		emotion e_an;
+		mes "[Charles Orleans]";
+		mes "Alright, enough";
+		mes "is enough. We can't";
+		mes "continue to cook if we";
+		mes "have live animals in the";
+		mes "kitchen. It's a violation";
+		mes "of our sanitary standards!";
 		next;
-		mes "[Chef's Apprentice]";
-		mes "Well... Is there something";
-		mes "that I can help you with?";
+		cutin "orleans_6",0;
+		mes "[Charles Orleans]";
+		mes "I'm sorry, mon chere,";
+		mes "but you have to leave.";
+		mes "Child, please take your";
+		mes "cat and head out the door";
+		mes "before your feline can touch";
+		mes "or shed on any of the food!";
 		next;
-		menu "Buy Supplies",-, "Leave",L_No_Talk2;
+		cutin "nyuang_4",2;
+		donpcevent "Child with Cat#cook::OnAngry";
+		mes "[Child with Cat]";
+		mes "Grrrrrrr!";
+		mes "RRRRreow!";
+		next;
+		donpcevent "Wickebine#cook::OnEnable";
+		emotion e_omg;
+		donpcevent "Child with Cat#cook::OnDelight";
+		next;
+		cutin "job_black_hucke01",1;
+		mes "[Wickebine]";
+		mes "Oh...!";
+		mes "Nyuyang, there";
+		mes "you are! What are";
+		mes "you doing here in";
+		mes "Charles's kitchen?";
+		next;
+		cutin "orleans_3",0;
+		mes "[Charles Orleans]";
+		mes "M-Madam Wickebine...!";
+		mes "Forgive me, you surprised";
+		mes "me by appearing from out";
+		mes "of nowhere. Do you happen";
+		mes "to know this young child?";
+		next;
+		cutin "job_black_hucke02",1;
+		mes "[Wickebine]";
+		mes "Oh, Nyuyang here is my";
+		mes "little sister. It may be hard";
+		mes "to see the resemblance...";
+		mes "Anyway, I've been looking";
+		mes "all over for her. Are you";
+		mes "bothering Charles, Nyuyang?";
+		next;
+		cutin "nyuang_3",2;
+		donpcevent "Child with Cat#cook::OnHeh";
+		mes "[Child with Cat]";
+		mes "Nyuuuunyuuu~";
+		mes "nyuuuunyuuu~";
+		mes "Meooooow~";
+		next;
+		cutin "orleans_3",0;
+		mes "[Charles Orleans]";
+		mes "...!!!";
+		next;
+		cutin "job_black_hucke03",1;
+		mes "[Wickebine]";
+		mes "Oh, so you have";
+		mes "been bothering him!";
+		mes "You think Charles";
+		mes "wants you to leave?";
+		next;
+		cutin "orleans_3",0;
+		emotion e_swt2;
+		mes "[Charles Orleans]";
+		mes "Hahahahah, what";
+		mes "are you talking about!";
+		mes "Nonsense! How can ";
+		mes "such a cute little belle";
+		mes "be of any trouble to me?";
+		next;
+		cutin "orleans_7",0;
+		mes "[Charles Orleans]";
+		mes "As a matter of fact,";
+		mes "I was just about to treat";
+		mes "this precious petit and";
+		mes "her little cat to some";
+		mes "of my delicious cuisine.";
+		mes "So do not worry, Madam~";
+		next;
+		cutin "job_black_hucke01",1;
+		donpcevent "Wickebine#cook::OnWhat";
+		mes "[Wickebine]";
+		mes "Are you sure, Charles?";
+		mes "I know how serious you";
+		mes "are about your cooking,";
+		mes "and I don't want Nyuyang";
+		mes "to disturb you in any way...";
+		next;
+		cutin "job_black_hucke02",1;
+		mes "[Wickebine]";
+		mes "Oh, Charles, you've";
+		mes "been nothing but kind";
+		mes "to me. I'm glad that you're";
+		mes "also taking care of Nyuyang.";
+		mes "Well then, take care~";
+		next;
+		cutin "nyuang_3",2;
+		donpcevent "Child with Cat#cook::OnHeh";
+		mes "[Child with Cat]";
+		mes "Nyahahaha~";
+		mes "Nyahahaha~";
+		mes "(Meow, meow~)";
+		next;
+		cutin "job_black_hucke02",255;
+		donpcevent "Wickebine#cook::OnDelight";
+		donpcevent "Wickebine#cook::OnDisable";
+		next;
+		emotion e_dots;
+		donpcevent "Child with Cat#cook::OnDot";
+		mes "[Charles Orleans]";
+		mes "......";
+		next;
+		cutin "orleans_6",0;
+		mes "[Charles Orleans]";
+		mes "Ah...";
+		mes "There goes a true";
+		mes "lady... Madam Wickebine...";
+		goto L_End;
+	}
+	else if (cooking == 10) {
+		cutin "orleans_5",0;
+		mes "[Charles Orleans]";
+		mes "It's been bothering";
+		mes "me that his highness";
+		mes "has been missing for";
+		mes "a while. Why doesn't";
+		mes "anybody know where he is?";
+		next;
+		cutin "orleans_4",0;
+		cutin "orleans_3",0;
+		mes "[Charles Orleans]";
+		mes "Wise and benevolent";
+		mes "King Tristram III would";
+		mes "never abandon his subjects.";
+		mes "I dearly hope that nothing";
+		mes "serious has happened to him...";
+		next;
+		cutin "orleans_6",0;
+		mes "[Charles Orleans]";
+		mes "Can it be possible that";
+		mes "our beloved king would";
+		mes "have enemies? He's done";
+		mes "nothing but good for the";
+		mes "Rune-Midgarts Kingdom";
+		mes "and the rest of the world!";
+		next;
+		mes "[Charles Orleans]";
+		mes "I can't imagine a great";
+		mes "man like him to be in any";
+		mes "sort of trouble. It makes me";
+		mes "me laugh whenever anyone";
+		mes "suggests that he is hiding";
+		mes "in the Schwaltzvalt Republic...";
+		next;
+		emotion e_go;
+		mes "[Charles Orleans]";
+		mes "Praise the glories of the";
+		mes "Rune-Midgarts Kingdom!";
+		mes "Long live King Tristram III!";
+		goto L_End;
+	}
+	else if (cooking == 11) {
+		cutin "orleans_5",0;
+		emotion e_dots;
+		mes "[Charles Orleans]";
+		mes "Oh, I'm in great need of";
+		mes "some rest. Unless you ";
+		mes "have something incredibly";
+		mes "important to ask of me,";
+		mes "please let me take a break~";
+		next;
+		switch(select("I want to learn more recipes.:For whom do you cook?:I'm sorry to bother you...")) {
+		case 1:
+			cutin "orleans_7",0;
+			mes "[Charles Orleans]";
+			mes "You want to learn more";
+			mes "recipes? I suppose that";
+			mes "you should borrow another";
+			mes "cookbook then. Before that,";
+			mes "please return the cookbook";
+			mes "that you were studying, okay?";
+			next;
+			mes "[Charles Orleans]";
+			mes "Now, choose the cookbook";
+			mes "that you want to borrow by";
+			mes "entering a level from 1 to 5.";
+			mes "There are more advanced books,";
+			mes "but I'm not lending those out.";
+			mes "Oh, and enter 0 to cancel.";
+			next;
+			input .@new_book;
+			if (.@new_book < 0 || .@new_book > 5) {
+				cutin "orleans_5",0;
+				mes "[Charles Orleans]";
+				mes "Hmm...";
+				mes "I asked to you to";
+				mes "enter a level from";
+				mes "1 to 5. Those are the";
+				mes "only cookbooks that I will";
+				mes "lend out to my students.";
+				goto L_End;
+			}
+			else if (.@new_book == 0) {
+				cutin "orleans_5",0;
+				mes "[Charles Orleans]";
+				mes "So you changed your mind?";
+				mes "It would be a good idea to";
+				mes "study the recipes that you";
+				mes "have right now before trying";
+				mes "something new, I suppose.";
+				goto L_End;
+			}
+			mes "[Charles Orleans]";;
+			mes "So you wanted to borrow a";;
+			mes "Level " + .@new_book + " Cookbook, eh?";;
+			mes "Oh, would you please tell";;
+			mes "me the level of the cookbook";
+			mes "that you are returning to me?";
+			next;
+			input .@old_book;
+			if (.@old_book < 0 || .@old_book > 5) {
+				mes "[Charles Orleans]";
+				mes "There must be some";
+				mes "kind of mistake-- I only";
+				mes "lend out cookbooks from";
+				mes "levels 1 to 5. Hmm, well, ask";
+				mes "me again when you remember";
+				mes "which cookbook you have, okay?";
+				goto L_End;
+			}
+			else if (.@old_book == 0) {
+				cutin "orleans_5",0;
+				mes "[Charles Orleans]";
+				mes "So you changed your mind?";
+				mes "It would be a good idea to";
+				mes "study the recipes that you";
+				mes "have right now before trying";
+				mes "something new, I suppose.";
+				goto L_End;
+			}
+			else if (.@old_book == .@new_book) {
+				cutin "orleans_4",0;
+				mes "[Charles Orleans]";
+				mes "Wait, wait...";
+				mes "Why do you want to";
+				mes "borrow a copy of the";
+				mes "cookbook that you already";
+				mes "have? I guess you made";
+				mes "some sort of mistake?";
+				goto L_End;
+			}
+			else {
+				if (.@old_book == 1) {
+					if (countitem(7472) < 1) {
+						mes "[Charles Orleans]";
+						mes "Wait, wait...";
+						mes "Why don't you have";
+						mes "the book that you said";
+						mes "that you'd return to me?";
+						mes "Find it first, and then I can";
+						mes "lend another cookbook to you.";
+						goto L_End;
+					}
+					cutin "orleans_2",0;
+					mes "[Charles Orleans]";
+					mes "Ah, so you're done";
+					mes "with the Level 1 Cookbook.";
+					mes "That's good, that means you're";
+					mes "ready to graduate from the most";
+					mes "basic of basics. From now on,";
+					mes "the recipes will be harder...";
+					next;
+				}
+				else if (.@old_book == 2) {
+					if (countitem(7473) < 1) {
+						mes "[Charles Orleans]";
+						mes "Wait, wait...";
+						mes "Why don't you have";
+						mes "the book that you said";
+						mes "that you'd return to me?";
+						mes "Find it first, and then I can";
+						mes "lend another cookbook to you.";
+						goto L_End;
+					}
+					cutin "orleans_2",0;
+					mes "[Charles Orleans]";
+					mes "Ah, so what did you";
+					mes "think of the recipes in";
+					mes "the Level 2 Cookbook?";
+					mes "Homestyle cooking may be";
+					mes "simple, but it should never";
+					mes "be neglected by chefs.";
+					next;
+				}
+				else if (.@old_book == 3) {
+					if (countitem(7474) < 1) {
+						mes "[Charles Orleans]";
+						mes "Wait, wait...";
+						mes "Why don't you have";
+						mes "the book that you said";
+						mes "that you'd return to me?";
+						mes "Find it first, and then I can";
+						mes "lend another cookbook to you.";
+						goto L_End;
+					}
+					cutin "orleans_2",0;
+					mes "[Charles Orleans]";
+					mes "Ah, done with the Level 3";
+					mes "Cookbook already? The recipes";
+					mes "in there are really good when you're cooking romantic dinners.";
+					mes "They'll come in handy someday,";
+					mes "if you know what I mean.";
+					next;
+				}
+				else if (.@old_book == 4) {
+					if (countitem(7475) < 1) {
+						mes "[Charles Orleans]";
+						mes "Wait, wait...";
+						mes "Why don't you have";
+						mes "the book that you said";
+						mes "that you'd return to me?";
+						mes "Find it first, and then I can";
+						mes "lend another cookbook to you.";
+						goto L_End;
+					}
+					cutin "orleans_2",0;
+					mes "[Charles Orleans]";
+					mes "So you've finished the";
+					mes "Level 4 Cookbook. That's";
+					mes "no small feat! You've got to";
+					mes "use very strange ingredients";
+					mes "to create delicious cuisine!";
+					next;
+				}
+				else if (.@old_book == 5) {
+					if (countitem(7476) < 1) {
+						mes "[Charles Orleans]";
+						mes "Wait, wait...";
+						mes "Why don't you have";
+						mes "the book that you said";
+						mes "that you'd return to me?";
+						mes "Find it first, and then I can";
+						mes "lend another cookbook to you.";
+						goto L_End;
+					}
+					cutin "orleans_2",0;
+					mes "[Charles Orleans]";
+					mes "You're done with the";
+					mes "Level 5 Cookbook? Good";
+					mes "work: most beginners don't";
+					mes "even get this far. I suppose";
+					mes "you'll want to review some";
+					mes "of the easier recipes now~";
+					next;
+				}
+			}
+			cutin "orleans_1",0;
+			mes "[Charles Orleans]";
+			mes "Now, before I let you";
+			mes "borrow one of my beloved";
+			mes "cookbooks, I have a small";
+			mes "condition that you must fulfill. ";
+			next;
+			if (.@new_book == 1) {
+				cutin "orleans_7",0;
+				mes "[Charles Orleans]";
+				mes "When I was a young child,";
+				mes "my family was destitute to";
+				mes "the point where we live off";
+				mes "leftover vegetables. Even";
+				mes "Monster's Feed was a prime";
+				mes "delicacy back in those days.";
+				next;
+				mes "[Charles Orleans]";
+				mes "Back then, my father would";
+				mes "always serve us Pumpkin.";
+				mes "I grew sick of it as a boy, but";
+				mes "now it brings back memories";
+				mes "of those days of innocence.";
+				next;
+				mes "[Charles Orleans]";
+				mes "Why don't we do this?";
+				mes "If you bring me 10 Pumpkins,";
+				mes "I will let you borrow one of";
+				mes "my Level 1 Cookbooks.";
+				if (countitem(535) > 9) {
+					next;
+					if (select("Give 10 Pumpkins and Current Cookbook:Cancel") == 1) {
+						cutin "orleans_6",0;
+						mes "[Charles Orleans]";
+						mes "Perfect, you've brought";
+						mes "me 10 Pumpkins! I can't";
+						mes "want to taste these flavors";
+						mes "that I used to experience";
+						mes "everyday in my childhood.";
+						next;
+					}
+					else {
+						mes "[Charles Orleans]";
+						mes "Oh, how I miss the";
+						mes "taste of Pumpkins!";
+						mes "Ahhh, how nostalgic~";
+						goto L_End;
+					}
+				}
+				else goto L_End;
+			}
+			else if (.@new_book== 2) {
+				cutin "orleans_7",0;
+				mes "[Charles Orleans]";
+				mes "Today, I have a craving";
+				mes "for a cup of tea. Of course,";
+				mes "you cannot enjoy tea without";
+				mes "crackers or cookies. Please";
+				mes "bring me 5 Well-Baked Cookies";
+				mes "to borrow my Level 2 Cookbook.";
+				if (countitem(538) > 4) {
+					next;
+					if (select("Give Cookies and Current Cookbook:Cancel") == 1) {
+						cutin "orleans_6",0;
+						mes "[Charles Orleans]";
+						mes "Oh, you brought these";
+						mes "cookies much quicker";
+						mes "than I had expected!";
+						mes "Great, now I can put";
+						mes "the tea on, relax, then";
+						mes "enjoy a delicious snack~";
+						next;
+					}
+					else {
+						mes "[Charles Orleans]";
+						mes "Ohh...";
+						mes "I must have some tea";
+						mes "soon... But the experience";
+						mes "isn't complete without any";
+						mes "Well-Baked Cookies to munch~";
+						goto L_End;
+					}
+				}
+				else goto L_End;
+			}
+			else if (.@new_book== 3) {
+				cutin "orleans_7",0;
+				mes "[Charles Orleans]";
+				mes "You know that specialty";
+				mes "dish from Amatsu? I've";
+				mes "been craving that lately.";
+				mes "Please bring me 5 Sushi,";
+				mes "and I'll let you borrow a";
+				mes "Level 3 Cookbook, okay?";
+				if (countitem(551) > 4) {
+					next;
+					if (select("Give Sushi and Current Cookbook:Cancel")) {
+						cutin "orleans_6",0;
+						mes "[Charles Orleans]";
+						mes "Ooh, these look so fresh!";
+						mes "And the presentation is also";
+						mes "wonderful! These must have";
+						mes "been prepared by a skilled chef! ";
+						next;
+					}
+					else {
+						mes "[Charles Orleans]";
+						mes "Ahhh, Sushi...";
+						mes "It's one of the few";
+						mes "things I don't know";
+						mes "how to make extremely";
+						mes "well. Can you believe that?";
+						goto L_End;
+					}
+				}
+				else goto L_End;
+			}
+			else if (.@new_book== 4) {
+				cutin "orleans_7",0;
+				mes "[Charles Orleans]";
+				mes "Oh, I'm in the mood for";
+				mes "some cuisine from Kunlun.";
+				mes "Would you bring me some of";
+				mes "that delicious Bao? 5 would";
+				mes "be perfect. Then, I'll let you";
+				mes "borrow my Level 4 Cookbook.";
+				if (countitem(553) > 4) {
+					next;
+					if (select("Give Bao and Current Cookbook:Cancel") == 1) {
+						cutin "orleans_6",0;
+						mes "[Charles Orleans]";
+						mes "Great, you actually";
+						mes "brought them! These";
+						mes "Bao look especially";
+						mes "scrumptious! I can't";
+						mes "wait to have a taste!";
+						next;
+					}
+					else {
+						mes "[Charles Orleans]";
+						mes "Oh...";
+						mes "It's been so long";
+						mes "since I've had a taste";
+						mes "of that delicious Bao.";
+						mes "I'd cook it myself, but";
+						mes "I don't know the secret!";
+						goto L_End;
+					}
+				}
+				else goto L_End;
+			}
+			else if (.@new_book== 5) {
+				cutin "orleans_7",0;
+				mes "[Charles Orleans]";
+				mes "Lately, my pantry has been";
+				mes "in some dire need of Shoots.";
+				mes "They're a tasty ingredient with";
+				mes "unignorable health value. Bring";
+				mes "me 10 of those, and you can";
+				mes "borrow a Level 5 Cookbook.";
+				if (countitem(711) > 9) {
+					next;
+					if (select("Give Shoots and Current Cookbook:Quit") == 1) {
+						cutin "orleans_6",0;
+						mes "[Charles Orleans]";
+						mes "Goodness, these are";
+						mes "some high quality Shoots!";
+						mes "These look so good, I'm";
+						mes "sure that you you can";
+						mes "even eat them raw!";
+						next;
+					}
+					else {
+						mes "[Charles Orleans]";
+						mes "I'm going to need to";
+						mes "cook with those Shoots";
+						mes "soon, so I'd appreciate it";
+						mes "if you'd do this little favor~";
+						goto L_End;
+					}
+				}
+				else goto L_End;
+			}
+
+			if (.@old_book == 1) delitem 7472,1; //Cookbook01
+			else if (.@old_book == 2) delitem 7473,1; //Cookbook02
+			else if (.@old_book == 3) delitem 7474,1; //Cookbook03
+			else if (.@old_book == 4) delitem 7475,1; //Cookbook04
+			else if (.@old_book == 5) delitem 7476,1; //Cookbook05
+			if (.@new_book == 1) {
+				delitem 535,10; //Pumpkin
+				getitem 7472,1; //Cookbook01
+			}
+			else if (.@new_book== 2) {
+				delitem 538,5; //Well_Baked_Cookie
+				getitem 7473,1; //Cookbook02
+			}
+			else if (.@new_book== 3) {
+				delitem 551,5; //Shusi
+				getitem 7474,1; //Cookbook03
+			}
+			else if (.@new_book== 4) {
+				delitem 553,5; //Bun
+				getitem 7475,1; //Cookbook05
+			}
+			else if (.@new_book== 5) {
+				delitem 711,10; //Shoot
+				getitem 7476,1; //Cookbook05
+			}
+			mes "[Charles Orleans]";
+			mes "Well, as promised,";
+			mes "here's the cookbook";
+			mes "that you asked for. Take";
+			mes "good care of it--don't sell";
+			mes "it or lose it or anything like";
+			mes "that. Good luck cooking now~";
+			goto L_End;
+
+		case 2:
+			cutin "orleans_3",0;
+			mes "[Charles Orleans]";
+			mes "What do you mean,";
+			mes "''Who do I cook for?''";
+			mes "That's a strange question";
+			mes "with a simple answer. I'm";
+			mes "an artiste that must bring";
+			mes "more of my art into the world.";
+			next;
+			cutin "orleans_3",0;
+			mes "[Charles Orleans]";
+			mes "Wait, wait...";
+			mes "Have you been speaking";
+			mes "to Madeleine Chu? She";
+			mes "didn't say anything out";
+			mes "of the ordinary did she?";
+			mes "Because if she did, ignore her!";
+			next;
+			cutin "orleans_6",0;
+			mes "[Charles Orleans]";
+			mes "No. There is";
+			mes "no special reason";
+			mes "why my spirit to create";
+			mes "culinary masterpieces has";
+			mes "been reinvigorated lately...";
+			goto L_End;
+
+		case 3:
+			cutin "orleans_5",0;
+			mes "[Charles Orleans]";
+			mes "Please, do not worry";
+			mes "yourself about it. Just";
+			mes "let me rest for now~";
+			goto L_End;
 
-			mes "[Chef's Apprentice]";
-			mes "Outdoor Cooking Set - 500z each.";
-			mes " How many?";
-			input @amount;
-			if(@amount < 1) goto ER_Invalid;
-			if(@amount > 100) goto ER_TooMuch;
-			if(@amount*500 > Zeny) goto ER_Zeny;
-			set Zeny, Zeny-(@amount*500);
-			getitem 12125, @amount;//Items: Outdoor Cooker,
+		}
+	}
+	else {
+		mes "[Charles Orleans]";
+		mes "Mon dieu!";
+		mes "An error has";
+		mes "occurred!";
+		goto L_End;
+	}
 
+L_End:
+	close2;
+	cutin "",255;
+	end;
+}
+
+prt_castle,45,35,5	script	Madeleine Chu#cook	886,{
+	set .@now_weight,MaxWeight-Weight;
+	if (.@now_weight < 2000) {
+		mes "[Madeleine Chu]";
+		mes "I'm sorry, but right now";
+		mes "you're carrying too many";
+		mes "items. You should put your";
+		mes "extra things in Kafra Storage,";
+		mes "and then talk to me again, okay? ";
+		close2;
+		//EnableItemMove
+		end;
+	}
+	if (cooking == 0) {
+		mes "[Madeleine Chu]";
+		mes "Oh, hello~";
+		mes "I'm Madeleine Chu,";
+		mes "chef apprentice to";
+		mes "Sir Charles. May I help";
+		mes "you with anything today?";
+		next;
+		switch(select("What do you do as a chef?:Which foods can you make?:I want to learn cooking too!")) {
+		case 1:
+			mes "[Madeleine Chu]";
+			mes "What do I do as a chef?";
+			mes "Well, I'm just an apprentice now, so I'm still learning how to cook.";
+			mes "But someday, I want to become";
+			mes "a great chef and have everybody";
+			mes "recognize my culinary talents~";
 			next;
-			mes "[Chef's Apprentice]";
-			mes "Enjoy!";
+			mes "[Madeleine Chu]";
+			mes "There's a lot of grueling";
+			mes "work that goes into cooking,";
+			mes "as well as a lot of finesse.";
+			mes "I have to control fire better";
+			mes "tham a firefighter and craft";
+			mes "my dishes like an artist.";
+			next;
+			mes "[Madeleine Chu]";
+			mes "Well, I'm exaggerating";
+			mes "a little bit, but cooking";
+			mes "at a certain level is much";
+			mes "more difficult than it appears.";
 			close;
 
-		L_No_Talk2:
-			mes "[Chef's Apprentice]";
-			mes "Come back to vist anytime!";
-			mes "Have a good day.";
+		case 2:
+			mes "[Madeleine Chu]";
+			mes "Well, I only know the basic";
+			mes "recipes for now. Sir Charles";
+			mes "says that even the best chef";
+			mes "knows how to bring out the";
+			mes "flavors of even common foods.";
+			next;
+			mes "[Madeleine Chu]";
+			mes "He says that I need to develop";
+			mes "my culinary skills until I can";
+			mes "learn more advanced recipes.";
+			mes "Someday, I'll advance and then";
+			mes "I'll know enough to create my";
+			mes "own unique, delicious dishes!";
+			next;
+			mes "[Madeleine Chu]";
+			mes "Sir Charles may be harsh to";
+			mes "his students, but his skills";
+			mes "are unequaled. I tried one of";
+			mes "his desserts once, and it was";
+			mes "the most heavenly experience.";
+			mes "I swear I saw winged hearts~!";
+			next;
+			mes "[Madeleine Chu]";
+			mes "Sadly, I'm a still long way";
+			mes "from learning how to make ";
+			mes "his specialty, Handmade";
+			mes "Chocolates. Before that, I need";
+			mes "to master these strange recipes";
+			mes "that he keeps teaching me...";
 			close;
-	}
 
-	if(cooking == 6){
-		mes "Thank you for taking that";
-		mes "pouch to my friend! Take";
-		mes "this as a gift.";
-		set cooking, 7;
-		getitem 12126, 10;//Items: Home Cooking Set,
+		case 3:
+			mes "[Madeleine Chu]";
+			mes "If you want to learn cooking,";
+			mes "why don't you ask Sir Charles?";
+			mes "He's fairly harsh to his students, but he does it out of tough love.";
+			mes "He demands nothing less than";
+			mes "absolute perfection, you know.";
+			next;
+			mes "[Madeleine Chu]";
+			mes "If you manage to get";
+			mes "Sir Charles to teach you";
+			mes "a recipe, you should practice";
+			mes "it over and over again to hone";
+			mes "your skills. Then, you'll find";
+			mes "yourself improving at cooking.";
+			next;
+			mes "[Madeleine Chu]";
+			mes "Now, Sir Charles will only";
+			mes "teach students that are truly";
+			mes "committed to cooking. You";
+			mes "might want to show your";
+			mes "dedication with the proper";
+			mes "attire... like a Chef Hat.";
+			next;
+			mes "[Madeleine Chu]";
+			mes "But yes, Sir Charles";
+			mes "has very little patience for";
+			mes "beginners, meaning that";
+			mes "you'll have to be patient";
+			mes "with his teaching methods...";
+			close;
+		}
+	}
+	else if (cooking > 0 && cooking < 7) {
+		mes "[Madeleine Chu]";
+		mes "Hello, is there any";
+		mes "way I can help you today?";
+		mes "Oh, if you're studying cooking";
+		mes "under Sir Charles, I can remind";
+		mes "you of the ingredients you need";
+		mes "if you've forgotten them~";
+		next;
+		switch(select("Fried Grasshopper Legs:Grape Juice Herbal Tea:Honey Grape Juice:Frog Egg and Squid Ink Soup:Steamed Crab Nippers:Fried Monkey Tails")) {
+		case 1:
+			mes "[Madeleine Chu]";
+			mes "Oh! You'll need";
+			mes "^4D4DFF5 Grasshopper Legs^000000,";
+			mes "^4D4DFF1 Cooking Oil^000000, and";
+			mes "^4D4DFF1 Old Frying Pan^000000 to make";
+			mes "fried Grasshopper Legs.";
+			break;
+
+		case 2:
+			mes "[Madeleine Chu]";
+			mes "Oh! You'll need";
+			mes "^4D4DFF3 Grapes^000000, and";
+			mes "^4D4DFF2 Red Potions^000000 for";
+			mes "Grape Juice Herbal Tea.";
+			break;
+
+		case 3:
+			mes "[Madeleine Chu]";
+			mes "Oh! You'll need";
+			mes "^4D4DFF1 Honey^000000,";
+			mes "^4D4DFF2 Grapes^000000, and";
+			mes "^4D4DFF1 Red Potion^000000.";
+			break;
+
+		case 4:
+			mes "[Madeleine Chu]";
+			mes "Oh! You'll need";
+			mes "^4D4DFF1 Bag of Grain^000000,";
+			mes "^4D4DFF10 Spawns^000000, and";
+			mes "^4D4DFF1 Squid Ink^000000 for Frog";
+			mes "Egg and Squid Ink soup.";
+			break;
+
+		case 5:
+			mes "[Madeleine Chu]";
+			mes "Oh! You'll need";
+			mes "^4D4DFF10 Green Herbs^000000,";
+			mes "^4D4DFF10 Nippers^000000, and";
+			mes "^4D4DFF1 Yellow Potion^000000 for";
+			mes "Steamed Crab Nippers.";
+			break;
+
+		case 6:
+			mes "[Madeleine Chu]";
+			mes "Oh! You'll need";
+			mes "^4D4DFF1 Frying Pan^000000,";
+			mes "^4D4DFF5 Yoyo Tails^000000, and";
+			mes "^4D4DFF1 Cooking Oil^000000 for";
+			mes "Fried Monkey Tails.";
+			break;
+		}
 		next;
-		mes "[Chef's Apprentice]";
-		mes "Come back later if you";
-		mes "need anything else!";
+		mes "[Madeleine Chu]";
+		mes "I know that Sir Charles";
+		mes "is stubborn and won't tell";
+		mes "you the ingredients again";
+		mes "if you forget. Anyway, I hope";
+		mes "you collect them and complete";
+		mes "the recipe as soon as you can~";
 		close;
 	}
-
-	if(cooking == 7){
-		mes "Welcome back. What";
-		mes "would you like to do?";
+	else if (cooking == 7) {
+		mes "[Madeleine Chu]";
+		mes "Sir Charles taught you";
+		mes "a recipe? That's great!";
+		mes "I hope you remember that the";
+		mes "quality of your dishes mostly";
+		mes "relies on your skills, so always remember to keep practicing.";
 		next;
-		menu "Buy Supplies",-, "Just visiting",L_Leave3;
-
-				mes "[Chef's Apprentice]";
-				mes "What would you like?";
+		mes "[Madeleine Chu]";
+		mes "Ah, you know what might";
+		mes "help you improve your";
+		mes "culinary skills? Why don't";
+		mes "you borrow this cookbook";
+		mes "and try some of its recipes?";
+		next;
+		mes "[Madeleine Chu]";
+		mes "Before you cook, make sure";
+		mes "that you have enough of the";
+		mes "ingredients. Oh, and keep the";
+		mes "cookbook nearby while you are";
+		mes "cooking. You'll probably need";
+		mes "to refer to it pretty often...";
+		next;
+		mes "[Madeleine Chu]";
+		mes "You might fail to make";
+		mes "edible food during your";
+		mes "first attempts, but you'll";
+		mes "improve as you practice. ";
+		mes "Please take this cookbook";
+		mes "with the basic Level 1 recipes.";
+		set cooking,8;
+		getitem 7472,1; //Cookbook01
+		next;
+		mes "[Madeleine Chu]";
+		mes "Once you learn all the recipes,";
+		mes "feel free to come back to me for more, okay? Also, you'll need";
+		mes "these cooking kits to practice.";
+		mes "You can have these for free, and you can buy more from me later~";
+		getitem 12125,10; //Outdoor_Cooking_Kits
+		close;
+	}
+	else if (cooking == 8) {
+		mes "[Madeleine Chu]";
+		mes "So how has your cooking";
+		mes "been coming along? You'll";
+		mes "need to practice to develop";
+		mes "your culinary skills. Now,";
+		mes "can I help you with anything?";
+		next;
+		switch(select("I need some Cooking Kits.:Will you try the food I cooked?:How does the food I cooked look?")) {
+		case 1:
+			mes "[Madeleine Chu]";
+			mes "Sure, which kind";
+			mes "of Cooking Kits";
+			mes "did you need?";
+			next;
+			switch(Select("Outdoor Cooking Kit - 500z:Home Cooking Kit - 1,000z:Quit")) {
+			case 1:
+				callsub S_SellSets,12125;
+				close;
+			case 2:
+				mes "[Madeleine Chu]";
+				mes "Oh, I'm sorry, but you";
+				mes "don't have enough skills";
+				mes "to use a Home Cooking Kit.";
+				mes "Please practice some more";
+				mes "with the Outdoor Cooking";
+				mes "Kits first, alright?";
+				close;
+			case 3:
+				mes "[Madeleine Chu]";
+				mes "Please come back and";
+				mes "let me know if you need";
+				mes "to purchase any Cooking";
+				mes "Kits, alright? See you later~";
+				close;
+			}
+
+		case 2:
+			if (countitem(12041) > 0 && countitem(12046) > 0 && countitem(12061) > 0 && countitem(12056) > 0 && countitem(12051) > 0 && countitem(12066) > 0) {
+				mes "[Madeleine Chu]";
+				mes "Oh, you've made a sample";
+				mes "of every recipe detailed in";
+				mes "that basic cookbook, did you?";
+				mes "That must have been very good training for your culinary skills.";
+				next;
+				mes "[Madeleine Chu]";
+				mes "I'd love to taste your";
+				mes "food and give my opinion,";
+				mes "but do you mind if I ask";
+				mes "you a favor first? I have";
+				mes "a friend in Payon who used";
+				mes "to study cooking in Prontera.";
+				next;
+				mes "[Madeleine Chu]";
+				mes "However, he became frustrated";
+				mes "with the culinary classes and";
+				mes "moved back to Prontera. Would";
+				mes "you mind asking him to taste";
+				mes "them? Here, I'll wrap your";
+				mes "food in this handy cloth...";
 				next;
-				menu "Outdoor Cooking Set - 500z each",-, "Home Cooking Set - 1,000z",L_HomeCooking, "Never Mind",L_Leave3;
-
-				set @price, 500;
-				set @tool, 12125;
-				goto L_Cooking_Tools4;
-
-			L_HomeCooking:
-				set @price, 1000;
-				set @tool, 12126;
-
-		L_Cooking_Tools4:
-			mes "[Chef's Apprentice]";
-			mes " How many?";
-			input @amount;
-			if(@amount < 1) goto ER_Invalid;
-			if(@amount > 100) goto ER_TooMuch;
-			if(@amount*@price > Zeny) goto ER_Zeny;
-			set Zeny, Zeny-(@amount*@price);
-			getitem @tool, @amount;
-
-			next;
-			mes "[Chef's Apprentice]";
-			mes "Enjoy!";
-			close;		
-
-		L_Leave3:
-			mes "[Chef's Apprentice]";
-			mes "Come back to vist anytime!";
-			mes "Have a good day.";
+				delitem 12041,1; //Str_Dish01
+				delitem 12046,1; //Int_Dish01
+				delitem 12061,1; //Dex_Dish01
+				delitem 12056,1; //Agi_Dish01
+				delitem 12051,1; //Vit_Dish01
+				delitem 12066,1; //Luk_Dish01
+				set cooking,9;
+				getitem 12111,1; //Food_Package
+				mes "[Madeleine Chu]";
+				mes "There you go, it's ready";
+				mes "to be delivered. Now, make";
+				mes "sure not to open this before";
+				mes "giving it to my old friend,";
+				mes "Chulsoo. You can find him";
+				mes "somewhere around Payon...";
+				next;
+				mes "[Madeleine Chu]";
+				mes "You should be able to";
+				mes "find Chulsoo around the";
+				mes "water mill or the pub in";
+				mes "Payon. Oh, and don't";
+				mes "forget to tell him that";
+				mes "I sent you, okay? Thanks~";
+				close;
+			}
+			mes "[Madeleine Chu]";
+			mes "Hmm... I think it'd";
+			mes "be better if you tried";
+			mes "to make every recipe in";
+			mes "that basic cookbook I gave";
+			mes "you first. That way, I can more";
+			mes "accurately judge your skills.";
+			next;
+			mes "[Madeleine Chu]";
+			mes "It's not bad to focus";
+			mes "on just one recipe, but";
+			mes "as a beginner, you need";
+			mes "to cover all of the basics.";
+			mes "Please read the cookbook that I gave you very carefully, okay?";
 			close;
-	}			
-			
-	mes "Hi there. What can I";
-	mes "do for you?";
-	next;
-	menu "Just looking around",-, "I want to learn to cook",ap_2;
 
-		mes "[Chef's Apprentice]";
-		mes "Feel free to look around";
-		mes "as much as you like.";
-		mes "Just don't disturb my";
-		mes "teacher.";
-		close;
-
-	ap_2:
-		if(baseLevel < 50){
-			mes "[Chef's Apprentice]";
-			mes "You should train a little";
-			mes "more before trying something";
-			mes "as hard as cooking";
+		case 3:
+			if (countitem(12041) > 0 || countitem(12046) > 0 || countitem(12061) > 0 || countitem(12056) > 0 || countitem(12051) > 0 || countitem(12066) > 0) {
+				mes "[Madeleine Chu]";
+				mes "Oh, I see that you've";
+				mes "tried some recipes in that";
+				mes "basic cookbook that I gave";
+				mes "you. Everything you made looks";
+				mes "delicious. All that's left now";
+				mes "is for someone to taste it...";
+				close;
+			}
+			mes "[Madeleine Chu]";
+			mes "Well... I don't know...";
+			mes "I think you really should try";
+			mes "to make every recipe listed";
+			mes "in that basic cookbook that";
+			mes "I gave to you first. Then, you";
+			mes "can present your dishes~";
 			close;
 		}
-
-		set cooking, 1;
-		mes "[Chef's Apprentice]";
-	L_Remind:
-		mes "So you want to learn to";
-		mes "cook huh? Well, if you";
-		mes "think you can handle it,";
-		mes "just talk to my teacher.";
+	}
+	else if (cooking == 9) {
+		if (countitem(12111) > 0) {
+			mes "[Madeleine Chu]";
+			mes "Please find my friend";
+			mes "Chulsoo in Payon and";
+			mes "give him the Bundle of";
+			mes "Food so that he can taste";
+			mes "the dishes you've made.";
+			close;
+		}
+		else {
+			mes "[Madeleine Chu]";
+			mes "Ah, hello~ oh, will you give me a second?";
+			mes "Right now, I am frying something so, I need to focus on this work for a while.";
+			mes "Hahahaha.";
+			next;
+			mes "[Madeleine Chu]";
+			mes "Oh, so have you met";
+			mes "my friend Chulsoo?";
+			mes "You brought him the";
+			mes "Bundle of Food, right?";
+			mes "I'd be disappointed if";
+			mes "you lost it or sold it...";
+			next;
+			if (select("I did!:I lost the Bundle of Food!") == 1) {
+				mes "[Madeleine Chu]";
+				mes "Hahaha, I suppose you";
+				mes "did. But even if you didn't";
+				mes "yet, make sure that you do";
+				mes "it soon, alright? See you~";
+				close;
+			}
+			if (countitem(7472) > 0) {
+				mes "[Madeleine Chu]";
+				mes "You lost it? Oh, that's";
+				mes "not good. How can you ";
+				mes "disrespect the culinary";
+				mes "arts in that way? I'm so";
+				mes "very ashamed of you...";
+				next;
+				delitem 7474,1; //Cookbook01
+				set cooking,0;
+				mes "[Madeleine Chu]";
+				mes "First of all, I'd like";
+				mes "you to return my cookbook.";
+				mes "I want you to reflect on what";
+				mes "you've done, and then learn";
+				mes "cooking skills from Sir Charles, starting from the very beginning.";
+				close;
+			}
+			mes "[Madeleine Chu]";
+			mes "Oh, you must be joking~";
+			mes "I'm sure you must have";
+			mes "hidden it somewhere.";
+			mes "Anyway, please deliver that";
+			mes "Bundle of Food to Chulsoo.";
+			close;
+		}
+	}
+	else if (cooking == 10) {
+		mes "[Madeleine Chu]";
+		mes "I just received a";
+		mes "message from Chulsoo";
+		mes "thanking me for having";
+		mes "you send him that food.";
+		mes "I'm guessing that he";
+		mes "really liked it a lot.";
 		next;
-		mes "[Chef's Apprentice]";
-		mes "Just don't forget your";
-		mes "^000080Chef's Hat^000000 or Sharle";
-		mes "will yell at you.";
-		close;
-
-	ER_Zeny:
+		mes "[Madeleine Chu]";
+		mes "I think you're ready to use";
+		mes "higher grade cooking tools now.";
+		mes "But never forget that your own";
+		mes "skills are the most important";
+		mes "factor in quality cuisine.";
 		next;
-		mes "[Chef's Apprentice]";
-		mes "You don't have enough zeny.";
-		close;
-
-	ER_TooMuch:
+		set cooking,11;
+		getitem 12126,10; //Indoor_Cooking_Kits
+		mes "[Madeleine Chu]";
+		mes "Please try these Indoor";
+		mes "Cooking Kits to help you";
+		mes "create more delicate dishes.";
+		mes "When you run out, feel free to";
+		mes "purchase more from me, okay?";
 		next;
-		mes "[Chef's Apprentice]";
-		mes "You can't by that much at a time!.";
-		mes "You don't have to buy it all at once.";
+		mes "[Madeleine Chu]";
+		mes "Also, if you want to";
+		mes "learn some new recipes,";
+		mes "why don't you talk to Sir";
+		mes "Charles again? Okay then,";
+		mes "good luck, and I'll see you later~ ";
 		close;
-	ER_Invalid:
+	}
+	else if (cooking == 11) {
+		mes "[Madeleine Chu]";
+		mes "How are you? I hope";
+		mes "that you've been honing";
+		mes "your cooking skills since";
+		mes "the last time we've met.";
+		mes "Now, can I help you with";
+		mes "anything in particular?";
 		next;
-		mes "[Chef's Apprentice]";
-		mes "You can't buy negative amounts of cooking";
-		mes "equipment. Please buy a valid amount.";
-		close;
-}
+		switch(select("I need some Cooking Kits.:How is Sir Charles?:Um, who's that kid?")) {
+		case 1:
+			mes "[Madeleine Chu]";
+			mes "Sure, which kind";
+			mes "of Cooking Kits";
+			mes "did you need?";
+			next;
+			switch(select("Outdoor Cooking Kit - 500z:Home Cooking Kit - 1,000z:Show me a different kit.:Quit")) {
+			case 1:
+				callsub S_SellSets,12125;
+				close;
 
+			case 2:
+				callsub S_SellSets,12126;
+				close;
 
-payon,209,127,4	script	Cooking Friend	88,{
-	mes "[Cooking Friend]";
-	if(cooking == 5){
-		if(countitem(7432)) {
-			delitem 7432, 1;//Items: Leather Pouch,
-			mes "I see my friend sent you";
-			mes "to give me something.";
-			set cooking, 6;
-			emotion e_thx;
-		} else {
-			mes "What? My friend sent you";
-			mes "just to say Hello?";
-			emotion e_hmm;
-		}
-		mes "Thank you for your";
-		mes "trouble. Tell him I said,";
-		mes "Hello.";
-		close;
+			case 3:
+				mes "[Madeleine Chu]";
+				mes "Well, I only have two";
+				mes "types of cooking kits,";
+				mes "although there is a superior";
+				mes "Professional Cooking Kit that";
+				mes "real experts, like Sir Charles,";
+				mes "use. Amazing, isn't it?";
+				next;
+				mes "[Madeleine Chu]";
+				mes "You're still a beginner, so";
+				mes "my kits will serve you well. ";
+				mes "You know, there's a rumor about a cooking kit that can perfectly";
+				mes "make any recipe, so long as all of the ingredients are provided.";
+				next;
+				mes "[Madeleine Chu]";
+				mes "Of course, it's only";
+				mes "a rumor, probably just";
+				mes "the result of someone's";
+				mes "weird imagination. I still";
+				mes "believe skill is the most";
+				mes "important ingredient~";
+				close;
+
+			case 4:
+				mes "[Madeleine Chu]";
+				mes "Please come back and";
+				mes "let me know if you need";
+				mes "to purchase any Cooking";
+				mes "Kits, alright? See you later~";
+				close;
+			}
+
+		case 2:
+			mes "[Madeleine Chu]";
+			mes "Hm? Sir Charles is";
+			mes "fine, but lately he's been";
+			mes "getting a little upset at";
+			mes "even small things. Still,";
+			mes "I guess it's understandable.";
+			next;
+			set .@talk_j,rand(1,3);
+			if (.@talk_j == 1) {
+				mes "[Madeleine Chu]";
+				mes "You know, when I first";
+				mes "met him, I assumed he was";
+				mes "only good at cooking sweets";
+				mes "like chocolates and caramels.";
+				mes "However, he is highly skilled";
+				mes "at cooking almost everything!";
+				next;
+				mes "[Madeleine Chu]";
+				mes "I suppose he's been focusing";
+				mes "on foods other than desserts";
+				mes "ever since our king disappeared. I wonder if King Tristram III's";
+				mes "disappearance is related to Sir";
+				mes "Charles's change in mood?";
+				close;
+			}
+			else if (.@talk_j == 2) {
+				mes "[Madeleine Chu]";
+				mes "I mean, Sir Charles seems";
+				mes "to be the type that has trouble";
+				mes "opening up to other people.";
+				mes "That may explain why he's much";
+				mes "nicer to women than to men.";
+				mes "Doesn't that make sense?";
+				close;
+			}
+			mes "[Madeleine Chu]";
+			mes "Maybe it's because he's";
+			mes "been experimenting with";
+			mes "a new recipe lately. I think he";
+			mes "mentioned something about";
+			mes "wanting to treat some woman";
+			mes "to the finest food ever made.";
+			next;
+			mes "[Madeleine Chu]";
+			mes "I've never seen Sir Charles";
+			mes "so excited before. That woman";
+			mes "must be very lucky: she has the";
+			mes "chance to eat his cooking every";
+			mes "day if she wanted! I'm almost";
+			mes "jealous of her, you know that?";
+			close;
+
+		case 3:
+			mes "[Madeleine Chu]";
+			mes "Oh, you mean the";
+			mes "child with the cat?";
+			mes "I'm not sure, but I think";
+			mes "I overheard that she might";
+			mes "be the younger sister of";
+			mes "Madam Wickebine.";
+			next;
+			mes "[Madeleine Chu]";
+			mes "I wonder why Sir Charles";
+			mes "gives Madam Wickebine such";
+			mes "special treatment. Whenever";
+			mes "I ask him about it, he gets so";
+			mes "upset and doesn't say anything!";
+			next;
+			cutin "orleans_6",0;
+			mes "[Charles Orleans]";
+			mes "Mince alors!";
+			mes "I just felt a chill down my";
+			mes "spine... Could someone";
+			mes "be talking about me?";
+			close;
+			cutin "orleans_6",255;
+		}
 	}
-	mes "Hello, how are you?";
+	mes "[Madeleine Chu]";
+	mes "Error occurred.";
 	close;
+
+S_SellSets:
+	set .@item_cost,getiteminfo(getarg(0),0);
+	set .@item_weight,getiteminfo(getarg(0),6);
+	mes "[Madeleine Chu]";
+	mes "How many Outdoor";
+	mes "Cooking Kits would";
+	mes "you like to buy? If you";
+	mes "want to cancel, please";
+	mes "enter the number 0.";
+	next;
+	while(1) {
+		input .@sell;
+		if (.@sell == 0) {
+			mes "[Madeleine Chu]";
+			mes "You've changed your";
+			mes "mind? Well, if you need";
+			mes "to buy "+getitemname(getarg(0));
+			mes "Kits later, just come back";
+			mes "to me at anytime, alright?";
+			close;
+		}
+		else if (.@sell > 100) {
+			mes "[Madeleine Chu]";
+			mes "Oh, I'm sorry, but";
+			mes "I don't sell more than";
+			mes "100 "+getitemname(getarg(0));
+			mes "at a time, just to be safe.";
+			next;
+		}
+		else break;
+	}
+	set .@total_cost,.@sell * .@item_cost;
+	set .@total_weight,.@sell * .@item_weight;
+	if (zeny < .@total_cost) {
+		mes "[Madeleine Chu]";
+		mes "Oh, I'm sorry, but you";
+		mes "can't afford this many";
+		mes getitemname(getarg(0));
+		mes "Please check your zeny";
+		mes "before purchasing my kits~";
+		close;
+	}
+	if (!checkweight(getarg(0),.@sell)) {
+		mes "[Madeleine Chu]";
+		mes "I'm sorry, but you don't";
+		mes "have enough room in your";
+		mes "Inventory for this many";
+		mes getitemname(getarg(0))+"...";
+		close;
+	}
+	set zeny,zeny-.@total_cost;
+	getitem getarg(0),.@sell;
+	mes "[Madeleine Chu]";
+	mes "Here you are~";
+	mes "Best of luck with";
+	mes "your culinary training!";
+	return;
 }
 
+prt_castle,45,28,3	script	Child with Cat#cook	877,{
+	set .@nyu,rand(1,2);
+	if (.@nyu == 1) {
+		cutin "nyuang_1",2;
+		emotion e_what;
+		mes "[Child with Cat]";
+		mes "...Nya?";
+		mes "(...Meow?)";
+		close2;
+		cutin "nyuang_1",255;
+		end;
+	}
+	cutin "nyuang_3",2;
+	emotion e_ho;
+	mes "[Child with Cat]";
+	mes "Nyahahahaha,";
+	mes "nyahahahaha~";
+	mes "(Meow~, meow~)";
+	close2;
+	cutin "nyuang_1",255;
+	end;
+
+OnDelight:
+	emotion e_ho;
+	end;
+
+OnWhat:
+	emotion e_what;
+	end;
+
+OnPif:
+	emotion e_pif;
+	end;
+
+OnOkay:
+	emotion e_ok;
+	end;
+
+OnHeh:
+	emotion e_heh;
+	end;
+
+OnDot:
+	emotion e_dots;
+	end;
+
+OnAngry:
+	emotion e_an;
+	end;
 
-prt_castle,45,35,4	script	Sharle	886,{
-	mes "[Sharle]";
-	if(cooking && getequipid(1) != 5026) goto L_No_Uniform; //Item: Chef's Hat
-	if(cooking == 7)goto L_Cooking_7;
-	if(first_cooking)goto L_First_Cooking;
+}
 
-	if(cooking == 1){
-		mes "So you want to learn how to cook?";
-		next;
-		menu "Yes",M_GetQuest, "No",M_End;
-	}
+prt_castle,44,30,5	script	Wickebine#cook	725,{
+	disablenpc "Wickebine#cook";
+	end;
 
-	mes "What a great day to bake some";
-	mes "wonderfull treats!";
-	close;
+OnInit:
+	disablenpc "Wickebine#cook";
+	end;
 
-	M_GetQuest:
-		mes "[Sharle]";
-		mes "Ok. Let's try to cook something together.";
-		set first_cooking,rand(1,6);
-
-	L_First_Cooking:
-		mes "I'm lack of special ingredients,";
-		mes "bring me:";
-		if(first_cooking == 1){
-			set @item1, 577;
-			set @item1a, 1;
-			set @item2, 908;
-			set @item2a, 10;
-			set @item3, 1024;
-			set @item3a, 1;
-			set @food1, 12056;
-
-			mes "1 Grain, 10 Spawn, and";
-			mes "1 Squid Ink.";
-		}
-
-		if(first_cooking == 2){
-			set @item1, 518;
-			set @item1a, 1;
-			set @item2, 514;
-			set @item2a, 2;
-			set @item3, 501;
-			set @item3a, 1;
-			set @food1, 12061;
-
-			mes "1 Honey, 2 Grapes, and";
-			mes "1 Red Potion.";
-		}
-
-		if(first_cooking == 3){
-			set @item1, 514;
-			set @item1a, 3;
-			set @item2, 501;
-			set @item2a, 2;
-			set @item3, 0;
-			set @item3a, 0;
-			set @food1, 12046;
-
-			mes "3 Grapes and 2 Red Potions.";
-		}
-
-		if(first_cooking == 4){
-			set @item1, 942;
-			set @item1a, 5;
-			set @item2, 7031;
-			set @item2a, 1;
-			set @item3, 7457;
-			set @item3a, 1;
-			set @food1, 12066;
-
-			mes "5 Yoyo Tails, 1 Old Frying Pan, and";
-			mes "1 Cooking Oil.";
-		}
-
-		if(first_cooking == 5){
-			set @item1, 940;
-			set @item1a, 5;
-			set @item2, 7031;
-			set @item2a, 1;
-			set @item3, 7457;
-			set @item3a, 1;
-			set @food1, 12041;
-
-			mes "5 Grasshopper Legs, 1 Old Frying Pan, and";
-			mes "1 Cooking Oil.";
-		}
-
-		if(first_cooking == 6){
-			set @item1, 960;
-			set @item1a, 10;
-			set @item2, 511;
-			set @item2a, 10;
-			set @item3, 503;
-			set @item3a, 1;
-			set @food1, 12051;
-
-			mes "10 Nippers, 10 Green Herbs, and";
-			mes "1 Yellow Potion.";
-		}
-
-		if(countitem(@item1) < @item1a || countitem(@item2) < @item2a || countitem(@item3) < @item3a) close;
-
-		delitem @item1, @item1a;
-		delitem @item2, @item2a;
-		delitem @item3, @item3a;
-		next;
-		set cooking, 2;
-
-		mes "[Sharle]";
-		mes "Great Job!";
-		mes "You can now purchase";
-		mes "Outdoor Cooking Sets.";
-		getitem @food1, 1;
-		set first_cooking, 0;
-		close;
+OnEnable:
+	enablenpc "Wickebine#cook";
+	end;
 
-	L_Cooking_7:
-		mes "Would you like to check";
-		mes "out my ^800000Cookbooks^000000?";
-		next;
-		menu "Yes",-, "No", M_End2, "Return Book", M_ReturnBook;
+OnDisable:
+	disablenpc "Wickebine#cook";
+	end;
 
-		mes "[Sharle]";
-		if(cook_book){
-			mes "You'll have to give me back the";
-			mes "first book I loaned you if you";
-			mes "would like to check out a new book.";
-			mes "Would you like to trade books?";
-			next;
-			menu "Yes",-, "No",M_End2;
+OnDelight:
+	emotion e_ho;
+	end;
 
-			if(countitem(cook_book)==0){
-				mes "What? You don't have the book I loaned you?";
-				mes "It was a ^800000"+getitemname(cook_book)+"^000000.";
-				emotion e_sry;
-				close;
-			} 
-		}
-		mes "[Sharle]";
-		mes "Which book would you like?";
-		next;
-		menu "^800000Lv 1 Cookbook",b_1, "Lv 2 Cookbook",b_2, "Lv 3 Cookbook",b_3, "Lv 4 Cookbook",b_4, "Lv 5 Cookbook",b_5, "^000000Leave",M_End2;
-
-	b_1:
-		mes "[Sharle]";
-		mes "You will need:";
-		mes "10 Pumpkins";
-		next;
-		if(countitem(535) < 10) goto L_No_Items;//Items: Pumpkin,
-		delitem 535, 10;//Items: Pumpkin,
-		set @checkout, 7472;
-		mes "And I see you have";
-		mes "what you need!";
-		next;
-		goto b_trade;
-
-	b_2:
-		mes "[Sharle]";
-		mes "You will need:";
-		mes "5 well-baked cookies";
-		next;
-		if(countitem(538) < 5) goto L_No_Items;//Items: Well-baked Cookie,
-		delitem 538, 5;//Items: Well-baked Cookie,
-		set @checkout, 7473;
-		mes "And I see you have";
-		mes "what you need!";
-		next;
-		goto b_trade;
-
-	b_3:
-		mes "[Sharle]";
-		mes "You will need:";
-		mes "5 Sushi";
-		next;
-		if(countitem(551) < 5) goto L_No_Items;//Items: Sushi,
-		delitem 551, 5;//Items: Sushi,
-		set @checkout, 7474;
-		mes "And I see you have";
-		mes "what you need!";
-		next;
-		goto b_trade;
-
-	b_4:
-		mes "[Sharle]";
-		mes "You will need:";
-		mes "5 Baos";
-		next;
-		if(countitem(553) < 5) goto L_No_Items;//Items: Bao,
-		delitem 553, 5;//Items: Bao,
-		set @checkout, 7475;
-		mes "And I see you have";
-		mes "what you need!";
-		next;
-		goto b_trade;
-
-	b_5:
-		mes "[Sharle]";
-		mes "You will need:";
-		mes "10 shoots";
-		next;
-		if(countitem(711) < 10) goto L_No_Items;//Items: Shoot,
-		delitem 711, 10;//Items: Shoot,
-		set @checkout, 7476;
-		mes "And I see you have";
-		mes "what you need!";
-		next;
-		goto b_trade;
-
-	b_trade:
-		mes "[Sharle]";
-		mes "If you find you need a new book,";
-		mes "you're welcome to come back and";
-		mes "trade.";
-
-		if(cook_book){
-			if(countitem(cook_book)==0){
-				mes "What? You don't have the book I loaned you?";
-				mes "It was a ^800000"+getitemname(cook_book)+"^000000.";
-				emotion e_sry;
-				close;
-			} 
-			delitem cook_book,1;
-			mes "Have fun, and good luck!";
-		} else {
-			mes "Good luck! I hope you learn a lot!";
-		}
-		getitem @checkout,1;
-		set cook_book, @checkout;
-		close;
+OnWhat:
+	emotion e_what;
+	end;
 
-	M_End:
-		mes "[Sharle]";
-		mes "That's fine with me, come back";
-		mes "when you want to cook.";
-		close;
+}
 
-	M_End2:
-		mes "[Sharle]";
-		mes "Well, I'm here whenever you'd like";
-		mes "to learn. Just make sure you're";
-		mes "ready.";
+payon,209,127,3	script	Servant	88,{
+	if (!checkweight(555,1)) {
+		mes "[Chulsoo]";
+		mes "Hold on, you're carrying";
+		mes "too many items with you.";
+		mes "Why don't you put some of";
+		mes "your stuff in Kafra Storage";
+		mes "before coming back to me?";
+		close2;
+		//EnableItemMove;
+		end;
+	}
+	if (cooking == 10) {
+		mes "[Chulsoo]";
+		mes "When you get the chance,";
+		mes "please give Madeline my";
+		mes "thanks. I'll visit Prontera";
+		mes "soon to see her, as well as";
+		mes "make amends with Sir Charles.";
 		close;
+	}
+	else if (cooking == 9) {
+		mes "[Chulsoo]";
+		mes "How would you like";
+		mes "to buy a Rice Cake?";
+		mes "It's only 200 zeny, but";
+		mes "it's oh-so-delicious~";
+		next;
+		switch(select("Sure, I'll buy one!:No, thanks.:Actually, Madeleine sent me...")) {
+		case 1:
+			if (zeny < 200) {
+				mes "[Chulsoo]";
+				mes "Oh, I'm sorry, but";
+				mes "you don't have enough";
+				mes "money to buy a Rice Cake...";
+				mes "Still, it should be easy to";
+				mes "raise 200 zeny, right?";
+				close;
+			}
+			set zeny,zeny-200;
+			getitem 555,1; //Rice_Cake
+			mes "[Chulsoo]";
+			mes "Thank you very";
+			mes "much! I hope you";
+			mes "enjoy your Rice Cake~";
+			close;
 
-	M_ReturnBook:
-		if(cook_book == 0){
-			mes "[Sharle]";
-			mes "You haven't borrowed any books.";
-			emotion e_hmm;
+		case 2:
+			mes "[Chulsoo]";
+			mes "Are you sure about";
+			mes "that? You won't get";
+			mes "the chance to have a";
+			mes "Rice Cake this delicious";
+			mes "anywhere else. Oh well,";
+			mes "that means more for me~";
 			close;
-		}
 
-		if(countitem(cook_book)==0){
-			mes "What? You don't have the book I loaned you?";
-			mes "It was a ^800000"+getitemname(cook_book)+"^000000.";
-			emotion e_sry;
+		case 3:
+			if (countitem(12111) > 0) {
+				mes "["+strcharinfo(0)+"]";
+				mes "Actually, Madeleine";
+				mes "sent me here to find";
+				mes "you. She said that you'd";
+				mes "be willing to taste test";
+				mes "the food in this bundle...";
+				next;
+				mes "[Chulsoo]";
+				mes "Madeleine? You mean";
+				mes "Madeleine Chu? Oh, I haven't";
+				mes "heard from her in such a long";
+				mes "time! Great, let me see the";
+				mes "bundle that she sent me. Ah, everything here looks appetizing!";
+				next;
+				mes "[Chulsoo]";
+				mes "Oh, wait. She even";
+				mes "included a message";
+				mes "inside this bundle.";
+				mes "Let's see, here...";
+				next;
+				mes "^333333Dear Chulsoo,";
+				mes " It's been a long time.";
+				mes "I know you left Prontera on";
+				mes "bad terms with Sir Charles,";
+				mes "but please understand that";
+				mes "he was only trying his best to";
+				mes "help improve your cooking.^000000";
+				next;
+				mes "^333333 Sir Charles always wished";
+				mes "that you'd expand your repetoire, and that you'd make these kinds";
+				mes "of foods someday. The person";
+				mes "that delivered this food also";
+				mes "cooked it. Please try it...^000000";
+				next;
+				mes "^333333 Hopefully, you'll be";
+				mes "able to understand Sir ";
+				mes "Charles a little better ";
+				mes "after tasting this food.";
+				mes " ";
+				mes " Your friend, Madeleine^000000";
+				next;
+				mes "[Chulsoo]";
+				mes "Now I get it...";
+				mes "These are the recipes";
+				mes "that Sir Charles tried";
+				mes "to teach me. But I refused";
+				mes "to learn them because I had";
+				mes "thought they were too gross...";
+				next;
+				mes "[Chulsoo]";
+				mes "......";
+				mes ".........";
+				mes "It's so delicious... Are";
+				mes "you sure you're just a";
+				mes "beginner? No... This must";
+				mes "be what I've been missing...";
+				next;
+				mes "[Chulsoo]";
+				mes "It's what my master";
+				mes "always tried to teach me,";
+				mes "but I was too impatient to";
+				mes "properly learn it. The greatest";
+				mes "ingredient of them all... ^D02090heart^000000. After all this time, I understand.";
+				next;
+				mes "[Chulsoo]";
+				mes "Thank you for bringing";
+				mes "this food to me. I will enjoy";
+				mes "it thoroughly, and reflect upon";
+				mes "what my old teacher was trying";
+				mes "to tell me. In return, please have one of my humble Rice Cakes.";
+				next;
+				delitem 12111,1; //Food_Package
+				set cooking,10;
+				getitem 555,1; //Rice_Cake
+				mes "[Chulsoo]";
+				mes "I better visit Prontera";
+				mes "again soon. It's been a long";
+				mes "time since I've seen Madeleine.";
+				mes "More importantly, I think that";
+				mes "I should apologize to Sir Charles. ";
+				close;
+			}
+			mes "["+strcharinfo(0)+"]";
+			mes "Actually, Madeleine";
+			mes "sent me here to find";
+			mes "you. She said that you'd";
+			mes "be willing to taste test";
+			mes "the food in this bundle...";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "Wait, wait...";
+			mes "I don't have it!";
+			mes "Where did I put";
+			mes "that Bundle of Food?";
 			close;
-		} 
-		delitem cook_book,1;
-		set cook_book, 0;
-		mes "[Sharle]";
-		mes "Returning the book already?";
-		mes "did you learn what you wanted";
-		mes "to know?";
-		emotion e_what;
+		}
+	}
+	else if (cooking == 8) {
+		mes "[Chulsoo]";
+		mes "Lately, it seems that";
+		mes "no one wants to buy my";
+		mes "Rice Cakes. It's been like";
+		mes "that ever since I left Prontera... ";
+		next;
+		mes "[Chulsoo]";
+		mes "You see, I used to study";
+		mes "in that city as one of Sir";
+		mes "Charles's apprentices. It";
+		mes "was only a few months, but";
+		mes "I was very excited to get the";
+		mes "chance to learn under him.";
+		next;
+		mes "[Chulsoo]";
+		mes "At least, I was excited";
+		mes "at first. Sir Charles really";
+		mes "frustrated me: he would";
+		mes "only teach me to make these";
+		mes "really gross sounding recipes! Like Grasshopper Legs and-- ugh!";
+		next;
+		mes "[Chulsoo]";
+		mes "He kept insisting that";
+		mes "I was forgetting the most";
+		mes "important ingredient, and that";
+		mes "it was possible to make things";
+		mes "like Fried Monkey Tails delicious. But I can't believe that nonsense!";
+		next;
+		mes "[Chulsoo]";
+		mes "In the end, I ran away.";
+		mes "For some reason, I feel";
+		mes "a little ashamed and regret";
+		mes "what I did. Still, I don't see";
+		mes "what Sir Charles meant...";
 		close;
-
-	L_No_Items:
-		mes "[Sharle]";
-		mes "So come back when";
-		mes "you have the items";
-		mes "that you need.";
+	}
+	else {
+		mes "[Chulsoo]";
+		mes "How would you like";
+		mes "to buy a Rice Cake?";
+		mes "It's only 200 zeny, but";
+		mes "it's oh-so-delicious~";
+		next;
+		if (select("Sure, I'll buy one!:No, thanks.") == 1) {
+			if (zeny < 200) {
+				mes "[Chulsoo]";
+				mes "Oh, I'm sorry, but";
+				mes "you don't have enough";
+				mes "money to buy a Rice Cake...";
+				mes "Still, it should be easy to";
+				mes "raise 200 zeny, right?";
+				close;
+			}
+			set zeny,zeny-200;
+			getitem 555,1; //Rice_Cake
+			mes "[Chulsoo]";
+			mes "Thank you very";
+			mes "much! I hope you";
+			mes "enjoy your Rice Cake~";
+			close;
+		}
+		mes "[Chulsoo]";
+		mes "Are you sure about";
+		mes "that? You won't get";
+		mes "the chance to have a";
+		mes "Rice Cake this delicious";
+		mes "anywhere else. Oh well,";
+		mes "that means more for me~";
 		close;
-
-	L_No_Uniform:
-		mes "How dare you disrespect me";
-		mes "by showing up out of uniform.";
-		mes "Come back when you have your";
-		mes "uniform on.";
-		emotion e_bzz;
-		close;	
-}
+	}
+}

+ 172 - 352
npc/quests/quests_rachel.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= L0ne_W0lf
 //===== Current Version: ===================================== 
-//= 1.0
+//= 1.1
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -28,12 +28,13 @@
 //= Sanctuary Quest:
 //= - Actually two quests in one. Donation and dungeon quest.
 //= - Requires 10000 donations before players can start the quest.
-//= - Variable in use: ra_tem_q (max 22) (unset at end)
+//= - Variable in use: ra_tem_q (max 23) (unset at end)
 //= - Variable in use: Once completed MISC_QUEST bit 8192 is set
 //= - Variable in use: ra_have_donated (0 no/1 yes)
 //= - Variable in use: $rachel_donate (max 10000)
 //===== Additional Comments: ================================= 
 //= 1.0 First version, needs testing. [L0ne_W0lf]
+//= 1.1 Some slight optimization. [L0ne_W0lf]
 //============================================================ 
 
 // Lost Child Quest (Prerequisite to High Priest quest)
@@ -1266,7 +1267,7 @@ rachel,263,32,3	script	Kid#ra_in01	931,{
 //End of Lost Child quest
 //============================================================ 
 
-//Bruspetti Quest (Continuation of Lighthalzen "Friendship" quest)
+//Bruspetti Quest (Perequisite: Lighthalzen "Friendship" quest)
 //============================================================ 
 ra_in01,235,194,5	script	Katinshuell	931,{
 	if (rach_vice > 21) {
@@ -3128,6 +3129,7 @@ ice_dun02,120,105,3	script	Man Stuck in Ice#cave	924,5,5,{
 		mes "any ideas on breaking";
 		mes "this cold prison of ice?";
 		next;
+		//Need proper check for Hammer_of_Wind and Gray_Necklace
 		mes "["+strcharinfo(0)+"]";
 		mes "Well, he made this";
 		mes "magic hammer which is";
@@ -3864,10 +3866,9 @@ OnTouch:
 			mes "Please don't do that!";
 			close;
 		}
-
-		warp "ra_temin",169,23;
-		end;
 	}
+	warp "ra_temin",169,23;
+	end;
 }
 
 ra_temple,116,174,3	script	Nemma#ra_temple	920,{
@@ -3955,85 +3956,15 @@ ra_temple,116,174,3	script	Nemma#ra_temple	920,{
 			switch(select("50,000z - 1 Lottery Ticket:100,000z - 2 Lottery Ticket:150,000z - 3 Lottery Ticket:Cancel")) {
 
 			case 1:
-				cutin "ra_nemma01",2;
-				mes "[Priestess Nemma]";
-				mes "So, " + strcharinfo(0) + "...";
-				mes "I just want to make sure:";
-				mes "you want to donate 50,000 ";
-				mes "zeny, and receive 1 Lottery ";
-				mes "Ticket. Is that correct?";
-				next;
-				if (select("No:Yes") == 1) goto L_DoNotDonate;
-				if (zeny >= 50000) {
-					set .@now_weight,MaxWeight-Weight;
-					if (.@now_weight < 10) {
-						goto L_OverWeight;
-					}
-					set $rachel_donate,$rachel_donate+1;
-					getitem 7570,1; //Temple_Lottery_Ticket
-					set zeny,zeny-50000;
-					set ra_have_donated,1;
-					if ($rachel_donate > 9999) goto L_ProgressReport1;
-					else goto L_ProgressReport2;
-				}
-				else {
-					set .@Donate$,"50,000";
-					goto L_NotEnoughZeny;
-				}
+				callsub S_Donate,50000,"50,000",1;
 				break;
 
 			case 2:
-				mes "[Priestess Nemma]";
-				mes "So, " + strcharinfo(0) + "...";
-				mes "I just want to make sure:";
-				mes "you want to donate 100,000 ";
-				mes "zeny, and receive 2 Lottery ";
-				mes "Ticket. Is that correct?";
-				next;
-				if (select("No:Yes") == 1) goto L_DoNotDonate;
-				if (zeny >= 100000) {
-					set .@now_weight,MaxWeight-Weight;
-					if (.@now_weight < 20) {
-						goto L_OverWeight;
-					}
-					set $rachel_donate,$rachel_donate+2;
-					getitem 7570,2; //Temple_Lottery_Ticket
-					set zeny,zeny-100000;
-					set ra_have_donated,1;
-					if ($rachel_donate > 9999) goto L_ProgressReport1;
-					else goto L_ProgressReport2;
-				}
-				else {
-					set .@Donate$,"100,000";
-					goto L_NotEnoughZeny;
-				}
+				callsub S_Donate,100000,"100,000",3;
 				break;
 
 			case 3:
-				mes "[Priestess Nemma]";
-				mes "So, " + strcharinfo(0) + "...";
-				mes "I just want to make sure:";
-				mes "you want to donate 150,000 ";
-				mes "zeny, and receive 3 Lottery ";
-				mes "Ticket. Is that correct?";
-				next;
-				if (select("No:Yes") == 1) goto L_DoNotDonate;
-				if (zeny >= 150000) {
-					set .@now_weight,MaxWeight-Weight;
-					if (.@now_weight < 30) {
-						goto L_OverWeight;
-					}
-					set $rachel_donate,$rachel_donate+3;
-					getitem 7570,3; //Temple_Lottery_Ticket
-					set zeny,zeny-150000;
-					set ra_have_donated,1;
-					if ($rachel_donate > 9999) goto L_ProgressReport1;
-					else goto L_ProgressReport2;
-				}
-				else {
-					set .@Donate$,"150,000";
-					goto L_NotEnoughZeny;
-				}
+				callsub S_Donate,150000,"150,000",3;
 				break;
 
 			case 4:
@@ -4077,82 +4008,15 @@ ra_temple,116,174,3	script	Nemma#ra_temple	920,{
 				switch(select("50,000z - 1 Lottery Ticket:100,000z - 2 Lottery Ticket:150,000z - 3 Lottery Ticket:Cancel")) {
 
 				case 1:
-					cutin "ra_nemma01",2;
-					mes "[Priestess Nemma]";
-					mes "So, " + strcharinfo(0) + "...";
-					mes "I just want to make sure:";
-					mes "you want to donate 50,000 ";
-					mes "zeny, and receive 1 Lottery ";
-					mes "Ticket. Is that correct?";
-					next;
-					if (select("No:Yes") == 1) goto L_DoNOtDonate;
-					if (zeny >= 50000) {
-						set .@now_weight,MaxWeight-Weight;
-						if (.@now_weight < 10) {
-							goto L_OverWeight;
-						}
-						set $rachel_donate,$rachel_donate+1;
-						getitem 7570,1; //Temple_Lottery_Ticket
-						set zeny,zeny-50000;
-						if ($rachel_donate > 9999) goto L_ProgressReport1;
-						else goto L_ProgressReport2;
-					}
-					else {
-						set .@Donate$,"50,000";
-						goto L_NotEnoughZeny;
-					}
+					callsub S_Donate,50000,"50,000",1;
 					break;
 
 				case 2:
-					mes "[Priestess Nemma]";
-					mes "So, " + strcharinfo(0) + "...";
-					mes "I just want to make sure:";
-					mes "you want to donate 100,000 ";
-					mes "zeny, and receive 2 Lottery ";
-					mes "Ticket. Is that correct?";
-					next;
-					if (select("No:Yes") == 1) goto L_DoNotDonate;
-					if (zeny >= 100000) {
-						set .@now_weight,MaxWeight-Weight;
-						if (.@now_weight < 20) {
-							goto L_OverWeight;
-						}
-						set $rachel_donate,$rachel_donate+2;
-						getitem 7570,2; //Temple_Lottery_Ticket
-						set zeny,zeny-100000;
-						if ($rachel_donate > 9999) goto L_ProgressReport1;
-						else goto L_ProgressReport2;
-					}
-					else {
-						set .@Donate$,"100,000";
-						goto L_NotEnoughZeny;
-					}
+					callsub S_Donate,100000,"100,000",3;
 					break;
 
 				case 3:
-					mes "[Priestess Nemma]";
-					mes "So, " + strcharinfo(0) + "...";
-					mes "I just want to make sure:";
-					mes "you want to donate 150,000 ";
-					mes "zeny, and receive 3 Lottery ";
-					mes "Ticket. Is that correct?";
-					next;
-					if (select("No:Yes") == 1) goto L_DoNotDonate;
-					if (zeny >= 150000) {
-						set .@now_weight,MaxWeight-Weight;
-						if (.@now_weight < 30) {
-							goto L_OverWeight;
-						}
-						set $rachel_donate,$rachel_donate+3;
-						getitem 7570,3; //Temple_Lottery_Ticket
-						set zeny,zeny-150000;
-						if ($rachel_donate > 9999) goto L_ProgressReport1;
-						else goto L_ProgressReport2;
-					}
-					else {
-						set .@Donate$,"150,000";
-						goto L_NotEnoughZeny;
-					}
+					callsub S_Donate,150000,"150,000",3;
 					break;
 
 				case 4:
@@ -4398,76 +4262,6 @@ ra_temple,116,174,3	script	Nemma#ra_temple	920,{
 
 	}
 
-L_DoNotDonate:
-	mes "[Priestess Nemma]";
-	mes "Oh, I see. Well, if you";
-	mes "don't have enough zeny with";
-	mes "you, then you can just come";
-	mes "back and donate later. Our";
-	mes "goddess Freya smiles on the";
-	mes "generous and rewards the patient!";
-	goto L_End;
-
-L_NotEnoughZeny:
-	mes "[Priestess Nemma]";
-	mes "I'm sorry, but you have";
-	mes "less than "+@Donate$+" zeny...";
-	mes "I know it's asking a lot,";
-	mes "but those are the rules that";
-	mes "I've been told to follow, so...";
-	mes "Well, maybe another time, yes?";
-	goto L_End;
-
-
-L_OverWeight:
-	cutin "ra_nemma02",2;
-	mes "[Priestess Nemma]";
-	mes "I can scarcely believe it...";
-	mes "You're carrying so much stuff,";
-	mes "you don't even have enough";
-	mes "room for a Lottery Ticket.";
-	mes "You'd better put some of";
-	mes "your things in Storage, yes?";
-	next;
-	cutin "ra_nemma01",2;
-	mes "[Priestess Nemma]";
-	mes "Don't worry, I'll still be";
-	mes "here after you make more";
-	mes "space available in your";
-	mes "Inventory. Hurry back, and";
-	mes "donate if you can, okay?";
-	goto L_End;
-
-L_ProgressReport1:
-	cutin "ra_nemma03",2;
-	mes "[Priestess Nemma]";
-	mes "There you are~";
-	mes "Thanks so much for";
-	mes "your donation! I'm sure";
-	mes "that Freya is smiling down";
-	mes "upon you, and will reward";
-	mes "you for your generosity~";
-	goto L_End;
-
-L_ProgressReport2:
-	set .@Remaining,10000-$rachel_donate;
-	cutin "ra_nemma03",2;
-	mes "[Priestess Nemma]";
-	mes "Thank you so much! We'll be";
-	mes "continuing to accept donations";
-	mes "until we reach our target. Once";
-	mes "we receive "+.@Remaining+" more donations";
-	mes "in increments of 50,000 zeny,";
-	mes "our fundraiser will finish.";
-	next;
-	mes "[Priestess Nemma]";
-	mes "If you're feeling so";
-	mes "inclined, come back later";
-	mes "and make another contribution.";
-	mes "Thanks again, and may Freya";
-	mes "always watch over you.";
-	goto L_End;
-
 L_End:
 	close2;
 	cutin "",255;
@@ -4477,6 +4271,91 @@ OnEmotion:
 	emotion e_omg;
 	end;
 
+S_Donate:
+	cutin "ra_nemma01",2;
+	mes "[Priestess Nemma]";
+	mes "So, " + strcharinfo(0) + "...";
+	mes "I just want to make sure:";
+	mes "you want to donate "+getarg(1);
+	mes "zeny, and receive 1 Lottery ";
+	mes "Ticket. Is that correct?";
+	next;
+	if (select("No:Yes") == 1) {
+		mes "[Priestess Nemma]";
+		mes "Oh, I see. Well, if you";
+		mes "don't have enough zeny with";
+		mes "you, then you can just come";
+		mes "back and donate later. Our";
+		mes "goddess Freya smiles on the";
+		mes "generous and rewards the patient!";
+		return;
+	}
+	if (zeny >= getarg(0)) {
+		if (!checkweight(7570,getarg(2))) {
+			cutin "ra_nemma02",2;
+			mes "[Priestess Nemma]";
+			mes "I can scarcely believe it...";
+			mes "You're carrying so much stuff,";
+			mes "you don't even have enough";
+			mes "room for a Lottery Ticket.";
+			mes "You'd better put some of";
+			mes "your things in Storage, yes?";
+			next;
+			cutin "ra_nemma01",2;
+			mes "[Priestess Nemma]";
+			mes "Don't worry, I'll still be";
+			mes "here after you make more";
+			mes "space available in your";
+			mes "Inventory. Hurry back, and";
+			mes "donate if you can, okay?";
+			return;
+		}
+		set $rachel_donate,$rachel_donate+getarg(2);
+		getitem 7570,getarg(2); //Temple_Lottery_Ticket
+		set zeny,zeny-getarg(0);
+		set ra_have_donated,1;
+		if ($rachel_donate > 9999) {
+			cutin "ra_nemma03",2;
+			mes "[Priestess Nemma]";
+			mes "There you are~";
+			mes "Thanks so much for";
+			mes "your donation! I'm sure";
+			mes "that Freya is smiling down";
+			mes "upon you, and will reward";
+			mes "you for your generosity~";
+			return;
+		}
+		else {
+			set .@Remaining,10000-$rachel_donate;
+			cutin "ra_nemma03",2;
+			mes "[Priestess Nemma]";
+			mes "Thank you so much! We'll be";
+			mes "continuing to accept donations";
+			mes "until we reach our target. Once";
+			mes "we receive "+.@Remaining+" more donations";
+			mes "in increments of 50,000 zeny,";
+			mes "our fundraiser will finish.";
+			next;
+			mes "[Priestess Nemma]";
+			mes "If you're feeling so";
+			mes "inclined, come back later";
+			mes "and make another contribution.";
+			mes "Thanks again, and may Freya";
+			mes "always watch over you.";
+			return;
+		}
+	}
+	else {
+		mes "[Priestess Nemma]";
+		mes "I'm sorry, but you have";
+		mes "less than "+@Donate$+" zeny...";
+		mes "I know it's asking a lot,";
+		mes "but those are the rules that";
+		mes "I've been told to follow, so...";
+		mes "Well, maybe another time, yes?";
+		return;
+	}
+
 }
 
 rachel,243,37,3	script	Kid#Candy Addict	921,{
@@ -5567,8 +5446,6 @@ L_End:
 
 ra_temin,170,46,3	script	Panno#rachel	920,{
 	cutin "ra_fano03",2;
-	if (MISC_QUEST & 8192) goto L_Redeem_Tickets;
-
 	if (ra_tem_q == 10) {
 		mes "[Priestess Panno]";
 		mes "Good day.";
@@ -5594,67 +5471,13 @@ ra_temin,170,46,3	script	Panno#rachel	920,{
 			mes "know, in case you were saving";
 			mes "them for some weird reason.";
 			next;
-			if (select("Yes:No") == 1) {
-				mes "[Priestess Panno]";
-				mes "Here we go";
-				mes "Excited? Mm";
-				mes "I can redeem only";
-				mes "1 Lottery Ticket at";
-				mes "a time. Your reward";
-				mes "for this ticket is...";
-				next;
-				cutin "ra_fano02",2;
-				if (countitem(7570) > 0) {
-					mes "[Priestess Panno]";
-					mes "^FF0000This^000000. It's been in our";
-					mes "storage for a while, but";
-					mes "I hope this is acceptable";
-					mes "as a token of the temple's";
-					mes "gratitude. May Freya smile";
-					mes "upon you for your generosity...";
-					delitem 7570,1;
-					set .@bonus_donate,rand(100);
-					if (.@bonus_donate == 99) {
-						set .@bonus_donate2,rand(100);
-						if (.@bonus_donate2 > 0 && .@bonus_donate2 < 11) getitem 616,1;		//Old Card Album 0.1%
-						else if (.@bonus_donate2 > 10 && .@bonus_donate2 < 31) getitem 617,1;	//Old Violet Box 0.2%
-						else if (.@bonus_donate2 > 30 && .@bonus_donate2 < 61) getitem 603,1;	//Old Blue Box 0.3%
-						else getitem 607,1; //Yggdrasil Berry 0.4%
-					}
-					else if (.@bonus_donate > 88 && .@bonus_donate < 96) getitem 644,1;	//Gift Box 7%
-					else if (.@bonus_donate > 76 && .@bonus_donate < 89) getitem 607,1;	//Yggdrasil Berry 12%
-					else if (.@bonus_donate > 65 && .@bonus_donate < 77) getitem 505,1;	//Blue Potion 11%
-					else if (.@bonus_donate > 57 && .@bonus_donate < 66) getitem 604,1;	//Dead Branch 8%
-					else if (.@bonus_donate > 45 && .@bonus_donate < 58) getitem 608,1;	//Yggdrasil Seed 12%
-					else if (.@bonus_donate > 5 && .@bonus_donate < 11) getitem 518,1;	//Honey 5%
-					else if (.@bonus_donate > 0 && .@bonus_donate < 6) getitem 526,1;	//Royal Jelly 5%
-					else getitem 547,1; //Condensed White Potion 39%
-					goto L_End;
-				}
-
-				mes "[Priestess Panno]";
-				mes "You...";
-				mes "Don't have any Lottery";
-				mes "Tickets to redeem";
-				mes "We're not distributing";
-				mes "them now, but maybe you";
-				mes "can ask your friends for one.";
-				next;
-				cutin "ra_fano03",2;
-				mes "[Priestess Panno]";
-				mes "May Freya be with you.";
-				goto L_End;
-			}
-
-			else {
-				mes "[Priestess Panno]";
-				mes "You can redeem your";
-				mes "Lottery Tickets at any";
-				mes "time, so please visit";
-				mes "me at your leisure.";
-				mes "Go with Freya.";
-				goto L_End;
-			}
+			if (select("Yes:No") == 1) goto L_Lottery;
+			mes "[Priestess Panno]";
+			mes "You can redeem your";
+			mes "Lottery Tickets at any";
+			mes "time, so please visit";
+			mes "me at your leisure.";
+			mes "Go with Freya.";
 			goto L_End;
 
 		case 2:
@@ -5882,86 +5705,31 @@ ra_temin,170,46,3	script	Panno#rachel	920,{
 		goto L_End;
 	}
 
-	else if (ra_tem_q >= 12) {
-		L_Redeem_Tickets:
+	else if (ra_tem_q >= 12 || MISC_QUEST & 8192) {
 		cutin "ra_fano03",2;
 		mes "[Priestess Panno]";
 		mes "Good day.";
 		mes "Have you come to";
 		mes "redeem Lottery Tickets?";
 		next;
-		if (select("Yes:No") == 1) {
-			mes "[Priestess Panno]";
-			mes "Here we go";
-			mes "Excited? Mm";
-			mes "I can redeem only";
-			mes "1 Lottery Ticket at";
-			mes "a time. Your reward";
-			mes "for this ticket is...";
-			next;
-			cutin "ra_fano02",2;
-			if (countitem(7570) > 0) {
-				mes "[Priestess Panno]";
-				mes "^FF0000This^000000. It's been in our";
-				mes "storage for a while, but";
-				mes "I hope this is acceptable";
-				mes "as a token of the temple's";
-				mes "gratitude. May Freya smile";
-				mes "upon you for your generosity...";
-				delitem 7570,1;
-				set .@bonus_donate,rand(100);
-				if (.@bonus_donate == 99) {
-					set .@bonus_donate2,rand(100);
-					if (.@bonus_donate2 > 0 && .@bonus_donate2 < 11) getitem 616,1;		//Old Card Album 0.1%
-					else if (.@bonus_donate2 > 10 && .@bonus_donate2 < 31) getitem 617,1;	//Old Violet Box 0.2%
-					else if (.@bonus_donate2 > 30 && .@bonus_donate2 < 61) getitem 603,1;	//Old Blue Box 0.3%
-					else getitem 607,1; //Yggdrasil Berry 0.4%
-				}
-				else if (.@bonus_donate > 88 && .@bonus_donate < 96) getitem 644,1;	//Gift Box 7%
-				else if (.@bonus_donate > 76 && .@bonus_donate < 89) getitem 607,1;	//Yggdrasil Berry 12%
-				else if (.@bonus_donate > 65 && .@bonus_donate < 77) getitem 505,1;	//Blue Potion 11%
-				else if (.@bonus_donate > 57 && .@bonus_donate < 66) getitem 604,1;	//Dead Branch 8%
-				else if (.@bonus_donate > 45 && .@bonus_donate < 58) getitem 608,1;	//Yggdrasil Seed 12%
-				else if (.@bonus_donate > 5 && .@bonus_donate < 11) getitem 518,1;	//Honey 5%
-				else if (.@bonus_donate > 0 && .@bonus_donate < 6) getitem 526,1;	//Royal Jelly 5%
-				else getitem 547,1; //Condensed White Potion 39%
-				goto L_End;
-			}
-
-			mes "[Priestess Panno]";
-			mes "You...";
-			mes "Don't have any Lottery";
-			mes "Tickets to redeem";
-			mes "We're not distributing";
-			mes "them now, but maybe you";
-			mes "can ask your friends for one.";
-			next;
-			cutin "ra_fano03",2;
+		if (select("Yes:No") == 1) goto L_Lottery;
+		if (ra_tem_q == 12) {
+			cutin "ra_fano01",2;
 			mes "[Priestess Panno]";
-			mes "May Freya be with you.";
-			goto L_End;
+			mes "I already told you";
+			mes "everything I know.";
+			mes "Remember to keep";
+			mes "quiet about what I said.";
 		}
-
 		else {
-			if (ra_tem_q == 12) {
-				cutin "ra_fano01",2;
-				mes "[Priestess Panno]";
-				mes "I already told you";
-				mes "everything I know.";
-				mes "Remember to keep";
-				mes "quiet about what I said.";
-			}
-
-			else {
-				cutin "ra_fano02",2;
-				mes "[Priestess Panno]";
-				mes "This is a holy place";
-				mes "Behave yourself, and";
-				mes "respect those who have";
-				mes "come here just to worship.";
-			}
-
+			cutin "ra_fano02",2;
+			mes "[Priestess Panno]";
+			mes "This is a holy place";
+			mes "Behave yourself, and";
+			mes "respect those who have";
+			mes "come here just to worship.";
 		}
+		goto L_End;
 
 	}
 
@@ -5972,7 +5740,59 @@ ra_temin,170,46,3	script	Panno#rachel	920,{
 		mes "Behave yourself, and";
 		mes "respect those who have";
 		mes "come here just to worship.";
+		goto L_End;
 	}
+
+L_Lottery:
+	mes "[Priestess Panno]";
+	mes "Here we go";
+	mes "Excited? Mm";
+	mes "I can redeem only";
+	mes "1 Lottery Ticket at";
+	mes "a time. Your reward";
+	mes "for this ticket is...";
+	next;
+	cutin "ra_fano02",2;
+	if (countitem(7570) > 0) {
+		mes "[Priestess Panno]";
+		mes "^FF0000This^000000. It's been in our";
+		mes "storage for a while, but";
+		mes "I hope this is acceptable";
+		mes "as a token of the temple's";
+		mes "gratitude. May Freya smile";
+		mes "upon you for your generosity...";
+		delitem 7570,1;
+		set .@bonus_donate,rand(100);
+		if (.@bonus_donate == 99) {
+			set .@bonus_donate2,rand(100);
+			if (.@bonus_donate2 > 0 && .@bonus_donate2 < 11) getitem 616,1;		//Old Card Album 0.1%
+			else if (.@bonus_donate2 > 10 && .@bonus_donate2 < 31) getitem 617,1;	//Old Violet Box 0.2%
+			else if (.@bonus_donate2 > 30 && .@bonus_donate2 < 61) getitem 603,1;	//Old Blue Box 0.3%
+			else getitem 607,1; //Yggdrasil Berry 0.4+%
+		}
+		else if (.@bonus_donate > 88 && .@bonus_donate < 96) getitem 644,1;	//Gift Box 7%
+		else if (.@bonus_donate > 76 && .@bonus_donate < 89) getitem 607,1;	//Yggdrasil Berry 12%
+		else if (.@bonus_donate > 65 && .@bonus_donate < 77) getitem 505,1;	//Blue Potion 11%
+		else if (.@bonus_donate > 57 && .@bonus_donate < 66) getitem 604,1;	//Dead Branch 8%
+		else if (.@bonus_donate > 45 && .@bonus_donate < 58) getitem 608,1;	//Yggdrasil Seed 12%
+		else if (.@bonus_donate > 5 && .@bonus_donate < 11) getitem 518,1;	//Honey 5%
+		else if (.@bonus_donate > 0 && .@bonus_donate < 6) getitem 526,1;	//Royal Jelly 5%
+		else getitem 547,1; //Condensed White Potion 39%
+		goto L_End;
+	}
+	mes "[Priestess Panno]";
+	mes "You...";
+	mes "Don't have any Lottery";
+	mes "Tickets to redeem";
+	mes "We're not distributing";
+	mes "them now, but maybe you";
+	mes "can ask your friends for one.";
+	next;
+	cutin "ra_fano03",2;
+	mes "[Priestess Panno]";
+	mes "May Freya be with you.";
+	goto L_End;
+
 L_End:
 	close2;
 	cutin "",255;

+ 1 - 0
npc/scripts_athena.conf

@@ -146,6 +146,7 @@ npc: npc/guides/guides_yun.txt
 npc: npc/guides/guides_umb.txt
 npc: npc/guides/guides_nif.txt
 npc: npc/guides/guides_hu.txt
+npc: npc/guides/guides_rachel.txt
 // --------------------------------------------------------------
 // ---------------- Kafras & Cool Event Corp. -------------------
 npc: npc/kafras/functions_kafras.txt