Browse Source

2-2 job quest update. Although completable, further testing (and optimizing) required.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11278 54d463be-8e91-2dee-dedb-b68131a5f0ec
L0ne_W0lf 17 years ago
parent
commit
7fd5c0f918
10 changed files with 10140 additions and 6510 deletions
  1. 1 0
      npc/Changelog.txt
  2. 1862 977
      npc/jobs/2-2/alchemist.txt
  3. 18 14
      npc/jobs/2-2/bard.txt
  4. 29 24
      npc/jobs/2-2/crusader.txt
  5. 1189 804
      npc/jobs/2-2/dancer.txt
  6. 2536 1763
      npc/jobs/2-2/monk.txt
  7. 1799 853
      npc/jobs/2-2/rogue.txt
  8. 2671 2034
      npc/jobs/2-2/sage.txt
  9. 4 3
      npc/quests/quests_yuno.txt
  10. 31 38
      npc/warps/other/jobquests.txt

+ 1 - 0
npc/Changelog.txt

@@ -1,6 +1,7 @@
 Date		Added
 ======
 2007/09/22
+	* Rev. 11278 2-2 job quest update. Although completable, further testing (and optimizing) required. [L0ne_W0lf]
 	* Rev. 11276 Added more warps between Juno Satellite and Castle Interiors. [L0ne_W0lf]
 	- castle 1, 4 and 5 entrances are questionable, and will be updated as I get more information.
 	* Fixed a small bug in Einbroch Pollution quest. [SinSloth]

+ 1862 - 977
npc/jobs/2-2/alchemist.txt

@@ -3,1079 +3,1964 @@
 //===== By: ==================================================
 //= nestor_zulueta (Fusion), converted by Darkchild
 //===== Current Version: ===================================== 
-//= 2.4a
+//= 2.5
 //===== Compatible With: ===================================== 
-//= eAthena 1.0 +
+//= eAthena SVN
 //===== Description: ========================================= 
-//= Alchemist job quest based off of official iRO quest.
+//= [Aegis Conversion]
+//= Job quest for Alchemist classes
 //===== Additional Comments: ================================= 
-//= v1.0 Working.
-//= npc/quests/counteragent_mixture.txt Also Needed
-//= npc/quests/quests_yuno.txt Also Needed [Darkchild]
-//= v1.1 Fixed some minor bugs.  Optimized some lines. Re-organized the script a bit. 
-//= Giving Parmry NPC, Hammer and Old Book now waves the 50000 fee. (based of mRO website)
-//= Having a joblvl of 50 allows you to skip Rasputin's test. (based of mRO website) [kobra_k88]
-//= 1.2 fixed a few typos (have to hunt more) [Lupus]
-//= 1.3 Added Baby Class Support [Lupus]
-//= 1.6 Added a func which prevent advanced classes passing
-//= 2nd Job Quests again. It also guides adv classes where
-//= to go. [Lupus]
-//= 1.6a fixed some wrong answers, thanks to zlider for info [Lupus]
-//= 2.0 Changed numbers to constants. [Vicious]
-//= 2.2 Got rid of 'al_morgen' var. Now uses (MISC_QUEST & 4) [Lupus]
-//= 2.3 Optimized, changed job numbers to constants. Fixed some spelling [Lupus]
-//= 2.4 Added alternative prizes according to JobLevel [Lupus]
-//= 2.4a Fixed 2 wrong answers in Rasputin's test [Lupus]
+//= 2.5 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
+//=	No longer uses function "F_BlockHigh"
 //============================================================ 
 
-
-//==================================================================================================//
-//					Registration and First Test
-//==================================================================================================//
-alde_alche,27,185,4	script	Parmry Gianino	744,{
-	callfunc "F_BlockHigh",Job_Merchant_High,"Merchant High",Job_Creator,"Creator","Parmry Gianino";
-
-	mes "[Parmry Gianino]";
-	if(baseJob == Job_Merchant) goto L_Merc;
-	if(baseJob == Job_Alchemist){
-		mes "Hey there fellow Alchemist.  How's the business going?  Good I hope, well good luck to you.";
+alde_alche,27,185,5	script	Alchemist Guildsman#am	744,{
+	mes "[Parmy Gianino]";
+	if (Upper == 1) {
+		mes "Welcome to the";
+		mes "Alchemist Unio--";
+		mes "I-Impossible! How c-can";
+		mes "something like this happen?";
+		next;
+		mes "[Parmy Gianino]";
+		mes "Wait, wait...";
+		mes "I'm sorry. I was confused,";
+		mes "that's all. You look just like";
+		mes "someone I used to know. ";
+		mes "Still, I get this weird";
+		mes "feeling about you...";
 		close;
 	}
-	mes "Welcome to the Alchemist Union.  Ah, I apologize but I'm busy right now.";
-	close;
-L_Merc:	
-	if(ALCH_Q == 1) goto L_Check;
-	if(ALCH_Q == 2) goto L_Test2;
-	if(ALCH_Q == 3) goto L_Test3;
-	if(ALCH_Q == 4) goto L_Test4;
-	if(ALCH_Q == 5) goto L_Test5;
-	if(ALCH_Q == 6) goto L_Test6;
-	if(ALCH_Q == 7) goto L_GoChange;
-	mes "Welcome to the Alchemist Union.";
-	mes "How may i help you?";
-	next;
-	menu "I would like to learn about Alchemy",-, "I want to become an Alchemist.",L_Start, "Nothing.",M_End;
-
-		mes "[Parmry Gianino]";
-		mes "Alchemists study and create new materials using a variety of existing substances.";
-		mes "They research the atoms of chemicals, and experiment to change the properties of the chemicals.";
-		next;
-		mes "[Parmry Gianino]";
-		mes "Most people think the final goal is to create gold, but that's not the entire truth.";
-		mes "They make anything from simple medicines, to new materials.";
-		next;
-		mes "[Parmry Gianino]";
-		mes "At times, some research the creation of life .... but that's considered god's territory...";
-		mes "That field is so complex, everyone simply researhes for now.";
-		next;
-		mes "[Parmry Gianino]";
-		mes "If you are interested in becoming an Alchemist, I recommend that you gain a lot experience as a Merchant.";
-		mes "Being a merchant is a great opportunity to learn about materials while you deal with them.";
-		next;
-		mes "[Parmry Gianino]";
-		mes "Only you can decide for yourself.";
-		mes "The road to becoming an Alchemist is very challenging.";
-		mes "You will need to focus on experimenting and researching rather than trade.";
+	if (BaseJob != Job_Merchant) {
+		if (BaseJob == Job_Alchemist) {
+			mes "Welcome, " + name + ".";
+			mes "The Alchemist Union";
+			mes "is busy today, like always.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "Everyone is busy with their";
+			mes "own research, but recently, some headway has been made in the field of biotechnology.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "Everyone is hoping that the biotechnological studies will yield positive results. Speaking of which, I wonder how the Alchemists working on artificial life are doing...";
+			close;
+		}
+		else if (BaseClass == Job_Novice) {
+			mes "Welcome to the";
+			mes "Alchemist Union.";
+			mes "We are recruiting";
+			mes "talented people";
+			mes "with novel ideas.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "If you're interested in working with chemistry, visit us later when you become more knowledgable.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "Just one thing:";
+			mes "You've got to have";
+			mes "knowledge of items";
+			mes "as a Merchant first.";
+			close;
+		}
+		mes "Welcome to the";
+		mes "Alchemist Union.";
+		mes "We are recruiting";
+		mes "talented people";
+		mes "with novel ideas.";
+		next;
+		mes "[Parmy Gianino]";
+		mes "If you know any exceptional Merchants, by all means, please refer them to us. Those types of people tend to have a talent for Alchemy and experimentation~";
 		close;
-	M_End:
-		mes "[Parmry Gianino]";
-		mes "Umm... Please say something if you need anything.";
+	}
+	if (ALCH_Q == 0) {
+		mes "Welcome to the";
+		mes "Alchemist Union.";
+		mes "How may I help you?";
+		next;
+		switch(select("I would like to learn about Alchemists.:I want to become an Alchemist.:Nothing.")) {
+		case 1:
+			mes "[Parmy Gianino]";
+			mes "Alchemists study and create new substances and items out of existing materials. Our knowledge allows us to change the properties of chemicals at the atomic level.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "Most people think our final goal";
+			mes "is to create gold, but that's not the entire truth. We also want to create things like medicines";
+			mes "and new materials.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "A few of us research the";
+			mes "creation of life, although many of us consider that god's territory. That field is so complex, most of us deal with slightly less complicated projects anyway.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "If you are interested in becoming an Alchemist, I recommend that you first get a lot of experience as a Merchant. Being a Merchant is a great opportunity to learn about materials as you deal with them.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "Whether or not you try to become";
+			mes "an Alchemist is your decision. The road to becoming an Alchemist is very challenging, and you'll need to focus on experimentation and research, instead of commerce.";
+			close;
+		case 2:
+			mes "[Parmy Gianino]";
+			mes "Is that so?";
+			mes "Nice to meet you.";
+			mes "My name is Parmy Gianino";
+			mes "of the Alchemist Union.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "If you join our Union and";
+			mes "complete the training, you";
+			mes "will be officially recognized";
+			mes "as an Alchemist and be able";
+			mes "to contribute to our research.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "But we don't accept everyone.";
+			mes "You must have a lot of tenacity";
+			mes "and sincere devotion in exploring";
+			mes "the various fields of science.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "There are a couple";
+			mes "of requirements to join";
+			mes "the Alchemist Union, but";
+			mes "we'll discuss that";
+			mes "after you apply.";
+			next;
+			mes "[Parmy Gianino]";
+			mes "Well then, would";
+			mes "you like to apply";
+			mes "for registration?";
+			next;
+			if (select("I would like to apply.:I'll do it later.") == 1) {
+				if (JobLevel < 40) {
+					mes "[Parmy Gianino]";
+					mes "Hmmm...";
+					mes "Just a moment.";
+					mes "I'm sorry to say that";
+					mes "you're not experienced";
+					mes "enough as a Merchant to";
+					mes "join us right now.";
+					next;
+					mes "[Parmy Gianino]";
+					mes "You must be at least";
+					mes "^551A8BJob Level 40^000000 to become";
+					mes "an Alchemist. Come back";
+					mes "later when you meet the";
+					mes "Job Level requirement, okay?";
+					close;
+				}
+				mes "[Parmy Gianino]";
+				mes "Alright, your application has been accepted. Now, you must pay the 50,000 Zeny application fee and bring some items before you can begin your formal training.";
+				next;
+				mes "[Parmy Gianino]";
+				mes "But if you bring an ^551A8BOld Magic Book^000000 and ^551A8BHammer of Blacksmith^000000,";
+				mes "we will accept that as a substitute for the item requirement.";
+				next;
+				mes "[Parmy Gianino]";
+				mes "Now...";
+				mes "Please sign";
+				mes "the application.";
+				next;
+				select(strcharinfo(0));
+				mes "[Parmy Gianino]";
+				mes "Good, good. Now, if you have";
+				mes "the Zeny for your application fee ready, I will tell you which items you will need to bring. Now, pay attention.";
+				next;
+				if (Zeny < 50000) {
+					mes "[Parmy Gianino]";
+					mes "Uh oh. You don't";
+					mes "seem to have enough Zeny.";
+					mes "Come back to me when you have 50,000 Zeny, otherwise we can't process your application.";
+					close;
+				}
+				set zeny,zeny-50000;
+				mes "[Parmy Gianino]";
+				mes "Let's see.";
+				mes "" + name + "";
+				mes "needs to bring...";
+				switch(rand(1,3)) {
+				case 1:
+					set ALCH_Q,1;
+					mes "^551A8B7 Berserk Potions^000000.";
+					break;
+				case 2:
+					set ALCH_Q,2;
+					mes "^551A8B100 Mini Furnaces^000000.";
+					break;
+				case 3:
+					set ALCH_Q,3;
+					mes "^551A8B7,500 Fire Arrows^000000.";
+				}
+				next;
+				mes "[Parmy Gianino]";
+				mes "Once you've gathered";
+				mes "those items, come back";
+				mes "to me and your training";
+				mes "as an Alchemist will begin.";
+				mes "See you soon~";
+				close;
+			}
+			mes "[Parmy Gianino]";
+			mes "Talented Merchants";
+			mes "are always welcome here.";
+			mes "Please come back soon.";
+			close;
+		case 3:
+			mes "[Parmy Gianino]";
+			mes "Umm...";
+			mes "Please let me know";
+			mes "if you need anything.";
+			close;
+		}
+	}
+	else if (ALCH_Q >= 1 && ALCH_Q <= 3) {
+		if (countitem(1006) > 0 && countitem(1005) > 0) {
+			mes "Well now~!";
+			mes "You've brought an";
+			mes "Old Magic Book and";
+			mes "a Hammer of Blacksmith.";
+			mes "We'll put these items";
+			mes "to good use.";
+			next;
+			delitem 1006,1; //Old_Magic_Book
+			delitem 1005,1; //Hammer_Of_Blacksmith
+			mes "[Parmy Gianino]";
+			mes "Okay, now you need to learn";
+			mes "the basics to being an Alchemist and learn the procedures for mixing chemicals and medicines.";
+			set ALCH_Q,4;
+			next;
+			mes "[Parmy Gianino]";
+			mes "But before all of that, you need to speak to Raspuchin. I'm not really sure what you'll be talking about with him...";
+			next;
+			mes "[Parmy Gianino]";
+			mes "It shouldn't be anything extraordinary, but you're still required to speak to Raspuchin, since apparently he's a part of the Alchemist selection process.";
+			close;
+		}
+		switch(ALCH_Q) {
+		case 1: setarray .@items[0],657,7; break;
+		case 2: setarray .@items[0],612,100; break;
+		case 3: setarray .@items[0],1752,7500; break;
+		}
+		if (countitem(.@items[0]) >= .@items[1]) {
+			mes "Seems like";
+			mes "you're all ready.";
+			mes "The Union will put";
+			mes "these items to good use.";
+			next;
+			delitem .@items[0],.@items[1];
+			mes "[Parmy Gianino]";
+			mes "Okay, now you need to learn";
+			mes "the basics to being an Alchemist and learn the procedures for mixing chemicals and medicines.";
+			set ALCH_Q,4;
+			next;
+			mes "[Parmy Gianino]";
+			mes "But before all of that, you need to speak to Raspuchin. I'm not really sure what you'll be talking about with him...";
+			next;
+			mes "[Parmy Gianino]";
+			mes "It shouldn't be anything extraordinary, but you're still required to speak to Raspuchin, since apparently he's a part of the Alchemist selection process.";
+			close;
+		}
+		mes "Aren't you ready?";
+		mes "Like I said before,";
+		mes "you must bring";
+		mes "^551A8B"+.@items[1]+" "+getitemname(.@items[0])+"s^000000.";
+		next;
+		mes "[Parmy Gianino]";
+		mes "Come back when you";
+		mes "have prepared the";
+		mes "required items.";
 		close;
-L_Start:
-	mes "[Parmry Gianino]";
-	if(JobLevel < 40) goto L_LowLvl;
-	mes "Is that so? My name is Parmry Gianino of the Alchemist Association.";
-	mes "Nice to meet you.";
-	next;
-	mes "[Parmry Gianino]";
-	mes "If you join our Union and pass some training you will be officially recognized,";
-	mes "as an Alchemist and be able to join our researches.";
-	next;
-	mes "[Parmry Gianino]";
-	mes "But we don't accept everyone.";
-	mes "You must have a lot of effort, tenacity, and be able to devote yourself to research.";
-	next;
-	mes "[Parmry Gianino]";
-	mes "There are a couple of requirements to join the association....";
-	mes "but we'll discuss that after you apply.";
-	next;
-	mes "[Parmry Gianino]";
-	mes "Then, would you like to apply to register?";
-	next;
-	menu "I would like to apply.",M_Apply,"I'll do it later.",-;
-
-		mes "[Parmry Gianino]";
-		mes "If you are a talented Merchant,";
-		mes "you are always welcome here.";
-		mes "Come again soon.";
+	}
+	else if (ALCH_Q == 4) {
+		mes "Go and talk to";
+		mes "Mr. Raspuchin.";
+		mes "He's involved in the";
+		mes "Alchemist selection process, whatever that might mean.";
+		next;
+		mes "[Parmy Gianino]";
+		mes "Hopefully, it";
+		mes "won't be too much of";
+		mes "a problem. I guess he'll just interview you, and ask you";
+		mes "some simple questions.";
 		close;
-	M_Apply:
-		mes "[Parmry Gianino]";
-		mes "Fill out this application form please.....";
+	}
+	else {
+		mes "Ah, I'm sorry, but";
+		mes "I'm busy right now~";
 		next;
-		mes "(you fill out the form and hand it back)";
+		mes "[Parmy Gianino]";
+		mes "Why don't you ask";
+		mes "someone else if you're";
+		mes "not sure who to visit";
+		mes "next? Good luck~";
+		close;
+	}
+}
+
+alde_alche,175,107,3	script	Fastidious Alchemist#am	749,{
+	mes "[Raspuchin Gregory]";
+	if (BaseJob != Job_Merchant) {
+		if (BaseJob == Job_Alchemist) {
+			mes "Heeheehee";
+			mes "keheheh~!";
+			mes "Eh? What do you want?!";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "You're not here to steal my experimental results or plagiarize my work, are you? How dare you consider intellectual theft!";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "You're not, are you?";
+			mes "Well, as a colleague,";
+			mes "let me just warn you";
+			mes "that such tricks aren't";
+			mes "tolerated here in the";
+			mes "Alchemist Union!";
+			close;
+		}
+		else if (BaseClass == Job_Novice) {
+			mes "Heeheehee";
+			mes "keheheh~!";
+			mes "How cute, you've come";
+			mes "all this way just to play...";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "I'll let you";
+			mes "go this time...";
+			mes "But next time, don't";
+			mes "expect to leave so easily...";
+			close;
+		}
+		else {
+			mes "What is it?!";
+			mes "You're curious as";
+			mes "to what I'm doing?";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "Heehee";
+			mes "keheheh~!";
+			mes "Why, I'm busy";
+			mes "researching,";
+			mes "of course!";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "Once this";
+			mes "potion is complete...";
+			mes "You can use it to take";
+			mes "over an entire nation!";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "Hee hee hee!";
+			mes "Something this";
+			mes "dangerous has to";
+			mes "be kept a secret!";
+			mes "Understand?";
+			close;
+		}
+	}
+	if (ALCH_Q == 0) {
+		mes "Heeheehee";
+		mes "keheheh~!";
+		mes "What do you";
+		mes "want, kid?";
 		next;
-		mes "[Parmry Gianino]";
-		mes "Very good.  In order to join the Alchemist Union you must first pay a ^5533FF50,000^000000 zeny membership fee.";
-		mes "You will also need to bring us a few items as well.";
+		mes "[Raspuchin Gregory]";
+		mes "A Merchant should go and set up shop and vend items. Why are you wandering in a place like this?";
 		next;
-		mes "[Parmry Gianino]";
-		mes "Of course if you bring us an ^5533FFOld Magic Book^000000 and an ^5533FFHammer of Blacksmith^000000...";
-		mes "You won't have to pay the fee.";
+		mes "[Raspuchin Gregory]";
+		mes "Heheheh~!";
+		mes "Go vend somwhere else!";
+		mes "And leave me to my";
+		mes "dark enterprise!";
+		close;
+	}
+	else if (ALCH_Q >= 1 && ALCH_Q <= 3) {
+		mes "Heeheehee";
+		mes "keheheh~!";
+		mes "What do you";
+		mes "want, kid?";
 		next;
-		mes "[Parmry Gianino]";
-		mes "Let's see.... you'll need to  bring us....^5533FF100 Mini Furnaces^000000.";
-		mes "Once you have the Mini Furnaces come back and see me.";
+		mes "[Raspuchin Gregory]";
+		mes "What...?";
+		mes "Learn Alchemy?!";
+		mes "Don't even speak";
+		mes "such nonsense!";
 		next;
-		mes "[Parmry Gianino]";
-		mes "When you come back I will also collect the ^5533FF50,000^000000 zeny fee so don't forget about that either.";
-		mes "See you soon...";
-		set JBLVL, JobLevel; // used to determine what item to get at the end
-		set ALCH_Q,1;
-		close;
-L_LowLvl:
-	mes "You must be at least Job Level 40  to become a Alchemist.";
-	close;
-
-L_Check:
-	mes "Oh, your back already... lets see....";
-	next;
-	mes "[Parmry Gianino]";
-	if(countitem(612) < 100) goto L_NoItems;
-	if(countitem(1005) && countitem(1006)) goto L_Skip;
-	if(zeny < 50000) goto L_NoZeny;
- 	set zeny,zeny - 50000;
-	delitem 612, 100;
-	mes "You have 50,000 zeny...... You brought 100 Mini Furnaces.... Great!";
-	mes "Now you are ready to learn the basics of being an Alchemist.";
-	next;
-
-	L_Cont:
-	mes "[Parmry Gianino]";
-	mes "But before that... ^5533FFRasputin^000000 wants to see you.....";
-	mes "Hmm..... I'm not sure what it could be about....";
-	next;
-	mes "[Parmry Gianino]";
-	mes "You should go visit him now.  Just go down those stairs to my right.  His room is in the SouthEastern corner.";
-	set ALCH_Q,2;
-	close;
-
-	L_NoZeny:
-		mes "You still need to pay the ^FF553350,000^000000 zeny membership fee.";
-		mes "Let me know when you have enough money.";
+		mes "[Raspuchin Gregory]";
+		mes "Even if you tried studying for a thousand years, maybe even more, it'd be useless to you! Forget about it and just worry about your store!";
 		close;
-	L_NoItems:
-		mes "As I mentioned before, you must bring ^FF3355100 Mini Furnaces^000000 to join the union.";
-		mes "Please come back when you are ready...";
+	}
+	else if (ALCH_Q == 4) {
+		mes "Heeheehee";
+		mes "keheheh~!";
+		mes "What do you";
+		mes "want, kid?";
+		next;
+		mes "[Raspuchin Gregory]";
+		mes "What...?";
+		mes "Join the Union!?";
+		mes "I don't like it...";
+		mes "I just don't...!";
+		next;
+		mes "[Raspuchin Gregory]";
+		mes "Nowadays, anyone thinks they can";
+		mes "be Alchemists just by knowing how to mix a few herbs. That's why my interview is necessary.";
+		next;
+		mes "[Raspuchin Gregory]";
+		mes "Heeheehee";
+		mes "keheheh~!";
+		mes "I plan on weeding out all the dumb and incompetent, and chase them";
+		mes "all away! We don't need morons!";
+		next;
+		if (JobLevel == 50) {
+			mes "[Raspuchin Gregory]";
+			mes "Wait...";
+			mes "Maybe I've";
+			mes "misjudged you.";
+			if (sex == 1) {
+				mes "You might be a pretty boy,";
+				mes "but I can tell you're smart";
+				mes "from your eyes.";
+			}
+			else {
+				mes "Huh. You're a cutie alright,";
+				mes "but I can tell you've got brains.";
+			}
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "You're not just some stupid kid.";
+			mes "I can tell youve gone through some rough times as a Merchant. Excellent. Keh heh heh~";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "Fine, just so we don't insult each other's intelligence, I'll just let you pass the interview.";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "So hurry up, become an Alchemist, do some good research, and you might turn out to be of some help to me. Hahahahahaha~!";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "Now go to Darwin!";
+			mes "He'll teach you how to do the experiments. Just tell him that";
+			mes "I sent you.";
+			set ALCH_Q,6;
+			close;
+		}
+		mes "[Raspuchin Gregory]";
+		mes "Surprised, are you?";
+		mes "Keheheh~ If you thought";
+		mes "becoming an Alchemist was";
+		mes "just a matter of changing";
+		mes "your clothes, then you're";
+		mes "sadly mistaken.";
+		next;
+		mes "[Raspuchin Gregory]";
+		mes "Now, try solving";
+		mes "all these problems.";
+		mes "Let's see how smart";
+		mes "really are.";
+		next;
+L_AskQuestions:
+		switch(rand(1,3)) {
+		case 1:
+			mes "[Raspuchin Gregory]";
+			mes "12 + 23 + 34 + 45 = ?";
+			next;
+			input .@input;
+			if (.@input != 114) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "1000 - 36 - 227 - 348 = ?";
+			next;
+			input .@input;
+			if (.@input != 389) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "14 * 17 * 3 = ?";
+			next;
+			input .@input;
+			if (.@input != 714) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "9765 / 3 / 5 / 7 = ?";
+			next;
+			input .@input;
+			if (.@input != 93) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "(47 * 28) - (1376 / 4) = ?";
+			next;
+			input .@input;
+			if (.@input != 972) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "(2646 / 7) + (13 * 28) = ?";
+			next;
+			input .@input;
+			if (.@input != 742) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "How much do";
+			mes "12 Red Potions,";
+			mes "1 Butterfly Wing";
+			mes "and 5 Fly Wings cost";
+			mes "after a 24 % discount?";
+			next;
+			input .@input;
+			if (.@input != 909) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "What is the";
+			mes "total weight of";
+			mes "3 Scimiters, 2 Helms";
+			mes "and 1 Long Coat?";
+			next;
+			input .@input;
+			if (.@input != 450) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "What is the";
+			mes "total defense of";
+			mes "a Biretta, Mantle,";
+			mes "Opera Mask, Ribbon,";
+			mes "Muffler, Boots, and";
+			mes "Ear Muffs?";
+			next;
+			input .@input;
+			if (.@input != 20) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "If you buy 5 Helms";
+			mes "with a 24 % discount";
+			mes "and sell it at 20";
+			mes "how much profit";
+			mes "do you earn?";
+			next;
+			input .@input;
+			if (.@input != 8800) set .@w_point,.@w_point+1;
+			break;
+		case 2:
+			mes "[Raspuchin Gregory]";
+			mes "13 + 25 + 37 + 48 = ?";
+			next;
+			input .@input;
+			if (.@input != 123) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "1000 - 58 - 214 - 416 = ?";
+			next;
+			input .@input;
+			if (.@input != 312) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "12 * 24 * 3 = ?";
+			next;
+			input .@input;
+			if (.@input != 864) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "10530 / 3 / 5 / 2 = ?";
+			next;
+			input .@input;
+			if (.@input != 351) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "(35 * 19) - (1792 / 7) = ?";
+			next;
+			input .@input;
+			if (.@input != 409) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "(2368 / 8) + (24 * 17) = ?";
+			next;
+			input .@input;
+			if (.@input != 704) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "(2646 / 7) + (13 * 28) = ?";
+			next;
+			input .@input;
+			if (.@input != 742) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "What is the";
+			mes "total price of";
+			mes "15 Green Potions,";
+			mes "6 Magnifiers and";
+			mes "4 Traps after";
+			mes "a 24 % discount?";
+			next;
+			input .@input;
+			if (.@input != 934) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "What is the";
+			mes "total weight of";
+			mes "3 Ring Pommel Sabers,";
+			mes "4 Caps, and 2 Boots?";
+			next;
+			input .@input;
+			if (.@input != 550) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "What is the";
+			mes "total defense of";
+			mes "a Buckler, Long Coat,";
+			mes "Gas Mask, Big Ribbon,";
+			mes "Cute Ribbon, Sakkat,";
+			mes "and Glasses?";
+			next;
+			input .@input;
+			if (.@input != 16) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "How much profit do you";
+			mes "make if you buy Tights";
+			mes "at a 24 % discount and";
+			mes "sell it at 20 % of";
+			mes "the normal price?";
+			next;
+			input .@input;
+			if (.@input != 8520) set .@w_point,.@w_point+1;
+			break;
+		case 3:
+			mes "[Raspuchin Gregory]";
+			mes "12 + 23 + 34 + 45 = ?";
+			next;
+			input .@input;
+			if (.@input != 114) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "1000 - 58 - 214 - 416 = ?";
+			next;
+			input .@input;
+			if (.@input != 312) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "14 * 17 * 3 = ?";
+			next;
+			input .@input;
+			if (.@input != 714) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "10530 / 3 / 5 / 2 = ?";
+			next;
+			input .@input;
+			if (.@input != 351) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "(47 * 28) - (1376 / 4) = ?";
+			next;
+			input .@input;
+			if (.@input != 972) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "(2646 / 7) + (13 * 28) = ?";
+			next;
+			input .@input;
+			if (.@input != 742) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "What is the";
+			mes "total cost of";
+			mes "6 Red Potions,";
+			mes "7 Green Potions,";
+			mes "and 8 Fly Wings";
+			mes "after a 24 % discount?";
+			next;
+			input .@input;
+			if (.@input != 798) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "What is the";
+			mes "total weight of";
+			mes "2 Ring Pommel Sabers,";
+			mes "3 Caps, and 3 boots?";
+			next;
+			input .@input;
+			if (.@input != 480) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "What is the";
+			mes "total defense of";
+			mes "a Mirror Shield, Mr. Smile, Leather Jacket, Silk Robe, Wedding Veil, Muffler, and Eye Patch?";
+			next;
+			input .@input;
+			if (.@input != 12) set .@w_point,.@w_point+1;
+			mes "[Raspuchin Gregory]";
+			mes "If you buy 4 Padded Armors";
+			mes "at a 25% discount and sell";
+			mes "them at 20% of the original";
+			mes "price, how much profit would";
+			mes "you make from this sale?";
+			next;
+			if (.@input != 7680) set w_point,w_point+1;
+		}
+		if (.@w_point == 0) {
+			mes "[Raspuchin Gregory]";
+			mes "Ooh...";
+			mes "Excellent! Great!";
+			mes "You got them all correct!?";
+			mes "Keheheh, I have no choice but to acknowledge you...";
+			next;
+		}
+		else if (.@w_point == 1) {
+			mes "[Raspuchin Gregory]";
+			mes "You got one wrong!";
+			mes "But I'll let it slide.";
+			mes "You pass the interview!";
+			next;
+		}
+		else if (.@w_point == 2 && ALCH_Q == 5) {
+			mes "[Raspuchin Gregory]";
+			mes "You've got serious";
+			mes "weaknesses in math,";
+			mes "but I'll let you go this time...";
+			next;
+		}
+		else {
+			set ALCH_Q,5;
+			mes "[Raspuchin Gregory]";
+			mes "Keheheh! Idiot!";
+			mes "Just listening to your";
+			mes "answers is making me feel";
+			mes "stupider! You might as well";
+			mes "have got them all wrong!";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "How can a person that";
+			mes "can't even answer all of";
+			mes "these simple questions think";
+			mes "of becoming an Alchemist?!";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "Hm...?";
+			mes "Did you get";
+			mes "any right?";
+			next;
+			mes "[Raspuchin Gregory]";
+			mes "Fool! Even if you make one little mistake, everything goes wrong";
+			mes "in Alchemy! Now get out of here!";
+			mes "You make me sick!";
+			close;
+		}
+		mes "[Raspuchin Gregory]";
+		mes "So hurry up, become an Alchemist, do some good research, and you might turn out to be of some help to me. Hahahahahaha~!";
+		next;
+		mes "[Raspuchin Gregory]";
+		mes "Now go to Darwin!";
+		mes "He'll teach you how to do the experiments. Just tell him that";
+		mes "I sent you.";
+		set ALCH_Q,6;
 		close;
-L_Skip:
-	mes "Oh, you have an ^5533FFOld Magic Book^000000 and an ^5533FFHammer of Blacksmith^000000........";
-	mes "That means you don't have to pay the membership fee.";
-	next;
-	mes "[Parmry Gianino]";
-	mes "Excellent.  Now I'll just take the Book, Hammer, 100 Mini Furnaces, and you'll be all set to learn the basics of being an Alchemist.";
-	next;
-	delitem 1005,1;
-	delitem 1006,1;
- 	delitem 612, 100;
-	goto L_Cont;
-
-L_Test2:	
-	mes "Go visit ^5533FFRasputin^000000 now!";
-	close;
-L_Test3:	
-	mes "Go visit ^5533FFDarwin^000000 now!";
-	close;
-L_Test4:	
-	mes "Go visit ^5533FFVan Helmont^000000 now!";
-	close;
-L_Test5:	
-	mes "Go visit ^5533FFNicholas Flamel^000000 now!";
-	close;
-L_Test6:	
-	mes "Go back to ^5533FFNicholas Flamel^000000 now!";
-	mes "He still has one more test for you.";
-	close;
-L_GoChange:	
-	mes "Wow you finished all of the tests? Great now you can visit the Headmaster, ^5533FFVincent Carsciallo^000000.";
-	mes "He's the one who will change you into an Alchemist.";
-	close;
-}
-
-
-//==================================================================================================//
-//					2nd Test: Math test :(
-//==================================================================================================//
-alde_alche,175,107,4	script	Rasputin Gregory	749,{
-	mes "[Rasputin Gregory]";
-	if(baseJob == Job_Merchant) goto L_Merc;
-	mes "What is it, kikikiki.  Are you curious about what I do...?";
-	mes "I'll just especially let you know.  You see I... Kekeke..";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "Am researching! Once this potion is complete... you will be able to take over an entire country!!";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "Kikikikikekekekek.  It's a secret to the people of Prontera.....";
-	close;
-L_Merc:
-	if(ALCH_Q == 2) goto L_Start;
-	if(ALCH_Q == 3) goto L_Done;
-	mes "Kikikikikekekekeke.";
-	mes "What is it! You punk.";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "A Merchant should go and set up a shop...";
-	mes "Why'd you come to a place like this!?";
-	mes "Are you looking for something to scab off?";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "Kikiki... Go, leave this place.";
-	mes "Don't loiter ... Kekeke.";
-	close;
-L_Start:
-	if(ALCH_Q2 == 1) goto L_ReTest;
-	if(JobLevel == 50) goto L_Skip;
-	mes "Keke, another dumb one has stumbled into here.";
-	mes "Join the Union?";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "I don't like it... I just don't...!";
-	mes "Everywhere, all joining and being called Alchemist just for knowing how to mix herbs!!!";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "Kikiki, so for that reason an interview is necessary!";
-	mes "I plan on scolding all the incompetent ones and chasing them away!!";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "You look dumb founded. It must be pretty crazy.";
-	mes "If you were thinking of just changing clothes you thought wrong... Kekeke..";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "Now try solving the problems I give you.";
-	mes "We'll see how smart you are.";
-	next;
-	set @score,0;
-
-	//set of question 1
-	q1:
-		mes "[Rasputin Gregory]";
-		mes "12+23+34+45 =?";
-		next;
-		input @num;
-		if(@num == 114) set @score,@score+10;
-	q2:	
-		mes "[Rasputin Gregory]";
-		mes "1000-36-227-348 =?";
-		next;
-		input @num;
-		if(@num == 389) set @score,@score+10;
-	q3:
-		mes "[Rasputin Gregory]";
-		mes "9765/3/5/7 =?";
-		next;
-		input @num;
-		if(@num == 93) set @score,@score+10; 
-	q4:
-		mes "[Rasputin Gregory]";
-		mes "(2646/7) + (13*28) =?";
-		next;
-		input @num;
-		if(@num == 742) set @score,@score+10;
-	q5:
-		mes "[Rasputin Gregory]";
-		mes "With a 24% discount";
-		mes "How much are 12 Red Potions,";
-		mes "5 Fly Wings, and ";
-		mes "1 Butterfly Wing altogether?";
-		next;
-		input @num;
-		if(@num == 909) set @score,@score+10;
-	q6:
-		mes "[Rasputin Gregory]";
-		mes "What is the total weight of 3 ";
-		mes "Scimiters,";
-		mes "2 Helms and 1 Coat";
-		next;
-		input @num;
-		if(@num == 450) set @score,@score+10;
-	q7:	
-		mes "[Rasputin Gregory]";
-		mes "What is the total defense of ";
-		mes "a Biretta, Mantle, Opera Mask,";
-		mes "Ribbon, ";
-		mes "Muffler, Boots, and Ear Muffs?";
-		next;
-		input @num;
-		if(@num == 20) set @score,@score+10;
-	q8:	
-		mes "[Rasputin Gregory]";
-		mes "If you buy 5 Helms with a 24%";
-		mes "discount and sell it at 20%,";
-		mes "how much do you earn?";
-		next;
-		input @num;
-		if(@num == 8800) set @score,@score+10;
-		goto L_Total;
-
-L_ReTest:
-	mes "What, you want to take the test again?";
-	mes "I thought I told you to leave.";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "Well, I'll let you go this one time...";
-	mes "I forgive you ... Kekeke.";
-	mes "Do well this time...";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "Now then, answer the question I ask.";
-	mes "Let see how smart you are.";
-	next;
-	set @score,0;
-
-	//set of question 2
-	q11:
-		mes "[Rasputin Gregory]";
-		mes "13+25+37+48=?";
-		next;
-		input @num;
-		if(@num == 123) set @score,@score+10;
-	q12:
-		mes "[Rasputin Gregory]";
-		mes "1000-58-214-416 =?";
-		next;
-		input @num;
-		if(@num == 312) set @score,@score+10;
-	q13:
-		mes "[Rasputin Gregory]";
-		mes "12*24*3=?";
-		next;
-		input @num;
-		if(@num == 864) set @score,@score+10;
-	q14:
-		mes "[Rasputin Gregory]";
-		mes "10530/3/5/2=?";
-		next;
-		input @num;
-		if(@num == 351) set @score,@score+10;
-	q15:
-		mes "[Rasputin Gregory]";
-		mes "(35*19) - (1792/7) =?";
-		next;
-		input @num;
-		if(@num == 409) set @score,@score+10;
-	q16:
-		mes "[Rasputin Gregory]";
-		mes "(2368/8) + (24*17) = ?";
-		next;
-		input @num;
-		if(@num == 704) set @score,@score+10;
-	q17:
-		mes "[Rasputin Gregory]";
-		mes "(2646/7) + (13*28)=?";
-		next;
-		input @num;
-		if(@num == 742) set @score,@score+10;
-	q18:
-		mes "[Rasputin Gregory]";
-		mes "If buying at a 24% discount,";
-		mes "What is the total price of";
-		mes "15 Green Potions,";
-		mes "6 Magnifiers and 4 Traps?";
-		next;
-		input @num;
-		if(@num == 934) set @score,@score+10;
-	q19:
-		mes "[Rasputin Gregory]";
-		mes "What is the total weight of ";
-		mes "3 Ring Pommel Sabers,";
-		mes "4 Caps and 2 Boots?";
-		next;
-		input @num;
-		if(@num == 550) set @score,@score+10;
-	q20:
-		mes "[Rasputin Gregory]";
-		mes "What is the total defense of a ";
-		mes "Buckler, Coat, Gas Mask, Big";
-		mes "Ribbon, Ribbon, Sakkat and";
-		mes "Glasses?";
-		next;
-		input @num;
-		if(@num == 16) set @score,@score+10;
-	q21:
-		mes "[Rasputin Gregory]";
-		mes "How much zeny do you make";
-		mes "if you buy Tights at a 24%";
-		mes "discount and sell it at 20%";
-		mes "of the normal price?";
-		next;
-		input @num;
-		if(@num == 2840) set @score,@score+10;
-L_Total:
-	mes "[Rasputin Gregory]";
-	if(@score < 80) goto L_Failed;
-	set ALCH_Q,3;
-	set ALCH_Q2, 0;
-	mes "Kikiki... I'll let you go.";
-	mes "Do some good research and be of some help to Rasputin... Kikiki!";
-	next;	
-	mes "[Rasputin Gregory]";
-	mes "Well then go! ^5533FFGo to Darwin^000000.";
-	mes "He'll teach you how to do the experiments.";
-	mes "Tell him I sent you.";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "Kikikikekeke.";
-	mes "Don't think this is the end of it!";
-	close;
-
-	L_Failed:
-		set ALCH_Q2,1;
-		mes "...Kekeke, you idiot,";
-		mes "I feel dumb asking you all the question!";
-		mes "you got them all wrong!!!";
-		next;
-		mes "[Rasputin Gregory]";
-		mes "How can a person that can't even answer these question think of being an Alchemist!";
-		mes "What? did you get any right?";
-		next;
-		mes "[Rasputin Gregory]";
-		mes "Stupid! If you get one wrong everything is wrong for an Alchemist!";
-		mes "Go! Leave! Get out of here!";
+	}
+	else if (ALCH_Q == 5) {
+		mes "What...?!";
+		mes "You want to take";
+		mes "the test again?!";
+		mes "I thought I told";
+		mes "you to leave!";
+		next;
+		mes "[Raspuchin Gregory]";
+		mes "I don't like it...";
+		mes "I don't like this!";
+		next;
+		mes "[Raspuchin Gregory]";
+		mes "Fine...";
+		mes "I'll try to overlook your pitiful performance last time and give";
+		mes "you another chance. Don't screw";
+		mes "up again, got it?";
+		next;
+		mes "[Raspuchin Gregory]";
+		mes "Now then,";
+		mes "give me all the";
+		mes "^551A8Bright^000000 answers";
+		mes "this time.";
+		next;
+		goto L_AskQuestions;
+	}
+	else if (ALCH_Q == 6) {
+		mes "What are you doing?";
+		mes "Go and find Darwin now.";
+		next;
+		mes "[Raspuchin Gregory]";
+		mes "Keheheheheheheheh~";
+		mes "Don't think this is the end of it!";
 		close;
-L_Done:
-	mes "What are you doing? Leave already.";
-	mes "Go to ^5533FFDarwin^000000.";
-	mes "He'll teach you how to do the experiments.";
-	mes "Tell him I sent you.";
-	next;
-	mes "[Rasputin Gregory]";
-	mes "Kikikikekeke.";
+	}
+	mes "Keheheheheheheheh~";
 	mes "Don't think this is the end of it!";
 	close;
-L_Skip:
-	mes "Hmm... you have a pretty high job level..... I'll be nice today and let you pass.";
-	mes "Next you should go see ^5533FFDarwin^000000.";
-	mes "He'll teach you how to do the experiments.";
-	mes "Tell him I sent you.";
-	set ALCH_Q,3;
-	set ALCH_Q2, 0;
-	close;
 }
 
-
-//==================================================================================================//
-//					3rd Test: Mix some medicine
-//==================================================================================================//
-alde_alche,13,15,8	script	Darwin	750,{
-	mes "[Darwin]";
-	if(baseJob == Job_Merchant) goto L_Merc;
-L_Other:
-	mes "more to lose or gain...";
-	mes "It's always like that...";
-	next;
-	mes "[Darwin]";
-	mes "All I can see through my cursed eyes";
-	mes "are illusions from the past,";
-	mes "Ahahahaha...";
-	next;
+alde_alche,13,15,7	script	Studying Man#am	750,{
+	//set max_max_c,1201;
+	//if (max_max_c == 1) {
+	//	mes "- Wait a minute! -";
+	//	mes "- Currently you are carrying -";
+	//	mes "- too many items with you. -";
+	//	mes "- Please come back again -";
+	//	mes "- after you store some items into kafra storage. -";
+	//	close;
+	//	return
+	//}
 	mes "[Darwin]";
-	mes "There's no such thing as paradise ... is there ?";
-	mes "My love Harmona.... Aah....";
-	close;
-
-L_Merc:
-	if(ALCH_Q == 3) goto L_Start;
-	if(ALCH_Q == 4) goto L_Done;
-	goto L_Other;
-
-L_Start:
-	if(ALCH_Q2 == 1) goto L_Check;
-	mes "...........";
-	mes ".........";
-	mes "....Who is it...";
-	next;
-	mes "[Darwin]";
-	mes "A wolf? Or a human...";
-	mes "You must be looking for something as well.";
-	next;
-	mes "[Darwin]";
-	mes "If you have something precious, be careful.";
-	mes "You may lose something else while while going after another...";
-	next;
-	mes "[Darwin]";
-	mes "..........";
-	next;
-	mes "[Darwin]";
-	mes "... but what brings you here.";
-	mes "Coming to a place like this.";
-	next;
-	menu "I want to learn how to experiment.",M_Exp, "Tell me more about flowers.",M_Flow;
-
-	M_Flow:	
+	if (BaseJob != Job_Merchant) {
+		if (BaseJob == Job_Alchemist) {
+			mes "Ah...";
+			mes "You...";
+			mes "You've become";
+			mes "an Alchemist.";
+			next;
+			mes "[Darwin]";
+			mes "Remember...";
+			mes "In your quest";
+			mes "to make your";
+			mes "dreams come true,";
+			mes "do not lose what";
+			mes "you cherish.";
+			next;
+			mes "[Darwin]";
+			mes "Ah...";
+			mes "Harmona...";
+			mes "My love...";
+			close;
+		}
+		else {
+			mes "When you have";
+			mes "your dreams, you";
+			mes "have everything.";
+			mes "Without them, you have";
+			mes "nothing more to lose.";
+			next;
+			mes "[Darwin]";
+			mes "These cursed eyes...";
+			mes "They've lost sight of";
+			mes "my dreams a long time ago.";
+			mes "Ha ha ha ha...";
+			next;
+			mes "[Darwin]";
+			mes "Does paradise";
+			mes "really exist...?";
+			mes "Not without my love...";
+			mes "Not without Harmona...";
+			close;
+		}
+	}
+	if (ALCH_Q == 6) {
+		mes "...";
+		next;
 		mes "[Darwin]";
-		mes ".......";
+		mes "...";
 		mes "......";
-		mes "...think about your precious things...";
 		next;
 		mes "[Darwin]";
-		mes ".... There is a flower that I faintly remember....";
+		mes "...";
+		mes "......";
+		mes "Who is it...?";
 		next;
+		monster "alde_alche",13,15,"Wolf",1013,1;
+		killmonsterall "alde_alche";
 		mes "[Darwin]";
-		mes "I divulged into researching one thing.....";
-		mes "for the one I love...";
+		mes "A wolf?";
+		mes "Or a human?";
+		mes "You must be seeking";
+		mes "something, are you not?";
 		next;
 		mes "[Darwin]";
-		mes "Lets just say that it was about the relationship between wolf and flowers...";
-		mes "I won't tell you the details.";
+		mes "After all...";
+		mes "Everyone has desires";
+		mes "to fulfill. Be be careful.";
+		mes "Do not be like the wild";
+		mes "wolf drawn to the flowers.";
 		next;
 		mes "[Darwin]";
-		mes "But yes ... it was a flower.";
-		mes "with its shine, it was said to  let you see paradise Illusion Flower...";
+		mes "In your efforts to gain something else, you may end up sacrificing something precious to you.";
 		next;
 		mes "[Darwin]";
-		mes "I made a homunculus.";
-		mes "Nobody believe me. that I made life from a flower!!!";
-		mes "My research!";
+		mes "Cultivating joy and happiness";
+		mes "is much like cultivating flowers.";
+		mes "If something is missing, the";
+		mes "flower will wilt away...";
 		next;
 		mes "[Darwin]";
-		mes "But now, I have nothing left..";
-		mes "It's all over.";
-		mes "Time has stopped at that moment in my life...";
+		mes "What brings you";
+		mes "to this kind of place?";
+		next;
+		switch(select("I want to learn how to experiment.:Tell me more about flowers.:Nothing.")) {
+		case 1:
+			mes "[Darwin]";
+			mes "You wish to";
+			mes "learn Alchemy?";
+			mes "Everything I know,";
+			mes "I've learned for the";
+			mes "sake of making my";
+			mes "dream come true...";
+			next;
+			mes "[Darwin]";
+			mes "I'll teach";
+			mes "you the basics...";
+			mes "But everything you";
+			mes "learn afterwards must";
+			mes "be directed through";
+			mes "your own motivations.";
+			next;
+			mes "[Darwin]";
+			mes "I will teach you";
+			mes "how to make simple";
+			mes "medicine. So please";
+			mes "bring the following";
+			mes "materials right away.";
+			next;
+			mes "[Darwin]";
+			mes "^551A8B3 Medicine Bowls^000000,";
+			mes "^551A8B3 Empty Bottles^000000,";
+			mes "^551A8B1 Red Herb^000000,";
+			mes "^551A8B1 Yellow Herb^000000 and";
+			mes "^551A8B1 White Herb^000000.";
+			set ALCH_Q,7;
+			next;
+			mes "[Darwin]";
+			mes "Once you have";
+			mes "prepared everything,";
+			mes "return to me.";
+			close;
+		case 2:
+			mes "[Darwin]";
+			mes "Flowers...?";
+			mes "In the darkest";
+			mes "recesses of my mind,";
+			mes "there is a blossum";
+			mes "that I faintly remember...";
+			next;
+			mes "[Darwin]";
+			mes "For the one that";
+			mes "I love, I put all";
+			mes "of my efforts into";
+			mes "researching that one thing.";
+			next;
+			mes "[Darwin]";
+			mes "I won't tell you the details,";
+			mes "but I was basically researching";
+			mes "the relationship between";
+			mes "wolves and flowers.";
+			next;
+			mes "[Darwin]";
+			mes "But yes...";
+			mes "It was a flower.";
+			mes "With its shine, it was said";
+			mes "to let you see paradise.";
+			mes "The ^551A8BIllusion Flower^000000...";
+			next;
+			mes "[Darwin]";
+			mes "I even made";
+			mes "a Homunculus,";
+			mes "but no one believed that I could create new life from a flower...";
+			next;
+			mes "[Darwin]";
+			mes "Then...";
+			mes "Well, some other things happened, and now I have nothing left. Time no longer has any meaning for me.";
+			next;
+			mes "[Darwin]";
+			mes "Ahh...";
+			mes "Harmona...";
+			mes "Where have you gone?";
+			mes "I hope you're in a field";
+			mes "of beautiful flowers...";
+			close;
+		case 3:
+			mes "[Darwin]";
+			mes "Consider what";
+			mes "is most precious";
+			mes "to you. It cannot";
+			mes "be protected if you";
+			mes "do not recognize it.";
+			close;
+		}
+	}
+	else if (ALCH_Q == 7) {
+		mes "...";
+		mes "......";
 		next;
 		mes "[Darwin]";
-		mes "Aag... Harmona, in the beautiful fields of flowers,";
-		mes "where have you gone....";
-		close;
-	M_Exp:
+		mes "...";
+		mes "......";
+		mes "Who is it...?";
+		next;
 		mes "[Darwin]";
-		mes "You want to learn Alchemy...";
-		mes "All the knowledge I possess..";
-		mes "I made to make my dreams come true...";
+		mes "Ah...";
+		mes "You are the one who";
+		mes "wishes to learn Alchemy.";
+		mes "Have you prepared everything?";
+		next;
+		if (countitem(710) > 0) {
+			mes "[Darwin]";
+			mes "Wait.";
+			mes "That Illusion Flower.";
+			mes "How did you get that?";
+			next;
+			mes "[Darwin]";
+			mes "Where did you find it?!";
+			mes "The flower that slowly";
+			mes "blooms under the";
+			mes "moonlight?";
+			mes "It's beautiful...!";
+			next;
+			mes "[Darwin]";
+			mes "Th-That flower...";
+			mes "Please let me see it.";
+			mes "The Illusion Flower!";
+			mes "Uwaaaaaaah!!";
+			next;
+			mes "[Darwin]";
+			mes "Would you be so kind";
+			mes "as to let me have this flower?";
+			mes "I'm sure that this is the Moonlight Flower that I've been seeking!";
+			next;
+			if (select("Sorry, I can't give it to you.:I brought it to give to you.") == 1) {
+				mes "[Darwin]";
+				mes "I understand.";
+				mes "You can't give";
+				mes "such a precious";
+				mes "flower to just anyone.";
+				mes "Well... It's okay.";
+				next;
+				mes "[Darwin]";
+				mes "It just brought back old memories. I shouldn't have asked in the first place. In any case, please bring what is needed for the experiment.";
+				next;
+				mes "[Darwin]";
+				mes "Please leave that flower";
+				mes "somewhere else. It brings";
+				mes "back too many memories...";
+				close;
+			}
+			mes "[Darwin]";
+			mes "Are you";
+			mes "serious?!";
+			mes "Thank you!";
+			mes "Such a precious flower.";
+			mes "Ah, Harmona, my love...";
+			next;
+			mes "[Darwin]";
+			mes "Yes...";
+			mes "I shall repay you for this.";
+			mes "I shall plant all of my knowledge of Alchemy directly into your mind...";
+			next;
+			mes "[Darwin]";
+			mes "Open your eyes wide,";
+			mes "and look into my eyes!!";
+			mes "Don't stop until the end!!";
+			next;
+			mes "Lorem ipsum dolor sit amet,";
+			next;
+			mes "Lorem ipsum dolor sit amet,";
+			mes "consectetuer adipiscing elit.";
+			next;
+			mes "Lorem ipsum dolor sit amet,";
+			mes "consectetuer adipiscing elit.";
+			mes "Aenean fermentum ullamcorper.";
+			next;
+			mes "Lorem ipsum dolor sit amet,";
+			mes "consectetuer adipiscing elit.";
+			mes "Aenean fermentum ullamcorper.";
+			mes "Vestibulum ante ipsum primis in";
+			next;
+			mes "Lorem ipsum dolor sit amet,";
+			mes "consectetuer adipiscing elit.";
+			mes "Aenean fermentum ullamcorper.";
+			mes "Vestibulum ante ipsum primis in";
+			mes "faucibus orci luctus et ultrices";
+			next;
+			mes "Lorem ipsum dolor sit amet,";
+			mes "consectetuer adipiscing elit.";
+			mes "Aenean fermentum ullamcorper.";
+			mes "Vestibulum ante ipsum primis in";
+			mes "faucibus orci luctus et ultrices";
+			mes "posuere cubilia Curae; Morbi";
+			next;
+			mes "Lorem ipsum dolor sit amet,";
+			mes "consectetuer adipiscing elit.";
+			mes "Aenean fermentum ullamcorper.";
+			mes "Vestibulum ante ipsum primis in";
+			mes "faucibus orci luctus et ultrices";
+			mes "posuere cubilia Curae; Morbi";
+			mes "massa, fermentum vitae...";
+			next;
+			delitem 710,1; //Illusion_Flower
+			mes "[Darwin]";
+			mes "^666666*Gasp...*^000000";
+			mes "You are now";
+			mes "an Alchemist!!";
+			mes "Go to the Union";
+			mes "and cast away the last";
+			mes "vestiges of Merchant life!!";
+			set ALCH_Q,40;
+			close;
+		}
+		else if (countitem(7134) > 2 && countitem(713) > 2 && countitem(507) > 0 && countitem(508) > 0 && countitem(509) > 0) {
+			mes "[Darwin]";
+			mes "Seems like you have everything ready. As promised, I will teach you how to make simple medicine.";
+			next;
+			mes "[Darwin]";
+			mes "First, prepare the Medicine Bowl. Then, you put the Herbs inside, like this, and slowly crush them.";
+			next;
+			mes "[Darwin]";
+			mes "Pour small amounts";
+			mes "of clean water and stir";
+			mes "the mixture until it thickens.";
+			mes "Afterwards, add some more Herbs.";
+			next;
+			mes "[Darwin]";
+			mes "That's how you make it. If you think you have enough, gently pour the mixture into an empty bottle.";
+			delitem 7134,3; //Medicine_Bowl
+			delitem 713,3; //Empty_Bottle
+			delitem 507,1; //Red_Herb
+			delitem 508,1; //Yellow_Herb
+			delitem 509,1; //White_Herb
+			next;
+			mes "[Darwin]";
+			mes "There you go,";
+			mes "it's complete.";
+			mes "Now, make some medicine";
+			mes "using the simple procedure";
+			mes "I just explained to you.";
+			set w_point,0;
+			next;
+			switch(select("Prepare the Medicine Bowl.:Put the Medicine Bowl on your head.:Kick the Medicine Bowl.")) {
+			case 1:
+				break;
+			case 2:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "What...?";
+				next;
+				break;
+			case 3:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "No!";
+				next;
+				break;
+			}
+			switch(select("Put some dirt in the Medicine Bowl.:Put some Herbs in the Medicine Bowl.:Put a Harp in the Medicine Bowl.")) {
+			case 1:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "...Eh!?";
+				mes "That's not";
+				mes "medicine!";
+				next;
+				break;
+			case 2:
+				break;
+			case 3:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "A Harp?";
+				mes "And how would";
+				mes "you do that?";
+				next;
+				break;
+			}
+			switch(select("Crush the Herbs.:Crush the Medicine Bowl.:Crush Darwin's foot.")) {
+			case 1:
+				break;
+			case 2:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "Wh-What are";
+				mes "you doing!?";
+				next;
+				break;
+			case 3:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "Agh...!";
+				mes "What do you";
+				mes "think you're";
+				mes "doing?!";
+				next;
+				break;
+			}
+			switch(select("Spray clean water.:Drink clean water.:Pour clean water.")) {
+			case 1:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "Huh?";
+				mes "What are you doing?";
+				next;
+				break;
+			case 2:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "W-wait...";
+				mes "Are you";
+				mes "taking a break?";
+				next;
+				break;
+			case 3:
+				break;
+			}
+			switch(select("Continue crushing the Herbs.:Continue eating the Herbs.:Continue dancing and singing.")) {
+			case 1:
+				break;
+			case 2:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "Eat the Herbs?";
+				mes "I think you need";
+				mes "to focus on the";
+				mes "task at hand...";
+				next;
+				break;
+			case 3:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "Singing and";
+				mes "dancing? Alchemists";
+				mes "don't do that, have";
+				mes "you gone crazy?";
+				next;
+				break;
+			}
+			switch(select("Put noodles in and fry it.:Pour it in an empty bottle.:Hold the Medicine Bowl and drink it.")) {
+			case 1:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "We're Alchemists,";
+				mes "not restaurant chefs.";
+				next;
+				break;
+			case 2:
+				break;
+			case 3:
+				set .@w_point,.@w_point+1;
+				mes "[Darwin]";
+				mes "Huh...";
+				mes "Pretty sloppy...";
+				next;
+				break;
+			}
+			if (.@w_point > 0) {
+				mes "[Darwin]";
+				mes "...";
+				mes "......";
+				next;
+				mes "[Darwin]";
+				mes "You messed up the mixture";
+				mes "since you didn't follow the procedure! Get some more ingredients so you can try it";
+				mes "again until you get it right.";
+				close;
+			}
+			getitem 501,1; //Red_Potion
+			getitem 503,1; //Yellow_Potion
+			getitem 504,1; //White_Potion
+			mes "[Darwin]";
+			mes "Good job.";
+			mes "It came out pretty well considering it's your first time. Go ahead and keep the medicines that you've just made.";
+			set ALCH_Q,8;
+			next;
+			mes "[Darwin]";
+			mes "Now, go into the next room";
+			mes "and speak to Van Helmont to";
+			mes "continue your training.";
+			next;
+			mes "[Darwin]";
+			mes "Never forget...";
+			mes "You must always protect";
+			mes "what is most precious to you.";
+			close;
+		}
+		else {
+			mes "[Darwin]";
+			mes "Have you forgotten";
+			mes "what you need to bring?";
+			mes "Let me remind you once";
+			mes "again. You must come";
+			mes "back with...";
+			next;
+			mes "[Darwin]";
+			mes "^551A8B3 Medicine Bowls^000000,";
+			mes "^551A8B3 Empty Bottle^000000,";
+			mes "^551A8B1 Red Herb^000000,";
+			mes "^551A8B1 Yellow Herb^000000 and";
+			mes "^551A8B1 White Herb^000000.";
+			next;
+			mes "[Darwin]";
+			mes "Come back";
+			mes "when you are";
+			mes "ready...";
+			close;
+		}
+	}
+	else if (ALCH_Q == 8) {
+		mes "I said to go";
+		mes "to Van Helmont.";
+		mes "I'd like to teach you";
+		mes "more, but I can't.";
 		next;
 		mes "[Darwin]";
-		mes "I'll teach you the basics...";
-		mes "but you must determine your own wishes.";
+		mes "Aah...";
+		mes "Harmona, my love.";
+		mes "I can't even see the flower anymore. My soul quietly";
+		mes "withers as well..";
+		close;
+	}
+	else if (ALCH_Q == 40) {
+		mes "I have already given you all of my knowledge and have nothing more";
+		mes "to teach you.";
 		next;
 		mes "[Darwin]";
-		mes "So, here are the basics.";
-		mes "This is how you make simple medicine...";
-		mes "Prepare some stuff...";
+		mes "Go to the second floor and talk to speak to our Union Leader. Once";
+		mes "you do that, your life as an Alchemist will begin.";
+		close;
+	}
+	else {
+		mes "When you have";
+		mes "your dreams, you";
+		mes "have everything.";
+		mes "Without them, you have";
+		mes "nothing more to lose.";
 		next;
 		mes "[Darwin]";
-		mes "^5533FF3 Medicine Bowls";
-		mes "3 Empty Bottles";
-		mes "1 Red Herb";
-		mes "1 Yellow Herb";
-		mes "1 White Herb^000000";
+		mes "These cursed eyes...";
+		mes "They've lost sight of";
+		mes "my dreams a long time ago.";
+		mes "Ha ha ha ha...";
 		next;
 		mes "[Darwin]";
-		mes "Once you have prepared all the items... come here.";
-		set ALCH_Q2, 1;
-		close;
-
-L_Check:
-	mes "...........";
-	mes ".........";
-	mes "...Who is it....";
-	next;
-	mes "[Darwin]";
-	mes "Ah You're the one that wants to learn Alchemy...";
-	mes "So did you prepare everything?";
-	next;
-	if(countitem(7134) < 3 || countitem(713) < 3 || countitem(507) < 1 || countitem(508) < 1 || countitem(509) < 1) goto L_NotEnuf;
-	delitem 7134,3;
-	delitem 713,3;
-	delitem 507,1;
-	delitem 508,1;
-	delitem 509,1;
-	mes "[Darwin]";
-	mes "Seems like you have everything ready.";
-	mes "As i promised, I'll teach you how to make medicine";
-	next;
-	mes "[Darwin]";
-	mes "First, prepare the Medicine Bowl then put the Herbs inside like this.";
-	mes "And you slowly crush them.";
-	next;
-	mes "[Darwin]";
-	mes "Pour small amounts of clean water and stirr until it become thick, ";
-	mes "then add some more Herbs.";
-	next;
-	mes "[Darwin]";
-	mes "That's how you make it if you think you have enough, ";
-	mes "gently pour it into an empty bottle";
-	next;
-	mes "[Darwin]";
-	mes "There you go, its complete.";
-	mes "This time, do as I showed you.";
-	mes "It should be easy since its so simple.";
-	next;
-	mes "[Darwin]";
-	mes "... even though you don't have one?";
-	next;
-	set @score,0;
-	menu "Prepare the medicine bowl",-, "Wear the medicine bowl on the head",M_0, "Kick the medicine bowl",M_0;
-
-		set @score,@score+10;
-	M_0:
-
-	menu "Put the sand into the medicine bowl",M_1, "Put the herbs into the medicine bowl",-, "Put the harp into the medicine bowl",M_1;
-
-		set @score,@score+10;
-	M_1:
-
-	menu "Smash the herbs",-, "Smash the medicine bowl",M_2, "Smash the Tarosia's foots",M_2;
-
-		set @score,@score+10;
-	M_2:
-
-	menu "Spray the water",M_3, "Drink the water",M_3, "Pour in the water",-;
-
-		set @score,@score+10;
-	M_3:
-
-	menu "Continue to smash the herbs",-, "Continues to eat the herbs",M_4, "Continues to dance and sing",M_4;
-
-		set @score,@score+10;
-	M_4:
-
-	menu "Put in the noodles and fry it",M_5, "Put into the Empty Bottle",-, "Raise the medicine bowl and drink it",M_5;
-
-		set @score,@score+10;
-	M_5:
-
-	mes "[Darwin]";
-	if(@score < 60) goto L_Failed;
-	mes "... Good job. It came out prettywell considering it's your first time...";
-	mes "As a souvenier, take these.";
-	getitem 501,1;
-	getitem 503,1;
-	getitem 504,1;
-	set ALCH_Q,4;
-	set ALCH_Q2,0;
-	next;
-	mes "[Darwin]";
-L_Done:
-	mes "Go to ^5533FFVan Helmont^000000 in the next room...";
-	mes "He'll teach you more details.";
-	mes "Go learn from him.";
-	next;
-	mes "[Darwin]";
-	mes "Don't forget...";
-	mes "You must protect what is trully precious to you.....";
-	close;
-
-	L_Failed:
-		mes "... You messed up all the ingredients.";
-		mes "... Go bring some more.";
+		mes "Does paradise";
+		mes "really exist...?";
+		mes "Not without my love...";
+		mes "Not without Harmona...";
 		close;
-L_NotEnuf:
-	mes "[Darwin]";
-	mes "...You must've forgotten the materials to bring.";
-	mes "I'll tell you again.";
-	mes "Don't forget them this time.";
-	next;
-	mes "[Darwin]";
-	mes "^5533FF3 Medicine Bowls";
-	mes "3 Empty Bottles";
-	mes "1 Red Herb";
-	mes "1 Yellow Herb";
-	mes "1 White Herb^000000";
-	next;
-	mes "[Darwin]";
-	mes "Come back when you are ready...";
-	close;	
+	}
 }
 
-
-//==================================================================================================//
-//					4th Test: Learn from Morgenstein
-//==================================================================================================//
-alde_alche,79,19,4	script	Van Helmont	748,{
-	mes "[Van Helmont]";
-	if(baseJob == Job_Merchant) goto L_Merc;
-L_Other:
-	mes "Just a little ... yes, a little bit more ....";
-	mes "agh, just a little bit more and it would've been done!";
-	next;
-	mes "[Van Helmont]";
-	mes "Why, why another failure!!!";
-	mes "Nothing was wrong!";
-	mes "Why! Why!";
-	next;
-	mes "[Van Helmont]";
-	mes "Does that mean I have to get more materials...";
-	mes "But I should be able to complete it one day....Heeh...";
-	close;
-L_Merc:
-	if(ALCH_Q == 4) goto L_Start;
-	if(ALCH_Q == 5) goto L_Done;
-	goto L_Other;
-L_Start:
-	if(ALCH_Q2 == 1) goto L_Check;
-	mes "Arrrrgh... Why does this formula just stop... What's wrong.";
-	mes "Theoretically it's all correct...";
-	mes "I'm sure it's because there is an error in the formula";
-	mes "somewhere...";
-	next;
-	mes "[Van Helmont]";
-	mes "That's it, I pour it here and it should stop... but this is the formula that solution doesn't stop flowing.";
-	mes " How could I make  such a stupid mistake... when did I switch these...";
-	next;
-	mes "[Van Helmont]";
-	mes "Yes, that's it. I just need to fix this part.";
-	mes "No need to start over.";
-	mes "I just have to fix it...";
-	mes "....But, wait. wait.";
-	next;
+alde_alche,79,19,5	script	Experiment Expert#am	748,{
 	mes "[Van Helmont]";
-	mes ".....................";
-	next;
-	mes "[Van Helmont]";
-	mes "....Who are you?";
-	next;
-	menu "I want to become an Alchemist.",-,".....",M_Bye;
-
+	if (BaseJob != Job_Merchant) {
+		if (BaseJob == Job_Alchemist) {
+			mes "What do you want?";
+			mes "I'm busy!! Don't";
+			mes "bother me and get";
+			mes "on your way.";
+			next;
+			mes "[Van Helmont]";
+			mes "Now, come on...";
+			mes "You'll never get";
+			mes "any research completed if you just slack off. Go out and learn all that you can.";
+			next;
+			mes "[Van Helmont]";
+			mes "Reading science journals and performing experiments. That's what Alchemy is all about. Now, let me get back to work!";
+			close;
+		}
+		else {
+			mes "Just a little...";
+			mes "A little bit more...";
+			mes "Nooo! Just a little";
+			mes "bit more and it";
+			mes "would've been done!";
+			next;
+			mes "[Van Helmont]";
+			mes "Why...?!";
+			mes "Why, another failure?!";
+			mes "My calculations were";
+			mes "all correct! W-Wait...!";
+			next;
+			mes "[Van Helmont]";
+			mes "Perhaps, if I capacitated the thermal flux by using the neutronic gradient, it just might work...!";
+			close;
+		}
+	}
+	if (ALCH_Q == 8) {
+		mes "Arrrrgh...!";
+		mes "Why isn't this formula working? What's wrong? In theory, it's all correct, but there must be an error in the formula somewhere...";
+		next;
 		mes "[Van Helmont]";
-		mes "Oh, I see....";
-		mes "Haha you want to learn Alchemy in world like this, what a funny merchant... hmmm.";
+		mes "I pour it in here, and it should stop. Wait, this is the wrong solution! How could I make such";
+		mes "a dumb mistake?! When did these";
+		mes "get switched?!";
 		next;
 		mes "[Van Helmont]";
-		mes "Well, that's nice, but I have a very urgent experiment I must tend to.";
-		mes "So don't get in the way.";
+		mes "Okay, okay...";
+		mes "I just need to fix this part.";
+		mes "No need to start over. I just";
+		mes "need to fix it... But wait. Wait...";
 		next;
-		menu "Teach me something.",-,"..........",M_Bye;
-
+		mes "[Van Helmont]";
+		mes ".................";
+		next;
+		mes "[Van Helmont]";
+		mes "Um...";
+		mes "Who are you?";
+		next;
+		if (select("I want to become an Alchemist.:.......") == 2) {
+			mes "[Van Helmont]";
+			mes "Hmm...?";
+			mes "What, did you just want to watch? Fine, fine, but do it quietly and leave right when you're done.";
+			next;
+			mes "[Van Helmont]";
+			mes "Stay out of my way and don't go around touching stuff. There might be some volatile materials, so it'd be dangerous to have any accidents.";
+			close;
+		}
+		mes "[Van Helmont]";
+		mes "You...?";
+		mes "An Alchemist?";
+		mes "What a funny Merchant.";
+		next;
+		mes "[Van Helmont]";
+		mes "Well, that's nice, but I have very urgent experiments that require";
+		mes "my attention, so don't get";
+		mes "in the way.";
+		next;
+		if (select("Teach me something.:...") == 1) {
 			mes "[Van Helmont]";
-			mes "Argh... didn't I just tell you not to bother me?";
-			mes "Why can't you understand when I say something!";
+			mes "Argh...!";
+			mes "Didn't I just tell you not to bother me? What's so hard to understand about that?";
 			next;
 			mes "[Van Helmont]";
-			mes "Ok, I'll give you an assignment.";
-			mes "Go study and come back. Let's see.";
-			mes "What would be good... Hmm...";
+			mes "Fine, fine. I'll give you an assignment. Learn something";
+			mes "new and come back. Let's see.";
+			mes "What would be good...";
 			next;
 			mes "[Van Helmont]";
-			mes "Oh, I got it. Go learn from ^5533FFMorgenstein^000000. Learn how to make a ^009500Counteragent^000000 and ^FF3355Mixture^000000.";
-			mes "You can find him in ^5533FFGeffen^000000.";
+			mes "Okay, I got it.";
+			mes "Go learn how to make";
+			mes "a Counteragent and Mixture";
+			mes "from Molgenstein.";
 			next;
 			mes "[Van Helmont]";
-			mes "You don't need to bring what you made. But just go watch how he makes medicine and stuff.";
-			mes "Got it?";
+			mes "You don't need to bring anything. Just go watch him at work and have him tell you how he makes those solutions. Got it?";
 			next;
 			mes "[Van Helmont]";
+			set ALCH_Q,9;
 			mes "Well then, see you later.";
-			mes "You'd be best off going as soon as you can.";
-			set ALCH_Q2,1;
+			mes "You'd better get going as";
+			mes "soon as you can.";
 			close;
-	M_Bye:
+		}
+		mes "[Van Helmont]";
+		mes "...";
+		next;
 		mes "[Van Helmont]";
-		mes "If you don't have business here just go away. Ok!!!";
+		mes "...";
+		mes "......";
+		next;
+		mes "[Van Helmont]";
+		mes "...";
+		mes "......";
+		next;
+		mes "[Van Helmont]";
+		mes "So if I recalibrate the combustion rate of this compound, that should negate any cohesive tendencies in this particle flux...";
+		next;
+		mes "[Van Helmont]";
+		mes "But what am I going to do";
+		mes "about all of this spontaneous";
+		mes "crystallization?! I can't very well remove this matrix, I need it for the catalyst to reach the triple point.";
+		next;
+		mes "[Van Helmont]";
+		mes "Damn!";
+		mes "What am";
+		mes "I going to do?!";
 		close;
-L_Check:	
-	if((MISC_QUEST & 4)==0) goto L_NotRdy; //this's a Morgenstein Quest check
-	mes "Yes, cut the Tentacle..";
-	mes "and mix some Sticky Mucus,";
-	mes "Jellopy solution in the test tube Darn, where did the Medicine Bowl go...";
-	next;
-	mes "[Van Helmont]";
-	mes "Did I use them all.. At a time like this, grrr. I wonder if Nicholas has any left.";
-	mes "Ganfunnit... what a pain.";
-	mes "....but, wait. wait.";
-	next;
-	mes "[Van Helmont]";
-	mes "Ah, you're that merchant from before. So.. did you learn anything?";
-	mes "I didn't send you there to play.";
-	next;
-	mes "[Van Helmont]";
-	mes "Let me ask you a couple of questions. Answer how you heard and learned.";
-	next;
-	set @score,0;
-
-	Q_1a:
+	}
+	else if (ALCH_Q == 9) {
+		mes "Alright, if I make an incision here in the Tentacle, and add a Jellopy and Sticky Mucus solution into the... Where the hell did my Medicine Bowl go?";
+		next;
 		mes "[Van Helmont]";
-		mes "What item is required to form the Counteragent?";
+		mes "Did I use them all at a time like this?! I wonder if Nicholas has any left. Ugh, what a pain. Wait. Wait a minute...";
 		next;
-		menu "Feather",-,"Sticky Mucus",-,"Animal Blood",-;
-
-	Q_1b:
 		mes "[Van Helmont]";
-		mes "Which of the following item is not required in forming the Counteragent?";
+		mes "...";
 		next;
-		menu "Karvodailnirol",-,"Detrimindexta",Q_2a,"Alchol",Q_2a;
-
-			set @score,@score+10;
-
-	Q_2a:
 		mes "[Van Helmont]";
-		mes "What item is required to form the Mixture?";
+		mes "...";
+		mes "......";
+		mes "Who are you?";
 		next;
-		menu "Monster's Feed",-,"Lip of Ancient Fish",-,"Rotten Bandage",-;
-
-	Q_2b:
+		if (select("I want to become an Alchemist?:.......") == 2) {
+			mes "[Van Helmont]";
+			mes "Hmm...?";
+			mes "What, did you just want to watch? Fine, fine, but do it quietly and leave right when you're done.";
+			next;
+			mes "[Van Helmont]";
+			mes "Stay out of my way and don't go around touching stuff. There might be some volatile materials, so it'd be dangerous to have any accidents.";
+			close;
+		}
 		mes "[Van Helmont]";
-		mes "Which of the following item is not required in the process of forming the Mixture?";
+		mes "Ah, of course. The Merchant from before. So what did you learn from Molgenstein? I didn't just send you there for fun, you know.";
 		next;
-		menu "Karvodailnirol",L_Result,"Detrimindexta",-,"Alchol",L_Result;
-
-			set @score,@score+10;
-
-L_Result:
-	mes "[Van Helmont]";
-	if(@score < 20) goto L_Failed;
-	mes "Hmm, you learned well. Ok, now you know some stuff about medicine?";
-	mes "Eh?";
-	mes "I know, you must have a lot to say but let me continue with my experiment.";
-	next;
-	mes "[Van Helmont]";
-	mes "Go out and to the room next to here.  ^5533FFNicholas^000000 probably has more to teach you than me.";
-	set ALCH_Q,5;
-	set ALCH_Q2,0;
-	close;
-
-	L_Failed:
-		mes "...Be honest. You don't know,";
-		mes "do you? I thought I told you to go learn from Morgenstein...";
+		mes "[Van Helmont]";
+		mes "Let me ask you";
+		mes "some questions to";
+		mes "check what you've";
+		mes "learned.";
+		next;
+		if(MISC_QUEST & 4) {
+			mes "[Van Helmont]";
+			mes "Which item is not";
+			mes "necessary to make";
+			mes "a Counteragent?";
+			next;
+			if (select("Karvodailnirol:Detrimindexta:Alcohol") != 1) set .@w_point,.@w_point+1;
+			mes "[Van Helmont]";
+			mes "What item is not";
+			mes "necessary to make";
+			mes "a Mixture?";
+			next;
+			if (select("Karvodailnirol:Detrimindexta:Alcohol") != 2) set .@w_point,.@w_point+1;
+			if (.@w_point > 0) {
+				mes "[Van Helmont]";
+				mes "Weren't you listening to Molgenstein at all? Maybe you";
+				mes "have to watch him make it again.";
+				next;
+				mes "[Van Helmont]";
+				mes "If you can't tell the exact items that you need in an experiment,";
+				mes "you might end up hurting yourself!";
+				close;
+			}
+			mes "[Van Helmont]";
+			mes "Good, you've learned well.";
+			mes "Okay, now you know something about experimentation. You're done here, so now I can continue with my experiments.";
+			next;
+			mes "[Van Helmont]";
+			mes "Go out and find the room next";
+			mes "to this one and talk to Nicholas. He'll continue your training.";
+			next;
+			set ALCH_Q,20;
+			mes "[Van Helmont]";
+			mes "What are you";
+			mes "still doing here?";
+			mes "Go! We both have";
+			mes "more important";
+			mes "things to do!";
+			close;
+		}
+		else {
+			mes "[Van Helmont]";
+			mes "What item do";
+			mes "you need to make";
+			mes "a Counteragent?";
+			next;
+			select("Feather:Sticky Mucus:Animal Gore");
+			mes "[Van Helmont]";
+			mes "What item do";
+			mes "you need to make";
+			mes "a Mixture?";
+			next;
+			select("Monster Feed:Ancient Lips:Rotten Bandage");
+			mes "[Van Helmont]";
+			mes "Be honest. You don't know, do you?! Didn't I say to go to Molgenstein and have him teach you?!";
+			next;
+			mes "[Van Helmont]";
+			mes "Don't even think about coming back until you talk to him! Now stop bothering me and get out of here!";
+			close;
+		}
+	}
+	else if (ALCH_Q == 20) {
+		mes "What...?";
+		mes "I thought I told you to";
+		mes "talk to Nicholas next door?";
 		next;
 		mes "[Van Helmont]";
-		mes "Don't even think about coming back before you've learned for sure!";
-		mes "Stop bothering me and leave!";
+		mes "I need to continue my research,";
+		mes "and you need to finish becoming an Alchemist. Come on, get moving!";
 		close;
-L_NotRdy:
-	mes "Didn't I tell you to visit Morgenstein in Geffen!?!";
-	mes "He is a wise man! You should go to him!";
-	close;
-L_Done:
-	mes "What are you doing? Go out and to the room next to here.  ^5533FFNicholas^000000 probably has more to teach you than me.";
-	mes "I have no more business with you.";
-	close;
-
+	}
+	else {
+		mes "Just a little...";
+		mes "A little bit more...";
+		mes "Nooo! Just a little";
+		mes "bit more and it";
+		mes "would've been done!";
+		next;
+		mes "[Van Helmont]";
+		mes "Why...?!";
+		mes "Why, another failure?!";
+		mes "My calculations were";
+		mes "all correct! Wait...";
+		next;
+		mes "[Van Helmont]";
+		mes "Perhaps, if I capacitated the thermal flux by using the neutronic gradient, it just might work...";
+		close;
+	}
 }
 
+alde_alche,101,184,4	script	Master Alchemist#am	122,{
+	cutin "job_alche_vincent",2;
+	mes "[Vincent Carsciallo]";
+	if (Upper != 0) {
+		mes "You have transcended...";
+		mes "Excellent, excellent.";
+		next;
+		mes "[Vincent Carsciallo]";
+		mes "You don't belong here.";
+		mes "Go and explore the wide world, my friend.";
+		close2;
+		cutin "",255;
+		end;
+	}
+	if (BaseJob != Job_Merchant) {
+		if (BaseJob == Job_Alchemist) {
+			mes "Welcome!";
+			mes "So how is your";
+			mes "research coming along?";
+			next;
+			mes "[Vincent Carsciallo]";
+			mes "At times you get results that are unexpected from an experiment. Although these may be setbacks in your research, such results can also lead to new discoveries.";
+			next;
+			mes "[Vincent Carsciallo]";
+			mes "If you discover something new,";
+			mes "come and tell us. Don't forget that we are all working together to unlock the mysteries of science!";
+		}
+		else if (BaseClass == Job_Novice) {
+			mes "Hm...";
+			mes "A Novice?";
+			mes "You shouldn't be";
+			mes "playing in a place";
+			mes "like this.";
+			next;
+			mes "[Vincent Carsciallo]";
+			mes "There are a lot of volatile chemicals and dangerous";
+			mes "materials in this building. It'd be a lot better if you just played outside.";
+		}
+		else {
+			mes "Hmm...?";
+			mes "What's an adventurer";
+			mes "doing here in the";
+			mes "Alchemist Union?";
+			next;
+			mes "[Vincent Carsciallo]";
+			mes "I'm afraid there's";
+			mes "not much we can offer";
+			mes "you here if you're not";
+			mes "a member of our Union.";
+		}
+		close2;
+		cutin "",255;
+		end;
+	}
+	if (ALCH_Q == 0) {
+		mes "Hmm...?";
+		mes "A Merchant?";
+		mes "Are you interested";
+		mes "in learning Alchemy?";
+		next;
+		mes "[Vincent Carsciallo]";
+		mes "This is the Alchemist Union.";
+		mes "We research and experiment with many different substances in order to create new materials without using magic.";
+		next;
+		mes "[Vincent Carsciallo]";
+		mes "Someday, we hope to unlock";
+		mes "the secret of life, as well as the other mysteries of science.";
+		next;
+		mes "[Vincent Carsciallo]";
+		mes "After being traveling as a Merchant for a long time, you must have developed some scientific curiosity. If you'd like to learn Alchemy, why don't you try joining the Alchemist Union?";
+		close2;
+		cutin "",255;
+		end;
+	}
+	else if (ALCH_Q == 40) {
+		if (JobLevel < 40) {
+			set ALCH_Q,0;
+			mes "Hmm...you don't seem to be qualified yet.";
+			mes "Remember, you must reach at least job level 40 to become an Alchemist.";
+			close2;
+			cutin "",255;
+			end;
+		}
+		if (SkillPoint) {
+			mes "Ah, you're almost";
+			mes "ready to become an";
+			mes "Alchemist, but you must";
+			mes "first allocate your unused";
+			mes "Skill Points.";
+			next;
+			mes "[Vincent Carsciallo]";
+			mes "Talk to me again";
+			mes "once you have spent";
+			mes "all of your extra";
+			mes "Skill Points.";
+			close2;
+			cutin "",255;
+			end;
+		}
+		mes "Ah, well done.";
+		mes "I can see that you";
+		mes "have learned all of";
+		mes "the basics of Alchemy.";
+		next;
+		set ALCH_Q,0;
+		set .@jlevel,JobLevel;
+		callfunc "Job_Change",Job_Alchemist;
+		callfunc "F_ClearJobVar";
+		mes "[Vincent Carsciallo]";
+		mes "Henceforth, you are";
+		mes "now a member of our";
+		mes "illustrious Union.";
+		mes "I hope you learn a lot...";
+		next;
 
-//==================================================================================================//
-//				Test 5 & 6: Word Scramble, Help the Baijin Bros.
-//==================================================================================================//
-alde_alche,145,19,4	script	Nicholas Flamel	57,{
-	mes "[Nicholas Flamel]";
-	if(baseJob == Job_Merchant) goto L_Merc;
-L_Other:
-	mes "Lorem ipsum dolor sit amet,";
-	mes "consectetuer adipiscing elit.";
-	mes "Vivamus sem. Sed metus lacus, viverra id, rutrum eget, rhoncus sit amet, lectus.";
-	mes "Suspendisse sit amet urna in nisl frigilla faucibus.";
-	mes "Nulla scelerisque eros....";
-	mes "......mumblemumble........";
-	close;
-L_Merc:
-	if(ALCH_Q == 5) goto L_Start;
-	if(ALCH_Q == 6) goto L_Start2;
-	if(ALCH_Q == 7) goto L_Done;
-	goto L_Other;
-L_Start:
-	if(ALCH_Q2 == 1) goto L_ReTest;
-	mes "Ooh... you're the Merchant that wants to become an Alchemist?";
-	mes "But you know... not anyone can become an Alchemist.";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "The Union doesn't like those that just want to become Alchemist without a clear goal.";
-	mes "So... to see if you qualify, I'll test how smart you are.";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "As you can see, Alchemist must memorize many equations,";	
-	mes "chemical equations and a lot of other information.";
-	mes "If you're not at a certain level..";
-	mes "it's actually pretty tough.";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "The idea is to prevent those that are going to be useless Alchemists from joining the union!";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "Ok... Here go the questions!";
-	mes "This is to test your concentration so that you won't get confused when looking at charts.";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "Find the words from the group of letters. They can be made by using some or all the letters given";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "You pass if you choose the word that is 'IN' the puzzle.";
-	next;
+		if (.@jlevel == 50) {
+			getitem 7133,1; //Slim_Potion_Create_Book
+			mes "[Vincent Carsciallo]";
+			mes "Let me give you";
+			mes "something special.";
+			mes "You can use this to";
+			mes "begin your life";
+			mes "of research.";
+		}
+		else {
+			switch(rand(1,6)) {
+			case 1:
+				getitem 7127,1; //Alcol_Create_Book
+				break;
+			case 2:
+				getitem 7128,1; //FireBottle_Create_Book
+				break;
+			case 3:
+				getitem 7129,1; //Acid_Create_Book
+				break;
+			case 4:
+				getitem 7130,1; //Plant_Create_Book
+				break;
+			case 5:
+				getitem 7131,1; //Mine_Create_Book
+				break;
+			case 6:
+				getitem 7144,1; //Normal_Potion_Book
+			}
+			mes "[Vincent Carsciallo]";
+			mes "And...";
+			mes "Here's a little";
+			mes "something to help";
+			mes "you begin your";
+			mes "research.";
+		}
+		next;
+		mes "[Vincent Carsciallo]";
+		mes "I'll see";
+		mes "you later then...";
+		mes "Remember to carry";
+		mes "yourself with pride";
+		mes "as an Alchemist!";
+		close2;
+		cutin "",255;
+		end;
+	}
+	else {
+		mes "Ah...";
+		mes "I believe you've";
+		mes "already registered";
+		mes "for training to become";
+		mes "an Alchemist.";
+		next;
+		mes "[Vincent Carsciallo]";
+		mes "Please listen to the";
+		mes "other Alchemists and follow their instructions carefully. You will learn much from them.";
+		close2;
+		cutin "",255;
+		end;
+	}
+}
 
-	Q_1:
-		set @score,0;
+alde_alche,145,19,1	script	Chief Researcher#am	57,{
+	//set max_max_c,1201;
+	//if (max_max_c == 1) {
+	//	mes "- Wait a minute! -";
+	//	mes "- Currently you are carrying -";
+	//	mes "- too many items with you. -";
+	//	mes "- Please come back again -";
+	//	mes "- after you store some items into kafra storage. -";
+	//	close;
+	//}
+	if (ALCH_Q > 19 && ALCH_Q < 22) {
+		if (ALCH_Q == 20) {
+			mes "[Nicholas Flamel]";
+			mes "Ooh...";
+			mes "You're the upstart";
+			mes "Merchant that wants";
+			mes "to become an Alchemist?";
+			next;
+			mes "[Nicholas Flamel]";
+			mes "Not just anyone can become an Alchemist, you know. You've got to have motivation and clear goals and a strong sense of focus.";
+			next;
+			mes "[Nicholas Flamel]";
+			mes "Alchemists must memorize many chemical equations, scientific laws and a lot of other information. It's actually pretty tough.";
+			next;
+			mes "[Nicholas Flamel]";
+			mes "If you can't focus, you'll be confused later when you look at Alchemy charts. My test will judge your ability to do just that.";
+			next;
+		}
 		mes "[Nicholas Flamel]";
-		mes "s m i e x b w u n e n t a g l r";
+		mes "Find the words scrambled";
+		mes "in the group of letters I give you. They can be made by using some";
+		mes "or all of the letters.";
 		next;
-		menu "tiger",-,"wolf",Q_2,"pumpkin",Q_2,"tripped",Q_2;
-
-			set @score,@score+10; 
-
-	Q_2:
 		mes "[Nicholas Flamel]";
-		mes "n i e g b o p d s o a u w r v";
+		mes "You pass if you";
+		mes "choose the word";
+		mes "that is ^551A8BIN^000000 the puzzle.";
 		next;
-		menu "bash",Q_3,"provoke",Q_3,"endure",-,"stun",Q_3,"abracadabra",Q_3;
-
-			set @score,@score+10; 
+		switch(rand(1,3)) {
+		case 1:
+			mes "t m y a n y e o b n e g p r i";
+			next;
+			if (select("Brake:Brass:Bug:Broken:Brigan?") == 5) set .@alch_t,.@alch_t+10;
+			mes "o n c u t a p j l e r s v m u";
+			next;
+			if (select("vendor:storage:weapon:simple:streetshop") == 1) set .@alch_t,.@alch_t+10;
+			mes "t v a r m e g p h e u b o y l";
+			next;
+			if (select("molasses:party:leader:sweets:treacle") == 2) set .@alch_t,.@alch_t+10;
+			mes "q z a h n a i n b r d p t n c";
+			next;
+			if (select("partisan:partizan:pato:paros:pack") == 2) set .@alch_t,.@alch_t+10;
+			break;
+		case 2:
+			mes "m p d i c f a r o g n k w a s";
+			next;
+			if (select("packman:sunshine:ragnarok:wonderland:frost") == 1) set .@alch_t,.@alch_t+10;
+			mes "g b n o p r e f a r e t a s k";
+			next;
+			if (select("purple:smoker:ragnarok:bolt:burnt wood") == 3) set .@alch_t,.@alch_t+10;
+			mes "u g n i s j e k c e o g n d p";
+			next;
+			if (select("scab:kinship:donate:source:opening") == 5) set .@alch_t,.@alch_t+10;
+			mes "r o e h n r o m c a i n p t t";
+			next;
+			if (select("forgemerchant:potionmerchant:dcmerchant:vendingmerchant:battlemerchant") == 2) set .@alch_t,.@alch_t+10;
+			break;
+		case 3:
+			mes "s m i e x b w u n e t a g l r";
+			next;
+			if (select("tiger:wolf:pumpkin:tripped:tore") == 1) set .@alch_t,.@alch_t+10;
+			mes "n i e g b o p d s o a u w r v";
+			next;
+			if (select("bash:provoke:endure:stun:abracadabra") == 3) set .@alch_t,.@alch_t+10;
+			mes "l r m g r e x t a v i n e d e";
+			next;
+			if (select("alberta:latifoliate:crimson:maple:evergreen") == 5) set .@alch_t,.@alch_t+10;
+			mes "r o e h n r o m c a i n p t t";
+			next;
+			if (select("forgemerchant:potionmerchant:dcmerchant:vendingmerchant:battlemerchant") == 2) set .@alch_t,.@alch_t+10;
+			break;
+		}
+		mes "[Nicholas Flamel]";
+		mes "Ah, you finished.";
+		mes "Now, let's see...";
+		if (.@alch_t > 30) {
+			set ALCH_Q,22;
+			mes "Excellent job!";
+			next;
+			mes "[Nicholas Flamel]";
+			mes "Great, you found all of those hidden words. With that kind of concentration, you should have no problem memorizing information.";
+			next;
+			mes "[Nicholas Flamel]";
+			mes "Come back in a little bit while";
+			mes "I prepare the next assignment";
+			mes "for your training.";
+			next;
+			mes "[Nicholas Flamel]";
+			mes "Oh, and before you talk to";
+			mes "me again, make sure you have";
+			mes "^551A8Bplenty of room in your inventory^000000.";
+			close;
+		}
+		else {
+			set ALCH_Q,21;
+			mes "^666666*Gasp!*^000000 H-horrible!";
+			next;
+			mes "[Nicholas Flamel]";
+			mes "Judging from these results, you obviously have a problem with concentrating.";
+			next;
+			mes "[Nicholas Flamel]";
+			mes "If you can't even solve these easy word puzzles, how can you keep track of your experiments and research?";
+			next;
+			mes "[Nicholas Flamel]";
+			mes "Why don't you relax";
+			mes "and rest a bit before";
+			mes "you take the test again?";
+			close;
 
-	Q_3:
+		}
+	}
+	else if (ALCH_Q == 22) {
+		set .@now_weight,MaxWeight-Weight;
+		if (.@now_weight < 1370) {
+			mes "[Nicholas Flamel]";
+			mes "Whoa...";
+			mes "You're carrying too much stuff! First, put some of your things in Kafra Storage.";
+			close;
+		}
 		mes "[Nicholas Flamel]";
-		mes "l r m g r e x t a v i n e d e";
+		mes "Alright...";
+		mes "For your next";
+		mes "assignment, you'll";
+		mes "need to travel to ^551A8BJuno^000000.";
 		next;
-		menu "alberta",Q_4,"latifoliate",Q_4,"crimson",Q_4,"maple",Q_4,"evergreen",-;
-
-			set @score,@score+10; 
-
-	Q_4:
-		mes "[Nicholas Flamel] ";
-		mes "r o e h n r o m c a i n p t t";
-		next;
-		menu "forgemerchant",L_Score,"potionmerchant",-,"dcmerchant",L_Score,"vendingmerchant",L_Score;
-	
-			set @score,@score+10; 
-L_Score:
-	if(@score < 40) goto L_Failed;
-	set ALCH_Q,6;
-	set ALCH_Q2,0;
-	mes "[Nicholas Flamel]";
-	mes "You seem to be done.";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "Let's see.";
-	mes "...Good job. Excellent.";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "Somehow you found all of them.";
-	mes "With that kind of concentration, you should easily be able to read the medicine dictionaries.";
-	mes "Let's see... next is..";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "Come back in a little bit. Get organized too..";
-	close;
-
-	L_Failed:
 		mes "[Nicholas Flamel]";
-		mes "Hmmm... You failed!";
-		mes "Get your glasses maybe you can pass next time wearing those.";
-		set ALCH_Q2,1;
+		mes "There, you'll need to talk to ^551A8BBain^000000 and ^551A8BBajin^000000. Those two are doing Alchemy research with the Sages";
+		mes "in Juno. You'll learn something by assisting them with their project.";
+		next;
+		mes "[Nicholas Flamel]";
+		mes "Come back here to me after you";
+		mes "help them out. They'll need all of these items to continue their experiments.";
+		next;
+		set ALCH_Q,23;
+		mes "[Nicholas Flamel]";
+		mes "1 Mixture,";
+		mes "5 Burnt Tree,";
+		mes "5 Fine Sand,";
+		mes "3 Rough Oridecon";
+		mes "and 3 Rough Elunium.";
+		getitem 974,1; //Mixture
+		getitem 7068,5; //Burn_Tree
+		getitem 7043,5; //Fine_Sand
+		getitem 756,3; //Oridecon_Stone
+		getitem 757,3; //Elunium_Stone
+		next;
+		mes "[Nicholas Flamel]";
+		mes "Alright.";
+		mes "Have a safe trip";
+		mes "and come back in";
+		mes "one piece.";
 		close;
-L_ReTest:
-	mes "Hmmm you returned.";
-	mes "Well will see if you changed."; 
-	next;
-	goto Q_1;	
-
-L_Start2:
-	if(ALCH_Q2 > 0) goto L_Check2;
-	mes "Next, you have to go somewhere.";
-	mes "Go to ^5533FF'The Forgotten City of Yuno'^000000 and meet the ^FF3355Bain and Bajin^000000 brothers who are researching alchemy with the Sages there.";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "Go help out and come back Here, take these... it will help you get close to them.";
-	next;
-	getitem 974,1;
-	getitem 7068,5;
-	getitem 7043,5;
-	getitem 756,3;
-	getitem 757,3;
-	mes "[Nicholas Flamel]";
-	mes "1 Mixture";
-	mes "5 Burnt Tree";
-	mes "5 Fine Sand ";
-	mes "3 Rough Oridecon ";
-	mes "3 Rough Elunium";
-	set ALCH_Q2,1;
-	next;
-	mes "[Nicholas Flamel]";
-	mes "Have a safe trip.";
-	mes "It's Yuno. Come back in one piece.";
-	close;
-L_Check2:
-	if(ALCH_Q2 < 2) goto L_NotDone;
-	set ALCH_Q, 7;
-	set ALCH_Q2, 0;
-	mes "Ooh! Well done on such a long  trip.";
-	mes "I got a message saying that the Bain and Bajin brothers were happy about your visit.";
-	next;
-	mes "[Nicholas Flamel]";
-	mes "You must have successfully helped them.";
-	mes "If you're good enough to be of help to the brothers... ok, I think you qualify.";
-	next;
-	mes "[Nicholas Flamel]";
-L_Done:
-	mes "Go to the Union Leader on the 2nd floor!";
-	mes "Congratulations. You'll change jobs soon!";
-	close;
-
-	L_NotDone:
-		mes "Bain and Bajin brothers are in Yuno go help them.";
+	}
+	else if (ALCH_Q == 23) {
+		mes "[Nicholas Flamel]";
+		mes "Didn't I say to";
+		mes "go to Juno and help";
+		mes "Bain and Bajin with";
+		mes "their Alchemy research?";
 		close;
-
-}
-
-
-//==================================================================================================//
-//					Job Changer
-//==================================================================================================//
-alde_alche,101,184,4	script	Vincent Carsciallo	122,{
-	mes "[Vincent Carsciallo]";
-	if(baseJob == Job_Merchant) goto L_Merc;
-	if(baseJob == Job_Alchemist){
-		mes "How Alchemy going? Make sure to be careful and think about safety at all times.";
-		mes "I wouldn't want you blowing yourself up or anything.....";
+	}
+	else if (ALCH_Q == 24) {
+		set ALCH_Q,40;
+		mes "[Nicholas Flamel]";
+		mes "Ah, you're back!";
+		mes "I just got a message from Bain";
+		mes "and Bajin. They let me know that they were very happy with your assistance.";
+		next;
+		mes "[Nicholas Flamel]";
+		mes "If you were good enough";
+		mes "to help out those brothers,";
+		mes "you definitely qualify to be";
+		mes "an Alchemist.";
+		next;
+		mes "[Nicholas Flamel]";
+		mes "Good work!";
+		mes "All you have to do now is speak to the Union Leader on the 2nd floor! Congratulations, you'll become an Alchemist very soon!";
 		close;
 	}
-	mes "Hmmm? What may a civilian have to do here?";
-	next;
-	mes "[Vincent Carsciallo]";
-	mes "There's nothing amusing. Don't wander and leave.";
-	close;
-L_Merc:
-	if(ALCH_Q == 7) goto L_Change;
-	mes "Hmmm? A merchant.";
-	mes "Are you interested in Alchemy?";
-	next;
-	mes "[Vincent Carsciallo]";
-	mes "This is the Alchemist Union.";
-	mes "We research many different substances.";
-	mes "Our goal is to make something new without the power of magic.";
-	next;
-	mes "[Vincent Carsciallo]";
-	mes "Create new life, and study how to live long and not die ...";
-	mes "We also make new materials out of existing ones...";
-	mes "These are just some of the things we do.";
-	next;
-	mes "[Vincent Carsciallo]";
-	mes "After being a Merchant for a long time ";
-	mes "you start to become interested in everything.";
-	mes "If you would like to learn Alchemy as well,";
-	mes "try joining our Union.";
-	close;
-L_Change:
-	if(skillpoint){
-		mes "Please use all your skill point before talking to me.";
+	else if (ALCH_Q == 40 && BaseJob == Job_Merchant) {
+		mes "[Nicholas Flamel]";
+		mes "All you have to do now is speak to the Union Leader on the 2nd floor! Congratulations, you'll become an Alchemist very soon!";
+		close;
+	}
+	else {
+		mes "[Nicholas Flamel]";
+		mes "Lorem ipsum dolor sit amet,";
+		mes "consectetuer adipiscing elit.";
+		mes "Vivamus sem. Sed metus";
+		mes "lacus, viverra id, rutrum eget,";
+		mes "rhoncus sit amet, lectus.";
+		next;
+		mes "[Nicholas Flamel]";
+		mes "Suspendisse sit amet urna in";
+		mes "nisl fringilla faucibus. Nulla scelerisque eros...";
+		mes "^666666*Mumble Mumble*^000000";
 		close;
 	}
-	mes "Oh, Ok. You joined and learned the basics, too. Well done.";
-	next;
-	set @gift,JBLVL;
-	callfunc "Job_Change",Job_Alchemist;
-	callfunc "F_ClearJobVar";
-	emotion e_grat;
-	mes "[Vincent Carsciallo]";
-	mes "From now on, you are also a member of the Union as an Alchemist.";
-	mes "I hope you learn a lot...";
-	next;
-	if(@gift==50)
-		getitem 7133,1;
-	else
-		getitem 7127,1;
-	mes "[Vincent Carsciallo]";
-	mes "Here's a little something. ";
-	mes "Use it to start off with some research.";
-	next;
-	mes "[Vincent Carsciallo]";
-	mes "I'll see you later then...";
-	mes "Be proud of being an Alchemist!";
-	close;
 }
+
+//============================================================ 
+// Old changelog
+//============================================================ 
+//= v1.0 Working.
+//= npc/quests/counteragent_mixture.txt Also Needed
+//= npc/quests/quests_yuno.txt Also Needed [Darkchild]
+//= v1.1 Fixed some minor bugs.  Optimized some lines. Re-organized the script a bit. 
+//= Giving Parmry NPC, Hammer and Old Book now waves the 50000 fee. (based of mRO website)
+//= Having a joblvl of 50 allows you to skip Rasputin's test. (based of mRO website) [kobra_k88]
+//= 1.2 fixed a few typos (have to hunt more) [Lupus]
+//= 1.3 Added Baby Class Support [Lupus]
+//= 1.6 Added a func which prevent advanced classes passing
+//= 2nd Job Quests again. It also guides adv classes where
+//= to go. [Lupus]
+//= 1.6a fixed some wrong answers, thanks to zlider for info [Lupus]
+//= 2.0 Changed numbers to constants. [Vicious]
+//= 2.2 Got rid of 'al_morgen' var. Now uses (MISC_QUEST & 4) [Lupus]
+//= 2.3 Optimized, changed job numbers to constants. Fixed some spelling [Lupus]
+//= 2.4 Added alternative prizes according to JobLevel [Lupus]
+//= 2.4a Fixed 2 wrong answers in Rasputin's test [Lupus]

+ 18 - 14
npc/jobs/2-2/bard.txt

@@ -5,21 +5,11 @@
 //===== Current Version: ===================================== 
 //= 2.3
 //===== Compatible With: ===================================== 
-//= eAthena Final
+//= eAthena SVN
 //===== Description: ========================================= 
-//= Bard job quest based on ASB 4.0.
-//= Updated to Aegis 10.3 standard.
+//= [Aegis Conversion]
+//= Job quest for Bard class
 //===== Additional Comments: =================================
-//= 07/06/05 : Added 1st Version. [Muad_Dib]
-//= Converted to eAthena format by Dr.Evil
-//= Info about gifts and other info --> http://www.ragnainfo.net/forums/viewtopic.php?t=51467&start=0 
-//= 1.1 Optimized, changed some stuff, fixed some bugs [Lupus]
-//= 1.1a minor song test fix [Lupus]
-//= 1.2 Fixed wrong item ID, added missing commands [Lupus]
-//= 1.3 Updated flower sub-quest according to official [Lupus]
-//= 1.4 Changed priority for the gifts. Now you can win the 1st
-//= prize, too. Added Izidor flower [Lupus]
-//= 2.0 Changed numbers to constants. [Vicious]
 //= 2.1b Updated to the Official One. [Samuray22]
 //= 2.2 Fixed BUG when baby classes weren't able to get a job,
 //=	- fixed bug with final prize [Lupus] HAVE TO CHANE ALL ITEMS to numeric IDs
@@ -945,4 +935,18 @@ S_ChangeJob:
 		close2;
 		cutin "job_bard_aiolo01",255;
 		end;
-}
+}
+
+//============================================================ 
+// Old changelog
+//============================================================ 
+//= 07/06/05 : Added 1st Version. [Muad_Dib]
+//= Converted to eAthena format by Dr.Evil
+//= Info about gifts and other info --> http://www.ragnainfo.net/forums/viewtopic.php?t=51467&start=0 
+//= 1.1 Optimized, changed some stuff, fixed some bugs [Lupus]
+//= 1.1a minor song test fix [Lupus]
+//= 1.2 Fixed wrong item ID, added missing commands [Lupus]
+//= 1.3 Updated flower sub-quest according to official [Lupus]
+//= 1.4 Changed priority for the gifts. Now you can win the 1st
+//= prize, too. Added Izidor flower [Lupus]
+//= 2.0 Changed numbers to constants. [Vicious]

+ 29 - 24
npc/jobs/2-2/crusader.txt

@@ -6,28 +6,11 @@
 //===== Current Version: ===================================== 
 //= 2.8
 //===== Compatible With: ===================================== 
-//= eAthena  0.5.2 +
+//= eAthena  SVN
 //===== Description: ========================================= 
-//= 
+//= [Aegis Conversion]
+//= Job quest for Crusader classes
 //===== Additional Comments: ================================= 
-//= Need optimalization and fixing
-//= thanks to Komurka, KiLLaLeN, Lupus (fixing error)
-//= just a temp Job Quest
-//= 1.2 minor fix of announcement by Freya people
-//= 1.3 Added Baby Class Support, fixed 40/50 lvl item reward
-//=     also fixed too common script names [Lupus]
-//= 1.3a fixed "dead lock" bugs [Lupus]
-//= 1.3b changed monsters ID in patience test [Komurka]
-//= 1.4 Fixed Job Level parameters mix-up. [massdriller] (Thanks to Komurka)
-//= 1.5 Fixed possible EXP abuse [Lupus]
-//= 1.6 Added a func which prevent advanced classes passing
-//=     2nd Job Quests again. It also guides adv classes where
-//=     to go. [Lupus]
-//= 1.7 Updated names and required items, Chivalry Emblem +
-//=     Hand of God allow to skip item gathering [DracoRPG]
-//= 2.0 Changed numbers to constants. [Vicious]
-//= 2.1 Fixed endless loop, wrong condition check [Lupus]
-//=	also changed all job numbers to constants, fixed logic
 //= 2.2 Updated All NPCs to the officials one [Samuray22]
 //=	-Based on the ASB 4.0 Package.
 //=	-Maybe need be checked the monsters in the test 2 and 4.
@@ -40,7 +23,7 @@
 //=	- Fixed some indentation.
 //= 2.5 Fixed some spelling and grammar in crusader quest. [L0ne_W0lf]
 //= 2.6 Fixed bug (about totally blocked baby class), optimized,
-//=		made some NPC more unique names: Monster Summon#cr1 [Lupus]
+//=	made some NPC more unique names: Monster Summon#cr1 [Lupus]
 //= 2.7 Fixed Some variables like ".@item", and changed to "@item". [Samuray22]
 //= 2.8 Fixed a little minor bug. [Samuray22]
 //============================================================
@@ -1491,13 +1474,35 @@ OnEnd:
 
 }
 
-//==============================================================================
+//============================================================ 
 // mapflag
-//==============================================================================
+//============================================================ 
 job_cru	mapflag	nomemo
 job_cru	mapflag	noteleport
 job_cru	mapflag	nosave	SavePoint
 job_cru	mapflag	nopenalty
 job_cru	mapflag	nobranch
 job_cru	mapflag	noexp
-job_cru	mapflag	noloot
+job_cru	mapflag	noloot
+
+//============================================================ 
+// Old changelog
+//============================================================ 
+//= Need optimalization and fixing
+//= thanks to Komurka, KiLLaLeN, Lupus (fixing error)
+//= just a temp Job Quest
+//= 1.2 minor fix of announcement by Freya people
+//= 1.3 Added Baby Class Support, fixed 40/50 lvl item reward
+//=     also fixed too common script names [Lupus]
+//= 1.3a fixed "dead lock" bugs [Lupus]
+//= 1.3b changed monsters ID in patience test [Komurka]
+//= 1.4 Fixed Job Level parameters mix-up. [massdriller] (Thanks to Komurka)
+//= 1.5 Fixed possible EXP abuse [Lupus]
+//= 1.6 Added a func which prevent advanced classes passing
+//=     2nd Job Quests again. It also guides adv classes where
+//=     to go. [Lupus]
+//= 1.7 Updated names and required items, Chivalry Emblem +
+//=     Hand of God allow to skip item gathering [DracoRPG]
+//= 2.0 Changed numbers to constants. [Vicious]
+//= 2.1 Fixed endless loop, wrong condition check [Lupus]
+//=	also changed all job numbers to constants, fixed logic

File diff suppressed because it is too large
+ 1189 - 804
npc/jobs/2-2/dancer.txt


File diff suppressed because it is too large
+ 2536 - 1763
npc/jobs/2-2/monk.txt


+ 1799 - 853
npc/jobs/2-2/rogue.txt

@@ -3,990 +3,1936 @@
 //===== By: ================================================== 
 //= kobra_k88
 //===== Current Version: ===================================== 
-//= 2.3a
+//= 2.4
 //===== Compatible With: ===================================== 
-//= eAthena 1.0 +
+//= eAthena SVN
 //===== Description: ========================================= 
-//= Rogue job quest based off of official iRO Rogue quest.
-//= There are some differences from official quest due to
-//= scripting issues. Missing some message text.  
+//= [Aegis Conversion]
+//= Job quest for Rogue classes
 //===== Additional Comments: ================================= 
-//= 1.1 fixed 3 wrong questions, added missing lines [Lupus]
-//= 1.3 Baby Class Support + 40/50 JobLevel Item fix [Lupus]
-//= 1.5 Fixed possible EXP abuse [Lupus]
-//= 1.6 Added a func which prevent advanced classes passing
-//= 2nd Job Quests again. It also guides adv classes where
-//= to go. [Lupus]
-//= 2.0 Changed numbers to constants. [Vicious]
-//= 2.1 Removed Duplicates [Silent]
-//= 2.2 Merged JFunc [Lupus]
-//= 2.3 Added a possibility for players doing Meginjyard quest
-//= to enter Rogue guild as there's a NPC inside [SinSloth]
-//= 2.3a fixed test4 person interaction, let BABY thieves pass
-//=	the test, too [Lupus]
+//= 2.4 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
+//=	No longer uses function "F_BlockHigh"
 //============================================================ 
 
-
-//=======================================================================================================//
-//					Markie: Test 1 and Jobchange						//
-//***********************************************************************************************************************************************************//
-in_rogue,363,123,3	script	Markie	747,{
-	callfunc "F_BlockHigh",Job_Thief_High,"Thief High",Job_Stalker,"Stalker","Markie";
-
-	mes "[Markie]";
-	if(BaseJob == Job_Thief) goto L_Thief;
-	if(BaseJob == Job_Rogue) goto L_Rogue;
-
-L_JobOther:
-	mes "I don't know how you found this place, but I think you better leave..........";
-	close;
-
-L_Rogue:
-	mes "Nice to see you again sweetie.  You must be having so much fun as Rogue huh? Teh he he....";
-	close;
-
-L_Thief:
-	if(JobLevel < 40){
-		mes "Oh hi there.  If you want to become a Rogue I'm afraid you'll have to come back after you've trained a little more.";
-		mes "Only Thieves with a ^5533FFJob level of at least 40^000000 can become Rogues.";
-		close;
-	}
-	if(ROGUE_Q == 1) goto L_ReTest;
-	if(ROGUE_Q == 2) goto L_Test2;
-	if(ROGUE_Q == 3) goto L_Test3;
-	if(ROGUE_Q == 4) goto L_Test4;
-	if(ROGUE_Q == 5) goto L_Change;
-	mes "Hmm? What brings you down here? Oh I see now... You want to become a rogue don't you sweetie?";
-	next;
-	mes "[Markie]";
-	mes "Well it's nice to meet you.  My name is Markie, what's yours?";
-	next;
-	mes "[Markie]";
-	mes strcharinfo(0) + "..... Te he, you've got a nice name there honey.  By the way, how come you decided to become a Rogue?";
+morocc,100,104,1	script	Thug#rg	118,{
+	mes "[Thug]";
+	mes "*Sigh...*";
+	mes "What is life?";
+	mes "And what use";
+	mes "is money? ...Damn.";
+	mes "Damn this worthless life!";
 	next;
-	mes "[Markie]";
-	mes "Well since you were honest with me and gave me your real name I guess it doesn't really matter.";
-	mes "But for future reference, a Rogue never reveals his/her true identity to anybody.";
+	mes "[Thug]";
+	mes "Hey, kid.";
+	mes "What the hell";
+	mes "are you lookin' at?";
 	next;
-	mes "[Markie]";
-	mes "It's a Rogue's number 1 rule shuga, so from now on you'd better be careful about that.";
-	mes "By the way, here's an application form.....  please fill out all the necessary information.....";
-	next;
-	mes "(you fill out the form and hand it back)";
-	set JBLVL, JobLevel;			// used to determine what item to get at the end
-	next;
-	mes "[Markie]";
-	mes "Okay honey.... looks good, I'll accept your application.";
-	mes "Now that that's been taken care of, how about I conduct a short interview with you?";
-	next;
-	mes "[Markie]";
-	mes "Oh, you don't have to be nervous about it sweetie.... I'm just want to find out how much you know about Rogues.";
-	mes "I do this with all of the Rogue candidates.  Shall we begin?";
-	next;
-	menu "Ok.",L_Test1, "Hold on... I need some time.",-;
-
-		mes "[Markie]";
-		mes "Okay honey, just take your time.  When you're ready come back.";
+	if (select("Me? N-nothing!':........") == 1) {
+		mes "[Thug]";
+		mes "Then get the";
+		mes "hell out of my face!";
+		mes "Didn't you hear me?";
+		mes "Get lost!";
 		close;
-
-
-//=================================================================
-L_Test1:
-//=======
-	mes "[Markie]";
-	mes "I am going to ask you a few questions.  Listen carefully and choose what you think is the best answer okay?";
+	}
+	mes "[Thug]";
+	mes "Hmmm...";
+	mes "Maybe I'll swing by the ^0000FFRogue Guild^000000 in ^0000FFParos Lighthouse^000000...";
 	next;
-	
-	savepoint "in_rogue",366,114;
-	set @score, 0;
-	set ROGUE_Q, 1;
-	if(rand(2)) goto L_QSet2;
+	mes "[Thug]";
+	mes "I needz my money,";
+	mes "and they best have it...";
+	close;
+}
 
+in_rogue,363,122,4	script	Rogue Guildsman#rg	747,{
+	if (Upper == 1) {
 		mes "[Markie]";
-		mes "1) What is the added flee rate that a Thief receives when the ^5533FFImprove Dodge^000000 skill is ^5533FFmastered^000000?";
+		mes "Eh? You...you...?!";
+		mes "Hey, haven't we met before?";
 		next;
-		menu "20",sM1_1, "30",-, "40",sM1_1, "160",sM1_1;
-
-			set @score, @score + 10;
-
-		sM1_1:
-
 		mes "[Markie]";
-		mes "2) Choose a monster that cannot detect a hidden or cloaked character?";
+		mes "..............";
+		mes "Awww, ^FF0000I am sorry^000000! I think I misunderstood you from someone I know.";
 		next;
-		menu "Mummy",sM1_2, "Worm Tail",-, "Argos",sM1_2, "Soldier Skeleton",sM1_2;
-
-			set @score, @score + 10;
-
-		sM1_2:
-
 		mes "[Markie]";
-		mes "3) Where is the Rogue guild located?";
+		mes ".......";
+		mes "........It is strange though. Umm.";
 		next;
-		menu "Comodo",sM1_3, "Kokomo Beach",sM1_3, "Pharos Lightouse",-, "Morroc",sM1_3;
-
-			set @score, @score + 10;
-
-		sM1_3:
-
 		mes "[Markie]";
-		mes "4) In which of the following towns, can you become a Thief?";
+		mes "I never misunderstand people...oh well, be safe anyway!";
+		close;
+	}
+	if (BaseJob == Job_Thief) {
+		if (SkillPoint) {
+			mes "[Rogue Guildsman]";
+			mes "Yo, what are you doin'?!";
+			mes "You can't change your job if you got unused skill points, so use 'em all up. You bettah check yo-self before you wreck yo-self.";
+			close;
+		}
+		if (JobLevel > 39) {
+			if (ROGUE_Q == 0) {
+				mes "[Rogue Guildsman]";
+				mes "So what's a kid";
+				mes "like you doin' here?";
+				if (sex == 1) {
+					mes "Oh, I get it now...";
+					mes "The widdle boy wants";
+				}
+				else {
+					mes "Oh, I see...";
+					mes "Lil' cutie wants ";
+				}
+				mes "to be a ^800000Rogue^000000.";
+				next;
+				mes "[Rogue Guildsman]";
+				mes "Eh, nice meetin' you, I guess. I'm Markie, and I do work for the Rogue Guild, a philanthro-- *ahem* a ^800000feelanthropist^000000 group, as you can see. So what's your name?";
+				next;
+				mes "[Markie]";
+				mes "..." + strcharinfo(0) + "?";
+				mes "Heh heh! Cool name.";
+				mes "If it was dorky, we'd";
+				mes "make you change it,";
+				mes "so you're in luck.";
+				next;
+				mes "[Markie]";
+				mes "So why you wanna join up with the Rogues? I guess you gave me your real name, so you'd be an honest Rogue. Not many of those around, heh heh~";
+				next;
+				mes "[Markie]";
+				mes "Rule number 1 for Rouges...";
+				mes "Never give out your real identity to most people, most of the time. It's just a little backup measure we like to use.";
+				next;
+				mes "[Markie]";
+				mes "Right. I'm officially accepting your application, so now you gotta take a test. Don't sweat it, this first one is real simple.";
+				next;
+				mes "[Markie]";
+				mes "Alright...";
+				mes "Let's get started!";
+				next;
+			}
+			else if (ROGUE_Q == 1) {
+				mes "[Markie]";
+				mes "You again?";
+				mes "Okay, you probably screwed up last time 'cuz you were way too nervous. So just chill and pass";
+				mes "this test, okay?";
+				next;
+			}
+			else if (ROGUE_Q == 2) {
+				mes "[Markie]";
+				mes "Go talk to Smith. His test might be pretty hard. He's one of the guys who makes sure that people pay up their debts to us. So yeah, he might be a bit of a hard case.";
+				next;
+				mes "[Markie]";
+				mes "Yeah...";
+				mes "That guy can be pretty anal, but we need a guy like him in our guild. Anyway, be careful. Lots of luck to you, pal.";
+				close;
+			}
+			else if (ROGUE_Q > 2 && ROGUE_Q < 16) {
+				mes "[Markie]";
+				mes "Hey yo...";
+				mes "Do your best.";
+				next;
+				mes "[Markie]";
+				mes "Heh heh...";
+				mes "Fresh meat. This'll be";
+				mes "a cinch to--Wait! Er, I wasn't talkin' about you! I meant the other fresh meat~";
+				close;
+			}
+			else if (ROGUE_Q == 16 || ROGUE_Q == 17) {
+				mes "[Markie]";
+				if (ROGUE_Q == 16) {
+					mes "Oh hey, it's you!";
+					mes "You did a good job, guy.";
+					mes "Now, lemme change your";
+					mes "job to Rogue. You earned it!";
+					next;
+					mes "[Markie]";
+					mes "Congrats~!";
+					mes "You look";
+					mes "sooo dope!";
+				}
+				else {
+					mes "Oh! It's you!";
+					mes "You were actually able to put up with that guy? Good stuff! Must've had a rough time collect all those items, eh?";
+					next;
+					mes "[Markie]";
+					mes "Hey hey~";
+					mes "Congrats!";
+					mes "You've been";
+					mes "doin' a great job~";
+				}
+				set .@JobLevel,JobLevel;
+				callfunc "Job_Change",Job_Rogue;
+				callfunc "F_ClearJobVar";
+				next;
+				mes "[Markie]";
+				mes "Now...";
+				mes "It's time";
+				mes "for me to make";
+				mes "a speech~ *Ahem*";
+				next;
+				mes "[Markie]";
+				mes "Enjoy your freedom as a Rogue. Just remember that you gotta be free and responsible at the same time. So treat other guys the way you wanna be treated, kay? Alright, seeya round.";
+				close2;
+				if (.@jlevel == 50)
+					getitem 1220,1; //Gladius_
+				else
+					getitem 1219,1; //Gladius
+				end;
+			}
+			if (select("I'm ready.:Hold on, I need to get ready!") == 2) {
+				mes "[Markie]";
+				mes "Get ready...?";
+				mes "Fine, fine.";
+				mes "Take your sweet";
+				mes "time, why don't you?";
+				mes "But hurry up and";
+				mes "come back, got it?";
+				close;
+			}
+			next;
+			mes "[Markie]";
+			mes "Listen carefully, and";
+			mes "pick the right answer.";
+			mes "Capish? Now, lemme";
+			mes "read these questions...";
+			next;
+			switch(rand(1,3)) {
+			case 1:
+				mes "[Markie]";
+				mes "1. Choose the skill necessary for learning ^880000Stalk^000000.";
+				next;
+				if (select("^880000Hiding^000000:^880000Steal^000000:^880000Improve Dodge^000000:^880000Bash^000000") == 1)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "2. In comparison to the Merchant's Level 10 ^880000Discount^000000 skill, how much more of a discount, in terms of percent, can a Rogue get with Level 10 ^880000Haggle^000000 skill?";
+				next;
+				if (select("3 %:2 %:1 %:0 %") == 3)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "3. What is the correct description for the skill, ^880000Mug^000000?";
+				next;
+				if (select("Steal items from players:Steal items from monsters:Steal Zeny from monsters:Steal Zeny from players") == 3)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "4. How many Rogues does it require to activate the skill, ^880000Slyness^000000?";
+				next;
+				if (select("1 Rogues + 2 Assassin:1 Thief + 2 Rogue:4 Thieves:2 Rogues") == 4)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "5. Choose the skill that you can learn at Level 5 ^880000Divest Helm^000000.";
+				next;
+				if (select("^880000Envenom^000000:^880000Strip Tease^000000:^880000Venom Splasher^000000:^880000Divest Shield^000000") == 1)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "6. Choose the skill which allows its user to move while hiding.";
+				next;
+				if (select("^880000Hiding^000000:^880000Back Slide^000000:^880000Stalk^000000:^880000Sand Attack^000000") == 3)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "7. Choose the card that increases the accuracy rate of its owner.";
+				next;
+				if (select("Andre Card.:Familiar Card.:Mummy Card.:Marina Card.") == 3)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "8. Choose the monster that receives more damage when it's attacked by a weapon with the Vadon card (20 % more damage on Fire property).";
+				next;
+				if (select("Vadon:Deviruchi:Elder Willow:Baphomet") == 3)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "9. How much SP does the skill ^880000Double Attack^000000 require when used with a Dagger?";
+				next;
+				if (select("15:Passive skill, no SP required.:Passive skill, 10 SP:54") == 2)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "10. Choose the most efficient dagger to use in the Byalan Dungeon.";
+				next;
+				if (select("Wind Main-Gauche:Ice Main-Gauche:Earth Main-Gauche:Fire Main-Gauche") == 1)
+					set .@assassin_t,.@assassin_t+10;
+				break;
+			case 2:
+				mes "[Markie]";
+				mes "1. Which monster drops a slotted Gladius?";
+				next;
+				if (select("Thief Bug:Peco Peco:Desert Wolf:Kobold") == 4)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "2. Which monster drops a slotted Main-Gauche?";
+				next;
+				if (select("Hornet:Desert Wolf:Marionette:Myst") == 1)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "3. Choose the class that is able to create unique potions.";
+				next;
+				if (select("Merchant:Alchemist:Blacksmith:Priest") == 2)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "4. Choose the weapon that Rogues aren't allowed to use.";
+				next;
+				if (select("Gakkung:Crossbow:Gladius:Katar") == 4)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "5. Choose the property that the monster Hode possesses.";
+				next;
+				if (select("Water:Fire:Wind:Earth") == 4)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "6. Choose the monster that is unable to be tamed for as a Cute Pet.";
+				next;
+				if (select("Poporing:Creamy:Orc:Poison Spore") == 2)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "7. Choose the monster that receives more damage from a Dagger with the Fire property.";
+				next;
+				if (select("Dagger Goblin:Mace Goblin:Morning Star Goblin:Hammer Goblin") == 4)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "8. Choose the town that doesn't have any guild castles.";
+				next;
+				if (select("Prontera:Al De Baran:Alberta:Payon") == 3)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "9. Choose the plant that drops Blue Herbs.";
+				next;
+				switch(select("Green Plant:Yellow Plant:Blue Plant:Shining Plant")) {
+				default:
+					break;
+				case 3:
+					set .@assassin_t,.@assassin_t+10;
+					break;
+				case 4:
+					set .@assassin_t,.@assassin_t+10;
+					break;
+				}
+				mes "[Markie]";
+				mes "10. Choose the monster that does not have the Undead property.";
+				next;
+				if (select("Zombie:Megalodon:Familiar:Khalitzburg") == 3)
+					set .@assassin_t,.@assassin_t+10;
+				break;
+			case 3:
+				mes "[Markie]";
+				mes "1. By what percentage is the flee rate increased when a Thief masters the ^880000Improve Dodge^000000?";
+				next;
+				if (select("30:40:160:20") == 1)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "2. Choose the monster that detects a characters using the Hiding or Cloaking skill.";
+				next;
+				if (select("Worm Tail:Argos:Mummy:Soldier Skeleton") == 2)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "3. Choose the location where Thieves can change their jobs to Rogues.";
+				next;
+				if (select("Comodo:Kokomo Beach:Paros Lighthouse:Morroc") == 3)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "4. In which town can Novices change their jobs to Thieves?";
+				next;
+				if (select("Comodo:Lutie:Alberta:Morroc") == 4)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "5. Choose the card that does not affect the DEX stat.";
+				next;
+				if (select("Rocker Card:Mummy Card:Zerom Card:Drops Card") == 2)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "6. So what's cool about being a Rogue?";
+				next;
+				select("Being totally badass.:The clothes, the style.:Getting to call other people, 'foo'':Excellent attack strength");
+				set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "7. When is it possible to change jobs from Thief to Rogue?";
+				next;
+				switch(select("At job Level 30:At job Level 35:At Job Level 40:At Job Level 50")) {
+				default:
+					break;
+				case 3:
+					set .@assassin_t,.@assassin_t+10;
+					break;
+				case 4:
+					set .@assassin_t,.@assassin_t+10;
+					break;
+				}
+				mes "[Markie]";
+				mes "8. You want to dye your hair blue. What town do you go to, and in which direction, with 12 o' clock being North.";
+				next;
+				if (select("Morroc, 7 o'clock:Prontera, 7 o'clock:Morroc, 5 o'clock:Prontera, 1 o'clock") == 2)
+					set .@assassin_t,.@assassin_t+10;
+
+				mes "[Markie]";
+				mes "9. Choose the mushroom that is required on the Thief job change quest.";
+				next;
+				switch(select("Orange Gooey Mushroom:Red Hairy Mushroom:Orange Net Mushroom:Orange Sticky Mushroom")) {
+				default:
+					break;
+				case 1:
+				case 3:
+					set .@assassin_t,.@assassin_t+10;
+					break;
+				}
+				mes "[Markie]";
+				mes "10. Choose the card that least benefits the Rogue class.";
+				next;
+				if (select("Whisper Card:Elder Willow Card:Zerom Card:Matyr Card") == 2)
+					set .@assassin_t,.@assassin_t+10;
+			}
+			mes "[Markie]";
+			mes "*Whew~*";
+			mes "Finally.";
+			mes "We're done.";
+			next;
+			mes "[Markie]";
+			mes "Let's see.";
+			mes "You got...";
+			mes "" + .@assassin_t + " points.";
+			if (.@assassin_t > 80) {
+				set ROGUE_Q,2;
+				mes "Good. You passed.";
+				mes "We don't gotta";
+				mes "do that again.";
+				next;
+				mes "[Markie]";
+				mes "But don't get too comfortable just yet, you got more o' these tests. Your next one will be from Smith.";
+				next;
+				mes "[Markie]";
+				mes "So...";
+				mes "Go find Smith and finish up this test, yeah? Be careful though, Smith's a pretty anal guy.";
+				close;
+			}
+			else {
+				set ROGUE_Q,1;
+				mes "Aw crud... You failed!";
+				next;
+				mes "[Markie]";
+				mes "Man, you shoulda learned more when you had the chance. Thanks for wasting my time.";
+				next;
+				mes "[Markie]";
+				mes "*Sigh...* Lemme give you some tips, yeah? I'm supposed to tell you about some kind of ^990000iro.ragnarokonline.com^000000 to help you learn what you need to know.";
+				next;
+				mes "[Markie]";
+				mes "Of course, I don't know what the heck it means, but if you understand it, it'll probably help you out a lot.";
+				close;
+			}
+		}
+		else if (JobLevel < 40) {
+			mes "[Rogue Guildsman]";
+			mes "Whoa, slow down newbie. We only accept people who are at least Thief Job Level 40. I ain't risking myself by letting you in before you're ready. Got it?";
+			close;
+		}
+	}
+	else if (BaseJob == Job_Assassin) {
+		mes "[Rogue Guildsman]";
+		mes "Huh...?";
+		mes "What's an Assassin doin' here? Uh, you haven't been assigned to kill someone in the Rogue Guild, are you?";
 		next;
-		menu "Comodo",sM1_4, "Lutie",sM1_4, "Alberta",sM1_4, "Morroc",-;
-
-			set @score, @score + 10;
-
-		sM1_4:
-
-		mes "[Markie]";
-		mes "5) Choose the card that does ^FF3355not^000000 have an effect on a players ^5533FFDEX stat^000000...";
+		mes "[Rogue Guildsman]";
+		mes "In any case, don't mess with us! You can't catch me... I'm a smooth criminal!";
 		next;
-		menu "Rocker Card",sM1_5, "Mummy Card",-, "Zerom Card",sM1_5, "Drops",sM1_5;
-
-			set @score, @score + 10;
-
-		sM1_5:
-
+		mes "[Rogue Guildsman]";
+		mes "Don't get it, huh? It's something I always used to say to Huey. If you're in the Assassin Guild, you oughta have met him...";
+		close;
+	}
+	else if (BaseJob == Job_Rogue) {
 		mes "[Markie]";
-		mes "6) What do you think is cool about being a Rogue?";
-		next;
-		menu "Being a bad ass",sM1_6, "Being a hypocrite",sM1_6, "Being shameless",sM1_6, "Having excellent attack strength",-;
-
-			set @score, @score + 10;
-
-		sM1_6:
+		mes "Hey hey~";
+		mes "Long time no see.";
+		mes "Eh, right now we don't";
+		mes "any requests from the";
+		mes "guild for you, so just";
+		mes "check back again later.";
+		close;
+	}
+	else {
+		mes "[Rogue Guildsman]";
+		mes "Hey you...";
+		mes "Get your ugly";
+		mes "ass out of here";
+		mes "before I redecorate";
+		mes "that face of yours!";
+		close;
+	}
+}
 
-		mes "[Markie]";
-		mes "7) At what job level can you change from a Thief to a Rogue?";
+in_rogue,376,23,1	script	Mr. Smith#rg	57,{
+	if (ROGUE_Q == 2) {
+		mes "[Mr. Smith]";
+		mes "Welcome to";
+		mes "the Rogue guild.";
+		mes "From here on, I will";
+		mes "verify your qualification.";
 		next;
-		menu "At job lvl 30",sM1_7, "At job lvl 35",sM1_7, "At job lvl 40",-, "At job lvl 50",-;
-
-			set @score, @score + 10;
-
-		sM1_7:
-
-		mes "[Markie]";
-		mes "8) If you wanted to dye your hair a different color, where would you have to go to do that?";
+		mes "[Mr. Smith]";
+		mes "Before we get started,";
+		mes "I want you to know";
+		mes "about something...";
 		next;
-		menu 	"Building in SouthWestern part of Morroc",sM1_8, "Building in SouthWestern part of Prontera",-,
-			"Building in SouthEastern part of Morroc",sM1_8, "Building in NorthEastern part of Prontera",sM1_8;
-
-			set @score, @score + 10;
-
-		sM1_8:
-
-		mes "[Markie]";
-		mes "9) What mushrooms do you need to steal in order to become a Thief?";
+		mes "[Mr. Smith]";
+		mes "All new Rogues are required to pay an application fee, so I hope you take care of that first.";
 		next;
-		menu "Orange Gooey Mushrooms",-, "Red Hairy Mushrooms",sM1_9, "Orange Net Mushrooms",-, "Orange Sticky Mushrooms",sM1_9;
-
-			set @score, @score + 10;
-
-		sM1_9:
-
-		mes "[Markie]";
-		mes "10) Which of these cards is ^FF3355useless^000000 to a Rogue?";
+		mes "[Mr. Smith]";
+		mes "What you have to understand is that the Rogue Guild does a lot of business, ^666666sometimes illegally^000000, that needs financial backup.";
 		next;
-		menu "Whisper Card",sM1_10, "Elder Willow Card",-, "Zerom Card",sM1_10, "Matyr Card",sM1_10;
-
-			set @score, @score + 10;
-
-		sM1_10:
-		goto L_Score;
-
-
-	L_QSet2:
-		mes "[Markie]";
-		mes "1) What skill do you need to learn before you can learn ^5533FFTunnel Drive^000000?";
+		set .@item_need,rand(1,15);
+		if (.@item_need > 0 && .@item_need < 6) callsub S_Req,"10 Skel-bone","6 Blue Herb","10 Decayed Nail","10 Horrendous Mouth",3;
+		else if (.@item_need > 5 && .@item_need < 11) callsub S_Req,"10 Green Herb","10 Crab Shell","10 Snake Scale","10 Garlet",4;
+		else if (.@item_need > 10 && .@item_need < 15) callsub S_Req,"10 Yellow Herb","10 Shell","10 Grasshopper's Leg","10 Bear's Footskin",5;
+		else if (.@item_need == 15) {
+			mes "[Mr. Smith]";
+			mes "I will let you know...";
+			set ROGUE_Q,6;
+			next;
+			mes "[Mr. Smith]";
+			mes "I will let you know......";
+			next;
+			mes "[Mr. Smith]";
+			mes "I will let you know........";
+			mes "By the way.....";
+			next;
+			mes "[Mr. Smith]";
+			mes "Oh man...";
+			mes "This is...";
+			mes "Damn...";
+			mes "Annoying!";
+			next;
+			mes "[Mr. Smith]";
+			mes "...";
+			next;
+			mes "[Mr. Smith]";
+			mes "...";
+			mes "......";
+			next;
+			mes "[Mr. Smith]";
+			mes "...";
+			mes "......";
+			mes ".........";
+			next;
+			mes "[Mr. Smith]";
+			mes "Today, I'm in a pissed off mood, ya' know why?! I haven't collected any bills! God! Idiot Thieves coming at me all the time, wanting to become Rogues!";
+			next;
+			mes "[Mr. Smith]";
+			mes "Jesus! Now I understand why our leader told us that working as customer support sucks.";
+			next;
+			mes "[Mr. Smith]";
+			mes "That god damn guild master assigned me to this shitty job. I'm better than this F$@king job!";
+			mapannounce "in_rogue","That god damn guild master assigned me to this shitty job! That Bastard!",bc_map;
+			mes "That bastard should go to F$@king hell, I'm gonna kick that mother F$@kers ass! F#%k F#%k F#%k !!!";
+			mapannounce "in_rogue","That bastard should go to F$@king hell, I'm gonna kick that mother F$@kers ass! F#%k F#%k F#%k !!!",bc_map;
+			next;
+			mes "[Mr. Smith]";
+			mes "That dipshit who just tried to change his job, the one before you...";
+			mapannounce "in_rogue","That dipshit who just tried to change his job, the one before you...",bc_map;
+			mes "You know what the f#@k he talked to me about?!?";
+			mapannounce "in_rogue","You know what the f#@k he talked to me about?!?",bc_map;
+			mes "F#$@%#$*#$%@#$!!";
+			mapannounce "in_rogue","F#$@%#$*#$%@#$!!",bc_map;
+			next;
+			mes "[Mr. Smith]";
+			mes "What the--?! What's with this chat filter?! Stop #*!@$ing me! you stupid F#$%*! Let me talk!!!";
+			mapannounce "in_rogue","What the--?! What's with this chat filter?! Stop #*!@$ing me! you stupid F#$%*! Let me talk!!!",bc_map;
+			next;
+			mes "[Mr. Smith]";
+			mes "What the f#@k you looking at...? " + strcharinfo(0) + "? That's your name!?";
+			mapannounce "in_rogue","What the f#@k you looking at...? " + strcharinfo(0) + "? That's your name!?",bc_map;
+			mes " ";
+			mes "[" + strcharinfo(0) + "]";
+			mes "Umm...";
+			mes "Sir...?";
+			mes "I didn't mean to make you upset. I just came here to so I could become a Rogue.";
+			next;
+			mes "[Mr. Smith]";
+			mes "Holy shit on a stick, what the f#$k was I just f!#king talking about, you moron!";
+			mapannounce "in_rogue","Holy shit on a stick, what the f#$k was I just f!#king talking about, you moron!",bc_map;
+			next;
+			mes "[Mr. Smith]";
+			mes "Just leave me alone! Just leave alone! Just leave me alone!";
+			mapannounce "in_rogue","Just leave me alone! Just leave alone! Just leave me alone!",bc_map;
+			next;
+			mes "[Mr. Smith]";
+			mes "Do whatever you want, okay? Just do whatever the F$!!K you want...!!";
+			mapannounce "in_rogue","Do whatever you want, okay? Just do whatever the F$!!K you want...!!",bc_map;
+			next;
+			mes "[Mr. Smith]";
+			mes "Your application fee... ^FF000010,000 zeny^000000!!";
+			next;
+			mes "[Mr. Smith]";
+			mes "^FF00005 Crysalis^000000!";
+			mes "^FF00005 Empty Bottle^000000!";
+			mes "^FF00005 Iron Ore^000000!";
+			mes "^FF00005 Stone Heart^000000!!";
+			next;
+			mes "[Mr. Smith]";
+			mes "^FF00005 Red Herb^000000!";
+			mes "^FF00005 Animal Skin^000000!!";
+			mes "^FF00005 Yellow Gemstone^000000!!";
+			next;
+			mes "[Mr. Smith]";
+			mes "^FF00005 Tooth of Bat^000000!";
+			mes "^FF00005 Scorpion Tail^000000!!";
+			mes "^FF00005 Yoyo Tail^000000!!";
+			next;
+			mes "[Mr. Smith]";
+			mes "^FF00005 Monster's Feed^000000!";
+			mes "^FF00005 Fluff^000000!!";
+			mes "^FF00005 Clover^000000!!";
+			next;
+			mes "[Mr. Smith]";
+			mes "^FF00005 Feather of Birds^000000!";
+			mes "^FF00005 Talon^000000!!";
+			mes "^FF00005 Spawn^000000!!";
+			next;
+			mes "[Mr. Smith]";
+			mes "Don't even think about coming back until you've got all those or I'll kill you where you stand.";
+			next;
+			mes "[Mr. Smith]";
+			mes "What the F$@k? Did you just say I'm annoying you? Shut up, you ungrateful prick!";
+			next;
+			mes "[Mr. Smith]";
+			mes "I just added ^FF000010 Raccoon Leaf^000000 to the list. You better get it!";
+			next;
+			mes "[Mr. Smith]";
+			mes "F%$#*&#@$%#@$@#$%@$%&*k! Haven't you ever thought about how hard it would be to be an NPC!?!";
+			mapannounce "in_rogue","F%$#*&#@$%#@$@#$%@$%&*k! Haven't you ever thought about how hard it would be to be an NPC!?!",bc_map;
+			close;
+		}
+	}
+	else if (ROGUE_Q < 2) {
+		mes "[Mr. Smith]";
+		mes "Three thousand, two hundred seventy two. Three thousand, two hundred seventy three. Three thousand, two hundred seventy four...";
 		next;
-		menu "Hiding",-, "Steal",sM2_1, "Improve Dodge",sM2_1, "Bash",sM2_1;
-
-			set @score, @score + 10;
-
-		sM2_1:
-
-		mes "[Markie]";
-		mes "2) How much more of a discount can a Rogue get with the ^5533FFHaggel^000000 skill than a merchant can with the ^5533FFDiscount^000000 skill?";
+		mes "[Mr. Smith]";
+		mes "Uhh...";
+		mes "Headache...";
+		mes "This is too much";
+		mes "zeny to count.";
 		next;
-		menu "3%",sM2_2, "2%",sM2_2, "1%",-, "0%",sM2_2;
-
-			set @score, @score + 10;
-
-		sM2_2:
-
-		mes "[Markie]";
-		mes "3) What is the correct description for the skill ^5533FFMug^000000?";
+		mes "[Mr. Smith]";
+		mes "Uh...?";
+		mes "What are you doing here? If you're going to talk about the job change, you need to speak to the other guy first.";
 		next;
-		menu "Steal Items from players",sM2_3, "Steal Items from monsters",sM2_3, "Steal Zeny from monsters",-, "Steal Zeny from players",sM2_3;
-
-			set @score, @score + 10;
-
-		sM2_3:
+		mes "[Mr. Smith]";
+		mes "...Shit!";
+		mes "I lost count!";
+		close;
+	}
+	else if (ROGUE_Q > 2) {
+		if (ROGUE_Q == 3) callsub S_CheckItems,510,10,932,10,957,10,958,10;
+		else if (ROGUE_Q == 4) callsub S_CheckItems,511,10,910,10,926,10,964,10;
+		else if (ROGUE_Q == 5) callsub S_CheckItems,508,10,948,10,935,10,940,10;
+		else if (ROGUE_Q == 6) {
+			if (zeny > 9999 && countitem(915) > 4 && countitem(713) > 4 && countitem(1002) > 4 &&
+			countitem(953) > 4 && countitem(507) > 4 && countitem(919) > 4 && countitem(715) > 4 &&
+			countitem(913) > 4 && countitem(904) > 4 && countitem(942) > 4 && countitem(528) > 4 &&
+			countitem(914) > 4 && countitem(705) > 4 && countitem(916) > 4 && countitem(917) > 4 &&
+			countitem(908) > 4 && countitem(945) > 4) {
+				mes "[Mr. Smith]";
+				mes "Ummm...let's see...";
+				set zeny,zeny-10000;
+				delitem 915,5; //Chrysalis
+				delitem 713,5; //Empty_Bottle
+				delitem 1002,5; //Iron_Ore
+				delitem 953,5; //Stone_Heart
+				delitem 507,5; //Red_Herb
+				delitem 919,5; //Animal's_Skin
+				delitem 715,5; //Yellow_Gemstone
+				delitem 913,5; //Tooth_Of_Bat
+				delitem 904,5; //Scorpion's_Tail
+				delitem 942,5; //Yoyo_Tail
+				delitem 528,5; //Monster's_Feed
+				delitem 914,5; //Fluff
+				delitem 705,5; //Clover
+				delitem 916,5; //Feather_Of_Birds
+				delitem 917,5; //Talon
+				delitem 908,5; //Spawn
+				delitem 945,5; //Raccoon_Leaf
+				set ROGUE_Q,8;
+				next;
+				mes "[Mr. Smith]";
+				mes "Wow, you've brought each and every single thing I asked you to. Good work... I salute you.";
+				next;
+				mes "^CCCCCC- Middle Finger -^000000'";
+				mes "*Grins*";
+				set ROGUE_Q,8;
+				next;
+				mes "[Mr. Smith]";
+				mes "Since you showed such great effort, I'm going to write a recommendation letter for you. I usually don't do that, you know.";
+				next;
+				mes "[Mr. Smith]";
+				mes "But I'm sure you'll be a great asset to the Rogue Guild. Hmm, I don't have a blank piece of paper right now, so take this instead...";
+				getitem 1097,1; //Worn_Out_Page
+				next;
+				mes "[Mr. Smith]";
+				mes "*Sigh...*";
+				mes "I know, I know. I'm supposed to control myself in the work place. Getting enraged is a bad habit...";
+				next;
+				mes "[Mr. Smith]";
+				mes "*Mumble mumble...*";
+				mes "How was I... *Mumble...*";
+				mes "How did... I remember...";
+				mes "*Sigh* It was all because of my bad temper!";
+				next;
+				mes "[Mr. Smith]";
+				mes "Wah....!!!";
+				next;
+				mes "^3355FFIt might be a better";
+				mes "idea to come back later.^000000";
+				close;
+			}
+			mes "[Mr. Smith]";
+			mes "Listen this time!";
+			mes "Application fee:";
+			mes "^FF000010000 zeny^000000,";
+			mes "^FF00005 Crysalis^000000!";
+			mes "^FF00005 Empty Bottle^000000!";
+			mes "^FF00005 Iron Ore^000000!";
+			next;
+			mes "[Mr. Smith]";
+			mes "^FF00005 Stone Heart^000000!!";
+			mes "^FF00005 Red Herb^000000!";
+			mes "^FF00005 Animal Skin^000000!!";
+			mes "^FF00005 Yellow Gemstone^000000!!";
+			next;
+			mes "[Mr. Smith]";
+			mes "^FF00005 Tooth of Bat^000000!";
+			mes "^FF00005 Scorpion Tail^000000!!";
+			mes "^FF00005 Yoyo Tail^000000!!";
+			next;
+			mes "[Mr. Smith]";
+			mes "^FF00005 Monster's Feed^000000!";
+			mes "^FF00005 Fluff^000000!!";
+			mes "^FF00005 Clover^000000!!";
+			next;
+			mes "[Mr. Smith]";
+			mes "^FF00005 Feather of Birds^000000!";
+			mes "^FF00005 Talon^000000!!";
+			mes "^FF00005 Spawn^000000!!";
+			mes "^FF000010 Raccoon Leaf^000000!!";
+			next;
+			mes "[Mr. Smith]";
+			mes "Don't even think";
+			mes "of coming back";
+			mes "without them!";
+			close;
+		}
+		else if (ROGUE_Q == 7) {
+			mes "[Mr. Smith]";
+			mes "Let me see...";
+			mes "Who would should";
+			mes "I send you to...?";
+			switch(rand(1,3)) {
+			case 1:
+				set ROGUE_Q,9;
+				next;
+				mes "[Mr. Smith]";
+				mes "Right! I know";
+				mes "just the guy~!";
+				next;
+				mes "[Mr. Smith]";
+				mes "Go visit Aragham Junior who lives South of the Sandarman Fortress. That area is located one field east from here.";
+				next;
+				mes "[Mr. Smith]";
+				mes "He's a pretty nice guy, you know. He works hard and is really good at bill collecting.";
+				next;
+				mes "[Mr. Smith]";
+				mes "Before he joined the Rogue Guild, people have been trying to kill him for something his father did in the past. So, he became a runaway.";
+				next;
+				mes "[Mr. Smith]";
+				mes "Well anyway, that's why he's been with us. We've been helping him hide from his enemies.";
+				next;
+				mes "[Mr. Smith]";
+				mes "Ah, you might want to remember the password if you want to meet him. He doesn't let anybody in his house without the password.";
+				next;
+				mes "[Mr. Smith]";
+				mes "The password is ^0000FFAragham never hoarded upgrade items^000000.";
+				next;
+				mes "[Mr. Smith]";
+				mes "Well, I will wish you luck. His place isn't that far from here, so come back as soon as possible. Being swift... That is the spirit of the Rogue.";
+				close;
+			case 2:
+				set ROGUE_Q,10;
+				next;
+				mes "[Mr. Smith]";
+				mes "Hmm...";
+				mes "This guy might be";
+				mes "good for you, but...";
+				mes "He's a little dangerous.";
+				next;
+				mes "[Mr. Smith]";
+				mes "I want you to meet Antonio Junior, son of Antonio the first. For some reason people have been trying to kill him because of something his father did in the past.";
+				next;
+				mes "[Mr. Smith]";
+				mes "He was brought up in Payon, but he's staying in an empty house near the Kokomo beach at the moment.";
+				next;
+				mes "[Mr. Smith]";
+				mes "I've heard lately that he's been complaining a lot about the noise outside of his house, and he fears an assassination attempt. Anyway...";
+				next;
+				mes "[Mr. Smith]";
+				mes "He's kind of tense, so he throws a dagger at anyone who approches his house. He has a violent personality.";
+				next;
+				mes "[Mr. Smith]";
+				mes "However, he does have magnificiant business skills. And he also loves gambling. Once you get to know him, he'll take care of your Rogue training really well.";
+				next;
+				mes "[Mr. Smith]";
+				mes "Ah, you might want to remember the password to meet him in person. The password is ^0000FFAntonio doesn't enjoy destroying upgrade items^000000.";
+				close;
+			case 3:
+				set ROGUE_Q,11;
+				next;
+				mes "[Mr. Smith]";
+				mes "Hmm...";
+				mes "This guy might be";
+				mes "good for you, but...";
+				mes "He's a little dangerous.";
+				next;
+				mes "[Mr. Smith]";
+				mes "His name is";
+				mes "Hollgrehenn Junior,";
+				mes "a genius at manipulation.";
+				next;
+				mes "[Mr. Smith]";
+				mes "However, because of something his father did long ago, people ahve been trying to kill him. Because of this, he is very high strung and will throw daggers at people he doesn't trust.";
+				next;
+				mes "[Mr. Smith]";
+				mes "Our leader has been able to get him to join our guild, and his brilliant mind has been an asset to us. Once you get to know him, he'll take care of your Rogue training really well.";
+				next;
+				mes "[Mr. Smith]";
+				mes "Ah, you might want to remember the password to meet him in person. The password is ^0000FFMy father never hoarded upgrade items^000000.";
+				close;
+			}
+		}
+		else if (ROGUE_Q == 8) {
+			mes "[Mr. Smith]";
+			mes "Alright... Now that I've calmed down, I can inform you of your next destination. *Whew*";
+			next;
+			mes "[Mr. Smith]";
+			mes "Go and find Hermanthorn Junior, who is living near the ^0000FFthe checkpoint of Paros Lighthouse^000000, which is at the border between Morroc and Comodo.";
+			next;
+			mes "[Mr. Smith]";
+			mes "Ah...almost forgot, keep in mind not to mention anything about upgrading items. This is very important.";
+			close;
+		}
+		else if (ROGUE_Q == 9) {
+			mes "[Mr. Smith]";
+			mes "What...?";
+			mes "Did you just";
+			mes "say that you";
+			mes "forgot where to go?";
+			next;
+			mes "[Mr. Smith]";
+			mes "Head one field East and enter the building that is South of the Sandarman Fortress to meet Aragham Junior.";
+			next;
+			mes "[Mr. Smith]";
+			mes "The password is ^0000FFAragham never hoarded upgrade items^000000.";
+			close;
+		}
+		else if (ROGUE_Q == 10) {
+			mes "[Mr. Smith]";
+			mes "What...?";
+			mes "Did you just";
+			mes "say that you";
+			mes "forgot where to go?";
+			next;
+			mes "[Mr. Smith]";
+			mes "Go to the building";
+			mes "at Kokomo Beach,";
+			mes "which is on the way";
+			mes "to Comodo, to meet";
+			mes "Antonio Junior.";
+			next;
+			mes "[Mr. Smith]";
+			mes "The password is ^0000FF'Antonio doesn't enjoy destroying upgrade items'^000000.";
+			close;
+		}
+		else if (ROGUE_Q == 11) {
+			mes "[Mr. Smith]";
+			mes "What...?";
+			mes "Did you just";
+			mes "say that you";
+			mes "forgot where to go?";
+			next;
+			mes "[Mr. Smith]";
+			mes "Go to the field South of Sandarman Fortress, which is on the way to Morroc from here, to meet Hollgrehenn Junior.";
+			next;
+			mes "[Mr. Smith]";
+			mes "The password is ^0000FFMy father never hoarded upgrade items^000000.";
+			close;
+		}
+		else if (ROGUE_Q > 11) {
+			mes "[Mr. Smith]";
+			mes "Hmmm...?";
+			mes "Don't you have";
+			mes "to go somewhere";
+			mes "else to complete";
+			mes "your Rogue training?";
+			close;
+		}
+	}
 
-		mes "[Markie]";
-		mes "4) How many Rogues are required to activate the skill ^5533FFGangster's Paradise^000000?";
-		next;
-		menu "1 Rogue + 2 Assassins",sM2_4, "2 Rogues + 1 Thief",sM2_4, "4 Thieves",sM2_4, "2 or more Rogues",-;
 
-			set @score, @score + 10;
+S_Req:
+	mes "[Mr. Smith]";
+	mes "First, the";
+	mes "application fee:";
+	mes "^FF000010,000 zeny^000000.";
+	next;
+	mes "[Mr. Smith]";
+	mes "We also need";
+	mes "you to bring";
+	mes "^FF0000"+getarg(0)+"^000000,";
+	mes "^FF0000"+getarg(1)+"^000000,";
+	mes "^FF0000"+getarg(2)+"^000000 and";
+	mes "^FF0000"+getarg(3)+"^000000.";
+	set ROGUE_Q,getarg(4);
+	next;
+	mes "[Mr. Smith]";
+	mes "Hmm...?";
+	mes "What was that?";
+	mes "Did you just say that";
+	mes "you're willing to donate";
+	mes "more for the guild?";
+	next;
+	mes "[Mr. Smith]";
+	mes "That sounds sweet,";
+	mes "I appreciate that.";
+	mes "But come back when";
+	mes "you're ready.";
+	close;
 
-		sM2_4:
 
-		mes "[Markie]";
-		mes "5) After increasing ^5533FFDivest Helm^000000 to level 5, what other skill becomes available for you learn?";
+S_CheckItems:
+	if (Zeny > 99999 || countitem(getarg(0)) >= getarg(1) || countitem(getarg(2)) >= getarg(3) || countitem(getarg(4)) >= getarg(5) || countitem(getarg(6)) >= getarg(7)) {
+		mes "[Mr. Smith]";
+		mes "Okay, we've got the application fee, ^FF000010,000 zeny^000000, "+getarg(1)+" "+getitemname(getarg(0))+", "+getarg(3)+" "+getitemname(getarg(2))+", "+getarg(5)+" "+getitemname(getarg(4))+" and "+getarg(7)+" "+getitemname(getarg(6))+"...";
+		set zeny,zeny-10000;
+		delitem getarg(0),getarg(1);
+		delitem getarg(2),getarg(3);
+		delitem getarg(4),getarg(5);
+		delitem getarg(6),getarg(7);
+		set ROGUE_Q,7;
 		next;
-		menu "Envenom",sM2_5, "Strip Tease",sM2_5, "Venom Splasher",sM2_5, "Divest Shield",-;
-
-			set @score, @score + 10;
-
-		sM2_5:
-
-		mes "[Markie]";
-		mes "6) Choose a skill that allows its user to move while being hidden?";
+		mes "[Mr. Smith]";;
+		mes "Great, great...";
+		mes "I think you";
+		mes "brought everything.";
+		set ROGUE_Q,7;
 		next;
-		menu "Hiding",sM2_6, "Back Slide",sM2_6, "Tunnel Drive",-, "Sand Attack",sM2_6;
-
-			set @score, @score + 10;
-
-		sM2_6:
+		mes "[Mr. Smith]";
+		mes "Alright, wait just a moment while";
+		mes "I prepare these things. Let's see... Your next test is...";
+		close;
+	}
+	mes "[Mr. Smith]";
+	mes "What the f$@k!? You didn't bring all the required items?! Are you telling me that you need to check the requirements again!?";
+	next;
+	mes "[Mr. Smith]";
+	mes "Now listen...!";
+	mes "Bring ^FF000010,000 zeny^000000,";
+	mes "and the following items...";
+	next;
+	mes "[Mr. Smith]";
+	mes "^FF0000 "+getarg(1)+" "+getitemname(getarg(0))+"^000000,";
+	mes "^FF0000 "+getarg(3)+" "+getitemname(getarg(2))+"^000000,";
+	mes "^FF0000 "+getarg(5)+" "+getitemname(getarg(4))+"^000000,";
+	mes "^FF0000 "+getarg(7)+" "+getitemname(getarg(6))+"^000000,";
+	mes "You got it this time?";
+	close;
+}
 
-		mes "[Markie]";
-		mes "7) Choose the card that increases the ^5533FFaccuracy rate^000000 of its owner?";
-		next;
-		menu "Andre",sM2_7, "Familiar",sM2_7, "Mummy",-, "Marina",sM2_7;
+cmd_fild09,106,195,0	script	Warp#1	45,1,1,{
+OnTouch:
+	mes "[???]";
+	mes "Who's there?!";
+	mes "Who would dare";
+	mes "intrude my territory?";
+	next;
+	set rogue_t,0;
+	switch(select("My father:Aragham:Aragon:Legolas")) {
+	case 1:
+		mes "[" + strcharinfo(0) + "]";
+		mes "My father";
+		break;
+	case 2:
+		mes "[" + strcharinfo(0) + "]";
+		mes "Aragham";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 3:
+		mes "[" + strcharinfo(0) + "]";
+		mes "Aragon";
+		break;
+	case 4:
+		mes "[" + strcharinfo(0) + "]";
+		mes "Legolas";
+		break;
+	}
+	switch(select("did not:didn't:never:ever")) {
+	case 1: mes "did not"; break;
+	case 2: mes "didn't"; break;
+	case 3:
+		mes "never";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 4: mes "ever"; break;
+	}
+	switch(select("hoard:hoarded:hide:took:take")) {
+	case 1: mes "hoard"; break;
+	case 2:
+		mes "hoarded";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 3: mes "hide"; break;
+	case 4: mes "took"; break;
+	case 5: mes "take"; break;
+	}
+	switch(select("upgrade items.:forging items.:refining item.:upgrade item.")) {
+	case 1:
+		mes "upgrade items.";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 2: mes "forging items."; break;
+	case 3: mes "refining item."; break;
+	case 4: mes "upgrade item."; break;
+	}
+	next;
+	if (.@rogue_t > 30) {
+		mes "^3355FF*Creeeeak*";
+		mes "The door slowly opens.^000000";
+		close2;
+		warp "in_rogue",246,25;
+		end;
+	}
+	else {
+		mes "[???]";
+		mes "What the...?";
+		mes "Get lost!";
+		close;
+	}
+}
 
-			set @score, @score + 10;
+cmd_fild09,335,143,0	script	Warp#2	45,1,1,{
+OnTouch:
+	mes "[???]";
+	mes "Who's there?!";
+	mes "Who would dare";
+	mes "intrude my territory?";
+	next;
+	set name,PcName;
+	set rogue_t,0;
+	switch(select("My father:Aragham:Aragon:Legolas")) {
+	case 1:
+		mes "[" + strcharinfo(0) + "]";
+		mes "My father";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 2:
+		mes "[" + strcharinfo(0) + "]";
+		mes "Aragham";
+		break;
+	case 3:
+		mes "[" + strcharinfo(0) + "]";
+		mes "Aragon";
+		break;
+	case 4:
+		mes "[" + strcharinfo(0) + "]";
+		mes "Legolas";
+		break;
+	}
+	switch(select("did not:didn't:never:ever")) {
+	case 1: mes "did not"; break;
+	case 2: mes "didn't"; break;
+	case 3:
+		mes "never";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 4: mes "ever"; break;
+	}
+	switch(select("hoard:takes:hide:took:hoarded")) {
+	case 1: mes "hoard"; break;
+	case 2: mes "takes"; break;
+	case 3: mes "hide"; break;
+	case 4: mes "took"; break;
+	case 5:
+		mes "hoarded";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	}
+	switch(select("upgrade items.:forging items.:refining item.:upgrade item.")) {
+	case 1:
+		mes "upgrade items.";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 2: mes "forging items."; break;
+	case 3: mes "refining item."; break;
+	case 4: mes "upgrade item."; break;
+	}
+	next;
+	if (.@rogue_t > 30) {
+		mes "^3355FF*Creeeeak*";
+		mes "The door slowly opens.^000000";
+		close2;
+		warp "in_rogue",169,34;
+		end;
+	}
+	else {
+		mes "[???]";
+		mes "What the...?";
+		mes "Get lost!";
+		close;
+	}
+}
 
-		sM2_7:
+cmd_fild04,304,180,0	script	Warp#3	45,1,1,{
+OnTouch:
+	mes "[???]";
+	mes "Who's there?!";
+	mes "Who would dare";
+	mes "intrude my territory?";
+	next;
+	set name,PcName;
+	set rogue_t,0;
+	switch(select("Anntonio:Aragham:Antonio:Hollgrehenn")) {
+	case 1:
+		mes "[" + strcharinfo(0) + "]";
+		mes "Anntonio";
+		break;
+	case 2:
+		mes "[" + strcharinfo(0) + "]";
+		mes "Aragham";
+		break;
+	case 3:
+		mes "[" + strcharinfo(0) + "]";
+		mes "Antonio";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 4:
+		mes "[" + strcharinfo(0) + "]";
+		mes "Hollgrehenn"; 
+		break;
+	}
+	switch(select("enjoys:doesn't enjoy:likes:doesn't like")) {
+	case 1: mes "enjoys"; break;
+	case 2:
+		mes "doesn't enjoy";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 3: mes "likes"; break;
+	case 4: mes "doesn't like"; break;
+	}
+	switch(select("damaging:destroying:fixing:forging")) {
+	case 1: mes "damaging"; break;
+	case 2:
+		mes "destroying";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 3: mes "fixing"; break;
+	case 4: mes "forging"; break;
+	}
+	switch(select("forging item.:refining items.:upgrade items.:refined items.:upgraded items.:forged items.")) {
+	case 1: mes "forging item."; break;
+	case 2: mes "refining items."; break;
+	case 3:
+		mes "upgrade items.";
+		set .@rogue_t,.@rogue_t+10;
+		break;
+	case 4: mes "refined items."; break;
+	case 5: mes "upgraded items."; break;
+	case 6: mes "forged items."; break;
+	}
+	next;
+	if (.@rogue_t > 30) {
+		mes "^3355FF*Creeeeak*";
+		mes "The door slowly opens.^000000";
+		close2;
+		warp "in_rogue",164,106;
+		end;
+	}
+	else {
+		mes "[???]";
+		mes ".....Get lost!";
+		close;
+	}
+}
 
-		mes "[Markie]";
-		mes "8) Choose the monster that receives more damage when attacked by a weapon with a Vadon card attached to it?";
-		mes "(Vadon card inflicts 20% more damage to fire property monsters)";
+in_rogue,272,135,1	script	Hermanthorn Jr#rg	85,{
+	if (ROGUE_Q == 8) {
+		mes "[HermanthornJr.]";
+		mes "I see...";
+		mes "You must be from";
+		mes "the Rogue guild.";
+		mes "You must be one of the";
+		mes "ones Mr. Smith wasn't";
+		mes "too happy with...";
 		next;
-		menu 	"Vadon",sM2_8, "Deviruchi",sM2_8, "Elder Willow",-, "Baphomet",sM2_8;
-
-			set @score, @score + 10;
-
-		sM2_8:
-
-		mes "[Markie]";
-		mes "9) How much SP does the ^5533FFDouble Attack^000000 skill require when used with a dagger?";
+		mes "[HermanthornJr.]";
+		mes "He threw a fit and you brought him all the items he asked for, didn't you? Well, I can see that you're still pretty naive. Hahaha~";
 		next;
-		menu "15 SP",sM2_9, "No SP needed",-, "10 SP",sM2_9, "54 SP",sM2_9;
-
-			set @score, @score + 10;
-
-		sM2_9:
-
-		mes "[Markie]";
-		mes "10) Choose an effective dagger to use in the Byalan Dungeon?";
+		mes "[HermanthornJr.]";
+		mes "I suppose he suckered you into gathering those items, and then passed you on to me. Sad, really.";
 		next;
-		menu "Wind Main-Gauche",-, "Ice Main-Gauche",sM2_10, "Earth Main-Gauche",sM2_10, "Fire Main-Gauche",sM2_10;
-
-			set @score, @score + 10;
-
-		sM2_10:
-
-
-	L_Score:
-		mes "[Markie]";
-		mes "Okay, those are all of the questions I have.  Now that wasn't so bad was it sweetie?";
-		mes "I hope you don't mind, but I've been grading your answers.";
+		mes "[HermanthornJr.]";
+		mes "Well, since you were tortured by him, I'll try to be especially generous to you. My test for you will be simple, so simple.";
 		next;
-		mes "[Markie]";
-		mes "I like to give people scores on their interviews so that they can know how well they did.";
-		mes "It looks like you got a ^FF3355" + @score +"^000000/100............";
+		mes "[HermanthornJr.]";
+		mes "All you have to do is go through a underground tunnel, and walk all the way back to the Rogue Guild.";
 		next;
-		mes "[Markie]";
-
-		if(@score< 90) goto sL_Failed;
-		if(@score<100) goto sL_Passed;
-
-		sL_Perfect:
-			mes "A perfect score!  I knew you had what it takes to be a Rogue.....";
-			mes "But don't get ahead of yourself honey cause there is still plenty more.....";
-			next;
-			mes "[Markie]";
-			set ROGUE_Q, 2;
-			goto L_Test2;
-
-		sL_Passed:
-			mes "Good, good.  You did a good job shuga.  But there is still more so don't get excited just yet.....";
-			next;
-			mes "[Markie]";
-			set ROGUE_Q, 2;
-			goto L_Test2;
-			return;
-
-		sL_Failed:
-			mes "*sigh*..... this is not the type of score I was expecting......";
-			mes "What can I say excecpt, with a score like this you're definitely not cut out to be a Rogue..........";
-			emotion e_swt;
-			next;
-			mes "[Markie]";
-			mes "Why don't you go do some more training shuga..... you need it..... *mumbles ( what a waste of my time...)*";
-			close;
+		mes "[HermanthornJr.]";
+		mes "There is one thing I should tell you, though. You might want to be careful inside, alright?";
+		next;
+		mes "[HermanthornJr.]";
+		mes "A bunch of pricks have been throwing Dead Branches and casting Hocus Pocus all over the place...";
+		next;
+		mes "[HermanthornJr.]";
+		mes "Well...";
+		mes "Just make it back to the Rogue Guild alive. That's all you have to do!";
+		set ROGUE_Q,12;
+		close;
+	}
+	else if (ROGUE_Q == 12) {
+		mes "[HermanthornJr.]";
+		mes "Oh right. This is really important. You need a password to enter the tunnel. To unlock the door, the four number combination is ^0000FF3019^000000.";
+		close;
+	}
+	else {
+		mes "[HermanthornJr.]";
+		mes "Huh...?";
+		mes "What the hell";
+		mes "are you doing here.";
+		mes "Scram, why don't you?";
+		close;
+	}
+}
 
-L_ReTest:
-	mes "You again? Are you sure you're ready this time?...... Okay honey, just relax....";
+in_rogue,270,130,0	script	he_to_rogue#rg	45,1,1,{
+OnTouch:
+	mes "^3355FFThe door is locked. You'll need to enter the four number combination to open it.^000000";
 	next;
-	goto L_Test1;
+	input .@input;
+	if (.@input < 1 || .@input > 10000) {
+		if (ROGUE_Q == 12)
+			mes "^3355FFIt didn't work. Please re-enter the four number combination.^000000";
+		else 
+			mes "^3355FFPlease enter a combination of four numbers.^000000";
+		close;
+	}
+	else if (.@input == 3019) {
+		if (ROGUE_Q == 12) {
+			mes "^3355FFThe door";
+			mes "has opened.^000000";
+			close2;
+			warp "in_rogue",10,21;
+			set ROGUE_Q,12;
+			end;
+		}
+		else {
+			mes "[HermanthornJr.]";
+			mes "Well...";
+			mes "Didn't I tell you";
+			mes "that I changed the";
+			mes "password? *Wink Wink*";
+			close;
+		}
+	}
+	else {
+		mes "^3355FFThe door";
+		mes "is still locked.^000000";
+		close;
+	}
+}
 
-L_Test2:
-	mes "Your second test will be given by ^5533FFMr. Smith^000000.";
-	mes "I have to warn you though, Mr. Smith can be difficult and hard to please.  So be careful how you act around him.";
-	close;
-L_Test3:
-	mes "I know those guys are hard to find.  Just be patient and keep on searching.  Make sure you have the correct password as well..";
-	close;
-L_Test4:
-	mes "What are you doing here? I hope your not trying to skip the last test?.........";
-	emotion e_what;
-	next;
-	mes "[Markie]";
-	mes "Your almost finished so just keep trying.  I know you can do it.";
-	close;
+in_rogue,200,389,0	script	gen_ro#1	-1,3,3,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",200,389,"Zombie",1015,1,"gen_ro#1::OnMyMobDead";
+		monster "in_rogue",201,389,"Zombie",1015,1,"gen_ro#1::OnMyMobDead";
+		donpcevent "gen_ro#2::OnDisable";
+		donpcevent "gen_ro#3::OnDisable";
+		donpcevent "gen_ro#4::OnDisable";
+	}
+	else
+		warp "mag_dun02",181,176;
+	end;
 
+OnDisable:
+	killmonster "in_rogue","gen_ro#1";
+	end;
+}
 
-//=======================================================================
-L_Change:
-//===========
-	mes "Oh, you're back and your in one piece! It looks like you've passed all of the tests sweetie.";
-	mes "You have proven that you are ready to become a Rogue!";
-	emotion e_ic;
-	next;
-	if(SkillPoint != 0) goto L_SkillP;
-	mes "[Markie]";
-	mes "Tada! Congratulations on becoming a Rogue.  You showed a lot of effort and deserve a reward for it......";
-	setlook 7,0;
-	callfunc "Job_Change",Job_Rogue;
-	emotion e_grat;
-	next;
-	mes "[Markie]";
-	mes "Now that you are a Rogue you are free to go where ever you want to and do what ever you want.";
-	if(JBLVL != 50) {
-		getitem 1219,1;		// 2 slott gladius
-	} else {
-		getitem 1220,1;		// 3 slott gladius
-	}
-	callfunc "F_ClearJobVar";
-	next;
-	mes "[Markie]";
-	mes "Just keep in mind that freedom requires responsibility.  Treat people the way you expect to be treated.";
-	next;
-	mes "[Markie]";
-	mes "Have fun shuga! See ya around!";
-	close;
+in_rogue,100,389,0	script	gen_ro#2	-1,3,3,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",100,389,"Mummy",1041,1,"gen_ro#2::OnMyMobDead";
+		donpcevent "gen_ro#1::OnDisable";
+	}
+	else
+		warp "mag_dun02",181,176;
+	end;
 
-//=======================================================================
-L_SkillP:
-//===========
-	mes "[Markie]";
-	mes "Oh but one thing honey... you have leftover skill points!";
-	mes "Finish them first and come back, 'kay?";
-	close;
+OnDisable:
+	killmonster "in_rogue","gen_ro#2";
+	end;
 }
 
+in_rogue,150,389,0	script	gen_ro#3	-1,3,3,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",145,389,"Zombie",1015,1,"gen_ro#3::OnMyMobDead";
+		monster "in_rogue",143,389,"Mummy",1041,1,"gen_ro#3::OnMyMobDead";
+		donpcevent "gen_ro#2::OnDisable";
+	}
+	else
+		warp "mag_dun02",181,176;
+	end;
 
+OnDisable:
+	killmonster "in_rogue","gen_ro#3";
+	end;
+}
 
-//=======================================================================================================//
-//					Mr. Smith: Tests 2 and 3						//
-//***********************************************************************************************************************************************************//
-in_rogue,376,23,3	script	Mr. Smith	57,{
-
-	mes "[Mr. Smith]";
-	if(BaseJob == Job_Thief) goto L_Thief;
-	if(BaseJob == Job_Rogue) goto L_Rogue;
+in_rogue,250,389,0	script	gen_ro#4	-1,3,3,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",200,389,"Abysmal Knight",1219,1,"gen_ro#4::OnMyMobDead";
+		donpcevent "gen_ro#3::OnDisable";
+	}
+	else
+		warp "mag_dun02",181,176;
+	end;
 
-L_OtherJob:
-	mes "Go away! I'm busy.....";
-	close;
-L_Rogue:
-	mes "Looking good there my Rogue friend";
-	close;
-L_Thief:
-	if(ROGUE_Q == 2) goto L_Test2;
-	if(ROGUE_Q == 3) goto L_Test3;
-	if(ROGUE_Q > 3) goto L_Done;
-	mes "Ok ok.... one... two.... three.... Where do you do you business... is it.... Morroc... Geffen.... Comodo??.......";
-	next;
-	mes "[Mr. Smith]";
-	mes "Uhh..... this is giving me a headache.......";
-	next;
-	mes "[Mr. Smith]";
-	mes "Huh? Who are you? If you want to become a rogue go talk to ^5533FFMarkie^000000....";
-	next;
-	mes "[Mr. Smith]";
-	mes "...... CRAP! I forgot what I was counting!!";
-	emotion e_wah;
-	close;
+OnDisable:
+	killmonster "in_rogue","gen_ro#4";
+	end;
+}
 
-//----------------------------------------------------------------------------------------------------
-L_Test2:
-//--------------
-	if(ROGUE_Q2 > 0) goto L_Check2;
-	mes "So you're here to take the second test.... good.......";
-	next;
-	mes "[Mr. Smith]";
-	mes "Before we get started, let me tell you about the test application fee.";
-	mes "Our guild is involved in alot of business *cough* 'transactions' *cough* and therefore we are in constant needs of funds.";
-	next;
-	mes "[Mr. Smith]";
-	mes "This is why we require a fee of ^5533FF10,000 zeny^000000 to be paid when taking the Rogue tests.";
-	mes "The fee will be collected when you have completed this second test so don't have to worry if you don't have it now.";
-	next;
-	mes "[Mr. Smith]";
-	mes "Now for your test..... You will be required to collect the following items:";
-	next;
-	mes "[Mr. Smith]";
-	set ROGUE_Q2, rand(1,3);
-	if(ROGUE_Q2 == 1) callsub sF2_R1;
-	if(ROGUE_Q2 == 2) callsub sF2_R2;
-	if(ROGUE_Q2 == 3) callsub sF2_R3;
-	next;
-	mes "[Mr. Smith]";
-	mes "Once you have ALL of these items and 10,000 zeny, come back and see me okay? Good.";
-	close;
+in_rogue,9,389,0	script	oneway_to_gu	45,1,1,{
+OnTouch:
+	donpcevent "gen_ro#4::OnDisable";
+	set ROGUE_Q,17;
+	warp "in_rogue",367,10;
+	end;
+}
 
-	sF2_R1:
-		mes "^5533FF6 Blue Herbs,";
-		mes "10 Skel Bones,";
-		mes "10 Decayed Nails,";
-		mes "10 Horrendous Mouths^000000.";
-		return;
-	sF2_R2:
-		mes "^5533FF10 Green Herbs,";
-		mes "10 Garlets,";
-		mes "10 Snake Scales";
-		mes "10 Crab Shells.^000000";
-		return;
-	sF2_R3:
-		mes "^5533FF10 Yellow Herbs,";
-		mes "10 Bear's Footskin,";
-		mes "10 Shells";
-		mes "10 Grasshopper's Legs^000000.";
-		return;
-
-L_Check2:
-	set @count, 0;
-	if(ROGUE_Q2 == 2) goto L_2;
-	if(ROGUE_Q2 == 3) goto L_3;
-
-	L_1:
-		set @R, 1;
-		if(countitem(510)<6 || countitem(932)<10 || countitem(957)<10 || countitem(958)<10 || Zeny < 10000) goto L_NotEnuf;
-		delitem 510,6;
-		delitem 932,10;
-		delitem 957,10;
-		delitem 958,10;
-		goto L_Done2;
-
-	L_2:
-		set @R, 2;
-		if(countitem(511)<10 || countitem(910)<10 || countitem(926)<10 || countitem(964)<10 || Zeny < 10000) goto L_NotEnuf;
-		delitem 511,10;
-		delitem 910,10;
-		delitem 926,10;
-		delitem 964,10;
-		goto L_Done2;
-
-	L_3:
-		set @R, 3;
-		if(countitem(508)<10 || countitem(948)<10 || countitem(935)<10 || countitem(940)<10 || Zeny < 10000) goto L_NotEnuf;
-		delitem 508,10;
-		delitem 948,10;
-		delitem 935,10;
-		delitem 940,10;
-
-	L_Done2:
-		mes "Let's see here.... application fee.... check..... items....... check...... Alright, everything looks in order.  You've passed the second test.";
+in_rogue,244,39,1	script	Aragham Junior#rg	99,{
+	if (ROGUE_Q == 9) {
+		mes "[Aragham Jr.]";
+		mes "Oh, you must be";
+		mes "from the Rogue Guild...";
 		next;
-		mes "[Mr. Smith]";
-		mes "When you are ready to take the next test let me know.";
-		set Zeny, Zeny - 10000;
-		set ROGUE_Q, 3;
-		set ROGUE_Q2, 0;
+		mes "[Aragham Jr.]";
+		mes "My name is";
+		mes "Aragham Junior,";
+		mes "Rogue of the Desert.";
+		mes "Are you ready to learn";
+		mes "how to be a Rogue?";
+		next;
+		mes "[Aragham Jr.]";
+		mes "See, as a Rogue, our motto is, '^0000FFAvoid the strong! Be malicious to the weak!^000000' That rule especially goes true for monsters.";
+		next;
+		mes "[Aragham Jr.]";
+		mes "Avoid the strong!";
+		mes "Be malicious to the weak!";
+		mes "It's a simple rule...";
+		next;
+		mes "[Aragham Jr.]";
+		mes "Now, remember it as you go through ^0000FFthe Underground Tunnel^000000. Try to walk all the way to the Rogue Guild.";
+		next;
+		mes "[Aragham Jr.]";
+		mes "There will be a few monsters, but don't worry. I know you're strong. Alright, are you ready to go or what?";
+		next;
+		if (select("Yes, let's go.:Nah~") == 1) {
+			mes "[Aragham Jr.]";
+			mes "Alright...";
+			mes "Good luck, then.";
+			close2;
+			warp "in_rogue",15,105;
+			set ROGUE_Q,13;
+			end;
+		}
+		mes "[Aragham Jr.]";
+		mes "Fine, fine.";
+		mes "Take your time";
+		mes "and come back";
+		mes "when you're ready.";
 		close;
-
-	L_NotEnuf:
-		mes ".... What the f@&#!?!? You don't have all of the items? Then why did you come back?? Don't tell me you forgot what to get.....";
-		emotion e_what;
+	}
+	else if (ROGUE_Q == 13) {
+		mes "[Aragham Jr.]";
+		mes "Oh, you're back.";
+		mes "I think you'll do well this time. Another motto Rogues have is '^0000FFFailure teaches success^000000.' Well, then again...";
 		next;
-		mes "[Mr. Smith]";
-		mes "Write this down! You need ^5533FF10,000^000000 zeny and:";
-		if(ROGUE_Q2 == 1) callsub sF2_R1;
-		if(ROGUE_Q2 == 2) callsub sF2_R2;
-		if(ROGUE_Q2 == 3) callsub sF2_R3;
+		if (select("Re-Test:Cancel") == 1) {
+			mes "[Aragham Jr.]";
+			mes "Good luck.";
+			close2;
+			warp "in_rogue",15,105;
+			end;
+		}
+		mes "[Aragham Jr.]";
+		mes "Fine, fine.";
+		mes "Take your time";
+		mes "and come back";
+		mes "when you're ready.";
+		close;
+	}
+	else if (BaseJob != Job_Rogue) {
+		mes "[Aragham Jr.]";
+		mes "Huh...?";
+		mes "Who are you?!";
+		mes "You're not from";
+		mes "the Rogue Guild!!";
 		next;
-		mes "[Mr. Smith]";
-		mes "Got it? DON'T come back until you have everything.........";
-		emotion e_pif;
+		mes "[Aragham Jr.]";
+		mes "You've come here to kill me, haven't you? N-no! I'm can't die yet! Get lost! Otherwise, I'll kill you first!";
 		close;
+	}
+	else {
+		mes "[Aragham Jr.]";
+		mes "Hey...";
+		mes "what brings";
+		mes "you back here?";
+		mes "Why don't you";
+		mes "take a rest";
+		mes "before you leave?";
+		close;
+	}
+}
 
-
-//----------------------------------------------------------------------------------------------
-L_Test3:
-//---------------
-	if(ROGUE_Q2 > 0) goto L_Check3;
-	mes "Let me see..... Who should I have you go find........ hmm.........";
-	emotion e_hmm;
-	next;
-	mes "[Mr. Smith]";
-	mes "Ah I know! Alright, in the previous test I had you go find some items.  For this test you will need to find a specific person.";
-	emotion e_ic;
-	next;
-	mes "[Mr. Smith]";
-	set ROGUE_Q2, rand(1,3);
-	if(ROGUE_Q2 == 1) callsub sF3_R1;
-	if(ROGUE_Q2 == 2) callsub sF3_R2;
-	if(ROGUE_Q2 == 3) callsub sF3_R3;
-	next;
-	mes "[Mr. Smith]";
-	mes "Good luck to you.  Try to finish this test as soon as possible.  Getting things done quickly is one of a Rogue's traits.";
-	close;
-
-	sF3_R1:
-		mes "You will have to go and find ^5533FFAragham Junior^000000.";
+in_rogue,160,34,1	script	Hollgrehenn junior#rg	85,{
+	if (ROGUE_Q == 11) {
+		mes "[Hollgrehenn Jr.]";
+		mes "Huh...";
+		mes "From the";
+		mes "Rogue guild, huh?";
 		next;
-		mes "[Mr. Smith]";
-		mes "He lives in a little house somewhere ^5533FFSouthWest^000000 of the Fortress of Sandarman.";
-		mes "That area is located ^5533FFone map East^000000 from here and is on the ^000000SouthWestern land mass^000000.";
+		mes "[Hollgrehenn Jr.]";
+		mes "I'm Hollgrehenn Junior. I tend to a lot of our underground business. So are you ready to take on my test?";
 		next;
-		mes "[Mr. Smith]";
-		mes "He's a really nice guy who works real hard and is very good at collecting unpaid debts.";
-		mes "Unfortunately people were trying to kill him because of something his father had done in the past.";
+		mes "[Hollgrehenn Jr.]";
+		mes "We Rogues share this motto: ^0000FFAvoid the strong! Be malicious to the weak!^000000 This rule applies to any threat, especially monsters.";
 		next;
-		mes "[Mr. Smith]";
-		mes "When he joined the Rogue guild, he decided he was going to keep low which is why he's in his current hiding place.";
-		mes "No one is supposed to know where he is except for those of us at the Rogue Guild.";
+		mes "[Hollgrehenn Jr.]";
+		mes "It's easy to remember.";
+		mes "Just don't forget to put it into practice. You got it?";
 		next;
-		mes "[Mr. Smith]";
-		mes "That's why you will need this password in order to talk to him.";
-		mes "The password is: '^5533FFAragham never hoarded upgrade items.^000000'";
-		return;
-	sF3_R2:
-		mes "You will have to go and find ^5533FFHollgrehen Junior^000000.";
+		mes "[Hollgrehenn Jr.]";
+		mes "For my test, you'll go through the ^0000FFUnderground Tunnel^000000. Follow it all the way back to the Rogue Guild.";
 		next;
-		mes "[Mr. Smith]";
-		mes "He lives in a little house somewhere ^5533FFSouthEast^000000 of the Fortress of Sandarman.";
-		mes "That area is located ^5533FFone map East^000000 from here and is on the ^5533FFEastern land mass^000000.";
+		mes "[Hollgrehenn Jr.]";
+		mes "There are some monsters there, but that'll be part of your training. Now, are you ready to go or not?";
 		next;
-		mes "[Mr. Smith]";
-		mes "He's a really nice guy who works real hard and is very good at collecting unpaid debts.";
-		mes "Unfortunately people were trying to kill him because of something his father had done in the past.";
+		if (select("Yes, I am.:Nah~") == 1) {
+			mes "[Hollgrehenn Jr.]";
+			mes "Good luck.";
+			close2;
+			warp "in_rogue",15,105;
+			set ROGUE_Q,15;
+			end;
+		}
+		mes "[Hollgrehenn Jr.]";
+		mes "Take your time.";
+		mes "Come back here";
+		mes "when you're ready.";
+		close;
+	}
+	else if (ROGUE_Q == 15) {
+		mes "[Hollgrehenn Jr.]";
+		mes "Huh.";
+		mes "You failed.";
+		mes "Gonna try again?";
 		next;
-		mes "[Mr. Smith]";
-		mes "When he joined the Rogue guild, he decided he was going to keep low which is why he's in his current hiding place.";
-		mes "No one is supposed to know where he is except for those of us at the Rogue Guild.";
+		if (select("Re-Test:Cancel.") == 1) {
+			mes "[Hollgrehenn Jr.]";
+			mes "Good luck.";
+			close2;
+			warp "in_rogue",15,105;
+			end;
+		}
+		mes "[Hollgrehenn Jr.]";
+		mes "Take your time.";
+		mes "Come back here";
+		mes "when you're ready.";
+		close;
+	}
+	else if (BaseJob != Job_Rogue) {
+		mes "[Hollgrehenn Jr.]";
+		mes "Huh...?";
+		mes "You're not from";
+		mes "the Rogue Guild...";
 		next;
-		mes "[Mr. Smith]";
-		mes "That's why you will need this password in order to talk to him.";
-		mes "The password is: '^5533FFMy Father never hoarded upgrade items.^000000'";
-		return;
-	sF3_R3:
-		mes "You will have to go and find ^5533FFAntonio Junior.^000000.";
+		mes "[Hollgrehenn Jr.]";
+		mes "You better get out";
+		mes "of here right now";
+		mes "if you know what's";
+		mes "good for you...";
 		next;
-		mes "[Mr. Smith]";
-		mes "He lives in a little hut somewhere on the ^5533FFEastern end of Kokomo Beach^000000.";
-		mes "That area is located ^5533FF1 map North, and 1 map West^000000 from here.";
+		mes "[Hollgrehenn Jr.]";
+		mes "Now...";
+		mes "Beat it before";
+		mes "I change my mind";
+		mes "about killing you.";
+		close;
+	}
+	else {
+		mes "[Hollgrehenn Jr.]";
+		mes "Hey...";
+		mes "Come to visit?";
+		mes "We Rogues gotta";
+		mes "stick together, huh?";
+		close;
+	}
+}
+
+in_rogue,177,109,1	script	Antonio junior#rg	88,{
+	if (ROGUE_Q == 10) {
+		mes "[Antonio Jr.]";
+		mes "You're from";
+		mes "the Rogue guild?";
+		mes "If you wanna learn";
+		mes "about becoming a Rogue,";
+		mes "then shut up and stay put.";
 		next;
-		mes "[Mr. Smith]";
-		mes "He's a really nice guy who works real hard and is very good at collecting unpaid debts.";
-		mes "Unfortunately people were trying to kill him because of something his father had done in the past.";
+		mes "[Antonio Jr.]";
+		mes "^0000FFAvoid the strong! Be malicious to the weak!^000000 That's our motto for battling monsters.";
 		next;
-		mes "[Mr. Smith]";
-		mes "When he joined the Rogue guild, he decided he was going to keep low which is why he's in his current hiding place.";
-		mes "No one is supposed to know where he is except for those of us at the Rogue Guild.";
+		mes "[Antonio Jr.]";
+		mes "Show no mercy when you fight weaker monsters, and try to keep away from stronger monsters.";
 		next;
-		mes "[Mr. Smith]";
-		mes "That's why you will need this password in order to talk to him.";
-		mes "The password is: '^5533FFAntonio doesn't like breaking refining material.^000000'";
-		return;
-
-
-L_Check3:
-	mes "What!?! Did you just say you forgot where to go?........";
-	emotion e_what;
-	next;
-	mes "[Mr. Smith]";
-	mes "GRRRR!!! That's why you need to WRITE down important things! Geez......";
-	emotion e_an;
-	next;
-	mes "[Mr. Smith]";
-	if(ROGUE_Q2 == 1) callsub sF3_R1;
-	if(ROGUE_Q2 == 2) callsub sF3_R2;
-	if(ROGUE_Q2 == 3) callsub sF3_R3;
-	close;
-
-//-------------------------------------------------------------------------------------------------
-L_Done:
-//----------------
-	mes "I have no more busisness with you.........";
-	close;
+		mes "[Antonio Jr.]";
+		mes "Now, I want you to walk all the way to the Rogue Guild through this ^0000FFUnderground Tunnel^000000.";
+		next;
+		mes "[Antonio Jr.]";
+		mes "There are monsters there, but if you avoid the strong and be malicious to the weak, you'll be fine.";
+		next;
+		if (select("Let's go!:W-wait~") == 1) {
+			mes "[Antonio Jr.]";
+			mes "I hope you do";
+			mes "not fail this test";
+			mes "You can only become";
+			mes "a Rogue if you pass...";
+			close2;
+			warp "in_rogue",15,105;
+			set ROGUE_Q,14;
+			end;
+		}
+		mes "[Antonio Jr.]";
+		mes "I don't have time";
+		mes "to fool around with";
+		mes "you. Hurry up, get";
+		mes "ready, then take";
+		mes "the test.";
+		close;
+	}
+	else if (ROGUE_Q == 14) {
+		mes "[Antonio Jr.]";
+		mes "You failed...?";
+		mes "I guess that's life.";
+		mes "Are you gonna try";
+		mes "again or what?";
+		next;
+		if (select("Re-test:Cancel") == 1) {
+			mes "[Antonio Jr.]";
+			mes "Remember, I'm doing";
+			mes "you a favor here...";
+			mes "Now, don't come back";
+			mes "until you're a Rogue.";
+			close2;
+			warp "in_rogue",15,105;
+			end;
+		}
+		mes "[Antonio Jr.]";
+		mes "I don't have time";
+		mes "to fool around with";
+		mes "you. Hurry up, get";
+		mes "ready, then take";
+		mes "the test.";
+		close;
+	}
+	else if (BaseJob != Job_Rogue) {
+		mes "Huh...?";
+		mes "Who are you?!";
+		mes "You're not from";
+		mes "the Rogue Guild!!";
+		next;
+		mes "[Antonio Jr.]";
+		mes "You've come here to kill me?! I won't let you!! Come on, give me your best shot! You can't fight if I rip out your eyes!";
+		close;
+	}
+	else {
+		mes "[Antonio Jr.]";
+		mes "Hey, how's it goin'?";
+		mes "Take it easy, and just";
+		mes "relax before you leave.";
+		close;
+	}
 }
 
+in_rogue,370,320,0	script	quest_out	45,1,1,{
+OnTouch:
+	set ROGUE_Q,16;
+	warp "in_rogue",378,113;
+	end;
+}
 
-//===========================================================
-// Guildsman that need to be found
-//===========================================================
+in_rogue,15,184,0	script	mob_rogue#1	-1,8,1,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",14,187,"Zombie",1015,1,"mob_rogue#1::OnMyMobDead";
+		monster "in_rogue",15,188,"Zombie",1015,1,"mob_rogue#1::OnMyMobDead";
+		monster "in_rogue",16,189,"Zombie",1015,1,"mob_rogue#1::OnMyMobDead";
+		monster "in_rogue",17,187,"Zombie",1015,1,"mob_rogue#1::OnMyMobDead";
+		monster "in_rogue",18,188,"Zombie",1015,1,"mob_rogue#1::OnMyMobDead";
+		monster "in_rogue",19,189,"Zombie",1015,1,"mob_rogue#1::OnMyMobDead";
+	}
+	else
+		warp "mag_dun02",181,176;
+	end;
 
-//------------------------------------------------------------------------------
-in_rogue,272,136,3	script	Hermanthorn Jr.	85,{
-	mes "[Hermanthorn Jr.]";
-	mes "Huh? Wha.... who are you?! You're not from the Rogue guild!! Get out of here!";
-	emotion e_what;
-	next;
-	mes "[Hermanthorn Jr.]";
-	mes "You're..... I see! You're one of them!!! You've come here to kill me haven't you??!! No... NO!! I'm not ready to die yet!";
-	emotion e_gasp;
-	next;
-	mes "[Hermanthorn Jr.]";
-	mes "Aaaaaaaaaaaaaahhhh!! Go away! Get lost! Otherwise I am gonna KILL YOU!!!";
-	emotion e_wah;
-	close;
+OnDisable:
+	killmonster "in_rogue","mob_rogue#1::OnMyMobDead";
+	end;
 }
 
-// --------------------------------------------------------------------------
-cmd_fild09,106,195,0	script	Aragham Junior#01	45,1,1,{
-	callfunc "F_RogueTest3", 1, "Aragham", "never", "hoarded", "upgrade items.", 244, 24;
-}
+in_rogue,15,273,0	script	mob_rogue#2	-1,8,1,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",15,276,"Mummy",1041,1,"mob_rogue#2::OnMyMobDead";
+		monster "in_rogue",13,276,"Mummy",1041,1,"mob_rogue#2::OnMyMobDead";
+		monster "in_rogue",11,276,"Mummy",1041,1,"mob_rogue#2::OnMyMobDead";
+	}
+	else
+		warp "mag_dun02",181,176;
+	end;
 
-// -----------------------------------------------------------------------------
-cmd_fild09,335,143,0	script	Hollgrehen Junior#01	45,1,1,{
-	callfunc "F_RogueTest3", 2, "My father", "never", "hoarded", "upgrade items.", 168, 34;
+OnDisable:
+	killmonster "in_rogue","mob_rogue#2::OnMyMobDead";
+	end;
 }
 
-// ------------------------------------------------------------------------------
-cmd_fild04,304,179,0	script	Antonio Junior#01	45,1,1,{
-	callfunc "F_RogueTest3", 3, "Antonio", "doesn't like", "breaking", "refining materials.", 165, 104;
-}
+in_rogue,15,333,0	script	mob_rogue#3	-1,8,1,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",15,336,"Zombie",1015,1,"mob_rogue#3::OnMyMobDead";
+		monster "in_rogue",15,336,"Zombie",1015,1,"mob_rogue#3::OnMyMobDead";
+		monster "in_rogue",15,336,"Zombie",1015,1,"mob_rogue#3::OnMyMobDead";
+		monster "in_rogue",15,336,"Zombie",1015,1,"mob_rogue#3::OnMyMobDead";
+		donpcevent "mob_rogue#4::OnDisable";
+		donpcevent "mob_rogue#7::OnDisable";
+		donpcevent "mob_rogue#8::OnDisable";
+	}
+	else
+		warp "mag_dun02",181,176;
+	end;
 
-// Function for Guildsman ===================================
-function	script	F_RogueTest3	{
+OnDisable:
+	killmonster "in_rogue","mob_rogue#3::OnMyMObDead";
+	end;
+}
 
-	mes "[???]";
-	mes "Who's there?!!!";
-	mes "Who dares to trespass on my territory?";
-	if(god_megin_2 > 0 && getarg(1) == "Aragham") goto L_Pass;
-	if(BaseJob != Job_Thief || ROGUE_Q<3 || ROGUE_Q2==0) close;
-L_Pass:
-	deletearray @choice$[1], 4;
-	next;
-	menu "My father",M_1a, "Aragham",M_1b, "Antonio",M_1c, "Legolas",M_1d;
-
-	M_1a:
-		set @choice$[1], "My father";
-		goto M_Menu2;
-	M_1b:
-		set @choice$[1], "Aragham";
-		goto M_Menu2;
-	M_1c:
-		set @choice$[1], "Antonio";
-		goto M_Menu2;
-	M_1d:
-		set @choice$[1], "Legolas";
-
-	M_Menu2:
-	callsub sF_Password;
-	menu "did not",M_2a, "doesn't like",M_2b, "never",M_2c, "ever",M_2d;
-
-	M_2a:
-		set @choice$[2], "did not";
-		goto M_Menu3;
-	M_2b:
-		set @choice$[2], "doesn't like";
-		goto M_Menu3;
-	M_2c:
-		set @choice$[2], "never";
-		goto M_Menu3;
-	M_2d:
-		set @choice$[2], "ever";
-
-	M_Menu3:
-	callsub sF_Password;
-	menu "hoard",M_3a, "hoarded",M_3b, "hide",M_3c, "took",M_3d, "breaking",M_3e;
-
-	M_3a:
-		set @choice$[3], "hoard";
-		goto M_Menu4;
-	M_3b:
-		set @choice$[3], "hoarded";
-		goto M_Menu4;
-	M_3c:
-		set @choice$[3], "hide";
-		goto M_Menu4;
-	M_3d:
-		set @choice$[3], "took";
-		goto M_Menu4;
-	M_3e:
-		set @choice$[3], "breaking";
-
-	M_Menu4:
-	callsub sF_Password;
-	menu "upgrade items.",M_4a, "forging items.",M_4b, "refining materials.",M_4c, "upgrade equipment.",M_4d;
-
-	M_4a:
-		set @choice$[4], "upgrade items.";
-		goto L_Check;
-	M_4b:
-		set @choice$[4], "forging items.";
-		goto L_Check;
-	M_4c:
-		set @choice$[4], "refining materials.";
-		goto L_Check;
-	M_4d:
-		set @choice$[4], "upgrade equipment.";
-
-L_Check:
-	callsub sF_Password;
-	if(god_megin_2 > 0) goto L_Enter;
-	if(ROGUE_Q2 != getarg(0)) goto L_Wrong;
-L_Enter:
-	if((@choice$[1] != getarg(1)) || (@choice$[2] != getarg(2)) || (@choice$[3] != getarg(3)) || (@choice$[4] != getarg(4))) goto L_Wrong;
-	mes "~ creeek ~";
-	mes "You hear the door begining to open........";
-	next;
-	deletearray @choice$[1], 4;
-	warp "in_rogue", getarg(5), getarg(6);
+in_rogue,39,341,0	script	mob_rogue#4	-1,1,8,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",39,341,"Mummy",1041,1,"mob_rogue#4::OnMyMobDead";
+		monster "in_rogue",40,341,"Ghoul",1036,1,"mob_rogue#4::OnMyMobDead";
+		monster "in_rogue",41,341,"Abysmal Knight",1219,1,"mob_rogue#4::OnMyMobDead";
+		monster "in_rogue",42,341,"Mummy",1041,1,"mob_rogue#4::OnMyMobDead";
+	}
+	else
+		warp "mag_dun02",181,176;
 	end;
 
-	L_Wrong:
-		mes "[???]";
-		mes "Get lost!!";
-		close;
-sF_Password:
-	mes "[^5533FF" + strcharinfo(0) + "^000000]";
-	mes @choice$[1];
-	mes @choice$[2];
-	mes @choice$[3];
-	mes @choice$[4];
-	next;
-	return;
+OnDisable:
+	killmonster "in_rogue","mob_rogue#4::OnMyMobDead";
+	end;
 }
 
+in_rogue,102,334,0	script	mob_rogue#5	-1,1,4,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",92,334,"Khalitzburg",1132,1,"mob_rogue#5::OnMyMobDead";
+		donpcevent "mob_rogue#1::OnDisable";
+		donpcevent "mob_rogue#2::OnDisable";
+		donpcevent "mob_rogue#3::OnDisable";
+	}
+	else
+		warp "mag_dun02",181,176;
+	end;
 
-//=======================================================================================================//
-//						Test 4: Last Test						//
-//***********************************************************************************************************************************************************//
-// Other path
-// warp "in_rogue", 11, 388;
-// 390,389 end warp
-// 9,9 -> 9,21
-//===============================================
-// Guildsman
-//===============================================
-//---------------------------------------------------------------------------
-in_rogue,244,39,4	script	Aragham Junior#02	99,{
-	callfunc "F_RogueTest4", 1, "Aragham Junior", 245, 27;
-}
-//---------------------------------------------------------------------------
-in_rogue,152,27,6	script	Hollgrehen Junior#02	85,{
-	callfunc "F_RogueTest4", 2, "Hollgrehen Junior", 160, 32;
-}
-//---------------------------------------------------------------------------
-in_rogue,183,105,4	script	Antonio Junior#02	88,{
-	callfunc "F_RogueTest4", 3, "Antonio Junior", 175, 107;
+OnDisable:
+	killmonster "in_rogue","mob_rogue#5::OnMyMobDead";
+	end;
 }
 
-// Function for Guildsman =============================
-function	script	F_RogueTest4	{
+in_rogue,58,309,0	script	mob_rogue#6	-1,4,1,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",57,301,"Khalitzburg",1132,1,"mob_rogue#6::OnMyMobDead";
+		donpcevent "mob_rogue#1::OnDisable";
+		donpcevent "mob_rogue#2::OnDisable";
+		donpcevent "mob_rogue#3::OnDisable";
+	}
+	else
+		warp "mag_dun02",181,176;
+	end;
 
-	if(BaseJob != Job_Thief || ROGUE_Q2 != getarg(0)) goto L_NoThief;
-	if(ROGUE_Q == 4) goto L_Restart;
-	mes "[" + getarg(1) + "]";
-	mes "Hello there... You must be from the Rogue guild.  My name is " + getarg(1) + "...... I am the Rogue of the Desert..............";
-	next;
-	mes "[" + getarg(1) + "]";
-	mes "Aww who am I kidding...... Let's cut the crap.  So are you ready to become a rogue?";
-	emotion e_swt;
-	next;
-	mes "[" + getarg(1) + "]";
-	mes "You see, the Rogue motto is...... ^5533FF'Avoid the strong! Be malicious to the weak!'^000000";
-	mes "This simple rule applys to fighting monsters as well.";
-	next;
-	mes "[" + getarg(1) + "]";
-	mes "The very last thing you will have to do before you can become a Rogue, is to walk through an underground passage to the Rogue Guild.";
-	next;
-	mes "[" + getarg(1) + "]";
-	mes "Sounds easy huh? Well it's not! But don't worry....";
-	mes "If you stay true to the Rogue motto and use a lot of hide, and do a lot of running, you should be just fine.";
+OnDisable:
+	killmonster "in_rogue","mob_rogue#6::OnMyMobDead";
+	end;
+}
 
-	M_Menu:
-	next;
-	mes "[" + getarg(1) + "]";
-	mes "Ok, are you ready to go?";
-	next;
-	menu "As ready as I'll ever be.",-, "Actually I'm kinda scared...",M_End;
+in_rogue,101,264,0	script	mob_rogue#7	-1,5,5,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",101,264,"Abysmal Knight",1219,1,"mob_rogue#7::OnMyMobDead";
+		monster "in_rogue",102,264,"Abysmal Knight",1219,1,"mob_rogue#7::OnMyMobDead";
+	}
+	else
+		warp "mag_dun02",181,176;
+	end;
 
-		mes "[" + getarg(1) + "]";
-		mes "Good luck then.";
-		next;
-		set ROGUE_Q, 4;
-		killmonsterall "in_rogue";
-		savepoint "in_rogue", getarg(2), getarg(3);
-		warp "in_rogue", 15, 105;
-		end;
+OnDisable:
+	killmonster "in_rogue","mob_rogue#7::OnMyMobDead";
+	end;
+}
 
-	M_End:
-		mes "[" + getarg(1) + "]";
-		mes ".....................";
-		next;
-		mes "[" + getarg(1) + "]";
-		mes "Well take your time then...... I guess.......";
-		close;
+in_rogue,140,312,0	script	mob_rogue#8	-1,5,5,{
+OnTouch:
+	if (BaseJob == Job_Thief)
+		monster "in_rogue",140,312,"Abysmal Knight",1219,1,"mob_rogue#8::OnMyMobDead";
+	else
+		warp "mag_dun02",181,176;
+	end;
 
-L_Restart:
-	mes "[" + getarg(1) + "]";
-	mes "....... Looks like you got creamed.......";
-	emotion e_swt;
-	next;
-	mes "[" + getarg(1) + "]";
-	mes "If you're up for it, I'll send you back in.  Failure has a way of teaching success.... yada yada yada....";
-	percentheal 100,100;
-	goto M_Menu;
-
-L_NoThief:
-	mes "[" + getarg(1) +"]";
-	mes "I don't know how you got the";
-		if(ROGUE_Q2)
-	{
-		mes "pass, but I am not the one";
-		mes "in charge of your test.";
-	}
-		else
-	{
-		mes "pass, but looking at your face,";
-		mes "I guess you're not here for the";
-		mes "Rogue test.";
-	}
-	next;
-	mes "[" + getarg(1) +"]";
-	mes "Please hurry up and leave";
-	mes "this place as soon as you can!";
-	close;
+OnDisable:
+	killmonster "in_rogue","mob_rogue#8::OnMyMobDead";
+	end;
 }
 
-//================================================
-// Monster Spawns
-//================================================
-in_rogue,15,185,0	script	rogue_mob1	139,8,0,{
-	monster "in_rogue",14,188,"Zombie",1015,1;
-	monster "in_rogue",15,188,"Zombie",1015,1;
-	monster "in_rogue",16,188,"Zombie",1015,1;
-	monster "in_rogue",14,189,"Zombie",1015,1;
-	monster "in_rogue",15,189,"Zombie",1015,1;
-	monster "in_rogue",16,189,"Zombie",1015,1;
+in_rogue,139,246,0	script	mob_rogue#9	-1,4,4,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",139,246,"Zombie",1015,1,"mob_rogue#9::OnMyMobDead";
+		monster "in_rogue",149,246,"Zombie",1015,1,"mob_rogue#9::OnMyMobDead";
+		monster "in_rogue",140,246,"Zombie",1015,1,"mob_rogue#9::OnMyMobDead";
+		monster "in_rogue",141,246,"Zombie",1015,1,"mob_rogue#9::OnMyMobDead";
+		monster "in_rogue",150,246,"Zombie",1015,1,"mob_rogue#9::OnMyMobDead";
+		monster "in_rogue",151,246,"Zombie",1015,1,"mob_rogue#9::OnMyMobDead";
+	}
+	else
+		warp "mag_dun02",181,176;
 	end;
-}
-in_rogue,15,245,0	script	rogue_mob2	139,8,0,{
-	monster "in_rogue",14,247,"Mummy",1041,1;
-	monster "in_rogue",15,247,"Mummy",1041,1;
-	monster "in_rogue",16,247,"Mummy",1041,1;
-	monster "in_rogue",14,248,"Mummy",1041,1;
-	monster "in_rogue",15,248,"Mummy",1041,1;
-	monster "in_rogue",16,248,"Mummy",1041,1;
+
+OnDisable:
+	killmonster "in_rogue","mob_rogue#9::OnMyMobDead";
 	end;
 }
-in_rogue,15,328,0	script	rogue_mob3	139,8,0,{
-	monster "in_rogue",14,331,"Zombie",1015,1;
-	monster "in_rogue",15,331,"Zombie",1015,1;
-	monster "in_rogue",16,331,"Zombie",1015,1;
-	monster "in_rogue",14,332,"Zombie",1015,1;
-	monster "in_rogue",15,332,"Zombie",1015,1;
-	monster "in_rogue",16,332,"Zombie",1015,1;
+
+in_rogue,197,249,0	script	mob_rogue#10	-1,1,8,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",176,211,"Ghoul",1036,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",176,212,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",176,213,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",177,214,"Abysmal Knight",1219,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",177,211,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",177,212,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",177,213,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",177,214,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",178,211,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",178,212,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",178,213,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",178,214,"Archer Skeleton",1016,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",179,211,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",179,212,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",179,213,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		monster "in_rogue",179,214,"Zombie",1015,1,"mob_rogue#10::OnMyMobDead";
+		donpcevent "mob_rogue#4::OnDisable";
+		donpcevent "mob_rogue#5::OnDisable";
+		donpcevent "mob_rogue#6::OnDisable";
+	}
+	else
+		warp "mag_dun02",181,176;
 	end;
-}
-in_rogue,35,342,0	script	rogue_mob4	139,0,8,{
-	monster "in_rogue",38,340,"Mummy",1041,1;
-	monster "in_rogue",37,342,"Abyss Knight",1219,1;
-	monster "in_rogue",39,342,"Ghoul",1036,1;
-	monster "in_rogue",38,344,"Mummy",1041,1;
+
+OnDisable:
+	killmonster "in_rogue","mob_rogue#10::OnMyMobDead";
 	end;
 }
-in_rogue,57,306,0	script	rogue_mob5	139,4,0,{
-	monster "in_rogue",59,301,"Khalitzburg",1132,1;
+
+in_rogue,96,205,0	script	mob_rogue#11	-1,1,8,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		donpcevent "mob_rogue#7::OnDisable";
+		donpcevent "mob_rogue#8::OnDisable";
+		donpcevent "mob_rogue#9::OnDisable";
+		donpcevent "mob_rogue#10::OnDisable";
+	}
+	else
+		warp "mag_dun02",181,176;
 	end;
 }
-in_rogue,96,333,0	script	rogue_mob6	139,0,4,{
-	monster "in_rogue",92,325,"Khalitzburg",1132,1;
+
+in_rogue,86,187,0	script	mob_rogue#12	-1,1,8,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",90,187,"Mummy",1041,1,"mob_rogue#12::OnMyMobDead";
+		monster "in_rogue",90,183,"Mummy",1041,1,"mob_rogue#12::OnMyMobDead";
+		monster "in_rogue",90,190,"Mummy",1041,1,"mob_rogue#12::OnMyMobDead";
+	}
+	else
+		warp "mag_dun02",181,176;
 	end;
-}
-in_rogue,139,313,0	script	rogue_mob7	139,4,0,{
-	monster "in_rogue",139,309,"Abyss Knight",1219,1;
+
+OnDisable:
+	killmonster "in_rogue","mob_rogue#12::OnMyMobDead";
 	end;
 }
-in_rogue,135,246,0	script	rogue_mob8	139,0,4,{
-	monster "in_rogue",139,245,"Zombie",1015,2;
-	monster "in_rogue",139,246,"Zombie",1015,2;
-	monster "in_rogue",139,247,"Zombie",1015,2;
+
+in_rogue,223,187,0	script	mob_rogue#13	-1,1,8,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",236,186,"Abysmal Knight",1219,1,"mob_rogue#13::OnMyMobDead";
+		monster "in_rogue",238,186,"Abysmal Knight",1219,1,"mob_rogue#13::OnMyMobDead";
+		monster "in_rogue",234,186,"Abysmal Knight",1219,1,"mob_rogue#13::OnMyMobDead";
+		donpcevent "mob_rogue#12::OnDisable";
+	}
+	else
+		warp "mag_dun02",181,176;
 	end;
-}
-in_rogue,62,302,0	script	rogue_mob9	139,0,4,{
-	monster "in_rogue",57,305,"Khalitzburg",1132,1;
+
+OnDisable:
+	killmonster "in_rogue","mob_rogue#13::OnMyMobDead";
 	end;
 }
-in_rogue,199,218,0	script	rogue_mob10	139,0,8,{
-	monster "in_rogue",157,218,"Zombie",1015,10;
-	monster "in_rogue",157,218,"Abyss Knight",1219,1;
-	monster "in_rogue",157,218,"Ghoul",1036,1;
-	monster "in_rogue",157,218,"Archer Skeleton",1016,1;
+
+in_rogue,233,207,0	script	mob_rogue#14	-1,8,3,{
+OnTouch:
+	if (BaseJob == Job_Thief)
+		donpcevent "mob_rogue#13::OnDisable";
+	else
+		warp "mag_dun02",181,176;
 	end;
 }
-in_rogue,86,187,0	script	rogue_mob11	139,0,8,{
-	monster "in_rogue",88,186,"Mummy",1041,1;
-	monster "in_rogue",88,187,"Mummy",1041,1;
-	monster "in_rogue",88,188,"Mummy",1041,1;
+
+in_rogue,244,319,0	script	mob_rogue#15	-1,1,8,{
+OnTouch:
+	if (BaseJob == Job_Thief) {
+		monster "in_rogue",240,319,"Mummy",1041,1,"mob_rogue#15::OnMyMobDead";
+		monster "in_rogue",259,319,"Archer Skeleton",1016,1,"mob_rogue#15::OnMyMobDead";
+		monster "in_rogue",259,320,"Ghoul",1036,1,"mob_rogue#15::OnMyMobDead";
+		monster "in_rogue",240,319,"Mummy",1041,1,"mob_rogue#15::OnMyMobDead";
+		monster "in_rogue",259,319,"Archer Skeleton",1016,1,"mob_rogue#15::OnMyMobDead";
+		monster "in_rogue",259,320,"Ghoul",1036,1,"mob_rogue#15::OnMyMobDead";
+	}
+	else
+		warp "mag_dun02",181,176;
 	end;
-}
-in_rogue,225,187,0	script	rogue_mob12	139,0,8,{
-	monster "in_rogue",232,191,"Abyss Knight",1219,1;
-	monster "in_rogue",233,190,"Abyss Knight",1219,1;
-	monster "in_rogue",234,189,"Abyss Knight",1219,1;
+
+OnDisable:
+	killmonster "in_rogue","mob_rogue#15::OnMyMobDead";
 	end;
 }
-in_rogue,252,320,0	script	rogue_mob13	139,0,8,{
-	monster "in_rogue",252,319,"Mummy",1041,1;
-	monster "in_rogue",252,321,"Mummy",1041,1;
-	monster "in_rogue",252,319,"Ghoul",1036,1;
-	monster "in_rogue",252,321,"Ghoul",1036,1;
-	monster "in_rogue",257,320,"Archer Skeleton",1016,1;
-	monster "in_rogue",248,320,"Archer Skeleton",1016,1;
+
+in_rogue,334,319,0	script	mob_rogue#16	-1,8,8,{
+OnTouch:
+	if (BaseJob == Job_Thief)
+		donpcevent "mob_rogue#15::OnDisable";
+	else
+		warp "mag_dun02",181,176;
 	end;
 }
 
-//================================================
-// End Warp
-//================================================
-in_rogue,370,320,0	script	rogue04	45,1,1,{
-	set ROGUE_Q, 5;
-	killmonsterall "in_rogue";
-	warp "in_rogue",378,113;
+in_rogue,3,3,0	script	resetter#rogue	-1,{
+OnTimer500000:
+	donpcevent "mob_rogue#1::OnDisable";
+	donpcevent "mob_rogue#2::OnDisable";
+	donpcevent "mob_rogue#3::OnDisable";
+	donpcevent "mob_rogue#4::OnDisable";
+	donpcevent "mob_rogue#5::OnDisable";
+	donpcevent "mob_rogue#6::OnDisable";
+	donpcevent "mob_rogue#7::OnDisable";
+	donpcevent "mob_rogue#8::OnDisable";
+	donpcevent "mob_rogue#9::OnDisable";
+	donpcevent "mob_rogue#10::OnDisable";
+	donpcevent "mob_rogue#12::OnDisable";
+	donpcevent "mob_rogue#13::OnDisable";
+	donpcevent "mob_rogue#15::OnDisable";
+	initnpctimer;
 	end;
-}
 
-//================================================
-// Timer: Keeps monsters from overspawning
-//================================================
--	script	RogueTest3	-1,{
+OnEnable:
+	initnpctimer;
 	end;
 
-OnMinute10:
-OnMinute20:
-OnMinute30:
-OnMinute40:
-OnMinute50:
-OnMinute60:
-	killmonsterall "in_rogue";
+OnInit:
+	donpcevent "resetter#rogue::OnEnable";
 	end;
 }
 
-//==============================================================================
+in_rogue,399,286,1	script	switch#rogreset	88,{
+	mes "^F08080Tah dah~";
+	mes "Monsters for the";
+	mes "Rogue Job Change";
+	mes "have been reset^000000.";
+	donpcevent "mob_rogue#1::OnDisable";
+	donpcevent "mob_rogue#2::OnDisable";
+	donpcevent "mob_rogue#3::OnDisable";
+	donpcevent "mob_rogue#4::OnDisable";
+	donpcevent "mob_rogue#5::OnDisable";
+	donpcevent "mob_rogue#6::OnDisable";
+	donpcevent "mob_rogue#7::OnDisable";
+	donpcevent "mob_rogue#8::OnDisable";
+	donpcevent "mob_rogue#9::OnDisable";
+	donpcevent "mob_rogue#10::OnDisable";
+	donpcevent "mob_rogue#12::OnDisable";
+	donpcevent "mob_rogue#13::OnDisable";
+	donpcevent "mob_rogue#15::OnDisable";
+	donpcevent "resetter#rogue::OnEnable";
+	close;
+}
+
+//============================================================ 
 // mapflag
-//==============================================================================
+//============================================================ 
 in_rogue	mapflag	nomemo
 in_rogue	mapflag	noteleport
 in_rogue	mapflag	nosave	SavePoint
 in_rogue	mapflag	nopenalty
 in_rogue	mapflag	nobranch
-in_rogue	mapflag	noexp
-in_rogue	mapflag	noloot
+
+//============================================================ 
+// Old changelog
+//============================================================ 
+//= 1.1 fixed 3 wrong questions, added missing lines [Lupus]
+//= 1.3 Baby Class Support + 40/50 JobLevel Item fix [Lupus]
+//= 1.5 Fixed possible EXP abuse [Lupus]
+//= 1.6 Added a func which prevent advanced classes passing
+//= 2nd Job Quests again. It also guides adv classes where
+//= to go. [Lupus]
+//= 2.0 Changed numbers to constants. [Vicious]
+//= 2.1 Removed Duplicates [Silent]
+//= 2.2 Merged JFunc [Lupus]
+//= 2.3 Added a possibility for players doing Meginjyard quest
+//= to enter Rogue guild as there's a NPC inside [SinSloth]
+//= 2.3a fixed test4 person interaction, let BABY thieves pass
+//=	the test, too [Lupus]

+ 2671 - 2034
npc/jobs/2-2/sage.txt

@@ -5,2176 +5,2813 @@
 //= Unknown Translator (1.0)
 //= Darkchild (1.2)
 //===== Current Version: ===================================== 
-//= 2.0b
+//= 2.1
 //===== Compatible With: ===================================== 
-//= eAthena 1.0 +
+//= eAthena SVN
 //===== Description: ========================================= 
-//= Sage job quest based off of official servers.
+//= [Aegis Conversion]
+//= Job quest for Sage classes
 //===== Additional Comments: ================================= 
-//= Script mostly based on translated jA script
-//= Written test questions/answers weren't translated 100% corectly
-//= So a lot of those are based upon mRO site and my own info
-//= IF you by excident have (or can get) screenshots of these questions
-//= Then PLEASE send them to Darkchild
-//= 1.3 Baby class Support added [Lupus] 1.5 Fixed possible EXP abuse [Lupus]
-//= 1.6 Added a func which prevent advanced classes passing
-//= 2nd Job Quests again. It also guides adv classes where to go. [Lupus]
-//= 1.7 Fixed tuition fee. Fixed some answers, names & typos, added missing labels [Lupus]
-//= 1.7a Moved JFunc back in the main file, fixed typos [Lupus]
-//= 2.0 Changed numbers to constants. [Vicious]
-//= 2.0a Fixed double warp [KarLaeda] 2.0b Mantis Scythe Item name fix
+//= 2.1 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
+//=	No longer uses function "F_BlockHigh"
 //============================================================ 
 
-
-//==================================
-//Sage Castle
-//==================================
-yuno_in02,38,61,4	script	Magic Academy Headmaster 	743,{
-	callfunc "F_BlockHigh",Job_Mage_High,"High Mage",Job_Professor,"Professor","Keiron";
-	if(BaseJob == Job_Sage) goto L_Menu3_3;
-	if(BaseJob != Job_Mage) goto L_Menu2_1;
-	if(SAGE_Q == 11) goto L_Menu3_1;
-	if(SAGE_Q >= 3) goto L_Menu2_2;
-	mes "[Keiron]";
-	mes "All who appreciate the fine art";
-	mes "of magic are welcome here.";
-	mes "How can I help you?";
-        next;
-	menu "Change class to Sage",L_Menu1_1,"About the Sage class",-,"Just looking around",L_Menu1_2;
-		mes "[Keiron]";
-		mes "So you're interested in being a Sage?";
-		mes "Well, I can't just make you one straight away.";
-		next;
-		mes "[Keiron]";
-		mes "In order to become a Sage, you'll need to file an application for entry into the Shubaichul Magic Academy and take the placement test.";
-		next;
-		mes "[Keiron]";
-		mes "Once you're placed, you'll need to complete coursework and finally write and defend a thesis.";
-		next;
-		mes "[Keiron]";
-		mes "If you successfully complete the requirements, you'll be granted a Sage license.";
-		next;
-		mes "[Keiron]";
-		mes "If you wish to apply, go see Mathias in the Shubaichul Magic Academy.";
-		mes "Tell him I sent you.";
+yuno_in02,38,61,5	script	Dean of the Academy#sa	743,{
+	cutin "job_sage_kayron",2;
+	mes "[Kayron Grik]";
+	if (Upper == 1) {
+		mes "Haha, I have seen many people";
+		mes "but it seems you possess special power and abilities.";
+		next;
+		mes "[Kayron Grik]";
+		mes "You'd better leave and increase your reputation.";
+		mes "Never forget that once you also used to be a novice.";
+		close2;
+		cutin "job_sage_kayron",255;
+		end;
+	}
+	if (BaseJob != Job_Mage) {
+		if (BaseJob == Job_Sage) {
+			mes "What brings you here? Is there anything bothering you recently?";
+			mes "Although you're already a Sage, that doesn't mean you can stop studying.";
+			next;
+			mes "[Kayron Grik]";
+			mes "Our knowledge is the mainspring of activity which helps the kingdom to be developed faster.";
+			mes "Please keep this in mind: you must study and record everything you've discovered so that all in the kingdom may benefit.";
+		}
+		else if (BaseJob == Job_Novice) {
+			mes "Hahah, so my little Novice, what brings you this way? ...I guess you're on a sightseeing trip?";
+			mes "You must have had a really hard time to reach this place. I must say, you seem interested in the Sage class.";
+			next;
+			mes "[Kayron Grik]";
+			mes "If you aspire to become a Sage, you must first live life as a Mage. Only then shall you have a chance.";
+			mes "I am looking forward seeing you again.";
+		}
+		else {
+			mes "*Chuckle* Although we've been studying this world for a long time, I know that studying in itself will fulfill all the needs of the people.";
+			mes "Other classes are just as important to the welfare of Rune-Midgarts...";
+			next;
+			mes "[Kayron Grik]";
+			mes "However, if you happen to meet a Sage down the road, I hope you will lend him your assistance.";
+			mes "And if you do, he shall repay you in kind...";
+		}
 		close;
-L_Menu1_1:
-	mes "[Keiron]";
-	mes "A Sage?";
-	mes "Well...";
-	mes "In order to change you way of living, you have to change your way of thinking.";
-	next;
-	mes "[Keiron]";
-	mes "Sages actively contribute knowledge to the kingdom through rigorous research.";
-	mes "They also help society through its worst problems.";
-	mes "Just because you dress as a Sage doesn't mean you're a Sage.";
-	next;
-	mes "[Keiron]";
-	mes "To become a Sage, please apply for entry into the Shubaichul Magic Academy.";
-	mes "The admissions officer will explain the educational requirements.";
-	close;
-L_Menu1_2:
-	mes "[Keiron]";
-	mes "Excellent.  If you have some free time, why not peruse a a volume from our library?";
-	mes "Our library is truly a bastion of knowledge.";
-	next;
-	mes "[Keiron]";
-	mes "Of course, there is much that can't be learned from reading books, but it's a good start.";
-	close;
-L_Menu2_1:
-	mes "[Keiron]";
-	mes "We Sages do a lot of research about the world on our own,";
-	mes "but to maximize our knowledge,";
-	mes "we regularly form interdisciplinary research teams.";
-	next;
-	mes "[Keiron]";
-	mes "You should talk to our Sages and share any research you may have been doing within your own profession.";
-	close;
-L_Menu2_2:
-	mes "[Keiron]";
-	mes "The road to becoming a Sage isn't easy.";
-	mes "You need to have a strong dedication to mastering magic.";
-	next;
-	mes "[Keiron]";
-	mes "You need to keep plugging away at that thesis.";
-	mes "Good luck!";
-	close;
-L_Menu3_1:
-	if(countitem(1550) >= 1) goto L_Menu3_2;
-	mes "[Keiron]";
-	mes "Where's your thesis?";
-	mes "I'm eager to evaulate it.";
-	next;
-	mes "[Keiron]";
-	mes "Did you forget it?";
-	mes "In any case, please bring it post-haste.";
-	close;
-L_Menu3_2:
-	mes "[Keiron]";
-	mes "It looks like you have a thesis to present.  Let's have a look...";
-	next;
-	mes "[Keiron]";
-	mes "Hmmm...";
-	next;
-	mes "[Keiron]";
-	mes "Yes....";
-	next;
-	mes "[Keiron]";
-	mes "Interesting...";
-	next;
-	mes "[Keiron]";
-	mes "It's not stylistically";
-	mes "cohesive, but your zeal for research is amply proven by your thesis.  I approve.";
-	next;
-	if(SkillPoint == 0) goto LCHANGE;
-	mes "[Keiron]";
-	mes "Well you are all set for the jobchange except for 1 thing!";
-	mes "You have unused Skill Points!!!";
-	mes "Please use those first!";
-	close;
-		
-	LCHANGE:
-	callfunc "Job_Change",Job_Sage;
-	callfunc "F_ClearJobVar";
-	mes "[Keiron]";
-	mes "Congratulations!";
-	mes "You're a Sage now.";
-	mes "Don't let that passion for research ever be dampened.";
-	next;
-	mes "[Keiron]";
-	mes "Keep your thesis around, since it may be useful in a publish-or-perish environment later on.";
-	next;
-	mes "[Keiron]";
-	mes "Some day, you'll be a bastion of knowledge all by yourself!";
-	close;
-L_Menu3_3:
-	mes "[Keiron]";
-	mes "Hmmm?  What's up?";
-	mes "Just because you're a Sage doesn't mean you should quit your studies.";
-	next;
-	mes "[Keiron]";
-	mes "In order to maintain our role as the kingdom's gatherers and dissemenators of knowledge, we can never miss an opportunity to gather data.";
-	close;
+	}
+	if (SAGE_Q == 0) {
+		cutin "job_sage_kayron",2;
+		mes "[Kayron Grik]";
+		mes "Welcome, young one. I can see that you're intrigued by the wonders of magic.";
+		mes "So what kind of business brings you to me?";
+		next;
+		switch(select("I would like to be a Sage.:Let me know about the Sage job change.:Nothing.")) {
+		case 1:
+			mes "[Kayron Grik]";
+			mes "Hm? Do you wish to become a Sage?";
+			mes "Well then, I would like to suggest a few things that are required of a Sage.";
+			next;
+			mes "[Kayron Grik]";
+			mes "Sages are those who promote the development of this continent through the endless studying and recording of all knowledge related to this world.";
+			mes "Becoming a Sage is more than just a costume change: It's an important job where you must be always aware of your duty and responsibility to the people.";
+			next;
+			mes "[Kayron Grik]";
+			mes "You may want to enter an enrollment application to the Schweicherbil Magic Academy.";
+			mes "I believe they can explain in detail what you need to become a Sage.";
+			break;
+		case 2:
+			mes "[Kayron Grik]";
+			mes "Sage job change...hmm...an interesting turn of phrase, I must say.";
+			mes "Although that is what we say, it is very inappropriate to think of becoming a Sage as merely changing a job.";
+			next;
+			mes "[Kayron Grik]";
+			mes "In order to be a Sage, you must enter an application to the Schweicherbil Magic Academy.";
+			mes "You will then take the entrance examination.";
+			next;
+			mes "[Kayron Grik]";
+			mes "After the examination, you will be assigned to study a specific subject...";
+			mes "and finally, you will submit your dissertation to the university.";
+			next;
+			mes "[Kayron Grik]";
+			mes "I am the one who evaluates your dissertation.";
+			mes "When you pass all the courses, you will become a Sage.";
+			next;
+			mes "[Kayron Grik]";
+			mes "Please visit the Schweicherbil Magic Academy.";
+			mes "A young Sage named Metheus Sylphe will accept your application.";
+			break;
+		case 3:
+			mes "[Kayron Grik]";
+			mes "I see...Well, seeing as you have leisure time to spare, I encourage you to peruse as many books as you can.";
+			mes "You can find and research every worldly matter within their pages.";
+			next;
+			mes "[Kayron Grik]";
+			mes "Ah yes, you can not become the most intelligent person merely by reading all the books around you...";
+			mes "However, for a Sage such as myself, the knowledge found in books is most important.";
+		}
+		close2;
+		cutin "job_sage_kayron",255;
+		end;
+	}
+	else if (SAGE_Q == 15) {
+		if (countitem(1550) > 0) {
+			if (JobLevel < 40) {
+				set SAGE_Q,0;
+				mes "You don't seem to be qualified yet.";
+				mes "Remember, you must reach at least job level 40 to become a Sage.";
+				close2;
+				cutin "job_sage_kayron",255;
+				end;
+			}
+			if (SkillPoint) {
+				mes "You possess remaining skill points...";
+				mes "Before you submit your dissertation, please take care this matter first.";
+				close2;
+				cutin "job_sage_kayron",255;
+				end;
+			}
+			mes "Ho~ So? Did you finally complete your dissertation? Well done.";
+			mes "Let me see.";
+			next;
+			mes "[Kayron Grik]";
+			mes "Hmm...";
+			next;
+			mes "[Kayron Grik]";
+			mes "Huh...";
+			next;
+			mes "[Kayron Grik]";
+			mes "Interesting...";
+			next;
+			mes "[Kayron Grik]";
+			mes "Although it's roughly written, it's well done for a beginner.";
+			mes "Ah yes...you seem to be proficient in studying.";
+			next;
+			callfunc "Job_Change",Job_Sage;
+			callfunc "F_ClearJobVar";
+			mes "[Kayron Grik]";
+			mes "Congratulations! You have now become a Sage.";
+			mes "Always remember to keep a studious and analytical mindset.";
+			next;
+			mes "[Kayron Grik]";
+			mes "Also, keep this dissertation and treat it with care, since it is one and only book you have written.";
+			mes "You may have need of it one of these days. And it shall forever remind of this grandiose moment.";
+			next;
+			mes "[Kayron Grik]";
+			mes "Well then...May God fill your path with knowledge.";
+			mes "Study with diligence!!";
+		}
+		else {
+			mes "Hmm? What has happened to you? Where did you leave your dissertation?";
+			mes "Please bring it to me so that you may pass the test.";
+			next;
+			mes "[Kayron Grik]";
+			mes "Wait...you didn't lose it, did you?";
+			mes "Well...that's your business. It is regrettable that you won't be able to get a chance to write a book anymore.";
+		}
+	}
+	else {
+		mes "*Chuckle* Becoming a Sage isn't as simple as you may have assumed.";
+		mes "You cannot become a Sage because your magic skills are inadequate...";
+		next;
+		mes "[Kayron Grik]";
+		mes "Study diligently, and return when you finish your dissertation.";
+		mes "Until then, farewell!";
+	}
+	close2;
+	cutin "",255;
+	end;
 }
 
-//===============================
-//Biotech Lab
-//===============================
-yuno_in03,244,31,3	script	Physics Professor	120,{
-	if(BaseJob == Job_Sage) goto L_Menu3_2;
-	if(BaseJob != Job_Mage) goto L_Menu1_1;
-	if(SAGE_Q == 11) goto L_Menu3_1;
-	if(SAGE_Q2 == 8) goto L_Menu2_1;
-	if(SAGE_Q2 == 9) goto L_Menu2_3;
-	if(SAGE_Q2 == 10) goto L_Menu2_5;
-	if(SAGE_Q2 == 11) goto L_ThesisStart1;
-	if(SAGE_Q == 9) goto L_Menu1_2;
-	mes "[Ebeshi]";
-	mes "What?";
-	next;
-	mes "[Ebeshi]";
-	mes "Did you come to study under my guidance?";
-	next;
-	mes "[Ebeshi]";
-	mes "Well, you need to enroll first.";
-	mes "Heheheheh...";
-	close;
-L_Menu1_1:
-	mes "[Ebeshi]";
-	mes "Eh???????????????????????????????";
-	next;
-	mes "[Ebeshi]";
-	mes "I don't think there's anything someone like you can learn from me.";
-	next;
-	mes "[Ebeshi]";
-	mes "Are you disappointed?";
-	mes "Hehehehe....";
-	close;
-L_Menu1_2:
-	set SAGE_Q2,8;
-	mes "[Ebeshi]";
-	mes "Well, I'm glad to meet another fine student such as yourself.";
-	next;
-	mes "[Ebeshi]";
-	mes "Aren't you excited that you're going to study under me?!";
-	mes "Hehehehe....";
-	next;
-	mes "[Ebeshi]";
-	mes "I hate to be intrusive, but could you get something for me before I start my class?";
-	next;
-	mes "[Ebeshi]";
-	mes "I need ^3051FD30x Stone^000000 as part of the class materials.";
-	mes "Can you get that?";
-	next;
-	mes "[Ebeshi]";
-	mes "If you really want to get stones quick,";
-	mes "you should look up a friendly thief to assist you!  Thanks for helping out.";
-	close;
-L_Menu2_1:
-	if(countitem(7049) >= 30) goto L_Menu2_2;
-		mes "[Ebeshi]";
-		mes "Hey, what are you up to?";
-		mes "Are you trying to slack off?";
-		mes "Come on, set your eyes on the goal.";
-		next;
-		mes "[Ebeshi]";
-		mes "I need ^3051FD30x Stone^000000 to proceed.";
-		mes "With all the stones lying around,";
-		mes "shouldn't they be easy to find?";
+yuno_in03,154,35,4	script	Staff of the Academy#a	742,{
+	mes "[Metheus Sylphe]";
+	if (Upper == 1) {
+		mes "Welcome to the";
+		mes "Schweicherbil Magic";
+		mes "Academy. W-wait a second...";
+		mes "Do I know you from somewhere?";
+		next;
+		mes "[Metheus Sylphe]";
+		mes "We've met before, haven't";
+		mes "we? Oh gosh, I must sound";
+		mes "pretty crazy. I'm sorry, I guess it's because I haven't been";
+		mes "sleeping too well? Oh well,";
+		mes "have a good day, adventurer~";
 		close;
-	L_Menu2_2:
-		mes "[Ebeshi]";
-		mes "Awesome!  You've got all the stones I need.";
-		mes "Now, watch this!";
-		next;
-		mes "[Ebeshi]";
-		mes "Abracadabra!!";
-		next;
-		mes "[Ebeshi]";
-		mes "Abracadabra!!";
-		next;
-		mes "[Ebeshi]";
-		mes "Abracadabra!!";
-		next;
-		delitem 7049,30;
-		set SAGE_Q2,9;
-		mes "[Ebeshi]";
-		mes "You see that?";
-		mes "I created three elemental stones!";
-		next;
-		mes "[Ebeshi]";
-		mes "Pretty cool, don't you think?";
-		mes "Have them for yourself!";
-		next;
-		getitem 991,1;
-		getitem 993,1;
-		getitem 992,1;
-		mes "[Ebeshi]";
-		mes "Now, for your next lesson, you need to synthesize some different kinds of arrows with those stones.";
-		next;
-		mes "[Ebeshi]";
-		mes "Specifically...";
-		mes "^3051FD50x Crystal Arrow^000000";
-		mes "^3051FD50x Stone Arrow^000000";
-		mes "^3051FD50x Wind Arrow^000000";
-		next;
-		mes "[Ebeshi]";
-		mes "An archer friend can help you make the arrows.";
-		mes "Give it a try!";
+	}
+	if (BaseJob != Job_Mage) {
+		if (BaseJob != Job_Sage) {
+			mes "Oh nice to meet you again, long time no see.";
+			mes "So how's it going with the studying?";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "It's okay to study books and magic scrolls all day, ";
+			mes "but you must go outside and fight with monsters as much as you can in order to be a well experienced Sage.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "If you know any Sage candidates, please give them some advice...";
+			mes "Also, please give my regards to your colleagues as well.";
+		}
+		else if (BaseJob == Job_Novice) {
+			mes "Welcome to the Schweicherbil Magic Academy.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "This place is specialized in Sage class training. Mostly, what we do is study about monsters and magic spells.";
+			mes "We always welcome new students.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "People who are at job jevel 40 as Mage class are qualified to apply for enrollment.";
+			mes "By passing selected courses, we will then approve them as Sages.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "If you're interested in the Sage class, please come again.";
+			mes "And have a good day.";
+		}
+		else {
+			mes "Welcome to the Schweicherbil Magic Academy.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "This place is specialized in Sage class training. What we do is study about monsters and magic spells.";
+			mes "People who are at job jevel 40 as Mage class are qualified to apply for enrollment.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "If you have any Mage friends, please let them know about this academy.";
+			mes "Have a good day.";
+		}
 		close;
-	L_Menu2_3:
-		if((countitem(1754) >= 50) && (countitem(1756) >= 50) && (countitem(1755) >= 50)) goto L_Menu2_4;
-		mes "[Ebeshi]";
-		mes "Hmmm?";
-		mes "What did you do with those stones I gave you?";
-		mes "You didn't sell them, I hope...";
-		next;
-		mes "[Ebeshi]";
-                mes "You need to use them to make";
-		mes "^3051FD50x Crystal Arrow^000000";
-		mes "^3051FD50x Stone Arrow^000000";
-		mes "^3051FD50x Wind Arrow^000000";
-		mes "An archer friend can help you make the arrows.";
+	}
+	if (SAGE_Q == 0) {
+		mes "Welcome to the Schweicherbil Magic Academy.";
+		mes "Oh, You're a Mage. How may I assist you?";
+		next;
+		switch(select("Let me know about the Sage job change.:I want to enroll in the school.:Nothing.")) {
+		case 1:
+			mes "[Metheus Sylphe]";
+			mes "I see. Do you wish to become a Sage?";
+			mes "Unfortunately, we are not in charge of changing your job to the Sage class.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "After you enter this academy and pass certain courses...";
+			mes "you will receive official approval to conduct studies as a Sage.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "For this reason, we do not speak of this proccess as a job change, but as graduation.";
+			mes "Anyway, if you enter your application for this academy, I will inform you about the registration fee and will let you take the test.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "For your information, if you bring ^3355FFOld Magicbook^000000 and ^3355FFNecklace of Wisdom^000000, ";
+			mes "you don't have to pay for the Registration Fee to enroll in the school.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "After you register, you will be able to take the entrance test.";
+			mes "If you pass the test, you will write a thesis for a given subject.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "The Dean of the academy will decide whether or not you are qualified.";
+			mes "If you're granted admission, you will be able to join in study and research activities as a Sage.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "You're always welcome to join us.";
+			mes "Have a good day.";
+			close;
+		case 2:
+			mes "[Metheus Sylphe]";
+			mes "I see, you want to join the academy. Once again, welcome to the Schweicherbil Magic Academy.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "People who have already met the basic requirement by reaching at Mage job level 40 are qualified for enrollment.";
+			mes "A small registration fee will also be required.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "The registration fee is 70,000 zeny.";
+			mes "However, if you bring ^3355FFOld Magicbook^000000 and ^3355FFNecklace of Wisdom^000000, you will be exempt from this fee.";
+			next;
+			mes "[Metheus Sylphe]";
+			mes "So, do you wish to apply immediately?";
+			next;
+			switch(select("Yes, I do.:The fee is much too expensive.:I will come back later.")) {
+			case 1:
+				if (JobLevel < 40) {
+					mes "[Metheus Sylphe]";
+					mes "I'm sorry, but you haven't met the basic requirements yet.";
+					mes "Please go study more and reach Mage job level 40 first.";
+					close;
+				}
+				if (SkillPoint) {
+					mes "[Metheus Sylphe]";
+					mes "You have unused skill points left. Please go learn all those skills you've been planning to learn.";
+					mes "We do not accept any ambiguous candidates.";
+					close;
+				}
+				mes "[Metheus Sylphe]";
+				mes "Very well. Let's complete your application form.";
+				mes "Please put your signature here.";
+				next;
+				select(strcharinfo(0));
+				mes "[Metheus Sylphe]";
+				mes "Your name is ... " + strcharinfo(0) + ". It's a very nice name.";
+				next;
+				if (JobLevel == 50) {
+					mes "[Metheus Sylphe]";
+					mes "Oh, you've mastered the Mage job! You're great!! *Clap Clap Clap*";
+					mes "In reward for your great effort, you will be exempt from the registration fee!";
+					next;
+					mes "[Metheus Sylphe]";
+					mes "Yes, everything's ready.";
+					mes "Next, you will take an entrance test.";
+					set SAGE_Q,4;
+					next;
+					mes "[Metheus Sylphe]";
+					mes "Please visit Professor Claytos.";
+					mes "He's in the left room.";
+					close;
+				}
+				mes "[Metheus Sylphe]";
+				mes "Will you pay the registration fee with 70,000 zeny?";
+				mes "Or will you give me ^3355FFOld Magicbook^000000 and ^3355FFNecklace of Wisdom^000000?";
+				next;
+				if (select("Pay 70,000 zeny.:Give him Old Magicbook and Necklace of Wisdom.") == 1) {
+					if (Zeny > 69999) {
+						set zeny,zeny-70000;
+						mes "[Metheus Sylphe]";
+						mes "Thank you, your application has been accepted.";
+						mes "Next, you will take an entrance test.";
+						set SAGE_Q,4;
+						next;
+						mes "[Metheus Sylphe]";
+						mes "Please visit Professor Claytos.";
+						mes "He's in the left room.";
+						close;
+					}
+					mes "[Metheus Sylphe]";
+					mes "What a shame! It seems you didn't bring enough money for tuition.";
+					mes "Please make sure you have at least 70,000 zeny to enroll in classes.";
+					close;
+				}
+				if (countitem(1006) > 0 && countitem(1007) > 0) {
+					delitem 1006,1; //Old_Magic_Book
+					delitem 1007,1; //Penetration
+					mes "[Metheus Sylphe]";
+					mes "Thank you, your application has been accepted.";
+					mes "Next, you will take the entrance test.";
+					set SAGE_Q,4;
+					next;
+					mes "[Metheus Sylphe]";
+					mes "Please visit Professor Claytos.";
+					mes "He's in the left room.";
+					close;
+				}
+				mes "[Metheus Sylphe]";
+				mes "Umm...It seems you didn't bring any of those?";
+				mes "I suppose you left them somewhere behind. Please go get them, and then come back.";
+				close;
+			case 2:
+				if (JobLevel < 40) {
+					mes "[Metheus Sylphe]";
+					mes "Before we talk about the registration fee, it seems you haven't met the basic requirement yet, Mage job level 40.";
+					mes "Please go study more, and then come back to enroll.";
+					close;
+				}
+				if (JobLevel == 50) {
+					mes "[Metheus Sylphe]";
+					mes "Well, I can't help you with that issue. If you don't have the fee, you are not allowed to enter the academy.";
+					mes "Even if you might think it's absurdly expensive, it's a justifiable price to pay in order to become a Sage.";
+					next;
+					mes "[Metheus Sylphe]";
+					mes "Anyway... oh! You mastered the Mage job! You're truly exemplary!! *Clap Clap Clap*.";
+					mes "As a reward for your great effort, you will be exempt from the registration fee!";
+					next;
+					mes "[Metheus Sylphe]";
+					mes "Okay, let's complete the application form.";
+					mes "Please put your signature here.";
+					next;
+					select(strcharinfo(0));
+					mes "[Metheus Sylphe]";
+					mes "Your name is ... " + strcharinfo(0) + ". It's a very nice name.";
+					next;
+					mes "[Metheus Sylphe]";
+					mes "Yes, everything's ready.";
+					mes "Next, you will take the entrance test.";
+					set SAGE_Q,4;
+					next;
+					mes "[Metheus Sylphe]";
+					mes "Please visit professor Claytos.";
+					mes "He's in the left room.";
+					close;
+				}
+				if (Zeny > 43210) {
+					mes "[Metheus Sylphe]";
+					mes "Well, I can't help you with that issue. If you don't have the fee, you are not allowed to enter the academy.";
+					mes "Even if you may think it's absurdly expensive, it's a justifiable price to pay in order to become a Sage.";
+					next;
+					mes "[Metheus Sylphe]";
+					mes "Alternatively, you could try to find ^3355FFOld Magicbook^000000 and ^3355FFNecklace of Wisdom^000000.";
+					mes "If you don't wish to do that, you must save some money for the registration fee.";
+					next;
+					mes "[Metheus Sylphe]";
+					mes "Goodbye, and have a good day.";
+					close;
+				}
+				else {
+					mes "[Metheus Sylphe]";
+					mes "Oh, I guess you don't have enough money?";
+					mes "Under the existing provisions, you must pay 70,000 zeny for the application...";
+					next;
+					if (select("Please...is there any way?:Ok, I will come back later.") == 1) {
+						mes "[Metheus Sylphe]";
+						mes "Hmmm...then I shall offer a special option!";
+						mes "You will pay 30,000 zeny and bring some items as compensation for the tuition discount.";
+						next;
+						switch(rand(1,3)) {
+						case 1:
+							set SAGE_Q,1;
+							mes "[Metheus Sylphe]";
+							mes "Please gather the following items.";
+							mes "50 ^3355FFFeather of Birds^000000";
+							mes "50 ^3355FFFluff^000000";
+							mes "25 ^3355FFIron Ore^000000";
+							next;
+							mes "[Metheus Sylphe]";
+							mes "If you bring those items, your tuition will be 30,000 zeny, in lieu of the original 70,000 zeny fee.";
+							break;
+						case 2:
+							set SAGE_Q,2;
+							mes "[Metheus Sylphe]";
+							mes "Please gather the following items.";
+							mes "50 ^3355FFClover^000000";
+							mes "50 ^3355FFFeather^000000";
+							mes "25 ^3355FFSquid Ink^000000";
+							next;
+							mes "[Metheus Sylphe]";
+							mes "If you bring the aforementioned items, the tuition fee will be 30,000 zeny, rather than the original 70,000 zeny fee.";
+							break;
+						case 3:
+							set SAGE_Q,3;
+							mes "[Metheus Sylphe]";
+							mes "Please gather the following items.";
+							mes "50 ^3355FFFeather of Birds^000000";
+							mes "50 ^3355FFFluff^000000";
+							mes "50 ^3355FFClover^000000";
+							mes "50 ^3355FFFeather^000000";
+							next;
+							mes "[Metheus Sylphe]";
+							mes "If you bring those items, your tuition will only be 30,000 zeny, instead of the original 70,000 zeny fee.";
+						}
+						mes "I am sure it's a very reasonable option for you.";
+						next;
+						mes "[Metheus Sylphe]";
+						mes "Ah yes, before gathering all of those items, if you happen to have 70,000 zeny, I will be more than happy to receive the full payment.";
+						mes "That is, after all, our original policy.";
+						next;
+						mes "[Metheus Sylphe]";
+						mes "Alternatively, you can bring me ^3355FFOld Magicbook^000000 and ^3355FFNecklace of Wisdom^000000.";
+						mes "Goodbye, and have a good day.";
+						close;
+					}
+					mes "[Metheus Sylphe]";
+					mes "Ah yes, take your time...";
+					mes "Goodbye, and have a good day.";
+					close;
+				}
+			case 3:
+				mes "[Metheus Sylphe]";
+				mes "Ah yes, take your time...";
+				mes "Goodbye, and have a good day.";
+				close;
+			}
+		case 3:
+			mes "[Metheus Sylphe]";
+			mes "I see, take your time. You can also take a look around.";
+			mes "Goodbye, and have a good day.";
+			close;
+		}
+	}
+	else if (SAGE_Q >= 1 && SAGE_Q <= 3) {
+		mes "Welcome, once again.";
+		next;
+		if (countitem(1006) > 0 && countitem(1007) > 0) {
+			delitem 1006,1; //Old_Magic_Book
+			delitem 1007,1; //Penetration
+			mes "[Metheus Sylphe]";
+			mes "Well done. Let me proceed with your application request.";
+			set SAGE_Q,4;
+			next;
+		}
+		else if (Zeny > 69999) {
+			set zeny,zeny-70000;
+			mes "[Metheus Sylphe]";
+			mes "Well done. Let me proceed with your application request.";
+			set SAGE_Q,4;
+			next;
+		}
+		else {
+			switch (SAGE_Q) {
+			case 1:
+				//Feather_Of_Bird, Fluff, Iron_Ore
+				setarray .@item[0], 916,914,1002; 
+				setarray .@count[0], 50,50,25; 
+				break;
+			case 2:
+				//Clover, Feather, Chinese_Ink
+				setarray .@item[0], 705,949,1024;
+				setarray .@count[0], 50,50,25;
+				break;
+			case 3:
+				//Feather_Of_Bird, Fluff, Clover, Feather
+				setarray .@item[0], 916,914,705,949;
+				setarray .@count[0], 50,50,50,50;
+				break;
+			}
+			set .@size, (getarraysize(.@item)-1); 
+			for( set .@i,0 ; .@i < .@size && countitem(.@item[.@i]) >= .@count[.@i] ; set .@i,.@i+1 );
+			if(.@i == .@size) {  
+				if (Zeny > 29999) {
+					for (set .@i, 0; .@i < .@size ; set .@i, .@i+1)
+						delitem .@item[.@i], .@count[.@i];  
+					set zeny,zeny-30000;
+					mes "[Metheus Sylphe]";
+					mes "Well done. Let me proceed with your application request.";
+					set .@SAGE_Q_T,SAGE_Q;
+					set SAGE_Q,4;
+					next;
+				}
+				mes "[Metheus Sylphe]";
+				mes "I am sorry to say that you are not ready yet.";
+				mes "Although you brought all of the items, the money you have now is less than 30,000 zeny.";
+				next;
+				mes "[Metheus Sylphe]";
+				mes "As I told you before, you must bring all of those items, as well as the 30,000 zeny together.";
+				mes "Please make sure that you have the required items and money.";
+				close;
+			}
+			else {
+				mes "[Metheus Sylphe]";
+				mes "I am sorry to say that it seems you didn't bring all of the required items.";
+				mes "I shall remind you what to bring, in case you have forgotten.";
+				next;
+				mes "[Metheus Sylphe]";
+				mes "Please bring the following items to me.";
+				mes .@count[0]+" ^3355FF"+.@item[0]+"^000000";
+				mes .@count[1]+" ^3355FF"+.@item[1]+"^000000";
+				mes .@count[2]+" ^3355FF"+.@item[2]+"^000000";
+				if (SAGE_Q == 3) mes .@count[3]+" ^3355FF"+.@item[3]+"^000000";
+				next;
+				mes "[Metheus Sylphe]";
+				mes "If you bring all of these items, your tuition fee will be reduced from 70,000 zeny to 30,000 zeny.";
+				mes "Good luck.";
+				close;
+			}
+		}
+		mes "[Metheus Sylphe]";
+		mes "Let's complete the application form.";
+		mes "Please put your signature here.";
+		next;
+		select(strcharinfo(0));
+		mes "[Metheus Sylphe]";
+		switch (.@SAGE_Q_T) {
+		case 1: mes "Your name is ... " + strcharinfo(0) + ". It's a very nice name."; break;
+		case 2: mes "Your name is ... " + strcharinfo(0) + ". It sounds very sagacious."; break;
+		case 3: mes "Your name is ... " + strcharinfo(0) + ". Interesting name."; break;
+		}
+		next;
+		mes "[Metheus Sylphe]";
+		mes "Ah yes, everything is in readiness.";
+		mes "Next, you will take an entrance test.";
+		set SAGE_Q,4;
+		next;
+		mes "[Metheus Sylphe]";
+		mes "Please visit Professor Claytos.";
+		mes "He's in the left room.";
 		close;
-	L_Menu2_4:
-		mes "[Ebeshi]";
-		mes "You made the arrows!  Good job.";
-		mes "Now, to continue with the lesson...";
-		next;
-		mes "[Ebeshi]";
-		mes "This lesson covers the Elemental Affinity chapter in your textbook.";
-		next;
-		mes "[Ebeshi]";
-		mes "The first affinity is really easy.";
-		mes "Water magic is very effective against fire.";
-		mes "It's easy to remember.";
-		mes "All you need to remember is water being splashed on fire.";
-		next;
-		mes "[Ebeshi]";
-		mes "Wind magic will decimate water-based monsters.";
-		mes "Observe what happens when a lake is struck by lightning.";
-		next;
-		mes "[Ebeshi]";
-		mes "Earth magic will crush wind-based monsters easily.";
-		mes "Don't you build a house on a strong foundation to keep the wind away?";
-		next;
-		mes "[Ebeshi]";
-		mes "Fire magic mercilessly scorches the earth.";
-		mes "Won't a tree burn if a fire breaks out?";
-		mes "Same with an earth-based monster.";
-		next;
-		mes "[Ebeshi]";
-		mes "Do you understand?";
-		mes "Here's some homework for next time...";
-		next;
-		delitem 1754,50;
-		delitem 1756,50;
-		delitem 1755,50;
-		set SAGE_Q2,10;
-		mes "[Ebeshi]";
-		mes "Next time you come, bring ^3051FD1x Holy Water^000000.";
-		mes "We'll need it for the lesson.";
-		mes "It will be easy to acquire if you have contacts in the church.";
+	}
+	else if (SAGE_Q == 4) {
+		mes "Huh? What are you doing here? You're supposed to be taking the entrance test by now.";
+		mes "Please visit Professor Claytos in the left room.";
 		close;
-	L_Menu2_5:
-		if(countitem(523) >= 1) goto L_Menu2_6;
-		mes "[Ebeshi]";
-		mes "Ooops!";
-		mes "Did you forget about the item I asked you to bring?";
-		next;
-		mes "[Ebeshi]";
-		mes "I need ^3051FD1x Holy Water^000000 for the lesson.";
-		mes "Ask an Acolyte to help you make it.";
-		mes "Hehehehe...";
+	}
+	else if (SAGE_Q == 15) {
+		mes "Oh, are you done with the dissertation?";
+		mes "Sure, you can submit it to Dean Kayron.";
+		next;
+		mes "[Metheus Sylphe]";
+		mes "So long as you make the effort, you should achieve good results.";
+		mes "Good luck.";
 		close;
-	L_Menu2_6:
-		mes "[Ebeshi]";
-		mes "Alright, you have the Holy Water!";
-		mes "Let's continue the lesson!";
-		next;
-		mes "[Ebeshi]";
-		mes "Please take good notes about this part.";
-		mes "It will be on the test.";
-		next;
-		mes "[Ebeshi]";
-		mes "Water magic sucks against wind!";
-		mes "Would a lightning bolt care if it was frozen?";
-		mes "Heheheheh....";
-		next;
-		mes "[Ebeshi]";
-		mes "Wind magic is totally useless against the earth.";
-		mes "Will a tree suffer permanent damage if it's blown about?";
-		next;
-		mes "[Ebeshi]";
-		mes "Earth magic is ineffective against fire.";
-		mes "If you put some leaves on a fire, will the fire go out?";
-		mes "No, just the opposite will happen.";
-		next;
-		mes "[Ebeshi]";
-		mes "Fire won't do much against water.";
-		mes "If you heat water, doesn't it just become more dangerous?";
-		next;
-		mes "[Ebeshi]";
-		mes "That was a pretty informative lecture!";
-		mes "You think so too, right?";
-		next;
-		delitem 523,1;
-		set SAGE_Q2,11;
-		mes "[Ebeshi]";
-		mes "Now, you have enough knowledge to prepare a defensible thesis.";
-		mes "Hehehehehe!";
-		next;
-		mes "[Ebeshi]";
-		mes "To put the thesis together, you'll need:";
-		mes "^3051FD1x Feather of Birds^000000 for your writing instrument.";
-		mes "^3051FD1x Animal Skin^000000 for the pages.";
-		mes "^3051FD1x Trunk^000000 to bind the pages.";
-		mes "^3051FD1x Squid Ink^000000 for your ink.";
-		mes "^3051FD1x Empty Bottle^000000 to store your ink.";
-		next;
-		mes "[Ebeshi]";
-		mes "Come and see me once you've gotten all of these items together.";
+	}
+	else {
+		mes "Oh sorry, this is a rather inconvenient time to converse.";
+		mes "Please come back later. I apologize for troubling you.";
 		close;
-	L_ThesisStart1:
-		if((countitem(916) >= 1) && (countitem(919) >= 1) && (countitem(1019) >= 1) && (countitem(1024) >= 1) && (countitem(713) >= 1)) goto L_ThesisStart2;
-		mes "[Ebeshi]";
-		mes "Hmmm?";
-		mes "You can't forget important things like this!";
-		next;
-		mes "[Ebeshi]";
-                mes "You need these items to start your thesis:";
-		mes "^3051FD1x Feather of Birds^000000 for your writing instrument.";
-		mes "^3051FD1x Animal Skin^000000 for the pages.";
-		mes "^3051FD1x Trunk^000000 to bind the pages.";
-		mes "^3051FD1x Squid Ink^000000 for your ink.";
-		mes "^3051FD1x Empty Bottle^000000 to store your ink.";
-		next;
-		mes "[Ebeshi]";
-		mes "Do you have some friends that might be able to help you gather the materials?";
-		mes "That will make it a simple task!";
-		close;
-	L_ThesisStart2:
-		delitem 916,1;
-		delitem 919,1;
-		delitem 1019,1;
-		delitem 1024,1;
-		delitem 713,1;
-		mes "[Ebeshi]";
-		mes "Alright...";
-		mes "You need to write this yourself.";
-		mes "I'm simply your research advisor!";
-		mes "Hehehehe...";
-		next;
-		mes "......";
-		next;
-		mes "......";
-		next;
-		mes "......";
-		next;
-		mes "Elemental magic is divided into four types...";
-			menu "...called Fire, Wind, Water, and Earth",L_ThesisMenu1_1,"...named Fire, Wind, Water, and Earth",L_ThesisMenu1_2,"...that oppose each other Fire, Wind, Water, and Earth",L_ThesisMenu1_3;
-		L_ThesisMenu1_1:
-			mes "...called Fire, Wind, Water, and Earth";
-			goto L_Thesis2;
-		L_ThesisMenu1_2:
-			mes "...named Fire, Wind, Water, and Earth";
-			goto L_Thesis2;
-		L_ThesisMenu1_3:
-			mes "...that oppose each other: Fire, Wind, Water, and Earth";
-			goto L_Thesis2;
-		L_Thesis2:
-			mes "Each attribute has certain properties.";
-			menu "Wind conquers water...",L_ThesisMenu2_1,"Water douses fire...",L_ThesisMenu2_2,"Fire scorches Earth...",L_ThesisMenu2_3;
-		L_ThesisMenu2_1:
-			mes "Wind conquers Water and Earth attacks Wind";
-			goto L_Thesis3;
-		L_ThesisMenu2_2:
-			mes "Water douses fire, while Wind zaps Water";
-			goto L_Thesis3;
-		L_ThesisMenu2_3:
-			mes "Fire scorches Earth, and Water douses Fire.";
-			goto L_Thesis3;
-		L_Thesis3:
-			menu "But weaknesses exist, too",L_ThesisMenu3_1,"You can customize your weapon element, also",L_ThesisMenu3_2,"Elemental affinity varies by monster type, also",L_ThesisMenu3_3;
-		L_ThesisMenu3_1:
-			mes "But weaknesses exist, too";
-			goto L_Thesis4;
-		L_ThesisMenu3_2:
-			mes "You can customize your weapon element, also";
-			goto L_Thesis4;
-		L_ThesisMenu3_3:
-			mes "Elemental affinity varies by monster type, also";
-			goto L_Thesis4;
-		L_Thesis4:
-			menu "You need to be circumspect when facing monsters...",L_ThesisMenu4_1,"So, you should customize your weapon to the situation",L_ThesisMenu4_2,"Red Potions have a delicious strawberry flavor",L_ThesisMenu4_3;
-		L_ThesisMenu4_1:
-			mes "You need to be circumspect when facing monster with an unfamiliar affinity.";
-			goto L_Thesis5;
-		L_ThesisMenu4_2:
-			mes "You should customize your weapon to the situation.";
-			goto L_Thesis5;
-		L_ThesisMenu4_3:
-			mes "Red Potions have a delicious strawberry flavor.";
-			goto L_Thesis5;
-		L_Thesis5:
-			next;
-			menu "Eimi of Prontera is hot",L_ThesisMenu5_1,"I wonder how Red Potions are made",L_ThesisMenu5_2,"The complexity of magic exceeds man's capacity to learn",L_ThesisMenu5_3;
-		L_ThesisMenu5_1:
-			mes "Eimi of Prontera is hot.";
-			goto L_Thesis6;
-		L_ThesisMenu5_2:
-			mes "I wonder how Red Potions are made.";
-			goto L_Thesis6;
-		L_ThesisMenu5_3:
-			mes "The complexity of magic exceeds man's capacity to learn.";
-			goto L_Thesis6;
-		L_Thesis6:
-			menu "The women in Morok are hot, too",L_ThesisMenu6_1,"Maybe it's a secret recipe",L_ThesisMenu6_2,"It's dangerous to depend on magic too much...",L_ThesisMenu6_3;
-		L_ThesisMenu6_1:
-			mes "The women in Morok are hot, too.";
-			goto L_Thesis7;
-		L_ThesisMenu6_2:
-			mes "Maybe it's a secret recipe.";
-			goto L_Thesis7;
-		L_ThesisMenu6_3:
-			mes "It's dangerous to depend on magic too much...";
-			goto L_Thesis7;
-		L_Thesis7:
-			menu "I wish I had a Bunny Band",L_ThesisMenu7_1,"That taste of a White potion...",L_ThesisMenu7_2,"...if you want to stay safe. power...",L_ThesisMenu7_3;
-		L_ThesisMenu7_1:
-			mes "I wish I had a Bunny Band.";
-			goto L_Thesis8;
-		L_ThesisMenu7_2:
-			mes "The taste of a White Potion...";
-			goto L_Thesis8;
-		L_ThesisMenu7_3:
-			mes "...if you want to stay safe. power...";
-			goto L_Thesis8;
-		L_Thesis8:
-			menu "That would make me happy",L_ThesisMenu8_1,"...is difficult to imagine",L_ThesisMenu8_2,"In the interest of a safe battle...",L_ThesisMenu8_3;
-		L_ThesisMenu8_1:
-			mes "That would make me happy.";
-			goto L_Thesis9;
-		L_ThesisMenu8_2:
-			mes "...is difficult to imagine";
-			goto L_Thesis9;
-		L_ThesisMenu8_3:
-			mes "In the interest of a safe battle...";
-			goto L_Thesis9;
-		L_Thesis9:
-			menu "Bunny Bands make great Acolyte accessories",L_ThesisMenu9_1,"It makes me wonder if...",L_ThesisMenu9_2,"...you should bring along friends",L_ThesisMenu9_3;
-		L_ThesisMenu9_1:
-			mes "Bunny Bands make great Acolyte accessories.";
-			goto L_Thesis10;
-		L_ThesisMenu9_2:
-			mes "It makes me wonder if...";
-			goto L_Thesis10;
-		L_ThesisMenu9_3:
-			mes "...you should bring along friends.";
-			goto L_Thesis10;
-		L_Thesis10:
-			menu "I wonder if a Knight could wear one, too",L_ThesisMenu10_1,"...people might drink them when they're not hurt",L_ThesisMenu10_2,"It's the responsible thing to do",L_ThesisMenu10_3;
-		L_ThesisMenu10_1:
-			mes "I wonder if a Knight could wear one, too.";
-			next;
-			goto L_ThesisEnd;
-		L_ThesisMenu10_2:
-			mes "...people might drink them when they're not hurt";
-			next;
-			goto L_ThesisEnd;
-		L_ThesisMenu10_3:
-			mes "It's the responsible thing to do.";
-			next;
-			goto L_ThesisEnd;
-	L_ThesisEnd:
-		mes "......";
-		next;
-		mes "......";
-		next;
-		mes "......";
-		next;
-		set SAGE_Q,11;
-		getitem 1550,1;
-		mes "[Ebeshi]";
-		mes "Alright!";
-		mes "You've finished!  It looks pretty good!";
-		next;
-		mes "[Ebeshi]";
-		mes "You should take that to the Headmaster!";
-		mes "He'll decide whether you graduate or not.";
-		mes "Hehehehehe....";
-		close;
-L_Menu3_1:
-	mes "[Ebeshi]";
-	mes "What's up?  Did you forget something?!";
-	next;
-	mes "[Ebeshi]";
-	mes "You should see the Headmaster and present your thesis so you can graduate!";
-	close;
-L_Menu3_2:
-	mes "[Ebeshi]";
-	mes "Good afternoon!";
-	mes "It's good to meet other Sages and exchange information.";
-	mes "Heheheheh!!";
-	next;
-	mes "[Ebeshi]";
-	mes "Even though company is good sometimes, I need to continue my magical research!";
-	next;
-	mes "[Ebeshi]";
-	mes "Do you want to continue your study here?";
-	mes "Please feel free to talk to the other professors and read the literature here.";
-	mes "Hehehehe!";
-	close;
+	}
 }
 
-//==================================
-//Monster Museum
-//==================================
-
-yuno_in03,32,102,0	script	Biology Professor	755,{
-	if(BaseJob == Job_Sage) goto L_Menu5_4;
-	if(BaseJob != Job_Mage) goto L_Menu1_1;
-	if(SAGE_Q == 11) goto L_Menu5_3;
-	if((SAGE_Q2 >= 1) && (SAGE_Q2 <= 3)) goto L_Menu3_1;
-	if((SAGE_Q2 >= 4) && (SAGE_Q2 <= 6)) goto L_Menu4_1;
-	if(SAGE_Q2 == 7) goto L_Menu5_1;
-	if(SAGE_Q == 8) goto L_Menu2_1;
-	mes "[Lucias]";
-	mes "I have a headache...";
-	mes "I've got too many things going on at once!";
-	next;
-	mes "[Lucias]";
-	mes "Of course, I'll teach people about biology even with a headache!";
-	close;
-L_Menu1_1:
-	mes "[Lucias]";
-	mes "Hmmm?  Are you just poking around?";
-	next;
-	mes "[Lucias]";
-	mes "That's fine, but please don't touch anything.";
-	mes "We keep dangerous bioagents in here!";
-	next;
-	mes "[Lucias]";
-	mes "If you have information about rare monsters, we'll pay you handsomely.";
-	close;
-L_Menu2_1:
-	mes "[Lucias]";
-	mes "Oh, you've taken the placement test?";
-	mes "I'm Lucias, a preeminent researcher in the biological sciences.";
-	next;
-	mes "[Lucias]";
-	mes "What's your name, young one?";
-	next;
-	menu "I'm " + strcharinfo(0) + "!",-;
-	mes "[Lucias]";
-	mes "That's a nice name.";
-	mes "Now, let me explain about our research objectives.";
-	next;
-	mes "[Lucias]";
-	mes "My area of expertise is monsters.";
-	mes "I'm sure that you've encountered and defeated many monsters by now.";
-	mes "Am I right?";
-	next;
-		menu "You're quite right",-,"Well, not really...",L_Menu2_2;
-		mes "[Lucias]";
-		mes "Really?";
-		mes "I hope your background knowledge is diverse.";
-		mes "My class isn't a cakewalk by any means.";
-		next;
-		goto L_Menu2_3;
-	L_Menu2_2:
-//==================================
-//If you respond negatively
-		mes "[Lucias]";
-		mes "You might be at a disadvantage.";
-		mes "My coursework assumes a lot of background knowledge.";
-		mes "My class wasn't designed to be a cakewalk...";
-		next;
-//==================================
-L_Menu2_3:
-	mes "[Lucias]";
-	mes "So, shall we get started?";
-	mes "You'll learn a lot in this class if you're vigilant.";
-	next;
-		set @sagerand,0;
-		set @sagerand,rand(3);
-		mes "[Lucias]";
-		mes "So, first, you need to collect ";
-		if(@sagerand == 1) goto L_Menu2_4;
-		if(@sagerand == 2) goto L_Menu2_5;
-		set SAGE_Q2,1;
-		mes "^3051FD5x Tendons^000000";
-		mes "^3051FD5x Nippers^000000";
-		mes "^3051FD5x Sharp Scales^000000";
-		next;
-		goto L_Menu2_6;
-	L_Menu2_4:
-		set SAGE_Q2,2;
-//==================================
-//mes–¢‰ñŽû
-		mes "^3051FD5x Clam Flesh^000000";
-		mes "^3051FD5x Nippers^000000";
-		mes "^3051FD5x Heart of Mermaid^000000";
-		next;
-		goto L_Menu2_6;
-	L_Menu2_5:
-		set SAGE_Q2,3;
-		mes "^3051FD5x Single Cells^000000";
-		mes "^3051FD5x Tentacles^000000";
-		mes "^3051FD5x Fish Tails^000000";
-//==================================
-		next;
-	L_Menu2_6:
-		mes "[Lucias]";
-		mes "We'll continue once you've gathered those.";
+yuno_in03,105,177,5	script	Written Test Professor#sa	754,{
+	mes "[Claytos Verdo]";
+	if (BaseJob != Job_Mage) {
+		if (BaseJob == Job_Sage) {
+			mes "Eh? What? Why are you back here?";
+			mes "Do you want to enter the school again?";
+			next;
+			mes "[Claytos Verdo]";
+			mes "Now, I understand how you feel. Since you graduated, you have become a Sage. A Sage...until the end of your days.";
+			mes "So, be strong and independent. Try to explore some places where nobody else has ventured to go.";
+			next;
+			mes "[Claytos Verdo]";
+			mes "Don't forget to record everything you've experienced.";
+			mes "You must share your knowledge with others by taking excellent notes.";
+		}
+		else if (BaseJob == Job_Novice) {
+			mes "What are you doing here, kid?";
+			mes "This is a Magic Academy, not a day care center.";
+			next;
+			mes "[Claytos Verdo]";
+			mes "Go outside and play with the Porings. That's your job.";
+			mes "Go out, chop chop!!";
+		}
+		else if (Class == Job_Wizard) {
+			mes "Well...look who came crawling back. Magic addict.";
+			mes "Yeah yeah, so it's not so bad to be devoted to magic.";
+			next;
+			mes "[Claytos Verdo]";
+			mes "But I hope you remember, no one can live alone.";
+			mes "Although you're strong enough for solo play, you must cooperate and help other people. That's what a Wizard shoud stand for.";
+		}
+		else {
+			mes "Hmm... I understand that you want to enter our prestigious academy, but since you chose to live as a different class,";
+			mes "I don't think you can become a Sage.";
+			next;
+			mes "[Claytos Verdo]";
+			mes "So, don't go around regretting why you chose a job other than Sage. You'd better go out and hunt, leveling up your current job.";
+		}
 		close;
-L_Menu3_1:
-	if((countitem(1050) >= 5) && (countitem(960) >= 5) && (countitem(963) >= 5) && (SAGE_Q2 == 1)) goto L_Menu3_4;
-	if((countitem(966) >= 5) && (countitem(960) >= 5) && (countitem(950) >= 5) && (SAGE_Q2 == 2)) goto L_Menu3_4;
-	if((countitem(1052) >= 5) && (countitem(962) >= 5) && (countitem(1023) >= 5) && (SAGE_Q2 == 3)) goto L_Menu3_4;
-	mes "[Lucias]";
-	mes "You don't have the necessary items.";
-	mes "Let me repeat what you need:";
-	next;
-		mes "[Lucias]";
-		if(SAGE_Q2 == 2) goto L_Menu3_2;
-		if(SAGE_Q2 == 3) goto L_Menu3_3;
-		mes "^3051FD5x Tendon^000000";
-		mes "^3051FD5x Nipper^000000";
-		mes "^3051FD5x Sharp Scale^000000";
+	}
+	if (SAGE_Q == 0) {
+		mes "What, do you want to be a sage?";
+		mes "I can tell by your eyes, hungering for wisdom.";
+		next;
+		mes "[Claytos Verdo]";
+		mes "Of course, if you want to be a Sage, you must first enter the academy.";
+		mes "Apply for enrollment, and then come again.";
 		close;
-	L_Menu3_2:
-		mes "^3051FD5x Clam Flesh^000000";
-		mes "^3051FD5x Nipper^000000";
-		mes "^3051FD5x Heart of Mermaid^000000";
+	}
+	else if (SAGE_Q == 1 || SAGE_Q == 2 || SAGE_Q == 3) {
+		mes "Hah! You didn't even finish the application process!?";
+		mes "I see...did Metheus tell you something?";
+		next;
+		mes "[Claytos Verdo]";
+		mes "Do your best. It'll be a good experience for you.";
+		mes "Come again when you finish the application.";
 		close;
-	L_Menu3_3:
-		mes "^3051FD5x Single Cell^000000";
-		mes "^3051FD5x Tentacle^000000";
-		mes "^3051FD5x Fish Tail^000000";
+	}
+	else if (SAGE_Q == 4) {
+		mes "Welcome to the Schweicherbil Magic Academy.";
+		mes "You applied for this test already, didn't you?";
+		next;
+		mes "[Claytos Verdo]";
+		mes "Let's see, your name is " + strcharinfo(0) + "...";
+		mes "Okay, let's get started!";
+		next;
+		mes "[Claytos Verdo]";
+		mes "The test that I am going to give you will test your knowledge on all of the academic subjects in the world.";
+		mes "I will give you 20 questions, with each question being worth 5 points. When you earn a grade of 80 points, you will pass the test.";
+		next;
+		mes "[Claytos Verdo]";
+		mes "Okay, there's no need to wait. Let's start right away";
+		mes "Oh, and if you don't answer immediately, the test will be cancelled.";
+L_AskQuestion:
+		next;
+		switch(rand(1,3)) {
+		case 1:
+			mes "1. Choose an item that the Gift merchant in Prontera does not sell.";
+			next;
+			if (select("China:Red Frame:Bouquet:Glass Bead") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "2. Choose a city where you cannot purchase a Stiletto.";
+			next;
+			if (select("Prontera:Morroc:Geffen:Lutie") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "3. Choose the closest city to Turtle Island.";
+			next;
+			if (select("Al De Baran:Alberta:Comodo:Izlude") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "4. Choose the monster that is a different type than the others.";
+			next;
+			if (select("Raggler:Pest:Frilldora:Aster") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "5. Choose the monster that has a different attribute than the others.";
+			next;
+			if (select("Mantis:Metaller:Rocker:Horn") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "6. Choose the monster that is different sized than the others.";
+			next;
+			if (select("Raydric:Raydric Archer:Wanderer:Dark Frame") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "7. Choose the monster which doesn't drop 'Alcohol'.";
+			next;
+			if (select("Horong:Plankton:Poison Spore:Toad") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "8. Choose the NPC that is irrelevant to the Knight job change quest.";
+			next;
+			if (select("Sir Siracuse:Thomas Servantes:Sir Windsor:Lady Amy") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "9. Choose the NPC that is not a citizen of Prontera.";
+			next;
+			if (select("Tono:Pina:YuPi:Hollgrehenn") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "10. Choose the right name for the Kafra lady who wears glasses.";
+			next;
+			if (select("Pavianne:Roxie:Leilah:Curly Sue") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "11. How much SP is spent to use lvl 7 Thunderstorm?";
+			next;
+			if (select("49:59:69:74") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "12. Choose the right amount of damage reduction and SP consumption of the Energy Coat skill when the caster's remaining SP is 50%.";
+			next;
+			if (select("Damage -24% SP1.5%:Damage -24% SP2%:Damage -18% SP1.5%:Damage -18% SP2%") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "13. Choose the property that is irrelevant to 'Bolt' type skills for the Mage class.";
+			next;
+			if (select("Water:Earth:Fire:Wind") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "14. Choose the right chance and attack strength for lvl 7 Double Attack, the Thief skill.";
+			next;
+			if (select("35% / 120%:35% / 140%:40% / 120%:40% / 140%") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "15. Choose the skill that is irrelevant to learning Magnus Exorcismus, the Priest skill.";
+			next;
+			if (select("Divine Protection:Heal:Ruwach:Aqua Benedicta") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "16. Choose the correct defense and ability of the Bunny Band.";
+			next;
+			if (select("1 / LUK +2:1 / LUK +5:2 / LUK +2:2 / LUK +5") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "17. Choose the class that cannot equip Padded Armor.";
+			next;
+			if (select("Swordman:Merchant:Thief:Archer") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "18. Choose the item that cures all abnormal status and restores full HP and SP at the same time.";
+			next;
+			if (select("Royal Jelly:Yggdrasil Seed:Yggdrasilberry:Mastella Fruit") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "19. Who rules the Rune-Midgarts kingdom right now?";
+			next;
+			if (select("Tristun the 3rd:Tristram the 3rd:Tristar the 3rd:Trast the 3rd") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "20. Choose the god of Crusaders.";
+			next;
+			if (select("Odin:Loki:Thor:Venadin") == 1)
+				set .@sage_t,.@sage_t+5;
+			break;
+		case 2:
+			mes "1. Choose the jewel that the Morroc Jewel Merchant does not sell.";
+			next;
+			if (select("Topaz:Garnet:Diamond:Sapphire") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "2. Choose the city where users cannot purchase Monster's Feed from an NPC.";
+			next;
+			if (select("Prontera:Morroc:Al De Baran:Alberta") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "3. Choose the closest city to the Maze.";
+			next;
+			if (select("Prontera:Morroc:Geffen:Payon") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "4. Choose the monster that is a different type than the others.";
+			next;
+			if (select("Muka:Drops:Plankton:Penomena") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "5. Choose the monster with the different attribute.";
+			next;
+			if (select("Dokebi:Isis:Giearth:Deviruchi") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "6. Choose the monster that is different in size.";
+			next;
+			if (select("Thiefbug (Aggressive):Horn:Metaller:Argos") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "7. Choose the monster which does not drop 'Yggdrasil Leaf'.";
+			next;
+			if (select("Marduk:Baphomet Jr.:Angeling:Wanderer") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "8. Choose the NPC that is irrelevant to the Priest job change quest.";
+			next;
+			if (select("Paul:Sir Windsor:Peter S. Alberto:Cecilia") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "9. Choose the NPC that is not a citizen of Morroc.";
+			next;
+			if (select("Syvia:Akira:Antonio:Dmitrii") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "10. Choose the Kafra lady who has gorgeous blue hair.";
+			next;
+			if (select("Pavianne:Roxie:Leilah:Curly Sue") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "11. Choose the skill that is irrelevant to learning Fire Wall, the Mage skill.";
+			next;
+			if (select("lvl 4 Fire Bolt:lvl 4 Napalm Beat:lvl 5 Fire Ball:lvl 1 Sight") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "12. How much SP can be restored when learning SP recovery at lvl 6 (without being affected by INT)?";
+			next;
+			if (select("14:16:18:21") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "13. How many INT points does a Mage receive as a bonus at job lvl 33?";
+			next;
+			if (select("7:6:5:4") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "14. Choose the correct SP consumption and the skill duration for Improve Concentration lvl 5 (Archer skill).";
+			next;
+			if (select("45 / 80 sec:50 / 80 sec:45 / 90 sec:50 / 90 sec") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "15. Choose the skill that is irrelevant to learning Maximize Power, the Blacksmith skill.";
+			next;
+			if (select("Hilt Binding:Skin Tempering:Hammer Fall:Weapon Perfection") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "16. What is the correct defense rate and ability of Cute Ribbon?";
+			next;
+			if (select("0 / SP +20:0 / SP +30:1 / SP +20:1 / SP +30") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "17. Choose the class that cannot equip Saint Robe.";
+			next;
+			if (select("Swordman:Merchant:Thief:Acolyte") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "18. Choose the abnormal status that cannot be cured by Green Potion.";
+			next;
+			if (select("Silence:Chaos:Blind:Curse") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "19. Choose the correct name for the ancient kingdom that disappeared somewhere in Geffen.";
+			next;
+			if (select("Geffayon:Geffenia:Gefenn:Jaffen") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "20. Choose the correct name for the tree that has become the root of this world.";
+			next;
+			if (select("Yggdrasil:Iggdrassil:Mastella:Dead Branch") == 1)
+				set .@sage_t,.@sage_t+5;
+			break;
+		case 3:
+			mes "1. Choose the item that the Magical Tool merchant in Geffen does not sell.";
+			next;
+			if (select("Mantle:Wand:Circlet:Silver Robe") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "2. Choose the city where users cannot purchase Blade from an NPC.";
+			next;
+			if (select("Prontera:Izlude:Al De Baran:Payon") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "3. Choose the closest city to Glast Heim.";
+			next;
+			if (select("Prontera:Geffen:Morroc:Payon") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "4. Choose the monster that is a different type than the others.";
+			next;
+			if (select("Aster:Marc:Marse:Marin") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "5. Choose the monster that has a different attribute.";
+			next;
+			if (select("Baby Desert Wolf:Smokie:Picky:Choco") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "6. Choose the monster that is different sized.";
+			next;
+			if (select("Drake:Wraith:Evil Druid:Khalitzburg") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "7. Choose the monster that does not drop 'Phracon'.";
+			next;
+			if (select("Pupa:Peco Peco Egg:Savage Bebe:Baby Desert Wolf") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "8. Choose the NPC that is irrelevant to the Blacksmith job change quest.";
+			next;
+			if (select("Altiregen:Geschupenschte:Barcadi:Baisulist") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "9. Choose the NPC that is not a citizen of Al De Baran.";
+			next;
+			if (select("RS125:GOD-POING:Stromme:Chemirre") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "10. Choose the Kafra lady who is the youngest among the staff.";
+			next;
+			if (select("Pavianne:Roxie:Leilah:Curly Sue") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "11. Choose the correct SP consumption and the number of evasions when using Safety Wall lvl 6.";
+			next;
+			if (select("SP 40, 6 times:SP 35, 6 times:SP 40, 7 times:SP 35, 7 times") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "12. Choose the correct amount of magic attack for Napalm Beat lvl 6.";
+			next;
+			if (select("MATK * 1.2:MATK * 1.3:MATK * 1.4:MATK * 1.5") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "13. Choose the catalyst stone for Mage Solution no. 4 that is used for the Mage job change quest.";
+			next;
+			if (select("Blue Gemstone:Red Gemstone:Yellow Gemstone:1 carat Diamond") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "14. Choose the correct attack strength and SP consumption for Bash lvl 6, the Swordman skill.";
+			next;
+			if (select("250% / 8:280% / 8:280% / 15:310% / 15") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "15. Choose the skill that is irrelevant to learning Claymore Trap, the Hunter skill.";
+			next;
+			if (select("Remove Trap:Land Mine:Ankle Snare:Flasher") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "16. Choose the correct defense and ability of Wedding Veil.";
+			next;
+			if (select("0 / MDEF +3:0 / MDEF +5:1 / MDEF +3:1 / MDEF +5") == 2)
+				set .@sage_t,.@sage_t+5;
+			mes "17. Choose the class that cannot equip Coat.";
+			next;
+			if (select("Swordman:Merchant:Thief:Novice") == 4)
+				set .@sage_t,.@sage_t+5;
+			mes "18. Choose the item that is not an ingredient for Blue Dyestuffs.";
+			next;
+			if (select("Alcohol:Detrimindexta:Karvodailnirol:Blue Herb") == 3)
+				set .@sage_t,.@sage_t+5;
+			mes "19. When the world was created by the god Odin, what did he use for the material?";
+			next;
+			if (select("The heart of Ymir:The nail of Ymir:The tooth of Ymir:The memento of Ymir") == 1)
+				set .@sage_t,.@sage_t+5;
+			mes "20. Choose the metal that has rumored to bring fortune and fame to a person with the destiny.";
+			next;
+			if (select("Empelium Gold:Emperium:Emperor:Phracon") == 2)
+				set .@sage_t,.@sage_t+5;
+		}
+		mes "[Claytos Verdo]";
+		if (SAGE_Q == 4) {
+			mes "Well, you answered all 20 of the questions.";
+			mes "Okay, let me check your answers and add up your score.";
+		}
+		else {
+			mes "Well, we finished all 20 questions.";
+			mes "Now, let's check how many points you got.";
+		}
+		next;
+		mes "[Claytos Verdo]";
+		mes "Let's see...";
+		mes "Hmm... hmm...";
+		next;
+		mes "[Claytos Verdo]";
+		mes "You got " + .@sage_t + " points.";
+		if (.@sage_t == 100) {
+			if (SAGE_Q == 4)
+				mes "Excellent! You seem fully qualified to become a Sage!";
+			else
+				mes "Excellent! You must have studed really hard for this test!";
+			set SAGE_Q,6;
+			next;
+			mes "[Claytos Verdo]";
+			mes "You have passed the written test.";
+			mes "Go visit Professor Hermes for the practical examination.";
+		}
+		else if (.@sage_t >= 80) {
+			set SAGE_Q,6;
+			mes "Yeah, not bad. I assume that you will at least understand what you're going to learn in class.";
+			next;
+			mes "[Claytos Verdo]";
+			mes "You passed the written test.";
+			mes "Go visit Professor Hermes for the practical examination.";
+		}
+		else {
+			if (SAGE_Q == 4) {
+				set SAGE_Q,5;
+				mes "Oh well...what a shame: You failed.";
+				next;
+				mes "[Claytos Verdo]";
+				mes "But I'll give you another chance to take the written test,";
+				mes "Go study harder and come back later.";
+			}
+			else {
+				mes "Oh what a shame: You failed.";
+				next;
+				mes "[Claytos Verdo]";
+				mes "But I'll give you another chance,";
+				mes "Go study even harder and come back.";
+			}
+		}
 		close;
-L_Menu3_4:
-	mes "[Lucias]";
-	mes "Well, you have the items, but I can't be sure if you bought them or collected them yourself.";
-	next;
-	mes "[Lucias]";
-	mes "There is a similarity in the characteristics of the monsters that drop those items.";
-	mes "Do you know what it is?";
-	next;
-		menu "Water element affinity",L_Menu3_5,"They're fish and shells",L_Menu3_6,"They were quite active",-,"They're monsters",-;
-//==================================
-		mes "[Lucias]";
-		mes "...I'm disappointed in you.";
-		mes "The correct answer is that all of the monsters have water element affinity.";
-		mes "Monsters that live in an aquatic environment have evolved bodies adapted to that environment.";
-//==================================
-		next;
-		goto L_Menu3_6;
-	L_Menu3_5:
-		mes "[Lucias]";
-		mes "Right!";
-		mes "Most aquatic monsters have water element affinity because they're adapted to their environment.";
-		mes "Fish and shells evolved in a logical way.";
-		next;
-	L_Menu3_6:
-		mes "[Lucias]";
-		mes "Not every fish and shell has water element affinity, but you can count on it as a general rule.";
-		mes "Now, which type of magic do you think would be most effective against them?";
-		next;
-		menu "Lightning Bolt",L_Menu3_7,"Firebolt",-,"Thunderstorm",L_Menu3_8,"Frost Nova",-;
-//==================================
-//mes–¢‰ñŽû
-		mes "[Lucias]";
-		mes "That's not correct.";
-		mes "You need to use magic like Lightning Bolt or Thunderstorm.";
-		mes "Check the elemental affinity matrix again.";
-		next;
-//==================================
-		goto L_Menu3_9;
-	L_Menu3_7:
-		mes "[Lucias]";
-		mes "Great!  That's right!";
-		mes "Using Lightning Bolt is an easy way to victory.";
-		next;
-		mes "[Lucias]";
-		mes "You need to be careful of monsters like the Penomena and Aster because their attribute is different.";
-		next;
-		goto L_Menu3_9;
-	L_Menu3_8:
-		mes "[Lucias]";
-		mes "Great!  That's right!";
-		mes "Using Thunderstorm is an easy way to victory.";
-		next;
-		mes "[Lucias]";
-		mes "You need to be careful of monsters like the Penomena and Aster because their attribute is different.";
-		next;
-	L_Menu3_9:
-		mes "[Lucias]";
-		mes "Next, let's turn our attention to insectoid monsters.";
-		next;
-		set @sagerand,rand(3);
-		mes "[Lucias]";
-		mes "Next, you need to collect ";
-		if(@sagerand == 1) goto L_Menu3_10;
-		if(@sagerand == 2) goto L_Menu3_11;
-		set SAGE_Q2,4;
-		mes "^3051FD5x Cobweb^000000";
-		mes "^3051FD5x Shell^000000";
-		mes "^3051FD5x Insect Feeler^000000";
-		next;
-		goto L_Menu2_6;
-	L_Menu3_10:
-		set SAGE_Q2,5;
-//==================================
-//mes–¢‰ñŽû
-		mes "^3051FD5x Moth Dust^000000";
-		mes "^3051FD5x Snail's Shell^000000";
-		mes "^3051FD5x Horn^000000";
-		next;
-		goto L_Menu2_6;
-	L_Menu3_11:
-		set SAGE_Q2,6;
-		mes "^3051FD5x Mantis Scythe^000000";
-		mes "^3051FD5x Worm Peeling^000000";
-		mes "^3051FD5x Rainbow Shell^000000";
-//==================================
-		next;
-		goto L_Menu2_6;
-L_Menu4_1:
-	if((countitem(1025) >= 5) && (countitem(935) >= 5) && (countitem(928) >= 5) && (SAGE_Q2 == 4)) goto L_Menu4_4;
-	if((countitem(1057) >= 5) && (countitem(946) >= 5) && (countitem(947) >= 5) && (SAGE_Q2 == 5)) goto L_Menu4_4;
-	if((countitem(1031) >= 5) && (countitem(955) >= 5) && (countitem(1013) >= 5) && (SAGE_Q2 == 6)) goto L_Menu4_4;
-	mes "[Lucias]";
-	mes "You forgot what you're supposed to gather?";
-	mes "Listen carefully this time!  You need to gather:";
-	next;
-		mes "[Lucias]";
-		if(SAGE_Q2 == 5) goto L_Menu4_2;
-		if(SAGE_Q2 == 6) goto L_Menu4_3;
-		mes "^3051FD5x Cobweb^000000";
-		mes "^3051FD5x Shell^000000";
-		mes "^3051FD5x Insect Feeler^000000";
+	}
+	else if (SAGE_Q == 5) {
+		mes "Welcome back.";
+		mes "So, did you study harder this time?";
+		next;
+		mes "[Claytos Verdo]";
+		mes "You will take the written test under the same conditions as the test you took before. I'll give you 20 questions.";
+		mes "Each correct answer will give you 5 points. When your score reaches 80 points, you pass the test.";
+		next;
+		set sage_m2,rand(1,3);
+		set sage_t,0;
+		mes "[Claytos Verdo]";
+		mes "Okay, there's no need to wait.";
+		mes "Answer immediately, or I'll fail you again.";
+		set SAGE_Q,5;
+		goto L_AskQuestions;
+		end;
+	}
+	else if (SAGE_Q == 6) {
+		mes "What else do you want?! Do you want to take this test again?";
+		mes "You've already passed!";
+		next;
+		mes "[Claytos Verdo]";
+		mes "Go visit Professor Hermes for the practical examination.";
+		mes "Move!";
 		close;
-	L_Menu4_2:
-		mes "^3051FD5x Moth Dust^000000";
-		mes "^3051FD5x Snail's Shell^000000";
-		mes "^3051FD5x Horn^000000";
+	}
+	else if (SAGE_Q == 15) {
+		mes "Heh heh, It seems you're done with your dissertation.";
+		mes "But I'm not the person handling that part of the test.";
+		next;
+		mes "[Claytos Verdo]";
+		mes "submit your thesis to Dean Kayron.";
+		mes "He will decide whether you are qualified to graduate or not.";
 		close;
-	L_Menu4_3:
-		mes "^3051FD5x Mantis Scythe^000000";
-		mes "^3051FD5x Worm Peeling^000000";
-		mes "^3051FD5x Rainbow Shell^000000";
+	}
+	else {
+		mes "I'm too busy to take care of written tests.";
+		mes "Come back later, and I'll spare some time to talk.";
 		close;
-L_Menu4_4:
-	set SAGE_Q2,7;
-	mes "[Lucias]";
-	mes "Excellent.  You've done well.";
-	mes "I hope you were also dilligent in observing your surroundings when you collected the items.";
-	next;
-	mes "[Lucias]";
-	mes "With insects, you'll need to carefully consider which magic to use, since insects have affinity with a variety of elements.";
-	next;
-	mes "[Lucias]";
-	mes "You should also be aware that Thief hiding and Assassin cloaking aren't effective against some insects.";
-	next;
-	mes "[Lucias]";
-	mes "Insects can also act in groups.";
-	mes "Often the insect bosses will have considerable numbers of subordinates.";
-	next;
-	mes "[Lucias]";
-	mes "Ant Lord Maya...";
-	mes "Queen Bee Mistress...";
-	mes "Goblin Chief Goldfinger...";
-	next;
-	mes "[Lucias]";
-	mes "If you face a boss monster alone, you had best prepare to die.";
-	mes "You ought to take a group of friends to face these creatures down.";
-	next;
-	mes "[Lucias]";
-	mes "Well, you've studied quite a bit.";
-	mes "Now you need to write a thesis.";
-	mes "You need some materials before you can begin writing it, however.";
-	mes "They are:";
-	next;
-	mes "[Lucias]";
-	mes "^3051FD1x Feather of Birds^000000 for your writing instrument.";
-	mes "^3051FD1x Animal Skin^000000 for the pages.";
-	mes "^3051FD1x Trunk^000000 to bind the pages.";
-	mes "^3051FD1x Squid Ink^000000 for your ink.";
-	mes "^3051FD1x Empty Bottle^000000 to store your ink.";
-	next;
-	mes "[Lucias]";
-	mes "We can get started when you return.";
-	close;
-L_Menu5_1:
-	if((countitem(916) >= 1) && (countitem(919) >= 1) && (countitem(1019) >= 1) && (countitem(1024) >= 1) && (countitem(713) >= 1) && (SAGE_Q2 == 7)) goto L_Menu5_2;
-	mes "[Lucias]";
-	mes "You need to gather those items first.";
-	mes "They are:";
-	next;
-	mes "[Lucias]";
-	mes "^3051FD1x Feather of Birds^000000 for your writing instrument.";
-	mes "^3051FD1x Animal Skin^000000 for the pages.";
-	mes "^3051FD1x Trunk^000000 to bind the pages.";
-	mes "^3051FD1x Squid Ink^000000 for your ink.";
-	mes "^3051FD1x Empty Bottle^000000 to store your ink.";
-	next;
-	mes "[Lucias]";
-	mes "You've done great so far.";
-	mes "Just a little more and you can graduate.";
-	close;
-L_Menu5_2:
-	delitem 916,1;
-	delitem 919,1;
-	delitem 1019,1;
-	delitem 1024,1;
-	delitem 713,1;
-	mes "[Lucias]";
-	mes "Looks like you have everything.";
-	next;
-	mes "[Lucias]";
-	mes "Now, you need to write this yourself.";
-	mes "I'm only taking an advisory role.";
-	next;
-	mes "[Lucias]";
-	mes "Are you ready to begin?";
-	mes "Let's see if you've acquired enough knowledge to write a coherent thesis.";
-	next;
-	mes "......";
-	next;
-	mes "......";
-	next;
-	mes "......";
-	next;
-	menu "Monsters come in different types",-;
-	mes "Monsters come in different types.";
-	menu "They have different elemental affinities",-;
-	mes "They have different elemental affinities.";
-	menu "If you know the monster's element beforehand...",-;
-	mes "If you know the monster's element beforehand...";
-	menu "...you can optimize your battle experience",-;
-	mes "...you can optimize your battle experience";
-	menu "You should especially be careful of...",-;
-	mes "You should especially be careful of...";
-	menu "...monsters with Holy and Darkness affinity",-;
-	mes "...monsters with Holy and Darkness affinity";
-	next;
-	mes "......";
-	next;
-	mes "......";
-	next;
-	mes "......";
-	next;
-	set SAGE_Q,11;
-	getitem 1550,1;
-	mes "[Lucias]";
-	mes "This is pretty good!";
-	mes "I'm proud of you!";
-	next;
-	mes "[Lucias]";
-	mes "Show this to the Headmaster and you'll be sure to graduate.";
-	mes "Good luck.";
-	close;
-L_Menu5_3:
-	mes "[Lucias]";
-	mes "Hmmm?  What's the matter?";
-	mes "You need to show your thesis to the Headmaster.";
-	close;
-L_Menu5_4:
-	mes "[Lucias]";
-	mes "Are you confused about something?";
-	mes "I'm pretty busy, so you need to make an appointment a week in advance.";
-	next;
-	mes "[Lucias]";
-	mes "Hahaha...Once you've been a Sage for awhile, you'll be saying the same thing.";
-	next;
-	mes "[Lucias]";
-	mes "Also, if you have some spare time,";
-	mes "you should head over to the dungeon and lie down on the floor.";
-	mes "Look up and study the ceiling.";
-	mes "You might learn something.";
-	close;
+	}
 }
 
-//=================================
-//Academy Interior
-//=================================
-
-yuno_in03,154,35,4	script	Academy Staff	742,{
-	callfunc "F_BlockHigh",26,"High Mage",40,"Professor","Mathias";
-
-	if(BaseJob == Job_Sage) goto L_Menu6_4;
-	if(BaseJob != Job_Mage) goto L_Menu1_1;
-	if(SAGE_Q == 11) goto L_Menu6_3;
-	if(SAGE_Q >= 4) goto L_Menu6_2;
-	if(SAGE_Q == 3) goto L_Menu6_1;
-	if(SAGE_Q == 2) goto L_Menu5_1;
-	mes "[Mathias]";
-	mes "Hello.";
-	mes "This is the Shubaichul Magic Academy?";
-	mes "You seem to be a Magician.";
-	mes "How can I help you?";
-	next;
-	menu "Sage class-change information",-,"I want to apply for admission to the Academy",L_Menu3_1,"Forget it",L_Menu2;
-		mes "[Mathias]";
-		mes "You want to change class to Sage?";
-		mes "I can't just change your class right here.";
-		next;
-		mes "[Mathias]";
-		mes "You need to complete a program of rigorous coursework and research.";
-		next;
-		mes "[Mathias]";
-		mes "Once you graduate from the academy,";
-		mes "you can change class.";
-		mes "In order to proceed, you need to pay tuition and take the placement test.";
-		next;
-		mes "[Mathias]";
-		mes "Only those who have an ^3051FDOld Magic Book^000000 and a ^3051FDNecklace Of Wisdom^000000 can have tuition waived.";
-		next;
-		mes "[Mathias]";
-		mes "Once you've paid the fee, you first take the placement test.";
-		mes "If you score highly enough to be placed in our program, you then perform research according to your placement.";
-		mes "Finally, you must prepare and defend a thesis.";
-		next;
-		mes "[Mathias]";
-		mes "The Headmaster decides whether or not the thesis meets standards for graduation.";
-		mes "If he approves, you can formally begin your career as a Sage.";
-		next;
-		mes "[Mathias]";
-		mes "If you're interested, you need only file an application to get started.";
-		mes "Have a good day.";
+yuno_in03,169,180,3	script	Practical Examination Professor	755,{
+	mes "[Hermes Tris]";
+	if (BaseJob != Job_Mage) {
+		if (BaseJob == Job_Sage) {
+			mes "Welcome. How have you been?";
+			mes "I guess you've been through a lot of hard times...I can tell by your appearance.";
+			next;
+			mes "[Hermes Tris]";
+			mes "I know how hard it is to explore all those perilous areas, but it will help you to gain more knowledge.";
+			mes "Book smarts never can beat street smarts.";
+			next;
+			mes "[Hermes Tris]";
+			mes "However, it's a very dangerous idea to go deep inside a dungeon alone. ";
+			mes "You'd better look for trustworthy comrades.";
+		}
+		else if (BaseJob == Job_Novice) {
+			mes "Heh heh, now ain't that a cute little Novice?";
+			next;
+			mes "[Hermes Tris]";
+			mes "In this continent of Rune-Midgarts, there are a lot of unknown places and objects that haven't been fully discovered.";
+			mes "The monsters, mysterious objects and heroes of myths...";
+			next;
+			mes "[Hermes Tris]";
+			mes "Why don't you consider being a Sage in the future?";
+			mes "You will love studying the world.";
+			next;
+			mes "[Hermes Tris]";
+			mes "If by chance you do decide to do that, we'll meet again.";
+			mes "Take care, kiddy.";
+		}
+		else {
+			mes "Welcome to the Schweicherbil Magic Academy.";
+			next;
+			mes "[Hermes Tris]";
+			mes "We Sages are more like scholars than Mages.";
+			mes "We are very helpful and powerful as members of a party.";
+			next;
+			mes "[Hermes Tris]";
+			mes "Try to make a party with a Sage next time.";
+			mes "The wisdom a Sage will bring will be more than helpful for your party...";
+		}
 		close;
-L_Menu2:
-	mes "[Mathias]";
-	mes "Oh?";
-	mes "Are you hesitant?";
-	mes "See you later, then.";
-	close;
-L_Menu1_1:
-	mes "[Mathias]";
-	mes "Welcome.";
-	mes "This is Shubaichul Magic Academy.";
-	next;
-	mes "[Mathias]";
-	mes "We do research on magic and monsters here.";
-	mes "We also train fledgling Sages.";
-	next;
-	mes "[Mathias]";
-	mes "Any Magician who is at or above class level 40 can apply for admission to the Academy.";
-	mes "Once you complete our prescribed process for degree acquisition, you can become a Sage.";
-	next;
-	mes "[Mathias]";
-	mes "Good bye.";
-	close;
-L_Menu3_1:
-	mes "[Mathias]";
-	mes "You want to apply?  Wonderful!";
-	next;
-	mes "[Mathias]";
-	mes "In order to enter the Academy,";
-	mes "you need to be a Magician of class level 40 or above.";
-	mes "You will also need to pay tuition to cover instruction and materials.";
-	next;
-	mes "[Mathias]";
-	mes "Tuition is 70,000Zeny.";
-	mes "If you have an ^3051FDOld Magic Book^000000 or a ^3051FDNecklace Of Wisdom^000000, the tuition fee will be waived.";
-	next;
-	mes "[Mathias]";
-	mes "So, you would like to apply for admission?";
-	next;
-	menu "Yes, I would",L_Menu5_5,"Tuition is too expensive!",-,"I'll try again later",L_Menu3_2;
-		mes "[Mathias]";
-		mes "Well...we need the tuition money to cover instruction and materials...";
-		next;
-		menu "Isn't there another way?",-,"I'll try again later.",L_Menu3_2;
-		set SAGE_Q,2;
-		mes "[Mathias]";
-		mes "Well...Perhaps there is.  I can lower the tuition to 30000 Zeny if you can bring us some materials we need for our research department:";
+	}
+	if (SAGE_Q >= 0 && SAGE_Q <= 3) {
+		mes "I am Professor Hermes, in charge of practical examinations.";
+		mes "Are you a candidate for the Sage class?";
 		next;
-		mes "[Mathias]";
-		mes "Specifically, we need:";
-		mes "^3051FD50x Feather of Birds^000000";
-		mes "^3051FD50x Fluff^000000";
-		mes "^3051FD50x Clover^000000";
-		mes "^3051FD50x Feathers^000000";
-		next;
-		mes "[Mathias]";
-		mes "If you can get all that, I'll discount the fee to 30000 Zeny.";
-		mes "Please do your best to collect them.";
-		next;
-		mes "[Mathias]";
-		mes "Of course, you can also acquire 70000 Zeny instead of gathering the items if you wish.";
-		next;
-		mes "[Mathias]";
-		mes "Please do your best to collect the items.";
-		mes "See you later.";
+		mes "[Hermes Tris]";
+		mes "Register your application and take the written test first.";
 		close;
-	L_Menu3_2:
-		mes "[Mathias]";
-		mes "Oh, alright.";
-		mes "Take your time.";
-		mes "Thanks for stopping by.";
+	}
+	else if (SAGE_Q == 4 || SAGE_Q == 5) {
+		mes "I am professor Hermes, in charge of practical examinations.";
+		mes "Are you a candidate for the Sage class?";
+		next;
+		mes "[Hermes Tris]";
+		mes "Go pass the written test with Professor Claytos first.";
+		mes "Then I will take care of you.";
 		close;
-L_Menu5_1:
-	mes "[Mathias]";
-	mes "So, would you like to apply for admission?";
-	next;
-	if(JobLevel < 40) goto L_Menu5_9;
-	if(countitem(1006) > 0) goto L_Menu5_4;
-	if(countitem(1007) > 0) goto L_Menu5_4_;
-	if(Zeny < 70000) goto L_Menu5_2;
-		set Zeny,Zeny-70000;
-		set SAGE_Q,3;
-		mes "[Mathias]";
-		mes "I see you have 70000 Zeny.";
-		mes "I'll take that for tuition. You are now enrolled into the school.";
-		next;
-	L_Menu5_5:
-		if(JobLevel < 40) goto L_Menu5_9;
-		mes "[Mathias]";
-		mes "We need your signature on this form to proceed.";
-		mes "Please sign at the X.";
-		next;
-		menu "" + strcharinfo(0) + "",-;
-		mes "[Mathias]";
-		mes "Alright, so you're ";
-		mes "" + strcharinfo(0) + ".";
-		mes "That's a nice name.";
-		next;
-			if(JobLevel == 50) goto L_JobMax;
-			if(SAGE_Q == 3) goto L_Menu5_6;
-			if(countitem(1006) > 0) goto L_Menu5_7;
-			if(countitem(1007) > 0) goto L_Menu5_7_;
-			if(Zeny < 70000) goto L_Menu5_2;
-			set Zeny,Zeny-70000;
-			set SAGE_Q,3;
-
-			mes "[Mathias]";
-		        mes "I see you have 70000 Zeny.";
-		        mes "I'll take that for tuition.";
-			mes "You are now enrolled into the school.";
-			next;
-
-		L_Menu5_6:
-			mes "[Mathias]";
-			mes "First, you need to take the placement test from Professor Kreitos.";
-			next;
-			mes "[Mathias]";
-			mes "Professor Kreitos is in the Academy library.";
-			mes "It's on the far left side of the building.";
-			next;
-			mes "[Mathias]";
-			mes "Good luck on the test.";
+	}
+	else if (SAGE_Q == 6) {
+		mes "Welcome, you just passed the written test, didn't you?";
+		mes "Now it's time for the practical examination.";
+		next;
+		mes "[Hermes Tris]";
+		mes "There is nothing difficult or special about this test.";
+		mes "All you have to do is kill all the monsters within the time limit.";
+		next;
+		mes "[Hermes Tris]";
+		mes "It's better to experience this for yourself, rather than be told about this test 100 times.";
+		mes "How about it? Are you ready to take this test?";
+		next;
+		if (select("Yes, I am.:Sorry, give me some time.") == 1) {
+			set SAGE_Q,7;
+			mes "[Hermes Tris]";
+			mes "Good, let's start immediately.";
+			mes "Do your best and come back safely!";
+			close2;
+			warp "job_sage",50,154;
+			end;
+		}
+		set SAGE_Q,7;
+		mes "[Hermes Tris]";
+		mes "Yes, you don't need to hurry... take your time and come back.";
+		close;
+	}
+	else if (SAGE_Q == 7) {
+		mes "Welcome again! So, did you fully prepare yourself this time?";
+		mes "Oh well, it's not that hard. Give it your all, okay?";
+		next;
+		mes "[Hermes Tris]";
+		mes "Are you ready?";
+		next;
+		if (select("Yes, I am.:Sorry, give me some time.") == 1) {
+			mes "[Hermes Tris]";
+			mes "Good, let's start immediately.";
+			mes "Do your best and come back safely!";
+			close2;
+			warp "job_sage",50,154;
+			end;
+		}
+		mes "[Hermes Tris]";
+		mes "Yes, you don't need to hurry... take your time and come back.";
+		close;
+	}
+	else if (SAGE_Q == 8) {
+		mes "Good job~ Since you passed the practical examination as well...";
+		mes "I'll accept your admission.";
+		next;
+		mes "[Hermes Tris]";
+		mes "Now I need to decide what subject you will learn and study...";
+		mes "Let's see... let me check your written test grade and the time spent on the practical examination.";
+		next;
+		mes "[Hermes Tris]";
+		mes "Hmm, hmm... I see.";
+		mes "Well... I think you're okay.";
+		next;
+		switch(rand(1,3)) {
+		case 1:
+			set SAGE_Q,9;
+			mes "[Hermes Tris]";
+			mes "Now, you will study Yggdrasil.";
+			mes "Yggdrasil is the tree that was rumored to be the source of life for this world.";
+			next;
+			mes "[Hermes Tris]";
+			mes "That is a good subject which helps us to recognize changes in the world, as well as the direction of its improvement.";
+			mes "Go ask for help from Professor Saphien. He's in the Lecture Room.";
+			next;
+			mes "[Hermes Tris]";
+			mes "I wish you luck.";
 			close;
-		L_JobMax:
-			set SAGE_Q,3;
-			mes "[Mathias]";
-			mes "You've trained yourself up to the maximum class level for Magicians!";
-			mes "In that case, I'll give you a full scholarship!";
-			next;
-			mes "[Mathias]";
-			mes "Now, all you need to do is go take the placement test.";
-			next;
-			mes "[Mathias]";
-			mes "Go see Professor Kreitos in the library on the far left side of the building.";
+		case 2:
+			set SAGE_Q,11;
+			mes "[Hermes Tris]";
+			mes "Now, you will study monsters.";
+			mes "The purpose of this study is to learn and understand more about creatures existing all over the continent.";
+			next;
+			mes "[Hermes Tris]";
+			mes "This is a good subject which will help you lead your life as a well-experienced Sage.";
+			mes "Go ask for help from Professor Lucius. He's in the Monster Museum.";
+			next;
+			mes "[Hermes Tris]";
+			mes "I wish you luck.";
 			close;
-	L_Menu5_2:
-		if(SAGE_Q != 2) goto L_Menu5_8;
-		if((countitem(916) >= 50) && (countitem(914) >= 50) && (countitem(949) >= 50) && (countitem(705) >= 50)) goto L_Menu5_3;
-		mes "[Mathias]";
-		mes "You don't seem to have the materials yet.";
-		next;
-		mes "[Mathias]";
-		mes "You need to gather:";
-		mes "^3051FD50x Feather of Birds^000000";
-		mes "^3051FD50x Fluff^000000";
-		mes "^3051FD50x Clover^000000";
-		mes "^3051FD50x Feathers^000000";
-		next;
-		mes "[Mathias]";
-		mes "If you can get all that, I'll discount the fee to 30000 Zeny.";
-		mes "Please do your best to collect them.";
+		case 3:
+			set SAGE_Q,13;
+			mes "[Hermes Tris]";
+			mes "Now, you will study magic skills that have certain properties.";
+			mes "The purpose of this study is to better understand basic magic skills that we use in everyday life.";
+			next;
+			mes "[Hermes Tris]";
+			mes "That is a good subject which helps you to deeply understand of the truth of magic.";
+			mes "Go ask Professor Aebecee for help...He's in the Somatology Laboratory.";
+			next;
+			mes "[Hermes Tris]";
+			mes "I wish you luck.";
+			close;
+		}
+	}
+	else if (SAGE_Q == 9) {
+		mes "Huh? Didn't you understand what I said?";
+		mes "I told you to study Yggdrasil.";
+		next;
+		mes "[Hermes Tris]";
+		mes "Go ask for help from Professor Saphien. He's in the Lecture Room.";
 		close;
-	L_Menu5_3:
-//==================================
-		if(Zeny < 30000) goto L_Menu5_8;
-		delitem 916,50;
-		delitem 914,50;
-		delitem 705,50;
-		delitem 949,50;
-		set Zeny,Zeny-30000;
-		set SAGE_Q,3;
-		mes "[Mathias]";
-		mes "It seems like you have the materials I asked for and 30000 Zeny.";
-		mes "Congratulations.";
-		mes "You're now enrolled in the Academy.";
-		set SAGE_Q,3;
-		next;
-		goto L_Menu5_5;
-	L_Menu5_4:
-		delitem 1006,1;
-		set SAGE_Q,3;
-		mes "[Mathias]";
-		mes "Oh, you have a ^3051FDOld Magic Book^000000.";
-		mes "I'll accept it in lieu of tuition.";
+	}
+	else if (SAGE_Q == 11) {
+		mes "Huh? Didn't you understand what I said?";
+		mes "I told you to study monsters.";
 		next;
-		goto L_Menu5_5;
-	L_Menu5_4_:
-		delitem 1007,1;
-		set SAGE_Q,3;
-		mes "[Mathias]";
-		mes "Oh, you have a ^3051FDNecklace Of Wisdom^000000.";
-		mes "I'll accept it in lieu of tuition.";
-		next;
-		goto L_Menu5_5;
-	L_Menu5_7:
-		delitem 1006,1;
-		set SAGE_Q,3;
-		mes "[Mathias]";
-		mes "Oh, you have a ^3051FDOld Magic Book^000000.";
-		mes "I'll accept it in lieu of tuition.";
+		mes "[Hermes Tris]";
+		mes "Go ask for help from Professor Lucius. He's in the Monster Museum.";
+		close;
+	}
+	else if (SAGE_Q == 13) {
+		mes "Huh? Didn't you understand what I said?";
+		mes "I told you to study magic spells that possess certain properties.";
 		next;
-		goto L_Menu5_6;
-	L_Menu5_7_:
-		delitem 1007,1;
-		set SAGE_Q,3;
-		mes "[Mathias]";
-		mes "Oh, you have a ^3051FDNecklace Of Wisdom^000000.";
-		mes "I'll accept it in lieu of tuition.";
+		mes "[Hermes Tris]";
+		mes "Go ask a help from Professor Aebecee. He's in the Somatology Laboratory.";
+		close;
+	}
+	else if (SAGE_Q == 15) {
+		mes "What are you doing here? Aren't you supposed to be with Dean Kayron?";
+		mes "Oh well, there's no harm in showing me your dissertation though...";
 		next;
-		goto L_Menu5_6;
-	L_Menu5_8:
-		mes "[Mathias]";
-		mes "You don't seem to have enough money.";
-		mes "Please earn some money and return here.";
+		mes "[Hermes Tris]";
+		mes "But then again, maybe there is. Go see Dean Kayron.";
 		close;
-	L_Menu5_9:
-		mes "[Mathias]";
-		mes "Your class level is too low.";
-		mes "Complete some more training and return here.";
+	}
+	else {
+		mes "Oh sorry, I'm quite busy at the moment...";
+		mes "If you have any questions, go visit the professor I've assigned to you.";
 		close;
-//==================================
-L_Menu6_1:
-	mes "[Mathias]";
-	mes "Hmmm?  Did you forget what you need to do next?";
-	mes "Head over and see Professor Kreitos on the left side of the building.";
-	close;
-L_Menu6_2:
-	mes "[Mathias]";
-	mes "Oh, forgive me.  I have so much to do that I can't help you at the moment.";
-	mes "Again, I apologize...";
-	close;
-L_Menu6_3:
-	mes "[Mathias]";
-	mes "Oh!  Did you finish your thesis?";
-	mes "You need to see Headmaster Keiron so he can evaluate it.";
-	next;
-	mes "[Mathias]";
-	mes "If he approves, you can graduate!";
-	mes "Good luck.";
-	close;
-L_Menu6_4:
-	mes "[Mathias]";
-	mes "Welcome, colleague.";
-	mes "How is your research coming along?";
-	next;
-	mes "[Mathias]";
-	mes "In order to be a truly great researcher, you need to supplement your book-based research with encounters with real monsters.";
-	next;
-	mes "[Mathias]";
-	mes "If you know others with what it takes to become a Sage, please send them here.";
-	mes "Give my regards to my other colleagues, also.";
-	close;
+	}
 }
 
-yuno_in03,169,180,4	script	Test Professor	755,{
-	if(BaseJob == Job_Sage) goto L_Menu4_5;
-	if(BaseJob != Job_Mage) goto L_Menu1_1;
-	if(SAGE_Q == 5) goto L_Menu2_1;
-	if(SAGE_Q == 6) goto L_Menu2_3;
-	if(SAGE_Q == 7) goto L_Menu3_1;
-	if(SAGE_Q == 8) goto L_Menu4_1;
-	if(SAGE_Q == 9) goto L_Menu4_2;
-	if(SAGE_Q == 11) goto L_Menu4_4;
-	mes "[Hermes]";
-	mes "Hello, I'm Hermes.  I am part of the skill testing staff.";
-	mes "Are you a Sage candidate?";
-	next;
-	if(SAGE_Q == 3) goto L_Menu1_2;
-	if(SAGE_Q >= 3) goto L_Menu1_2;
-	mes "[Hermes]";
-	mes "Oh, alright.";
-	mes "First you need to enroll and take the placement test.";
-	close;
-L_Menu1_1:
-	mes "[Hermes]";
-	mes "This is Shubaichul Magic Academy.";
-	next;
-	mes "[Hermes]";
-	mes "There are Sages that are less magicians than researchers.";
-	mes "Having a party supporting this kind of person is extremely important.";
-	next;
-	mes "[Hermes]";
-	mes "Keep supporting your party to the best of your ability.";
-	mes "That's all you need to do.";
-	close;
-L_Menu1_2:
-	mes "[Hermes]";
-	mes "You need to take the placement test from Kreitos before you can take my test.";
-	close;
-L_Menu2_1:
-	set SAGE_Q,6;
-	mes "[Hermes]";
-	mes "Oh?  You took and passed the placement test?";
-	mes "Now you need to take the skill test from me.";
-	next;
-	mes "[Hermes]";
-	mes "The rules for the skill test are simple.";
-	mes "You need to kill all the monsters within the prescribed time limit.";
-	next;
-	mes "[Hermes]";
-	mes "There's an old proverb that one experience is worth a hundred words, so why not try it once?";
-	next;
-	menu "Sounds good",-,"I'm not ready yet",L_Menu2_2;
-		mes "[Hermes]";
-		mes "Well, let's get started.";
-		mes "Do your best!";
-		close2;
-		warp "job_sage",50,154;
-		end;
-	L_Menu2_2:
-		mes "[Hermes]";
-		mes "Okay.";
-		mes "Please prepare quickly.";
+yuno_in03,62,176,2	script	History Professor#sa	109,{
+	mes "[Saphien Layless]";
+	if (BaseJob != Job_Mage) {
+		if (BaseJob == Job_Sage) {
+			mes "Do I know you? Were you one of my students?";
+			mes "Oh, it doesn't matter anyway. You wouldn't be a Sage without graduating from this academy...";
+			next;
+			mes "[Saphien Layless]";
+			mes "In any case, you must study the past in order to better understand the present and to predict...the future.";
+			mes "This sentence contains all the truth of the world.";
+			next;
+			mes "[Saphien Layless]";
+			mes "I guess you're treading the right path...";
+			mes "One of these days you'll look back to this moment and realize it changed your life.";
+		}
+		else if (BaseJob == Job_Novice) {
+			mes "A Novice? Why is a novice here?";
+			next;
+			mes "[Saphien Layless]";
+			mes "One whose life has many possibilities... ";
+			mes "How do you wish to lead your life?";
+			next;
+			mes "[Saphien Layless]";
+			mes "No matter what you decide to be, everything depends on your choice.";
+			mes "May God bless you so that you can choose the path best for you...";
+		}
+		else {
+			mes "Welcome, I am in charge of historical studies here in the academy.";
+			next;
+			mes "[Saphien Layless]";
+			mes "The world as we know it is a result of events that described in the records of the ages. It is historical events that have shaped the world as it is today.";
+			mes "Therefore, knowing the past means you will better understand the present and...the future.";
+			next;
+			mes "[Saphien Layless]";
+			mes "Reflect upon your past.";
+			mes "You will see your path in the future...";
+		}
 		close;
-L_Menu2_3:
-	mes "[Hermes]";
-	mes "Are you ready to take the skill test?";
-	mes "It's not too tough.";
-	next;
-	mes "[Hermes]";
-	mes "How about it?";
-	next;
-	menu "Sounds good",-,"I'm not ready yet",L_Menu2_2;
-		mes "[Hermes]";
-		mes "Well, let's get started.";
-		mes "Do your best!";
-		close2;
-		warp "job_sage",50,154;
-		end;
-L_Menu3_1:
-	mes "[Hermes]";
-	mes "Good job!  You passed";
-	mes "the skill test!  Now you can proceed to the research phase!";
-	next;
-	mes "[Hermes]";
-	mes "Before I decide your research concentration, let's look at your score on the placement test and the amount of time you spent in the skill test.";
-	next;
-	mes "[Hermes]";
-	mes "Hmmm...";
-	mes "Looking good.";
-	next;
-
-//It's not clear how the script decides
-
-	if(sagecheck >= 12) goto L_Menu3_2;
-	set SAGE_Q,8;
-	mes "[Hermes]";
-	mes "It looks like monster research would be your best bet.";
-	next;
-	mes "[Hermes]";
-	mes "In order to gain the necessary information to put together a coherent research paper,";
-	mes "you should take the biology course from Professor Lucias.";
-	next;
-	goto L_Menu3_4;
-L_Menu3_2:
-	set SAGE_Q,9;
-	mes "[Hermes]";
-	mes "It looks like we have a budding elemental magic researcher here.";
-	mes "This field is fundamental to the advancement of magical knowledge.";
-	next;
-	mes "[Hermes]";
-	mes "You need to take a course from Professor Ebeshi in the biotech lab to gain a deeper understanding of elemental magic.";
-	next;
-L_Menu3_4:
-	mes "[Hermes]";
-	mes "I hope the coursework goes well.";
-	close;
-L_Menu4_1:
-	mes "[Hermes]";
-	mes "Weren't you listening?";
-	mes "You need to see Professor Lucias so you can begin your study of monster biology.";
-	close;
-L_Menu4_2:
-	mes "[Hermes]";
-	mes "Weren't you listening?";
-	mes "You need to see Professor Ebeshi so you can begin your study of elemental magic.";
-	close;
-L_Menu4_4:
-	mes "[Hermes]";
-	mes "Great job on completing your thesis, but you need to show it to the Headmaster.";
-	mes "He's the one who will judge whether or not you graduate.";
-	close;
-L_Menu4_5:
-	mes "[Hermes]";
-	mes "How are you?";
-	mes "Your face reveals that you've endured a lot of stress lately.";
-	next;
-	mes "[Hermes]";
-	mes "As stressful as hands-on research is,";
-	mes "it is still fundamentally different from research using abstract concepts.";
-	next;
-	mes "[Hermes]";
-	mes "Of course, if you go to difficult dungeons,";
-	mes "there's no shame in bringing a friend or five to help you out.";
-	close;
+	}
+	if (SAGE_Q == 9) {
+		if (SAGE_Q2 == 0) {
+			mes "Welcome, " + strcharinfo(0) + ". I am glad to meet you.";
+			mes "My name is Saphien Layless, I will be in charge of your class for a while.";
+			next;
+			mes "[Saphien Layless]";
+			mes "The subject you're studying is Yggdrasil.";
+			mes "So...do you even know what Yggdrasil is?";
+			next;
+			switch(select("Yes, I know very well.:No, I don't.")) {
+			case 1:
+				mes "[Saphien Layless]";
+				mes "Okay then, what is Yggdrasil?";
+				mes "Please answer me.";
+				next;
+				switch(select("It's a name of a health item.:It's the source of life in the world.:Suckah, I lied.")) {
+				case 1:
+					mes "[Saphien Layless]";
+					mes "Wrong. " + strcharinfo(0) + ", you got - 10 points.";
+					mes "That's just one of the gifts from Yggdrasil.";
+					next;
+					mes "[Saphien Layless]";
+					mes "Yggdrasil is the name of the tree that is the source of life in this world.";
+					break;
+				case 2:
+					mes "[Saphien Layless]";
+					mes "That's right. Yggdrasil, the so-called 'World Tree', ";
+					mes "is the name of the tree that has been the source of life in this world.";
+					break;
+				case 3:
+					mes "[Saphien Layless]";
+					mes "Great Schott...If you don't know, just say so.";
+					mes "By the way, " + strcharinfo(0) + ", you just got - 10 points for lying and for being wrong.";
+					break;
+				}
+				next;
+				break;
+			case 2:
+				mes "[Saphien Layless]";
+				mes "Ah well, I expected you would know at least a little bit about Yggdrasil...";
+				mes "Yggdrasil is the name of the tree that is the source of life in this world.";
+				next;
+				break;
+			}
+			mes "[Saphien Layless]";
+			mes "Before we start the class, I'll need some reserve items.";
+			mes "It's for better understanding of Yggdrasil.";
+			next;
+			mes "[Saphien Layless]";
+			mes "Anything is fine as long as it's related to the Yggdrasil tree.";
+			mes "Seeds or fruits of the tree would be good. I know it's difficult to find, but please try.";
+			next;
+			set SAGE_Q2,1;
+			mes "[Saphien Layless]";
+			mes "When we have the reserve items, we will start the class.";
+			mes "Please come back.";
+			close;
+		}
+		else {
+			if (countitem(607) > 0) {
+				mes "[Saphien Layless]";
+				mes "Oh, did you bring them with you? Excellent!";
+				mes "You brought Yggdrasilberry!";
+				next;
+				mes "[Saphien Layless]";
+				mes "Okay, now I am starting the class.";
+				mes "Listen carefully, I will not accept dozing off in the middle of class.";
+				next;
+			}
+			else if (countitem(608) > 0) {
+				mes "[Saphien Layless]";
+				mes "Hmm, did you prepare for class? Let's see...";
+				mes "Oh! So you brought me the Yggdrasil Seed?";
+				next;
+				mes "[Saphien Layless]";
+				mes "Very well. Now I am starting the class..";
+				mes "Listen carefully, I will not accept dozing off in the middle of class.";
+				next;
+			}
+			else if (countitem(610) > 0) {
+				mes "[Saphien Layless]";
+				mes "Hmm, did you prepare for class? Let's see...";
+				mes "Yggdrasil Leaf...";
+				next;
+				mes "[Saphien Layless]";
+				mes "You can purchase this item from the town of Al De Baran! You didn't show any effort.";
+				mes "So, I must give you - 10 points, " + strcharinfo(0) + ".";
+				next;
+				mes "[Saphien Layless]";
+				mes "Okay, now I am starting the class.";
+				mes "Listen carefully, I will not accept you dozing off in the middle of class, or any more slacking.";
+				next;
+			}
+			else {
+				mes "[Saphien Layless]";
+				mes "Huh? You're not ready to this class yet!";
+				mes "I told you to bring me any items related Yggdrasil.";
+				next;
+				mes "[Saphien Layless]";
+				mes "Tell me when you're ready.";
+				mes "Don't worry about being late, we professors are paid to wait around.";
+				close;
+			}
+			mes "[Saphien Layless]";
+			mes "The root of this world, Yggdrasil, is a gigantic tree.";
+			mes "It takes root all over the continent of Rune-Midgarts and its leaves reach the sky.";
+			next;
+			mes "[Saphien Layless]";
+			mes "Outside of this continent, there is a ocean where a giant snake named Yormungandr is coiled up.";
+			mes "The world as we know it consists of 3 places: Asgard, Midgard and Utgard.";
+			next;
+			mes "[Saphien Layless]";
+			mes "Utgard is where all the titans live.";
+			next;
+			mes "[Saphien Layless]";
+			mes "Midgard is where all human beings live.";
+			next;
+			mes "[Saphien Layless]";
+			mes "And Asgard is where the gods reside...";
+			mes "An ash tree taking root in the middle of the Rune-Midgarts continent, that is Yggdrasil.";
+			next;
+			mes "[Saphien Layless]";
+			mes "This continent was born from the heart of Ymir, and Yggdrasil holds the continent together by grasping it with its 3 roots.";
+			mes "These roots stretch into 3 different places.";
+			next;
+			mes "[Saphien Layless]";
+			mes "The first root reaches Asgard where the gods live and ";
+			mes "where we, mere humans, haven't yet explored or experienced.";
+			next;
+			mes "[Saphien Layless]";
+			mes "The second root reaches Jotunnheim where all the giants live.";
+			mes "We've been told this name many times through myths and legends.";
+			next;
+			mes "[Saphien Layless]";
+			mes "The third one reaches Niflheim.";
+			mes "That place is rumored to be covered with a thick, black fog.";
+			next;
+			mes "[Saphien Layless]";
+			mes "Items, such as Seed of Yggdrasil, Yggdrasilbrry and Leaf of Yggdrasil are";
+			mes "considered a part of Yggdrasil tree.";
+			next;
+			mes "[Saphien Layless]";
+			mes "Yggdrasilberry has a fascinating scent that is rumored to";
+			mes "restore full HP and SP at once.";
+			next;
+			mes "[Saphien Layless]";
+			mes "The seed of Yggdrasil which has the fragrance of a blooming flower and the flavor of nut is rumored to";
+			mes "restore half of HP and SP at once.";
+			next;
+			mes "[Saphien Layless]";
+			mes "The leaf of Yggdrasil which is filled with vital force is rumored to";
+			mes "revive the dead, bringing them back to this world.";
+			next;
+			mes "[Saphien Layless]";
+			mes "Lastly... if by some chance you discover a way into Asgard in the future, ";
+			mes "I hope you will find the Yggdrasil tree.";
+			next;
+			mes "[Saphien Layless]";
+			mes "Even though the story of the Yggdrasil tree only exists in myths and legends, ";
+			mes "we Sages are obligated to discover the truth of the Yggdrasil tree.";
+			next;
+			mes "[Saphien Layless]";
+			mes "That is the end of today's class.";
+			mes "Please record the articles you've learned today, and try to remember as much as you can.";
+			next;
+			mes "[Saphien Layless]";
+			mes "In the next class, you will write a thesis about Yggdrasil...";
+			mes "Please bring the following items to prepare for class.";
+			next;
+			mes "[Saphien Layless]";
+			mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
+			mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
+			mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
+			mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
+			mes "^3355FF1 Empty Bottle^000000 which will be used for holding the squid ink.";
+			next;
+			set SAGE_Q2,0;
+			set SAGE_Q,10;
+			mes "[Saphien Layless]";
+			mes "I will help you to write your thesis when you're ready with all those items.";
+			mes "I am looking forward to the next class with you.";
+			close;
+		}
+	}
+	else if (SAGE_Q == 10) {
+		if (countitem(916) > 0 && countitem(919) > 0 && countitem(1019) > 0 && countitem(1024) > 0 && countitem(713) > 0) {
+			delitem 916,1; //Feather_Of_Birds
+			delitem 919,1; //Animal's_Skin
+			delitem 1019,1; //Wooden_Block
+			delitem 1024,1; //Chinese_Ink
+			delitem 713,1; //Empty_Bottle
+			mes "Now, you're writing your thesis.";
+			mes "I will assist you with your writing.";
+			next;
+			mes "..........";
+			next;
+			mes "....................";
+			next;
+			mes ".................................";
+			next;
+			mes ".....There is a ocean around the continent,";
+			mes "The ocean is coiled up by";
+			switch(select("A giant ash tree.:A giant snake Yormungandr.:A giant turtle and elephants.:A giant dragon.")) {
+			case 1:
+				set .@w_point,.@w_point+1;
+				mes "A giant ash tree.";
+				break;
+			case 2:
+				mes "A giant snake Yormungandr.";
+				break;
+			case 3:
+				set .@w_point,.@w_point+1;
+				mes "A giant turtle and elephants.";
+				break;
+			case 4:
+				set .@w_point,.@w_point+1;
+				mes "A giant dragon.";
+				break;
+			}
+			mes "The continent consists of three places such as,";
+			switch(select("Mt.Mjolnir, where spiders live,:Uranos, where titans live,:Utgard, where titans live,:Lutie, the winter land,")) {
+			case 1:
+				set .@w_point,.@w_point+1;
+				mes "Mt.Mjolnir where spiders live,";
+				break;
+			case 2:
+				set .@w_point,.@w_point+1;
+				mes "Uranos where titans live,";
+				break;
+			case 3:
+				mes "Utgard where titans live,";
+				break;
+			case 4:
+				set .@w_point,.@w_point+1;
+				mes "Lutie, the winter land,";
+				break;
+			}
+			switch(select("Midgard, where humans live,:Rune-Midgarts where humans live,:Tritonia, where mermaids live,:Morroc, the desert city,")) {
+			case 1:
+				mes "Midgard, where humans live in,";
+				break;
+			case 2:
+				set .@w_point,.@w_point+1;
+				mes "Rune-Midgarts, where humans live,";
+				break;
+			case 3:
+				set .@w_point,.@w_point+1;
+				mes "Tritonia, where mermaids live,";
+				break;
+			case 4:
+				set .@w_point,.@w_point+1;
+				mes "Morroc, the desert city,";
+				break;
+			}
+			switch(select("Abguard, where gods live.:Asgard, where gods live.:Schwarzwald, where citizens live.:Prontera, the capital of Rune-Midgarts.")) {
+			case 1:
+				set .@w_point,.@w_point+1;
+				mes "Abguard where gods live.";
+				break;
+			case 2:
+				mes "Asgard, where gods live.";
+				break;
+			case 3:
+				set .@w_point,.@w_point+1;
+				mes "Schwarzwald, where citizens live.";
+				break;
+			case 4:
+				set .@w_point,.@w_point+1;
+				mes "Prontera, the capital of Rune-Midgarts.";
+				break;
+			}
+			mes "The continent consists of the three places stated above.";
+			next;
+			if (.@w_point > 0) {
+				mes "[Saphien Layless]";
+				mes "..." + strcharinfo(0) + ", have you lost your mind?";
+				mes "Your work is too poor to be considered as a thesis!";
+				next;
+				mes "[Saphien Layless]";
+				mes "I don't think you can submit your work to the dean.";
+				mes "Go study harder and try again!";
+				close;
+			}
+			mes ".....as we studied from the last class,";
+			mes "Yggdrasil is...";
+			switch(select("A giant ash tree.:A fabulous Mastella tree.:A giant willow.:A giant dead branch.")) {
+			case 1:
+				mes "A giant ash tree.";
+				break;
+			case 2:
+				set .@w_point,.@w_point+1;
+				mes "A fabulous Mastella tree.";
+				break;
+			case 3:
+				set .@w_point,.@w_point+1;
+				mes "A giant willow.";
+				break;
+			case 4:
+				set .@w_point,.@w_point+1;
+				mes "A giant dead branch.";
+				break;
+			}
+			mes "The root of Yggdrasil is divided into 3 parts. Those parts reach to 3 places...";
+			switch(select("Schwarzwald, Jotunnheim, Niflheim.:Midgard, Jotunnheim, Naffleheim.:Asgard, Jotunnheim, Naffleheim.:Asgard, Jotunnheim, Niflheim.")) {
+			case 1:
+				set .@w_point,.@w_point+1;
+				mes "Schwarzwald, Jotunnheim, Niflheim.";
+				break;
+			case 2:
+				set .@w_point,.@w_point+1;
+				mes "Midgard, Jotunnheim, Naffleheim.";
+				break;
+			case 3:
+				set .@w_point,.@w_point+1;
+				mes "Asgard, Jotunnheim, Naffleheim.";
+				break;
+			case 4:
+				mes "Asgard, Jotunnheim, Niflheim.";
+				break;
+			}
+			mes "One who has a Seed of Yggdrasil,";
+			switch(select("can be cured from all the abnormal statuses.:can restore full HP and SP at once.:can restore half of total HP and SP.:can be cured from Silence, Curse and Chaos.")) {
+			case 1:
+				set .@w_point,.@w_point+1;
+				mes "can be cured from all the abnormal statuses.";
+				break;
+			case 2:
+				set .@w_point,.@w_point+1;
+				mes "can restore full HP and SP at once.";
+				break;
+			case 3:
+				mes "can restore half of total HP and SP.";
+				break;
+			case 4:
+				set .@w_point,.@w_point+1;
+				mes "can be cured from Silence, Curse and Chaos.";
+				break;
+			}
+			next;
+			if (.@w_point > 0) {
+				mes "[Saphien Layless]";
+				mes "..." + strcharinfo(0) + ", have you lost your mind?";
+				mes "Your work is too poor to be considered as a thesis!";
+				next;
+				mes "[Saphien Layless]";
+				mes "I don't think you can submit your work to the dean.";
+				mes "Go study harder and try again!";
+				close;
+			}
+			mes "..........";
+			next;
+			mes "....................";
+			next;
+			mes ".................................";
+			next;
+			set SAGE_Q,15;
+			mes "[Saphien Layless]";
+			mes "Oh, did you finish already? Well done.";
+			mes "Please handle this with care, because you won't be able to do this ever again.";
+			getitem 1550,1; //Book
+			next;
+			mes "[Saphien Layless]";
+			mes "I assume you're ready to submit your work to the dean.";
+			mes "Whether you will pass the test or not is his decision.";
+			close;
+		}
+		else {
+			mes "I am not sure that you're ready to write a thesis.";
+			mes "I am afraid to say I already informed you of what you need.";
+			next;
+			mes "[Saphien Layless]";
+			mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
+			mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
+			mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
+			mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
+			mes "^3355FF1 Empty Bottle^000000 which will be used for holding squid ink.";
+			next;
+			mes "[Saphien Layless]";
+			mes "I will assist you in writing your thesis.";
+			mes "Please bring all those items with you.";
+			close;
+		}
+	}
+	else if (SAGE_Q == 15) {
+		mes "Huh? Aren't you supposed to head over to the dean?";
+		mes "If you've finished writing your thesis, please bring it to the dean.";
+		next;
+		mes "[Saphien Layless]";
+		mes "You can have only one chance to write your thesis before you become a Sage.";
+		mes "So please move on.";
+		close;
+	}
+	else {
+		mes "I am not sure if you have business with me, but please come back later.";
+		mes "I have some issues to think about..";
+		close;
+	}
 }
 
-yuno_in03,62,176,3	script	History Professor	109,{
-	if(BaseJob == Job_Sage) goto L_Menu2_2;
-	if(BaseJob != Job_Mage) goto L_Menu1_1;
-	if(SAGE_Q == 11) goto L_Menu2_1;
-	mes "[Sapien]";
-	mes "You don't seem sure of your intended direction of study.";
-	mes "Perhaps you should consider it...";
-	close;
-L_Menu1_1:
-	mes "[Sapien]";
-	mes "Yes, I teach history.";
-	next;
-	mes "[Sapien]";
-	mes "As the present fades into memory, it becomes the past.";
-	mes "The kwoledge we have acquired in the past is the bridge between the present and the future.";
-	next;
-	mes "[Sapien]";
-	mes "You should study your own past, too.";
-	mes "By understanding what's happened to you already,";
-	mes "you can blaze a trail into the future unhindered by unresolved problems.";
-	close;
-L_Menu2_1:
-	mes "[Sapien]";
-	mes "What are you doing?";
-	mes "Hurry up and show the Headmaster your thesis before you lose it!";
-	close;
-L_Menu2_2:
-	mes "[Sapien]";
-	mes "Yes...?";
-	mes "Ah, it's a former student here.";
-	mes "Congratulations on graduating.";
-	next;
-	mes "[Sapien]";
-	mes "The present can only be understood by understanding the past.";
-	mes "Such understanding allows us to envision our future.";
-	next;
-	mes "[Sapien]";
-	mes "You should study your own past, too.";
-	mes "By understanding what's happened to you already,";
-	mes "you can blaze a trail into the future unhindered by unresolved problems.";
-	close;
+yuno_in03,32,102,1	script	Biology Professor#sa	755,{
+	mes "[Lucius Celsus]";
+	if (BaseJob == Job_Mage) {
+		if (BaseJob == Job_Sage) {
+			mes "What is your business with me?";
+			mes "You must make a reservation a week in advance if you have any questions.";
+			next;
+			mes "[Lucius Celsus]";
+			mes "You don't know how busy person I am...don't you?";
+			mes "If you're a Sage, you're supposed to know about me by now.";
+			next;
+			mes "[Lucius Celsus]";
+			mes "You have too much time on your hands. Go explore some dungeons.";
+			mes "I think it will be more helpful than wasting your time on me.";
+		}
+		else if (BaseJob == Job_Novice) {
+			mes "What brings you to me, kid?";
+			next;
+			mes "[Lucius Celsus]";
+			mes "You'd better go out and play with your pals. ";
+			mes "This is not a place where you can fool around.";
+		}
+		else {
+			mes "Hmm? What brings you to me? Are you interested in watching monsters?";
+			next;
+			mes "[Lucius Celsus]";
+			mes "You're allowed to watch. However, do not disturb them by making any fuss.";
+			mes "And keep your hands off, some of these guys are way too dangerous to touch.";
+			next;
+			mes "[Lucius Celsus]";
+			mes "By the way, if you catch any rare monsters in future, let me know.";
+			mes "I am willing to purchase those at any cost.";
+		}
+		close;
+	}
+	if (SAGE_Q == 11) {
+		if (SAGE_Q2 == 0) {
+			mes "Welcome to my class, did you earn good results in the practical exam?";
+			mes "My name is Lucius Celsus, the expert of Biology.";
+			next;
+			mes "[Lucius Celsus]";
+			mes "Huh...how rude of you! You're expected to introduce yourself to me as soon as I greet you!";
+			mes "What is your name, young one?";
+			next;
+			select(strcharinfo(0));
+			mes "[Lucius Celsus]";
+			mes "A fine name. It's nice to meet you.";
+			mes "So, are you aware of the subject you're studying?";
+			next;
+			mes "[Lucius Celsus]";
+			mes "As you know, your topic of study is monsters.";
+			mes "How many times have you fought with monsters?";
+			next;
+			if (select("Well, I can't even count.:A few times, I guess...") == 1) {
+				mes "[Lucius Celsus]";
+				mes "Oh shut up, you brat. Don't be so sure about yourself.";
+				mes "Even if you have much experience with monsters, you will have a hard time comprehending my lecture.";
+			}
+			mes "[Lucius Celsus]";
+			mes "Yes, that's what I guessed about you. You're just book smart.";
+			mes "However, I am sure you will encounter most of the monsters mentioned in my lecture.";
+			next;
+			set sage_m4,rand(1,3);
+			mes "[Lucius Celsus]";
+			mes "Let's get started.";
+			mes "Make sure you're ready for the practical examination during my lecture.";
+			next;
+			if (sage_m4 == 1) {
+				set SAGE_Q2,1;
+				mes "[Lucius Celsus]";
+				mes "Go bring the following items to me.";
+				mes "5 ^3355FFTentacle^000000,";
+				mes "5 ^3355FFSingle Cell^000000,";
+				mes "5 ^3355FFFish Tail^000000.";
+			}
+			else if (sage_m4 == 2) {
+				set SAGE_Q2,2;
+				mes "[Lucius Celsus]";
+				mes "Go bring the following items to me.";
+				mes "5 ^3355FFNipper^000000,";
+				mes "5 ^3355FFClam Flesh^000000,";
+				mes "5 ^3355FFHeart of Mermaid^000000.";
+			}
+			else {
+				set SAGE_Q2,3;
+				mes "[Lucius Celsus]";
+				mes "Go bring following items to me.";
+				mes "5 ^3355FFTendon^000000,";
+				mes "5 ^3355FFNipper^000000,";
+				mes "5 ^3355FFSharp Scale^000000.";
+			}
+			next;
+			mes "[Lucius Celsus]";
+			mes "I will proceed with the class when you bring those to me.";
+			mes "Have fun.";
+			close;
+		}
+		else if (SAGE_Q2 >= 1 && SAGE_Q2 <=3) {
+			switch(SAGE_Q2) {
+			case 1: setarray .@items[0],962,1052,1023; break;
+			//Nipper, Clam Flesh, Heart of Mermaid
+			case 2: setarray .@items[0],960,966,950; break;
+			//Tendon, Nipper, Sharp Scale
+			case 3: setarray .@items[0],1050,960,963; break;
+			}
+			if (countitem(.@items[0]) > 4 && countitem(.@items[1]) > 4 && countitem(.@items[2]) > 4) {
+				mes "You showed great effort to gather all of those.";
+				mes "Well, I am not sure if you gathered them by yourself or bought them from shops...";
+				next;
+				mes "[Lucius Celsus]";
+				mes "Somehow the monsters that drop those items have something in common.";
+				mes "Can you tell me what that similarity is?";
+				next;
+				switch(select("They possess water property.:They are fishes.:They are aggressive.:Um...they monsters.")) {
+				case 1:
+					mes "[Lucius Celsus]";
+					mes "Yes, they possess water property and at the same time they are fishes.";
+					mes "Most fish class monsters live underwater, so they are attributed with the water property.";
+					break;
+				case 2:
+					mes "[Lucius Celsus]";
+					mes "Yes, they possess water property and at the same time they are fishes.";
+					mes "Most fish class monsters live underwater, so they are attributed with the water property.";
+					break;
+				case 3:
+					set sage_m4,4;
+					mes "[Lucius Celsus]";
+					mes "...I didn't know Phens were aggressive nowadays?";
+					mes "Or do Marina and Plankton team up to start a fight with you?";
+					next;
+					mes "[Lucius Celsus]";
+					mes "All the monsters from which you obtained these items are not agressive... get a grip.";
+					mes "They are all fishes and possess water property.";
+					break;
+				case 4:
+					set sage_m4,4;
+					mes "[Lucius Celsus]";
+					mes "What...! What are you here for!? You are here to study about specific monsters, microcephalic moron!";
+					mes "Sigh...they are all fishes and possess water property.";
+					break;
+				}
+				next;
+				mes "[Lucius Celsus]";
+				mes "Not all fish class monsters possess water property, but most of them do.";
+				mes "So which kind of magic would work best on most fish class monsters?";
+				next;
+				switch(select("Lightening Bolt.:Fire Bolt.:Thunder Storm.:Frost Diver.")) {
+				case 1:
+					mes "[Lucius Celsus]";
+					mes "That's right, Lightening Bolt, which possesses the wind property, works best on water property monsters.";
+					mes "Although you might want to be careful of monsters that recognize magic casting.";
+					break;
+				case 2:
+					set sage_m4,4;
+					mes "[Lucius Celsus]";
+					mes "What? Fire Bolt! Fire cannot beat water, you imbecile!";
+					mes "Most fishes are attributed with the water property. Therefore, they are weak to wind property magic spells. Don't you get it?";
+					break;
+				case 3:
+					mes "[Lucius Celsus]";
+					mes "Yeah, Thunder Storm spell is fine... it's a wind property spell.";
+					mes "However, you will be in trouble if you use the spell in a poorly chosen spot.";
+					break;
+				case 4:
+					set sage_m4,4;
+					mes "[Lucius Celsus]";
+					mes "I can't fathom such stupidity! This question asks you to choose a property that counters water! Don't you get it?";
+					mes "Logically, any magic spell possessing the water property cannot overcome the water atrribute monsters!";
+					break;
+				}
+				next;
+				mes "[Lucius Celsus]";
+				mes "By the way, although some monsters such as Penomena or Aster are considered to be fish class monsters, ";
+				mes "they have a different property than the others. You'd better be careful with them.";
+				next;
+				mes "[Lucius Celsus]";
+				mes "Okay, let me teach you about insect monsters.";
+				mes "Let's see... hmm... hmm...";
+				next;
+				switch(rand(1,4)) {
+				case 1:
+					set SAGE_Q2,4;
+					mes "5 ^3355FFCobweb^000000,";
+					mes "5 ^3355FFShell^000000,";
+					mes "5 ^3355FFInsect Feeler^000000.";
+					break;
+				case 2:
+					set SAGE_Q2,5;
+					mes "5 ^3355FFHorn^000000,";
+					mes "5 ^3355FFSnail's Shell^000000,";
+					mes "5 ^3355FFMoth Dust^000000.";
+					break;
+				case 3:
+					set SAGE_Q2,6;
+					mes "5 ^3355FFMantis Scythe^000000,";
+					mes "5 ^3355FFWorm Peeling^000000,";
+					mes "5 ^3355FFRainbow Shell^000000.";
+					break;
+				case 4:
+					set SAGE_Q2,7;
+					mes "5 ^3355FFCobweb^000000,";
+					mes "5 ^3355FFMantis Scythe^000000,";
+					mes "5 ^3355FFSolid Shell^000000.";
+				}
+				next;
+				mes "[Lucius Celsus]";
+				mes "I will proceed with the class when you bring those to me.";
+				mes "Have fun.";
+				close;
+			}
+			mes "What, you already forgot what I told you just a minute before?";
+			mes "What a nusance... listen carefully this time.";
+			next;
+			mes "[Lucius Celsus]";
+			mes "5 ^3355FF"+getitemname(.@items[0])+"^000000,";
+			mes "5 ^3355FF"+getitemname(.@items[1])+"^000000,";
+			mes "5 ^3355FF"+getitemname(.@items[2])+"^000000,";
+			close;
+		}
+		else if (SAGE_Q2 >= 4  && SAGE_Q2 <= 7) {
+			switch(SAGE_Q2) {
+			case 4: setarray .@items[0],1025,935,928; break;
+			//Horn, Snail's Shell, Moth Dust
+			case 5: setarray .@items[0],947,946,1057; break;
+			//Mantis Scythe, Worm Peeling, Rainbow Shell
+			case 6: setarray .@items[0],1031,955,1013; break;
+			//Cobweb, Mantis Scythe, Solid Shell
+			case 7: setarray .@items[0],1025,1031,943; break;
+			}
+			if (countitem(.@items[0]) > 4 && countitem(.@items[1]) > 4 && countitem(.@items[2]) > 4) {
+				mes "Well done. So, did you watch insects while gathering those items?";
+				mes "Oh well, I believe you did a good job with the task.";
+				next;
+				mes "[Lucius Celsus]";
+				mes "Insect class monsters do not share the same property most of the time, ";
+				mes "You must think twice before you cast a magic spell on an insect.";
+				next;
+				mes "[Lucius Celsus]";
+				mes "It's remarkable that insects can detect hidden objects.";
+				mes "Therefore, any hiding skill such as the Hiding skill or Cloaking skill will not work on insect monsters.";
+				next;
+				mes "[Lucius Celsus]";
+				mes "Some insects form a group and live together.";
+				mes "They are controlled by the head of the group...";
+				next;
+				mes "[Lucius Celsus]";
+				mes "For instance, Maya the queen ant...";
+				mes "Mistress, the queen of hornets,";
+				mes "or Golden Thiefbug, the king of thiefbugs...";
+				next;
+				mes "[Lucius Celsus]";
+				mes "You cannot beat those boss monsters alone, ";
+				mes "you'd better form a party if you want to fight with them.";
+				next;
+				mes "[Lucius Celsus]";
+				mes "That's the end of my class...it's time for you to write a thesis.";
+				mes "Bring me following items for writing the thesis.";
+				next;
+				mes "[Lucius Celsus]";
+				mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
+				mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
+				mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
+				mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
+				mes "^3355FF1 Empty Bottle^000000 which will be used for holding squid ink.";
+				next;
+				set SAGE_Q2,0;
+				set SAGE_Q,12;
+				mes "[Lucius Celsus]";
+				mes "I will help you in writing the thesis when you bring all of those items.";
+				mes "You're almost there. Isn't learning easy?";
+				close;
+			}
+			mes "What, you already forgot what I told you?";
+			mes "What a nuisance...listen carefully this time.";
+			next;
+			mes "[Lucius Celsus]";
+			mes "5 ^3355FF"+getitemname(.@items[0])+"^000000,";
+			mes "5 ^3355FF"+getitemname(.@items[1])+"^000000,";
+			mes "5 ^3355FF"+getitemname(.@items[2])+"^000000,";
+			close;
+		}
+		mes "Zzz...Zzz...";
+		close;
+	}
+	else if (SAGE_Q == 12) {
+		if (countitem(916) > 0 && countitem(919) > 0 && countitem(1019) > 0 && countitem(1024) > 0 && countitem(713) > 0) {
+			delitem 916,1; //Feather_Of_Birds
+			delitem 919,1; //Animal's_Skin
+			delitem 1019,1; //Wooden_Block
+			delitem 1024,1; //Chinese_Ink
+			delitem 713,1; //Empty_Bottle
+			mes "Hmph. Lucky brat brought all of the items.";
+			mes "Well, I don't expect you to write an outrageously great thesis though...";
+			next;
+			mes "[Lucius Celsus]";
+			mes "Well, if you really want to write it by yourself, I can let you handle it but...";
+			mes "I will give you a work of staggering genius. Just make a copy of it under your name.";
+			next;
+			mes "[Lucius Celsus]";
+			mes "You got a problem with that? Tough, that's my style.";
+			mes "Just do what I say.";
+			next;
+			mes "..........";
+			next;
+			mes "....................";
+			next;
+			mes ".................................";
+			next;
+			select(".....Monsters vary by physical appearance,");
+			mes ".....Monsters vary by physical appearance,";
+			select("...and possess various elemental properties.");
+			mes "...and possess various elemental properties.";
+			select("You must be aware of each monster's properties,");
+			mes "You must be aware of each monster's properties,";
+			select("...and be aware that certain spells work differently on different monsters.");
+			mes "...and be aware that certain spells work differently on different monsters.";
+			select("You must be especially careful of holy property and shadow property monsters.");
+			mes "You must be especially careful of holy property and shadow property monsters.";
+			select("These monsters are most dangerous, though occasionally cute.");
+			mes "These monsters are most dangerous.";
+			next;
+			mes "..........";
+			next;
+			mes "....................";
+			next;
+			mes ".................................";
+			next;
+			set SAGE_Q,15;
+			mes "[Lucius Celsus]";
+			mes "Are you done? Okay, then it's over.";
+			mes "You won't be able to write another thesis again, handle this with care.";
+			getitem 1550,1; //Book
+			next;
+			mes "[Lucius Celsus]";
+			mes "Show this masterpiece to the dean.";
+			mes "Then, he will let you graduate from the academy. See you.";
+			close;
+		}
+		else {
+			mes "What, are you sure that you're ready? No, I don't think so.";
+			mes "Oh well... listen carefully this time.";
+			next;
+			mes "[Lucius Celsus]";
+			mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
+			mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
+			mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
+			mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
+			mes "^3355FF1 Empty Bottle^000000 which will be used for holding squid ink.";
+			next;
+			mes "[Lucius Celsus]";
+			mes "You have been doing fine, I guess you can do this without a problem.";
+			mes "Go get them. Hurry up.";
+			close;
+		}
+	}
+	else if (SAGE_Q == 15) {
+		mes "What are you doing here, Go show your thesis to the dean!";
+		mes "Don't wasn't any more time here.";
+		next;
+		mes "[Lucius Celsus]";
+		mes "It seems you have too much time on your hands. Okay, I will assign you some tasks.";
+		mes "Hahaha, did you say no? Alright then, fine. Scram.";
+		close;
+	}
+	else {
+		mes "Wah~! My brain is gonna blow up soon! Why must I have to prepare all of these things?!";
+		mes "Who are you?! Don't disturb me, I'm busy!!";
+		next;
+		mes "[Lucius Celsus]";
+		mes "If you just want to watch monsters here, fine with me...";
+		mes "Just don't ask me any questions.";
+		close;
+	}
 }
 
-yuno_in03,105,177,4	script	Placement Test Professor	754,{
-	if(BaseJob == Job_Sage) goto L_Menu3_4;
-	if(BaseJob != Job_Mage) goto L_Menu1_1;
-	if(SAGE_Q == 11) goto L_Menu3_3;
-	if(SAGE_Q >= 6) goto L_Menu3_2;
-	if(SAGE_Q == 3) goto L_Menu1_2;
-	if(SAGE_Q == 4) goto L_Menu2_1;
-	if(SAGE_Q == 5) goto L_Menu3_1;
-	mes "[Kreitos]";
-	mes "You have that look in your eye...";
-	mes "You want to be a Sage, I take it.";
-	next;
-	mes "[Kreitos]";
-	mes "You need to formally enroll in the Academy before I can help you any further.";
-	close;
-L_Menu1_1:
-	mes "[Kreitos]";
-	mes "Oh, you're not interested in our brand of magic?";
-	mes "That's alright...";
-	next;
-	mes "[Kreitos]";
-	mes "Anyone who teaches others and has a good heart is of value to society.";
-	mes "Please keep that in mind.";
-	close;
-L_Menu1_2:
-	set SAGE_Q,4;
-	set sagecheck,10;
-	mes "[Kreitos]";
-	mes "It looks like you've enrolled in the Shubaichul Magic Academy.";
-	mes "Is that right?";
-	next;
-	mes "[Kreitos]";
-	mes "So, let me find your paperwork...";
-	mes "You're " + strcharinfo(0) + ",";
-	mes "right?";
-	mes "Let's start the placement test.";
-	next;
-		mes "[Kreitos]";
-		mes "This test consists of twenty questions concerning the entire world.";
-		mes "If you score at least 80 points, you'll be placed in our program.";
-		mes "Each correct answer is worth 5 points.";
-		next;
-		mes "[Kreitos]";
-		mes "If you cancel, you'll have to start over, so be careful.";
-		next;
-		goto L_Menu2_2;
-	L_Menu2_1:
-		mes "[Kreitos]";
-		mes "Are you ready to try again?";
-		mes "Have you studied hard?";
-		next;
-		mes "[Kreitos]";
-		mes "The passing grade is as before.";
-		mes "You need to score 80 points, with each question being worth 5 points.";
-		next;
-		mes "[Kreitos]";
-		mes "So, let's get started.";
-		mes "Give it your best effort.";
-		mes "As before, if you cancel,";
-		mes "you'll have to start over.";
-		next;
-	L_Menu2_2:
-
-		set @sage_test2,0;
-		set @sage_test1,rand(3);
-		if (@sage_test1 == 1) goto L_Test2_1;
-		if (@sage_test1 == 2) goto L_Test3_1;
-
-//==================================
-//Written Test: Route 1.
-//==================================
-			mes "1. Which one isn't sold in Morocc's jewel shop?";
-			next;
-			menu "Topaz",L_Test1_1,"Garnet",-,"Diamond",L_Test1_1,"Sapphire",L_Test1_1;
-			set @sage_test2,@sage_test2+5;
-			goto L_Test1_1;
-		L_Test1_1:
-			mes "2. In which town can you not buy monster food?";
-			next;
-			menu "Prontera",L_Test1_2,"Morocc",L_Test1_2,"Aldebaran",-,"Alberta",L_Test1_2;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_2:
-			mes "3. Which town is closest to the forest maze?";
-			next;
-			menu "Prontera",-,"Morocc",L_Test1_3,"Geffen",L_Test1_3,"Payon",L_Test1_3;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_3:
-			mes "4. Which of these monsters is of a different race than the other three?";
-			next;
-			menu "Muka",L_Test1_4,"Drops",L_Test1_4,"Plankton",L_Test1_4,"Penomena",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_4:
-			mes "5.  All these monsters except one have the same elemental affinity.";
-			mes "Which one has the different affinity?";
-			next;
-			menu "Dokebi",L_Test1_5,"Isis",L_Test1_5,"Giearth",-,"Deviruchi",L_Test1_5;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_5:
-			mes "6. Which one differs in approximate size from the others?";
-			next;
-			menu "Male Thief Bug",L_Test1_6,"Horn",L_Test1_6,"Metaller",L_Test1_6,"Argos",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_6:
-			mes "7.  Which of these monsters doesn't drop the Iggydrasil leaf?";
-			next;
-			menu "Marduk",-,"Baphomet Jr.",L_Test1_7,"Angeling",L_Test1_7,"Wander Man",L_Test1_7;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_7:
-			mes "8.  Which of these people isn't related to someone who can perform a class change to priest?";
-			next;
-			menu "Peter S. Alberto",-,"Thomas Bishop",L_Test1_8,"Windser Banedict",L_Test1_8,"Sesil Magrita",L_Test1_8;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_8:
-			mes "9. Which doesn't live in Morocc?";
-			next;
-			menu "Muda Armani",L_Test1_9,"Aragham",L_Test1_9,"Antonio",-,"Abldul",L_Test1_9;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_9:
-			mes "10.  Which Kapra has the pretty blue hair?";
-			next;
-			menu "Pavianne",-,"Debril",L_Test1_10,"Claris",L_Test1_10,"Tayelin",L_Test1_10;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_10:
-			mes "11.  Which one isn't necessary to unlock the Fire Wall skill?";
-			next;
-			menu "Firebolt Lv4",L_Test1_11,"Napalm Beat Lv4",-,"Fireball Lv5",L_Test1_11,"Sight Lv1",L_Test1_11;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_11:
-			mes "12.  When the skill 'SP Restoration Lv6' is active, how much SP does the skill restore every ten seconds?";
-			next;
-			menu "14 sp",L_Test1_12,"16 sp",L_Test1_12,"18 sp",-,"21 sp",L_Test1_12;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_12:
-			mes "13. If you are a magician with job lv. 33, how many additional stat points will you get for int?";
-			next;
-			menu "7",L_Test1_13,"6",L_Test1_13,"5",L_Test1_13,"4",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_13:
-			mes "14.  If the Archer skill 'Concentration Up Lv5' is active, how much SP will it consume?";
-			next;
-			menu "45 / 140sec",-,"50 / 140sec",L_Test1_14,"45 / 150sec",L_Test1_14,"50 / 150sec",L_Test1_14;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_14:
-			mes "15. Which one isn't necessary to unlock the Blacksmith skill 'Maximize Power'?";
-			next;
-			menu "Hilt Binding",L_Test1_15,"Skin Tempering",-,"Hammer Fall",L_Test1_15,"Weapon Perfection",L_Test1_15;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_15:
-			mes "16. What is the defense power and supplemental ability of a Cute Ribbon?";
-			next;
-			menu "0 / SP +20",L_Test1_16,"0 / SP +30",L_Test1_16,"1 / SP +20",-,"1 / SP +30",L_Test1_16;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_16:
-			mes "17. Which class can't equip a Saint's Robe?";
-			next;
-		//Swordsmen can't equip it either as of this writing.
-			menu "Swordsman",-,"Merchant",L_Test1_17,"Thief",-,"Acolyte",L_Test1_17;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_17:
-			mes "18. Which status ailment can't be removed with a Green Potion?";
-			next;
-			menu "Mute",L_Test1_18,"Poison",L_Test1_18,"Blind",L_Test1_18,"Cursed",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_18:
-			mes "19. What is the name of the ancient kingdom from which Geffen descends?";
-			next;
-			menu "Gefin",L_Test1_19,"Geffenia",-,"Gefdoria",L_Test1_19,"Gefria",L_Test1_19;
-			set @sage_test2,@sage_test2+5;
-		L_Test1_19:
-			mes "20. Which tree is said to be the world's root?";
-			next;
-			menu "Yggdrasil",-,"Idrasil",L_Menu2_3,"Master",L_Menu2_3,"Old Tree",L_Menu2_3;
-			set @sage_test2,@sage_test2+5;
-			goto L_Menu2_3;
-	//==================================
-	//Written Test: Route 2.
-	//==================================
-		L_Test2_1:
-			mes "1. Which isn't sold in Geffen's magic shop?";
-			next;
-			menu "Mantle",-,"Wand",L_Test2_2,"Circlet",L_Test2_2,"Silver Robe",L_Test2_2;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_2:
-			mes "2. Which town doesn't sell blades?";
-			next;
-			menu "Prontera",L_Test2_3,"Izlude",L_Test2_3,"Aldebaran",-,"payon",L_Test2_3;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_3:
-			mes "3. Which town is nearest to Glast Heim?";
-			next;
-			menu "Prontera",L_Test2_4,"Geffen",-,"Morocc",L_Test2_4,"Payon",L_Test2_4;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_4:
-			mes "4.  Which monster's type differs from the other three?";
-			next;
-			menu "Aster",L_Test2_5,"Marc",L_Test2_5,"Marse",L_Test2_5,"Marin",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_5:
-			mes "5. Which monster's elemental affinity is different from the others?";
-			next;
-			menu "Desert Wolf Babe",L_Test2_6,"Smokie",-,"Picky",L_Test2_6,"Choco",L_Test2_6;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_6:
-			mes "6. Which monster is in a different size class than the others?";
-			next;
-			menu "Drake",-,"Wraith",L_Test2_7,"Evil Druid",L_Test2_7,"Khalitzburg",L_Test2_7;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_7:
-			mes "7. Which monster doesn't drop Phracon?";
-			next;
-			menu "Pupa",L_Test2_8,"Condor",-,"Savage Baby",L_Test2_8,"Desert Wolf Babe",L_Test2_8;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_8:
-			mes "8. Who isn't involved in the Blacksmith class change?";
-			next;
-// =========================
-// Acording To mRO Site And eAthena Blacksmith Script the following ppl looking like ppl listed here are:
-// - Baisulitst - looks like some1 listed by mRO
-// - Wickebine - mRO has him as option listed
-// - Gromgast - mRO has him as option listed
-// - Mitmayer - translator has him listed as option
-// == Conclusion == I took the following:
-// =========================
-			menu "Baisulitst",L_Test2_9,"Wickebine",L_Test2_9,"Barkdale",-,"Mitmayer",L_Test2_9;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_9:
-			mes "9.  Who doesn't live in Aldebaran?";
-			next;
-			menu "RS125",L_Test2_10,"Maasaru",-,"Munster",L_Test2_10,"Isenberg",L_Test2_10;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_10:
-			mes "10. Who is the youngest person in the Kapra organization?";
-			next;
-			menu "Deflute",L_Test2_11,"Claris",L_Test2_11,"Tayelin",L_Test2_11,"Curly Sue",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_11:
-			mes "11. When you use the skill 'Safety Wall Lv6', how much SP is consumed and how many attacks will it block?";
-			next;
-			menu "SP 40, 6bl",L_Test2_12,"SP 35, 6bl",L_Test2_12,"SP 35, 7bl",L_Test2_12,"SP 40, 7bl",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_12:
-			mes "12. When you use 'Napalm Beat Lv6', what is the attack power relative to MATK?";
-			next;
-			menu "1.2x MATK",L_Test2_13,"1.3x MATK",-,"1.4x MATK",L_Test2_13,"1.5x MATK",L_Test2_13;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_13:
-			mes "13. Which one catalyzes the reaction of Liquid #4 during the Magician class change test?";
-			next;
-			menu "Blue Gemstone",L_Test2_14,"Red Gemstone",L_Test2_14,"Orange Gemstone",L_Test2_14,"Carat Diamond",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_14:
-			mes "14. What is the damage multiplier and SP consumption for 'Bash Lv6'?";
-			next;
-			menu "250% / 8",L_Test2_15,"280% / 8",L_Test2_15,"280% / 15",-,"310% / 15",L_Test2_15;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_15:
-			mes "15.  Which isn't necessary to unlock the Hunter skill 'Claymore Trap'?";
-			next;
-			menu "Remove Trap",-,"Land Mine",L_Test2_16,"Ankle Snare",L_Test2_16,"Flash",L_Test2_16;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_16:
-			mes "16. What is the defense power and supplemental ability of a Veil?";
-			next;
-			menu "0 / MDEF +3",L_Test2_17,"0 / MDEF +5",-,"1 / MDEF +3",L_Test2_17,"1 / MDEF +5",L_Test2_17;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_17:
-			mes "17.  Which class can't equip a Coat?";
-			next;
-			menu "Swordsman",L_Test2_18,"Magician",L_Test2_18,"Thief",L_Test2_18,"Novice",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_18:
-			mes "18. Which item isn't blue in color?";
-			next;
-			menu "Alcohol",L_Test2_19,"Detrimindexta",-,"Karvodailnirol",L_Test2_19,"Blue Herb",L_Test2_19;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_19:
-			mes "19. Which item did the god Odin use to create the world?";
-			next;
-//			menu "Yomir's Heart",L_Test2_20,"Yomir's Nail",-,"Yomir's Tooth",L_Test2_20,"Yomir's Stuff",L_Test2_20;
-// All answers correct untill i know the real answer, only Stuff is wrong cause that NOT it
-			menu "Yomir's Heart",-,"Yomir's Nail",-,"Yomir's Tooth",-,"Yomir's Stuff",L_Test2_20;
-			set @sage_test2,@sage_test2+5;
-		L_Test2_20:
-			mes "20. Which metal can change the fate of the world?";
-			next;
-			menu "Envertacon",L_Menu2_3,"Emperium",-,"Enbera",L_Menu2_3,"Phracon",L_Menu2_3;
-			set @sage_test2,@sage_test2+5;
-			goto L_Menu2_3;
-//==================================
-//Written Test: Route 3.
-//==================================
-		L_Test3_1:
-			mes "1.Which of these items isn't sold at Prontera's knicknack shop?";
-			next;
-			menu "White Plate",L_Test3_2,"Red Frame",L_Test3_2,"Flower",-,"Glass Ball",L_Test3_2;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_2:
-			mes "2. Which town doesn't sell stilettos?";
-			next;
-			menu "Prontera",-,"Morocc",L_Test3_3,"Gefen",L_Test3_3,"Lutie",L_Test3_3;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_3:
-			mes "3. Which town is closest to Turtle Island?";
-			next;
-			menu "Aldebaran",L_Test3_4,"Alberta",-,"Comodo",L_Test3_4,"Izlude",L_Test3_4;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_4:
-			mes "4. Which monster is of a different monster race than the other three?";
-			next;
-			menu "Raggler",L_Test3_5,"Pest",L_Test3_5,"Frilldora",L_Test3_5,"Aster",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_5:
-			mes "5. Which monster has a different elemental affinity than the other three?";
-			next;
-			menu "Mantis",L_Test3_6,"Metaller",-,"Rokker",L_Test3_6,"Horn",L_Test3_6;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_6:
-			mes "6. Which monster is in a different size class than the others?";
-			next;
-			menu "Raydric",-,"Raydric Archer",L_Test3_7,"Wander Man",L_Test3_7,"Dark Flame",L_Test3_7;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_7:
-			mes "7. Which monster doesn't drop alcohol?";
-			next;
-			menu "Horn",L_Test3_8,"Plankton",L_Test3_8,"Poison Spore",-,"Toad",L_Test3_8;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_8:
-			mes "8. Which isn't involved in the Knight class change?";
-			next;
-// =========================
-// Acording To mRO Site And eAthena Knight Script the following ppl looking like ppl listed here
-// =========================
-			menu "James Syracuse",L_Test3_9,"Thomas Bishop",-,"Amy Veattris",L_Test3_9,"Edmond Groster",L_Test3_9;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_9:
-			mes "9. Which of these people doesn't live in Prontera?";
-			next;
-			menu "Nami",L_Test3_10,"Aldefun",-,"Thomas",L_Test3_10,"Hollengrhen",L_Test3_10;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_10:
-			mes "10. Which Kapra wears glasses?";
-			next;
-			menu "Deflute",L_Test3_11,"Tayelin",L_Test3_11,"Leilah",-,"Debril",L_Test3_11;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_11:
-			mes "11. How much SP does it cost to use 'Thunderstorm Lv7'?";
-			next;
-			menu "49",L_Test3_12,"59",-,"69",L_Test3_12,"74",L_Test3_12;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_12:
-			mes "12. If you have 50% of your SP left, how much damage will 'Energy Coat' block and how much SP will be consumed?";
-			next;
-			menu "24% blocked SP1.5% consumed",L_Test3_13,"24% blocked SP2% consumed",L_Test3_13,"18% blocked SP1.5% consumed",L_Test3_13,"18% blocked SP2% consumed",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_13:
-			mes "13. Which element cannot be used in bolt form by a Magician?";
-			next;
-			menu "Water",L_Test3_14,"Earth",-,"Fire",L_Test3_14,"Wind",L_Test3_14;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_14:
-			mes "14. When a thief has the skill 'Double Attack Lv7', what is the trigger probability and attack power multiplier?";
-			next;
-			menu "35% / 120%",L_Test3_15,"35% / 140%",-,"40% / 120%",L_Test3_15,"40% / 140%",L_Test3_15;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_15:
-			mes "15. Which of these isn't necessary to unlock the Priest skill 'Magnus Exorcism'?";
-			next;
-			menu "Divine Protection",-,"Heal",L_Test3_16,"Revive",L_Test3_16,"Aqua Benedicta",L_Test3_16;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_16:
-			mes "16. What is the defense power and supplemental ability of a Bunny Band?";
-			next;
-			menu "1 / LUK +2",L_Test3_17,"1 / LUK +5",L_Test3_17,"2 / LUK +2",-,"2 / LUK +5",L_Test3_17;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_17:
-			mes "17. Which class can't equip armor?";
-			next;
-			menu "Swordsman",L_Test3_18,"Merchant",L_Test3_18,"Thief",L_Test3_18,"Archer",-;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_18:
-			mes "18. Which item completely restores HP and SP?";
-			next;
-			menu "Royal Jelly",L_Test3_19,"Ig Drasil Seed",L_Test3_19,"Ig Drasil Fruit",-,"Master Fruit",L_Test3_19;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_19:
-			mes "19. What's the name of the king of Rune-Midgard?";
-			next;
-			menu "Trisdan III",L_Test3_20,"Tristan III",-,"Traisda III",L_Test3_20,"Trist III",L_Test3_20;
-			set @sage_test2,@sage_test2+5;
-		L_Test3_20:
-			mes "20. Which god do Crusaders serve?";
-			next;
-			menu "Odin",-,"Loki",L_Menu2_3,"Tooru",L_Menu2_3,"Aragamsaree",L_Menu2_3;
-			set @sage_test2,@sage_test2+5;
-
-		L_Menu2_3:
-			mes "[Kreitos]";
-			mes "Are you finished?";
-			mes "Alright, then I'll grade the test.";
-			next;
-			mes "[Kreitos]";
-			mes "Hmmm...";
-			mes "Yes....";
-			next;
-			if (@sage_test2 >= 100) goto L_Menu2_5;
-			if (@sage_test2 < 80) goto L_Menu2_4;
-			mes "[Kreitos]";
-			mes "All done.";
-			mes "You scored " + @sage_test2 + " points.";
-			mes "Looking good.";
-			mes "You've scored highly enough to pass.";
-			next;
-			goto L_Menu2_6;
-		L_Menu2_4:
-			set sagecheck,sagecheck-1;
-			mes "[Kreitos]";
-			mes "All done.";
-			mes "You scored " + @sage_test2 + " points.";
-			mes "......";
-			mes "Sorry, that's not good enough.";
-			next;
-			mes "[Kreitos]";
-			mes "We exepect our students to have command of much information about the world.";
-			mes "Learn some more and come back.";
-                        mes "You can take the test again then.";
+yuno_in03,244,31,3	script	Physics Professor#sa	120,{
+	mes "[Aebecee George]";
+	if (BaseJob != Job_Mage) {
+		if (BaseJob == Job_Sage) {
+			mes "Tee hee, hello there! What brings you here again, sweetie?";
+			mes "Oh, I see... you're just excited because you finally became a Sage? Tee hee~";
+			next;
+			mes "[Aebecee George]";
+			mes "Oh well, although you have become a Sage, you're just doing the same thing, tee hee...we're mages down to the core!";
+			mes "We're way better than any other class because we're pretty good with our heads, you know?";
+			next;
+			mes "[Aebecee George]";
+			mes "Okay, is there anything you want to talk about?";
+			mes "Oh dearie, don't be nervous...where's your sense of adventure?";
+		}
+		else if (BaseJob == Job_Novice) {
+			mes "Well, aren't you the cutest little Novice~";
+			next;
+			mes "[Aebecee George]";
+			mes "What are you doing here, sweetcakes? Do you just come over to see what's in here?";
+			mes "Do you want some candy? Candy, my precious? Tee hee.";
+			next;
+			mes "[Aebecee George]";
+			mes "Oh gosh...Sorry, I thought I had some...";
+			mes "But I've got other treats, you catch my drift?";
+		}
+		else {
+			mes "Hey there, tee hee, how's it going sailor?";
+			next;
+			mes "[Aebecee George]";
+			mes "Did you come here to look around? Huh...?";
+			mes "Well, if you're not here for business, you must be here...";
+			next;
+			mes "[Aebecee George]";
+			mes "...for PLEASURE.";
+			mes "Hey wait! Come back~!";
+		}
+		close;
+	}
+	if (SAGE_Q == 13) {
+		if (SAGE_Q2 == 0) {
+			mes "Hello~? Nice to meet you, tee hee.";
+			mes "Did you come to see me? Oh, you're a student!";
+			next;
+			mes "[Aebecee George]";
+			mes "Tee hee, I am the Professor in charge of you, Abecee George.";
+			mes "So...aren't you happy to be with me, dearie? Aren't you gay? Tee hee~";
+			next;
+			mes "[Aebecee George]";
+			mes "However, before we get start class, I need you to do me...a favor.";
+			mes "Don't be scared, its just an eensy weensy favor. Tee hee~";
+			next;
+			mes "[Aebecee George]";
+			mes "Please bring me ^3355FF30 Stone^000000, that's all.";
+			mes "It's not so hard, isn't it?";
+			next;
+			set SAGE_Q2,1;
+			mes "[Aebecee George]";
+			mes "Why don't you ask a thief pal for help?";
+			mes "We'll start the class when you bring me those stones~ Tee hee~";
 			close;
- 		L_Menu2_5:
-			mes "[Kreitos]";
-			mes "All done.";
-			mes "You scored " + @sage_test2 + " points.";
-			mes "Amazing.  You did wonderfully.";
-			mes "There is no doubt you'll make a great Sage.";
-			next;
-		L_Menu2_6:
-			set SAGE_Q,5;
-			mes "[Kreitos]";
-			mes "Alright.";
-			mes "You've completed the placement test.";
-			mes "Now you need to take the skill test from Professor Hermes.";
+		}
+		else if (SAGE_Q2 == 1) {
+			if (countitem(7049) > 29) {
+				mes "Oh~ how sweet! You brought them all~ thank you~";
+				mes "Oh, can you wait a little bit? I need to do something before we start. Tee hee~";
+				next;
+				mes "[Aebecee George]";
+				mes "Hocus-focus!!";
+				next;
+				mes "[Aebecee George]";
+				mes "Hocus~focus!!";
+				next;
+				mes "[Aebecee George]";
+				mes "Ho~cus~fo~cus!!";
+				next;
+				delitem 7049,30; //Stone
+				mes "[Aebecee George]";
+				mes "Tee hee, you naughty stone~";
+				mes "Only 3 of them worked for me. Tee hee~";
+				next;
+				mes "[Aebecee George]";
+				mes "Here's my other favor to ask of you. Oh, are those tears of...joy?";
+				mes "Oh, I'm sooo excited too! Tee hee~";
+				next;
+				getitem 991,1; //Crystal_Blue
+				getitem 993,1; //Yellow_Live
+				getitem 992,1; //Wind_Of_Verdure
+				mes "[Aebecee George]";
+				mes "I will give you these elemental ores...but...they are not for free.";
+				mes "Whoa there cowboy! Don't pull out so soon~ Listen, tee hee~";
+				set SAGE_Q2,2;
+				next;
+				mes "[Aebecee George]";
+				mes "Please make arrows using these items and bring them to me, pretty please~";
+				mes "50 ^3355FFCrystal Arrow^000000,";
+				mes "50 ^3355FFStone Arrow^000000,";
+				mes "50 ^3355FFWind Arrow^000000.";
+				next;
+				mes "[Aebecee George]";
+				mes "Ask any of your Archer friends if you know any.";
+				mes "I am looking forward to seeing you again, tee hee~";
+				close;
+			}
+			else {
+				mes "You don't have all the items? And here I was, getting all hot and bothered.";
+				mes "Go on, sweetheart, and hurry baaack~";
+				next;
+				mes "[Aebecee George]";
+				mes "I asked you to bring ^3355FF30 Stone^000000.";
+				mes "There are many out there, so you won't have too hard a time getting them~ tee hee.";
+				close;
+			}
+		}
+		else if (SAGE_Q2 == 2) {
+			if (countitem(1754) > 49 && countitem(1756) > 49 && countitem(1755) > 49) {
+				mes "Oh~ how sweet! You brought them all~ Oh thank you~";
+				mes "Well now, let's get down to business. Tee hee~";
+				next;
+				mes "[Aebecee George]";
+				mes "I'll say something, and you just write everything down.";
+				mes "Don't forget to underline the important sentences~";
+				next;
+				mes "[Aebecee George]";
+				mes "Water property magic is sooo strong against the fire property.";
+				mes "Just remember those burly, sexay fire fighters, shall we say, putting out that fire with water. Ooh, wet!";
+				next;
+				mes "[Aebecee George]";
+				mes "Wind property magic totally dominates the water property! Oh, yes~";
+				mes "Think of a hot flash, and by that I mean ligntening, striking a lake. Oh, I'm bad!";
+				next;
+				mes "[Aebecee George]";
+				mes "In terms of strength, magic with earth property goes on top of wind property magic! Ho~~";
+				mes "Just think of how the wind passionately beats against the cliffside near the Lookout Point or Lover's Lane. Tee hee~";
+				next;
+				mes "[Aebecee George]";
+				mes "Magic with fire property is strong against earth property! Tee hee~";
+				mes "Just think of burning wood, sprung from the earth, in a cozy fireplace. On the bearskin, in the dark~";
+				next;
+				mes "[Aebecee George]";
+				mes "...Oh my gosh! Time flies sooo fast!";
+				mes "Let's call it a day, dear, tee hee~";
+				next;
+				delitem 1754,50; //Crystal_Arrow
+				delitem 1756,50; //Stone_Arrow
+				delitem 1755,50; //Arrow_Of_Wind
+				mes "[Aebecee George]";
+				mes "When you come to the next class, bring ^3355FF1 Holy Water^000000~";
+				mes "I hope you have at least one Priest friend. Oh, you don't? Well, it couldn't hurt to get friendly with one.";
+				set SAGE_Q2,3;
+				close;
+			}
+			else {
+				mes "What are you doing here, precious...are you trying to fool me? Tee hee~";
+				mes "I hope you didn't sell the elemental ores I gave you? Naughty naughty~ Don't you know diamonds are a girl's best friend? Tee hee~";
+				next;
+				mes "[Aebecee George]";
+				mes "50 ^3355FFCrystal Arrow^000000,";
+				mes "50 ^3355FFStone Arrow^000000,";
+				mes "50 ^3355FFWind Arrow^000000.";
+				mes "Ask your Archer friend if you have one~ tee hee.";
+				close;
+			}
+		}
+		else if (SAGE_Q2 == 3) {
+			if (countitem(523) > 0) {
+				mes "Oh~ how sweet! You brought some Holy Water~ thanks honey~";
+				mes "Oh righty, we should start class. Tee hee~";
+				next;
+				mes "[Aebecee George]";
+				mes "Just Like last time, I will speak and you just write down everything I say.";
+				mes "Even if you don't understand, just pretend and go with the flow, alright? Tee hee~";
+				next;
+				mes "[Aebecee George]";
+				mes "Water Magic is weak against wind property! Yes, that's right~";
+				mes "Just remember why you don't keep the electric fan around when you're taking a hot bubble bath. Ooh! So electric!";
+				next;
+				mes "[Aebecee George]";
+				mes "Magic with the wind property is weak against earth property!";
+				mes "Think of how the wind can't, shall we say, penetrate a mud facial mask~";
+				next;
+				mes "[Aebecee George]";
+				mes "Magic with earth property is weak against fire property! Tee hee~";
+				mes "Just think of burning wood, sprung from the earth, in a cozy fireplace. On the be--oh? I said that already? Oh poopy.";
+				next;
+				mes "[Aebecee George]";
+				mes "Magic with fire property is weak against water property! Yes~";
+				mes "When things get flaming hot, it's best to splash things in cold water. Don't you agree~?";
+				next;
+				mes "[Aebecee George]";
+				mes "Oh, it's the end of the class~ tee hee.";
+				mes "So? Do you think you've learned a lot? You can thank me, honey!";
+				next;
+				delitem 523,1; //Holy_Water
+				mes "[Aebecee George]";
+				mes "Well, that's it. You can write your thesis with what I've taught you!";
+				mes "Tee hee~ yes! Yes! I am the best teacher in the world! Oh, I am on fire! Tee hee~";
+				set SAGE_Q2,0;
+				set SAGE_Q,14;
+				next;
+				mes "[Aebecee George]";
+				mes "Okay, please gather these items so you can write the thesis, dear~ Tee hee~";
+				mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
+				mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
+				mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
+				mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
+				mes "^3355FF1 Empty Bottle^000000 to keep that Squid Ink from splashing.";
+				next;
+				mes "[Aebecee George]";
+				mes "So get on out there cowboy and hurry back~ Tee hee~";
+				close;
+			}
+			else {
+				mes "What are you doing here, precious...are you playing games? Tee hee.";
+				mes "Oh, poor dear. Did you already forget what I told you? Do you want me to remind you? Tee hee~";
+				next;
+				mes "[Aebecee George]";
+				mes "^3355FF1 Holy Water^000000,";
+				mes "It couldn't hurt to get friendly with an Aco or Priest...tee hee.";
+				close;
+			}
+		}
+		else {
+			mes "So...do you have the time? I'm kidding, girlfriend!";
 			close;
-L_Menu3_1:
-	mes "[Kreitos]";
-	mes "Heh?";
-	mes "Do you love tests so much that you want to take the placement test again?";
-	next;
-	mes "[Kreitos]";
-	mes "Go see Professor Hermes and take the skill test.";
-	mes "Future Sages can't be slacking off.";
-	close;
-L_Menu3_2:
-	mes "[Kreitos]";
-	mes "I'm busy grading other students' exams at the moment.";
-	mes "If you need something, please see me later.";
-	close;
-L_Menu3_3:
-	mes "[Kreitos]";
-	mes "It's great that you finished your thesis, but I don't grade those.";
-	next;
-	mes "[Kreitos]";
-	mes "Show that to Headmaster Keiron.";
-	mes "He'll judge whether or not it's quality warrants your graduation.";
-	close;
-L_Menu3_4:
-	mes "[Kreitos]";
-	mes "You've graduated already?";
-	mes "Do you want to take more classes?";
-	next;
-	mes "[Kreitos]";
-	mes "I know it feels great to have graduated, but you've got to keep learning.";
-	mes "You might burn out if you become complacent and never venture out of the library once in a while.";
-	mes "Danger is exhilerating.";
-	next;
-	mes "[Kreitos]";
-	mes "Don't forget to keep notes about your journies.";
-	mes "They can come in handy when you want to teach others about a subject you've studied.";
-	close;
+		}
+	}
+	else if (SAGE_Q == 14) {
+		if (countitem(916) > 0 && countitem(919) > 0 && countitem(1019) > 0 && countitem(1024) > 0 && countitem(713) > 0) {
+			delitem 916,1; //Feather_Of_Birds
+			delitem 919,1; //Animal's_Skin
+			delitem 1019,1; //Wooden_Block
+			delitem 1024,1; //Chinese_Ink
+			delitem 713,1; //Empty_Bottle
+			mes "Okay~ so its now or never~ tee hee~";
+			mes "I taught you everything I know. Don't be nervous, you'll be okay~";
+			next;
+			mes "..........";
+			next;
+			mes "....................";
+			next;
+			mes ".................................";
+			next;
+			mes ".....Magic spells are varied into 4 elements such as";
+			switch(select("Water, Earth, Fire and Wind.:Earth, Water, Fire and Wind.:Water, Wind, Earth and Fire.")) {
+			case 1:
+				mes "Water, Earth, Fire and Wind.";
+				break;
+			case 2:
+				mes "Earth, Water, Fire and Wind.";
+				break;
+			case 3:
+				mes "Water, Wind, Earth and Fire.";
+				break;
+			}
+			mes "Each property has an opposing property,";
+			switch(select("Magic with wind property is strong against water:Magic with water property is strong against fire:Magic with fire property is strong against earth")) {
+			case 1:
+				mes "Magic with wind property is strong against water";
+				break;
+			case 2:
+				mes "Magic with water property is strong against fire";
+				break;
+			case 3:
+				mes "Magic with fire property is strong against earth";
+				break;
+			}
+			mes "Magic with earth property is strong against wind.";
+			switch(select("However, that does not work on the opposite case :This theory works the same for earth property weapons:Elemental properties are varied by monster types")) {
+			case 1:
+				mes "However, that does not work on the opposite case ";
+				break;
+			case 2:
+				mes "This theory works the same for earth property weapons";
+				break;
+			case 3:
+				mes "Elemental properties are varied by monster types";
+				break;
+			}
+			switch(select("You must be aware of the limit of your ability.:You must apply different types of property by the situation or place.:Red Potion is rumored to taste like strawberries.")) {
+			case 1:
+				mes "You must be aware of the limit of your ability.";
+				break;
+			case 2:
+				mes "You must apply different types of property by the situation or place.";
+				break;
+			case 3:
+				mes "Red Potion is rumored to taste like strawberries.";
+				break;
+			}
+			next;
+			switch(select("The most adorable NPC is YuPi in Prontera:Red Potion is rumored to be made out of Porings:You never know the limits of magic")) {
+			case 1:
+				mes "The most adorable NPC is YuPi in Prontera";
+				break;
+			case 2:
+				mes "Red Potion is rumored to be made out of Porings";
+				break;
+			case 3:
+				mes "You never know the limits of magic";
+				break;
+			}
+			switch(select("Merchant Lady in Morroc is also as cute as YuPi.:Nobody knows why Red Potion tastes like strawberries.:It is not suggested to be too addicted to magic spells.")) {
+			case 1:
+				mes "Merchant Lady in Morroc is also as cute as YuPi.";
+				break;
+			case 2:
+				mes "Nobody knows why Red Potion tastes like strawberries.";
+				break;
+			case 3:
+				mes "It is not suggested to be too addicted to magic spells.";
+				break;
+			}
+			switch(select("If I had a Bunny Band,:If so, what about the taste of White Potion?:Only pertinent uses of magic, as well as rest")) {
+			case 1:
+				mes "If I had a Bunny Band,";
+				break;
+			case 2:
+				mes "If so, what about the taste of White Potion?";
+				break;
+			case 3:
+				mes "Only pertinent uses of magic, as well as rest";
+				break;
+			}
+			switch(select("I would want to give it to her as a present.:I can't even imagine the taste.:will guarantee you a safe battle.")) {
+			case 1:
+				mes "I would want to give it to her as a present.";
+				break;
+			case 2:
+				mes "I can't even imagine the taste.";
+				break;
+			case 3:
+				mes "will guarantee you a safe battle.";
+				break;
+			}
+			switch(select("Although the Bunny Band best fits the Acolyte class:I love this thrilling feeling:Forming a party with people of different classes")) {
+			case 1:
+				mes "Although the Bunny Band best fits the Acolyte class";
+				break;
+			case 2:
+				mes "I love this thrilling feeling";
+				break;
+			case 3:
+				mes "Forming a party with people of different classes";
+				break;
+			}
+			switch(select("I still wonder if the Bunny Band would be perfect for GOD-POING.:I won't be able to drink it even if my HP is less than 1.:is considered the best way to ready for battle.")) {
+			case 1:
+				mes "I still wonder if the Bunny Band would be perfect for GOD-POING.";
+				break;
+			case 2:
+				mes "I won't be able to drink it even if my HP is less than 1.";
+				break;
+			case 3:
+				mes "is considered the best way to ready for battle.";
+				break;
+			}
+			next;
+			mes "..........";
+			next;
+			mes "....................";
+			next;
+			mes ".................................";
+			next;
+			set SAGE_Q,15;
+			mes "[Aebecee George]";
+			mes "Tee hee, so... are you done with your thesis? What do you think of your work? I think you did fine~";
+			mes "Don't forget, this is the first and the last time you'll write a thesis, okay? Tee hee~";
+			getitem 1550,1; //Book
+			next;
+			mes "[Aebecee George]";
+			mes "Okay, now you can show the dean your thesis~";
+			mes "You're almost there~ tee hee.";
+			close;
+		}
+		else {
+			mes "What are you still doing here, sweet cheeks? Tee hee~";
+			mes "Oh, poor dear. Did you already forget what I told you? Do you want me to remind you? Not a problem, tee hee.";
+			next;
+			mes "[Aebecee George]";
+			mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
+			mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
+			mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
+			mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
+			mes "^3355FF1 Empty Bottle^000000 which will be used for holding squid ink.";
+			next;
+			mes "[Aebecee George]";
+			mes "You are supposed to prepare all of those items, aren't you?";
+			mes "Hurry baaack~! Tee hee~";
+			close;
+		}
+	}
+	else if (SAGE_Q == 15) {
+		mes "What are you doing here, dearie? Don't you want to meet the dean and show him your stuff?";
+		mes "Take it from me, boys like him won't wait for you forever, tee hee~";
+		next;
+		mes "[Aebecee George]";
+		mes "I know, I know...you wanna play with little ol' me. But you should become a Sage first.";
+		mes "Please hurry up, tee hee.";
+		close;
+	}
+	else {
+		mes "Well well...what do we have here?";
+		next;
+		mes "[Aebecee George]";
+		mes "You're not a Sage. Pity, sweet thang like yourself...";
+		mes "But seeing as you're not here for business, you must be here for...";
+		next;
+		mes "[Aebecee George]";
+		mes "...PLEASURE. Wait, where are you going, hon?";
+		close;
+	}
 }
 
-//==================================
-//Skill Test Room
-//==================================
-
-job_sage,50,165,4	script	Skill Test Coordinator::jobsage_wroom	700,{
-	mes "[Skill Test Coordinator]";
-	mes "Welcome to the Sage skill test.";
-	mes "Please go to the waiting area if you want to take the test.";
-	next;
-	mes "[Skill Test Coordinator]";
-	mes "Others are being tested at the moment.";
-	mes "When it's time for you to be tested, we'll call your name.";
-	next;
-	mes "[Skill Test Coordinator]";
-	mes "It takes around 5-10 minutes to test one person.";
+job_sage,50,165,4	script	Test Helper#talk	700,{
+	mes "[Test Helper]";
+	mes "Welcome to the Sage practical examination hall.";
+	mes "If you wish to take the test right now, please enter the waiting room.";
+	next;
+	mes "[Test Helper]";
+	mes "If someone is currently taking the test, please wait until that person finishes.";
+	mes "The progression of the test is announced on the entire map. An announcement will be made when the next person is ready to leave the waiting room.";
+	next;
+	mes "[Test Helper]";
+	mes "The Test takes 5 ~ 10 minutes per each person.";
+	mes "If you wish to leave the arena, please log out from the game.";
 	close;
+}
+
+job_sage,50,165,4	script	Waiting Room#sg	700,{
 OnInit:
-	waitingroom "Test Waiting Area",10,"jobsage_wroom::OnStart",1;
+	disablenpc "Waiting Room#sg";
+	waitingroom "Waiting Room",20,"Waiting Room#sg::OnStartArena",1;
 	end;
-OnStart:
+
+OnStartArena:
 	disablewaitingroomevent;
-	warpwaitingpc "job_sage",118,99;
-	set $@jobsage_pid,$@warpwaitingpc[0];
-	if( attachrid($@jobsage_pid)==0 ) goto L_Error;
-		set $@jobsage_pname$,strcharinfo(0);
-		donpcevent "jobsage_1st::OnStart";
+	warpwaitingpc "job_sage",116,97;
+	set .Sage_pid,$@warpwaitingpc[0];
+	if (attachrid(.Sage_pid) == 0) {
+		enablewaitingroomevent;
 		end;
-L_Error:
-	enablewaitingroomevent;
+	}
+	donpcevent "Arena#1::OnEnable";
 	end;
+
 OnEnable:
 	enablewaitingroomevent;
 	end;
+
 }
 
-//======== Test Step 1
-job_sage,1,1,1	script	jobsage_1st	-1,{
+-	script	Arena#1	66,{
+OnInit:
+	disablenpc "Arena#1";
 	end;
-OnStart:
-	set $@jobsage_m,16;
-	monster "job_sage",115,106,"Unit",1183,1,"jobsage_1st::OnKilled";
-	monster "job_sage",120,102,"Unit",1183,1,"jobsage_1st::OnKilled";
-	monster "job_sage",124,98,"Unit",1183,1,"jobsage_1st::OnKilled";
-	monster "job_sage",120,93,"Unit",1183,1,"jobsage_1st::OnKilled";
-	monster "job_sage",115,90,"Unit",1183,1,"jobsage_1st::OnKilled";
-	monster "job_sage",111,93,"Unit",1183,1,"jobsage_1st::OnKilled";
-	monster "job_sage",107,98,"Unit",1183,1,"jobsage_1st::OnKilled";
-	monster "job_sage",111,102,"Unit",1183,1,"jobsage_1st::OnKilled";
-	monster "job_sage",128,110,"Unit",1184,1,"jobsage_1st::OnKilled";
-	monster "job_sage",124,106,"Unit",1184,1,"jobsage_1st::OnKilled";
-	monster "job_sage",124,89,"Unit",1184,1,"jobsage_1st::OnKilled";
-	monster "job_sage",128,85,"Unit",1184,1,"jobsage_1st::OnKilled";
-	monster "job_sage",107,89,"Unit",1184,1,"jobsage_1st::OnKilled";
-	monster "job_sage",103,85,"Unit",1184,1,"jobsage_1st::OnKilled";
-	monster "job_sage",107,106,"Unit",1184,1,"jobsage_1st::OnKilled";
-	monster "job_sage",103,110,"Unit",1184,1,"jobsage_1st::OnKilled";
+
+OnEnable:
+	enablenpc "Arena#1";
+	set .MyMobs,16;
+	monster "job_sage",111,102,"Grade F",1183,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",120,102,"Grade F",1183,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",111,93,"Grade F",1183,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",120,93,"Grade F",1183,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",107,98,"Grade F",1183,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",124,98,"Grade F",1183,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",115,106,"Grade F",1183,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",115,90,"Grade F",1183,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",103,110,"Grade D",1184,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",128,110,"Grade D",1184,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",103,85,"Grade D",1184,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",128,85,"Grade D",1184,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",107,106,"Grade D",1184,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",124,106,"Grade D",1184,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",107,89,"Grade D",1184,1,"Arena#1::OnMyMobDead";
+	monster "job_sage",124,89,"Grade D",1184,1,"Arena#1::OnMyMobDead";
 	initnpctimer;
 	end;
+
 OnReset:
-	killmonster "job_sage","All";
+	killmonsterall "job_sage";
 	end;
-OnKilled:
-	set $@jobsage_m,$@jobsage_m-1;
-	if( $@jobsage_m > 0 )goto L_NotWin;
-	if(getnpctimer(0) < 60000 ) set sagecheck,sagecheck+1;
-	if((getnpctimer(0) >= 120000 ) && (getnpctimer(0) <= 170000 )) set sagecheck,sagecheck-1;
-	if(getnpctimer(0) > 170000 ) set sagecheck,sagecheck-2;
+
+OnMyMobDead:
+	set .MyMobs,.MyMobs-1;
+	if (.MyMobs < 1) {
+		mapannounce "job_sage"," " + strcharinfo(0) + ", successfully defeat all the monsters.",bc_map;
+		donpcevent "Arena#2::OnEnable";
 		stopnpctimer;
-		mapannounce "job_sage","Examiner: " + $@jobsage_pname$ + " killed all the monsters!",8;
-		donpcevent "jobsage_2nd::OnStart";
-	L_NotWin:
+	}
 	end;
+
 OnTimer1000:
-	mapannounce "job_sage","Examiner: The skill test begins now.",8;
+	mapannounce "job_sage","The practical examination has started.",bc_map;
 	end;
-OnTimer2500:
-	mapannounce "job_sage","Examiner: The time limit for this portion of the test is 3 minutes.",8;
-	end;
-OnTimer4000:
-	mapannounce "job_sage","Examiner: You must kill all the monsters within that time period.",8;
-	end;
-OnTimer30000:
-	mapannounce "job_sage","Examiner: 2 minutes, 30 seconds remaining.",8;
+
+OnTimer2000:
+	mapannounce "job_sage","1st test - time limit 3 minutes.",bc_map;
 	end;
-OnTimer60000:
-	mapannounce "job_sage","Examiner: 2 minutes remaining.",8;
+
+OnTimer3000:
+	mapannounce "job_sage","Please defeat all the monsters within the time limit.",bc_map;
 	end;
-OnTimer90000:
-	mapannounce "job_sage","Examiner: 1 minute, 30 seconds remaining.",8;
+
+OnTimer33000:
+	mapannounce "job_sage","2 minutes 30 seconds remaining.",bc_map;
 	end;
-OnTimer120000:
-	mapannounce "job_sage","Examiner: 1 minute remaining.",8;
+
+OnTimer63000:
+	mapannounce "job_sage","2 minutes remaining.",bc_map;
 	end;
-OnTimer150000:
-	mapannounce "job_sage","Examiner: 30 seconds remaining.",8;
+
+OnTimer93000:
+	mapannounce "job_sage","1 minute 30 seconds remaining.",bc_map;
 	end;
-OnTimer170000:
-	mapannounce "job_sage","Examiner: 10 seconds remaining.",8;
+
+OnTimer123000:
+	mapannounce "job_sage","1 min remaining.",bc_map;
 	end;
-OnTimer180000:
-	donpcevent "jobsage_1st::OnReset";
-	mapannounce "job_sage","Examiner: Time has expired.",8;
+
+OnTimer153000:
+	mapannounce "job_sage","30 seconds remaining.",bc_map;
 	end;
-OnTimer181500:
-	mapannounce "job_sage","Examiner:" + $@jobsage_pname$ + "failed the test.",8;
-	areawarp "job_sage",100,82,131,113,"yuno",324,258;
+
+OnTimer173000:
+	mapannounce "job_sage","10 seconds remaining.",bc_map;
 	end;
+
 OnTimer183000:
-	mapannounce "job_sage","Next candidate, please step forward.",8;
+	mapannounce "job_sage","Time over.",bc_map;
+	disablenpc "Arena#1";
 	end;
+
 OnTimer184000:
-	donpcevent "jobsage_wroom::OnEnable";
-	stopnpctimer;
+	areawarp "job_sage",100,82,131,113,"yuno",324,258;
+	end;
+
+OnTimer185000:
+	mapannounce "job_sage","Next candidate, enter.",bc_map;
 	end;
+
+OnTimer186000:
+	disablenpc "Arena#1";
+	donpcevent "Waiting Room#sg::OnEnable";
 }
 
-//======== Test Step 2
-job_sage,1,1,1	script	jobsage_2nd	-1,{
+-	script	Arena#2	-1,{
+OnInit:
+	disablenpc "Arena#2";
 	end;
-OnStart:
-	donpcevent "jobsage_2nd::OnReset";
-	set $@jobsage_m,24;
-	monster "job_sage",120,102,"GeographyInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",120,102,"StatisticsInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",120,102,"MeteorologyInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",120,102,"AstronomyInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",120,102,"LinguisticsInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",120,102,"CityLifeInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",124,98,"ForestryInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",124,98,"HealthInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",124,98,"PsychologyInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",120,93,"AnthropologyInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",120,93,"BiologyInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",120,93,"EthicsInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",111,93,"ArchitectureInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",111,93,"PlasticsInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",111,93,"NutritionInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",111,93,"FoodInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",111,93,"ManagementInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",111,93,"SociologyInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",107,98,"EconomicsInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",107,98,"MagicInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",107,98,"PoliSciInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",111,102,"MathInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",111,102,"HistoryInfo",1063,1,"jobsage_2nd::OnKilled";
-	monster "job_sage",111,102,"PhysicsInfo",1063,1,"jobsage_2nd::OnKilled";
+
+OnEnable:
+	enablenpc "Arena#2";
+	disablenpc "Arena#1::OnReset";
+	set .MyMobs,24;
+	monster "job_sage",111,102,"Numerical Value",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",111,102,"Physics",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",111,102,"History",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",120,102,"Geography",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",120,102,"Astronomy",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",120,102,"Meteorology",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",111,93,"Architecture",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",111,93,"Control",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",111,93,"Instrumentology",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",120,102,"Statistics;",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",120,102,"Graphic Method",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",120,102,"Language",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",111,93,"Sitology",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",111,93,"Dietetics",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",111,93,"Landscape Architecture",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",120,93,"Anthropology",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",120,93,"Biology",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",120,93,"Ethics",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",107,98,"Economy",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",107,98,"Politics",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",107,98,"Photography",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",124,98,"Dendrology",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",124,98,"Hygiene",1063,1,"Arena#2::OnMyMobDead";
+	monster "job_sage",124,98,"Sociology",1063,1,"Arena#2::OnMyMobDead";
 	initnpctimer;
 	end;
+
 OnReset:
-	killmonster "job_sage","All";
+	killmonsterall "job_sage";
 	end;
-OnKilled:
-	set $@jobsage_m,$@jobsage_m-1;
-	if( $@jobsage_m > 0 )goto L_NotWin;
+
+OnMyMobDead:
+	set .MyMobs,.MyMobs-1;
+	if (.MyMobs < 1) {
+		mapannounce "job_sage"," " + strcharinfo(0) + ", successfully defeat all the monsters.",bc_map;
+		donpcevent "Arena#Doorkeeper::OnEnable";
+		donpcevent "Arena#3::OnEnable";
 		stopnpctimer;
-		if(getnpctimer(0) < 60000 ) set sagecheck,sagecheck+1;
-		if((getnpctimer(0) >= 120000 ) && (getnpctimer(0) <= 170000 )) set sagecheck,sagecheck-1;
-		if(getnpctimer(0) > 170000 ) set sagecheck,sagecheck-2;
-		mapannounce "job_sage","Examiner: " + $@jobsage_pname$ + " killed all the monsters!",8;
-		donpcevent "jobsage_3rd::OnStart";
-	L_NotWin:
-	end;
-OnTimer1500:
-	mapannounce "job_sage","Examiner: The time limit for this portion of the test is 3 minutes.",8;
+	}
 	end;
-OnTimer3000:
-	mapannounce "job_sage","Examiner: You must kill all the monsters within that time period.",8;
-	end;
-OnTimer30000:
-	mapannounce "job_sage","Examiner: 2 minutes, 30 seconds remaining.",8;
+
+OnTimer1000:
+	mapannounce "job_sage","Second test - time limit 3 minutes.",bc_map;
 	end;
-OnTimer60000:
-	mapannounce "job_sage","Examiner: 2 minutes remaining.",8;
+
+OnTimer2000:
+	mapannounce "job_sage","Please defeat all the monsters within the time limit.",bc_map;
 	end;
-OnTimer90000:
-	mapannounce "job_sage","Examiner: 1 minute, 30 seconds remaining.",8;
+
+OnTimer33000:
+	mapannounce "job_sage","2 minutes 30 seconds remaining.",bc_map;
 	end;
-OnTimer120000:
-	mapannounce "job_sage","Examiner: 1 minute remaining.",8;
+
+OnTimer63000:
+	mapannounce "job_sage","2 minutes remaining.",bc_map;
 	end;
-OnTimer150000:
-	mapannounce "job_sage","Examiner: 30 seconds remaining.",8;
+
+OnTimer93000:
+	mapannounce "job_sage","1 minute 30 seconds remaining.",bc_map;
 	end;
-OnTimer170000:
-	mapannounce "job_sage","Examiner: 10 seconds remaining.",8;
+
+OnTimer123000:
+	mapannounce "job_sage","1 min remaining.",bc_map;
 	end;
-OnTimer180000:
-	donpcevent "jobsage_2nd::OnReset";
-	mapannounce "job_sage","Examiner: Time has expired.",8;
+
+OnTimer153000:
+	mapannounce "job_sage","30 seconds remaining.",bc_map;
 	end;
-OnTimer181500:
-	mapannounce "job_sage","Examiner: " + $@jobsage_pname$ + "has failed the test.",8;
-	areawarp "job_sage",100,82,131,113,"yuno",324,258;
+
+OnTimer173000:
+	mapannounce "job_sage","10 seconds remaining.",bc_map;
 	end;
+
 OnTimer183000:
-	mapannounce "job_sage","Next candidate, please step forward.",8;
+	mapannounce "job_sage","Time over.",bc_map;
+	donpcevent "Arena#2::OnReset";
 	end;
+
 OnTimer184000:
-	donpcevent "jobsage_wroom::OnEnable";
-	stopnpctimer;
+	areawarp "job_sage",100,82,131,113,"yuno",324,258;
+	end;
+
+OnTimer185000:
+	mapannounce "job_sage","Next candidate, please enter.",bc_map;
 	end;
-}
 
+OnTimer186000:
+	disablenpc "Arena#2";
+	donpcevent "Waiting Room#sg::OnEnable";
+}
 
-//======== Test Step 3
-job_sage,1,1,1	script	jobsage_3rd	-1,{
+-	script	Arena#Doorkeeper	-1,{
+OnInit:
+	disablenpc "Arena#Doorkeeper";
 	end;
-OnStart:
-	donpcevent "jobsage_3rd::OnReset";
-	set $@jobsage_m,1;
-	monster "job_sage",116,98,"Bachelor",1179,1,"jobsage_3rd::OnKilled";
-	monster "job_sage",124,106,"Tardy",1185,1;
-	monster "job_sage",124,89,"Loaner",1185,1;
-	monster "job_sage",107,89,"Cheater",1185,1;
-	monster "job_sage",107,106,"Absentee",1185,1;
+
+OnEnable:
+	enablenpc "Arena#Doorkeeper";
+	donpcevent "Arena#2::OnReset";
+	disablenpc "Arena#2";
+	set .MyMobs,1;
+	monster "job_sage",116,97,"Academic Probation",1179,1,"Arena#Doorkeeper::OnMyMobDead";
 	initnpctimer;
 	end;
+
 OnReset:
+	donpcevent "Arena#3::OnReset";
+	killmonsterall "job_sage";
 	end;
-OnKilled:
-	set $@jobsage_m,$@jobsage_m-1;
-	if( $@jobsage_m > 0 )goto L_NotWin;
+
+OnDisable:
+	disablenpc "Arena#3";
+	disablenpc "Arena#Doorkeeper";
+	end;
+
+OnMyMobDead:
+	set .MyMobs,.MyMobs-1;
+	if (.MyMobs < 1) {
+		mapannounce "job_sage","Congratulations, " + strcharinfo(0) + ". You passed the test.",bc_map;
+		set SAGE_Q,8;
+		donpcevent "Test Helper#sg::OnEnable";
+		disablenpc "Arena#Doorkeeper";
 		stopnpctimer;
-		killmonster "job_sage","All";
-		set SAGE_Q,7;
-		if(getnpctimer(0) < 20000 ) set sagecheck,sagecheck+1;
-		if((getnpctimer(0) >= 30000 ) && (getnpctimer(0) <= 50000 )) set sagecheck,sagecheck-1;
-		if(getnpctimer(0) > 50000 ) set sagecheck,sagecheck-2;
-		mapannounce "job_sage","Examiner: Congratulations. " + $@jobsage_pname$ + "passed the test!",8;
-		donpcevent "jobsage_success::OnSuccess";
-	L_NotWin:
+	}
 	end;
-OnTimer1500:
-	mapannounce "job_sage","Examiner: 1 minute remaining.",8;
+
+OnTimer1000:
+	mapannounce "job_sage","3rd test - Time limit 1 minute.",bc_map;
 	end;
+
 OnTimer30000:
-	mapannounce "job_sage","Examiner: 30 seconds remaining.",8;
+	mapannounce "job_sage","30 seconds remaining.",bc_map;
 	end;
+
 OnTimer50000:
-	mapannounce "job_sage","Examiner: 10 seconds remaining.",8;
+	mapannounce "job_sage","10 seconds remaining.",bc_map;
 	end;
+
 OnTimer60000:
-	donpcevent "jobsage_3rd::OnReset";
-	mapannounce "job_sage","Examiner: Time has expired.",8;
+	mapannounce "job_sage","Time over.",bc_map;
+	disablenpc "Arena#Doorkeeper";
 	end;
-OnTimer61500:
-	mapannounce "job_sage","Examiner: " + $@jobsage_pname$ + "failed the test.",8;
+
+OnTimer61000:
 	areawarp "job_sage",100,82,131,113,"yuno",324,258;
 	end;
+
+OnTimer62000:
+	mapannounce "job_sage","Next candidate, please enter.",bc_map;
+	end;
+
 OnTimer63000:
-	mapannounce "job_sage","Examiner: This concludes the test.  Next candidate, please step forward.",8;
+	disablenpc "Arena#Doorkeeper";
+	donpcevent "Waiting Room#sg::OnEnable";
+}
+
+-	script	Arena#3	-1,{
+OnInit:
+	disablenpc "Arena#3";
 	end;
-OnTimer64000:
-	donpcevent "jobsage_wroom::OnEnable";
-	stopnpctimer;
+
+OnEnable:
+	monster "job_sage",107,106,"Absent 3 times",1185,1;
+	monster "job_sage",124,106,"Being Late 5 times",1185,1;
+	monster "job_sage",107,89,"Cheating 2 times",1185,1;
+	monster "job_sage",124,89,"Cheating 4 times",1185,1;
+	end;
+
+OnDisable:
+	killmonsterall "job_sage";
 	end;
 }
 
-//======== Successful
-job_sage,1,7,1	script	jobsage_success	66,{
-OnSuccess:
-	killmonster "job_sage","All";
+-	script	Test Helper#sg	-1,{
+OnInit:
+	disablenpc "Test Helper#sg";
+	end;
+
+OnEnable:
 	initnpctimer;
 	end;
-OnTimer3000:
-	mapannounce "job_sage","Examiner: Please allow me to guide you out.",8;
+
+OnTimer2000:
+	mapannounce "job_sage","Please go back to where you came from and finish the rest of your job change quest.",bc_map;
+	end;
+
+OnTimer4000:
+	mapannounce "job_sage","This is the end of practical examination. Next candidate, please get ready.",bc_map;
 	end;
-OnTimer6000:
-	mapannounce "job_sage","Next candidate, please step forward.",8;
+
+OnTimer5000:
 	areawarp "job_sage",100,82,131,113,"yuno_in03",163,180;
 	end;
+
 OnTimer7000:
-	donpcevent "jobsage_wroom::OnEnable";
+	mapannounce "job_sage","Next candidate, please enter.",bc_map;
+	end;
+
+OnTimer9000:
+	disablenpc "Test Helper#sg";
+	donpcevent "Waiting Room#sg::OnEnable";
 	stopnpctimer;
 	end;
 }
 
-//==============================================================================
-// mapflag
-//==============================================================================
+//============================================================ 
+// Mapflag
+//============================================================ 
 job_sage	mapflag	nomemo
 job_sage	mapflag	noteleport
 job_sage	mapflag	nosave	SavePoint
 job_sage	mapflag	nopenalty
 job_sage	mapflag	nobranch
-job_sage	mapflag	noexp
-job_sage	mapflag	noloot
+
+//============================================================ 
+// Old changelog
+//============================================================ 
+//= Script mostly based on translated jA script
+//= Written test questions/answers weren't translated 100% corectly
+//= So a lot of those are based upon mRO site and my own info
+//= IF you by excident have (or can get) screenshots of these questions
+//= Then PLEASE send them to Darkchild
+//= 1.3 Baby class Support added [Lupus] 1.5 Fixed possible EXP abuse [Lupus]
+//= 1.6 Added a func which prevent advanced classes passing
+//= 2nd Job Quests again. It also guides adv classes where to go. [Lupus]
+//= 1.7 Fixed tuition fee. Fixed some answers, names & typos, added missing labels [Lupus]
+//= 1.7a Moved JFunc back in the main file, fixed typos [Lupus]
+//= 2.0 Changed numbers to constants. [Vicious]
+//= 2.0a Fixed double warp [KarLaeda] 2.0b Mantis Scythe Item name fix

+ 4 - 3
npc/quests/quests_yuno.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= eAthena Dev Team; L0ne_W0lf
 //===== Current Version: ===================================== 
-//= 1.6
+//= 1.7
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -28,6 +28,7 @@
 //=	Merged metto_quest.txt into Juno quest file.
 //=	Added the Juno portion of the Doomed Swords quest.
 //= 1.6 Fixed various errors in the Bajin NPC. [L0ne_W0lf]
+//= 1.7 Changed ALCH_Q check and set to corrispond to new alchemist job quest. [L0ne_W0lf]
 //============================================================ 
 
 // Metto Quest
@@ -467,7 +468,7 @@ yuno_in01,103,157,3	script	Bain#juno	98,{
 	//	close;
 	//}
 	if (countitem(974) > 0 && countitem(612) > 4 && countitem(1003) > 4 && countitem(7068) > 4 && countitem(7043) > 4 && countitem(757) > 2 && countitem(756) > 2 && Zeny > 2000) {
-		if (ALCH_Q == 6) set ALCH_Q2,2;
+		if (ALCH_Q == 23) set ALCH_Q,24;
 		set .@kyulkwa,rand(1,10);
 		mes "[Bain]";
 		mes "Oh ho ho... These are the parts that I needed. Thank you so much.";
@@ -599,7 +600,7 @@ yuno_in01,100,153,7	script	Bajin	47,0,0,{
 	//	close;
 	//}
 	if (countitem(974) > 0 && countitem(612) > 4 && countitem(1003) > 4 && countitem(7068) > 4 && countitem(7043) > 4 && countitem(757) > 2 && countitem(756) > 2 && Zeny > 2000) {
-		if (ALCH_Q == 6) set ALCH_Q2,2;
+		if (ALCH_Q == 23) set ALCH_Q,24;
 		set .@kyulkwa,rand(1,10);
 		mes "[Bajin]";
 		mes "Oh ho ho... These are the parts";

+ 31 - 38
npc/warps/other/jobquests.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= Athena (1.0)
 //===== Current Version: =====================================
-//= 1.6
+//= 1.7
 //===== Compatible With: =====================================
 //= Any Athena Version; RO Version Ep4+
 //===== Description: =========================================
@@ -19,6 +19,7 @@
 //= 1.4 Imported damn noobie warps from jAthena (because it's broken since last year)
 //= 1.5 Replaced clone maps with the real ones [Lupus]
 //= 1.6 removed swordman quest map warps. They are now contained in the swordman quest. [L0ne_W0lf]
+//= 1.7 Updated some 2-2 job quest related warps. [L0ne_W0lf]
 //============================================================
 
 
@@ -49,8 +50,6 @@ moc_fild16,205,296,0	warp	16_to_guild	2,2,in_moc_16,18,11
 //==============================================================================
 in_hunter,100,15,0	warp	jhun01	0,0,pay_fild10,143,250
 
-
-
 //==============================================================================
 // Monk (St. Capitolina Abbey)
 //==============================================================================
@@ -64,46 +63,40 @@ monk_test,298,127,0	warp	monk20	1,1,monk_test,268,125
 //==============================================================================
 //Alchemist
 //==============================================================================
-//Town - Alchemist , Alchemist - Town
-aldebaran,54,66,0	warp	alche01	1,1,alde_alche,41,174
-alde_alche,41,171,0	warp	alche02	1,1,aldebaran,56,68
-//Alchemist Hall 1st Floor Top Rooms
-alde_alche,129,104,0	warp	alche03	1,1,alde_alche,163,163
-alde_alche,159,163,0	warp	alche04	1,1,alde_alche,126,104
-alde_alche,131,77,0	warp	alche05	1,1,alde_alche,162,107
-alde_alche,159,107,0	warp	alche06	1,1,alde_alche,128,77
-//Alchemist Hall 1st Floor Bottom Rooms
-alde_alche,47,103,0	warp	alche07	1,1,alde_alche,88,18
-alde_alche,92,18,0	warp	alche08	1,1,alde_alche,50,103
-alde_alche,47,77,0	warp	alche09	1,1,alde_alche,155,18
-alde_alche,159,18,0	warp	alche10	1,1,alde_alche,50,77
-//Alchemist Hall 2nd Floor - 1st Floor Link
-alde_alche,14,184,0	warp	alche11	1,1,alde_alche,88,113
-alde_alche,88,117,0	warp	alche12	1,1,alde_alche,14,180
-//Alchemist Hall 2nd Floor Rooms
-alde_alche,19,171,0	warp	alche13	1,1,aldebaran,68,56
-aldebaran,66,54,0	warp	alche14	1,1,alde_alche,19,175
-alde_alche,18,28,0	warp	alche15	1,1,alde_alche,89,66
-alde_alche,89,63,0	warp	alche16	1,1,alde_alche,18,24
-//Alchemist Hall 3rd Floor
-alde_alche,41,187,0	warp	alche17	1,1,alde_alche,114,178
-alde_alche,114,182,0	warp	alche18	1,1,alde_alche,41,183
+aldebaran,65,53,0	warp	alche#1	1,1,alde_alche,20,175
+aldebaran,53,65,0	warp	alche#2	1,1,alde_alche,42,175
+alde_alche,19,171,0	warp	alche#1	1,1,aldebaran,68,56
+alde_alche,42,171,0	warp	alche#1	1,1,aldebaran,56,68
+alde_alche,41,186,0	warp	alche#1F_2F	1,1,alde_alche,113,178
+alde_alche,114,183,0	warp	alche#2F_1F	1,1,alde_alche,42,182
+alde_alche,13,184,0	warp	alche#1F_B1	1,1,alde_alche,88,113
+alde_alche,88,117,0	warp	alche#B1_1F	1,1,alde_alche,13,181
+alde_alche,46,104,0	warp	alche#B1_r1	1,1,alde_alche,157,17
+alde_alche,160,17,0	warp	alche#r1_b1	1,1,alde_alche,50,103
+alde_alche,46,77,0	warp	alche#B1_r2	1,1,alde_alche,88,17
+alde_alche,93,17,0	warp	alche#r2_b1	1,1,alde_alche,50,77
+alde_alche,89,62,0	warp	alche#B1_r3	1,1,alde_alche,17,23
+alde_alche,17,29,0	warp	alche#r3_b1	1,1,alde_alche,89,67
+alde_alche,133,77,0	warp	alche#B1_r4	1,1,alde_alche,162,107
+alde_alche,158,107,0	warp	alche#r4_b1	1,1,alde_alche,129,77
+alde_alche,133,103,0	warp	alche#B1_r5	1,1,alde_alche,164,164
+alde_alche,158,163,0	warp	alche#r5_b1	1,1,alde_alche,129,103
 
 //==============================================================================
 //Rogue
 //==============================================================================
-cmd_fild07,193,117,0	warp	fild07-rogue00	1,1,in_rogue,378,46
-in_rogue,375,46,0	warp	rogue00-fild07	1,1,cmd_fild07,195,116
-in_rogue,376,34,0	warp	rogue01-02	1,1,in_rogue,378,125
-in_rogue,375,125,0	warp	rogue02-01	1,1,in_rogue,379,34
-cmd_fild07,352,275,0	warp	fild07-rogue03	1,1,in_rogue,265,122
-in_rogue,265,118,0	warp	rogue03-fild07	1,1,cmd_fild07,349,275
-in_rogue,244,20,0	warp	rogue04-fild09	1,1,cmd_fild09,106,192
-in_rogue,172,34,0	warp	rogue05-fild09	1,1,cmd_fild09,339,143
-in_rogue,160,103,0	warp	rogue06-fild04	1,1,cmd_fild04,301,177
+cmd_fild07,193,117,0	warp	fild07-rogue00	1,1,in_rogue,379,46
+in_rogue,375,46,0	warp	rogue00-fild07	1,1,cmd_fild07,196,117
+in_rogue,375,34,0	warp	rogue01-02	1,1,in_rogue,380,125
+in_rogue,375,125,0	warp	rogue02-01	1,1,in_rogue,379,33
+cmd_fild07,355,286,0	warp	fild07-rogue03	1,1,in_rogue,247,126
+in_rogue,247,122,0	warp	rogue03-fild07	1,1,cmd_fild07,349,285
+in_rogue,244,21,0	warp	rogue04-fild09	1,1,cmd_fild09,106,191
+in_rogue,172,34,0	warp	rogue05-fild09	1,1,cmd_fild09,341,143
+in_rogue,161,103,0	warp	rogue06-fild04	1,1,cmd_fild04,302,177
+in_rogue,8,9,0		warp	stair_to_ro	1,1,in_rogue,389,389
 
 //==============================================================================
 //Dancer
 //==============================================================================
-//job_duncer,69,43,0	warp 	duncer1	1,1,comodo,185,156
-job_duncer,70,45,0	warp	duncer1	2,2,comodo,193,149
+job_duncer,69,43,0	warp	duncer1	1,1,comodo,185,156

Some files were not shown because too many files changed in this diff