Bläddra i källkod

Updated the Soul Linker job quest.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11814 54d463be-8e91-2dee-dedb-b68131a5f0ec
L0ne_W0lf 17 år sedan
förälder
incheckning
5660527f12
3 ändrade filer med 312 tillägg och 294 borttagningar
  1. 1 0
      npc/Changelog.txt
  2. 3 1
      npc/jobs/2-1e/StarGladiator.txt
  3. 308 293
      npc/jobs/2-2e/SoulLinker.txt

+ 1 - 0
npc/Changelog.txt

@@ -1,6 +1,7 @@
 Date		Added
 ======
 2007/11/26
+	* Rev. 11814 Updated the Soul Linker job quest. [L0ne_W0lf]
 	* Rev. 11813 Updated the Taekwon Master quest. [L0ne_W0lf]
 	* Rev. 11811 Fixed some minor guild script related bugs. [L0ne_W0lf]
 	- And no, this does NOT fix the Emperium spawning issue.

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

@@ -1628,7 +1628,9 @@ job_star,161,33,0	script	Cheehee#job_star	77,{
 	close;
 }
 
-//===== Old Changelog: ================================= 
+//============================================================ 
+// Old changelog
+//============================================================ 
 //= A temp Star Gladiator Job Changer based on the kRO quest.
 //= Quest info from RagnaInfo.
 //= Sprites from kRO screenshots, bar two which I just had to guess at.

+ 308 - 293
npc/jobs/2-2e/SoulLinker.txt

@@ -3,23 +3,24 @@
 //===== By: ================================================== 
 //= Celestria & Samuray22
 //===== Current Version: ===================================== 
-//= 1.2
+//= 1.3
 //===== Compatible With: ===================================== 
-//= eAthena 1.0 +
+//= eAthena SVN
 //===== Description: ========================================= 
 //= [Aegis Conversion]
 //= Job quest for Soul Linker class.
 //= [Vars Used]
 //= SOUL_Q = Job Change Phase. (Max 4)
-//= $@SOUL_Q = Used when somebody is doing the test. (Max 1)
-//= [Reset Global Vars]
-//= The Password to reset the Global Var is 1854
 //===== Additional Comments: ================================= 
-//= 1.2 Rescripted to Aegis 10.3 stadards. [Samuray22]
+//= 1.2 Rescripted to Aegis 10.3 standards. [Samuray22]
+//= 1.3 Slight updates and fixes to the script. [L0ne_W0lf]
+//=	Removes the use of labels, and corrects other errors.
+//=	Removed the GM-use only NPC from the sec_in map. 
+//=	No longer used a clobal var, uses an NPC var isntead.
 //============================================================ 
 
-morocc_in,174,30,2	script	Kid#link1	716,{
-	if(BaseJob == Job_Soul_Linker) {
+morocc_in,174,30,6	script	Kid#link1	716,{
+	if (Class == Job_Soul_Linker) {
 		mes "[Maia]";
 		mes "Best of luck in your";
 		mes "journeys. As you master";
@@ -28,12 +29,15 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 		mes "more of the spirits' power";
 		mes "to endow upon your allies...";
 		close;
-	} else if(BaseJob == Job_Star_Gladiator || BaseJob == Job_Star_Gladiator2) {
+	}
+	if (Class == Job_Star_Gladiator) {
 		mes "[Kid]";
-		mes "Aren't you a warrior";
-		if(Sex == 1) {
+		if (Sex == 1) {
+			mes "Aren't you a warrior";
 			mes "of the sun? I'm familiar";
-		} else {
+		}
+		else {
+			mes "Aren't you a warrior of";
 			mes "the moon? I'm familiar";
 		}
 		mes "with your ways. After all,";
@@ -41,7 +45,8 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 		mes "skills is grounded in the";
 		mes "Taekwon Do job, right?";
 		close;
-	} else if (BaseJob != Job_Taekwon) {
+	}
+	if (Class != Job_Taekwon) {
 		mes "[Kid]";
 		mes "Mm? I've got nothing to";
 		mes "offer you. But if you know";
@@ -50,7 +55,8 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 		mes "Do, they might benefit";
 		mes "from what I know.";
 		close;
-	} else if(JobLevel < 40) {
+	}
+	if (JobLevel < 40) {
 		mes "[Kid]";
 		mes "So you're studying";
 		mes "Taekwon Do. That's good,";
@@ -59,12 +65,13 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 		mes "stick to your training.";
 		close;
 	}
-		if(SOUL_Q == 0) {
+	else if (JobLevel > 39) {
+		if (SOUL_Q == 0) {
 			mes "[Kid]";
 			mes "...";
 			mes "Hey you.";
 			next;
-			mes "["+strcharinfo(0)+"]";
+			mes "["+ strcharinfo(0) +"]";
 			mes "Did you call me?";
 			next;
 			mes "[Kid]";
@@ -73,13 +80,14 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 			mes "raise my voice, and";
 			mes "just get over here.";
 			next;
-			if(select("You're awfully rude for a kid!","Ignore him.") == 1) {
+			if (select("You're awfully rude for a kid!:Ignore him.") == 1) {
 				mes "[Kid]";
 				mes "You're lucky I'm";
 				mes "taking an interest";
 				mes "in you! I might look";
 				mes "like a kid, but I'm over";
 				mes "three hundred years old!";
+				emotion e_pif;
 				next;
 				mes "[Kid]";
 				mes "Now listen...";
@@ -88,6 +96,7 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 				mes "It's a respectable art, but";
 				mes "I've got a proposition for";
 				mes "you if you want to hear it.";
+				emotion e_heh;
 				next;
 				mes "[Kid]";
 				mes "I'm looking at you, and I can";
@@ -97,7 +106,7 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 				mes "wanna see wasted. Why don't";
 				mes "you become a ''Soul-Linker?''";
 				next;
-				if(select("Ha! Silly little boy~","Soul Linker?") == 1) {
+				if (select("Ha! Silly little boy~:Soul Linker?") == 1) {
 					mes "[Kid]";
 					mes "You... You d-don't";
 					mes "believe me? I'm being";
@@ -107,70 +116,71 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 					mes "minute? *Psh* ...Youngsters.";
 					close;
 				}
+				mes "[Kid]";
+				mes "Soul Linkers communicate";
+				mes "with spirits of fallen warriors";
+				mes "that still wish to fight in the";
+				mes "world of the living. Now, these";
+				mes "warrior spirits can't fight as";
+				mes "themselves in our world.";
+				next;
+				mes "[Kid]";
+				mes "However, since you're";
+				mes "spiritually inclined, these";
+				mes "spirits are attracted to you.";
+				mes "With enough training, you can";
+				mes "temporarily imbue the power^FFFFFF ^000000 of these spirits to your allies.";
+				next;
+				mes "[Kid]";
+				mes "Now, you can't imbue yourself";
+				mes "with the spirits' power. Also,";
+				mes "depending on your skills as";
+				mes "a Soul Linker, you can only";
+				mes "endow other characters of certain job classes with enchanced power.";
+				next;
+				mes "[Kid]";
+				mes "You'll have to enter";
+				mes "a wholly different world";
+				mes "to become a Soul Linker,";
+				mes "but I know it'll be possible";
+				mes "for you. So what do you say?";
+				next;
+				if (select("No. At least, not now...:Alright. What do I have to do?") == 1) {
 					mes "[Kid]";
-					mes "Soul Linkers communicate";
-					mes "with spirits of fallen warriors";
-					mes "that still wish to fight in the";
-					mes "world of the living. Now, these";
-					mes "warrior spirits can't fight as";
-					mes "themselves in our world.";
-					next;
-					mes "[Kid]";
-					mes "However, since you're";
-					mes "spiritually inclined, these";
-					mes "spirits are attracted to you.";
-					mes "With enough training, you can";
-					mes "temporarily imbue the power^FFFFFF ^000000 of these spirits to your allies.";
-					next;
-					mes "[Kid]";
-					mes "Now, you can't imbue yourself";
-					mes "with the spirits' power. Also,";
-					mes "depending on your skills as";
-					mes "a Soul Linker, you can only";
-					mes "endow other characters of certain job classes with enchanced power.";
-					next;
-					mes "[Kid]";
-					mes "You'll have to enter";
-					mes "a wholly different world";
-					mes "to become a Soul Linker,";
-					mes "but I know it'll be possible";
-					mes "for you. So what do you say?";
-					next;
-					if(select("No. At least, not now...","Alright. What do I have to do?") == 1) {
-						mes "[Kid]";
-						mes "Ah, alright. Well,";
-						mes "if you ever decide to";
-						mes "become a Soul Linker,";
-						mes "then please come back";
-						mes "and talk to me at any time.";
-						close;
-					}
-						set SOUL_Q,1;
-						mes "[Kid]";
-						mes "So you want to become";
-						mes "a Soul Linker? Great!";
-						mes "Alright, first I need you";
-						mes "to bring back a few items.";
-						mes "Don't worry, I'll explain";
-						mes "why you need them later.";
-						next;
-						mes "[Kid]";
-						mes "Now bring me";
-						mes "^0000FF1 3 Carat Diamond^000000,";
-						mes "^0000FF1 Immortal Heart^000000 and";
-						mes "^0000FF1 Witherless Rose^000000.";
-						mes "And try not to make me";
-						mes "wait too long, alright?";
-						close;
-			}
+					mes "Ah, alright. Well,";
+					mes "if you ever decide to";
+					mes "become a Soul Linker,";
+					mes "then please come back";
+					mes "and talk to me at any time.";
+					close;
+				}
+				set SOUL_Q,1;
 				mes "[Kid]";
-				mes "Huh...?";
-				mes "Wait, where are";
-				mes "you going? I'm...";
-				mes "I'm talking to you!";
+				mes "So you want to become";
+				mes "a Soul Linker? Great!";
+				mes "Alright, first I need you";
+				mes "to bring back a few items.";
+				mes "Don't worry, I'll explain";
+				mes "why you need them later.";
+				next;
+				mes "[Kid]";
+				mes "Now bring me";
+				mes "^0000FF1 3 Carat Diamond^000000,";
+				mes "^0000FF1 Immortal Heart^000000 and";
+				mes "^0000FF1 Witherless Rose^000000.";
+				mes "And try not to make me";
+				mes "wait too long, alright?";
 				close;
-		} else if(SOUL_Q == 1) {
-			if(BaseJob == Job_Taekwon) {
+			}
+			mes "[Kid]";
+			mes "Huh...?";
+			mes "Wait, where are";
+			mes "you going? I'm...";
+			mes "I'm talking to you!";
+			close;
+		}
+		else if (SOUL_Q == 1) {
+			if (Class == Job_Taekwon) {
 				mes "[Kid]";
 				mes "You're back, eh?";
 				mes "So did you bring";
@@ -179,17 +189,17 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 				mes "^0000FF1 Witherless Rose^000000.";
 				mes "like I asked you to?";
 				next;
-				if(select("There you are.","No, not yet...") == 1) {
-					if(countitem(732) > 0 && countitem(929) > 0 && countitem(748) > 0) {
-						delitem 732,1; //3 carat Diamond
-						delitem 929,1; //Immortal Heart
-						delitem 748,1; //Witherless Rose
+				if (select("There you are.:No, not yet...") == 1) {
+					if (countitem(732) > 0 && countitem(929) > 0 && countitem(748) > 0) {
+						delitem 732,1; //Crystal_Jewel__
+						delitem 929,1; //Immortal_Heart
+						delitem 748,1; //Witherless_Rose
 						set SOUL_Q,2;
 						mes "[Kid]";
 						mes "Great, I see that you've";
 						mes "brought everything. But";
 						mes "before we begin, let me";
-						mes "introduce myself. My "+strcharinfo(0)+"";
+						mes "introduce myself. My name";
 						mes "is Maia, and I've been alive for more than three hundred years.";
 						next;
 						mes "[Maia]";
@@ -206,41 +216,43 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 						mes "Then, we'll talk once again.";
 						close;
 					}
-						mes "[Kid]";
-						mes "Mm...?";
-						mes "Hey. You forgot";
-						mes "a few things. Now";
-						mes "go back and bring";
-						mes "everything that I ask";
-						mes "for this time, okay?";
-						next;
-						mes "[Kid]";
-						mes "I know I just told you";
-						mes "what we need, but I'm";
-						mes "going to remind you again:";
-						mes "^0000FF1 3 Carat Diamond^000000,";
-						mes "^0000FF1 Immortal Heart^000000 and";
-						mes "^0000FF1 Witherless Rose^000000.";
-						close;
-				}
 					mes "[Kid]";
-					mes "Mm. That's fine.";
-					mes "Although I have all";
-					mes "the time to spare in";
-					mes "the world, I don't like";
-					mes "to wait for very long.";
+					mes "Mm...?";
+					mes "Hey. You forgot";
+					mes "a few things. Now";
+					mes "go back and bring";
+					mes "everything that I ask";
+					mes "for this time, okay?";
+					emotion e_pif;
+					next;
+					mes "[Kid]";
+					mes "I know I just told you";
+					mes "what we need, but I'm";
+					mes "going to remind you again:";
+					mes "^0000FF1 3 Carat Diamond^000000,";
+					mes "^0000FF1 Immortal Heart^000000 and";
+					mes "^0000FF1 Witherless Rose^000000.";
 					close;
-			}
-				set SOUL_Q,0;
+				}
 				mes "[Kid]";
-				mes "You've become a warrior";
-				mes "of the Sun, the Moon and";
-				mes "the Stars instead? I had no";
-				mes "idea you had that potential.";
-				mes "I suppose I can't blame you...";
+				mes "Mm. That's fine.";
+				mes "Although I have all";
+				mes "the time to spare in";
+				mes "the world, I don't like";
+				mes "to wait for very long.";
 				close;
-		} else if(SOUL_Q == 2) {
-			if (SkillPoint != 0) {
+			}
+			set SOUL_Q,0;
+			mes "[Kid]";
+			mes "You've become a warrior";
+			mes "of the Sun, the Moon and";
+			mes "the Stars instead? I had no";
+			mes "idea you had that potential.";
+			mes "I suppose I can't blame you...";
+			close;
+		}
+		else if (SOUL_Q == 2) {
+			if (SkillPoint) {
 				mes "[Maia]";
 				mes "You still have some";
 				mes "unallocated Skill Points.";
@@ -248,17 +260,37 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 				mes "Taekwon Do skills, and then";
 				mes "return when you're ready.";
 				close;
-			} else if($@SOUL_Q2 == 1) {
-				goto L_occupied;
 			}
-				goto L_free;
+			if (.SoulLinkerTest == 1) {
+				mes "[Maia]";
+				mes "Right now, someone else";
+				mes "is completing the ceremony";
+				mes "to become a Soul Linker.";
+				mes "Would you please wait until";
+				mes "it's finished? Then, when I'm";
+				mes "available, I'll attend to you.";
+				close;
+			}
+			donpcevent "Timer#link3::OnEnable";
+			set .SoulLinkerTest,1;
+			mes "[Maia]";
+			mes "Great, I've finished";
+			mes "the preparations. Now";
+			mes "we'll proceed with the";
+			mes "ceremony to change";
+			mes "you into a Soul Linker.";
+			mes "Now close your eyes...";
+			close2;
+			warp "job_soul",30,30;
+			end;
 		}
+		else if (SOUL_Q > 2) {
 			mes "[Maia]";
 			mes "Are you ready to";
 			mes "enter the depths";
 			mes "of your mind again?";
 			next;
-			if(select("No","Yes") == 1) {
+			if (select("No:Yes") == 1) {
 				mes "[Maia]";
 				mes "Well then, come";
 				mes "back to me when you";
@@ -267,40 +299,39 @@ morocc_in,174,30,2	script	Kid#link1	716,{
 				mes "waiting right here.";
 				close;
 			}
-				if($@SOUL_Q2 == 1) {
-					goto L_occupied;
-				}
-					goto L_free;
+			if (.SoulLinkerTest == 1) {
+				mes "[Maia]";
+				mes "Right now, someone else";
+				mes "is completing the ceremony";
+				mes "to become a Soul Linker.";
+				mes "Would you please wait until";
+				mes "it's finished? Then, when I'm";
+				mes "available, I'll attend to you.";
+				close;
+			}
+			donpcevent "Timer#link3::OnEnable";
+			set .SoulLinkerTest,1;
+			mes "[Maia]";
+			mes "Alright then, close";
+			mes "your eyes and relax.";
+			mes "We'll go back into the";
+			mes "depths of your mind.";
+			close;
+			warp "job_soul",30,30;
+			end;
+		}
+	}
 
-L_occupied:
-	mes "[Maia]";
-	mes "Right now, someone else";
-	mes "is completing the ceremony";
-	mes "to become a Soul Linker.";
-	mes "Would you please wait until";
-	mes "it's finished? Then, when I'm";
-	mes "available, I'll attend to you.";
-	close;
-L_free:
-	set $@SOUL_Q,1;
-	donpcevent "Timer#link3::OnStart";
-	mes "[Maia]";
-	mes "Great, I've finished";
-	mes "the preparations. Now";
-	mes "we'll proceed with the";
-	mes "ceremony to change";
-	mes "you into a Soul Linker.";
-	mes "Now close your eyes...";
-	close2;
-	warp "job_soul",30,30;
+OnInit:
+	set .SoulLinkerTest,0;
 	end;
 }
 
-job_soul,30,31,1	script	Maia#link-1::Maia	139,3,3,{
+job_soul,30,31,0	script	Maia#link2::SLTester	-1,3,3,{
 OnTouch:
-	if(BaseJob == Job_Taekwon) {
-		if(BaseLevel < 40) {
-			set $@SOUL_Q,0;
+	if (Class == Job_Taekwon) {
+		if (JobLevel < 40) {
+			set getvariableofnpc(.SoulLinkerTest,"Kid#link1"),0;
 			mes "[Maia]";
 			mes "Hm? How did you come";
 			mes "here? You're not qualified";
@@ -308,7 +339,8 @@ OnTouch:
 			close2;
 			warp "morocc",157,47;
 			end;
-		} else if(SOUL_Q == 2) {
+		}
+		if (SOUL_Q == 2) {
 			mes "[Maia]";
 			mes "Do you recognize this";
 			mes "place? Right now, we're";
@@ -332,7 +364,8 @@ OnTouch:
 			mes "to the spirits while you";
 			mes "have the opportunity.";
 			close;
-		} else if(SOUL_Q == 3) {
+		}
+		else if (SOUL_Q == 3) {
 			mes "[Maia]";
 			mes "Listen to what";
 			mes "spirits are tending to say.";
@@ -340,7 +373,8 @@ OnTouch:
 			mes "they cannot move on";
 			mes "to the next world.";
 			close;
-		} else if(SOUL_Q == 4) {
+		}
+		else if (SOUL_Q == 4) {
 			mes "[Maia]";
 			mes "I believe that you are";
 			mes "now ready to become";
@@ -349,7 +383,7 @@ OnTouch:
 			mes "speak with the spirits";
 			mes "if that is what you wish.";
 			next;
-			if(select("Converse more with the spirits","Become a Soul Linker") == 1) {
+			if (select("Converse more with the spirits:Become a Soul Linker") == 1) {
 				mes "[Maia]";
 				mes "Alright. Try to hurry";
 				mes "since we can remain in";
@@ -359,85 +393,93 @@ OnTouch:
 				mes "if you talk to me later...";
 				close;
 			}
-				mes "[Maia]";
-				mes "Then let us begin the";
-				mes "ceremony. These items will";
-				mes "be used to endow you with";
-				mes "the ability to borrow the power";
-				mes "of the fallen warriors and lend";
-				mes "it to your friends in battle.";
-				next;
-				mes "[Maia]";
-				mes "This Witherless Rose will";
-				mes "wither away instead of you...";
-				misceffect 247; //Yuno Large Effect
-				next;
-				mes "[Maia]";
-				mes "This Witherless Rose will";
-				mes "wither away instead of you...";
-				mes "This Immortal Heart will cease";
-				mes "to pump blood, instead of yours. ";
-				next;
-				mes "[Maia]";
-				mes "This Witherless Rose will";
-				mes "wither away instead of you...";
-				mes "This Immortal Heart will cease";
-				mes "to pump blood, instead of yours. This Diamond will turn to dust,";
-				mes "in place of your mortal body.";
-				next;
-				mes "[Maia]";
-				mes "The dead who wish";
-				mes "to continue fighting...";
-				mes "Will fight for you! Use your";
-				mes "powers as a Soul Linker";
-				mes "wisely and for just purposes.";
-				next;
-				callfunc "Job_Change",Job_Soul_Linker;
-				callfunc "F_ClearJobVar";		// clears all job variables for the current player
-				mes "[Maia]";
-				mes "I wish the best of luck";
-				mes "in your new life. Surround";
-				mes "yourself with allies, and the";
-				mes "spirits will be able to protect";
-				mes "you and help you fight in your battles. Farewell for now, friend.";
-				close2;
-				set $@SOUL_Q,0;
-				donpcevent "Timer#link3::OnStop";
-				warp "morocc",157,47;
-				end;
-		}
-			set $@SOUL_Q,0;
 			mes "[Maia]";
-			mes "Hmm...?";
-			mes "The time for you";
-			mes "to be here has not";
-			mes "arrived. Let's go";
-			mes "back to Morroc...";
+			mes "Then let us begin the";
+			mes "ceremony. These items will";
+			mes "be used to endow you with";
+			mes "the ability to borrow the power";
+			mes "of the fallen warriors and lend";
+			mes "it to your friends in battle.";
+			next;
+			mes "[Maia]";
+			mes "This Witherless Rose will";
+			mes "wither away instead of you...";
+			donpcevent "Maia#link2::Oneff";
+			next;
+			mes "[Maia]";
+			mes "This Witherless Rose will";
+			mes "wither away instead of you...";
+			mes "This Immortal Heart will cease";
+			mes "to pump blood, instead of yours. ";
+			next;
+			mes "[Maia]";
+			mes "This Witherless Rose will";
+			mes "wither away instead of you...";
+			mes "This Immortal Heart will cease";
+			mes "to pump blood, instead of yours. This Diamond will turn to dust,";
+			mes "in place of your mortal body.";
+			next;
+			mes "[Maia]";
+			mes "The dead who wish";
+			mes "to continue fighting...";
+			mes "Will fight for you! Use your";
+			mes "powers as a Soul Linker";
+			mes "wisely and for just purposes.";
+			next;
+			callfunc "Job_Change",Job_Soul_Linker;
+			callfunc "F_ClearJobVar";		// clears all job variables for the current player
+			set SOUL_Q,0;
+			mes "[Maia]";
+			mes "I wish the best of luck";
+			mes "in your new life. Surround";
+			mes "yourself with allies, and the";
+			mes "spirits will be able to protect";
+			mes "you and help you fight in your battles. Farewell for now, friend.";
 			close2;
+			set getvariableofnpc(.SoulLinkerTest,"Kid#link1"),0;
+			donpcevent "Timer#link3::OnDisable";
 			warp "morocc",157,47;
 			end;
-	}
-		set $@SOUL_Q,0;
-		if(BaseJob == Job_Soul_Linker) {
-			mes "[Maia]";
-			mes "The time has come for";
-			mes "you to venture out into the";
-			mes "wide world! More Soul Linkers";
-			mes "will definitely be needed in the ongoing battle against evil...";
-		} else {
-			mes "[Maia]";
-			mes "That's strange...";
-			mes "You're not supposed to";
-			mes "be here. Let me guide";
-			mes "you back to Morroc...";
 		}
+		set getvariableofnpc(.SoulLinkerTest,"Kid#link1"),0;
+		mes "[Maia]";
+		mes "Hmm...?";
+		mes "The time for you";
+		mes "to be here has not";
+		mes "arrived. Let's go";
+		mes "back to Morroc...";
 		close2;
 		warp "morocc",157,47;
 		end;
+	}
+	set getvariableofnpc(.SoulLinkerTest,"Kid#link1"),0;
+	if (Class == Job_Soul_Linker) {
+		mes "[Maia]";
+		mes "The time has come for";
+		mes "you to venture out into the";
+		mes "wide world! More Soul Linkers";
+		mes "will definitely be needed in the ongoing battle against evil...";
+	}
+	else {
+		mes "[Maia]";
+		mes "That's strange...";
+		mes "You're not supposed to";
+		mes "be here. Let me guide";
+		mes "you back to Morroc...";
+	}
+	close2;
+	warp "morocc",157,47;
+	end;
+
+Oneff:
+	specialeffect 247; //"Maia#link2" EF_MAPPILLAR2
+	end;
 }
 
-job_soul,30,35,2	script	Monk Spirit#link4	827,{
-	if(SOUL_Q == 2) {
+job_soul,35,30,6	duplicate(SLTester)	Maia#link6	716
+
+job_soul,30,35,6	script	Monk Spirit#link4	827,{
+	if (SOUL_Q == 2) {
 		mes "[Monk Spirit]";
 		mes "Who am I...?";
 		mes "I think... I think";
@@ -446,7 +488,8 @@ job_soul,30,35,2	script	Monk Spirit#link4	827,{
 		mes "Who and what I am requires";
 		mes "a complicated explanation...";
 		close;
-	} else if(SOUL_Q > 2) {
+	}
+	else if (SOUL_Q > 2) {
 		mes "[Monk Spirit]";
 		mes "In life, my peers did";
 		mes "their best to assure me";
@@ -472,13 +515,13 @@ job_soul,30,35,2	script	Monk Spirit#link4	827,{
 		mes "Monks of today.";
 		close;
 	}
-		mes "[Monk Spirit]";
-		mes "...";
-		close;
+	mes "[Monk Spirit]";
+	mes "...";
+	close;
 }
 
-job_soul,30,35,1	script	Sage Spirit#link5	754,{
-	if(SOUL_Q == 2) {
+job_soul,30,25,7	script	Sage Spirit#link5	754,{
+	if (SOUL_Q == 2) {
 		mes "[Sage Spirit]";
 		mes "Speak to Maia.";
 		mes "I'm afraid I may";
@@ -486,7 +529,8 @@ job_soul,30,35,1	script	Sage Spirit#link5	754,{
 		mes "doesn't first explain";
 		mes "your present situation...";
 		close;
-	} else if(SOUL_Q > 2) {
+	}
+	else if (SOUL_Q > 2) {
 		mes "[Sage Spirit]";
 		mes "My pursuit of knowledge";
 		mes "granted me incredible power:";
@@ -517,13 +561,13 @@ job_soul,30,35,1	script	Sage Spirit#link5	754,{
 		mes "rest to my troubled soul...";
 		close;
 	}
-		mes "[Sage Spirit]";
-		mes "...";
-		close;
+	mes "[Sage Spirit]";
+	mes "...";
+	close;
 }
 
-job_soul,25,30,3	script	Alchemist Spirit#link7	744,{
-	if(SOUL_Q == 2) {
+job_soul,25,30,5	script	Alchemist Spirit#link7	744,{
+	if (SOUL_Q == 2) {
 		mes "[Alchemist Spirit]";
 		mes "Oh! I really want to";
 		mes "speak to you, but what";
@@ -532,7 +576,8 @@ job_soul,25,30,3	script	Alchemist Spirit#link7	744,{
 		mes "talk to Maia first. But yes,";
 		mes "I really need your help.";
 		close;
-	} else if(SOUL_Q > 2) {
+	}
+	else if (SOUL_Q > 2) {
 		mes "[Alchemist Spirit]";
 		mes "Without exagerrating, I was";
 		mes "the fastest Alchemist in my";
@@ -548,7 +593,7 @@ job_soul,25,30,3	script	Alchemist Spirit#link7	744,{
 		mes "passed away. I cannot go";
 		mes "on to the next world until I've";
 		mes "passed on my techniques...";
-		set SOUL_Q, 4;
+		set SOUL_Q,4;
 		next;
 		mes "[Alchemist Spirit]";
 		mes "I'm powerless as a spirit,";
@@ -559,78 +604,48 @@ job_soul,25,30,3	script	Alchemist Spirit#link7	744,{
 		mes "please give me this chance...";
 		close;
 	}
-		mes "[Alchemist Spirit]";
-		mes "...";
-		close;
+	mes "[Alchemist Spirit]";
+	mes "...";
+	close;
 }
 
-job_soul,1,5,1	script	Timer#link3	139,{
-OnStart:
-	InitNpcTimer;
+job_soul,1,5,0	script	Timer#link3	111,{
+	end;
+
+OnEnable:
+	initnpctimer;
 	end;
-OnStop:
+
+OnDisable:
 	stopnpctimer;
-	set $@SOUL_Q, 0;
+	set getvariableofnpc(.SoulLinkerTest,"Kid#link1"),0;
 	end;
+
 OnTimer60000:
-	if(getmapusers("job_soul") < 1) {
-		stopnpctimer;
-		set $@SOUL_Q, 0;
-	}
-	end;
 OnTimer120000:
-	if(getmapusers("job_soul") < 1) {
+	if (getmapusers("job_soul") == 0) {
 		stopnpctimer;
-		set $@SOUL_Q, 0;
+		set getvariableofnpc(.SoulLinkerTest,"Kid#link1"),0;
 	}
 	end;
-OnTimer183000:
-	areawarp "job_soul",10,10,120,120,"morocc",157,47;
-	set $@SOUL_Q, 0;
-	stopnpctimer;
+
+OnTimer180000:
+OnTimer181000:
+OnTimer182000:
+	mapwarp "job_soul","morocc",157,47;
 	end;
-}
 
-sec_in02,35,153,8	script	Soul Linker Var	871,{
-	mes "[Soul Linker Var]";
-	mes "I can reset the Soul Linker";
-	mes "NPCs if a Soul Linker candidate";
-	mes "encounters a problem during the";
-	mes "end of the job quest. Please do";
-	mes "not use this function if players are still in the Quest Map.";
-	next;
-	input .@input;
-	if(.@input == 1854) {
-		mes "[Soul Linker Var]";
-		mes "Would you like to";
-		mes "reset the Soul Linker";
-		mes "Global Variable?";
-		next;
-		if(select("Reset","Cancel") == 1) {
-			mes "[Soul Linker Var]";
-			mes "The Soul Linker";
-			mes "Job Quest NPCs";
-			mes "have been reset.";
-			set $@SOUL_Q, 0;
-			close;
-		}
-			mes "[Soul Linker Var]";
-			mes "You have canceled";
-			mes "this command.";
-			close;
-	}
-		mes "[Soul Linker Var]";
-		mes "Password";
-		mes "is incorrect.";
-		close;
+OnTimer183000:
+	mapwarp "job_soul","morocc",157,47;
+	set getvariableofnpc(.SoulLinkerTest,"Kid#link1"),0;
+	stopnpctimer;
 }
 
-//Duplicates
-job_soul,35,30,8	duplicate(Maia)	Maia#link-2	716
-
-//===== Old Changelog: ================================= 
+//============================================================ 
+// Old changelog
+//============================================================ 
 //= A temp Soul Linker Job Changer based on the kRO quest.
 //= Quest info from RagnaInfo. Sprites from kRO screenshots
 //= 1.0	Optimized and updated [Lupus]
 //= 1.1 Fixed NPC names according to iRO [Lupus]
-//============================================================ 
+//============================================================