//================= Hercules Script =======================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2012-2015  Hercules Dev Team
//= Copyright (C)  Euphy
//= Copyright (C)  Kisuka
//= Copyright (C)  Samuray22
//= Copyright (C)  massdriller
//= Copyright (C)  Lupus
//= Copyright (C)  L0ne_W0lf
//= Copyright (C)  kobra_k88
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Mage Job Quest (Pre-Renewal)
//================= Description ===========================================
//= Job quest for Mage classes
//================= Current Version =======================================
//= 2.0
//=========================================================================

geffen_in,164,124,4	script	Mage Guildsman	2_F_MAGICMASTER,{
	if (Upper == 1) {
		if (ADVJOB == Job_High_Wizard || ADVJOB == Job_Professor) {
			if (Class == Job_Novice_High) {
				mes "[Mage Guildsman]";
				mes "Whoa, long time no see! But weren't you supposed to be dead?";
				next;
				mes "[Mage Guildsman]";
				mes "Ah, you must have been reborn. Well, I'm glad to have you back.";
				next;
				if (getskilllv("NV_BASIC") < 9) {
					mes "[Mage Guildsman]";
					mes "I'm sorry, but I don't think you're ready to learn magic yet. Why don't you go finish learning the Basic Skills first?";
					next;
					mes "[Mage Guildsman]";
					mes "Take your time. The more you learn, the more ready you'll be to learn magic again.";
					close;
				}
				mes "[Mage Guildsman]";
				mes "Well, since you have passed the Mage test once, I will not question your qualification. You want to have your magic skills back immediately, don't you?";
				next;
				skill 143,0,0;
				jobchange Job_Mage_High;
				skill 157,1,0;
				mes "[Mage Guildsman]";
				mes "Wow, for some reason, you look way better than you did before. Anyway, I believe you will do a better job being a Mage as well.";
				close;
			}
			else {
				mes "[Mage Guildsman]";
				mes "Is there anything more I can help you with? If not, why don't you go test your skills? The world is waiting for you~!";
				close;
			}
		}
		else {
			mes "[Mage Guildsman]";
			mes "What, are you interested in the Mage guild? I didn't want to tell you this, but you don't belong here.";
			next;
			mes "[Mage Guildsman]";
			mes "I am not sure why you're still standing in front of me, but I can tell that you're not meant to be a Mage.";
			close;
		}
	}
	mes "[Mage Guildsman]";
	mes "Yo. What's up?";
	next;
	switch(select("I want to be a Mage.", "Tell me the Requirements.", "Pretty much nothing.")) {
	case 1:
		mes "[Mage Guildsman]";
		if (BaseJob == Job_Mage) {
			mes "Hey, haven't you realized? You're aleady a Mage, silly!";
			next;
			mes "[Mage Guildsman]";
			mes "One of these days you'll realize the power inside of you when you can make Fire with your mind!";
			close;
		}
		if (BaseJob != Job_Novice) {
			mes "Hey~ C'mon. Quit playing games. You can't be a Mage because you already have another Job.";
			close;
		}
		if (job_magician_q == 0) {
			mes "Wanna be a Mage, eh...?";
			if (Sex == SEX_MALE)
				mes "Hey, look at you! You're kinda cute~! Not my type though...";
			else {
				mes "Oooh, you're such a hot babe~!";
				mes "I like girls like you~";
			}
			next;
			mes "[Mage Guildsman]";
			mes "Right, you said that you wanna be a Mage? Alright then, please sign the Mage Application.";
			next;
			if (select("Sign Up.", "Quit.") == 1) {
				mes "[Mage Guildsman]";
				mes "Okay. Sign right there. Oh, you're very good at spelling. Alright. So your name is... " + strcharinfo(PC_NAME) + ".";
				next;
				mes "[Mage Guildsman]";
				mes "Now it's time for";
				mes "me to give you the test.";
				switch(rand(0,3)) {
				case 1:
					mes "Make me a ^3355FFMixed Solution No. 1^000000";
					mes "and bring it back to me.";
					job_magician_q = 1;
					break;
				case 2:
					mes "Make me a ^3355FFMixed Solution No. 2^000000";
					mes "and bring it back to me.";
					job_magician_q = 2;
					break;
				case 3:
					mes "Make me a ^3355FFMixed Solution No. 3^000000";
					mes "and bring it back to me.";
					job_magician_q = 3;
					break;
				default:
					mes "Make me a ^3355FFMixed Solution No. 4^000000";
					mes "and bring it back to me.";
					job_magician_q = 4;
				}
				next;
				getitem Empty_Cylinder,1;
				mes "[Mage Guildsman]";
				mes "You can find the neccessary ingredients inside the Guide Book in this Guild. So you better look up what you need before you go.";
				next;
				mes "[Mage Guildsman]";
				mes "Once you collect all the ingredients you, use the machine in the center of the room to mix the solution. Good luck!";
				close;
			}
			mes "[Mage Guildsman]";
			mes "Whaaaaat~?! Right after you tell me that you wanna become a Mage, you change your mind?! Be a bit more decisive!";
			close;
		}
		mes "Yeah? Ready...?";
		if (getskilllv("NV_BASIC") < 9) {
			mes "Oh, what a bummer. You haven't met the requirements yet.";
			next;
			mes "[Mage Guildsman]";
			mes "Go back and reach Novice Job level 9 first. Don't forget that you also have to learn all of the Basic Skills before you come back.";
			close;
		}
		mes "" + strcharinfo(PC_NAME) + "'s test was...";
		if (job_magician_q == 1)
			mes "Making Mixed Solution No. 1.";
		else if (job_magician_q == 2)
			mes "Making Mixed Solution No. 2.";
		else if (job_magician_q == 3)
			mes "Making Mixed Solution No. 3.";
		else
			mes "Making Mixed Solution No. 4.";
		next;
		mes "[Mage Guildsman]";
		mes "Okay, let me";
		mes "check if you made your";
		mes "solution accurately...";
		next;
		mes "[Mage Guildsman]";
		if (countitem(Mage_Test_1) == 0 && countitem(Mage_Test_2) == 0 && countitem(Mage_Test_3) == 0 && countitem(Mage_Test_4) == 0 && countitem(Mage_Test_Etc) == 0) {
			mes "Hey, where's the Solution";
			mes "I asked for...? I can't check it if you don't show it to me, right?";
			close;
		}
		else {
			if ((job_magician_q == 1 && countitem(Mage_Test_1) == 0) || (job_magician_q == 2 && countitem(Mage_Test_2) == 0) || (job_magician_q == 3 && countitem(Mage_Test_3) == 0) || (job_magician_q == 4 && countitem(Mage_Test_4) == 0)) {
				mes "Wait.";
				mes "This isn't the";
				mes "Solution I asked for!";
				next;
				mes "[Mage Guildsman]";
				if (job_magician_q == 1)
					mes "You're supposed to make Mixed Solution No. 1 and bring it back to me. Now go and try it again.";
				else if (job_magician_q == 2)
					mes "You're supposed to make Mixed Solution No. 2 and bring it back to me. Now go and try it again.";
				else if (job_magician_q == 3)
					mes "You're supposed to make Mixed Solution No. 3 and bring it back to me. Now go and try it again.";
				else
					mes "You're supposed to make Mixed Solution No. 4 and bring it back to me. Now go and try it again.";

				if (countitem(Mage_Test_1) != 0) delitem Mage_Test_1,1;
				else if (countitem(Mage_Test_2) != 0) delitem Mage_Test_2,1;
				else if (countitem(Mage_Test_3) != 0) delitem Mage_Test_3,1;
				else if (countitem(Mage_Test_4) != 0) delitem Mage_Test_4,1;
				else delitem Mage_Test_Etc,1;
				close;
			}
		}
		if (countitem(Mage_Test_1) != 0) delitem Mage_Test_1,1;
		else if (countitem(Mage_Test_2) != 0) delitem Mage_Test_2,1;
		else if (countitem(Mage_Test_3) != 0) delitem Mage_Test_3,1;
		else if (countitem(Mage_Test_4) != 0) delitem Mage_Test_4,1;
		else delitem Mage_Test_Etc,1;
		mes "Hmm. I can see that you tried really hard. For a beginner's attempt, this is really good.";
		mes "Great work!";
		next;
		mes "[Mage Guildsman]";
		mes "Alright! I'm pleased to say that you've passed the Mage Test. I will transform you right away!";
		next;
		mes "[Mage Guildsman]";
		mes "*Ahem*";
		mes "Congratulations!";
		mes "You are now a Mage!";
		next;
		if (questprogress(1005)) {
			completequest 1005;
		}
		else if (questprogress(1006)) {
			completequest 1006;
		}
		else if (questprogress(1007)) {
			completequest 1007;
		}
		else {
			completequest 1008;
		}
		callfunc "Job_Change",Job_Mage;
		callfunc "F_ClearJobVar";
		Zeny += 50;
		mes "[Mage Guildsman]";
		mes "'Welcome to My World~'";
		mes "Heh heh, I just wanted to say that. You know, it's a quote from a well-known movie~";
		next;
		mes "[Mage Guildsman]";
		mes "Now that you're a Mage just like us, let's be friends, okay?";
		close;
	case 2:
		mes "[Mage Guildsman]";
		mes "Wanna be a Mage, eh?";
		if (Sex == SEX_MALE)
			mes "For a cutie like you, I'd be happy to explain the requirements!";
		else
			mes "I'd be happy to explain the requirements for a pretty girl like you!";
		next;
		mes "[Mage Guildsman]";
		mes "First of all, you have to reach Novice Job Level 10 and learn all of the Basic Skills. Then, you'll have to pass the Mage Test.";
		next;
		if (job_magician_q != 0) {
			mes "[Mage Guildsman]";
			mes "Your test is to";
			switch(job_magician_q) {
			case 1:
				mes "make me a";
				mes "^3355FFMixed Solution No. 1^000000";
				mes "and bring it back to me.";
				setquest 1005;
				break;
			case 2:
				mes "make me a";
				mes "^3355FFMixed Solution No. 2^000000";
				mes "and bring it back to me.";
				setquest 1006;
				break;
			case 3:
				mes "make me a";
				mes "^3355FFMixed Solution No. 3^000000";
				mes "and bring it back to me.";
				setquest 1007;
				break;
			default:
				mes "make me a";
				mes "^3355FFMixed Solution No. 4^000000";
				mes "and bring it back to me.";
				setquest 1008;
			}
			next;
			mes "[Mage Guildsman]";
			mes "You can look up the ingredients you'll need to make the Solution inside the Guide Book in this Guild.";
		}
		else {
			mes "[Mage Guildsman]";
			mes "You will be informed as to which Mixed Solution you will need to create after signing the application form.";
		}
		next;
		mes "[Mage Guildsman]";
		mes "Let me know when you are ready to become a Mage, alright?";
		close;
	case 3:
		mes "[Mage Guildsman]";
		mes "Nothing...?";
		close;
	}
}

geffen_in,164,112,4	script	Mixing Machine	HIDDEN_NPC,{
	mes "[Mixing Machine]";
	mes "This machine is the property of the Geffen Mage Guild and is used only for mixing solutions for magic purposes.";
	next;
	if (select("Use Machine.", "Cancel.") == 1) {
		mes "[Mixing Machine]";
		mes "Choose the";
		mes "Solvent for";
		mes "the Solution.";
		next;
		switch(select("Payon Solution.", "Morroc Solution.", "No Solvent.")) {
		case 1:
			if (countitem(Payon_Potion) == 0) {
				mes "[Mixing Machine]";
				mes "Error.";
				mes "Cannot find the item.";
				mes "Please check again.";
				mes "Process Halting.";
				close;
			}
			.@mixitem2 = 1;
			break;
		case 2:
			if (countitem(Morocc_Potion) == 0) {
				mes "[Mixing Machine]";
				mes "Error.";
				mes "Cannot find the item.";
				mes "Please check again.";
				mes "Process Halting.";
				close;
			}
			.@mixitem2 = 2;
			break;
		case 3:
			.@mixitem2 = 0;
			break;
		}
		while (1) {
			if (.@progress == 2) {
				mes "[Mixing Machine]";
				if (.@mixitem1_1 != 0) mes "Jellopy: " + .@mixitem1_1 + " ea.";
				if (.@mixitem1_2 != 0) mes "Fluff: " + .@mixitem1_2 + " ea.";
				if (.@mixitem1_3 != 0) mes "Milk: " + .@mixitem1_3 + " ea.";
				if (.@mixitem2 == 0) mes "Solvent: None.";
				if (.@mixitem2 == 1) mes "Solvent: Payon Solution.";
				if (.@mixitem2 == 2) mes "Solvent: Morroc Solution.";
				next;
				mes "[Mixing Machine]";
				mes "Please choose if you wish to begin mixing, or to re-enter the number of items to be mixed.";
				next;
				switch(select("Begin Mixing.", "Re-Enter Number of Items.", "Reset.")) {
				case 1:
					mes "[Mixing Machine]";
					mes "Please place the items into the Mixing Receptacle. Make sure the item amounts are correct.";
					next;
					mes "[Mixing Machine]";
					mes "You cannot adjust or restore items once they are placed into the Mixing Receptacle.";
					next;
					mes "[Mixing Machine]";
					mes "If everything is correct, press the 'Mix' button when you are ready. Otherwise, press the 'Cancel' button.";
					next;
					if (select("Press 'Mix' Button.", "Press 'Cancel' Button.") == 1) {
						mes "[Mixing Machine]";
						mes "Place items into the Mixing Receptacle now. Please wait.";
						next;
						mes "[Mixing Machine]";
						if (countitem(Jellopy) < .@mixitem1_1) {
							mes "Insufficient Jellopy.";
							mes "Please Check again.";
							mes "Process Halted.";
							close;
						}
						else if (countitem(Fluff) < .@mixitem1_2) {
							mes "Insufficient Fluff.";
							mes "Please Check again.";
							mes "Process Halted.";
							close;
						}
						else if (countitem(Milk) < .@mixitem1_3) {
							mes "Insufficient Milk.";
							mes "Please Check again.";
							mes "Process Halted.";
							close;
						}
						else if (.@mixitem2 == 1 || .@mixitem2 == 2) {
							if (countitem(Payon_Potion) == 0 && countitem(Morocc_Potion) == 0) {
								mes "Solution not found.";
								mes "Please Check again.";
								mes "Process Halted.";
								close;
							}
						}
						if (.@mixitem1_1 != 0) delitem Jellopy,.@mixitem1_1;
						if (.@mixitem1_2 != 0) delitem Fluff,.@mixitem1_2;
						if (.@mixitem1_3 != 0) delitem Milk,.@mixitem1_3;
						if (.@mixitem2 == 1) delitem Payon_Potion,1;
						if (.@mixitem2 == 2) delitem Morocc_Potion,1;
						mes "Items are Ready.";
						mes "Close the Lid.";
						.@progress = 3;
						next;
					}
					break;
				case 2:
					.@continue = 0;
					next;
					break;
				case 3:
					.@mixitem1_1 = 0;
					.@mixitem1_2 = 0;
					.@mixitem1_3 = 0;
					.@progress = 0;
					.@continue = 0;
					mes "[Mixing Machine]";
					mes "Reset Complete.";
					mes "Initiate again?";
					next;
					if (select("Yes.", "No.") == 1)
						break;
					mes "[Mixing Machine]";
					mes "Process Halted.";
					mes "Thank you.";
					close;
				}
				if (.@progress == 3) break;
			}
			else if (.@progress == 1) {
				mes "[Mixing Machine]";
				mes "Nothing found.";
				next;
			}
			mes "[Mixing Machine]";
			mes "Select items to mix.";
			while(1) {
				switch(select("Jellopy.", "Fluff.", "Milk.", "Ready to Mix.")) {
				case 1:
					while(1) {
						input .@input;
						if (.@input > 10000) {
							next;
							mes "[Mixing Machine]";
							mes "Error: Item limit exceeded. Please enter values less than 10,000 try again.";
							next;
						}
						else {
							if (countitem(Jellopy) > 0) .@mixitem1_1 += .@input;
							.@progress = 2;
							break;
						}
					}
					break;
				case 2:
					while(1) {
						input .@input;
						if (.@input > 10000) {
							next;
							mes "[Mixing Machine]";
							mes "Error: Item limit exceeded. Please enter values less than 10,000 try again.";
							next;
						}
						else {
							if (countitem(Fluff) > 0) .@mixitem1_2 += .@input;
							.@progress = 2;
							break;
						}
					}
					break;
				case 3:
					while(1) {
						input .@input;
						if (.@input > 10000) {
							next;
							mes "[Mixing Machine]";
							mes "Error: Item limit exceeded. Please enter values less than 10,000 try again.";
							next;
						}
						else {
						if (countitem(Milk) > 0) .@mixitem1_3 += .@input;
							.@progress = 2;
							break;
						}
					}
					break;

				case 4:
					if (.@progress != 2)
						.@progress = 1;
					.@continue = 1;
					next;
				}
				if (.@continue) break;
			}
		}
		mes "[Mixing Machine]";
		mes "Please enter the ";
		mes "Serial Number of";
		mes "the Magic Powder.";
		next;
		while(1) {
			input .@input;
			if (.@input < 1000 || .@input > 9999) {
				mes "[Mixing Machine]";
				if (.@input == 0) {
					mes "Do you want to skip this Menu?";
					next;
					if (select("Yes.", "No.") == 1) {
						break;
					}
				}
				else {
					mes "Invalid Serial Number.";
					mes "Please try again.";
					next;
				}
			}
			else {
				mes "[Mixing Machine]";
				mes "The Serial Number is #" + .@input + ", correct?";
				next;
				if (select("Confirm.", "Cancel.") == 1) {
					if (.@input == 8472)
						.@magic_powder = 1;
					else if (.@input == 3735)
						.@magic_powder = 2;
					else if (.@input == 2750)
						.@magic_powder = 3;
					else if (.@input == 5429)
						.@magic_powder = 4;
					else
						.@magic_powder = 5;
				}
				break;
			}
		}
		mes "[Mixing Machine]";
		mes "Choose a";
		mes "Catalyst Stone.";
		next;
		switch(select("Yellow Gemstone.", "Red Gemstone.", "Blue Gemstone.", "1carat Diamond.", "Skip.")) {
		case 1: .@mixitem3 = 1; break;
		case 2: .@mixitem3 = 2; break;
		case 3: .@mixitem3 = 3; break;
		case 4: .@mixitem3 = 4; break;
		case 5: break;
		}
		mes "[Mixing Machine]";
		mes "All Set.";
		mes "Initiating";
		mes "Mixing process.";
		mes "Please Wait.";
		next;
		mes "[Mixing Machine]";
		mes "- Proverb of the Day -";
		switch(rand(1,5)) {
		case 1:
			mes "An Eye for an Eye: When you take from a person, you must replace or repay in some way.";
			break;
		case 2:
			mes "Credibility is a Man's Currency: There's a value in genuine trust that cannot be measured.";
			break;
		case 3:
			mes "What Goes Around Comes Around: Ultimately, you will be treated in the way you treat others.";
			mes "It means 'When you harm Another you will be harmed by him in an unavoidable situation'.";
			break;
		case 4:
			mes "A good neighbor is better than a distant brother: When you need help, you can count on those close to you.";
			break;
		default:
			mes "Birds of a Feather Flock Together: You can look at a person's friends as an indicator of their character.";
		}
		next;
		if (.@mixitem1_1 == 2 && .@mixitem1_2 == 3 && .@mixitem1_3 == 1 && .@mixitem2 == 1 && .@mixitem3 == 1 && .@magic_powder == 1) {
			mes "[Mixing Machine]";
			mes "Mage Test Solution No. 1.";
			getitem Mage_Test_1,1;
			next;
		}
		else if (.@mixitem1_1 == 3 && .@mixitem1_2 == 1 && .@mixitem1_3 == 1 && .@mixitem2 == 0 && .@mixitem3 == 2 && .@magic_powder == 2) {
			mes "[Mixing Machine]";
			mes "Mage Test Solution No. 2.";
			getitem Mage_Test_2,1;
			next;
		}
		else if (.@mixitem1_1 == 6 && .@mixitem1_2 == 1 && .@mixitem1_3 == 0 && .@mixitem2 == 1 && .@mixitem3 == 3 && .@magic_powder == 3) {
			mes "[Mixing Machine]";
			mes "Mage Test Solution No. 3.";
			getitem Mage_Test_3,1;
			next;
		}
		else if (.@mixitem1_1 == 2 && .@mixitem1_2 == 3 && .@mixitem1_3 == 0 && .@mixitem2 == 2 && .@mixitem3 == 4 && .@magic_powder == 4) {
			mes "[Mixing Machine]";
			mes "Mage Test Solution No. 4.";
			getitem Mage_Test_4,1;
			next;
		}
		else {
			mes "[Mixing Machine]";
			mes "Unexpected";
			mes "Error Occurred.";
			getitem Mage_Test_Etc,1;
			next;
		}
		mes "[Mixing Machine]";
		mes "Mixing Complete.";
		mes "Thank you.";
		close;
	}
	close;
}

// The Morroc Solution and Payon Solution traders
// are also used in the Sage skill quests, and have
// been moved to npc/quests/mage_solution.txt.
//
// pay_arche,122,100,0	script	Dollshoi	4_M_ORIENT01,{}
// moc_ruins,91,150,0	script	Ponka-Hontas	4_F_04,{}

geffen_in,177,112,4	script	Bookshelf	HIDDEN_NPC,{
	mes "[Guide Book]";
	mes "This Guide Book is the property of the Geffen Mage Association. Please handle with care.";
	next;
	switch(select("Solution No. 1.", "Solution No. 2.", "Solution No. 3.", "Solution No. 4.", "Close.")) {
	case 1:
		mes "[Mage Test Solution No. 1]";
		mes "* Ingredients List *";
		mes "2 Jellopy";
		mes "3 Fluff";
		mes "1 Milk";
		next;
		mes "[Mage Test Solution No. 1]";
		mes "* Solvent Agent *";
		mes "Payon Solution";
		mes "Where to Find:";
		mes "A small spring in Payon, the Archer Village.";
		next;
		mes "[Mage Test Solution No. 1]";
		mes "* Magic Power Serial Code *";
		mes "8472";
		next;
		mes "[Mage Test Solution No. 1]";
		mes "* Catalyst *";
		mes "Yellow Gemstone";
		mes "(Provided by";
		mes "Mixing Machine)";
		close;
	case 2:
		mes "[Mage Test Solution No. 2]";
		mes "* Ingredients List *";
		mes "3 Jellopy";
		mes "1 Fluff";
		mes "1 Milk";
		next;
		mes "[Mage Test Solution No. 2]";
		mes "* Solvent Agent *";
		mes "None";
		next;
		mes "[Mage Test Solution No. 2]";
		mes "* Magic Power Serial Code *";
		mes "3735";
		next;
		mes "[Mage Test Solution No. 2]";
		mes "* Catalyst *";
		mes "Red Gemstone";
		mes "(Provided by";
		mes "Mixing Machine)";
		close;
	case 3:
		mes "[Mage Test Solution No. 3]";
		mes "* Ingredients List *";
		mes "6 Jellopy";
		mes "1 Fluff";
		next;
		mes "[Mage Test Solution No. 3]";
		mes "* Solvent Agent *";
		mes "Payon Solution";
		mes "Where to Find:";
		mes "A small spring in Payon, the Archer Village.";
		next;
		mes "[Mage Test Solution No. 3]";
		mes "* Magic Power Serial Code *";
		mes "2750";
		next;
		mes "[Mage Test Solution No. 3]";
		mes "* Catalyst *";
		mes "Blue Gemstone";
		mes "(Provided by";
		mes "Mixing Machine)";
		close;
	case 4:
		mes "[Mage Test Solution No. 4]";
		mes "* Ingredients List *";
		mes "2 Jellopy";
		mes "3 Fluff";
		next;
		mes "[Mage Test Solution No. 4]";
		mes "* Solvent Agent *";
		mes "Morroc Solution";
		mes "Where to Find:";
		mes "A small spring near entrance of pyramid in Morroc.";
		next;
		mes "[Mage Test Solution No. 4]";
		mes "* Magic Power Serial Code *";
		mes "5429";
		next;
		mes "[Mage Test Solution No. 4]";
		mes "* Catalyst *";
		mes "1 carat Diamond";
		mes "(Provided by";
		mes "Mixing Machine)";
		close;
	}
	close;
}
