Browse Source

- Added quest log commands to all job quests.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14054 54d463be-8e91-2dee-dedb-b68131a5f0ec
Kisuka 15 years ago
parent
commit
7ba1afd5c5

+ 2 - 2
npc/jobs/1-1/acolyte.txt

@@ -184,10 +184,10 @@ prt_church,184,41,4	script	Cleric#aco	60,{
 		skill 143,0,0;
 		callfunc "Job_Change",Job_Acolyte;
 		callfunc "F_ClearJobVar";
-		if(checkquest(1001) != "-1") {
+		if(checkquest(1001) != -1) {
 			completequest 1001;
 		}
-		else if(checkquest(1002) != "-1") {
+		else if(checkquest(1002) != -1) {
 			completequest 1002;
 		}
 		else {

+ 3 - 3
npc/jobs/1-1/mage.txt

@@ -209,13 +209,13 @@ geffen_in,164,124,4	script	Mage Guildsman	123,{
 		callfunc "Job_Change",Job_Mage;
 		callfunc "F_ClearJobVar";
 		set Zeny,Zeny+50;
-		if(checkquest(1005) != "-1") {
+		if(checkquest(1005) != -1) {
 			completequest 1005;
 		}
-		else if(checkquest(1006) != "-1") {
+		else if(checkquest(1006) != -1) {
 			completequest 1006;
 		}
-		else if(checkquest(1007) != "-1") {
+		else if(checkquest(1007) != -1) {
 			completequest 1007;
 		}
 		else {

+ 3 - 3
npc/jobs/1-1/merchant.txt

@@ -153,13 +153,13 @@ alberta_in,53,43,6	script	Merchant#mer	86,{
 		mes "Congratulations!";
 		callfunc "Job_Change",Job_Merchant;
 		callfunc "F_ClearJobVar";
-		if(checkquest(1009) != "-1") {
+		if(checkquest(1009) != -1) {
 			completequest 1009;
 		}
-		else if(checkquest(1010) != "-1") {
+		else if(checkquest(1010) != -1) {
 			completequest 1010;
 		}
-		else if(checkquest(1011) != "-1") {
+		else if(checkquest(1011) != -1) {
 			completequest 1011;
 		}
 		else {

+ 374 - 387
npc/jobs/1-1e/gunslinger.txt

@@ -1,13 +1,9 @@
 //===== eAthena Script ======================================= 
 //= Gunslinger Job Quest
 //===== By: ================================================== 
-//= erKURITA & RockmanEXE
-//= Direct credits quote from RockmanExe: 
-//= "info provided by RockmanEXE cause he pwnz0rz yer arse"
-//= DON'T REMOVE THIS! (by request of him, he provided all
-//= the info regarding the quests and shops.)
+//= erKURITA, RockmanEXE, Kisuka
 //===== Current Version: ===================================== 
-//= 2.1c
+//= 2.2
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -29,408 +25,399 @@
 //= 2.1a Corrected a Typo error ";;". [Samuray22]
 //= 2.1b Corrected some typos errors. (bugreport:1549) [Samuray22]
 //= 2.1c Fixed some missing/messed up item checks. (bugreport:2693) [Kisuka]
+//= 2.2 Updated to match AEGIS script and Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 que_ng,152,167,3	script	Master Miller	901,{
-
-	mes "[Master Miller]";
-	if(Class == Job_Novice && JobLevel > 9)
-	{
-		switch(GUNS_Q)
-		{
-			case 0:
-				mes "I'm a Security Chief and also";
-				mes "a Gunslinger Instructor, you may call me";
-				mes "Master Miller.";
-				next;
-				mes "[Master Miller]";
-				mes "I can't be distracted from my duty";
-				mes "at this moment.";
-				mes "What is it that you want?";
-				next;
-				switch( select( "Nothing much.","I want to become a Gunslinger.") )
-				{
-					case 1:
-						mes "[Master Miller]";
-						mes "Wasting my time is like,";
-						mes "wasting gold.";
-						mes "Get out of my sight immediatly.";
-						close;
-
-					case 2:
-						mes "[Master Miller]";
-						mes "Hmm.";
-						mes "You still look young";
-						mes "but the look in your eyes...";
-						mes "I can sense a powerful force.";
-						next;
-						mes "[Master Miller]";
-						mes "Hmm...Okay.";
-						mes "First, if you have the will to become a Gunslinger";
-						mes "you will need to go through some tests";
-						mes "and also interview and Training Sessions.";
-						next;
-						mes "[Master Miller]";
-						mes "Do you wish to proceed?";
-						next;
-						switch (select ("No, I need time to think.","Sure.") )
-						{
-							case 1:
-								mes "[Master Miller]";
-								mes "Hmm..Is that so.";
-								mes "Well, it is important...";
-								mes "Think carefully and if you have the spirit,";
-								mes "please, come back later.";
-								close;
-
-							case 2:
-								mes "[Master Miller]";
-								mes "Hmm. Okay.";
-								mes "First";
-								mes "deliver this letter I am giving to you";
-								mes "to Payon's Alchemist,";
-								mes "'The Wise Bull Horn'";
-								mes "and hand the letter to him.";
-								next;
-								mes "[Master Miller]";
-								mes "He will judge you and";
-								mes "will report back to us if ";
-								mes "you are up to our standards.";
-								next;
-								mes "["+ strcharinfo(0) +"]";
-								mes "Allright, I'll do that.";
-								set GUNS_Q,1;
-								close;
-						}
-				}
-
-			case 1:	
-				mes "Hurry up and get moving.";
-				mes "'The Wise Bull Horn' is";
-				mes "currently in Payon.";
-				close;
-
-			case 2:
-				mes "I guess he gave you";
-				mes "some errands to run.";
-				next;
-				mes "[Master Miller]";
-				mes "I think he saw potential in you.";
-				mes "Good luck.";
-				close;
-
-			case 3:
-				mes "That's a lot of errands";
-				mes "I already told you, the";
-				mes "old man is pretty serious.";
-				mes "Perform your task well.";
-				close;
-
-			case 4:
-				mes "Mm~ I'll be waiting for your news.";
-				mes "I hope you'll become one of us.";
-				mes "We'll be practically family..";
-				close;
-
-			case 5:
-				if (skillpoint > 0)	{
-					mes "Learn all your Basic Skills first!!";
-					close;
-				}
-				mes "Ohh, I see you got something from the old man";
-				mes "This is rare.";
-				mes "Under normal circumstances...";
-				mes "this would not be allowed...";
-				mes "Nice, nice.";
-				next;
-				mes "[Master Miller]";
-				mes "Mm..Okay.";
-				mes "The old man gave his";
-				mes "blessings, so I do not have any";
-				mes "reason to reject your application.";
-				next;
-				mes "[Master Miller]";
-				mes "Okay, from now on you'll be a Gunslinger.";
-				mes "After this, for every moment that you live,";
-				mes "remember can never leave your side";
-				mes "is your gun. We must remember the gun";
-				mes "and even every one of its bullets";
-				mes "has its own product number,";
-				mes "and can be checked up by us.";
-				next;
-				mes "[Master Miller]";
-				mes "For purchasing guns and ammo";
-				mes "the only place you can buy them";
-				mes "is from our special gunslinger";
-				mes "guild stores in various places.";
-				next;
-				mes "[Master Miller]";
-				mes "Of course, this is tedious.";
-				mes "But this is all to...";
-				mes "not let these guns";
-				mes "fall in the wrong hands, so";
-				mes "please forgive us for any inconvenience.";
-				next;
-				mes "[Master Miller]";
-				mes "There are also";
-				mes "other reasons.";
-				mes "You'll no doubt find some of them";
-				mes "later.";
-				mes "These are all the instructions";
-				mes "from Lady Celena, our";
-				mes "guild leader.";
-				next;
-				mes "[Master Miller]";
-				mes "After a bit of time";
-				mes "we will give you missions.";
-				mes "You will understand more";
-				mes "later.";
-				next;
-				mes "[Master Miller]";
-				mes "I'm sure we'll see each other again.";
-				mes "So here's to a nice time";
-				mes "working together.";
-				nude;
-				callfunc "Job_Change",Job_Gunslinger;
-				callfunc "F_ClearJobVar";
-				set GUNS_Q,6;
-				set @gun_ex,rand(1,2);
-				if(@gun_ex == 1) getitem 13100,1; else getitem 13150,1;
-				close;
-		}
-	} else if(Class == Job_Novice && JobLevel < 10) {
-		mes "Hmm, I think you";
-		mes "have the potential";
-		mes "but you're not yet strong enough.";
-		mes "Keep getting stronger and";
-		mes "come back later.";
-		close;
-	} else if(Class == Job_Gunslinger) {
-		mes "Oh~ It's been a long time~";
-		mes "So, how have your travels been?";
-		mes "Remember, always take care";
-		mes "of your gun.";
-		close;
-	} else if(Class == Job_Baby) {
-		mes "Ouch~";
-		mes "How did a baby come here~";
-		mes "Peekaboo~";
-		next;
+	if (Upper == 2) {
 		mes "[Master Miller]";
-		mes "Where's your mommy~";
-		mes "Haha~";
-		mes "It's a dangerous place here.";
-		mes "Go play somewhere else.";
-		close;
-	} else {
-		mes "Don't get distracted with me.";
-		mes "Get on with your traveling.";
+		mes "Well, aren't you an";
+		mes "adorable little child~";
+		mes "Where's your mommy?";
+		mes "This place is dangerous, so";
+		mes "please go home soon, okay?";
 		close;
 	}
-}
-
-payon,184,65,3	script	The Wise Bull Horn	866,{
-
-	switch(GUNS_Q)
-	{
-		case 0:
-			mes "[The Wise Bull Horn]";
-			mes "Zzz...Zzz";
+	if (Class == Job_Novice) {
+		if (JobLevel < 10 || getskilllv("NV_BASIC") < 9) {
+			mes "[Master Miller]";
+			mes "Interested in becoming";
+			mes "a Gunslinger, eh? You've";
+			mes "got potential, but you're";
+			mes "not yet experienced enough.";
+			mes "Just train yourself a bit more,";
+			mes "and then come back, you hear?";
 			close;
-
-		case 1:
-			mes "[The Wise Bull Horn]";
-			mes "...Hmm... Young one";
-			mes "What is it that you want.";
-			next;
-			mes "["+ strcharinfo(0) +"]";
-			mes "Mr. Miller sent me here.";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "Miller...";
-			mes "Mm...Hmm. So Dark Fox";
-			mes "sent you here...";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "He is wise and cunning...";
-			mes "that is willing to sacrifice himself for his teammates.";
-			mes "mm...If he sent you..";
-			mes "Then you should be rather capable...";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "Wait...come closer...";
-			next;
-			mes "["+ strcharinfo(0) +"]";
-			mes "....";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "mmm...";
-			mes "mmmmm....";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "mmm...Bright eyes and...";
-			mes "a serious face...also...";
-			mes "a very good attitude...a good sense of...";
-			mes "responsibility...";
-			mes "But still not enough.";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "Lack of experience...";
-			mes "And you still don't have the blessing of the land...";
-			mes "You'll get injured at this rate...";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "Very well, I shall craft you a gift...";
-			mes "If you wish to follow this path...";
-			mes "Gather 3 Rainbow Shells,";
-			mes "10 Shells, 3 Feathers,";
-			mes "1 Trunk, 3 Zargons, and 3 Green Herbs,";
-			mes "then bring them to me.";
+		}
+		if (GUNS_Q == 0) {
+			mes "[Master Miller]";
+			mes "I'm Miller, a full time";
+			mes "Gunslinger drillmaster, and";
+			mes "full time guardian for Lady";
+			mes "Selena. Now, what do you";
+			mes "need? If it's not important, then I can't make the time for you.";
 			next;
-			mes "[The Wise Bull Horn]";
-			mes "If you show the gift that you just received";
-			mes "to Dark Fox. Then he will definitely...";
-			mes "accept you.";
+			if(select("Nothing.:I want to become a Gunslinger.") == 1) {
+				mes "[Master Miller]";
+				mes "Don't waste my time.";
+				mes "If you do want to become";
+				mes "a Gunslinger, then come";
+				mes "back and talk to me.";
+				close;
+			}
+			mes "[Master Miller]";
+			mes "Hm. You're pretty young, but";
+			mes "your eyes tell me that you're";
+			mes "pretty ambitious. You'll need to pass our interview and educational";
+			mes "course to become a Gunslinger. Do you want to apply for the job?";
 			next;
-			mes "["+ strcharinfo(0) +"]";
-			mes "-I'll need-";
-			mes "-3 Rainbow Shells-";
-			mes "-10 Shells, 3 Feathers-";
-			mes "-1 Trunk, 3 Zargons,-";
-			mes "-and 3 Green Herbs.-";
-			set GUNS_Q,2;
-			close;
-
-		case 2:
-			if ((countitem(1013) < 3) || (countitem(935) < 10) || (countitem(949) < 3) || (countitem(1019) < 1) || (countitem(912) < 3) || (countitem(511) < 3))
-			{
-				mes "["+ strcharinfo(0) +"]";
-				mes "-I'll need-";
-				mes "-3 Rainbow Shells-";
-				mes "-10 Shells, 3 Feathers-";
-				mes "-1 Trunk, 3 Zargons,-";
-				mes "-and 3 Green Herbs.-";
+			if(select("Give me some time to think.:Sure!") == 1) {
+				mes "[Master Miller]";
+				mes "Understandable.";
+				mes "If you do decide that";
+				mes "you want to become";
+				mes "a Gunslinger, then let";
+				mes "me know right away.";
+				mes "I'll get you started.";
 				close;
 			}
-			mes "[The Wise Bull Horn]";
-			mes "Oh...give them to me.";
-			mes "There is time to be consumed to";
-			mes "make the gift, wait for a while.";
-			delitem  935,10;
-			delitem  949,3;
-			delitem 1019,1;
-			delitem  912,3;
-			delitem  511,3;
-			delitem 1013,3;
-			set GUNS_Q,3;
+			mes "[Master Miller]";
+			mes "Great, great. Alright then,";
+			mes "let's get you started. Take";
+			mes "this letter to Mr. Wise Bull";
+			mes "Horn in Payon. He's a shaman";
+			mes "that will judge whether or not";
+			mes "you qualify to be a Gunslinger.";
+			set GUNS_Q,1;
+			setquest 6020;
 			close;
-
-		case 3:
-			mes "[The Wise Bull Horn]";
-			mes "Mm...You came right on time.";
-			mes "The preparation finished just now.";
-			mes "It is a rather simple gift.";
-			mes "But that's because I haven't worked in so long.";
-			mes "Ahh...I feel tired now...";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "The last time I crafted this...";
-			mes "Was well over ten years ago.";
-			mes "I also followed this path once...";
-			mes "and I once battled...";
-			mes "with such an item.";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "Meeting Celena's father";
-			mes "feels just like yesterday,";
-			mes "time really flies.";
-			mes "Like the smooth western wind.";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "Though there would always be painful";
-			mes "memories...but my followers...";
-			mes "especially people like...";
-			mes "Celena and Dark Fox.";
-			mes "Ahh, young people, and my followers...";
-			mes "I thank you...";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "Though now, I am already old...";
-			mes "In a short while...";
-			mes "I will return...to the land";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "I feel so tired...";
-			mes "I'm so sorry...but if you could...";
-			mes "Promise me something...";
-			mes "Promise to do...something for me.";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "I suddenly feel like...";
-			mes "drinking a glass of milk.";
-			next;
-			mes "[The Wise Bull Horn]";
-			mes "Take it as a request...from an old man.";
-			next;
-			mes "["+ strcharinfo(0) +"]";
-			mes "-Let's get a glass of Milk-";
-			mes "For 'The Wise Bull Horn'.-";
-			set GUNS_Q, 4;
+		}
+		else if(GUNS_Q == 1) {
+			mes "[Master Miller]";
+			mes "Take that letter of";
+			mes "introduction I've written";
+			mes "for you to Mr. Wise Bull";
+			mes "Horn in Payon. He'll test";
+			mes "you to see if you're really";
+			mes "Gunslinger material.";
 			close;
-		
-		case 4:
-			if (countitem(519) < 1)
-			{
-				mes "["+ strcharinfo(0) +"]";
-				mes "-Let's get a glass of Milk-";
-				mes "-for 'The Wise Bull Horn'.-";
+		}
+		else if(GUNS_Q == 2) {
+			mes "[Master Miller]";
+			mes "Hmm... Wise Bull Horn";
+			mes "asked you to collect the";
+			mes "items you need to make the";
+			mes "voucher? Hm. I guess that's";
+			mes "part of his qualification test.";
+			close;
+		}
+		else if(GUNS_Q == 3) {
+			mes "[Master Miller]";
+			mes "Wise Bull Horn asked";
+			mes "you to bring him some";
+			mes "Milk? He must really like";
+			mes "you if he's already asking";
+			mes "for favors. Good luck, friend.";
+			close;
+		}
+		else if(GUNS_Q == 4) {
+			mes "[Master Miller]";
+			mes "I expect to hear good";
+			mes "news from you soon. You";
+			mes "know, I have no doubt that";
+			mes "you'll become a Gunslinger.";
+			close;
+		}
+		else if(GUNS_Q == 5) {
+			if (Skillpoint != 0) {
+				mes "[Master Miller]";
+				mes "Hey, you have leftover";
+				mes "Skill Points. You better";
+				mes "use them all up before you";
+				mes "come and talk to me again.";
 				close;
 			}
-			mes "[The Wise Bull Horn]";
-			mes "Thank you.";
-			mes "You are truly a kind young man.";
-			mes "Now get on the road.";
-			delitem 519,1;
-			set GUNS_Q,5;
+			mes "[Master Miller]";
+			mes "Oh, you've brought a";
+			mes "voucher from Wise Bull Horn?";
+			mes "It's been a while since he's";
+			mes "given one to anybody, so";
+			mes "I'm really proud of you!";
 			next;
-			mes "[The Wise Bull Horn]";
-			mes "Take this Gift made by me";
-			mes "and show it to Dark Fox.";
-			mes "You have my blessings";
-			mes "to become a Gunslinger.";
+			mes "[Master Miller]";
+			mes "If Wise Bull Horn approves,";
+			mes "then I have no reason to";
+			mes "reject you. Alright then, I'll";
+			mes "promote you to a Gunslinger.";
+			mes "But first, let me explain";
+			mes "our job in more detail.";
 			next;
-			mes "[The Wise Bull Horn]";
-			mes "Ee~~Ye~Ee~~ Hooma~ Raa~~Nae~Eee~~";
-			mes "Ee~~Ye~Ee~~ Hooma~ Raa~~Nae~Eee~~";
+			mes "[Master Miller]";
+			mes "As a Gunslinger, you must";
+			mes "keep your gun with you at";
+			mes "all times. The Gunslinger";
+			mes "Guild keeps track of every Gun";
+			mes "and Bullet, so you can only get";
+			mes "them from our guild members.";
 			next;
-			mes "["+ strcharinfo(0) +"]";
-			mes "-Singing a weird-";
-			mes "-song-";
-			mes "-'The Wise Bull Horn'. I feel strange.-";
-			mes "-Let's take the Gift-";
-			mes "-to Mr.Miller now.-";
-			close;
-
-		case 5:
-			mes "[The Wise Bull Horn]";
-			mes "Ee~~Ye~Ee~~ Hooma~ Raa~~Nae~Eee~~";
-			mes "Ee~~Ye~Ee~~ Hooma~ Raa~~Nae~Eee~~";
+			mes "[Master Miller]";
+			mes "Don't worry, Gunslinger";
+			mes "Guildsmen can be found almost";
+			mes "anywhere these days. Anyway,";
+			mes "it has to be this way by order of our guild leader, Lady Selena.";
 			next;
-			mes "["+ strcharinfo(0) +"]";
-			mes "-Singing a weird-";
-			mes "-song-";
-			mes "-'The Wise Bull Horn'.-";
+			mes "[Master Miller]";
+			mes "You might get the chance to";
+			mes "meet her one of these days.";
+			mes "Anyway, just now that we have";
+			mes "to regulate Gun and Bullet sales to keep them away from evil";
+			mes "or irresponsible folk.";
 			next;
-			mes "["+ strcharinfo(0) +"]";
-			mes "-I feel strange.-";
-			mes "-Let's take the Gift-";
-			mes "-to Mr.Miller now.-";
+			mes "[Master Miller]";
+			mes "In any case, it's always";
+			mes "a pleasure for me to talk";
+			mes "to another Gunslinger, so";
+			mes "let's keep in touch. May the";
+			mes "power of the earth protect";
+			mes "you in all of your adventures~";
+			callfunc "Job_Change",Job_Gunslinger;
+			set GUNS_Q,6;
+			completequest 6024;
+			if (rand(1,2) == 1) {
+				getitem 13100,1;	// Six_Shooter
+			}else{
+				getitem 13150,1;	// Branch
+			}
+			close;
+		}
+	}else{
+		if (Class == Job_Gunslinger) {
+			mes "[Master Miller]";
+			mes "Oh! Long time, no see,";
+			mes "friend. How have you been?";
+			mes "I hope you've been keeping";
+			mes "you Gun well maintained.";
+			mes "Take care of it, and it'll take";
+			mes "care of you. Remember it.";
 			close;
-		
-		case 6:
-			mes "[The Wise Bull Horn]";
-			mes "Mm...It's been a while.";
-			mes "Hopefully you'll become a strong Gunslinger.";
+		}else{
+			mes "[Master Miller]";
+			mes "If you don't have";
+			mes "any business with me,";
+			mes "then please go on your way.";
 			close;
+		}
 	}
 }
+
+payon,184,65,3	script	Wise Bull Horn	866,{
+	if (GUNS_Q == 1) {
+		mes "[Wise Bull Horn]";
+		mes "Hello, young wolf.";
+		mes "What business has";
+		mes "brought you before me?";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Mr. Miller sent me to";
+		mes "deliver this letter to you.";
+		mes "Actually, I'm interested in";
+		mes "becoming a Gunslinger...";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "Miller, you said?";
+		mes "Hm, the Black Fox doesn't";
+		mes "give introductions for anyone";
+		mes "he doesn't believe will make";
+		mes "a good Gunslinger. Yes, I think";
+		mes "I know why he sent you to me.";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "I can see it in your eyes:";
+		mes "you've got a warm heart and a";
+		mes "strong sense of responsibility.";
+		mes "All you need is the blessing";
+		mes "of the Earth to protect you";
+		mes "as a Gunslinger.";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "I can make a voucher that";
+		mes "will demonstrate your desire";
+		mes "to become a warrior of the";
+		mes "earth for you to present to";
+		mes "Gunslinger drillmasters.";
+		mes "I shall need these items...";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "^3355FF1 Trunk^000000,";
+		mes "^3355FF3 Fluffs^000000,";
+		mes "^3355FF3 Zargons^000000,";
+		mes "^3355FF10 Shells^000000,";
+		mes "^3355FF3 Green Herbs^000000, and";
+		mes "^3355FF3 Rainbow Shells^000000.";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "After I complete the";
+		mes "voucher, you may bring";
+		mes "it to Black Fox, and he";
+		mes "will help you achieve";
+		mes "your goal of becoming";
+		mes "a Gunslinger.";
+		set GUNS_Q,2;
+		changequest 6020,6021;
+		close;
+	}
+	else if(GUNS_Q == 2) {
+		if (countitem(912) < 3 || countitem(914) < 3 || countitem(1019) < 1 || countitem(935) < 10 || countitem(511) < 3 || countitem(1013) < 3) {
+			mes "[Wise Bull Horn]";
+			mes "I can make a voucher that";
+			mes "will demonstrate your desire";
+			mes "to become a warrior of the";
+			mes "earth for you to present to";
+			mes "Gunslinger drillmasters.";
+			mes "I shall need these items...";
+			next;
+			mes "[Wise Bull Horn]";
+			mes "^3355FF1 Trunk^000000,";
+			mes "^3355FF3 Fluffs^000000,";
+			mes "^3355FF3 Zargons^000000,";
+			mes "^3355FF10 Shells^000000,";
+			mes "^3355FF3 Green Herbs^000000, and";
+			mes "^3355FF3 Rainbow Shells^000000.";
+			next;
+			mes "[Wise Bull Horn]";
+			mes "After I complete the";
+			mes "voucher, you may bring";
+			mes "it to Black Fox, and he";
+			mes "will help you achieve";
+			mes "your goal of becoming";
+			mes "a Gunslinger.";
+			close;
+		}
+		delitem 912,3;	// Zargon
+		delitem 914,3;	// Fluff
+		delitem 1019,1;	// Wooden_Block
+		delitem 935,10;	// Shell
+		delitem 511,3;	// Green_Herb
+		delitem 1013,3;	// Colorful_Shell
+		set GUNS_Q,3;
+		changequest 6021,6022;
+		mes "[Wise Bull Horn]";
+		mes "Ah, you've returned";
+		mes "with everything I need.";
+		mes "Please give me some time";
+		mes "to make the voucher. If you";
+		mes "come back in a little while,";
+		mes "I should be finished with it.";
+		close;
+	}
+	else if(GUNS_Q == 3) {
+		mes "[Wise Bull Horn]";
+		mes "Oh, you've arrived just";
+		mes "in time. It's been a while";
+		mes "since I've made one of these vouchers, so I might be a little";
+		mes "rusty. Still, this really takes me back to the days of my youth.";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "I've been serving in this";
+		mes "position of choosing worthy";
+		mes "recipients of Gunslinger";
+		mes "vouchers for a few decades";
+		mes "now. But before that, I was a";
+		mes "young adventurer just like you.";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "It feels like it was only";
+		mes "yesterday when I held my own";
+		mes "little voucher as a Gunslinger,";
+		mes "a warrior of the earth. That's";
+		mes "when I met Selena's father...";
+		mes "How can time pass so quickly?";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "Ah... I reallly appreciate";
+		mes "Selena and Black Fox for all";
+		mes "of their help in recruiting";
+		mes "young Gunslingers. I'm very";
+		mes "old now, and can't do everything by myself. *Sigh...* Such is life.";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "Before you leave, may";
+		mes "I ask you for a small favor?";
+		mes "I'm thirsty, and would like";
+		mes "a cold glass of Milk. Would";
+		mes "you please bring me some?";
+		set GUNS_Q,4;
+		changequest 6022,6023;
+		close;
+	}
+	else if(GUNS_Q == 4) {
+		if (countitem(519) < 1) {
+			mes "[Wise Bull Horn]";
+			mes "I'm an old man that will";
+			mes "soon be reunited with mother";
+			mes "earth. Would you do this old";
+			mes "Gunslinger a favor a bring me";
+			mes "a cold glass of Milk, please?";
+			close;		
+		}
+		delitem 519,1;	// Milk
+		set GUNS_Q,5;
+		changequest 6023,6024;
+		mes "[Wise Bull Horn]";
+		mes "Oh, thank you for your!";
+		mes "generosity--I see that";
+		mes "you've brought me some";
+		mes "Milk. Ahhhh, delicious~";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "I admire the patience,";
+		mes "gentleness, and kindness";
+		mes "that you've proven by bringing";
+		mes "this to me. Yes, those are traits we all want Gunslingers to have.";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "Now, please take this voucher";
+		mes "to Miller, the Black Fox, with";
+		mes "my whole hearted approval.";
+		mes "I hope that you will use your";
+		mes "gun to uphold justice as a";
+		mes "noble warrior of the earth.";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "Eeh~Yeah~Eeh~Hooom";
+		mes "Eeh~Yeah~Eeh~Hooom";
+		mes "Maaaaarrraaa Neeey~";
+		mes "Yippee Yippee Yai Yocaiyay~";
+		close;
+	}
+	else if(GUNS_Q == 5) {
+		mes "[Wise Bull Horn]";
+		mes "Please take this voucher";
+		mes "to Miller, the Black Fox, with";
+		mes "my whole hearted approval.";
+		mes "I hope that you will use your";
+		mes "gun to uphold justice as a";
+		mes "noble warrior of the earth.";
+		next;
+		mes "[Wise Bull Horn]";
+		mes "Eeh~Yeah~Eeh~Hooom";
+		mes "Eeh~Yeah~Eeh~Hooom";
+		mes "Maaaaarrraaa Neeey~";
+		mes "Yippee Yippee Yai Yocaiyay~";
+		close;
+	}
+	else if(GUNS_Q == 6) {
+		mes "[Wise Bull Horn]";
+		mes "AAh, long time no see.";
+		mes "I hope that you become";
+		mes "a smart beast, and use";
+		mes "your powers as a Gunslinger to protect what is good and just.";
+		close;
+	}
+	else {
+		mes "[Wise Bull Horn]";
+		mes "Zzzzzz~";
+		mes "^333333*Phew*^000000";
+		close;
+	}
+}

+ 540 - 642
npc/jobs/1-1e/ninja.txt

@@ -1,11 +1,11 @@
 //===== eAthena Script ======================================= 
 //= Ninja Job Quest
 //===== By: ================================================== 
-//= Legionaire
+//= Legionaire, Kisuka
 //===== Current Version: ===================================== 
-//= 1.4
+//= 1.5
 //===== Compatible With: ===================================== 
-//= eAthena SVN that supports Ninjas
+//= eAthena SVN
 //===== Description: ========================================= 
 //= Ninja Job Change Quest
 //===== Additional Comments: ================================= 
@@ -13,675 +13,573 @@
 //= 1.2 Added Akagi [Playtester]
 //= 1.3 Updated dialogs to official ones and optimized [SinSloth]
 //= 1.4 Fixed a minor bug [SinSloth]
+//= 1.5 Updated to match AEGIS script and Added Quest Log commands. [Kisuka]
 //============================================================ 
 
-alberta,30,65,3	script	Akagi#nq	730,{
-
-	if(Class == Job_Novice)
-	{
-		if(JobLevel > 9)
-		{
+alberta,30,65,3	script	Akagi	730,{
+	if (Class == Job_Novice) {
+		if (JobLevel == 10) {
 			mes "[Akagi]";
-			mes "Hmm...";
-			mes "Some force must have lead your feet to this dark alley because you are needed here.";
-			mes "Would you like to walk the path of Patience?";
-			next;
-			if(select("No, I don't want to go.:Yep, I'll walk the path.") == 1)
-			{
+			mes "Hmmm...";
+			mes "You must have come,";
+			mes "sensing that someone";
+			mes "is waiting for you here.";
+			mes "Tell me, do you seek";
+			mes "the path of patience?";
+			next;
+			if(select("No:Yes") == 1) {
 				mes "[Akagi]";
-				mes "Ok.";
-				mes ".....";
-				mes "Then farewell.";
+				mes "I see.";
+				mes "To each his own,";
+				mes "I suppose. Take";
+				mes "care of yourself.";
 				close;
 			}
-			else
-			{
-				mes "[Akagi]";
-				mes "Very well, I'll send you over right away.";
-				close2;
-				switch (rand(3)) {
-					case 1:  warp "amatsu", 170, 229; break;
-					case 2:  warp "amatsu", 216, 188; break;
-					default: warp "amatsu", 178, 176; break;
-				}
-				end;
+			mes "[Akagi]";
+			mes "Very well.";
+			mes "Then, let me";
+			mes "set you on that";
+			mes "path right away...";
+			close2;
+			switch(rand(3)) {
+				case 1:
+					warp "amatsu",170,229;
+					end;
+				case 2:
+					warp "amatsu",216,188;
+					end;
+				default:
+					warp "amatsu",178,167;
+					end;
 			}
-		}
-		else
-		{
+		}else{
 			mes "[Akagi]";
-			mes "This isn't where you should be.";
-			mes "Come back after you've become stronger.";
+			mes "Hm? I cannot be";
+			mes "of any service to";
+			mes "you until you grow";
+			mes "a little stronger...";
 			close;
 		}
-	}
-	else
-	{
+	}else{
 		mes "[Akagi]";
-		mes "I have nothing to say to you.";
-		mes "Go back to where you came from.";
-		close;
-	}
-}
-
-que_ng,30,65,3	script	Cougar Gai	730,{
-
-	if(Class == Job_Novice && JobLevel > 9)
-	{
-		switch(NINJ_Q)
-		{
-			case 0:
-				mes "["+strcharinfo(0)+"]";
-				mes "Excuse me.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Hmm...?";
-				mes "What the~!!";
-				mes "You can see me!";
-				next;
-				mes "[Cougar Gai]";
-				mes "Toriyaaa~!";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "-He throws a bundle of wooden chopsticks at you-";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "-Dart dart dart!-";
-				mes "Oww~!";
-				mes "Jeez~! What do you think you're doing!";
-				next;
-				mes "[Cougar Gai]";
-				mes "Hmm...?";
-				mes "I see you're not a hitman sent to kill me.";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "Oh jeez... What did I get myself into.";
-				mes "This guy is nuts.";
-				mes "Hasn't even seen me and is throwing stuff around...";
-				next;
-				mes "[Cougar Gai]";
-				mes "Urrgh~! Anger, anger~~";
-				mes "My forever rival and enemy...";
-				mes "Field Cat Joe!";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "........";
-				next;
-				mes "[Cougar Gai]";
-				mes "Gahhhhh~~~!!!";
-				mes "Urrgh~Urrgh~";
-				mes "Pft! Pft! Pft~";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "-What the.. He's not listening to me at all-";
-				next;
-				mes "[Cougar Gai]";
-				mes "Hmm...";
-				mes "What the! Who are you?!";
-				mes "And how did you get so close to me out of nowhere?";
-				mes "Take this!";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "Agh~";
-				mes "Ugh, please, can you quit that?";
-				mes "What you've done so far, anyway...";
-				next;
-				mes "[Cougar Gai]";
-				mes "Oho";
-				mes "What incredible skill~";
-				mes "You've evaded all my techniques.";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "- What techniques is he talking about? -";
-				mes "- And he's still not listening to me... -";
-				next;
-				mes "[Cougar Gai]";
-				mes "Hmm~ Yes~";
-				mes "Do you have some business with me?";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes ".........";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "Ah...umm...";
-				mes "Yes.";
-				mes "I came to see you because I want to be a Ninja.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Oho~ You've come to the right person.";
-				mes "But!";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes ".....";
-				next;
-				mes "[Cougar Gai]";
-				mes "It might be a little tough.";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "Huh~ Why~";
-				next;
-				mes "[Cougar Gai]";
-				mes "First off, I don't know if I can really trust you, and in my opinion..";
-				mes "It seems you don't have enough experience.";
-				next;
-				mes "[Cougar Gai]";
-				mes "So that's why i'm going to say..";
-				mes "Go!!! Get Lost~!";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "...........";
-				next;
-				mes "[Cougar Gai]";
-				mes "Hmm yes...";
-				mes "That's my final word.";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "...........";
-				next;
-				mes "[Cougar Gai]";
-				mes "Well, get going if you understood.";
-				mes "As you can see, I'm a very busy person...";
-				next;
-				mes "[Cougar Gai]";
-				mes "I have a lot of enemies around me, so I can't let my guard down for a single moment.";
-				next;
-				mes "[Cougar Gai]";
-				mes "I'm better leave to train for my next duel.";
-				mes "Yioooop~!";
-				next;
-				mes "[Cougar Gai]";
-				mes "Next time I will win for sure!";
-				mes "Just you wait!";
-				mes "Field Cat Joe!";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "Field Cat Joe ?";
-				mes "Why are you fighting with a cat?";
-				next;
-				mes "[Cougar Gai]";
-				mes "Huh? Oh oops! Hahaha~ Hehe~";
-				mes "Field Cat is that guy nickname.";
-				next;
-				mes "[Cougar Gai]";
-				mes "He's a very mischievous fellow.";
-				mes "Ther's not a method he won't use to win.";
-				next;
-				mes "[Cougar Gai]";
-				mes "And not only that -- The skills he uses are very brilliant and very strong.";
-				next;	
-				mes "[Cougar Gai]";
-				mes "It just so happens him and I have run out of Shuriken and Scrolls, so we're in a truce. Haha.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Well, if you really want to become a Ninja, how about you do me a favor?";
-				mes "If you fulfill this favor well, then although I can't make you a ninja, I can teach you a few techniques. You never know!";
-				next;
-				switch( select( "Accept to do the favor","Refuse to do the favor" ) )
-				{
-
-					case 1:
-						mes "["+strcharinfo(0)+"]";
-						mes "Hmm... Ok.";
-						next;
-						mes "[Cougar Gai]";
-						mes "Ok.. Very well.";
-						mes "Then deliver this letter to Field Cat Joe.";
-						next;
-						mes "[Cougar Gai]";
-						mes "It just says in there that until we're prepared, we should consider a truce.";
-						mes "Absolutely make sure to bring back his reply.";
-						next;
-						mes "[Cougar Gai]";
-						mes "By the way, my sources told me Field Cat Joe has gone to Einbroch.";
-						mes "Not sure why he went there though...";
-						next;
-						mes "[Cougar Gai]";
-						mes "He's pretty good in changing his appearance,";
-						mes "so it might be very difficult to find him.";
-						next;
-						mes "[Cougar Gai]";
-						mes "You'll have to look with your eyes peeled and search. He likes high places.";
-						mes "Look around well.";
-						next;
-						mes "["+strcharinfo(0)+"]";
-						mes "Ok~";
-						mes "I'll do it.";
-						set NINJ_Q,1;
-						close;
-
-					case 2:
-						mes "["+strcharinfo(0)+"]";
-						mes "I don't wish to simply learn a few techniques.";
-						mes "I'm sorry.";
-						mes "I'll go find someone else.";
-						mes "Find somebody else.";
-						next;
-						mes "[Cougar Gai]";
-						mes "Hmm... I see...";
-						mes "I understand.";
-						mes "I guess I wasted my breath.";
-						mes "Well, off with you now.";
-						close;
-				}
-
-			case 1:
-				mes "[Cougar Gai]";
-				mes "Hmm... It's nothing I need immediately, but do hurry.";
-				mes "Field Cat Joe is at Einbroch.";
-				close;
-
-			case 2:
-				mes "[Cougar Gai]";
-				mes "Don't forget to bring me back his reply.";
-				mes "I have to make sure he doesn't claim otherwise later.";
-				close;
-
-			case 3:
-				mes "[Cougar Gai]";
-				mes "Did you bring me back his reply?";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "Yes, here it is.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Ohh. I see you've met him and brought me his reply.";
-				mes "Well... Let's See.";
-				mes "- Rip rip... -";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "- He carefully reads the letter you brought to him -";
-				next;
-				mes "[Cougar Gai]";
-				mes "Ugh~!!! How can this be!";
-				mes "He refused my request for a short truce!!!";
-				mes "Did he remake his Kunai?";
-				mes "What now...";
-				next;
-				mes "[Cougar Gai]";
-				mes "I'm sorry, but I'd appreciate it if you can do me a favor.";
-				mes "I need to create weapons to fight against that Bastard Joe but I don't have enough ingredients.";
-				next;
-				mes "[Cougar Gai]";
-				mes "If you can get me these ingredients, then i'll acknowledge your abilities and make you a ninja.";
-				mes "What I need is...";
-				mes "1 Phracon and 5 Cyfar.";
-				mes "Time is of the essence, so please hurry.";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "Wait!!";
-				mes "Those are...";
-				next;
-				mes "[Cougar Gai]";
-				mes "What's the matter? Is there a problem?";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "I just got these ingredients for Joe...";
-				mes "Uggghhhh...";
-				next;
-				mes "[Cougar Gai]";
-				mes "What did you say?!!!";
-				mes "Then by sending you to him, I've ended up helping him...!";
-				mes "Ugh...";
-				mes "Aaahhh...";
-				mes "Why, why~ What a fool I am! An Idiot! A moron!!";
-				next;
-				mes "[Cougar Gai]";
-				mes "Ah.. Ah.. I'll calm down.";
-				mes "Hugh.. Hugh..";
-				next;
-				mes "[Cougar Gai]";
-				mes "You must help me, for now.";
-				mes "Since things have become like this, there's no time to explain now.";
-				mes "Hurry and get me what I need.";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "Uhh...Sure..";
-				next;
-				mes "[Cougar Gai]";
-				mes "Hurrrry~~!!";
-				mes "Sob~";
-				next;
-				mes "["+strcharinfo(0)+"]";
-				mes "- Let's bring Mr. Gai 1 Phracon -";
-				mes "- And 5 Cyfars -";
-				set NINJ_Q,4;
-				close;
-
-			case 4:
-				mes "[Cougar Gai]";
-				if(countitem(7053) < 5 || countitem(1010) < 1)
-				{
-					mes "Get me 1 Phracon and 5 Cyfars.";
-					mes "What you have isn't what I said I need before.";
-					mes "It's urgent, so please hurry.";
-					close;
-				}
-				if(skillpoint >0)
-				{
-					mes "Please come back after you've learned all the basic skills.";
-					close;
-				}
-				mes "Oh, Did you bring me the things I need?";
-				mes "Let's see...";
-				mes "Hmm~ I see you've brought me what I need.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Whew~ You've made it in time.";
-				mes "You work better than I thought.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Very well.";
-				mes "As promised, I'll officially turn you into a Ninja.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Let me properly introduce myself.";
-				mes "I am an Upper Rank Ninja from the Doga Ninja Clan of the East.";
-				mes "I'm operating as a Search Captain to find Kazuma-san, the leader of the village I'm from.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Tell you the truth, there's a lot of complication going on internally in the Ninja Clan lately, which was why I was hesitant to allow you to become a Ninja.";
-				next;
-				mes "[Cougar Gai]";
-				mes "But seeing how Joe has complimented you highly and have completed my request well, I've changed my mind.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Being a Ninja is a lonely job.";
-				mes "You must value your jobs but also never forget your humanity.";
-				next;
-				mes "[Cougar Gai]";
-				mes "You're in for a lot of struggle from here on.";
-				mes "Although we keep our identity secret, we operate in every single town.";
-				next;
-				mes "[Cougar Gai]";
-				mes "The creation and usage of the basic equiptment of Ninjas is kept secret.";
-				mes "The purchase and sale of Ninja gear is strictly regulated, so try to be careful.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Well, I hereby recognize you as a member of the Doga Ninja Clan.";
-				next;
-				mes "[Cougar Gai]";
-				mes "Be quick as a Hawk from the Wind of the East.";
-				mes "And light as a Leaf wavering in the Wind of the West!!";
-				next;
-				mes "[Cougar Gai]";
-				mes "Haaa!!!!";
-				next;
-				nude;
-				callfunc "Job_Change",Job_Ninja;
-				callfunc "F_ClearJobVar";				
-				getitem 13010,1;
-				close;
-
-		}
-	}
-	else if(Class == Job_Novice && JobLevel < 10)
-	{
-		mes "[Cougar Gai]";
-		mes "It looks like you need to train more.";
-		mes "Come back after you gained more muscle.";
-		close;
-	}
-	else if(Class == Job_Ninja)
-	{
-		mes "[Cougar Gai]";
-		mes "Hmm, how have you been?";
-		mes "You don't know when and where you may be asked to go on a mission, so don't put off your training for a single day.";
-		close;
-	}
-	else if(Class == Job_Baby)
-	{
-		mes "[Cougar Gai]";
-		mes "What the...! A super baby!";
-		mes "Has this location been so exposed that even babies know where it is?";
-		mes "Oh no~ Ah no~";
-		close;
-	}
-	else
-	{
-		mes "[Cougar Gai]";
-		mes "What the.. What's that stench?!";
-		mes "I was wondering what was causing that stench -- it was you.";
-		mes "Why, you're so young, there's still a milk mustache on your lips from drinking from your mother's bosoms.";
-		mes "Get lost, squirt.";
+		mes "Hmm...";
+		mes "You and I...";
+		mes "We are fairly equal in";
+		mes "terms of combat ability.";
+		mes "Perhaps we can spar";
+		mes "together sometime.";
 		close;
 	}
 }
 
-einbroch,184,194,3	script	Suspicious Guy#nin	881,{
-
-	if(Class == Job_Ninja)
-	{
-		mes "[Crimson Panther Joe]";
-		mes "Oh, I see you've become a Ninja";
-		mes "There will be many hardships in the future, so don't slack off in training.";
-		close;
-	}
-	else if(!NINJ_Q)
-	{
-		mes "[Suspicious Guy]";
-		mes "Hyaa~ This sure is a high spot.";
-		mes "I've been to many different lands, but this is the highest place I've found so far.";
-		mes "My only regret is that I can't spend more time looking around this spectacular view...";
+que_ng,30,65,3	script	Cougar#nq	730,{
+	if (Upper == 2) {
+		mes "[Cougar]";
+		mes "I... I've never";
+		mes "seen a baby as";
+		mes "powerful as you!";
+		mes "G-get away, you";
+		mes "freak of nature!";
 		close;
 	}
-	switch(NINJ_Q)
-	{
-		case 1:
-			mes "[Suspicious Guy]";
-			mes "Hiyaa~ This sure is a high place, right?";
-			mes "I've traveled to many countries, but this is the first time I've seen such a tall building.";
-			next;
-			mes "[Suspicious Guy]";
-			mes "The air is clean, the town is quiet, and all the houses are short and cozy where I come from.";
-			next;
+	if (Class == Job_Novice) {
+		if (JobLevel < 10) {
+			mes "[Cougar]";
+			mes "Hm? Have you come to";
+			mes "learn how to be a Ninja?";
+			mes "You're not quite experienced";
+			mes "enough yet, so come back";
+			mes "after you're more familiar";
+			mes "with fighting monsters.";
+			close;
+		}
+		if (NINJ_Q == 0) {
 			mes "["+strcharinfo(0)+"]";
-			mes "Ah! No way!";
-			mes "Amatsu?!!!";
+			mes "Excuse me.";
+			mes "H-hello?";
 			next;
-			mes "[Suspicious Guy]";
-			mes "Nope.";
-			mes "....";
+			mes "[Cougar]";
+			mes "...............................";
+			mes "How did you do that?";
 			next;
 			mes "["+strcharinfo(0)+"]";
-			mes "Hmm~";
-			mes "Not Amatsu...";
-			mes "Then are you from Izlude?";
-			next;
-			mes "[Suspicious Guy]";
-			mes "Yes, that's correct.";
-			mes "I'm from Izlude.";
+			mes "Do what? I didn't";
+			mes "do anything, I don't think...";
 			next;
-			mes "[Suspicious Guy]";
-			mes "Due to personal reasons, I'm temporarily visiting this resource-rich country.";
+			mes "[Cougar]";
+			mes "H-How are you able to";
+			mes "see me? I'm supposed to";
+			mes "be invisible to the naked eye.";
+			mes "Ah, now I get it. Wildcat Joe";
+			mes "must have sent you to kill me! I won't fall for your tricks! Die!";
 			next;
 			mes "["+strcharinfo(0)+"]";
-			mes "I see...";
-			mes "Oh, do you happen to know a person named Field Cat Joe?";
-			mes "He's a Ninja from Amatsu";
-			mes "I need to find him.";
-			next;
-			mes "[Suspicious Guy]";
-			mes "I don't know. I've never heard of such a name.";
-			mes "I guess you must have some important reason why you must meet that person.";
+			mes "W-wait! I-I don't even";
+			mes "know who Wildcat Joe is!";
+			mes "Calm down, there's no";
+			mes "need to get violent!";
+			next;
+			mes "[Cougar]";
+			mes "What...?";
+			mes "How did you dodge";
+			mes "all of my attacks?";
+			mes "You've got some talent,";
+			mes "I'll give you that.";
 			next;
 			mes "["+strcharinfo(0)+"]";
-			mes "Yes. I have to deliver this letter to him so that I may become a Ninja too.";
-			next;
-			mes "[Suspicious Guy]";
-			mes "Hmm... Judging by your clothes, I see you're a traveler too.";
-			next;
-			mes "[Suspicious Guy]";
-			mes "Come to think of it, you may be able to find the person you are looking for.";
-			next;
-			mes "[Suspicious Guy]";
-			mes "I think I may have met him once in this village.";
-			next;
-			mes "[Suspicious Guy]";
-			mes "I'd like to help you find him together, but I still have some things to do first...";
-			next;
-			mes "[Suspicious Guy]";
-			mes "If you help me out with what I'm doing, then I will search for Crimson Panther Joe with you.";
-			next;
-			switch( select( "I'll just search for him alone.","Ok, I'll help you." ) )
-			{
-				case 1:
-					mes "[Suspicious Guy]";
-					mes "Ah, I understand.";
-					mes "Good luck looking for him. If you need help later, come and talk to me before I leave...";
-					close;
-
-				case 2:
-					mes "[Suspicious Guy]";
-					mes "Hmm.. Let's see.";
-					mes "I've come here to gather some raw materials so that I may create something I need.";
-					next;
-					mes "[Suspicious Guy]";
-					mes "I will be seeking the materials I need too, but I'm always running short in raw materials.";
-					mes "I'd be grateful if you could find me 1 Phracon and 5 Cyfar.";
-					next;
-					mes "["+strcharinfo(0)+"]";
-					mes "- Let's go find 1 Phracon and 5 Cyfar.-";
-					set NINJ_Q,2;
-					close;
-			}
-
-		case 2:
-			if(countitem(1010) < 1 || countitem(7053) < 5){
-				mes "[Suspicious Guy]";
-				mes "I asked for 1 Phracon and 5 Cyfar.";
-				mes "It looks like you didn't gather the amount I've requested.";
-				mes "I don't need it immediately, but I'd appreciate it if you could get those items for me.";
-				close;
+			mes "...............................";
+			mes "I came here hoping";
+			mes "to change my job";
+			mes "to a Ninja.";
+			next;
+			mes "[Cougar]";
+			mes "...Oh. Is that all?";
+			mes "Hmm, you've got great";
+			mes "potential, but I can't help";
+			mes "you now. I've got too many";
+			mes "enemies, and I can't let my";
+			mes "guard down for even a second.";
+			next;
+			mes "[Cougar]";
+			mes "That Wildcat Joe is";
+			mes "completely ruthless...!";
+			mes "He could strike at any time!";
+			mes "He'll do anything to achieve";
+			mes "victory over his enemies!";
+			next;
+			mes "[Cougar]";
+			mes "Wait, wait, I just";
+			mes "thought of something.";
+			mes "Maybe you can help me out.";
+			mes "Do what I ask, and I'll teach";
+			mes "you a few of my skills if you";
+			mes "really want to be a Ninja.";
+			next;
+			if(select("Sure.:No, thanks.") == 2) {
+				mes "[Cougar]";
+				mes "Hm? Well, alright.";
+				mes "Still, I don't see";
+				mes "why we can't help";
+				mes "each other in this";
+				mes "little predicament...";
+				close;	
 			}
-			mes "[Suspicious Guy]";
-			mes "I see you've accurately brought back what I need.";
-			mes "Hmm... Very well.";
-			mes "You've brought me the things I need, so I will not help you. Hmm...";
-			next;
-			mes "[Suspicious Guy]";
-			mes "Let's see that letter.";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "?????!!";
-			next;
-			mes "[Suspicious Guy]";
-			mes "Hmm? Are you perhaps here because Gai sent you here?";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Gasp... Then you're Field Cat...";
-			next;
-			mes "[Suspicious Guy]";
-			mes "Nope.";
-			mes "I'm not Field Cat Joe, but Crimson Panther Joe.";
-			mes "The only person who teases me as 'Field Cat' is Gai. Haha.";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Sigh... Is that how it is?";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "If you want to become a Ninja, you can't just trust your eyes.";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "Very few Ninjas, if any, where the stereotypical outfits depicted in picture books. And even if they did, you'd be lucky to spot one.";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "Don't forget that as soon as you reveal your identity as a Ninja, your life is at stake.";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "Even who I've said I am or anything I've said so far could be false.";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Ok...";
-			mes "...........";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "Well, Let's see it -- that letter.";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Ah, Yes.";
-			mes "Here.";
-			mes "-Rustle, rustle -";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "Hmm~~ Let's see...";
-			mes "I was thinking it might be another one of Gai's childish challenge letters, but I see it's a letter requesting truce.";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "But there's no need for a truce for me...";
-			mes "Thanks to you, I've already acquired all the raw materials needed to create a Kunai. Haha~";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "I'll write you a reply, regardless. Seeing how you've acquired my raw materials so quickly, with a bit of a sharper eye, I believe you could become an excellent Ninja.";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes ".....";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "Wait a moment.";
-			mes "I'll write you a response to Gai's letter right now.";
-			mes "Hmm Hmm...";
-			mes "...Scribble... Scribble...";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "Here. Here it is.";
-			mes "You'll know what's written inside as soon as you show *him* the letter.";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "- You recieve the letter that Joe-";
-			mes "- has just now scribbled down -";
-			mes "- on paper.-";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "Well, you better get a move on.";
-			mes "If you want to become a Ninja.";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "And if you do become a Ninja, we may end up meet each other frequently.";
-			mes "I'll be looking forward to it.";
+			mes "[Cougar]";
+			mes "Great! Now, I wanted to";
+			mes "ask Wildcat Joe if he'd";
+			mes "agree to a temporary truce.";
+			mes "I'm aware that both of us";
+			mes "are out of weapons, so we";
+			mes "should get well equipped first.";
+			next;
+			mes "[Cougar]";
+			mes "Please take this letter,";
+			mes "and deliver it to Wildcat";
+			mes "Joe in Einbroch. He's a master";
+			mes "of disguise, so keep a careful";
+			mes "eye out for him. Ah, and look";
+			mes "for him in a high place.";
+			next;
+			mes "[Cougar]";
+			mes "Yeah, Wildcat Joe";
+			mes "always did have a thing";
+			mes "for hiding in high places.";
+			mes "Anyway, after you give him";
+			mes "the letter, come back and";
+			mes "let me know his answer.";
+			set NINJ_Q,1;
+			setquest 6015;
+			close;
+		}
+		else if(NINJ_Q == 1) {
+			mes "[Cougar]";
+			mes "Even if this task";
+			mes "isn't that urgent,";
+			mes "please hurry over to";
+			mes "Einbroch and deliver";
+			mes "my letter to Wildcat Joe.";
+			close;
+		}
+		else if(NINJ_Q == 2) {
+			mes "[Cougar]";
+			mes "Did you deliver that";
+			mes "letter to Wildcat Joe?";
+			mes "I still need to know his";
+			mes "response to my proposal";
+			mes "for a truce. Anyway, see";
+			mes "if you can needle him for it.";
+			close;
+		}
+		else if(NINJ_Q == 3) {
+			mes "[Cougar]";
+			mes "Ah, you've returned.";
+			mes "So did Wildcat Joe send";
+			mes "you back here with his";
+			mes "response? Great, great,";
+			mes "please let me read it.";
+			next;
+			mes "[Cougar]";
+			mes "What...?! How could he";
+			mes "reject my proposal for";
+			mes "a truce?! This can only";
+			mes "mean that he's made another";
+			mes "Kunai. Nuts! I have to catch";
+			mes "up to him, or I'm a goner!";
+			next;
+			mes "[Cougar]";
+			mes "Listen, you've got to help";
+			mes "me out again! I need you to";
+			mes "gather some materials so that";
+			mes "I can craft my own Kunai to fight Wildcat Joe. Then, I'll go ahead";
+			mes "and change your job to a Ninja.";
+			next;
+			mes "[Cougar]";
+			mes "All you need";
+			mes "to bring me is";
+			mes "^3355FF5 Cyfars^000000 and";
+			mes "^3355FF1 Phracon^000000.";
+			mes "Please get those";
+			mes "as quickly as you can!";
 			next;
 			mes "["+strcharinfo(0)+"]";
-			mes "Yes... Well, I better get going...";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "Ah, It would probably take you a considerably long time to reach Amatsu.";
-			mes "Allow me to send you, "+strcharinfo(0)+" to Amatsu.";
-			mes "We'll meet again..";
-			delitem 1010,1;
-			delitem 7053,5;
-			set NINJ_Q,3;
-			close2;
-			warp "amatsu",113,127;
-			end;
-
-		case 3:
-			mes "[Crimson Panther Joe]";
-			mes "Hmm, I don't know what happened, but it seems you've returned to me without reaching Gai first.";
-			next;
-			mes "[Crimson Panther Joe]";
-			mes "If you would like, I can send you to amatsu again.";
-			mes "I'll take you back to Amatsu.";
-			next;
-			switch( select( "No thanks.","Yes, please send me to Amatsu." ) )
-			{
-				case 1 :
-					mes "[Crimson Panther Joe]";
-					mes "Hmm, very well.";
-					mes "Decisions are best when decided yourself.";
-					close;
-
-				case 2:
-					mes "[Crimson Panther Joe]";
-					mes "Very well.";
-					mes "I will now send you to Amatsu.";
-					close2;
-					warp "amatsu",113,127;
-					end;
+			mes "Huh? That's funny,";
+			mes "Wildcat Joe actually";
+			mes "asked me to gather";
+			mes "those same materials.";
+			next;
+			mes "[Cougar]";
+			mes "Curses! Then that means...";
+			mes "You actually helped Joe";
+			mes "in crafting his Kunai! No!";
+			mes "I should have thought about";
+			mes "that earlier! Well, it's too";
+			mes "late now. Just h-hurry it up!";
+			set NINJ_Q,4;
+			changequest 6017,6018;
+			close;
+		}
+		else if(NINJ_Q == 4) {
+			if (countitem(7053) < 5 || countitem(1010) < 1) {
+				mes "[Cougar]";
+				mes "Hurry and bring";
+				mes "^3355FF5 Cyfars^000000 and";
+				mes "^3355FF1 Phracon^000000 to me,";
+				mes "so that I can craft";
+				mes "my own Kunai to use";
+				mes "against Wildcat Joe!";
+				close;
 			}
-
-		case 4:
-			mes "[Crimson Panther Joe]";
-			mes "Is Gai bothering you with a lot of bothersome tasks?";
-			mes "Don't give up -- it'll all come in handy during your training.";
+			if (Skillpoint != 0) {
+				mes "[Cougar]";
+				mes "Whoa, whoa...";
+				mes "You still have some";
+				mes "leftover Skill Points.";
+				mes "You'd better spend all";
+				mes "of them before you";
+				mes "change jobs, right?";
+				close;
+			}
+			mes "[Cougar]";
+			mes "Ah, you're back with";
+			mes "everything that I need.";
+			mes "You've come earlier than";
+			mes "I expected, eh? Great,";
+			mes "as promised, I'll turn";
+			mes "you into a Ninja.";
+			next;
+			mes "[Cougar]";
+			mes "Let me formally introduce";
+			mes "myself. I am High Ninja Cougar";
+			mes "in the Touga Ninja Corps, and";
+			mes "I'm in charge of the search";
+			mes "party to find Sir Kazma.";
+			next;
+			mes "[Cougar]";
+			mes "Sir Kazma is the chief";
+			mes "of my village, but he's";
+			mes "run away. This has resulted";
+			mes "in an internal conflict within";
+			mes "the Ninja Corps. Things are";
+			mes "pretty unstable right now...";
+			next;
+			mes "[Cougar]";
+			mes "I initially didn't want to";
+			mes "accept you as a Ninja because";
+			mes "of this complicated situation.";
+			mes "However, you've proven that";
+			mes "you're truly worthy of joining";
+			mes "the Ninja ranks.";
+			next;
+			mes "[Cougar]";
+			mes "According to his letter, even";
+			mes "Joe thinks highly of you. Just";
+			mes "remember that, as a Ninja, your";
+			mes "mission is your highest priority. But don't let mission objectives";
+			mes "supercede your conscience.";
+			next;
+			mes "[Cougar]";
+			mes "''Secrecy above all else.''";
+			mes "To keep our secrets in the";
+			mes "shadows, you can only buy";
+			mes "or sell Ninja weapons with";
+			mes "authorized dealers. Please";
+			mes "keep that in mind.";
+			next;
+			mes "[Cougar]";
+			mes "As of today, you are";
+			mes "now a proud member of the";
+			mes "Touga Ninja Corps. Be as";
+			mes "agile as the wind, and as";
+			mes "quiet as the falling shadows.";
+			callfunc "Job_Change",Job_Ninja;
+			set NINJ_Q,5;
+			getitem 13010,1;	// Asura
+			completequest 6018;
+			close;
+		}
+		else {
+			mes "[Cougar]";
+			mes "How have you been?";
+			mes "Train hard: you want";
+			mes "to be able to vanish";
+			mes "without a trace. If you";
+			mes "can do that, you'll get";
+			mes "the respect of any Ninja~";
 			close;
+		}
+	}else{
+		if (Class == Job_Ninja) {
+			mes "[Cougar]";
+			mes "How have you been?";
+			mes "Train hard: you want";
+			mes "to be able to vanish";
+			mes "without a trace. If you";
+			mes "can do that, you'll get";
+			mes "the respect of any Ninja~";
+			close;
+		}else{
+			mes "[Cougar]";
+			mes "What...?";
+			mes "How were you able";
+			mes "to find me hidden";
+			mes "in the shadows?!";
+			mes "You must be more than";
+			mes "a common adventurer, eh?";
+			close;
+		}
 	}
 }
+
+einbroch,184,194,3	script	Suspicious Man#nq	 	881,{
+	if (NINJ_Q == 1) {
+		mes "[Suspicious Man]";
+		mes "I've traveled to many";
+		mes "countries, but I've never";
+		mes "been on a building as high";
+		mes "as Einbroch Tower. All the";
+		mes "buildings in my hometown";
+		mes "are tiny in comparison...";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Oh, are you from";
+		mes "Amatsu? I'm looking";
+		mes "for someone named";
+		mes "Wildcat Joe from there.";
+		next;
+		mes "[Suspicious Man]";
+		mes "...No. No, I'm actually";
+		mes "from Izlude, and I'm only";
+		mes "here in Einbroch for some";
+		mes "minerals. Tell me, why are";
+		mes "you looking for this Wildcat Joe?";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Well, I need to deliver";
+		mes "this letter to him and";
+		mes "get his response so that";
+		mes "I can become a Ninja.";
+		next;
+		mes "[Suspicious Man]";
+		mes "Really? Now that I think";
+		mes "about it, I do think that I've";
+		mes "run once or twice into him";
+		mes "in this town. Though, he prefers to be called ''Red Leopard Joe,''";
+		mes "instead of ''Wildcat Joe.''";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "I really want to help you";
+		mes "find him, but first I need";
+		mes "to find the minerals that";
+		mes "I'm looking for. If you don't";
+		mes "mind, would you help me?";
+		mes "Then I can help you find Joe.";
+		next;
+		if(select("Don't worry, I'll find him alone.:Sure, I'll help you.") == 1) {
+			mes "[Suspicious Man]";
+			mes "You sure about that...?";
+			mes "Red Leopard Joe is a true";
+			mes "master of disguise. You'll";
+			mes "need all the help you can";
+			mes "get to find him...";
+			close;
+		}
+		mes "[Suspicious Man]";
+		mes "Great, I'm glad to";
+		mes "hear that. Please";
+		mes "help me find";
+		mes "^3355FF5 Cyfars^000000 and";
+		mes "^3355FF1 Phracon^000000.";
+		set NINJ_Q,2;
+		changequest 6015,6016;
+		close;
+	}
+	else if(NINJ_Q == 2) {
+		if (countitem(7053) < 5 || countitem(1010) < 1) {
+			mes "[Suspicious Man]";
+			mes "Please bring";
+			mes "^3355FF5 Cyfars^000000 and";
+			mes "^3355FF1 Phracon^000000 to me as";
+			mes "soon as you can. Then,";
+			mes "I can help you find";
+			mes "Red Leopard Joe.";
+			close;	
+		}
+		mes "[Suspicious Man]";
+		mes "Good, good. You've";
+		mes "brought the minerals...";
+		mes "Now, it's my turn to";
+		mes "help you now. Here,";
+		mes "let me see that letter.";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "?????!!";
+		next;
+		mes "[Suspicious Man]";
+		mes "Why? Didn't you bring Cougar's letter for me?";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Are you...";
+		mes "Are you Wildcat Joe?";
+		next;
+		mes "[Suspicious Man]";
+		mes "...Yes, but I prefer to";
+		mes "be called Red Leopard Joe.";
+		mes "Cougar sent you to me, right?";
+		mes "He's the only one who calls";
+		mes "me that. So you want to be";
+		mes "a Ninja, eh? Hmm, alright.";
+		next;
+		mes "[Red Leopard Joe]";
+		mes "If you want to be a Ninja,";
+		mes "you should always be careful";
+		mes "of what you see and what you trust. Don't forget that if your";
+		mes "secrets are ever discovered, then you're finished as a Ninja.";
+		next;
+		mes "[Red Leopard Joe]";
+		mes "Remember to move";
+		mes "quickly, and to always";
+		mes "vanish without a trace.";
+		mes "To remain hidden in the";
+		mes "shadows is really our";
+		mes "ultimate power.";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "I see...";
+		mes "...........";
+		next;
+		mes "[Red Leopard Joe]";
+		mes "For now, let me read";
+		mes "this letter. Let's see...";
+		mes "Hm. I thought that Cougar";
+		mes "would want to challenge me";
+		mes "again, but he actually wants";
+		mes "a temporary truce? Hah!";
+		next;
+		mes "[Red Leopard Joe]";
+		mes "Thanks to your help,";
+		mes "I now have the minerals";
+		mes "I need to construct a Kunai!";
+		mes "Hahaha! I won't agree to a truce when I have the advantage!";
+		next;
+		mes "[Red Leopard Joe]";
+		mes "Anyway, let me write my";
+		mes "response to him. I'll also";
+		mes "give you my recommendation...";
+		mes "I think you'll make a very fine";
+		mes "Ninja, even if I did trick you";
+		mes "just earlier. Heh heh heh!";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "......";
+		mes ".........";
+		mes "............";
+		next;
+		mes "[Red Leopard Joe]";
+		mes "Here you go.";
+		mes "Please bring this";
+		mes "letter to Cougar.";
+		mes "It'll take a while to";
+		mes "return to Amatsu, so let";
+		mes "me send you there directly...";
+		delitem 1010,1;	// Phracon
+		delitem 7053,5;	// Cyfar
+		set NINJ_Q,3;
+		changequest 6016,6017;
+		close2;
+		warp "amatsu",113,127;
+		end;
+	}
+	else if(NINJ_Q == 3) {
+		mes "[Red Leopard Joe]";
+		mes "Eh? I'm not sure what";
+		mes "happened, but it seems";
+		mes "that you haven't delivered";
+		mes "my response to Cougar yet.";
+		mes "Shall I directly send you";
+		mes "to Amatsu right now?";
+		next;
+		if(select("No, thanks.:Yes, please.") == 1) {
+			mes "[Red Leopard Joe]";
+			mes "Alright. Well, I was";
+			mes "just trying to save";
+			mes "you some time.";
+			close;
+		}
+		mes "[Red Leopard Joe]";
+		mes "Okay, then.";
+		mes "Goodbye for now.";
+		close2;
+		warp "amatsu",113,127;
+		end;
+	}
+	else if(NINJ_Q == 4) {
+		mes "[Red Leopard Joe]";
+		mes "Cougar asked you to";
+		mes "gather some materials";
+		mes "too? Oh well, I suppose";
+		mes "that I can't blame him.";
+		mes "Besides, I should be able";
+		mes "to beat him in a fair fight~";
+		close;
+	}
+	else if(NINJ_Q == 5 && Class == Job_Ninja) {
+		mes "[Red Leopard Joe]";
+		mes "Oh, you're a Ninja~";
+		mes "I hope you continue to";
+		mes "train yourself and master";
+		mes "all the Ninja skills that";
+		mes "you can. Always remember";
+		mes "to blend into the shadows.";
+		close;
+	}
+	else {
+		mes "[Tourist]";
+		mes "I've traveled to many";
+		mes "countries, but I've never";
+		mes "been on a building as high";
+		mes "as Einbroch Tower. All the";
+		mes "buildings in my hometown";
+		mes "are tiny in comparison...";
+		close;
+	}
+}

+ 31 - 24
npc/jobs/1-1e/taekwon.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Tsuyuki & Samuray22
 //===== Current Version: ===================================== 
-//= 1.2
+//= 1.3
 //===== Compatible With: ===================================== 
 //= eAthena/Freya
 //===== Description: ========================================= 
@@ -12,6 +12,7 @@
 //= 1.0 Replaced previous TK Job Quest with this one [Tsuyuki]
 //= 1.1 Rewrote to the Aegis Standars. [Samuray22]
 //= 1.2 Fixed position the npc is facing. [Kisuka]
+//= 1.3 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 
@@ -106,6 +107,7 @@ L_change:
 				mes "spiritual training. Take a deep";
 				mes "breath, speak to me when ready.";
 				set TK_Q, 2;
+				setquest 6001;
 				close;
 			}
 			mes "[Phoenix]";
@@ -116,6 +118,7 @@ L_change:
 			next;
 			set TAEK_Q, BaseLevel;
 			set TK_Q, 1;
+			setquest 6000;
 			mes "[Phoenix]";
 			mes "I understand this is not an";
 			mes "easy task for Novices, but you";
@@ -138,6 +141,7 @@ L_change:
 	case 1:
 		if(BaseLevel > TAEK_Q) {
 			set TK_Q, 2;
+			changequest 6000,6001;
 			mes "[Phoenix]";
 			mes "Good. I sense that you";
 			mes "are more in tune with your";
@@ -176,6 +180,30 @@ L_change:
 		mes "you generally respond?";
 		next;
 		switch(select( "I face it head on.:Avoid it somehow.:Regroup and analyze the problem.")) {
+		case 1:
+			mes "[Phoenix]";
+			mes "Yes, that is the answer";
+			mes "I wanted. Even if you cannot";
+			mes "handle a problem at first, we";
+			mes "can only benefit from such";
+			mes "strong determination. Don't";
+			mes "let any obstacle stop you.";
+			next;
+			mes "[Phoenix]";
+			mes "Even if you fail, you";
+			mes "can only learn from the";
+			mes "experience when you give";
+			mes "your all. Half-hearted";
+			mes "attempts rarely yield";
+			mes "fruitful results.";
+			next;
+			mes "[Phoenix]";
+			mes "Seeing as you already";
+			mes "understand the importance";
+			mes "of one's will, we'll proceed";
+			mes "to the next question.";
+			next;
+			break;
 		case 2:
 			mes "[Phoenix]";
 			mes "Fool! How do you expect";
@@ -210,29 +238,6 @@ L_change:
 			mes "as well as what you define as";
 			mes "failure. Then, return to me.";
 			close;
-		case 1:
-			mes "[Phoenix]";
-			mes "Yes, that is the answer";
-			mes "I wanted. Even if you cannot";
-			mes "handle a problem at first, we";
-			mes "can only benefit from such";
-			mes "strong determination. Don't";
-			mes "let any obstacle stop you.";
-			next;
-			mes "[Phoenix]";
-			mes "Even if you fail, you";
-			mes "can only learn from the";
-			mes "experience when you give";
-			mes "your all. Half-hearted";
-			mes "attempts rarely yield";
-			mes "fruitful results.";
-			next;
-			mes "[Phoenix]";
-			mes "Seeing as you already";
-			mes "understand the importance";
-			mes "of one's will, we'll proceed";
-			mes "to the next question.";
-			next;
 		}
 		mes "[Phoenix]";
 		mes "On your travels, you will";
@@ -331,6 +336,7 @@ L_change:
 		mes "while. When your mind is calm,";
 		mes "come and speak to me.";
 		set TK_Q, 3;
+		changequest 6001,6002;
 		close;
 	case 3:
 		mes "[Phoenix]";
@@ -369,6 +375,7 @@ L_change:
 			mes "shirk your training, or bring";
 			mes "shame to Taekwon Do.";
 			next;
+			completequest 6002;
 			callfunc "Job_Change",Job_Taekwon;
 			callfunc "F_ClearJobVar";
 			getitem 2101,1; // Guard[0]

+ 22 - 1
npc/jobs/2-1/assassin.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= kobra_k88
 //===== Current Version: ===================================== 
-//= 3.2
+//= 3.3
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -45,6 +45,7 @@
 //= 3.1a Follow up fix. Forgot to replace a label. [L0ne_W0lf]
 //= 3.1b Fixed waiting room not enabled in some situations [Zephyrus]
 //= 3.2 Fixed a question having all correct answers. [brianluau]
+//= 3.3 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 in_moc_16,19,33,1	script	Guildsman#asn	55,{
@@ -123,10 +124,12 @@ in_moc_16,19,33,1	script	Guildsman#asn	55,{
 		mes "......";
 		next;
 		delitem 1008,1; //Frozen_Heart
+		changequest 8007,8008;
 		mes "[Assassin Expert 'Huey']";
 		mes "Alright!";
 		mes "You've been approved!";
 		next;
+		completequest 8008;
 		callfunc "Job_Change",Job_Assassin;
 		callfunc "F_ClearJobVar";		// clears all job variables for the current player
 		mes "[Assassin Expert 'Huey']";
@@ -250,6 +253,11 @@ in_moc_16,19,33,1	script	Guildsman#asn	55,{
 					mes "you to the office.";
 					close2;
 					set ASSIN_Q,0;
+					if(checkquest(8000) != -1) {
+						changequest 8000,8001;
+					}else{
+						setquest 8001;
+					}
 					warp "in_moc_16",19,76;
 					end;
 				case 2:
@@ -542,6 +550,7 @@ OnTouch:
 				close2;
 				set ASSIN_Q3,1;
 				set ASSIN_Q,1;
+				changequest 8001,8002;
 				warp "in_moc_16",19,144;
 				end;
 			}
@@ -564,6 +573,7 @@ OnTouch:
 				close2;
 				set ASSIN_Q3,2;
 				set ASSIN_Q,1;
+				changequest 8001,8002;
 				warp "in_moc_16",19,144;
 				end;
 			}
@@ -590,6 +600,7 @@ OnTouch:
 				set ASSIN_Q,0;
 				set ASSIN_Q3,0;
 				set ASSIN_Q2,0;
+				erasequest 8001;
 				warp "moc_fild16",206,229;
 				end;
 			}
@@ -616,6 +627,7 @@ OnTouch:
 				next;
 				set ASSIN_Q3,1;
 				set ASSIN_Q,1;
+				changequest 8001,8002;
 				warp "in_moc_16",19,144;
 				end;
 			}
@@ -629,6 +641,7 @@ OnTouch:
 				next;
 				set ASSIN_Q3,2;
 				set ASSIN_Q,1;
+				changequest 8001,8002;
 				warp "in_moc_16",19,144;
 				end;
 			}
@@ -976,6 +989,7 @@ L_AskQuestions:
 			mes "" + .@assassin_t + " percent...";
 			if (.@assassin_t > 80) {
 				set ASSIN_Q2,5;
+				changequest 8002,8003;
 				mes "Well done.";
 				mes "You pass.";
 				next;
@@ -1012,6 +1026,7 @@ L_AskQuestions:
 			mes "" + .@assassin_t + " points...";
 			if (.@assassin_t > 80) {
 				set ASSIN_Q2,5;
+				changequest 8002,8003;
 				next;
 				mes "[The Anonymous One]";
 				mes "You didn't fail this time! But you're not done just yet. You have another test ahead of you. Once you proceed, you will be informed about your next trial.";
@@ -1173,6 +1188,7 @@ OnTouch:
 		set ASSIN_Q,0;
 		set ASSIN_Q3,0;
 		set ASSIN_Q2,0;
+		changequest 8003,8000;
 		warp "in_moc_16",19,13;
 		end;
 	}
@@ -1246,6 +1262,7 @@ OnMyMobDead:
 	if (.MyMobs < 1) {
 		mapannounce "in_moc_16","You seem to be doing quite well. Keep it up!",bc_map;
 		set ASSIN_Q,3;
+		changequest 8003,8004;
 		donpcevent "timestopper#1::OnEnable";
 		donpcevent "Keeper of the Door#ASN::OnEnable";
 		donpcevent "Beholder#ASNTEST::OnResetmob";
@@ -1502,6 +1519,7 @@ OnTouch:
 			set ASSIN_Q,0;
 			set ASSIN_Q2,0;
 			set ASSIN_Q3,0;
+			changequest 8004,8000;
 			savepoint "in_moc_16",18,14;
 			warp "in_moc_16",18,14;
 			donpcevent "Standby Room#ASNTEST::OnStart";
@@ -1569,6 +1587,7 @@ OnTouch:
 	mes "You may now proceed to our Guildmaster's room. Good luck!!";
 	close2;
 	set ASSIN_Q,5;
+	changequest 8004,8005;
 	warp "in_moc_16",181,183;
 	end;
 }
@@ -1578,6 +1597,7 @@ OnTouch:
 	if (ASSIN_Q == 5 || ASSIN_Q == 6) {
 		warp "in_moc_16",181,183;
 		set ASSIN_Q,ASSIN_Q+1;
+		changequest 8005,8006;
 	}
 	else {
 		mapannounce "in_moc_16",strcharinfo(0)+" has entered 'Guildmaster's room.'",bc_map;
@@ -2100,6 +2120,7 @@ OnTouch:
 		mes "You, " + strcharinfo(0) + ", have chosen to live as an Assassin. May you learn our ways and be an honorable example to others.";
 		savepoint "morocc",100,100;
 		getitem 1008,1; //Frozen_Heart
+		changequest 8006,8007;
 		next;
 		mes "[Guildmaster]";
 		mes "Okay, all of you may go back to your positions. I will send you to the entrance as well. Let's move...";

+ 52 - 6
npc/jobs/2-1/blacksmith.txt

@@ -7,7 +7,7 @@
 //= Optimized and further edited by kobra_k88.
 //= Further bugfixed and tested by Lupus
 //===== Current Version: =====================================
-//= 2.6
+//= 2.7
 //===== Compatible With: =====================================
 //= eAthena  SVN
 //===== Description: =========================================
@@ -38,6 +38,7 @@
 //= 2.5 Krongast is in Lighthalzen. (DarkValmir) [L0ne_W0lf]
 //= 2.6 Fixed 4 bugs [Lupus]
 //= 2.6a Typo fix [Yommy]
+//= 2.7 Added Quest Log commands. [Kisuka]
 //==============================================================
 
 ein_in01,18,28,4	script	Guildsman#BLS	731,{
@@ -163,6 +164,7 @@ ein_in01,18,28,4	script	Guildsman#BLS	731,{
 					mes "One of our Blacksmiths in Einbech, ^8E6B23Geschupenschte^000000 has sent us word that he's short on help. Your first test of character will be to help him out.";
 					next;
 					set BSMITH_Q,1;
+					setquest 2000;
 					mes "[Altiregen]";
 					mes "Be careful";
 					mes "and good luck!";
@@ -217,6 +219,7 @@ ein_in01,18,28,4	script	Guildsman#BLS	731,{
 			next;
 			if (select("I want to change my job quickly! But...oh well.:Grrr! Enough is enough!") == 1) {
 				set BSMITH_Q,16;
+				changequest 2013,2014;
 				mes "[Altiregen]";
 				mes "I'm sorry, but I'm sure you understand, right? We can't just casually accept anybody into";
 				mes "our guild!";
@@ -246,6 +249,9 @@ ein_in01,18,28,4	script	Guildsman#BLS	731,{
 		else if (BSMITH_Q == 17 && countitem(1005) > 0 && JobLevel > 39) {
 			mes "[Altiregen]";
 			mes "Excellent, I can tell by the twinkle in your eye that you were successful. I can now bestow upon you the gift of the smithing, the art of the Blacksmith.";
+			if(checkquest(2015) != -1) {
+				changequest 2015,2016;
+			}
 			next;
 			set .@joblvl,JobLevel;
 			callfunc "Job_Change",Job_Blacksmith;
@@ -255,6 +261,7 @@ ein_in01,18,28,4	script	Guildsman#BLS	731,{
 			mes "and greed.";
 			next;
 			delitem 1005,1; //Hammer_Of_Blacksmith
+			completequest 2016;
 			mes "[Altiregen]";
 			mes "Here is a little";
 			mes "gift to mark the";
@@ -458,6 +465,11 @@ L_AskQuestions:
 				mes "Let's see...your score is..." + .@black_q + " points.";
 				if (.@black_q == 100) {
 					set BSMITH_Q,3;
+					if(checkquest(2001) != -1) {
+						changequest 2001,2002;
+					}else{
+						changequest 2000,2002;
+					}
 					mes "Oh ho ho~";
 					mes "You'll have";
 					mes "no problem";
@@ -470,6 +482,9 @@ L_AskQuestions:
 					close;
 				}
 				set BSMITH_Q,2;
+				if(checkquest(2001) == -1) {
+					changequest 2000,2001;
+				}
 				mes ".............";
 				next;
 				mes "[Geschupenschte]";
@@ -531,15 +546,15 @@ L_AskQuestions:
 			next;
 			switch(rand(1,5)) {
 			//Steel, Rotten_Bandage, Blue_Gemstone, Arc_Wand
-			case 1: setarray .@items[0], 999,1, 930,1, 717,2, 1610,1, 4; break;
+			case 1: setarray .@items[0], 999,1, 930,1, 717,2, 1610,1, 4; changequest 2002,2003; break;
 			//Sparkling_Dust, Skel_Bone, Zargon, Gladius
-			case 2: setarray .@items[0], 1001,2, 932,1, 912,1, 1219,1, 5; break;
+			case 2: setarray .@items[0], 1001,2, 932,1, 912,1, 1219,1, 5; changequest 2002,2004; break;
 			//Coal, Shell, Boody_Red, Tsurugi
-			case 3: setarray .@items[0], 1003,1, 935,2, 990,2, 1119,1, 6; break;
+			case 3: setarray .@items[0], 1003,1, 935,2, 990,2, 1119,1, 6; changequest 2002,2005; break;
 			//Iron_Ore, Eye_Bandage, Blue_Gemstone, Arbalest
-			case 4: setarray .@items[0], 1002,1, 2212,1, 717,2, 1713,1, 7; break;
+			case 4: setarray .@items[0], 1002,1, 2212,1, 717,2, 1713,1, 7; changequest 2002,2006; break;
 			//Iron, Green_Herb, Animal's_Skin, Ring_Pommel_Saber
-			default: setarray .@items[0], 998,1, 511,1, 919,2, 1122,1, 8; break;
+			default: setarray .@items[0], 998,1, 511,1, 919,2, 1122,1, 8; changequest 2002,2007; break;
 			}
 			set BSMITH_Q,.@items[8];
 			mes "[Geschupenschte]";
@@ -618,6 +633,9 @@ L_AskQuestions:
 				case 9:
 					mes "Okay, now take this to ^8E6B23Baisulist^000000 in Geffen of Rune-Midgarts Kingdom. Simply deliver it and bring me the receipt.";
 					getitem 1610,1; //Arc_Wand
+					if(checkquest(2003) != -1) {
+						changequest 2003,2008;
+					}
 					next;
 					mes "[Geschupenschte]";
 					mes "Hmm...?";
@@ -640,6 +658,9 @@ L_AskQuestions:
 				case 10:
 					mes "Okay, now take this to ^8E6B23Wickebine^000000 in Morroc of Rune-Midgarts Kingdom. Simply deliver it and bring me the receipt.";
 					getitem 1219,1; //Gladius
+					if(checkquest(2004) != -1) {
+						changequest 2004,2009;
+					}
 					next;
 					mes "[Geschupenschte]";
 					mes "Hmm...?";
@@ -662,6 +683,9 @@ L_AskQuestions:
 				Case 11:
 					mes "Okay, now take this to ^8E6B23Krongast^000000 in Lighthalzen. Simply deliver it and bring me the receipt.";
 					getitem 1119,1; //Tsurugi
+					if(checkquest(2005) != -1) {
+						changequest 2005,2010;
+					}
 					next;
 					mes "[Geschupenschte]";
 					mes "Hmm...?";
@@ -685,6 +709,9 @@ L_AskQuestions:
 				case 12:
 					mes "Okay, now take this to ^8E6B23Talpiz^000000 in Payon of Rune-Midgarts Kingdom. Simply deliver this and bring me the receipt.";
 					getitem 1713,1; //Arbalest
+					if(checkquest(2006) != -1) {
+						changequest 2006,2011;
+					}
 					next;
 					mes "[Geschupenschte]";
 					mes "Hmm...?";
@@ -706,6 +733,9 @@ L_AskQuestions:
 				case 13:
 					mes "Okay, now take this to ^8E6B23Bismarc^000000 in Hugel. Simply deliver this and bring back the receipt.";
 					getitem 1122,1; //Ring_Pommel_Saber
+					if(checkquest(2007) != -1) {
+						changequest 2007,2012;
+					}
 					next;
 					mes "[Geschupenschte]";
 					mes "Hmm...?";
@@ -800,6 +830,21 @@ L_AskQuestions:
 				if (countitem(1073) > 0) {
 					set BSMITH_Q,15;
 					delitem 1073,1; //Merchant_Voucher_1
+					if(checkquest(2008) != -1) {
+						changequest 2008,2013;
+					}
+					else if(checkquest(2009) != -1) {
+						changequest 2009,2013;
+					}
+					else if(checkquest(2010) != -1) {
+						changequest 2010,2013;
+					}
+					else if(checkquest(2011) != -1) {
+						changequest 2011,2013;
+					}
+					else {
+						changequest 2012,2013;
+					}
 					mes "[Geschupenschte]";
 					mes "Oh ho ho~";
 					mes "Great!";
@@ -1460,6 +1505,7 @@ ein_in01,24,41,5	script	Blacksmith Guildsman#moc	726,{
 				mes "However, don't let your early success make you overconfident. A Blacksmith's life isn't a picnic. As proof that you have passed the test, I give you this Hammer of Blacksmith.";
 				set BSMITH_Q,17;
 				getitem 1005,1; //Hammer_Of_Blacksmith
+				changequest 2014,2015;
 				next;
 				mes "[Mitehmaeeuh]";
 				mes "Take this Hammer";

+ 40 - 8
npc/jobs/2-1/hunter.txt

@@ -5,7 +5,7 @@
 //= Converted by kobra_k88
 //= Further bugfixed and tested by Lupus
 //===== Current Version: ===================================== 
-//= 3.4
+//= 3.5
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -50,6 +50,7 @@
 //= 3.3 Added missing next. [L0ne_W0lf]
 //= 3.4 Corrected some Issues with the Waiting Room. (bugreport:1890) [Samuray22]
 //=	-Deleted a Unnecesary Next; on Hunter Guildsman#hnt. (bugreports:1665,2239,2179)
+//= 3.5 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 // Notices in the old Hunter Guild.
@@ -180,6 +181,7 @@ hu_in01,386,373,4	script	Hunter Guildsman#hnt	727,{
 			mes "Tada~ Congratulations!";
 			mes "You look great as a Hunter!!";
 			set .@joblvl,joblevel;
+			completequest 4013;
 			callfunc "Job_Change",Job_Hunter;
 			callfunc "F_ClearJobVar";		// clears all job variables for the current player
 			next;
@@ -220,6 +222,9 @@ hu_in01,386,373,4	script	Hunter Guildsman#hnt	727,{
 				mes "shall we begin?";
 				next;
 				if (select("Yes~ Let's start now.:No, I'll be back later.") == 1) {
+					if(checkquest(4000) == -1) {
+						setquest 4000;
+					}
 					mes "[Hunter Sherin]";
 					mes "Listen carefully to the scenarios I describe. When I ask a question, you choose an answer. Pretty simple, don't you think?";
 					next;
@@ -346,6 +351,7 @@ L_AskQuestions:
 					next;
 					if (.@hunter_t == 100) {
 						set HNTR_Q,2;
+						changequest 4000,4001;
 						mes "[Hunter Sherin]";
 						mes "Well done! Your answers show you've got the right outlook on life. You definitely have the right qualities to become a Hunter~";
 						next;
@@ -355,6 +361,7 @@ L_AskQuestions:
 					}
 					else if (.@hunter_t == 90) {
 						set HNTR_Q,2;
+						changequest 4000,4001;
 						mes "[Hunter Sherin]";
 						mes "Well, I'm looking at your answers and your score isn't perfect. But I'll let you pass anyway. I don't know what our Guildmaster will think, though.";
 						next;
@@ -464,19 +471,19 @@ L_GiveQuestItems:
 			next;
 			switch(rand(1,7)) {
 			//Claw_Of_Desert_Wolf, Wooden_Block, White_Herb
-			case 1: setarray .@items[0], 7030,5, 1019,5, 509,3, 3; break;
+			case 1: setarray .@items[0], 7030,5, 1019,5, 509,3, 3; changequest 4001,4002; break;
 			//Bill_Of_Birds, Skel_Bonem Green_Herb
-			case 2: setarray .@items[0], 925,3, 932,5, 511,3, 4; break;
+			case 2: setarray .@items[0], 925,3, 932,5, 511,3, 4; changequest 4001,4003; break;
 			//Posionous_Canine, Animal's_Skin, Red_Herb
-			case 3: setarray .@items[0], 937,3, 919,3, 507,5, 5; break;
+			case 3: setarray .@items[0], 937,3, 919,3, 507,5, 5; changequest 4001,4004; break;
 			//Dokkaebi_Horn, Piece_Of_Egg_Shell, Fluff
-			case 4: setarray .@items[0], 1021,3, 7032,3, 914,10, 6; break;
+			case 4: setarray .@items[0], 1021,3, 7032,3, 914,10, 6; changequest 4001,4005; break;
 			//Shell, Worm_Peelings, Yellow_Herb
-			case 5: setarray .@items[0], 935,9, 955,9, 508,9, 7; break;
+			case 5: setarray .@items[0], 935,9, 955,9, 508,9, 7; changequest 4001,4006; break;
 			//Tooth_Of_Bat, Sticky_Mucus, Bear's_Foot
-			case 6: setarray .@items[0], 913,3, 938,1, 948,1, 8; break;
+			case 6: setarray .@items[0], 913,3, 938,1, 948,1, 8; changequest 4001,4007; break;
 			//Porcupine_Spike, Yoyo_Tailm Acorn
-			case 7: setarray .@items[0], 1027,2, 942,1, 1026,1, 9; break;
+			case 7: setarray .@items[0], 1027,2, 942,1, 1026,1, 9; changequest 4001,4008; break;
 			}
 			mes "[Demon Hunter]";
 			mes "Hmm. ^660000"+.@items[1]+" "+getitemname(.@items[0])+"^000000 to use for arrow tips. ^660000"+.@items[3]+" "+getitemname(.@items[2])+"^000000 to use here and there. And ^660000"+.@items[5]+" "+getitemname(.@items[4])+"^000000 please.";
@@ -532,6 +539,27 @@ L_GiveQuestItems:
 			mes "[Demon Hunter]";
 			mes "You brought all of the necessary materials... You can get directions to the testing area from our Guildmaster who is currently in the Payon Central Palace.";
 			set HNTR_Q,.@items[6];
+			if(checkquest(4002) != -1) {
+				changequest 4002,4009;
+			}
+			else if(checkquest(4003) != -1) {
+				changequest 4003,4009;
+			}
+			else if(checkquest(4004) != -1) {
+				changequest 4004,4009;
+			}
+			else if(checkquest(4005) != -1) {
+				changequest 4005,4009;
+			}
+			else if(checkquest(4006) != -1) {
+				changequest 4006,4010;
+			}
+			else if(checkquest(4007) != -1) {
+				changequest 4007,4010;
+			}
+			else {
+				changequest 4008,4010;
+			}
 			delitem .@items[0],.@items[1];
 			delitem .@items[2],.@items[3];
 			delitem .@items[4],.@items[5];
@@ -611,6 +639,7 @@ payon_in03,131,7,3	script	Hunter#htnGM	59,{
 		mes "[Hunter Guildmaster]";
 		mes "Well, then. Your arrows are probably still being made, so you can use mine to take the test.";
 		set HNTR_Q,12;
+		changequest 4009,4011;
 		getitem 1751,200; //Silver_Arrow
 		close2;
 		warp "job_hunte",176,22;
@@ -697,6 +726,7 @@ payon_in03,131,7,3	script	Hunter#htnGM	59,{
 		set HNTR_Q,17;
 		savepoint "payon",104,99;
 		getitem 1007,1; //Penetration
+		changequest 4012,4013;
 		next;
 		mes "[Hunter Guildmaster]";
 		mes "Okay, here it is. Now, go back to the Hunter Guild. I have some more business left to do here, but I hope you can become a Hunter soon.";
@@ -773,6 +803,7 @@ payon_in02,21,31,1	script	Hunter#htnGM2	59,{
 		mes "[Hunter Guildmaster]";
 		mes "Good luck.";
 		set HNTR_Q,12;
+		changequest 4010,4011;
 		warp "job_hunte",176,22;
 		cutin "job_huntermaster",255;
 		end;
@@ -1207,6 +1238,7 @@ OnTouch:
 	donpcevent "Manager#hnt::OnReset";
 	donpcevent "Waiting Room#hnt::OnStart";
 	set HNTR_Q,16;
+	changequest 4011,4012;
 	savepoint "payon",104,99;
 	if (rand(1))
 		warp "payon_in02",21,27;

+ 36 - 1
npc/jobs/2-1/knight.txt

@@ -5,7 +5,7 @@
 //= Converted by kobra_k88
 //= Further bugfixed and tested by Lupus
 //===== Current Version: ===================================== 
-//= 2.8
+//= 2.9
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -35,6 +35,7 @@
 //= 2.7 Deleted unused variables. [Samuray22]
 //= 2.7a Corrected a Typo error ";;". [Samuray22]
 //= 2.8 Now uses enable and disable waitingroomevent. [L0ne_W0lf]
+//= 2.9 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 prt_in,88,101,4	script	Chivalry Captain#knt	56,{
@@ -142,6 +143,7 @@ prt_in,88,101,4	script	Chivalry Captain#knt	56,{
 					close;
 				}
 				set KNIGHT_Q,1;
+				setquest 9000;
 				mes "[Captain Herman]";
 				mes "Let me see...";
 				mes "Your name is";
@@ -526,6 +528,7 @@ prt_in,88,101,4	script	Chivalry Captain#knt	56,{
 		mes "You may not have finished all the tests perfectly, but you have all the necessary qualities to become";
 		mes "a Knight.";
 		next;
+		completequest 9012;
 		callfunc "Job_Change",Job_Knight;
 		callfunc "F_ClearJobVar";		// clears all job variables for the current player
 		mes "[Captain Herman]";
@@ -667,6 +670,11 @@ prt_in,75,107,4	script	Sir Andrew#knt	65,{
 			case 2: setarray .@items[0], 1042,5, 950,5, 1032,5, 966,5, 7031,5, 946,5, 3; break;
 			}
 			set KNIGHT_Q,.@items[12];
+			if(KNIGHT_Q == 2) {
+				changequest 9000,9001;
+			}else{
+				changequest 9000,9002;
+			}
 			mes "^236B8E"+.@items[1]+" "+getitemname(.@items[0])+"^000000,";
 			mes "^236B8E"+.@items[3]+" "+getitemname(.@items[2])+"^000000,";
 			mes "^236B8E"+.@items[5]+" "+getitemname(.@items[4])+"^000000,";
@@ -712,6 +720,11 @@ prt_in,75,107,4	script	Sir Andrew#knt	65,{
 			delitem .@items[6],.@items[7];
 			delitem .@items[8],.@items[9];
 			delitem .@items[10],.@items[11];
+			if(KNIGHT_Q == 2) {
+				changequest 9001,9003;
+			}else{
+				changequest 9002,9003;
+			}
 			set KNIGHT_Q,4;
 			mes "[Sir Andrew]";
 			mes "Please visit my fellow Knight, Sir Siracuse, and continue the tests with the dedication and loyalty you've shown to me this day.";
@@ -1055,6 +1068,7 @@ L_AskQuestions:
 				close;
 			}
 			set KNIGHT_Q,6;
+			changequest 9003,9004;
 			mes "[Sir Siracuse]";
 			mes "Well then,";
 			mes "this is the";
@@ -1210,6 +1224,7 @@ prt_in,79,94,4	script	Sir Windsor#knt	733,{
 			mes "...";
 			next;
 			set KNIGHT_Q,7;
+			changequest 9004,9005;
 			mes "[Sir Windsor]";
 			mes "...";
 			mes "......";
@@ -1284,6 +1299,9 @@ job_knt,89,106,4	script	Knight Windsor#knt	733,{
 		next;
 		mes "[Sir Windsor]";
 		mes "..........";
+		if(checkquest(9006) == -1) {
+			changequest 9005,9006;
+		}
 		close;
 	case 2:
 		mes "[Sir Windsor]";
@@ -1314,6 +1332,9 @@ job_knt,89,106,4	script	Knight Windsor#knt	733,{
 		next;
 		mes "[Sir Windsor]";
 		mes "...";
+		if(checkquest(9006) == -1) {
+			changequest 9005,9006;
+		}
 		close;
 	case 3:
 		mes "[Sir Windsor]";
@@ -1343,6 +1364,9 @@ OnStartArena:
 	killmonster "job_knt", "Knight1::OnMyMobDead";
 	killmonster "job_knt", "Knight2::OnMyMobDead";
 	killmonster "job_knt", "Knight3::OnMyMobDead";
+	if(checkquest(9006) == -1) {
+		changequest 9005,9006;
+	}
 	warpwaitingpc "job_knt",43,146;
 	donpcevent "Knight1::OnEnable";
 	disablewaitingroomevent;
@@ -1513,6 +1537,9 @@ OnMyMobDead:
 		mes "Amy Beatrice now.";
 		close2;
 		set KNIGHT_Q,8;
+		if(checkquest(9007) == -1) {
+			changequest 9006,9007;
+		}
 		warp "prt_in",80,100;
 		donpcevent "Knight3::OnDisable";
 		donpcevent "Windsor Benedict#knt::OnStart";
@@ -1642,6 +1669,9 @@ prt_in,69,107,6	script	Lady Amy#knt	728,{
 		mes "come to Amy?";
 		next;
 		if (select("Sir Windsor told me to--:Oh, nothing.") == 1) {
+			if(checkquest(9008) == -1) {
+				changequest 9007,9008;
+			}
 			mes "[Lady Amy]";
 			mes "Oh!";
 			mes "No need to say";
@@ -1796,6 +1826,7 @@ L_AskQuestions:
 			next;
 			if (.@knight_t == 100) {
 				set KNIGHT_Q,10;
+				changequest 9008,9009;
 				mes "[Lady Amy]";
 				mes "Well done, that kind of mentality is needed for a Knight! For your next test, visit Sir Edmond, please~";
 				next;
@@ -1805,6 +1836,7 @@ L_AskQuestions:
 			}
 			else if (.@knight_t == 90) {
 				set KNIGHT_Q,10;
+				changequest 9008,9009;
 				mes "[Lady Amy]";
 				mes "Well, it wasn't perfect,";
 				mes "but I think you know enough";
@@ -2012,6 +2044,7 @@ prt_in,70,99,6	script	Sir Edmond#knt	734,{
 			mes "reverence.";
 			close2;
 			set KNIGHT_Q,11;
+			changequest 9009,9010;
 			warp "job_knt",143,57;
 			end;
 		}
@@ -2124,6 +2157,7 @@ OnInit:
 	end;
 OnTouch:
 	set KNIGHT_Q,12;
+	changequest 9010,9011;
 	warp "prt_in",80,100;
 	end;
 }
@@ -2528,6 +2562,7 @@ L_AskQuestions:
 			}
 			else if (.@knight_t == 10) {
 				set KNIGHT_Q,14;
+				changequest 9011,9012;
 				mes "[Sir Gray]";
 				mes "I enjoyed talking with you. Although, there were some";
 				mes "things that bothered me...";

+ 19 - 1
npc/jobs/2-1/priest.txt

@@ -5,7 +5,7 @@
 //= Converted by: kobra_k88.
 //= Further bugfixed and tested by Lupus
 //===== Current Version: ===================================== 
-//= 2.4b
+//= 2.5
 //===== Compatible With: ===================================== 
 //= eAthena  SVN
 //===== Description: ========================================= 
@@ -28,6 +28,7 @@
 //= 2.4 Changed Marthilda to Mathilda. [L0ne_W0llf]
 //= 2.4a Deleted unused variables. [Samuray22]
 //= 2.4b Corrected a Typo error ";;". [Samuray22]
+//= 2.5 Added Quest Log commands. [Kisuka]
 //==========================================================
 
 prt_church,16,41,4	script	High Bishop#prst	60,{
@@ -240,6 +241,7 @@ prt_church,16,41,4	script	High Bishop#prst	60,{
 					close;
 				}
 				set PRIEST_Q,1;
+				setquest 8009;
 					mes "[Bishop Paul]";
 				if (sex)
 					mes "Now I will explain the Three Trials of Priesthood. These tribulations will bring you much suffering, but I hope you can complete them, Brother " + strcharinfo(0) + ".";
@@ -269,6 +271,7 @@ prt_church,16,41,4	script	High Bishop#prst	60,{
 					mes "I have no doubt that you will do a good job by yourself. However, it will be easier with the aid of a Brother or Sister that has already become a Priest.";
 					next;
 					set PRIEST_Q,5;
+					changequest 8009,8011;
 					mes "[Bishop Paul]";
 					mes "Well, are you ready for the Spiritual Training?";
 					next;
@@ -309,6 +312,7 @@ prt_church,16,41,4	script	High Bishop#prst	60,{
 				mes "[Bishop Paul]";
 				mes "May God";
 				mes "bless you...";
+				changequest 8009,8010;
 				close;
 			}
 			mes "[Bishop Paul]";
@@ -388,6 +392,7 @@ prt_church,16,41,4	script	High Bishop#prst	60,{
 	}
 	else if (PRIEST_Q == 4) {
 		set PRIEST_Q,5;
+		changequest 8010,8011;
 		mes "[Bishop Paul]";
 		mes "You've accomplished";
 		mes "your pilgrimage.";
@@ -494,6 +499,7 @@ prt_church,16,41,4	script	High Bishop#prst	60,{
 		next;
 		mes "[Bishop Paul]";
 		mes "God, grant your power to your servant standing before you.";
+		changequest 8015,8016;
 		if (sex)
 			mes "Let him send your message throughout the ends of the earth.";
 		else
@@ -503,6 +509,7 @@ prt_church,16,41,4	script	High Bishop#prst	60,{
 		mes "Make this servant of yours an instrument of your miraculous works...";
 		next;
 		set .@joblvl,JobLevel;
+		completequest 8016;
 		callfunc "Job_Change",Job_Priest;
 		callfunc "F_ClearJobVar";		// clears all job variables for the current player
 		mes "[Bishop Paul]";
@@ -700,6 +707,9 @@ prt_church,27,24,1	script	Sister Cecilia	79,{
 		close;
 	}
 	else if (PRIEST_Q == 7) {
+		if(checkquest(8014) == -1) {
+			changequest 8013,8014;
+		}
 		mes "Welcome! I'm so glad to see you've come back! Now, there is one last trial left for you to complete.";
 		next;
 L_AskQuestions:
@@ -825,6 +835,7 @@ L_AskQuestions:
 		mes "......";
 		next;
 		set PRIEST_Q,8;
+		changequest 8014,8015;
 		mes "[Sister Cecilia]";
 		mes "You've come so far...";
 		mes "Why would you want";
@@ -954,6 +965,7 @@ job_prist,24,187,4	script	Peter S. Alberto	110,{
 			mes "Now...";
 			mes "Go for it!";
 			close2;
+			changequest 8011,8012;
 			warp "job_prist",24,44;
 			donpcevent "Zombie_Generator#prst::OnEnable";
 			donpcevent "Peter S. Alberto::OnDisable";
@@ -997,6 +1009,9 @@ job_prist,24,187,4	script	Peter S. Alberto	110,{
 			mes "Kill those";
 			mes "misbegotten creatures!";
 			close2;
+			if(checkquest(8012) == -1) {
+				changequest 8011,8012;
+			}
 			warp "job_prist",24,44;
 			donpcevent "Zombie_Generator#prst::OnEnable";
 			donpcevent "Peter S. Alberto::OnDisable";
@@ -1716,6 +1731,9 @@ OnTouch:
 	}
 	else if (BaseClass == Job_Acolyte) {
 		set PRIEST_Q,7;
+		if(checkquest(8012) != -1) {
+			changequest 8012,8013;
+		}
 		warp "prt_church",16,37;
 		donpcevent "Mummy_Generator::OnDisable";
 	}

+ 17 - 1
npc/jobs/2-1/wizard.txt

@@ -4,7 +4,7 @@
 //= (Aegis) Translated by yoshiki, converted by kobra_k88
 //= Further bugfixed and tested by Lupus
 //===== Current Version: ===================================== 
-//= 2.9
+//= 3.0
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -23,6 +23,7 @@
 //= 2.8 Fixed donpcevent to doevent. (bugreport:2311) [SoulBlaker]
 //= 2.9 Reverted the change of donpcevent to doevent. [L0ne_W0lf]
 //=     Was probably cuased by a warp BEFORE a percentheal
+//= 3.0 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 gef_tower,111,37,4	script	Wizard Guildsman	70,{
@@ -139,6 +140,7 @@ gef_tower,111,37,4	script	Wizard Guildsman	70,{
 					mes "Go talk to the man in the corner and he will give you the remaining exams.";
 					mes "Be careful. We have lost many Mages due to the difficulty of the exams.";
 					set WIZ_Q,3;
+					setquest 9015;
 					close;
 				}
 				mes "[Catherine]";
@@ -154,12 +156,14 @@ gef_tower,111,37,4	script	Wizard Guildsman	70,{
 				mes "The items you must collect are...";
 				if (rand(1)) {
 					set WIZ_Q,1;
+					setquest 9013;
 					mes "^3355FFRed Gemstone^000000 10 each,";
 					mes "^3355FFBlue Gemstone^000000 10 each,";
 					mes "^3355FFYellow Gemstone^000000 10 each,";
 				}
 				else {
 					set WIZ_Q,2;
+					setquest 9014;
 					mes "^3355FFCrystal Blue^000000 5 each,";
 					mes "^3355FFGreen Live^000000 5 each,";
 					mes "^3355FFRed Blood^000000 5 each,";
@@ -196,6 +200,7 @@ gef_tower,111,37,4	script	Wizard Guildsman	70,{
 			delitem 717,10; //Blue_Gemstone
 			delitem 715,10; //Yellow_Gemstone
 			set WIZ_Q,3;
+			changequest 9013,9015;
 			mes "[Catherine]";
 			mes "Good for you! You passed the first test.";
 			mes "But there are still two more left, so don't get too relaxed.";
@@ -234,6 +239,7 @@ gef_tower,111,37,4	script	Wizard Guildsman	70,{
 			delitem 990,5; //Boody_Red
 			delitem 992,5; //Wind_Of_Verdure
 			set WIZ_Q,3;
+			changequest 9014,9015;
 			mes "[Catherine]";
 			mes "Good. You've passed the first test now.";
 			mes "But you still have two more tests to go, so don't get too laid back, because it only gets harder from here. ~Hehehe";
@@ -409,6 +415,7 @@ gef_tower,111,37,4	script	Wizard Guildsman	70,{
 		mes "[Catherine]";
 		mes "Well, no need to wait, I congratulate you. I hearby deem you Wizard.";
 		next;
+		completequest 9018;
 		callfunc "Job_Change",Job_Wizard;
 		callfunc "F_ClearJobVar";		// clears all job variables for the current player
 		mes "[Catherine]";
@@ -538,6 +545,9 @@ gef_tower,102,24,2	script	Gloomy Wizard	735,{
 		mes "[Raulel]";
 		mes "I'll give you 10 questions so give me the right answers.";
 		mes "If you get something wrong, I won't tell you what it is!";
+		if(checkquest(9016) == -1) {
+			changequest 9015,9016;
+		}
 		next;
 		mes "[Raulel]";
 		mes "*Cough* *cough* Then here go the questions!";
@@ -708,6 +718,7 @@ L_AskQuestions:
 			mes "Your score is... " + .@wizard_t + "points.....";
 			if (.@wizard_t == 100) {
 				set WIZ_Q,5;
+				changequest 9016,9017;
 				mes "Hahahahahahah~ Well done, you passed the second test.";
 				mes "It wasn't done in one try like mine was, but I'll let you slide...";
 				next;
@@ -718,6 +729,7 @@ L_AskQuestions:
 			}
 			else if (.@wizard_t == 90) {
 				set WIZ_Q,5;
+				changequest 9016,9017;
 				mes "Hahaha~ Since you only missed one problem, you passed the second test.";
 				mes "It wasn't done in one try like mine was, but I'll let you slide...";
 				next;
@@ -728,6 +740,7 @@ L_AskQuestions:
 			}
 			else if (.@wizard_t == 80) {
 				set WIZ_Q,5;
+				changequest 9016,9017;
 				mes "Sheez... You didn't do very well, but you passed the second test.";
 				mes "It wasn't done in one try like mine was, but I'll let you slide...";
 				next;
@@ -751,6 +764,7 @@ L_AskQuestions:
 		mes "Your score is... " + .@wizard_t + " points!";
 		if (.@wizard_t == 100) {
 			set WIZ_Q,5;
+			changequest 9016,9017;
 			mes "*cough* *Cough* Well done, you passed the second test.";
 			next;
 			mes "[Raulel]";
@@ -760,6 +774,7 @@ L_AskQuestions:
 		}
 		else if (.@wizard_t == 90) {
 			set WIZ_Q,5;
+			changequest 9016,9017;
 			mes "Hahahaha~ I'll let you slide by since you only missed one problem. You passed the second test.";
 			next;
 			mes "[Raulel]";
@@ -1528,6 +1543,7 @@ OnMyMobDead:
 	if (.MyMobs < 1) {
 		mapannounce "job_wiz","Congratulations, " + strcharinfo(0) + ". You have passed the job change test.",bc_map;
 		set WIZ_Q,7;
+		changequest 9017,9018;
 		donpcevent "Room of Fire#Door::OnDisable";
 		donpcevent "Test Helper#wiz::OnEnable";
 		stopnpctimer;

+ 9 - 1
npc/jobs/2-1e/StarGladiator.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Celestria, Samuray22
 //===== Current Version: ===================================== 
-//= 1.2
+//= 1.3
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -16,6 +16,7 @@
 //= 1.1c Changed item names to item IDs. [Samuray22]
 //= 1.2 Another round of updates to the script. [L0ne_W0lf]
 //=	Removes the use of labels, and correcets other errors.
+//= 1.3 Added Quest Log commands. [Kisuka]
 //============================================================
 
 payon,215,102,3	script	Moohyun#job_star	828,3,3,{
@@ -103,6 +104,7 @@ payon,215,102,3	script	Moohyun#job_star	828,3,3,{
 							mes "letter of recommendation that";
 							mes "I'll send to him for you.";
 							set STGL_Q,1;
+							setquest 7007;
 							close;
 						}					
 						mes "[Moohyun]";
@@ -421,6 +423,7 @@ comodo,172,230,3	script	Wandering Master#job_sta	730,{
 				mes "^4D4DFFFlame Heart^000000.";
 				mes "Now go...";
 				set STGL_Q,2;
+				changequest 7007,7008;
 				close;
 			}
 			mes "[Moogang]";
@@ -485,6 +488,7 @@ comodo,172,230,3	script	Wandering Master#job_sta	730,{
 				delitem 995,1; //Mistic_Frozen
 				delitem 994,1; //Flame_Heart
 				set STGL_Q,3;
+				changequest 7008,7009;
 				close;
 			}
 			mes "[Moogang]";
@@ -672,6 +676,7 @@ comodo,172,230,3	script	Wandering Master#job_sta	730,{
 			mes "of the Sun, the Moon and";
 			mes "the Stars. Welcome to our";
 			mes "way of martial arts, friend.";
+			completequest 7011;
 			callfunc "Job_Change",Job_Star_Gladiator;
 			callfunc "F_ClearJobVar";		//clears all job variables for the current player
 			next;
@@ -1431,6 +1436,7 @@ job_star,161,33,0	script	Cheehee#job_star	77,{
 				mes "this earth that come from";
 				mes "the stars. Bring me a piece of a star and the sand of a star...";
 				set STGL_Q,10;
+				changequest 7009,7010;
 				close;
 			}
 			mes "[Cheehee]";
@@ -1531,6 +1537,7 @@ job_star,161,33,0	script	Cheehee#job_star	77,{
 				mes "let him know that you";
 				mes "completed our testing.";
 				set STGL_Q,12;
+				changequest 7010,7011;
 				close;
 			}
 			mes "[Cheehee]";
@@ -1563,6 +1570,7 @@ job_star,161,33,0	script	Cheehee#job_star	77,{
 			mes "let him know that you";
 			mes "completed our testing.";
 			set STGL_Q,12;
+			changequest 7010,7011;
 			close;
 		}
 		else if (STGL_Q == 12) {

+ 34 - 1
npc/jobs/2-2/alchemist.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= nestor_zulueta (Fusion), converted by Darkchild
 //===== Current Version: ===================================== 
-//= 2.8
+//= 2.9
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -15,6 +15,7 @@
 //= 2.6 Corrected a bug in advanced class checking. [L0ne_W0lf]
 //= 2.7 Added missing checkweights. [L0ne_W0lf]
 //= 2.8 Fixed minor typo in test section. [L0ne_W0lf]
+//= 2.9 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 alde_alche,27,185,5	script	Alchemist Guildsman#am	744,{
@@ -183,14 +184,17 @@ alde_alche,27,185,5	script	Alchemist Guildsman#am	744,{
 				switch(rand(1,3)) {
 				case 1:
 					set ALCH_Q,1;
+					setquest 2028;
 					mes "^551A8B7 Berserk Potions^000000.";
 					break;
 				case 2:
 					set ALCH_Q,2;
+					setquest 2029;
 					mes "^551A8B100 Mini Furnaces^000000.";
 					break;
 				case 3:
 					set ALCH_Q,3;
+					setquest 2030;
 					mes "^551A8B7,500 Fire Arrows^000000.";
 				}
 				next;
@@ -230,6 +234,15 @@ alde_alche,27,185,5	script	Alchemist Guildsman#am	744,{
 			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;
+			if(checkquest(2028) != -1) {
+				changequest 2028,2031;
+			}
+			else if(checkquest(2029) != -1) {
+				changequest 2029,2031;
+			}
+			else {
+				changequest 2030,2031;
+			}
 			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...";
@@ -254,6 +267,15 @@ alde_alche,27,185,5	script	Alchemist Guildsman#am	744,{
 			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;
+			if(checkquest(2028) != -1) {
+				changequest 2028,2031;
+			}
+			else if(checkquest(2029) != -1) {
+				changequest 2029,2031;
+			}
+			else {
+				changequest 2030,2031;
+			}
 			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...";
@@ -724,6 +746,7 @@ L_AskQuestions:
 		mes "He'll teach you how to do the experiments. Just tell him that";
 		mes "I sent you.";
 		set ALCH_Q,6;
+		changequest 2031,2032;
 		close;
 	}
 	else if (ALCH_Q == 5) {
@@ -889,6 +912,7 @@ alde_alche,13,15,7	script	Studying Man#am	750,{
 			mes "^551A8B1 Yellow Herb^000000 and";
 			mes "^551A8B1 White Herb^000000.";
 			set ALCH_Q,7;
+			changequest 2032,2033;
 			next;
 			mes "[Darwin]";
 			mes "Once you have";
@@ -1229,6 +1253,7 @@ alde_alche,13,15,7	script	Studying Man#am	750,{
 			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;
+			changequest 2033,2035;
 			next;
 			mes "[Darwin]";
 			mes "Now, go into the next room";
@@ -1405,6 +1430,7 @@ alde_alche,79,19,5	script	Experiment Expert#am	748,{
 			next;
 			mes "[Van Helmont]";
 			set ALCH_Q,9;
+			changequest 2035,2036;
 			mes "Well then, see you later.";
 			mes "You'd better get going as";
 			mes "soon as you can.";
@@ -1499,6 +1525,7 @@ alde_alche,79,19,5	script	Experiment Expert#am	748,{
 			mes "to this one and talk to Nicholas. He'll continue your training.";
 			next;
 			set ALCH_Q,20;
+			changequest 2036,2037;
 			mes "[Van Helmont]";
 			mes "What are you";
 			mes "still doing here?";
@@ -1656,12 +1683,16 @@ alde_alche,101,184,4	script	Master Alchemist#am	122,{
 			cutin "",255;
 			end;
 		}
+		if(checkquest(2039) != -1) {
+			changequest 2039,2040;
+		}
 		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;
+		completequest 2040;
 		set .@jlevel,JobLevel;
 		callfunc "Job_Change",Job_Alchemist;
 		callfunc "F_ClearJobVar";
@@ -1878,6 +1909,7 @@ alde_alche,145,19,1	script	Chief Researcher#am	57,{
 		mes "help them out. They'll need all of these items to continue their experiments.";
 		next;
 		set ALCH_Q,23;
+		changequest 2037,2038;
 		mes "[Nicholas Flamel]";
 		mes "1 Mixture,";
 		mes "5 Burnt Tree,";
@@ -1907,6 +1939,7 @@ alde_alche,145,19,1	script	Chief Researcher#am	57,{
 	}
 	else if (ALCH_Q == 24) {
 		set ALCH_Q,40;
+		changequest 2038,2039;
 		mes "[Nicholas Flamel]";
 		mes "Ah, you're back!";
 		mes "I just got a message from Bain";

+ 11 - 1
npc/jobs/2-2/bard.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= Muad_Dib(The Prometheus Project), Lupus, Samuray22
 //===== Current Version: ===================================== 
-//= 2.4
+//= 2.5
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -21,6 +21,7 @@
 //=	- Fixed some indentation.
 //=	- Changed item names to item IDs
 //= 2.4 Fixed hang up on bard quest. ($kiN.) [L0ne_W0lf]
+//= 2.5 Added Quest Log commands. [Kisuka]
 //============================================================
 
 //=============== Ayealo ============================
@@ -151,6 +152,7 @@ comodo,226,123,5	script	Wandering Bard	741,{
 					mes "It would be nice if more people went around and sang...";
 					mes "Well, it's quite ok as it is now... hmmhmm.";
 					set BARD_Q,1;
+					setquest 3000;
 					close2;
 					cutin "job_bard_aiolo01",255;
 					end;
@@ -207,6 +209,7 @@ comodo,226,123,5	script	Wandering Bard	741,{
 				mes "It doesn't really matter which Flower, but try to bring one that I like.";
 				mes "And don't just buy any random Flower, ok?";
 				set BARD_Q,2;
+				changequest 3000,3001;
 				close2;
 				cutin "job_bard_aiolo01",255;
 				end;
@@ -409,6 +412,7 @@ comodo,226,123,5	script	Wandering Bard	741,{
 		mes "Go there and bring back a present.";
 		next;
 		set BARD_Q,3;
+		changequest 3001,3002;
 		set xmas_npc,1;
 		mes "[Lalo]";
 		mes "if you become friends with ^008800Jack Frost^000000, you will receive something.";
@@ -428,6 +432,9 @@ comodo,226,123,5	script	Wandering Bard	741,{
 			mes "Then, do you want to try singing...?";
 			mes "I'll sing a short melody...";
 			mes "and you try after.";
+			if(checkquest(3003) == -1) {
+				changequest 3002,3003;
+			}
 			next;
 			mes "[Lalo]";
 			mes "Here I go.";
@@ -817,6 +824,7 @@ B_Change:
 					cutin "job_bard_aiolo01",255;
 					end;
 				}
+				completequest 3003;
 				callfunc "Job_Change",Job_Bard;
 				callfunc "F_ClearJobVar";		//clears all job variables for the current player
 				mes "[Lalo]";
@@ -829,6 +837,7 @@ B_Change:
 				cutin "job_bard_aiolo01",255;
 				end;
 			}
+			changequest 3003,3004;
 			mes "[Lalo]";
 			mes "Hmm... very well, bring some trunks.";
 			mes "It doesn't matter what kind, as long as they are 60 of the same kind...";
@@ -918,6 +927,7 @@ B_Change:
 	end;
 
 S_ChangeJob:
+		completequest 3004;
 		callfunc "Job_Change",Job_Bard;
 		callfunc "F_ClearJobVar";
 		mes "[Lalo]";

+ 31 - 2
npc/jobs/2-2/crusader.txt

@@ -4,7 +4,7 @@
 //= Made by: Black Dragon
 //= Converted by: Shin
 //===== Current Version: ===================================== 
-//= 3.1
+//= 3.2
 //===== Compatible With: ===================================== 
 //= eAthena  SVN
 //===== Description: ========================================= 
@@ -30,6 +30,7 @@
 //= 2.9a Deleted unused variables. [Samuray22]
 //= 3.0 Updated waiting room. (Removes global var) [L0ne_W0lf]
 //= 3.1 Adding Hermemton's changes. [L0ne_W0lf]
+//= 3.2 Added Quest Log commands. [Kisuka]
 //============================================================
 
 
@@ -150,6 +151,7 @@ prt_castle,45,169,5	script	Senior Crusader	752,{
 					delitem 1004, 1;
 					delitem 1009, 1;
 					set CRUS_Q,4;
+					setquest 3009;
 					mes "[Michael Halig]";
 					mes "Moorenak and others like him will test the limits of your capabilities and help you find your path. Return to me after you have completed their tests...";
 					close;
@@ -165,6 +167,7 @@ prt_castle,45,169,5	script	Senior Crusader	752,{
 				set .@cru_m1,rand(1,3);
 				if(.@cru_m1 == 1) {
 					set CRUS_Q, 1;
+					setquest 3006;
 					mes "10 ^3355FF"+getitemname(957)+"^000000";
 					mes "10 ^3355FF"+getitemname(959)+"^000000";
 					mes "10 ^3355FF"+getitemname(1099)+"^000000";
@@ -173,6 +176,7 @@ prt_castle,45,169,5	script	Senior Crusader	752,{
 				}
 				else if(.@cru_m1 == 2) {
 					set CRUS_Q, 2;
+					setquest 3007;
 					mes "10 ^3355FF"+getitemname(932)+"^000000";
 					mes "10 ^3355FF"+getitemname(1043)+"^000000";
 					mes "10 ^3355FF"+getitemname(1098)+"^000000";
@@ -181,6 +185,7 @@ prt_castle,45,169,5	script	Senior Crusader	752,{
 				}
 				else {
 					set CRUS_Q, 3;
+					setquest 3008;
 					mes "10 ^3355FF"+getitemname(958)+"^000000";
 					mes "10 ^3355FF"+getitemname(930)+"^000000";
 					mes "10 ^3355FF"+getitemname(1041)+"^000000";
@@ -241,6 +246,15 @@ prt_castle,45,169,5	script	Senior Crusader	752,{
 			delitem @item3, 10;
 			delitem @item4, 10;
 			set CRUS_Q, 4;
+			if(checkquest(3006) != -1) {
+				changequest 3006,3009;
+			}
+			else if(checkquest(3007) != -1) {
+				changequest 3007,3009;
+			}
+			else {
+				changequest 3008,3009;
+			}
 			mes "[Michael Halig]";
 			mes "Moorenak and others like him will test the limits of your capabilities and help you find your path. Return to me after you have completed their tests...";
 			close;
@@ -269,6 +283,7 @@ prt_castle,45,169,5	script	Senior Crusader	752,{
 		mes "Together, let us ready ourselves and be victorious over evil and tyranny!";
 		next;
 		set .@Joblevel,JobLevel;
+		completequest 3015;
 		callfunc "Job_Change",Job_Crusader;
 		callfunc "F_ClearJobVar";		//clears all job variables for the current player
 		mes "[Michael Halig]";
@@ -363,6 +378,7 @@ prt_castle,164,32,1	script	Man in Anguish	733,{
 			mes "You must keep one thing in mind. Under no condition are you allowed to kill the monsters.";
 			next;
 			set CRUS_Q,5;
+			changequest 3009,3010;
 			mes "[Murnak Mijoul]";
 			mes "Well then...";
 			mes "Good luck.";
@@ -706,6 +722,7 @@ C_Questions:
 		mes "is " + .@cru_t + " points...";
 		if(.@cru_t == 100) {
 			set CRUS_Q, 8;
+			changequest 3011,3013;
 			mes "Superb! Now, it's time for";
 			mes "you to take the next test.";
 			next;
@@ -718,6 +735,7 @@ C_Questions:
 		}
 		else if(.@cru_t == 90) {
 			set CRUS_Q, 8;
+			changequest 3011,3013;
 			mes "Well done~ Now, it's time for";
 			mes "you to take the next test.";
 			next;
@@ -730,6 +748,7 @@ C_Questions:
 		}
 		else if (.@cru_t == 80 && CRUS_Q == 7) {
 			set CRUS_Q,8;
+			changequest 3011,3013;
 			mes "Seems like you prepared a lot so I'll let you pass this time.";
 			mes "Hurry now and go take the next test.";
 			next;
@@ -739,6 +758,9 @@ C_Questions:
 			close;
 		}
 		set CRUS_Q,7;
+		if(checkquest(3011) != -1) {
+			changequest 3011,3012;
+		}
 		mes "Hmmm... What a pity.";
 		mes "Go study some more and";
 		mes "take this test again, okay?";
@@ -842,6 +864,9 @@ prt_castle,35,151,5	script	Patron Knight	751,{
 			mes "[Bliant Piyord]";
 			mes "To take the battle test, bring";
 			mes "1 ^3355FFHoly Water^000000. This will be used to purify you prior to taking the test.";
+			if(checkquest(3013) != -1) {
+				changequest 3013,3014;
+			}
 			next;
 			mes "[Bliant Piyord]";
 			mes "Well then...";
@@ -1174,6 +1199,7 @@ OnDead:
 job_cru,98,105,4	script	 Summoner#cr5	45,3,3,{
 OnTouch:
 	set CRUS_Q,6;
+	changequest 3010,3011;
 	warp "prt_castle",164,28;
 	end;
 }
@@ -1268,7 +1294,10 @@ OnMonster3:
 
 OnDead:
 	set .MyMonsterCount,.MyMonsterCount+1;
-	if (.MyMonsterCount >= 10) set CRUS_Q,10;
+	if (.MyMonsterCount >= 10) {
+		set CRUS_Q,10;
+		changequest 3014,3015;
+	}
 	end;
 
 OnEnd:

+ 18 - 1
npc/jobs/2-2/dancer.txt

@@ -4,7 +4,7 @@
 //= Kalen - Original jAthena
 //= Fredzilla - Converted, Lupus
 //===== Current Version: ===================================== 
-//= 3.6a
+//= 3.7
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -19,6 +19,7 @@
 //= 3.5 Minor corrections to script. (bugreport:1766) [L0ne_W0lf]
 //= 3.6 Applied Correction bug with for loop. [L0ne_W0lf]
 //= 3.6a Fixed a little Exploit to bug the quest with a timeout. (bugreport:2252) [Samuray22]
+//= 3.7 Added Quest Log commands. [Kisuka]
 //============================================================
 
 comodo,180,153,4	script	Sonotora#1	90,{
@@ -177,6 +178,7 @@ job_duncer,43,93,4	script	Aile#da	724,{
 				close2;
 				cutin "",255;
 				set DANC_Q,1;
+				setquest 7000;
 				end;
 			}
 			else {
@@ -232,6 +234,7 @@ job_duncer,43,93,4	script	Aile#da	724,{
 		set .@item_nd,rand(1,10);
 		if (.@item_nd > 0 && .@item_nd < 3) {
 			set DANC_Q,2;
+			changequest 7000,7001;
 			mes "[Aile]";
 			mes "First, there's the tuition fee of ^CD688910,000 Zeny^000000. Then, you'll about ^CD688920 Sticky Mucus^000000 for shoe polish.";
 			next;
@@ -248,6 +251,7 @@ job_duncer,43,93,4	script	Aile#da	724,{
 		}
 		else if (.@item_nd == 4) {
 			set DANC_Q,3;
+			changequest 7000,7002;
 			mes "[Aile]";
 			mes "First, there's the tuition fee of ^CD688910,000 Zeny^000000. Then, bring ^CD68895 Earthworm Peelings^000000 for polishing the floor and, of course, a pair of ^CD6889Boots^000000.";
 			next;
@@ -259,6 +263,7 @@ job_duncer,43,93,4	script	Aile#da	724,{
 		}
 		else {
 			set DANC_Q,4;
+			changequest 7000,7003;
 			mes "[Aile]";
 			mes "First, there's the tuition fee of ^CD688910,000 Zeny^000000. Then, bring ^CD68892 Clam Shells^000000 for your costume, ^CD68895 Yellow Potions^000000 and ^CD688920 Jellopy^000000 to treat foot injuries.";
 			next;
@@ -316,6 +321,15 @@ job_duncer,43,93,4	script	Aile#da	724,{
 			mes "[Aile]";
 			mes "Next, go to ^CD6889Bijou^000000, who is in charge of the interviewing process. She will have a couple of things she'll need to ask you.";
 			set DANC_Q,5;
+			if(checkquest(7001) != -1) {
+				changequest 7001,7004;
+			}
+			else if(checkquest(7002) != -1) {
+				changequest 7002,7004;
+			}
+			else {
+				changequest 7003,7004;
+			}
 			close2;
 			cutin "",255;
 			end;
@@ -817,6 +831,7 @@ job_duncer,95,93,4	script	Bijou#da	101,{
 		mes "[Bijou]";
 		mes "Well then~";
 		mes "Good luck...!!";
+		changequest 7004,7005;
 		set DANC_Q,8;
 		close2;
 		warp "job_duncer",105,109;
@@ -856,6 +871,7 @@ job_duncer,95,93,4	script	Bijou#da	101,{
 		next;
 		set .@jlevel,JobLevel;
 		mes "[Bijou]";
+		completequest 7006;
 		callfunc "Job_Change",Job_Dancer;
 		callfunc "F_ClearJobVar";
 		mes "Ooh...!";
@@ -1220,6 +1236,7 @@ job_duncer,69,110,0	script	dance#return	-1,1,4,{
 OnTouch:
 	mapannounce "job_duncer","Good! Well done! Go back to Bijou!",bc_map;
 	set DANC_Q,9;
+	changequest 7005,7006;
 	warp "comodo",188,162;
 	end;
 

+ 31 - 8
npc/jobs/2-2/monk.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= Dino9021, Edited / Translated by Celest
 //===== Current Version: ===================================== 
-//= 2.3a
+//= 2.4
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -14,6 +14,7 @@
 //=	No longer uses function "F_BlockHigh"
 //= 2.3 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
 //= 2.3a Deleted unused variables. [Samuray22]
+//= 2.4 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 prt_monk,59,247,1	script	Guarding Monk#mk	120,6,2,{
@@ -76,6 +77,7 @@ prt_monk,59,247,1	script	Guarding Monk#mk	120,6,2,{
 				mes "That is good. Go see our sensei Moohae. Speak with him.";
 				mes "He will help you start your training.";
 				set MONK_Q,2;
+				setquest 3016;
 				close;
 			}
 			else if (BaseJob == Job_Acolyte && JobLevel < 40) {
@@ -138,6 +140,7 @@ prt_monk,59,247,1	script	Guarding Monk#mk	120,6,2,{
 					mes "That is good. Go see our sensei Moohae. Speak with him.";
 					mes "He will help you start your training.";
 					set MONK_Q,2;
+					setquest 3016;
 					close;
 				}
 				else if (BaseJob == Job_Acolyte && JobLevel < 40) {
@@ -220,6 +223,7 @@ prt_monk,59,247,1	script	Guarding Monk#mk	120,6,2,{
 					mes "That is good. Go see our sensei Moohae, speak with him";
 					mes "and he will help you start new training.";
 					set MONK_Q,2;
+					setquest 3016;
 					close;
 				}
 				else if (BaseJob == Job_Acolyte && JobLevel < 40) {
@@ -375,13 +379,13 @@ monk_in,99,58,1	script	Sensei Moohae#mk	60,{
 		mes "Let us start with a simple task.";
 		next;
 		switch(rand(1,7)) {
-		case 1: setarray .@items[0], 938,5, 1055,10, 511,20, 3; break;
-		case 2: setarray .@items[0], 942,20, 1002,5, 510,3, 4; break;
-		case 3: setarray .@items[0], 905,30, 909,5, 955,10, 5; break;
-		case 4: setarray .@items[0], 943,5, 935,20, 912,5, 6; break;
-		case 5: setarray .@items[0], 7053,5, 509,10, 508,10, 7; break;
-		case 6: setarray .@items[0], 913,10, 948,4, 7033,20, 8; break;
-		case 7: setarray .@items[0], 1027,5, 1025,20, 1042,10, 9; break;
+		case 1: setarray .@items[0], 938,5, 1055,10, 511,20, 3; changequest 3016,3017; break;
+		case 2: setarray .@items[0], 942,20, 1002,5, 510,3, 4; changequest 3016,3018; break;
+		case 3: setarray .@items[0], 905,30, 909,5, 955,10, 5; changequest 3016,3019; break;
+		case 4: setarray .@items[0], 943,5, 935,20, 912,5, 6; changequest 3016,3020; break;
+		case 5: setarray .@items[0], 7053,5, 509,10, 508,10, 7; changequest 3016,3021; break;
+		case 6: setarray .@items[0], 913,10, 948,4, 7033,20, 8; changequest 3016,3022; break;
+		case 7: setarray .@items[0], 1027,5, 1025,20, 1042,10, 9; changequest 3016,3023; break;
 		}
 		mes "[Sensei Moohae]";
 		mes .@items[1]+" "+getitemname(.@items[0])+",";
@@ -416,6 +420,7 @@ monk_in,99,58,1	script	Sensei Moohae#mk	60,{
 			mes "Well done, you found all the items.";
 			mes "I will tell this to the elders.";
 			set MONK_Q,10;
+			changequest 3017,3024;
 			delitem 938,5; //Sticky_Mucus
 			delitem 1055,10; //Earthworm_Peeling
 			delitem 511,20; //Green_Herb
@@ -446,6 +451,7 @@ monk_in,99,58,1	script	Sensei Moohae#mk	60,{
 			mes "Very good, you found all the items.";
 			mes "I will tell this to the elders.";
 			set MONK_Q,10;
+			changequest 3018,3024;
 			delitem 942,20; //Yoyo_Tail
 			delitem 1002,5; //Iron_Ore
 			delitem 510,3; //Blue_Herb
@@ -476,6 +482,7 @@ monk_in,99,58,1	script	Sensei Moohae#mk	60,{
 			mes "See, that wasn't so bad you real found all the items.";
 			mes "I will tell this to the elders.";
 			set MONK_Q,10;
+			changequest 3019,3024;
 			delitem 905,30; //Stem
 			delitem 909,5; //Jellopy
 			delitem 955,10; //Worm_Peelings
@@ -506,6 +513,7 @@ monk_in,99,58,1	script	Sensei Moohae#mk	60,{
 			mes "Impressive, you really found all the items.";
 			mes "I will tell this to the elders.";
 			set MONK_Q,10;
+			changequest 3020,3024;
 			delitem 943,5; //Solid_Shell
 			delitem 935,20; //Shell
 			delitem 912,5; //Zargon
@@ -536,6 +544,7 @@ monk_in,99,58,1	script	Sensei Moohae#mk	60,{
 			mes "Very nice, you found all the items.";
 			mes "I will tell this to the elders.";
 			set MONK_Q,10;
+			changequest 3021,3024;
 			delitem 7053,5; //Cyfar
 			delitem 509,10; //White_Herb
 			delitem 508,10; //Yellow_Herb
@@ -566,6 +575,7 @@ monk_in,99,58,1	script	Sensei Moohae#mk	60,{
 			mes "Excellent, all the items I asked for.";
 			mes "I will tell this to the elders.";
 			set MONK_Q,10;
+			changequest 3022,3024;
 			delitem 913,10; //Tooth_Of_Bat
 			delitem 948,5; //Bear's_Foot
 			delitem 7033,20; //Poison_Spore
@@ -596,6 +606,7 @@ monk_in,99,58,1	script	Sensei Moohae#mk	60,{
 			mes "Wow, you found all the items!!";
 			mes "I will tell this to the elders.";
 			set MONK_Q,10;
+			changequest 3023,3024;
 			delitem 1027,5; //Porcupine_Spike
 			delitem 1025,20; //Spiderweb
 			delitem 1042,10; //Short_Leg
@@ -830,6 +841,7 @@ monk_in,99,58,1	script	Sensei Moohae#mk	60,{
 			mes "....and see life through the eyes of a monk.";
 			next;
 			set .@jlevel,JobLevel;
+			completequest 3032;
 			callfunc "Job_Change",Job_Monk;
 			callfunc "F_ClearJobVar";
 			mes "[Sensei Moohae]";
@@ -924,6 +936,7 @@ prt_monk,251,255,1	script	Touha#mk	79,{
 		mes "Please repeat after me.";
 		next;
 		mes "[Touha]";
+		changequest 3024,3025;
 		switch(rand(1,3)) {
 		case 1:
 			set MONK_Q,11;
@@ -1580,6 +1593,7 @@ L_MonkOath3:
 		next;
 		if (.@monk_t > 90) {
 			set MONK_Q,14;
+			changequest 3025,3026;
 			mes "[Touha]";
 			mes "...well done, that was perfect. You pay attention well...";
 			next;
@@ -1868,12 +1882,14 @@ prt_monk,57,179,1	script	Boohae#mk	110,{
 		next;
 		if (select("Gathering mushrooms:Marathon") == 1) {
 			set MONK_Q,15;
+			changequest 3026,3027;
 			mes "[Boohae]";
 			mes "Hmm....gathering mushrooms. So you want to test your tolerance huh?";
 			mes "Go prepare and come back later when you're ready.";
 			close;
 		}
 		set MONK_Q,16;
+		changequest 3026,3028;
 		mes "[Boohae]";
 		mes "Good choice. Forcing your physical limits to their boundaries and grants a higher amount of self control.";
 		mes "Go prepare and come back later when you're ready.";
@@ -2046,6 +2062,7 @@ monk_test,386,388,4	script	Apprentice Monk#mk	110,{
 		mapannounce "monk_test","" + strcharinfo(0) + "...q.q..q. .quit! ...the marathon!! Y...you do not have what it takes to be a m... monk!",bc_map;
 		close2;
 		set MONK_Q,15;
+		changequest 3028,3027;
 		warp "prt_monk",194,168;
 		end;
 	}
@@ -2064,6 +2081,7 @@ OnTouch:
 	}
 	else if (MONK_Q == 24) {
 		set MONK_Q,25;
+		changequest 3028,3029;
 		mapannounce "monk_test","Now! This is the last lap!! If you make it you need to go visit Tomoon for the next test!",bc_map;
 		warp "monk_test",385,388;
 		end;
@@ -2130,6 +2148,7 @@ job_monk,225,180,1	script	Hyunmoo#mk	89,{
 		mapannounce "job_monk","" + strcharinfo(0) + ", has quit his testing to become a monk.",bc_map;
 		close2;
 		set MONK_Q,16;
+		changequest 3027,3028;
 		warp "prt_monk",194,168;
 		end;
 	}
@@ -2176,6 +2195,7 @@ job_monk,225,180,1	script	Hyunmoo#mk	89,{
 		mapannounce "job_monk","" + strcharinfo(0) + ", has quit his training to become a monk.",bc_map;
 		warp "prt_monk",194,168;
 		set MONK_Q,16;
+		changequest 3027,3028;
 		end;
 	}
 	else if (MONK_Q > 14 && MONK_Q < 25 && (countitem(1069) > 29 || countitem(1070) > 29)) {
@@ -2187,6 +2207,7 @@ job_monk,225,180,1	script	Hyunmoo#mk	89,{
 		mes "Go meet Tomoon for your next test.";
 		mes "Tomoon is staying in the deepest room inside a building near this abbey.";
 		set MONK_Q,25;
+		changequest 3027,3029;
 		delitem 1069,countitem(1069); //Mushroom_Of_Thief_1
 		delitem 1070,countitem(1070); //Mushroom_Of_Thief_2
 		close2;
@@ -2268,6 +2289,7 @@ monk_test,319,139,1	script	Tomoon#mk	52,{
 		mes "Let's see if you got what it takes to be a true monk!!";
 		close2;
 		set MONK_Q,26;
+		changequest 3029,3031;
 		warp "monk_test",88,74;
 		end;
 	}
@@ -2290,6 +2312,7 @@ monk_test,319,139,1	script	Tomoon#mk	52,{
 		mes "Drink this potion and you will be able to become a monk!!!";
 		mes "... now go back to sensei Moohae!!!";
 		set MONK_Q,28;
+		changequest 3031,3032;
 		close;
 	}
 	else if (MONK_Q == 28) {

+ 47 - 1
npc/jobs/2-2/rogue.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= kobra_k88
 //===== Current Version: ===================================== 
-//= 2.8
+//= 2.9
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -20,6 +20,7 @@
 //= 2.6 Fixed a few bugs in the Rogue Guildsman. [L0ne_W0lf]
 //= 2.7 Fixed a bug on Markie question 5, bugreport:1600 [Brainstorm]
 //= 2.8 Moved "Thug" to Morroc Ruins. [L0ne_W0lf]
+//= 2.9 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 moc_ruins,86,103,1	script	Thug#rg	118,{
@@ -146,6 +147,7 @@ in_rogue,363,122,4	script	Rogue Guildsman#rg	747,{
 				close;
 			}
 			else if (ROGUE_Q == 16 || ROGUE_Q == 17) {
+				changequest 2026,2027;
 				mes "[Markie]";
 				if (ROGUE_Q == 16) {
 					mes "Oh hey, it's you!";
@@ -171,6 +173,7 @@ in_rogue,363,122,4	script	Rogue Guildsman#rg	747,{
 				set .@jlevel,JobLevel;
 				callfunc "Job_Change",Job_Rogue;
 				callfunc "F_ClearJobVar";
+				completequest 2027;
 				next;
 				mes "[Markie]";
 				mes "Now...";
@@ -419,6 +422,7 @@ in_rogue,363,122,4	script	Rogue Guildsman#rg	747,{
 			mes "" + .@assassin_t + " points.";
 			if (.@assassin_t > 80) {
 				set ROGUE_Q,2;
+				setquest 2017;
 				mes "Good. You passed.";
 				mes "We don't gotta";
 				mes "do that again.";
@@ -512,6 +516,7 @@ in_rogue,376,23,1	script	Mr. Smith#rg	57,{
 			mes "[Mr. Smith]";
 			mes "I will let you know...";
 			set ROGUE_Q,6;
+			changequest 2017,2021;
 			next;
 			mes "[Mr. Smith]";
 			mes "I will let you know......";
@@ -684,6 +689,7 @@ in_rogue,376,23,1	script	Mr. Smith#rg	57,{
 				mes "^CCCCCC- Middle Finger -^000000'";
 				mes "*Grins*";
 				set ROGUE_Q,8;
+				changequest 2021,2025;
 				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.";
@@ -753,6 +759,15 @@ in_rogue,376,23,1	script	Mr. Smith#rg	57,{
 			switch(rand(1,3)) {
 			case 1:
 				set ROGUE_Q,9;
+				if(checkquest(2018) != -1) {
+					changequest 2018,2022;
+				}
+				else if(checkquest(2019) != -1) {
+					changequest 2019,2022;
+				}
+				else {
+					changequest 2020,2022;
+				}
 				next;
 				mes "[Mr. Smith]";
 				mes "Right! I know";
@@ -781,6 +796,15 @@ in_rogue,376,23,1	script	Mr. Smith#rg	57,{
 				close;
 			case 2:
 				set ROGUE_Q,10;
+				if(checkquest(2018) != -1) {
+					changequest 2018,2023;
+				}
+				else if(checkquest(2019) != -1) {
+					changequest 2019,2023;
+				}
+				else {
+					changequest 2020,2023;
+				}
 				next;
 				mes "[Mr. Smith]";
 				mes "Hmm...";
@@ -808,6 +832,15 @@ in_rogue,376,23,1	script	Mr. Smith#rg	57,{
 				close;
 			case 3:
 				set ROGUE_Q,11;
+				if(checkquest(2018) != -1) {
+					changequest 2018,2024;
+				}
+				else if(checkquest(2019) != -1) {
+					changequest 2019,2024;
+				}
+				else {
+					changequest 2020,2024;
+				}
 				next;
 				mes "[Mr. Smith]";
 				mes "Hmm...";
@@ -914,6 +947,15 @@ S_Req:
 	mes "^FF0000"+getarg(2)+"^000000 and";
 	mes "^FF0000"+getarg(3)+"^000000.";
 	set ROGUE_Q,getarg(4);
+	if(getarg(4) == 3) {
+		changequest 2017,2018;
+	}
+	else if(getarg(4) == 4) {
+		changequest 2017,2019;
+	}
+	else {
+		changequest 2017,2020;
+	}
 	next;
 	mes "[Mr. Smith]";
 	mes "Hmm...?";
@@ -1211,6 +1253,7 @@ in_rogue,272,135,1	script	Hermanthorn Jr#rg	85,{
 		mes "Well...";
 		mes "Just make it back to the Rogue Guild alive. That's all you have to do!";
 		set ROGUE_Q,12;
+		changequest 2025,2026;
 		close;
 	}
 	else if (ROGUE_Q == 12) {
@@ -1383,6 +1426,7 @@ in_rogue,244,39,1	script	Aragham Junior#rg	99,{
 			close2;
 			warp "in_rogue",15,105;
 			set ROGUE_Q,13;
+			changequest 2022,2026;
 			end;
 		}
 		mes "[Aragham Jr.]";
@@ -1463,6 +1507,7 @@ in_rogue,160,34,1	script	Hollgrehenn junior#rg	85,{
 			close2;
 			warp "in_rogue",15,105;
 			set ROGUE_Q,15;
+			changequest 2024,2026;
 			end;
 		}
 		mes "[Hollgrehenn Jr.]";
@@ -1549,6 +1594,7 @@ in_rogue,177,109,1	script	Antonio junior#rg	88,{
 			close2;
 			warp "in_rogue",15,105;
 			set ROGUE_Q,14;
+			changequest 2023,2026;
 			end;
 		}
 		mes "[Antonio Jr.]";

+ 87 - 1
npc/jobs/2-2/sage.txt

@@ -5,7 +5,7 @@
 //= Unknown Translator (1.0)
 //= Darkchild (1.2)
 //===== Current Version: ===================================== 
-//= 2.6a
+//= 2.7
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -25,6 +25,7 @@
 //	-And Small Typo Error
 //= 2.6 Fixed Kayron Grik cutin not being removed as reported by jc1991, bugreport:1825 [Brainstorm]
 //= 2.6a Fixed a Little Bug with Whispers Summoned in the Last Test. (bugreport:2253) [Samuray22]
+//= 2.7 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 yuno_in02,38,61,5	script	Dean of the Academy#sa	743,{
@@ -156,6 +157,7 @@ yuno_in02,38,61,5	script	Dean of the Academy#sa	743,{
 			mes "Although it's roughly written, it's well done for a beginner.";
 			mes "Ah yes...you seem to be proficient in studying.";
 			next;
+			completequest 2052;
 			callfunc "Job_Change",Job_Sage;
 			callfunc "F_ClearJobVar";
 			mes "[Kayron Grik]";
@@ -329,6 +331,7 @@ yuno_in03,154,35,4	script	Staff of the Academy#a	742,{
 					mes "Yes, everything's ready.";
 					mes "Next, you will take an entrance test.";
 					set SAGE_Q,4;
+					setquest 2041;
 					next;
 					mes "[Metheus Sylphe]";
 					mes "Please visit Professor Claytos.";
@@ -346,6 +349,7 @@ yuno_in03,154,35,4	script	Staff of the Academy#a	742,{
 						mes "Thank you, your application has been accepted.";
 						mes "Next, you will take an entrance test.";
 						set SAGE_Q,4;
+						setquest 2041;
 						next;
 						mes "[Metheus Sylphe]";
 						mes "Please visit Professor Claytos.";
@@ -364,6 +368,7 @@ yuno_in03,154,35,4	script	Staff of the Academy#a	742,{
 					mes "Thank you, your application has been accepted.";
 					mes "Next, you will take the entrance test.";
 					set SAGE_Q,4;
+					setquest 2041;
 					next;
 					mes "[Metheus Sylphe]";
 					mes "Please visit Professor Claytos.";
@@ -402,6 +407,7 @@ yuno_in03,154,35,4	script	Staff of the Academy#a	742,{
 					mes "Yes, everything's ready.";
 					mes "Next, you will take the entrance test.";
 					set SAGE_Q,4;
+					setquest 2041;
 					next;
 					mes "[Metheus Sylphe]";
 					mes "Please visit professor Claytos.";
@@ -434,6 +440,7 @@ yuno_in03,154,35,4	script	Staff of the Academy#a	742,{
 						switch(rand(1,3)) {
 						case 1:
 							set SAGE_Q,1;
+							setquest 2043;
 							mes "[Metheus Sylphe]";
 							mes "Please gather the following items.";
 							mes "50 ^3355FFFeather of Birds^000000";
@@ -445,6 +452,7 @@ yuno_in03,154,35,4	script	Staff of the Academy#a	742,{
 							break;
 						case 2:
 							set SAGE_Q,2;
+							setquest 2044;
 							mes "[Metheus Sylphe]";
 							mes "Please gather the following items.";
 							mes "50 ^3355FFClover^000000";
@@ -456,6 +464,7 @@ yuno_in03,154,35,4	script	Staff of the Academy#a	742,{
 							break;
 						case 3:
 							set SAGE_Q,3;
+							setquest 2045;
 							mes "[Metheus Sylphe]";
 							mes "Please gather the following items.";
 							mes "50 ^3355FFFeather of Birds^000000";
@@ -587,6 +596,18 @@ yuno_in03,154,35,4	script	Staff of the Academy#a	742,{
 		mes "Ah yes, everything is in readiness.";
 		mes "Next, you will take an entrance test.";
 		set SAGE_Q,4;
+		if(checkquest(2043) != -1) {
+			changequest 2043,2041;
+		}
+		else if(checkquest(2044) != -1) {
+			changequest 2044,2041;
+		}
+		else if(checkquest(2045) != -1) {
+			changequest 2045,2041;
+		}
+		else {
+			setquest 2041;
+		}
 		next;
 		mes "[Metheus Sylphe]";
 		mes "Please visit Professor Claytos.";
@@ -958,6 +979,7 @@ L_AskQuestions:
 			else
 				mes "Excellent! You must have studed really hard for this test!";
 			set SAGE_Q,6;
+			changequest 2041,2046;
 			next;
 			mes "[Claytos Verdo]";
 			mes "You have passed the written test.";
@@ -965,6 +987,7 @@ L_AskQuestions:
 		}
 		else if (.@sage_t >= 80) {
 			set SAGE_Q,6;
+			changequest 2041,2046;
 			mes "Yeah, not bad. I assume that you will at least understand what you're going to learn in class.";
 			next;
 			mes "[Claytos Verdo]";
@@ -1152,6 +1175,7 @@ yuno_in03,169,180,3	script	Practical Examination P	755,{
 		switch(rand(1,3)) {
 		case 1:
 			set SAGE_Q,9;
+			changequest 2046,2047;
 			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.";
@@ -1165,6 +1189,7 @@ yuno_in03,169,180,3	script	Practical Examination P	755,{
 			close;
 		case 2:
 			set SAGE_Q,11;
+			changequest 2046,2048;
 			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.";
@@ -1178,6 +1203,7 @@ yuno_in03,169,180,3	script	Practical Examination P	755,{
 			close;
 		case 3:
 			set SAGE_Q,13;
+			changequest 2046,2049;
 			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.";
@@ -1322,6 +1348,7 @@ yuno_in03,62,176,2	script	History Professor#sa	109,{
 			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;
+			changequest 2047,2050;
 			mes "[Saphien Layless]";
 			mes "When we have the reserve items, we will start the class.";
 			mes "Please come back.";
@@ -1447,6 +1474,7 @@ yuno_in03,62,176,2	script	History Professor#sa	109,{
 			next;
 			set SAGE_Q2,0;
 			set SAGE_Q,10;
+			changequest 2050,2051;
 			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.";
@@ -1625,6 +1653,7 @@ yuno_in03,62,176,2	script	History Professor#sa	109,{
 			mes ".................................";
 			next;
 			set SAGE_Q,15;
+			changequest 2051,2052;
 			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.";
@@ -1737,6 +1766,7 @@ yuno_in03,32,102,1	script	Biology Professor#sa	755,{
 			next;
 			if (sage_m4 == 1) {
 				set SAGE_Q2,1;
+				changequest 2048,2053;
 				mes "[Lucius Celsus]";
 				mes "Go bring the following items to me.";
 				mes "5 ^3355FFTentacle^000000,";
@@ -1745,6 +1775,7 @@ yuno_in03,32,102,1	script	Biology Professor#sa	755,{
 			}
 			else if (sage_m4 == 2) {
 				set SAGE_Q2,2;
+				changequest 2048,2054;
 				mes "[Lucius Celsus]";
 				mes "Go bring the following items to me.";
 				mes "5 ^3355FFNipper^000000,";
@@ -1753,6 +1784,7 @@ yuno_in03,32,102,1	script	Biology Professor#sa	755,{
 			}
 			else {
 				set SAGE_Q2,3;
+				changequest 2048,2054;
 				mes "[Lucius Celsus]";
 				mes "Go bring following items to me.";
 				mes "5 ^3355FFTendon^000000,";
@@ -1850,24 +1882,60 @@ yuno_in03,32,102,1	script	Biology Professor#sa	755,{
 				switch(rand(1,4)) {
 				case 1:
 					set SAGE_Q2,4;
+					if(checkquest(2053) != -1) {
+						changequest 2053,2056;
+					}
+					else if(checkquest(2054) != -1) {
+						changequest 2054,2056;
+					}
+					else {
+						changequest 2055,2056;
+					}
 					mes "5 ^3355FFCobweb^000000,";
 					mes "5 ^3355FFShell^000000,";
 					mes "5 ^3355FFInsect Feeler^000000.";
 					break;
 				case 2:
 					set SAGE_Q2,5;
+					if(checkquest(2053) != -1) {
+						changequest 2053,2057;
+					}
+					else if(checkquest(2054) != -1) {
+						changequest 2054,2057;
+					}
+					else {
+						changequest 2055,2057;
+					}
 					mes "5 ^3355FFHorn^000000,";
 					mes "5 ^3355FFSnail's Shell^000000,";
 					mes "5 ^3355FFMoth Dust^000000.";
 					break;
 				case 3:
 					set SAGE_Q2,6;
+					if(checkquest(2053) != -1) {
+						changequest 2053,2058;
+					}
+					else if(checkquest(2054) != -1) {
+						changequest 2054,2058;
+					}
+					else {
+						changequest 2055,2058;
+					}
 					mes "5 ^3355FFMantis Scythe^000000,";
 					mes "5 ^3355FFWorm Peeling^000000,";
 					mes "5 ^3355FFRainbow Shell^000000.";
 					break;
 				case 4:
 					set SAGE_Q2,7;
+					if(checkquest(2053) != -1) {
+						changequest 2053,2059;
+					}
+					else if(checkquest(2054) != -1) {
+						changequest 2054,2059;
+					}
+					else {
+						changequest 2055,2059;
+					}
 					mes "5 ^3355FFCobweb^000000,";
 					mes "5 ^3355FFMantis Scythe^000000,";
 					mes "5 ^3355FFSolid Shell^000000.";
@@ -1935,6 +2003,18 @@ yuno_in03,32,102,1	script	Biology Professor#sa	755,{
 				next;
 				set SAGE_Q2,0;
 				set SAGE_Q,12;
+				if(checkquest(2056) != -1) {
+					changequest 2056,2051;
+				}
+				else if(checkquest(2057) != -1) {
+					changequest 2057,2051;
+				}
+				else if(checkquest(2058) != -1) {
+					changequest 2058,2051;
+				}
+				else {
+					changequest 2059,2051;
+				}
 				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?";
@@ -1996,6 +2076,7 @@ yuno_in03,32,102,1	script	Biology Professor#sa	755,{
 			mes ".................................";
 			next;
 			set SAGE_Q,15;
+			changequest 2051,2052;
 			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.";
@@ -2100,6 +2181,7 @@ yuno_in03,244,31,3	script	Physics Professor#sa	120,{
 			mes "It's not so hard, isn't it?";
 			next;
 			set SAGE_Q2,1;
+			changequest 2049,2060;
 			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~";
@@ -2135,6 +2217,7 @@ yuno_in03,244,31,3	script	Physics Professor#sa	120,{
 				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;
+				changequest 2060,2061;
 				next;
 				mes "[Aebecee George]";
 				mes "Please make arrows using these items and bring them to me, pretty please~";
@@ -2193,6 +2276,7 @@ yuno_in03,244,31,3	script	Physics Professor#sa	120,{
 				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;
+				changequest 2061,2062;
 				close;
 			}
 			else {
@@ -2242,6 +2326,7 @@ yuno_in03,244,31,3	script	Physics Professor#sa	120,{
 				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;
+				changequest 2062,2051;
 				next;
 				mes "[Aebecee George]";
 				mes "Okay, please gather these items so you can write the thesis, dear~ Tee hee~";
@@ -2408,6 +2493,7 @@ yuno_in03,244,31,3	script	Physics Professor#sa	120,{
 			mes ".................................";
 			next;
 			set SAGE_Q,15;
+			changequest 2051,2052;
 			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~";

+ 15 - 1
npc/jobs/2-2e/SoulLinker.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Celestria & Samuray22
 //===== Current Version: ===================================== 
-//= 1.4
+//= 1.5
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -19,6 +19,7 @@
 //=	No longer used a global var, uses an NPC var instead.
 //= 1.3a Deleted Empty Color Tag. (bugreport:1572) [Samuray22]
 //= 1.4 Replaced effect numerics with constants. [L0ne_W0lf]
+//= 1.5 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 morocc_in,174,30,6	script	Kid#link1	716,{
@@ -157,6 +158,7 @@ morocc_in,174,30,6	script	Kid#link1	716,{
 					close;
 				}
 				set SOUL_Q,1;
+				setquest 6005;
 				mes "[Kid]";
 				mes "So you want to become";
 				mes "a Soul Linker? Great!";
@@ -197,6 +199,7 @@ morocc_in,174,30,6	script	Kid#link1	716,{
 						delitem 929,1; //Immortal_Heart
 						delitem 748,1; //Witherless_Rose
 						set SOUL_Q,2;
+						changequest 6005,6006;
 						mes "[Kid]";
 						mes "Great, I see that you've";
 						mes "brought everything. But";
@@ -359,6 +362,7 @@ OnTouch:
 			mes "more spirits as a Soul Linker.";
 			next;
 			set SOUL_Q,3;
+			changequest 6006,6007;
 			mes "[Maia]";
 			mes "We can only remain in";
 			mes "your mind for 3 minutes.";
@@ -428,6 +432,7 @@ OnTouch:
 			mes "powers as a Soul Linker";
 			mes "wisely and for just purposes.";
 			next;
+			completequest 6008;
 			callfunc "Job_Change",Job_Soul_Linker;
 			callfunc "F_ClearJobVar";		// clears all job variables for the current player
 			set SOUL_Q,0;
@@ -509,6 +514,9 @@ job_soul,30,35,6	script	Monk Spirit#link4	827,{
 		mes "possibly have to do this.";
 		next;
 		set SOUL_Q,4;
+		if(checkquest(6008) == -1) {
+			changequest 6007,6008;
+		}
 		mes "[Monk Spirit]";
 		mes "I beg of you...";
 		mes "I need you to help";
@@ -555,6 +563,9 @@ job_soul,30,25,7	script	Sage Spirit#link5	754,{
 		mes "require your help. I beg you,";
 		mes "let me become your spirit ally.";
 		set SOUL_Q,4;
+		if(checkquest(6008) == -1) {
+			changequest 6007,6008;
+		}
 		next;
 		mes "[Sage Spirit]";
 		mes "I believe that you";
@@ -596,6 +607,9 @@ job_soul,25,30,5	script	Alchemist Spirit#link7	744,{
 		mes "on to the next world until I've";
 		mes "passed on my techniques...";
 		set SOUL_Q,4;
+		if(checkquest(6008) == -1) {
+			changequest 6007,6008;
+		}
 		next;
 		mes "[Alchemist Spirit]";
 		mes "I'm powerless as a spirit,";

+ 4 - 1
npc/jobs/novice/supernovice.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Darkchild
 //===== Current Version: ===================================== 
-//= 2.1
+//= 2.2
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -15,6 +15,7 @@
 //= 1.9 Rescripted to the Aegis 10.3 Standars. [Samuray22]
 //= 2.0 Rescripted again, this time using an iRO base. [L0ne_W0lf]
 //= 2.1 Swapped use of baseclass for basejob. [L0ne_W0lf]
+//= 2.2 Added Quest Log commands. [Kisuka]
 //============================================================ 
 
 aldeba_in,223,167,3	script	Tzerero#sn	709,{
@@ -53,6 +54,7 @@ aldeba_in,223,167,3	script	Tzerero#sn	709,{
 		mes "There's nothing's there.";
 		mes "Something fishy is going on here!^000000";
 		next;
+		completequest 6010;
 		callfunc "F_ClearJobVar";
 		getitem 2339,1; //G_Strings
 		if (Upper==0) jobchange Job_SuperNovice;
@@ -208,6 +210,7 @@ aldeba_in,223,167,3	script	Tzerero#sn	709,{
 			mes "Hahahahaha~";
 			next;
 			set SUPNOV_Q,1;
+			setquest 6010;
 			mes "[Tzerero]";
 			mes "Good luck, my friend.";
 			close;

+ 3 - 1
npc/jobs/valkyrie.txt

@@ -232,7 +232,6 @@ yuno_in02,88,164,5	script	Metheus Sylphe#Library	742,{
 				if (Zeny >= 1285000) {
 					set zeny,zeny-1285000;
 					set valkyrie_Q,1;
-					setquest 1000;
 					mes "[Metheus Sylphe]";
 					mes "Thank you, your donation will be used for a good cause. You may";
 					mes "now go in and read the book.";
@@ -325,6 +324,9 @@ yuno_in02,93,207,1	script	Book of Ymir	111,{
 			mes "can confirm that Valkyrie and Valhalla actually exist...";
 			next;
 			set valkyrie_Q,2;
+			if(checkquest(1000) == -1) {
+				setquest 1000;
+			}
 			mes "[The Book of Ymir]";
 			mes "Let the heroes live new lives";
 			mes "so they can protect the world";