Browse Source

Applied security patches. PLEASE CHECK THEM ALL.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9260 54d463be-8e91-2dee-dedb-b68131a5f0ec
Lance 18 years ago
parent
commit
e291dd077e

+ 3 - 0
npc/custom/eAAC_Scripts/disguiser.txt

@@ -164,6 +164,9 @@ function	script	PXC_DoMenu	{
 	//Fire our menu
 	//Fire our menu
 	set @menu, select($@menu$);
 	set @menu, select($@menu$);
 
 
+	if(@menu > getarg(1) || @menu < 1)
+		end;
+
 	//Zero deliminated (off-by-one errors sux0r!!!)
 	//Zero deliminated (off-by-one errors sux0r!!!)
 	set @menu, @menu-1;
 	set @menu, @menu-1;
 
 

+ 10 - 4
npc/custom/eAAC_Scripts/quest_warper.txt

@@ -449,6 +449,8 @@ L_town:
 
 
 	set @TWMenu,select(@Tmenulist$[0],@Tmenulist$[1],@Tmenulist$[2],@Tmenulist$[3],@Tmenulist$[4],@Tmenulist$[5],@Tmenulist$[6],@Tmenulist$[7],@Tmenulist$[8],@Tmenulist$[9],@Tmenulist$[10],@Tmenulist$[11],@Tmenulist$[12],@Tmenulist$[13],@Tmenulist$[14],@Tmenulist$[15],@Tmenulist$[16],@Tmenulist$[17],@Tmenulist$[18],@Tmenulist$[19],@Tmenulist$[20],@Tmenulist$[21],@Tmenulist$[22],@Tmenulist$[23],@Tmenulist$[24]);
 	set @TWMenu,select(@Tmenulist$[0],@Tmenulist$[1],@Tmenulist$[2],@Tmenulist$[3],@Tmenulist$[4],@Tmenulist$[5],@Tmenulist$[6],@Tmenulist$[7],@Tmenulist$[8],@Tmenulist$[9],@Tmenulist$[10],@Tmenulist$[11],@Tmenulist$[12],@Tmenulist$[13],@Tmenulist$[14],@Tmenulist$[15],@Tmenulist$[16],@Tmenulist$[17],@Tmenulist$[18],@Tmenulist$[19],@Tmenulist$[20],@Tmenulist$[21],@Tmenulist$[22],@Tmenulist$[23],@Tmenulist$[24]);
 
 
+	if(@TWMenu > 25 || @TWMenu < 1) end;
+
 	if (@Tmenuref[@TWMenu-1] == 57005) goto L_end; // 57005='dead' in hex
 	if (@Tmenuref[@TWMenu-1] == 57005) goto L_end; // 57005='dead' in hex
 
 
 	if(Zeny<@pTprice[@Tmenuref[@TWMenu-1]]) callsub L_Short_on_zeny,0;
 	if(Zeny<@pTprice[@Tmenuref[@TWMenu-1]]) callsub L_Short_on_zeny,0;
@@ -469,6 +471,8 @@ L_dungeon:
 
 
 	set @DWMenu,select(@Dmenulist$[0],@Dmenulist$[1],@Dmenulist$[2],@Dmenulist$[3],@Dmenulist$[4],@Dmenulist$[5],@Dmenulist$[6],@Dmenulist$[7],@Dmenulist$[8],@Dmenulist$[9],@Dmenulist$[10],@Dmenulist$[11],@Dmenulist$[12],@Dmenulist$[13],@Dmenulist$[14],@Dmenulist$[15],@Dmenulist$[16],@Dmenulist$[17],@Dmenulist$[18],@Dmenulist$[19],@Dmenulist$[20],@Dmenulist$[21],@Dmenulist$[22],@Dmenulist$[23],@Dmenulist$[24],@Dmenulist$[25],@Dmenulist$[26],@Dmenulist$[27],@Dmenulist$[28],@Dmenulist$[29],@Dmenulist$[30],@Dmenulist$[31],@Dmenulist$[32],@Dmenulist$[33],@Dmenulist$[34]);
 	set @DWMenu,select(@Dmenulist$[0],@Dmenulist$[1],@Dmenulist$[2],@Dmenulist$[3],@Dmenulist$[4],@Dmenulist$[5],@Dmenulist$[6],@Dmenulist$[7],@Dmenulist$[8],@Dmenulist$[9],@Dmenulist$[10],@Dmenulist$[11],@Dmenulist$[12],@Dmenulist$[13],@Dmenulist$[14],@Dmenulist$[15],@Dmenulist$[16],@Dmenulist$[17],@Dmenulist$[18],@Dmenulist$[19],@Dmenulist$[20],@Dmenulist$[21],@Dmenulist$[22],@Dmenulist$[23],@Dmenulist$[24],@Dmenulist$[25],@Dmenulist$[26],@Dmenulist$[27],@Dmenulist$[28],@Dmenulist$[29],@Dmenulist$[30],@Dmenulist$[31],@Dmenulist$[32],@Dmenulist$[33],@Dmenulist$[34]);
 
 
+	if(@TWMenu > 35 || @TWMenu < 1) end;
+
 	if (@Dmenuref[@DWMenu-1] == 57005) goto L_end; // 57005='dead' in hex
 	if (@Dmenuref[@DWMenu-1] == 57005) goto L_end; // 57005='dead' in hex
 	set @DwarpMenu, (@Dmenuref[@DWMenu-1]);
 	set @DwarpMenu, (@Dmenuref[@DWMenu-1]);
 	callfunc "QWS_DLarray";
 	callfunc "QWS_DLarray";
@@ -480,6 +484,8 @@ L_dungeon:
 // Expected maximum is set to 18 items, if you have dungeons with more levels add more ",@DWLmenulist$[xx]"
 // Expected maximum is set to 18 items, if you have dungeons with more levels add more ",@DWLmenulist$[xx]"
 	set @DWLMenu,select(@DWLmenulist$[0], @DWLmenulist$[1], @DWLmenulist$[2], @DWLmenulist$[3], @DWLmenulist$[4], @DWLmenulist$[5], @DWLmenulist$[6], @DWLmenulist$[7], @DWLmenulist$[8], @DWLmenulist$[9], @DWLmenulist$[10], @DWLmenulist$[11], @DWLmenulist$[12], @DWLmenulist$[13], @DWLmenulist$[14], @DWLmenulist$[15], @DWLmenulist$[16], @DWLmenulist$[17]);
 	set @DWLMenu,select(@DWLmenulist$[0], @DWLmenulist$[1], @DWLmenulist$[2], @DWLmenulist$[3], @DWLmenulist$[4], @DWLmenulist$[5], @DWLmenulist$[6], @DWLmenulist$[7], @DWLmenulist$[8], @DWLmenulist$[9], @DWLmenulist$[10], @DWLmenulist$[11], @DWLmenulist$[12], @DWLmenulist$[13], @DWLmenulist$[14], @DWLmenulist$[15], @DWLmenulist$[16], @DWLmenulist$[17]);
 
 
+	if(@TWMenu > 18 || @TWMenu < 1) end;
+
 	if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_end; // 57005='dead' in hex
 	if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_end; // 57005='dead' in hex
 
 
 	set @Darrayref, @DWLmenuref[@DWLMenu-1];
 	set @Darrayref, @DWLmenuref[@DWLMenu-1];
@@ -526,7 +532,7 @@ PHeal:
 	if(getarg(1) == 1) mes ""+@SpPrice+" Zeny for "+@Sp+" skill points";
 	if(getarg(1) == 1) mes ""+@SpPrice+" Zeny for "+@Sp+" skill points";
 	set @total, @HpPrice+@SpPrice;
 	set @total, @HpPrice+@SpPrice;
 	mes "for a total of "+@total+" zeny";
 	mes "for a total of "+@total+" zeny";
-	if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part;
+	if (select("Heal me","Let me see the choices again")!=1) goto L_heal_Part;
 	
 	
 	if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE;
 	if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE;
 	if(getarg(1) == 1)set @SpPrice, (MaxSp-Sp)*$QW_HP_S_PRICE;
 	if(getarg(1) == 1)set @SpPrice, (MaxSp-Sp)*$QW_HP_S_PRICE;
@@ -545,13 +551,13 @@ Zeny_Short_Both:
 	mes "[Warpra]";
 	mes "[Warpra]";
 	mes "choose another option, you can afford both.";
 	mes "choose another option, you can afford both.";
 	mes "I can heal as much as you can afford too.";
 	mes "I can heal as much as you can afford too.";
-	if (select("OK","Exit") == 2) goto L_end;
+	if (select("OK","Exit") != 1) goto L_end;
 	goto PHeal;
 	goto PHeal;
 
 
 Zeny_short_HP:
 Zeny_short_HP:
 	mes "[Warpra]";
 	mes "[Warpra]";
 	mes "do you want me to partly heal your HP ?";
 	mes "do you want me to partly heal your HP ?";
-	if (select("Yes","No") == 2) goto L_end;
+	if (select("Yes","No") != 1) goto L_end;
 	set @Hp, Zeny/$QW_HP_H_PRICE;
 	set @Hp, Zeny/$QW_HP_H_PRICE;
 	set @HpPrice, @Hp*$QW_HP_H_PRICE;
 	set @HpPrice, @Hp*$QW_HP_H_PRICE;
 	if (@Hp == 1) mes "your not worth the effort";
 	if (@Hp == 1) mes "your not worth the effort";
@@ -564,7 +570,7 @@ Zeny_short_HP:
 Zeny_short_SP:
 Zeny_short_SP:
 	mes "[Warpra]";
 	mes "[Warpra]";
 	mes "do you want me to partly heal your SP ?";
 	mes "do you want me to partly heal your SP ?";
-	if (select("Yes","No") == 2) goto L_end;
+	if (select("Yes","No") != 1) goto L_end;
 	set @Sp, Zeny/$QW_HP_S_PRICE;
 	set @Sp, Zeny/$QW_HP_S_PRICE;
 	set @SpPrice, @Sp*$QW_HP_S_PRICE;
 	set @SpPrice, @Sp*$QW_HP_S_PRICE;
 	if (@Sp == 1) mes "your not worth the effort";
 	if (@Sp == 1) mes "your not worth the effort";

+ 10 - 1
npc/custom/jobs/jobmaster.txt

@@ -78,10 +78,17 @@ prontera.gat,153,193,6	script	Job Master	123,{
 							if(Class == Job_Novice_High) goto L_noReq;
 							if(Class == Job_Novice_High) goto L_noReq;
 							set @target_job, @menu + 15;
 							set @target_job, @menu + 15;
 							break;
 							break;
-						default:
+						case 1:
+						case 2:
+						case 3:
+						case 4:
+						case 5:
+						case 6:						
 							set @target_job, @menu;
 							set @target_job, @menu;
 							if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
 							if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
 							break;
 							break;
+						default:
+							end;
 					}
 					}
 			}
 			}
 			mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";
 			mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";
@@ -149,6 +156,8 @@ prontera.gat,153,193,6	script	Job Master	123,{
 					}
 					}
 					mes "Welcome, please select the job you wish to change into";
 					mes "Welcome, please select the job you wish to change into";
 					set @target_job, @job_opt[select(callfunc("getJobName",@job_opt[0]), callfunc("getJobName",@job_opt[1]))-1];
 					set @target_job, @job_opt[select(callfunc("getJobName",@job_opt[0]), callfunc("getJobName",@job_opt[1]))-1];
+					if(@menu < 1 || @menu > 2)
+						end;
 					if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
 					if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
 				}
 				}
 				mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";
 				mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";

+ 4 - 0
npc/jobs/1-1e/gunslinger.txt

@@ -217,6 +217,8 @@ payon.gat,184,65,3	script	Mr. Tanieh	866,{
 				close2;
 				close2;
 				set @npcname$,"";
 				set @npcname$,"";
 				end;
 				end;
+			default:
+				end;
 		}
 		}
 	} else if (GUNS_Q == 10003 || GUNS_Q == 10004) {
 	} else if (GUNS_Q == 10003 || GUNS_Q == 10004) {
 		if (countitem(519) >= 1 && GUNS_Q == 10004) {
 		if (countitem(519) >= 1 && GUNS_Q == 10004) {
@@ -239,6 +241,8 @@ payon.gat,184,65,3	script	Mr. Tanieh	866,{
 					close2;
 					close2;
 					set @npcname$,"";
 					set @npcname$,"";
 					end;
 					end;
+				default:
+					end;
 			}
 			}
 		}
 		}
 		mes @npcname$;
 		mes @npcname$;

+ 724 - 720
npc/jobs/1-1e/ninja.txt

@@ -1,721 +1,725 @@
-//===== eAthena Script ======================================= 
-//= Ninja Job Quest
-//===== By: ================================================== 
-//= Legionaire
-//===== Current Version: ===================================== 
-//= 1.1a
-//===== Compatible With: ===================================== 
-//= eAthena SVN that supports Ninjas
-//===== Description: ========================================= 
-//= Semi-official Ninja Job Change script using dialogue from
-//= Mandarin Aegis Ninja script.
-//===== Additional Comments: ================================= 
-//= The dialouge isn't exactly the best available, but until
-//= The official dialouge in English comes out, this is the
-//= Best that I can do.
-//= 1.1 Optimized, updated, checked [Lupus]
-//============================================================ 
-
-
-que_ng.gat,30,65,3	script	Cool Kid#nq	730,{
-	set @npcname$,"[Cool Kid]";
-	if(Class == Job_Novice && JobLevel > 9){
-		switch(NINJ_Q){
-		case 1:
-			mes @npcname$;
-			mes "Mmm... This isn't a pressing matter.";
-			mes "Though I hope you can do it soon.";
-			mes "Wildcat Zhao, he's over in";
-			mes "Einbroch";
-			close;
-		case 2:
-			mes @npcname$;
-			mes "Don't forget to get something from him.";
-			mes "Otherwise he'll forget.";
-			close;
-		case 3:
-			mes @npcname$;
-			mes "Did you bring it back?";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Yup, right here.";
-			next;
-			mes @npcname$;
-			mes "Ohh, not bad";
-			mes "Hand it over.";
-			mes "Let's see... Well.";
-			mes "- *letter opening sounds*... -";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "- He's intently reading -";
-			mes "- the letter I brought back. -";
-			next;
-			mes @npcname$;
-			mes "Ai YA~!! How can this be?!";
-			mes "He rejected my offer of a ceasefire!!!";
-			mes "Could it be... Could it be...!";
-			mes "That he's already made another sword?...";
-			next;
-			mes @npcname$;
-			mes "Ohhh, my head hurts now.";
-			mes "Hey, sorry to bother you again.";
-			mes "I need something to fight";
-			mes "Zhao with,";
-			mes "but I don't have the materials.";
-			next;
-			mes @npcname$;
-			mes "If you bring me the materials...";
-			mes "I'll acknowledge you...";
-			mes "And let you become a Ninja.";
-			mes "I need you to get me...";
-			mes "One piece of Phracon.";
-			mes "and five cygar, quick, there's no time!";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Aahh!!";
-			mes "This is...";
-			next;
-			mes @npcname$;
-			mes "Hmm, what's the matter?";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "These items... Were the ones";
-			mes "I promised to Mr. Zhao...";
-			next;
-			mes @npcname$;
-			mes "WHAT?!!!";
-			mes "Then the person helping him...";
-			mes "IS!";
-			mes "Aaahhh...";
-			mes "Ai ya, you fool!!!!";
-			next;
-			mes @npcname$;
-			mes "Oh.. Oh... Calm.. Must be calm.";
-			mes "Haha...";
-			next;
-			mes @npcname$;
-			mes "Well, you've already promised to help me.";
-			mes "No point in arguing now...";
-			mes "We can do that later.";
-			mes "Quick, gather the items.";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Oh.. Oh.. Ok..";
-			next;
-			mes @npcname$;
-			mes "Quick~~!!";
-			mes "Aiii~";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "- I have to give him 1 Phracon... -";
-			mes "- and 5 Cyfars -";
-			set NINJ_Q,4;
-			close;
-		case 4:
-			mes @npcname$;
-			if(countitem(7053) < 4 || countitem(1010) < 1){
-				mes "Bring me a Phracon";
-				mes "and five cyfar";
-				mes "Right now, you still don't have enough.";
-				mes "It's urgent.. So do it quickly.";
-				close;
-			}
-			if(getskilllv(1) < 9){
-				mes "Come back once you have the basic skills...";
-				close;
-			}
-			delitem 1010,1;
-			delitem 7035,1;
-			mes "Oh... you've brought it.";
-			mes "Let's see...";
-			mes "Mmm~ so you've brought it all";
-			mes "and followed my instructions.";
-			next;
-			mes @npcname$;
-			mes "Huu... This doesn't look too bad.";
-			mes "Better than I expected at least?";
-			next;
-			mes @npcname$;
-			mes "Ok.";
-			mes "I'll follow through with the ritual";
-			mes "and change you into a Ninja.";
-			next;
-			mes @npcname$;
-			mes "Well, I guess I can introduce myself to you now.";
-			mes "I am part of the Doga Ninja clan";
-			mes "the top Ninja head in the clan.";
-			mes "I'm the squad leader of the team...";
-			mes "trying to find our chief, Kazma";
-			mes "So here I am.";
-			next;
-			mes @npcname$;
-			mes "Actually, there's been a bit of a distrubance";
-			mes "amongst our ranks";
-			mes "so actually, I didn't want you";
-			mes "to join the clan";
-			mes "at first.";
-			next;
-			mes @npcname$;
-			mes "But Zhao, in the letter...";
-			mes "rate you pretty high, and you performed";
-			mes "orders rather well,";
-			mes "so I had a change of mind.";
-			next;
-			mes @npcname$;
-			mes "Being a Ninja is a solitary job.";
-			mes "We value our work above all";
-			mes "but not to the point of fanaticism.";
-			next;
-			mes @npcname$;
-			mes "Your path will be one of hardship.";
-			mes "Many of us live within villages...";
-			mes "Working away covertly.";
-			next;
-			mes @npcname$;
-			mes "Our techniques and our equipmnet...";
-			mes "How to handle and use them...";
-			mes "That is all done covertly";
-			mes "As well, buying and selling...";
-			mes "is also done via special means, so,";
-			mes "be especially careful.";
-			next;
-			mes @npcname$;
-			mes "Well, from now on";
-			mes "You're a member of the ...";
-			mes "Doga Ninja Clan.";
-			next;
-			mes @npcname$;
-			mes "Speed, as that of the western wind.";
-			mes "Movement, like the falling leaf in that wind";
-			mes "Soft!!!";
-			next;
-			mes @npcname$;
-			mes "Haaa!!!!";
-			next;
-			nude;
-			callfunc "Job_Change",Job_Ninja;
-			callfunc "F_ClearJobVar";				
-			getitem 13010,1;
-			close;
-		default:
-			mes "["+strcharinfo(0)+"]";
-			mes "Hey.";
-			next;
-			mes @npcname$;
-			mes "Oh?...";
-			mes "That's impossible~!!";
-			mes "You can see me!";
-			next;
-			mes @npcname$;
-			mes "Aaaahhh~!";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "- Kick the man with the chopsticks. -";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "- Huu~! -";
-			mes "Ahh~!";
-			mes "Ahh~! What are you doing?!";
-			next;
-			mes @npcname$;
-			mes "Oh?...";
-			mes "You aren't an assassin trying 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 @npcname$;
-			mes "ohohoh~! Anger, anger~~";
-			mes "My forever rival... Forever hated enemy!";
-			mes "Wildcat!";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "........";
-			next;
-			mes @npcname$;
-			mes "Ahah~~~!!!";
-			mes "E~E~";
-			mes "Pa! Pa! Pa~";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "- I'm right here... -";
-			next;
-			mes @npcname$;
-			mes "Mmm...";
-			mes "Oh! Who are you?!";
-			mes "When did you suddenly appear";
-			mes "beside me!";
-			mes "Here, TAKE THIS!";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Augh...~";
-			mes "Jeez, can't you stop...";
-			mes "What are you doing now..";
-			next;
-			mes @npcname$;
-			mes "Ohoho...";
-			mes "Not bad, not bad~";
-			mes "You managed to dodge my attacks...";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "- What.. Is wrong with him... -";
-			mes "- Not listening to me at all. -";
-			next;
-			mes @npcname$;
-			mes "mmm~ok~";
-			mes "Well, why did you come find me?";
-			mes "What do you need?";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes ".........";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Oh...mm...";
-			mes "Right.";
-			mes "I want to become a Ninja.";
-			next;
-			mes @npcname$;
-			mes "Ok, great, perfect...";
-			mes "BUT!";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes ".....";
-			next;
-			mes @npcname$;
-			mes "It's not that simple.";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "... What now~";
-			next;
-			mes @npcname$;
-			mes "I still have no trust in you.";
-			mes "In my opinion, you have no experience.";
-			mes "You'll have trouble becoming a Ninja.";
-			next;
-			mes @npcname$;
-			mes "So...";
-			mes "You should!!!Go home~!";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "...........";
-			next;
-			mes @npcname$;
-			mes "Mmm...";
-			mes "Right!";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "...........";
-			next;
-			mes @npcname$;
-			mes "Well, if you aren't deaf, leave.";
-			mes "You've seen it for yourself, I'm a busy fellow.";
-			mes "Aahh...";
-			next;
-			mes @npcname$;
-			mes "My opponents are everywhere...";
-			mes "I cannot afford to waste time!";
-			next;
-			mes @npcname$;
-			mes "Well now, I've got to run";
-			mes "You know, for practice and all.";
-			mes "*prepares to leave*";
-			next;
-			mes @npcname$;
-			mes "I shall win next time!";
-			mes "Wait for me.";
-			mes "Wildcat Zhao!";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Wildcat... Zhao?";
-			mes "You're fighting a cat?";
-			next;
-			mes @npcname$;
-			mes "Uhh..? Oh that, hahaha~";
-			mes "Wildcat Zhao is that fellow's...";
-			mes "title.";
-			next;
-			mes @npcname$;
-			mes "He's a vicious and barbaric fellow.";
-			mes "For victory...";
-			mes "He'll use any method.";
-			next;
-			mes @npcname$;
-			mes "His ninjutsu";
-			mes "is also a bit too strong...";
-			next;
-			mes @npcname$;
-			mes "Right now, both of our";
-			mes "shuriken and scrolls...";
-			mes "are still in repair, so,";
-			mes "we're temporarily calling it a break.";
-			next;
-			mes @npcname$;
-			mes "If you really...";
-			mes "Want to become a Ninja.";
-			mes "Wanna help me out?";
-			mes "If you help me...";
-			mes "I probably won't be able to make you a Ninja";
-			mes "But I'll teach you several skills?";
-			next;
-			if(select("Sure.:Reject.") == 2){
-				mes "["+strcharinfo(0)+"]";
-				mes "I'm not here to help";
-				mes "Just looking for someone to teach me the skills.";
-				mes "Sorry.";
-				mes "Find somebody else.";
-				next;
-				mes @npcname$;
-				mes "Oh... I see...";
-				mes "Ok then.";
-				mes "Sorry if I offended you.";
-				mes "You may leave now.";
-				close;
-			}
-			mes "["+strcharinfo(0)+"]";
-			mes "Mm... Ok then.";
-			next;
-			mes @npcname$;
-			mes "Ok..great.";
-			mes "Bring this letter";
-			mes "Over to Wildcat Zhao";
-			mes "Grr... That fellow.";
-			next;
-			mes @npcname$;
-			mes "It basically says...";
-			mes "Let's have a ceasefire";
-			mes "While our equipment is being fixed.";
-			mes "You must get a reply from him.";
-			next;
-			mes @npcname$;
-			mes "I heard he's somewhere...";
-			mes "in Einbroch...";
-			mes "Don't know.";
-			mes "What's he doing over there?";
-			mes "...";
-			next;
-			mes @npcname$;
-			mes "Zhao...";
-			mes "He changes his appearance...";
-			mes "So check everybody, since you won't know who he is.";
-			next;
-			mes @npcname$;
-			mes "Don't give up though.";
-			mes "He likes high places.";
-			mes "Search around.";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "Ok~";
-			mes "Ok.";
-			set NINJ_Q,1;
-			close;
-		}
-	}else if(Class == Job_Novice && JobLevel < 10){
-		mes @npcname$;
-		mes "Not enough training.";
-		mes "Come back later.";
-		close;
-	}
-	mes @npcname$;
-	if(Class == Job_Ninja){
-		mes "Mm... How's it been?";
-		mes "Missions can happen at any moment";
-		mes "At any time";
-		mes "Don't slack off";
-		close;
-	}
-	mes "Oh what, this smell!!";
-	mes "It's coming from you!.";
-	mes "It's been a long time since I've";
-	mes "smelled anybody so stinky.";
-	mes "Away with you!";
-	close;
-}
-
-einbroch.gat,184,194,3	script	Exceptional Man	881,{
-	if(NINJ_Q >= 3 || Class == Job_Ninja)
-		set @npcname$,"[Red Cougar Zhao]";
-	else
-		set @npcname$,"[Exceptional Man]";
-	if(!NINJ_Q){
-		mes @npcname$;
-		if(Class == Job_Ninja){
-			mes "Oh, you're a Ninja now.";
-			mes "Stay true to the path, though there...";
-			mes "may be difficulties ahead, remember...";
-			mes "train hard.";
-			close;
-		}
-		mes "Whoo... So happy.";
-		mes "I've been to many places.";
-		mes "But a building this tall...";
-		mes "First time I've seen it, and the scenery is beautiful too.";
-		mes "Really too sad that I don't have the time to admire it";
-		mes "*sighs*";
-		close;
-	}
-	switch(NINJ_Q){
-	case 1:
-		mes @npcname$;
-		mes "The place I lived in...";
-		mes "was peaceful, the air was good, the houses were small";
-		mes "but warm.";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "Oh, it can't be!";
-		mes "Amatsu?!!!";
-		next;
-		mes @npcname$;
-		mes "Nope.";
-		mes "....";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "Mmm~";
-		mes "Wait...";
-		mes "You've lived in Izlude before?";
-		next;
-		mes @npcname$;
-		mes "Yes.";
-		mes "I come from Izlude.";
-		next;
-		mes @npcname$;
-		mes "Due to certain events though...";
-		mes "I've come here, to the mines.";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "Really...";
-		mes "Oh, do you know a person called.... Wildcat Zhao?";
-		mes "He's a Ninja from Amatsu";
-		next;
-		mes @npcname$;
-		mes "Hmm that's the first time I've heard that name.";
-		mes "You have some important reason..";
-		mes "to meet him?";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "Yes, I have a latter to give him";
-		mes "and I need a reply letter";
-		mes "before I can change class";
-		mes "and become a Ninja.";
-		next;
-		mes @npcname$;
-		mes "Mm.. So I see, you too, are a traveller.";
-		next;
-		mes @npcname$;
-		mes "Oh, I remember now";
-		mes "I think... I know";
-		mes "Who you're trying to find.";
-		next;
-		mes @npcname$;
-		mes "I saw him here";
-		mes "or at least... I think I did.";
-		next;
-		mes @npcname$;
-		mes "I'd really like to help you";
-		mes "but I still have...";
-		mes "some unfinished business.";
-		next;
-		mes @npcname$;
-		mes "If you can help me do something";
-		mes "I'll help you find him.";
-		next;
-		if(select("I'll find him myself.:Ok, I'll help you.") == 1){
-			mes @npcname$;
-			mes "Ahh ok.";
-			mes "I understand.";
-			mes "Well, good luck";
-			mes "if you ever are in";
-			mes "need of help.";
-			mes "Before I leave";
-			mes "tell me...";
-			close;
-		}else{
-			mes @npcname$;
-			mes "Mm Ok.";
-			mes "I came here";
-			mes "to find some ores.";
-			mes "I have something that needs these ores";
-			mes "in order to work";
-			next;
-			mes @npcname$;
-			mes "I would come with you....";
-			mes "But I need to watch over this, so.";
-			mes "If you can get me five Cyfars, and";
-			mes "one Phracon...";
-			mes "I would really appreciated it.";
-			next;
-			mes "["+strcharinfo(0)+"]";
-			mes "- I need to bring, one Phracon and five Cyfars. -";
-			set NINJ_Q,2;
-			close;
-		}
-	case 2:
-		if(countitem(1010) < 1 || countitem(7053) < 5){
-			mes @npcname$;
-			mes "1 Phracon and 5 Cyfars.";
-			mes "Hmm the amount isn't enough.";
-			mes "Even though there's no hurry, still,";
-			mes "bring back the correct amount.";
-			close;
-		}
-		mes @npcname$;
-		mes "Very good, very good..";
-		mes "Mmm.... Ok.";
-		mes "You've given me what I needed";
-		mes "now I need to help you in return";
-		mes "and find him. Mmm....";
-		next;
-		mes @npcname$;
-		mes "Let me see the letter.";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "?????!!";
-		next;
-		mes @npcname$;
-		mes "Oh? Can it be him...";
-		mes "that sent it?";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "Oh.... So you are";
-		mes "Wildcat~!";
-		next;
-		mes @npcname$;
-		mes "No.";
-		mes "My name is not Wildcat Zhao";
-		mes "It is Cougar Zhao.";
-		mes "Wildcat is the name that kid";
-		mes "uses in order";
-		mes "to aggravate me, haha.";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "Hahaha... ~~";
-		next;
-		set @npcname$,"[Red Cougar Zhao]";
-		mes @npcname$;
-		mes "If you want to become a Ninja";
-		mes "then you must not trust";
-		mes "what you see.";
-		next;
-		mes @npcname$;
-		mes "The clothing and gear you see in books.";
-		mes "Is not used by real Ninjas";
-		mes "or rather, there are very few";
-		mes "who wear such things.";
-		next;
-		mes @npcname$;
-		mes "Do not forget.";
-		mes "Once the identity of a Ninja";
-		mes "has been revealed, his life is";
-		mes "forfeit.";
-		next;
-		mes @npcname$;
-		mes "Even right now";
-		mes "what I say and tell you";
-		mes "may not be the truth.";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "Ohh...";
-		mes "...........";
-		next;
-		mes @npcname$;
-		mes "Well, can I see it?";
-		mes "That letter.";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "Oh ok.";
-		mes "Hmm.";
-		mes "-*Takes out letter*-";
-		next;
-		mes @npcname$;
-		mes "Mmmm.. Let's see...";
-		mes "Oh, and here, I thought it would be";
-		mes "another declaration of battle.";
-		mes "He wants a ceasfire now.";
-		next;
-		mes @npcname$;
-		mes "What to do, what to do.";
-		mes "You've already helped me";
-		mes "make another sword.";
-		mes "Haha~";
-		next;
-		mes @npcname$;
-		mes "I'll write a reply I guess.";
-		mes "From my point of view though";
-		mes "based on the speed that you got what I asked for";
-		mes "if you want to become a Ninja";
-		mes "learn to become a bit faster";
-		mes "and more experienced";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes ".....";
-		next;
-		mes @npcname$;
-		mes "Wait.";
-		mes "I shall write a reply letter.";
-		mes "Let's see...";
-		mes "Mm...*slides letter in*......";
-		next;
-		mes @npcname$;
-		mes "Here you go.";
-		mes "Give it to him";
-		mes "and he'll understand.";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "- Good, got the letter -";
-		mes "- that Mr. Zhao wrote in a second. -";
-		next;
-		mes @npcname$;
-		mes "Well now, be on your way.";
-		mes "If you want to become a Ninja";
-		mes "learn to treasure what time you have.";
-		next;
-		mes @npcname$;
-		mes "When you do become a Ninja";
-		mes "Come have a chat with me";
-		mes "I will be waiting for you.";
-		next;
-		mes "["+strcharinfo(0)+"]";
-		mes "Mmm.... Then I'll....";
-		next;
-		mes @npcname$;
-		mes "Ohh.... It'll take awhile to get to Amatsu";
-		mes "definitely a long trip.";
-		mes "I'll take "+strcharinfo(0)+" to Amatasu.";
-		mes "Ok.";
-		delitem 1010,1;
-		delitem 7053,5;
-		set NINJ_Q,3;
-		close2;
-		warp "amatsu.gat",113,127;
-		end;
-	case 3:
-		mes @npcname$;
-		mes "Hmmm I wonder what happened";
-		mes "you haven't seen him yet";
-		mes "why are you here?";
-		next;
-		mes @npcname$;
-		mes "If you want";
-		mes "I'll take you back to Amatsu.";
-		next;
-		if(select("No thanks.:Sure.") == 1){
-			mes @npcname$;
-			mes "Mm, ok then.";
-			mes "The decision is yours to make.";
-			close;
-		}
-		mes @npcname$;
-		mes "Ok. Then I'll take you to Amatsu.";
-		close2;
-		warp "amatsu.gat",113,127;
-		end;
-	case 4:
-		mes @npcname$;
-		mes "Haha, the kid seems to order you";
-		mes "to do lots of bothersome chores.";
-		mes "Work hard, all of these tasks";
-		mes "will help you become a Ninja.";
-		close;
-	}
+//===== eAthena Script ======================================= 
+//= Ninja Job Quest
+//===== By: ================================================== 
+//= Legionaire
+//===== Current Version: ===================================== 
+//= 1.1a
+//===== Compatible With: ===================================== 
+//= eAthena SVN that supports Ninjas
+//===== Description: ========================================= 
+//= Semi-official Ninja Job Change script using dialogue from
+//= Mandarin Aegis Ninja script.
+//===== Additional Comments: ================================= 
+//= The dialouge isn't exactly the best available, but until
+//= The official dialouge in English comes out, this is the
+//= Best that I can do.
+//= 1.1 Optimized, updated, checked [Lupus]
+//============================================================ 
+
+
+que_ng.gat,30,65,3	script	Cool Kid#nq	730,{
+	set @npcname$,"[Cool Kid]";
+	if(Class == Job_Novice && JobLevel > 9){
+		switch(NINJ_Q){
+		case 1:
+			mes @npcname$;
+			mes "Mmm... This isn't a pressing matter.";
+			mes "Though I hope you can do it soon.";
+			mes "Wildcat Zhao, he's over in";
+			mes "Einbroch";
+			close;
+		case 2:
+			mes @npcname$;
+			mes "Don't forget to get something from him.";
+			mes "Otherwise he'll forget.";
+			close;
+		case 3:
+			mes @npcname$;
+			mes "Did you bring it back?";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "Yup, right here.";
+			next;
+			mes @npcname$;
+			mes "Ohh, not bad";
+			mes "Hand it over.";
+			mes "Let's see... Well.";
+			mes "- *letter opening sounds*... -";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "- He's intently reading -";
+			mes "- the letter I brought back. -";
+			next;
+			mes @npcname$;
+			mes "Ai YA~!! How can this be?!";
+			mes "He rejected my offer of a ceasefire!!!";
+			mes "Could it be... Could it be...!";
+			mes "That he's already made another sword?...";
+			next;
+			mes @npcname$;
+			mes "Ohhh, my head hurts now.";
+			mes "Hey, sorry to bother you again.";
+			mes "I need something to fight";
+			mes "Zhao with,";
+			mes "but I don't have the materials.";
+			next;
+			mes @npcname$;
+			mes "If you bring me the materials...";
+			mes "I'll acknowledge you...";
+			mes "And let you become a Ninja.";
+			mes "I need you to get me...";
+			mes "One piece of Phracon.";
+			mes "and five cygar, quick, there's no time!";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "Aahh!!";
+			mes "This is...";
+			next;
+			mes @npcname$;
+			mes "Hmm, what's the matter?";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "These items... Were the ones";
+			mes "I promised to Mr. Zhao...";
+			next;
+			mes @npcname$;
+			mes "WHAT?!!!";
+			mes "Then the person helping him...";
+			mes "IS!";
+			mes "Aaahhh...";
+			mes "Ai ya, you fool!!!!";
+			next;
+			mes @npcname$;
+			mes "Oh.. Oh... Calm.. Must be calm.";
+			mes "Haha...";
+			next;
+			mes @npcname$;
+			mes "Well, you've already promised to help me.";
+			mes "No point in arguing now...";
+			mes "We can do that later.";
+			mes "Quick, gather the items.";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "Oh.. Oh.. Ok..";
+			next;
+			mes @npcname$;
+			mes "Quick~~!!";
+			mes "Aiii~";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "- I have to give him 1 Phracon... -";
+			mes "- and 5 Cyfars -";
+			set NINJ_Q,4;
+			close;
+		case 4:
+			mes @npcname$;
+			if(countitem(7053) < 4 || countitem(1010) < 1){
+				mes "Bring me a Phracon";
+				mes "and five cyfar";
+				mes "Right now, you still don't have enough.";
+				mes "It's urgent.. So do it quickly.";
+				close;
+			}
+			if(getskilllv(1) < 9){
+				mes "Come back once you have the basic skills...";
+				close;
+			}
+			delitem 1010,1;
+			delitem 7035,1;
+			mes "Oh... you've brought it.";
+			mes "Let's see...";
+			mes "Mmm~ so you've brought it all";
+			mes "and followed my instructions.";
+			next;
+			mes @npcname$;
+			mes "Huu... This doesn't look too bad.";
+			mes "Better than I expected at least?";
+			next;
+			mes @npcname$;
+			mes "Ok.";
+			mes "I'll follow through with the ritual";
+			mes "and change you into a Ninja.";
+			next;
+			mes @npcname$;
+			mes "Well, I guess I can introduce myself to you now.";
+			mes "I am part of the Doga Ninja clan";
+			mes "the top Ninja head in the clan.";
+			mes "I'm the squad leader of the team...";
+			mes "trying to find our chief, Kazma";
+			mes "So here I am.";
+			next;
+			mes @npcname$;
+			mes "Actually, there's been a bit of a distrubance";
+			mes "amongst our ranks";
+			mes "so actually, I didn't want you";
+			mes "to join the clan";
+			mes "at first.";
+			next;
+			mes @npcname$;
+			mes "But Zhao, in the letter...";
+			mes "rate you pretty high, and you performed";
+			mes "orders rather well,";
+			mes "so I had a change of mind.";
+			next;
+			mes @npcname$;
+			mes "Being a Ninja is a solitary job.";
+			mes "We value our work above all";
+			mes "but not to the point of fanaticism.";
+			next;
+			mes @npcname$;
+			mes "Your path will be one of hardship.";
+			mes "Many of us live within villages...";
+			mes "Working away covertly.";
+			next;
+			mes @npcname$;
+			mes "Our techniques and our equipmnet...";
+			mes "How to handle and use them...";
+			mes "That is all done covertly";
+			mes "As well, buying and selling...";
+			mes "is also done via special means, so,";
+			mes "be especially careful.";
+			next;
+			mes @npcname$;
+			mes "Well, from now on";
+			mes "You're a member of the ...";
+			mes "Doga Ninja Clan.";
+			next;
+			mes @npcname$;
+			mes "Speed, as that of the western wind.";
+			mes "Movement, like the falling leaf in that wind";
+			mes "Soft!!!";
+			next;
+			mes @npcname$;
+			mes "Haaa!!!!";
+			next;
+			nude;
+			callfunc "Job_Change",Job_Ninja;
+			callfunc "F_ClearJobVar";				
+			getitem 13010,1;
+			close;
+		default:
+			mes "["+strcharinfo(0)+"]";
+			mes "Hey.";
+			next;
+			mes @npcname$;
+			mes "Oh?...";
+			mes "That's impossible~!!";
+			mes "You can see me!";
+			next;
+			mes @npcname$;
+			mes "Aaaahhh~!";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "- Kick the man with the chopsticks. -";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "- Huu~! -";
+			mes "Ahh~!";
+			mes "Ahh~! What are you doing?!";
+			next;
+			mes @npcname$;
+			mes "Oh?...";
+			mes "You aren't an assassin trying 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 @npcname$;
+			mes "ohohoh~! Anger, anger~~";
+			mes "My forever rival... Forever hated enemy!";
+			mes "Wildcat!";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "........";
+			next;
+			mes @npcname$;
+			mes "Ahah~~~!!!";
+			mes "E~E~";
+			mes "Pa! Pa! Pa~";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "- I'm right here... -";
+			next;
+			mes @npcname$;
+			mes "Mmm...";
+			mes "Oh! Who are you?!";
+			mes "When did you suddenly appear";
+			mes "beside me!";
+			mes "Here, TAKE THIS!";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "Augh...~";
+			mes "Jeez, can't you stop...";
+			mes "What are you doing now..";
+			next;
+			mes @npcname$;
+			mes "Ohoho...";
+			mes "Not bad, not bad~";
+			mes "You managed to dodge my attacks...";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "- What.. Is wrong with him... -";
+			mes "- Not listening to me at all. -";
+			next;
+			mes @npcname$;
+			mes "mmm~ok~";
+			mes "Well, why did you come find me?";
+			mes "What do you need?";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes ".........";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "Oh...mm...";
+			mes "Right.";
+			mes "I want to become a Ninja.";
+			next;
+			mes @npcname$;
+			mes "Ok, great, perfect...";
+			mes "BUT!";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes ".....";
+			next;
+			mes @npcname$;
+			mes "It's not that simple.";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "... What now~";
+			next;
+			mes @npcname$;
+			mes "I still have no trust in you.";
+			mes "In my opinion, you have no experience.";
+			mes "You'll have trouble becoming a Ninja.";
+			next;
+			mes @npcname$;
+			mes "So...";
+			mes "You should!!!Go home~!";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "...........";
+			next;
+			mes @npcname$;
+			mes "Mmm...";
+			mes "Right!";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "...........";
+			next;
+			mes @npcname$;
+			mes "Well, if you aren't deaf, leave.";
+			mes "You've seen it for yourself, I'm a busy fellow.";
+			mes "Aahh...";
+			next;
+			mes @npcname$;
+			mes "My opponents are everywhere...";
+			mes "I cannot afford to waste time!";
+			next;
+			mes @npcname$;
+			mes "Well now, I've got to run";
+			mes "You know, for practice and all.";
+			mes "*prepares to leave*";
+			next;
+			mes @npcname$;
+			mes "I shall win next time!";
+			mes "Wait for me.";
+			mes "Wildcat Zhao!";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "Wildcat... Zhao?";
+			mes "You're fighting a cat?";
+			next;
+			mes @npcname$;
+			mes "Uhh..? Oh that, hahaha~";
+			mes "Wildcat Zhao is that fellow's...";
+			mes "title.";
+			next;
+			mes @npcname$;
+			mes "He's a vicious and barbaric fellow.";
+			mes "For victory...";
+			mes "He'll use any method.";
+			next;
+			mes @npcname$;
+			mes "His ninjutsu";
+			mes "is also a bit too strong...";
+			next;
+			mes @npcname$;
+			mes "Right now, both of our";
+			mes "shuriken and scrolls...";
+			mes "are still in repair, so,";
+			mes "we're temporarily calling it a break.";
+			next;
+			mes @npcname$;
+			mes "If you really...";
+			mes "Want to become a Ninja.";
+			mes "Wanna help me out?";
+			mes "If you help me...";
+			mes "I probably won't be able to make you a Ninja";
+			mes "But I'll teach you several skills?";
+			next;
+			if(select("Sure.:Reject.") == 2){
+				mes "["+strcharinfo(0)+"]";
+				mes "I'm not here to help";
+				mes "Just looking for someone to teach me the skills.";
+				mes "Sorry.";
+				mes "Find somebody else.";
+				next;
+				mes @npcname$;
+				mes "Oh... I see...";
+				mes "Ok then.";
+				mes "Sorry if I offended you.";
+				mes "You may leave now.";
+				close;
+			}
+			if(@menu > 2)
+				end;
+			mes "["+strcharinfo(0)+"]";
+			mes "Mm... Ok then.";
+			next;
+			mes @npcname$;
+			mes "Ok..great.";
+			mes "Bring this letter";
+			mes "Over to Wildcat Zhao";
+			mes "Grr... That fellow.";
+			next;
+			mes @npcname$;
+			mes "It basically says...";
+			mes "Let's have a ceasefire";
+			mes "While our equipment is being fixed.";
+			mes "You must get a reply from him.";
+			next;
+			mes @npcname$;
+			mes "I heard he's somewhere...";
+			mes "in Einbroch...";
+			mes "Don't know.";
+			mes "What's he doing over there?";
+			mes "...";
+			next;
+			mes @npcname$;
+			mes "Zhao...";
+			mes "He changes his appearance...";
+			mes "So check everybody, since you won't know who he is.";
+			next;
+			mes @npcname$;
+			mes "Don't give up though.";
+			mes "He likes high places.";
+			mes "Search around.";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "Ok~";
+			mes "Ok.";
+			set NINJ_Q,1;
+			close;
+		}
+	}else if(Class == Job_Novice && JobLevel < 10){
+		mes @npcname$;
+		mes "Not enough training.";
+		mes "Come back later.";
+		close;
+	}
+	mes @npcname$;
+	if(Class == Job_Ninja){
+		mes "Mm... How's it been?";
+		mes "Missions can happen at any moment";
+		mes "At any time";
+		mes "Don't slack off";
+		close;
+	}
+	mes "Oh what, this smell!!";
+	mes "It's coming from you!.";
+	mes "It's been a long time since I've";
+	mes "smelled anybody so stinky.";
+	mes "Away with you!";
+	close;
+}
+
+einbroch.gat,184,194,3	script	Exceptional Man	881,{
+	if(NINJ_Q >= 3 || Class == Job_Ninja)
+		set @npcname$,"[Red Cougar Zhao]";
+	else
+		set @npcname$,"[Exceptional Man]";
+	if(!NINJ_Q){
+		mes @npcname$;
+		if(Class == Job_Ninja){
+			mes "Oh, you're a Ninja now.";
+			mes "Stay true to the path, though there...";
+			mes "may be difficulties ahead, remember...";
+			mes "train hard.";
+			close;
+		}
+		mes "Whoo... So happy.";
+		mes "I've been to many places.";
+		mes "But a building this tall...";
+		mes "First time I've seen it, and the scenery is beautiful too.";
+		mes "Really too sad that I don't have the time to admire it";
+		mes "*sighs*";
+		close;
+	}
+	switch(NINJ_Q){
+	case 1:
+		mes @npcname$;
+		mes "The place I lived in...";
+		mes "was peaceful, the air was good, the houses were small";
+		mes "but warm.";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Oh, it can't be!";
+		mes "Amatsu?!!!";
+		next;
+		mes @npcname$;
+		mes "Nope.";
+		mes "....";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Mmm~";
+		mes "Wait...";
+		mes "You've lived in Izlude before?";
+		next;
+		mes @npcname$;
+		mes "Yes.";
+		mes "I come from Izlude.";
+		next;
+		mes @npcname$;
+		mes "Due to certain events though...";
+		mes "I've come here, to the mines.";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Really...";
+		mes "Oh, do you know a person called.... Wildcat Zhao?";
+		mes "He's a Ninja from Amatsu";
+		next;
+		mes @npcname$;
+		mes "Hmm that's the first time I've heard that name.";
+		mes "You have some important reason..";
+		mes "to meet him?";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Yes, I have a latter to give him";
+		mes "and I need a reply letter";
+		mes "before I can change class";
+		mes "and become a Ninja.";
+		next;
+		mes @npcname$;
+		mes "Mm.. So I see, you too, are a traveller.";
+		next;
+		mes @npcname$;
+		mes "Oh, I remember now";
+		mes "I think... I know";
+		mes "Who you're trying to find.";
+		next;
+		mes @npcname$;
+		mes "I saw him here";
+		mes "or at least... I think I did.";
+		next;
+		mes @npcname$;
+		mes "I'd really like to help you";
+		mes "but I still have...";
+		mes "some unfinished business.";
+		next;
+		mes @npcname$;
+		mes "If you can help me do something";
+		mes "I'll help you find him.";
+		next;
+		if(select("I'll find him myself.:Ok, I'll help you.") == 1){
+			mes @npcname$;
+			mes "Ahh ok.";
+			mes "I understand.";
+			mes "Well, good luck";
+			mes "if you ever are in";
+			mes "need of help.";
+			mes "Before I leave";
+			mes "tell me...";
+			close;
+		}else{
+			if(@menu > 2)
+				end;
+			mes @npcname$;
+			mes "Mm Ok.";
+			mes "I came here";
+			mes "to find some ores.";
+			mes "I have something that needs these ores";
+			mes "in order to work";
+			next;
+			mes @npcname$;
+			mes "I would come with you....";
+			mes "But I need to watch over this, so.";
+			mes "If you can get me five Cyfars, and";
+			mes "one Phracon...";
+			mes "I would really appreciated it.";
+			next;
+			mes "["+strcharinfo(0)+"]";
+			mes "- I need to bring, one Phracon and five Cyfars. -";
+			set NINJ_Q,2;
+			close;
+		}
+	case 2:
+		if(countitem(1010) < 1 || countitem(7053) < 5){
+			mes @npcname$;
+			mes "1 Phracon and 5 Cyfars.";
+			mes "Hmm the amount isn't enough.";
+			mes "Even though there's no hurry, still,";
+			mes "bring back the correct amount.";
+			close;
+		}
+		mes @npcname$;
+		mes "Very good, very good..";
+		mes "Mmm.... Ok.";
+		mes "You've given me what I needed";
+		mes "now I need to help you in return";
+		mes "and find him. Mmm....";
+		next;
+		mes @npcname$;
+		mes "Let me see the letter.";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "?????!!";
+		next;
+		mes @npcname$;
+		mes "Oh? Can it be him...";
+		mes "that sent it?";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Oh.... So you are";
+		mes "Wildcat~!";
+		next;
+		mes @npcname$;
+		mes "No.";
+		mes "My name is not Wildcat Zhao";
+		mes "It is Cougar Zhao.";
+		mes "Wildcat is the name that kid";
+		mes "uses in order";
+		mes "to aggravate me, haha.";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Hahaha... ~~";
+		next;
+		set @npcname$,"[Red Cougar Zhao]";
+		mes @npcname$;
+		mes "If you want to become a Ninja";
+		mes "then you must not trust";
+		mes "what you see.";
+		next;
+		mes @npcname$;
+		mes "The clothing and gear you see in books.";
+		mes "Is not used by real Ninjas";
+		mes "or rather, there are very few";
+		mes "who wear such things.";
+		next;
+		mes @npcname$;
+		mes "Do not forget.";
+		mes "Once the identity of a Ninja";
+		mes "has been revealed, his life is";
+		mes "forfeit.";
+		next;
+		mes @npcname$;
+		mes "Even right now";
+		mes "what I say and tell you";
+		mes "may not be the truth.";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Ohh...";
+		mes "...........";
+		next;
+		mes @npcname$;
+		mes "Well, can I see it?";
+		mes "That letter.";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Oh ok.";
+		mes "Hmm.";
+		mes "-*Takes out letter*-";
+		next;
+		mes @npcname$;
+		mes "Mmmm.. Let's see...";
+		mes "Oh, and here, I thought it would be";
+		mes "another declaration of battle.";
+		mes "He wants a ceasfire now.";
+		next;
+		mes @npcname$;
+		mes "What to do, what to do.";
+		mes "You've already helped me";
+		mes "make another sword.";
+		mes "Haha~";
+		next;
+		mes @npcname$;
+		mes "I'll write a reply I guess.";
+		mes "From my point of view though";
+		mes "based on the speed that you got what I asked for";
+		mes "if you want to become a Ninja";
+		mes "learn to become a bit faster";
+		mes "and more experienced";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes ".....";
+		next;
+		mes @npcname$;
+		mes "Wait.";
+		mes "I shall write a reply letter.";
+		mes "Let's see...";
+		mes "Mm...*slides letter in*......";
+		next;
+		mes @npcname$;
+		mes "Here you go.";
+		mes "Give it to him";
+		mes "and he'll understand.";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "- Good, got the letter -";
+		mes "- that Mr. Zhao wrote in a second. -";
+		next;
+		mes @npcname$;
+		mes "Well now, be on your way.";
+		mes "If you want to become a Ninja";
+		mes "learn to treasure what time you have.";
+		next;
+		mes @npcname$;
+		mes "When you do become a Ninja";
+		mes "Come have a chat with me";
+		mes "I will be waiting for you.";
+		next;
+		mes "["+strcharinfo(0)+"]";
+		mes "Mmm.... Then I'll....";
+		next;
+		mes @npcname$;
+		mes "Ohh.... It'll take awhile to get to Amatsu";
+		mes "definitely a long trip.";
+		mes "I'll take "+strcharinfo(0)+" to Amatasu.";
+		mes "Ok.";
+		delitem 1010,1;
+		delitem 7053,5;
+		set NINJ_Q,3;
+		close2;
+		warp "amatsu.gat",113,127;
+		end;
+	case 3:
+		mes @npcname$;
+		mes "Hmmm I wonder what happened";
+		mes "you haven't seen him yet";
+		mes "why are you here?";
+		next;
+		mes @npcname$;
+		mes "If you want";
+		mes "I'll take you back to Amatsu.";
+		next;
+		if(select("No thanks.:Sure.") != 2){
+			mes @npcname$;
+			mes "Mm, ok then.";
+			mes "The decision is yours to make.";
+			close;
+		}
+		mes @npcname$;
+		mes "Ok. Then I'll take you to Amatsu.";
+		close2;
+		warp "amatsu.gat",113,127;
+		end;
+	case 4:
+		mes @npcname$;
+		mes "Haha, the kid seems to order you";
+		mes "to do lots of bothersome chores.";
+		mes "Work hard, all of these tasks";
+		mes "will help you become a Ninja.";
+		close;
+	}
 }
 }

+ 96 - 31
npc/jobs/novice/novice.txt

@@ -132,6 +132,8 @@ new_zone01.gat,53,114,4	script	Shion	727,{
 			mes "I feel so bad.";
 			mes "I feel so bad.";
 			set NEW_MES_FLAG0,2;
 			set NEW_MES_FLAG0,2;
 			close;
 			close;
+		default:
+			end;
 		}
 		}
 	case 1:	mes "[Shion]";
 	case 1:	mes "[Shion]";
 		mes "Huh...?";
 		mes "Huh...?";
@@ -327,6 +329,8 @@ L_loop:
 		mes "I understand.";
 		mes "I understand.";
 		mes "Please, take your time.";
 		mes "Please, take your time.";
 		close;
 		close;
+	default:
+		end;
 	}
 	}
 	goto L_loop;
 	goto L_loop;
 	
 	
@@ -417,6 +421,8 @@ new_zone02.gat,99,105,4	script	Interfaces Instructor	751,{
 			end;
 			end;
 		case 3:	emotion e_swt2;
 		case 3:	emotion e_swt2;
 			close;
 			close;
+		default:
+			end;
 		}
 		}
 	}
 	}
 	if (!(NEW_MES_FLAG2)) {
 	if (!(NEW_MES_FLAG2)) {
@@ -450,7 +456,7 @@ new_zone02.gat,99,105,4	script	Interfaces Instructor	751,{
 				warp "new_zone02.gat",28,178;
 				warp "new_zone02.gat",28,178;
 				end;
 				end;
 			}
 			}
-		case 3:	emotion e_swt2;
+		default: emotion e_swt2;
 			close;
 			close;
 		}
 		}
 	}
 	}
@@ -486,7 +492,7 @@ new_zone02.gat,99,105,4	script	Interfaces Instructor	751,{
 				warp "new_zone02.gat",28,178;
 				warp "new_zone02.gat",28,178;
 				end;
 				end;
 			}
 			}
-		case 3:	emotion e_swt2;
+		default:emotion e_swt2;
 			close;
 			close;
 		}
 		}
 	}
 	}
@@ -535,6 +541,8 @@ new_zone02.gat,99,105,4	script	Interfaces Instructor	751,{
 		mes "I hope that you are blessed wherever you go.";
 		mes "I hope that you are blessed wherever you go.";
 		mes "Good luck.";
 		mes "Good luck.";
 		close;
 		close;
+	default:
+		end;
 	}
 	}
 }
 }
 
 
@@ -623,6 +631,8 @@ new_zone02.gat,83,111,4	script	Skill Instructor	753,{
 			close;
 			close;
 		case 2:	goto L_battle;
 		case 2:	goto L_battle;
 		case 3:	emotion e_omg;
 		case 3:	emotion e_omg;
+		default:
+			end;
 		}
 		}
 		close;
 		close;
 	}
 	}
@@ -644,6 +654,8 @@ new_zone02.gat,83,111,4	script	Skill Instructor	753,{
 			close;
 			close;
 		case 2:	goto L_battle;
 		case 2:	goto L_battle;
 		case 3:	emotion e_omg;
 		case 3:	emotion e_omg;
+		default:
+			end;
 		}
 		}
 		close;
 		close;
 	}
 	}
@@ -666,6 +678,8 @@ new_zone02.gat,83,111,4	script	Skill Instructor	753,{
 			break;
 			break;
 		case 2:	goto L_battle;
 		case 2:	goto L_battle;
 		case 3:	emotion e_omg;
 		case 3:	emotion e_omg;
+		default:
+			end;
 		}
 		}
 		close;
 		close;
 	}
 	}
@@ -720,6 +734,8 @@ new_zone02.gat,83,111,4	script	Skill Instructor	753,{
 		mes "Why don't you hurry up to meet";
 		mes "Why don't you hurry up to meet";
 		mes "her?";
 		mes "her?";
 		close;
 		close;
+	default:
+		end;
 	}
 	}
 	end;
 	end;
 L_battle:
 L_battle:
@@ -993,6 +1009,7 @@ new_zone02.gat,118,108,4	script	Kafra Employee	94,{
 				warp "new_zone02.gat",28,178;
 				warp "new_zone02.gat",28,178;
 				end;
 				end;
 			}
 			}
+			if(@menu > 6 || @menu == 0) end;
 			set @menu,@menu-1;
 			set @menu,@menu-1;
 		} else {
 		} else {
 			menu "Prontera",-,"Morroc",-,"Payon",-,"Alberta",-,"Geffen",-;
 			menu "Prontera",-,"Morroc",-,"Payon",-,"Alberta",-,"Geffen",-;
@@ -1047,8 +1064,11 @@ new_zone02.gat,118,108,4	script	Kafra Employee	94,{
 			savepoint "geffen.gat",118,37;
 			savepoint "geffen.gat",118,37;
 			warp "geffen.gat",121,65;
 			warp "geffen.gat",121,65;
 			end;
 			end;
+		default:
+			end;
 		}
 		}
 	} else {
 	} else {
+		if(@menu > 2) end;
 		mes "[Kafra Employee]";
 		mes "[Kafra Employee]";
 		mes "Let me introduce you";
 		mes "Let me introduce you";
 		mes "to the Kafra Services.";
 		mes "to the Kafra Services.";
@@ -1139,6 +1159,8 @@ L_loop:
 			mes "I hope you are satisfied with my";
 			mes "I hope you are satisfied with my";
 			mes "explanation about the Kafra corporation.";
 			mes "explanation about the Kafra corporation.";
 			close;
 			close;
+		default:
+			end;
 		}
 		}
 	goto L_loop;
 	goto L_loop;
 	}
 	}
@@ -1319,6 +1341,8 @@ L_loop:
 	case 6:	mes "[Edwin]";
 	case 6:	mes "[Edwin]";
 		mes "Feel free to ask me anytime.";
 		mes "Feel free to ask me anytime.";
 		close;
 		close;
+	default:
+		end;
 	}
 	}
 	goto L_loop;
 	goto L_loop;
 }
 }
@@ -1563,6 +1587,8 @@ L_loop:
 		mes "I hope my class was helpful to you.";
 		mes "I hope my class was helpful to you.";
 		mes "I really hope so.";
 		mes "I really hope so.";
 		close;
 		close;
+	default:
+		end;
 	}
 	}
 	goto L_loop;
 	goto L_loop;
 }
 }
@@ -1869,6 +1895,9 @@ L_loop1:
 			next;
 			next;
 			mes "[Pitch Judas]";
 			mes "[Pitch Judas]";
 			mes "Do you wish to learn about a different subject?";
 			mes "Do you wish to learn about a different subject?";
+			break;
+		default:
+			end;
 		}
 		}
 		if ( @menu != 5 ) goto L_loop1;
 		if ( @menu != 5 ) goto L_loop1;
 		break;
 		break;
@@ -2101,6 +2130,8 @@ new_zone02.gat,17,182,6	script	Helper#2	84,{
 			case 4:	mes "[Elmeen]";
 			case 4:	mes "[Elmeen]";
 				mes "Feel free to ask me if you have any questions.";
 				mes "Feel free to ask me if you have any questions.";
 				close;
 				close;
+			default:
+				end;
 			}
 			}
 			goto L_loop;
 			goto L_loop;
 		} else {
 		} else {
@@ -2124,6 +2155,8 @@ L_loop1:
 		break;
 		break;
 	case 5:	callsub L_equip;
 	case 5:	callsub L_equip;
 		close;
 		close;
+	default:
+		end;
 	}
 	}
 	goto L_loop1;
 	goto L_loop1;
 	end;
 	end;
@@ -2595,6 +2628,8 @@ L_loop:
 		mes "Hanson is waitinging for you now,";
 		mes "Hanson is waitinging for you now,";
 		mes "good luck out there.";
 		mes "good luck out there.";
 		close;
 		close;
+	default:
+		end;
 	}
 	}
 	set NEW_MES_FLAG6,1;
 	set NEW_MES_FLAG6,1;
 	goto L_loop;
 	goto L_loop;
@@ -2709,6 +2744,7 @@ L_cancel:
 		}
 		}
 		end;
 		end;
 	}
 	}
+	if(@menu > 2 || @menu < 1) end;
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "Excellent choice! You're";
 	mes "Excellent choice! You're";
 	mes "You're supposed to take every";
 	mes "You're supposed to take every";
@@ -2742,32 +2778,38 @@ L_cancel:
 	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
 	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
 		set NOV_3_THIEF,NOV_3_THIEF+1;break;
 		set NOV_3_THIEF,NOV_3_THIEF+1;break;
 	case 3:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 	case 3:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
-	case 4:	set NOV_3_THIEF,NOV_3_THIEF+1;
+	case 4:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
+	default: end;
 	}
 	}
 	switch ( select("Change","Conserve") ) {
 	switch ( select("Change","Conserve") ) {
 	case 1:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
 	case 1:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	case 2:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;
+	case 2:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
+	default: end;
 	}
 	}
 	switch ( select("Consumer","Seller","Producer") ) {
 	switch ( select("Consumer","Seller","Producer") ) {
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
 		set NOV_3_THIEF,NOV_3_THIEF+1;
 		set NOV_3_THIEF,NOV_3_THIEF+1;
 		set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 		set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 3:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
+	case 3:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
+	default: end;
 	}
 	}
 	switch ( select("Celebrity","Prudence") ) {
 	switch ( select("Celebrity","Prudence") ) {
 	case 1:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
 	case 1:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
-	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;
+	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
+	default: end;
 	}
 	}
 	switch ( select("Theory","Experience") ) {
 	switch ( select("Theory","Experience") ) {
 	case 1:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
 	case 1:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
+	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
+	default: end;
 	}
 	}
 	switch ( select("The past","The reality","The future") ) {
 	switch ( select("The past","The reality","The future") ) {
 	case 1:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
 	case 1:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
 	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;
 	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;
 		set NOV_3_THIEF,NOV_3_THIEF+1;break;
 		set NOV_3_THIEF,NOV_3_THIEF+1;break;
-	case 3: set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
+	case 3: set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "Please answer with 'yes' or 'no' to";
 	mes "Please answer with 'yes' or 'no' to";
@@ -2779,7 +2821,8 @@ L_cancel:
 	switch ( select("Yes.","No") ) {
 	switch ( select("Yes.","No") ) {
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
 	case 2:	set NOV_3_THIEF,NOV_3_THIEF+1;
 	case 2:	set NOV_3_THIEF,NOV_3_THIEF+1;
-		set NOV_3_MERCHANT,NOV_3_MERCHANT+1;
+		set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "You are often upset to see someone";
 	mes "You are often upset to see someone";
@@ -2787,7 +2830,8 @@ L_cancel:
 	next;
 	next;
 	switch ( select("Yes","No") ) {
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 2:set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;
+	case 2:set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "You don't mind exploring dangerous";
 	mes "You don't mind exploring dangerous";
@@ -2795,14 +2839,16 @@ L_cancel:
 	next;
 	next;
 	switch ( select("Yes","No") ) {
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
-	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
+	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "You are a leader-type person.";
 	mes "You are a leader-type person.";
 	next;
 	next;
 	switch ( select("Yes","No") ) {
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
-	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;
+	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "While exploring a dungeon, you";
 	mes "While exploring a dungeon, you";
@@ -2818,7 +2864,8 @@ L_cancel:
 	next;
 	next;
 	switch ( select("Yes","No") ) {
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
 	case 1:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
-	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
+	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "You often see things that don't";
 	mes "You often see things that don't";
@@ -2826,7 +2873,8 @@ L_cancel:
 	next;
 	next;
 	switch ( select("Yes","No") ) {
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 	case 1:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
-	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
+	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "You feel you can fly";
 	mes "You feel you can fly";
@@ -2834,14 +2882,16 @@ L_cancel:
 	next;
 	next;
 	switch ( select("Yes","No") ) {
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 	case 1:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
-	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
+	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "Money talks. I can buy even human being if I want.";
 	mes "Money talks. I can buy even human being if I want.";
 	next;
 	next;
 	switch ( select("Yes","No") ) {
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;
+	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "Now, let me give you some different";
 	mes "Now, let me give you some different";
@@ -2860,7 +2910,8 @@ L_cancel:
 	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 		set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 		set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 	case 3:	set NOV_3_ARCHER,NOV_3_ARCHER+1;
 	case 3:	set NOV_3_ARCHER,NOV_3_ARCHER+1;
-		set NOV_3_MERCHANT,NOV_3_MERCHANT+1;
+		set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "During window shopping, you found a";
 	mes "During window shopping, you found a";
@@ -2873,7 +2924,8 @@ L_cancel:
 	switch ( select("Think about if you need it.","Check the price.","Buy it without thinking twice...!") ) {
 	switch ( select("Think about if you need it.","Check the price.","Buy it without thinking twice...!") ) {
 	case 1:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
 	case 1:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
 	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 3:	set NOV_3_THIEF,NOV_3_THIEF+1;
+	case 3:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "You (____Fill in blank___) to compete";
 	mes "You (____Fill in blank___) to compete";
@@ -2883,7 +2935,8 @@ L_cancel:
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 2:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
 	case 2:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
 	case 3:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;
 	case 3:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;
-		set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
+		set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "You're responsible for a task that";
 	mes "You're responsible for a task that";
@@ -2898,7 +2951,8 @@ L_cancel:
 	next;
 	next;
 	switch ( select("Handle it by myself even if it's hard.","Ask friends to help.") ) {
 	switch ( select("Handle it by myself even if it's hard.","Ask friends to help.") ) {
 	case 1:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
 	case 1:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;
+	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "You happened to find a girl who";
 	mes "You happened to find a girl who";
@@ -2911,7 +2965,8 @@ L_cancel:
 		set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
 		set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
 	case 3:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 	case 3:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 		set NOV_3_THIEF,NOV_3_THIEF+1;
 		set NOV_3_THIEF,NOV_3_THIEF+1;
-		set NOV_3_MERCHAN,NOV_3_MERCHAN+1;	
+		set NOV_3_MERCHAN,NOV_3_MERCHAN+1;break;
+	default: end;	
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "You happened to pick up";
 	mes "You happened to pick up";
@@ -2922,7 +2977,8 @@ L_cancel:
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 2:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 	case 2:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 	case 3:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 3:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 4:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
+	case 4:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "You happened to slip your tongue in";
 	mes "You happened to slip your tongue in";
@@ -2933,7 +2989,8 @@ L_cancel:
 	case 1:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
 	case 1:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
 	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
 	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
 	case 3:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
 	case 3:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	case 4:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;
+	case 4:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	switch (Sex) {
 	switch (Sex) {
@@ -2953,7 +3010,8 @@ L_cancel:
 	switch ( select("Buy the item for her/him.","Say 'no'.","Promise to buy it next time.") ) {
 	switch ( select("Buy the item for her/him.","Say 'no'.","Promise to buy it next time.") ) {
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
 	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 3:	set NOV_3_THIEF,NOV_3_THIEF+1;
+	case 3:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
+	default: end;
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";
 	mes "Ok!! That's all for the test.";
 	mes "Ok!! That's all for the test.";
@@ -3116,7 +3174,8 @@ L_loop2:
 			getitem 1504,1;
 			getitem 1504,1;
 			break;
 			break;
 		case 5:	mes "1 Battle Axe";
 		case 5:	mes "1 Battle Axe";
-			getitem 1351,1;
+			getitem 1351,1;break;
+		default: end;
 		}
 		}
 		if( @JOB_NUMBER_CHK == 5 ){
 		if( @JOB_NUMBER_CHK == 5 ){
 			mes "^0000304 Free Tickets for Kafra Storage";
 			mes "^0000304 Free Tickets for Kafra Storage";
@@ -3196,7 +3255,8 @@ L_loop2:
 			set @JOB_NAME$,"Archer";
 			set @JOB_NAME$,"Archer";
 			break;
 			break;
 		case 5:	set @JOB_NUMBER_CHK,4;
 		case 5:	set @JOB_NUMBER_CHK,4;
-			set @JOB_NAME$,"Acolyte";
+			set @JOB_NAME$,"Acolyte";break;
+		default: end;
 		}
 		}
 		break;
 		break;
 	case 1:	switch( select("Swordsman","Mage","Merchant","Thief","Acolyte") ) {
 	case 1:	switch( select("Swordsman","Mage","Merchant","Thief","Acolyte") ) {
@@ -3213,7 +3273,8 @@ L_loop2:
 			set @JOB_NAME$,"Thief";
 			set @JOB_NAME$,"Thief";
 			break;
 			break;
 		case 5:	set @JOB_NUMBER_CHK,4;
 		case 5:	set @JOB_NUMBER_CHK,4;
-			set @JOB_NAME$,"Acolyte";
+			set @JOB_NAME$,"Acolyte";break;
+		default: end;
 		}
 		}
 		break;
 		break;
 	case 2:	switch( select("Swordsman","Mage","Merchant","Archer","Acolyte") ) {
 	case 2:	switch( select("Swordsman","Mage","Merchant","Archer","Acolyte") ) {
@@ -3230,7 +3291,8 @@ L_loop2:
 			set @JOB_NAME$,"Archer";
 			set @JOB_NAME$,"Archer";
 			break;
 			break;
 		case 5:	set @JOB_NUMBER_CHK,4;
 		case 5:	set @JOB_NUMBER_CHK,4;
-			set @JOB_NAME$,"Acolyte";
+			set @JOB_NAME$,"Acolyte";break;
+		default: end;
 		}
 		}
 		break;
 		break;
 	case 3:	switch( select("Swordsman","Merchant","Thief","Archer","Acolyte") ) {
 	case 3:	switch( select("Swordsman","Merchant","Thief","Archer","Acolyte") ) {
@@ -3247,7 +3309,8 @@ L_loop2:
 			set @JOB_NAME$,"Archer";
 			set @JOB_NAME$,"Archer";
 			break;
 			break;
 		case 5:	set @JOB_NUMBER_CHK,4;
 		case 5:	set @JOB_NUMBER_CHK,4;
-			set @JOB_NAME$,"Acolyte";
+			set @JOB_NAME$,"Acolyte";break;
+		default: end;
 		}
 		}
 		break;
 		break;
 	case 4:	switch( select("Swordsman","Mage","Merchant","Thief","Archer") ) {
 	case 4:	switch( select("Swordsman","Mage","Merchant","Thief","Archer") ) {
@@ -3264,7 +3327,8 @@ L_loop2:
 			set @JOB_NAME$,"Thief";
 			set @JOB_NAME$,"Thief";
 			break;
 			break;
 		case 5:	set @JOB_NUMBER_CHK,1;
 		case 5:	set @JOB_NUMBER_CHK,1;
-			set @JOB_NAME$,"Archer";
+			set @JOB_NAME$,"Archer";break;
+		default: end;
 		}
 		}
 		break;
 		break;
 	case 5:	switch( select("Swordsman","Mage","Thief","Archer","Acolyte") ) {
 	case 5:	switch( select("Swordsman","Mage","Thief","Archer","Acolyte") ) {
@@ -3281,7 +3345,8 @@ L_loop2:
 			set @JOB_NAME$,"Archer";
 			set @JOB_NAME$,"Archer";
 			break;
 			break;
 		case 5:	set @JOB_NUMBER_CHK,4;
 		case 5:	set @JOB_NUMBER_CHK,4;
-			set @JOB_NAME$,"Acolyte";
+			set @JOB_NAME$,"Acolyte";break;
+		default: end;
 		}
 		}
 	}
 	}
 	mes "[Hanson]";
 	mes "[Hanson]";

+ 3 - 1
npc/quests/Lvl4_weapon_quest.txt

@@ -150,7 +150,9 @@ L4_0_1:
 			mes "By the way, don't you want to know how evil the city of the dead will be?";
 			mes "By the way, don't you want to know how evil the city of the dead will be?";
 			mes "I do since that city influences so much of this village";
 			mes "I do since that city influences so much of this village";
 			mes "with it's mysterious power, you know.";
 			mes "with it's mysterious power, you know.";
-			break;			
+			break;
+		default:
+			end;			
 	}	
 	}	
 	close;
 	close;
 	
 	

+ 9 - 2
npc/quests/quests_ein.txt

@@ -213,6 +213,8 @@ ein_in01.gat,231,163,1	script	Sick Old Man	849,6,6,{
 				mes "you'll figure something out.";
 				mes "you'll figure something out.";
 				set Shinokas_Quest,7;
 				set Shinokas_Quest,7;
 				close;
 				close;
+			default:
+				end;
 			}
 			}
 		}
 		}
 	}
 	}
@@ -341,6 +343,8 @@ ein_in01.gat,231,163,1	script	Sick Old Man	849,6,6,{
 			if(@shinqst2)set @shinqst2,0;
 			if(@shinqst2)set @shinqst2,0;
 			next;
 			next;
 			break;
 			break;
+		default:
+			end;
 		}
 		}
 	}
 	}
 	
 	
@@ -590,11 +594,14 @@ einbroch.gat,51,52,1	script	lab_warp	45,2,2{
 			mes "the security system";
 			mes "the security system";
 			mes "will initiate lockout.";
 			mes "will initiate lockout.";
 			close;
 			close;
+		case 255:
 		case 3: //cancel
 		case 3: //cancel
 			mes "[Security System]";
 			mes "[Security System]";
 			mes "You have canceled";
 			mes "You have canceled";
 			mes "the ID security check.";
 			mes "the ID security check.";
 			close;
 			close;
+		default:
+			end;
 	}
 	}
 	//ID check:
 	//ID check:
 	mes "[Security System]";
 	mes "[Security System]";
@@ -763,7 +770,7 @@ ein_in01.gat,254,35,1	script	Scientist	749,{
 	mes "..............";
 	mes "..............";
 	mes "*Grumble grumble*";
 	mes "*Grumble grumble*";
 	next;
 	next;
-	if(select("What's wrong?:Catch you later.")==2){
+	if(select("What's wrong?:Catch you later.")!=1){
 		 mes "[Scientist]";
 		 mes "[Scientist]";
 		 mes "Right.";
 		 mes "Right.";
 		 mes "Yeah.";
 		 mes "Yeah.";
@@ -942,7 +949,7 @@ L_Apples:
 	mes "Hahaha! Th-thank you~";
 	mes "Hahaha! Th-thank you~";
 	mes "^111111*Hic-hic-hiccup!*^000000";
 	mes "^111111*Hic-hic-hiccup!*^000000";
 	next;
 	next;
-	if(select("So what was that about Ymir's Heart?:Hehe, you're welcome.")==2){
+	if(select("So what was that about Ymir's Heart?:Hehe, you're welcome.")!=1){
 		 mes "[Drunken Man]";
 		 mes "[Drunken Man]";
 		 mes "Hahahaha!";
 		 mes "Hahahaha!";
 		 mes "You're great!";
 		 mes "You're great!";

+ 7 - 0
npc/quests/quests_umbala.txt

@@ -695,6 +695,8 @@ um_in.gat,44,71,2	script	Utan Tribe Shaman	782,{
 					set .@gain,992;
 					set .@gain,992;
 				}
 				}
 				break;
 				break;
+			default:
+				end;
 		}
 		}
 		if(.@need == 0) {
 		if(.@need == 0) {
 			next;
 			next;
@@ -833,6 +835,8 @@ um_in.gat,44,71,2	script	Utan Tribe Shaman	782,{
 					set .@gain,992;
 					set .@gain,992;
 				}
 				}
 				break;
 				break;
+			default:
+				end;
 		}
 		}
 		next;
 		next;
 		if(.@need == 0) {
 		if(.@need == 0) {
@@ -912,10 +916,13 @@ um_in.gat,44,71,2	script	Utan Tribe Shaman	782,{
 		mes "good use.";
 		mes "good use.";
 		close;
 		close;
 	case 3:
 	case 3:
+	case 255:
 		mes "[Putsuchiritan]";
 		mes "[Putsuchiritan]";
 		mes "If you don't wish my help at the moment,";
 		mes "If you don't wish my help at the moment,";
 		mes "that's fine.  When you do, please come";
 		mes "that's fine.  When you do, please come";
 		mes "by again.";
 		mes "by again.";
 		close;
 		close;
 	}
 	}
+	default:
+		end;
 }
 }

+ 5 - 1
npc/sample/monster_controller.cpp

@@ -136,11 +136,13 @@ L_MainMenu:
 			mes "[Monster Info]";
 			mes "[Monster Info]";
 			display_info .@tmp;
 			display_info .@tmp;
 			next;
 			next;
-            goto L_MainMenu;
+            		goto L_MainMenu;
 			break;
 			break;
 		case 4: // Actions
 		case 4: // Actions
 			goto L_AttackMenu;
 			goto L_AttackMenu;
 			break;
 			break;
+		default:
+			end;
 	}
 	}
 
 
 L_AttackMenu:
 L_AttackMenu:
@@ -193,6 +195,8 @@ L_AttackMenu:
 		case 9:
 		case 9:
 			next;
 			next;
 			goto L_MainMenu;
 			goto L_MainMenu;
+		default:
+			end;
 	}
 	}
 	goto L_AttackMenu;
 	goto L_AttackMenu;
 }
 }