Browse Source

- Removed security check since source level patch is applied. Reverted select(), created prompt().

modified   Changelog-Trunk.txt
modified   npc/airports/airships.txt
modified   npc/cities/amatsu.txt
modified   npc/cities/gonryun.txt
modified   npc/cities/hugel.txt
modified   npc/cities/lighthalzen.txt
modified   npc/cities/niflheim.txt
modified   npc/cities/valkyrie.txt
modified   npc/custom/eAAC_Scripts/disguiser.txt
modified   npc/custom/eAAC_Scripts/quest_warper.txt
modified   npc/custom/jobs/jobmaster.txt
modified   npc/events/idul_fitri.txt
modified   npc/jobs/1-1e/gunslinger.txt
modified   npc/jobs/1-1e/ninja.txt
modified   npc/jobs/novice/novice.txt
modified   npc/merchants/kunai_maker.txt
modified   npc/merchants/novice_exchange.txt
modified   npc/merchants/refine.txt
modified   npc/other/comodo_gambling.txt
modified   npc/other/dts_warper.txt
modified   npc/other/marriage.txt
modified   npc/other/powernpc.txt
modified   npc/quests/Lvl4_weapon_quest.txt
modified   npc/quests/gunslinger_quests.txt
modified   npc/quests/quests_ein.txt
modified   npc/quests/quests_umbala.txt
modified   npc/sample/monster_controller.cpp
modified   src/map/script.c



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

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/11/19
+	* Removed security check since source level patch is applied. 
+	* Reverted select(), created prompt().
 	* Hack protection from packet monkeys in clif_parse_NpcSelectMenu. [Lance]
 	* Added 'cancel' button parsing in buildin_select menu system. Now scripts will continue
 	  to load if 'cancel' is pressed and 255 will be returned. [Lance]

+ 1 - 5
npc/airports/airships.txt

@@ -856,7 +856,6 @@ function	script	applegamble	{
 	mes "in a friendly game of Dice?";
 	next;
 	switch(select("Play Dice Game:Learn Dice Game Rules:Cancel")){
-	case 255:
 	case 3:
 		mes "["+getarg(0)+"]";
 		mes "I'm up for a game of";
@@ -938,7 +937,7 @@ L_Input:
 	mes "betting ^FF0000"+@amount+"^000000 Apples.";
 	mes "Is that right?";
 	next;
-	if(select("Yes:No")==2 || @menu == 255){
+	if(select("Yes:No")==2){
 		mes "["+getarg(0)+"]";
 		mes "Mm, made a mistake?";
 		mes "Alright, please enter the";
@@ -1044,9 +1043,6 @@ L_Input:
 			mes "luck next time.";
 		}
 		close;
-	} else {
-		if(@menu == 255)
-			end;
 	}
 	mes "^0000FF*Rolling and rumbling*";
 	set @player3,rand(1,6);

+ 0 - 3
npc/cities/amatsu.txt

@@ -823,9 +823,6 @@ s_Got:
 			set @stoneStr$,"Rough Wind";
 		break;
 
-		case 255:
-			end;
-
 		}
 	if(countitem(@stoneID) < 8)goto s_NEnough;
 	mes "[Laspuchin Gregory]";

+ 0 - 3
npc/cities/gonryun.txt

@@ -239,7 +239,6 @@ gonryun.gat,237,226,3	script	YunKyoHam#gn	776,{
 			mes "My curse shall be on his head!!!";
 			close;
 		}
-		if(@menu == 255) end;
 		mes "[YunKyoHam]";
 		mes "ohoh! Thank you!";
 		mes "Take these potions.";
@@ -501,8 +500,6 @@ gonryun.gat,163,60,4	script	Gonryun Guide	780,{
 		mes "Enjoy your trip in";
 		mes "lovely Gonryun!";
 		break;
-	case 255:
-		end;
 	}
 	close;
 }

+ 0 - 2
npc/cities/hugel.txt

@@ -45,8 +45,6 @@ hu_in01.gat,23,311,4	script	Johsh	898,{
 		mes @npcname$;
 		mes "Aww~~ you miss it";
 		close;
-	case 255:
-		end;
 	}
 }
 

+ 1 - 1
npc/cities/lighthalzen.txt

@@ -1050,7 +1050,7 @@ lighthalzen.gat,312,234,2	script	Beggar	777,{
 	mes "Would you give me";
 	mes "some money?";
 	next;
-	if(select("Give him some money.:Ignore him.")==2 || @menu == 255){
+	if(select("Give him some money.:Ignore him.")==2){
 		mes "[" + strcharinfo(0) + "]";
 		mes "...";
 		mes "......";

+ 0 - 9
npc/cities/niflheim.txt

@@ -171,21 +171,12 @@ L_book3:
 	if(select("Clover.:Klaatu.:Kleitos.")==2)
 		set @nif_t,@nif_t + 10;
 
-	if(@menu == 255)
-		end;
-
 	if(select("Verit.:Veritas.:Verata.")==3)
 		set @nif_t,@nif_t + 10;
 
-	if(@menu == 255)
-		end;
-
 	if(select("Necktie.:Necklace.:Nero.:^FFFFFFNictu.^000000")==4)
 		set @nif_t,@nif_t + 10;
 
-	if(@menu == 255)
-		end;
-
 	mes "[Ashe Bruce]";
 	if(@nif_t == 30){
 		if(rand(9)){

+ 0 - 1
npc/cities/valkyrie.txt

@@ -45,7 +45,6 @@ yuno_in02.gat,93,207,0	script	Book of Ymir	111,{
 		mes "can be realized in the Hall of Honor.";
 		next;
 		switch(select("Stop reading.:Continue reading.")) {
-		case 255:
 		case 1:
 			mes "[Book of Ymir]";
 			mes ". . . . .";

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

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

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

@@ -449,8 +449,6 @@ 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]);
 
-	if(@TWMenu > 25 || @TWMenu < 1) end;
-
 	if (@Tmenuref[@TWMenu-1] == 57005) goto L_end; // 57005='dead' in hex
 
 	if(Zeny<@pTprice[@Tmenuref[@TWMenu-1]]) callsub L_Short_on_zeny,0;
@@ -471,8 +469,6 @@ 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]);
 
-	if(@TWMenu > 35 || @TWMenu < 1) end;
-
 	if (@Dmenuref[@DWMenu-1] == 57005) goto L_end; // 57005='dead' in hex
 	set @DwarpMenu, (@Dmenuref[@DWMenu-1]);
 	callfunc "QWS_DLarray";
@@ -484,8 +480,6 @@ L_dungeon:
 // 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]);
 
-	if(@TWMenu > 18 || @TWMenu < 1) end;
-
 	if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_end; // 57005='dead' in hex
 
 	set @Darrayref, @DWLmenuref[@DWLMenu-1];
@@ -532,7 +526,7 @@ PHeal:
 	if(getarg(1) == 1) mes ""+@SpPrice+" Zeny for "+@Sp+" skill points";
 	set @total, @HpPrice+@SpPrice;
 	mes "for a total of "+@total+" zeny";
-	if (select("Heal me","Let me see the choices again")!=1) goto L_heal_Part;
+	if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part;
 	
 	if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE;
 	if(getarg(1) == 1)set @SpPrice, (MaxSp-Sp)*$QW_HP_S_PRICE;
@@ -551,13 +545,13 @@ Zeny_Short_Both:
 	mes "[Warpra]";
 	mes "choose another option, you can afford both.";
 	mes "I can heal as much as you can afford too.";
-	if (select("OK","Exit") != 1) goto L_end;
+	if (select("OK","Exit") == 2) goto L_end;
 	goto PHeal;
 
 Zeny_short_HP:
 	mes "[Warpra]";
 	mes "do you want me to partly heal your HP ?";
-	if (select("Yes","No") != 1) goto L_end;
+	if (select("Yes","No") == 2) goto L_end;
 	set @Hp, Zeny/$QW_HP_H_PRICE;
 	set @HpPrice, @Hp*$QW_HP_H_PRICE;
 	if (@Hp == 1) mes "your not worth the effort";
@@ -570,7 +564,7 @@ Zeny_short_HP:
 Zeny_short_SP:
 	mes "[Warpra]";
 	mes "do you want me to partly heal your SP ?";
-	if (select("Yes","No") != 1) goto L_end;
+	if (select("Yes","No") == 2) goto L_end;
 	set @Sp, Zeny/$QW_HP_S_PRICE;
 	set @SpPrice, @Sp*$QW_HP_S_PRICE;
 	if (@Sp == 1) mes "your not worth the effort";

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

@@ -78,17 +78,10 @@ prontera.gat,153,193,6	script	Job Master	123,{
 							if(Class == Job_Novice_High) goto L_noReq;
 							set @target_job, @menu + 15;
 							break;
-						case 1:
-						case 2:
-						case 3:
-						case 4:
-						case 5:
-						case 6:						
+						default:
 							set @target_job, @menu;
 							if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
 							break;
-						default:
-							end;
 					}
 			}
 			mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";
@@ -156,8 +149,6 @@ prontera.gat,153,193,6	script	Job Master	123,{
 					}
 					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];
-					if(@menu < 1 || @menu > 2)
-						end;
 					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) + "?";

+ 0 - 1
npc/events/idul_fitri.txt

@@ -67,7 +67,6 @@ prontera.gat,146,92,3	script	Cellerb	58,{
 		emotion e_thx;
 		close;
 
-	case 255:
 	case 2:	
 		mes @npcname$;
 		mes "Oh well, maybe you will participate in tommorow's quest.";

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

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

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

@@ -1,725 +1,721 @@
-//===== 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;
-	}
+//===== 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;
+	}
 }

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

@@ -132,8 +132,6 @@ new_zone01.gat,53,114,4	script	Shion	727,{
 			mes "I feel so bad.";
 			set NEW_MES_FLAG0,2;
 			close;
-		default:
-			end;
 		}
 	case 1:	mes "[Shion]";
 		mes "Huh...?";
@@ -329,8 +327,6 @@ L_loop:
 		mes "I understand.";
 		mes "Please, take your time.";
 		close;
-	default:
-		end;
 	}
 	goto L_loop;
 	
@@ -421,8 +417,6 @@ new_zone02.gat,99,105,4	script	Interfaces Instructor	751,{
 			end;
 		case 3:	emotion e_swt2;
 			close;
-		default:
-			end;
 		}
 	}
 	if (!(NEW_MES_FLAG2)) {
@@ -456,8 +450,7 @@ new_zone02.gat,99,105,4	script	Interfaces Instructor	751,{
 				warp "new_zone02.gat",28,178;
 				end;
 			}
-		default:
-			emotion e_swt2;
+		case 3:	emotion e_swt2;
 			close;
 		}
 	}
@@ -493,8 +486,7 @@ new_zone02.gat,99,105,4	script	Interfaces Instructor	751,{
 				warp "new_zone02.gat",28,178;
 				end;
 			}
-		default:
-			emotion e_swt2;
+		case 3:	emotion e_swt2;
 			close;
 		}
 	}
@@ -543,8 +535,6 @@ new_zone02.gat,99,105,4	script	Interfaces Instructor	751,{
 		mes "I hope that you are blessed wherever you go.";
 		mes "Good luck.";
 		close;
-	default:
-		end;
 	}
 }
 
@@ -633,8 +623,6 @@ new_zone02.gat,83,111,4	script	Skill Instructor	753,{
 			close;
 		case 2:	goto L_battle;
 		case 3:	emotion e_omg;
-		default:
-			end;
 		}
 		close;
 	}
@@ -656,8 +644,6 @@ new_zone02.gat,83,111,4	script	Skill Instructor	753,{
 			close;
 		case 2:	goto L_battle;
 		case 3:	emotion e_omg;
-		default:
-			end;
 		}
 		close;
 	}
@@ -680,8 +666,6 @@ new_zone02.gat,83,111,4	script	Skill Instructor	753,{
 			break;
 		case 2:	goto L_battle;
 		case 3:	emotion e_omg;
-		default:
-			end;
 		}
 		close;
 	}
@@ -736,8 +720,6 @@ new_zone02.gat,83,111,4	script	Skill Instructor	753,{
 		mes "Why don't you hurry up to meet";
 		mes "her?";
 		close;
-	default:
-		end;
 	}
 	end;
 L_battle:
@@ -1011,7 +993,6 @@ new_zone02.gat,118,108,4	script	Kafra Employee	94,{
 				warp "new_zone02.gat",28,178;
 				end;
 			}
-			if(@menu > 6 || @menu == 0) end;
 			set @menu,@menu-1;
 		} else {
 			menu "Prontera",-,"Morroc",-,"Payon",-,"Alberta",-,"Geffen",-;
@@ -1066,11 +1047,8 @@ new_zone02.gat,118,108,4	script	Kafra Employee	94,{
 			savepoint "geffen.gat",118,37;
 			warp "geffen.gat",121,65;
 			end;
-		default:
-			end;
 		}
 	} else {
-		if(@menu > 2) end;
 		mes "[Kafra Employee]";
 		mes "Let me introduce you";
 		mes "to the Kafra Services.";
@@ -1161,8 +1139,6 @@ L_loop:
 			mes "I hope you are satisfied with my";
 			mes "explanation about the Kafra corporation.";
 			close;
-		default:
-			end;
 		}
 	goto L_loop;
 	}
@@ -1343,8 +1319,6 @@ L_loop:
 	case 6:	mes "[Edwin]";
 		mes "Feel free to ask me anytime.";
 		close;
-	default:
-		end;
 	}
 	goto L_loop;
 }
@@ -1589,8 +1563,6 @@ L_loop:
 		mes "I hope my class was helpful to you.";
 		mes "I really hope so.";
 		close;
-	default:
-		end;
 	}
 	goto L_loop;
 }
@@ -1897,9 +1869,6 @@ L_loop1:
 			next;
 			mes "[Pitch Judas]";
 			mes "Do you wish to learn about a different subject?";
-			break;
-		default:
-			end;
 		}
 		if ( @menu != 5 ) goto L_loop1;
 		break;
@@ -2132,8 +2101,6 @@ new_zone02.gat,17,182,6	script	Helper#2	84,{
 			case 4:	mes "[Elmeen]";
 				mes "Feel free to ask me if you have any questions.";
 				close;
-			default:
-				end;
 			}
 			goto L_loop;
 		} else {
@@ -2157,8 +2124,6 @@ L_loop1:
 		break;
 	case 5:	callsub L_equip;
 		close;
-	default:
-		end;
 	}
 	goto L_loop1;
 	end;
@@ -2630,8 +2595,6 @@ L_loop:
 		mes "Hanson is waitinging for you now,";
 		mes "good luck out there.";
 		close;
-	default:
-		end;
 	}
 	set NEW_MES_FLAG6,1;
 	goto L_loop;
@@ -2746,7 +2709,6 @@ L_cancel:
 		}
 		end;
 	}
-	if(@menu > 2 || @menu < 1) end;
 	mes "[Hanson]";
 	mes "Excellent choice! You're";
 	mes "You're supposed to take every";
@@ -2780,38 +2742,32 @@ L_cancel:
 	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
 		set NOV_3_THIEF,NOV_3_THIEF+1;break;
 	case 3:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
-	case 4:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
-	default: end;
+	case 4:	set NOV_3_THIEF,NOV_3_THIEF+1;
 	}
 	switch ( select("Change","Conserve") ) {
 	case 1:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	case 2:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
-	default: end;
+	case 2:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;
 	}
 	switch ( select("Consumer","Seller","Producer") ) {
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
 		set NOV_3_THIEF,NOV_3_THIEF+1;
 		set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 3:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	default: end;
+	case 3:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 	}
 	switch ( select("Celebrity","Prudence") ) {
 	case 1:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
-	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
-	default: end;
+	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;
 	}
 	switch ( select("Theory","Experience") ) {
 	case 1:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
-	default: end;
+	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
 	}
 	switch ( select("The past","The reality","The future") ) {
 	case 1:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
 	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;
 		set NOV_3_THIEF,NOV_3_THIEF+1;break;
-	case 3: set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	default: end;
+	case 3: set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 	}
 	mes "[Hanson]";
 	mes "Please answer with 'yes' or 'no' to";
@@ -2823,8 +2779,7 @@ L_cancel:
 	switch ( select("Yes.","No") ) {
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
 	case 2:	set NOV_3_THIEF,NOV_3_THIEF+1;
-		set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	default: end;
+		set NOV_3_MERCHANT,NOV_3_MERCHANT+1;
 	}
 	mes "[Hanson]";
 	mes "You are often upset to see someone";
@@ -2832,8 +2787,7 @@ L_cancel:
 	next;
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 2:set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
-	default: end;
+	case 2:set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;
 	}
 	mes "[Hanson]";
 	mes "You don't mind exploring dangerous";
@@ -2841,16 +2795,14 @@ L_cancel:
 	next;
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
-	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	default: end;
+	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 	}
 	mes "[Hanson]";
 	mes "You are a leader-type person.";
 	next;
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
-	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
-	default: end;
+	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;
 	}
 	mes "[Hanson]";
 	mes "While exploring a dungeon, you";
@@ -2866,8 +2818,7 @@ L_cancel:
 	next;
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
-	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
-	default: end;
+	case 2:	set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
 	}
 	mes "[Hanson]";
 	mes "You often see things that don't";
@@ -2875,8 +2826,7 @@ L_cancel:
 	next;
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
-	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	default: end;
+	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 	}
 	mes "[Hanson]";
 	mes "You feel you can fly";
@@ -2884,16 +2834,14 @@ L_cancel:
 	next;
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
-	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	default: end;
+	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 	}
 	mes "[Hanson]";
 	mes "Money talks. I can buy even human being if I want.";
 	next;
 	switch ( select("Yes","No") ) {
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
-	default: end;
+	case 2:	set NOV_3_ARCHER,NOV_3_ARCHER+1;
 	}
 	mes "[Hanson]";
 	mes "Now, let me give you some different";
@@ -2912,8 +2860,7 @@ L_cancel:
 	case 2:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 		set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
 	case 3:	set NOV_3_ARCHER,NOV_3_ARCHER+1;
-		set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	default: end;
+		set NOV_3_MERCHANT,NOV_3_MERCHANT+1;
 	}
 	mes "[Hanson]";
 	mes "During window shopping, you found a";
@@ -2926,8 +2873,7 @@ L_cancel:
 	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 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 3:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
-	default: end;
+	case 3:	set NOV_3_THIEF,NOV_3_THIEF+1;
 	}
 	mes "[Hanson]";
 	mes "You (____Fill in blank___) to compete";
@@ -2937,8 +2883,7 @@ L_cancel:
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
 	case 2:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
 	case 3:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;
-		set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;break;
-	default: end;
+		set NOV_3_SWORDMAN,NOV_3_SWORDMAN+1;
 	}
 	mes "[Hanson]";
 	mes "You're responsible for a task that";
@@ -2953,8 +2898,7 @@ L_cancel:
 	next;
 	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 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	default: end;
+	case 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;
 	}
 	mes "[Hanson]";
 	mes "You happened to find a girl who";
@@ -2967,8 +2911,7 @@ L_cancel:
 		set NOV_3_ARCHER,NOV_3_ARCHER+1;break;
 	case 3:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 		set NOV_3_THIEF,NOV_3_THIEF+1;
-		set NOV_3_MERCHAN,NOV_3_MERCHAN+1;break;
-	default: end;	
+		set NOV_3_MERCHAN,NOV_3_MERCHAN+1;	
 	}
 	mes "[Hanson]";
 	mes "You happened to pick up";
@@ -2979,8 +2922,7 @@ L_cancel:
 	case 1:	set NOV_3_MERCHANT,NOV_3_MERCHANT+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 4:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;break;
-	default: end;
+	case 4:	set NOV_3_MAGICIAN,NOV_3_MAGICIAN+1;
 	}
 	mes "[Hanson]";
 	mes "You happened to slip your tongue in";
@@ -2991,8 +2933,7 @@ L_cancel:
 	case 1:	set NOV_3_THIEF,NOV_3_THIEF+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 4:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;break;
-	default: end;
+	case 4:	set NOV_3_ACOLYTE,NOV_3_ACOLYTE+1;
 	}
 	mes "[Hanson]";
 	switch (Sex) {
@@ -3012,8 +2953,7 @@ L_cancel:
 	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 2:	set NOV_3_MERCHANT,NOV_3_MERCHANT+1;break;
-	case 3:	set NOV_3_THIEF,NOV_3_THIEF+1;break;
-	default: end;
+	case 3:	set NOV_3_THIEF,NOV_3_THIEF+1;
 	}
 	mes "[Hanson]";
 	mes "Ok!! That's all for the test.";
@@ -3176,8 +3116,7 @@ L_loop2:
 			getitem 1504,1;
 			break;
 		case 5:	mes "1 Battle Axe";
-			getitem 1351,1;break;
-		default: end;
+			getitem 1351,1;
 		}
 		if( @JOB_NUMBER_CHK == 5 ){
 			mes "^0000304 Free Tickets for Kafra Storage";
@@ -3257,8 +3196,7 @@ L_loop2:
 			set @JOB_NAME$,"Archer";
 			break;
 		case 5:	set @JOB_NUMBER_CHK,4;
-			set @JOB_NAME$,"Acolyte";break;
-		default: end;
+			set @JOB_NAME$,"Acolyte";
 		}
 		break;
 	case 1:	switch( select("Swordsman","Mage","Merchant","Thief","Acolyte") ) {
@@ -3275,8 +3213,7 @@ L_loop2:
 			set @JOB_NAME$,"Thief";
 			break;
 		case 5:	set @JOB_NUMBER_CHK,4;
-			set @JOB_NAME$,"Acolyte";break;
-		default: end;
+			set @JOB_NAME$,"Acolyte";
 		}
 		break;
 	case 2:	switch( select("Swordsman","Mage","Merchant","Archer","Acolyte") ) {
@@ -3293,8 +3230,7 @@ L_loop2:
 			set @JOB_NAME$,"Archer";
 			break;
 		case 5:	set @JOB_NUMBER_CHK,4;
-			set @JOB_NAME$,"Acolyte";break;
-		default: end;
+			set @JOB_NAME$,"Acolyte";
 		}
 		break;
 	case 3:	switch( select("Swordsman","Merchant","Thief","Archer","Acolyte") ) {
@@ -3311,8 +3247,7 @@ L_loop2:
 			set @JOB_NAME$,"Archer";
 			break;
 		case 5:	set @JOB_NUMBER_CHK,4;
-			set @JOB_NAME$,"Acolyte";break;
-		default: end;
+			set @JOB_NAME$,"Acolyte";
 		}
 		break;
 	case 4:	switch( select("Swordsman","Mage","Merchant","Thief","Archer") ) {
@@ -3329,8 +3264,7 @@ L_loop2:
 			set @JOB_NAME$,"Thief";
 			break;
 		case 5:	set @JOB_NUMBER_CHK,1;
-			set @JOB_NAME$,"Archer";break;
-		default: end;
+			set @JOB_NAME$,"Archer";
 		}
 		break;
 	case 5:	switch( select("Swordsman","Mage","Thief","Archer","Acolyte") ) {
@@ -3347,8 +3281,7 @@ L_loop2:
 			set @JOB_NAME$,"Archer";
 			break;
 		case 5:	set @JOB_NUMBER_CHK,4;
-			set @JOB_NAME$,"Acolyte";break;
-		default: end;
+			set @JOB_NAME$,"Acolyte";
 		}
 	}
 	mes "[Hanson]";

+ 0 - 2
npc/merchants/kunai_maker.txt

@@ -38,7 +38,6 @@ switch(select("10 Poison Kunais:10 Icycle Kunais:10 Rough Wind Kunais:10 Black S
 		callfunc "Kunai_Trade",13254,1,7521,2,13258;
 		goto L_Bye;
 	case 6:
-	case 255:
 		goto L_Bye;
 	}
 L_Bye:
@@ -91,7 +90,6 @@ function	script	Kunai_Trade	{
 			next;
 			return;
 		case 2:
-		case 255:
 			return;
 		}
 L_Return:

+ 0 - 2
npc/merchants/novice_exchange.txt

@@ -134,8 +134,6 @@ function	script	F_NMerch	{
 		mes "Hah, no problem.";
 		mes "Bah!";
 		close;
-	case 255:
-		end;
 	}
 }
 

+ 1 - 2
npc/merchants/refine.txt

@@ -798,13 +798,12 @@ function	script	repairmain	{
 		getitemname(getbrokenid(3)),getitemname(getbrokenid(4)),getitemname(getbrokenid(5)),
 		getitemname(getbrokenid(6)),getitemname(getbrokenid(7)),getitemname(getbrokenid(8)),
 		getitemname(getbrokenid(9)),getitemname(getbrokenid(10)));
-	if(@choice == 255) end;
 	mes "[" + @name$ + "]";
 	mes "You're gonna repair " + getitemname(getbrokenid(@choice)) + ".";
 	mes "To repair this, I need " + @repairprice + " Zeny.";
 	mes "Continue?";
 	next;
-	if(select("Yes","No") == 2 || @menu == 255) {
+	if(select("Yes","No") == 2) {
 		mes "[" + @name$ + "]";
 		mes "Ok, but don't expect to be using that...";
 		close;

+ 0 - 2
npc/other/comodo_gambling.txt

@@ -124,8 +124,6 @@ comodo.gat,219,160,3	script	Kachua	91,{
 		set @item,512;
 		switch( select( "Weapon", "Armor", "Garment", "Helmet", "Shoes", "Shield" ) )
 		{
-			case 255:
-				end;
 										case 1: // Weapons
 											set @gamble,rand(1,1000);
 											if ((@gamble > 920) && (@gamble < 931))

+ 7 - 3
npc/other/dts_warper.txt

@@ -824,13 +824,17 @@ function	script	F_DTS_Warp	{
 	next;
 	switch(select(@dtswarp$[0],@dtswarp$[1],@dtswarp$[2],@dtswarp$[3])){
 		case 1:
+			set @num, 0;
+			break;
 		case 2:
+			set @num, 1;
+			break;
 		case 3:
+			set @num, 2;
+			break;
 		case 4:
-			set @num, @menu - 1;
+			set @num, 3;
 			break;
-		default:
-			end;
 	}
 	Lwarp:
 		if (@dtswarp$[@num] == "Cancel") goto Lcancel;

+ 1 - 9
npc/other/marriage.txt

@@ -215,8 +215,6 @@ function SF_AcceptGroom {
 		mes "["+@name$+"]";
 		mes "After your groom approves, you will be given your rings, the ceremony will begin and you will be officially married.";
 		close;
-	default:
-		end;
 	}
 }
 
@@ -250,8 +248,6 @@ function SF_AcceptBride {
 		mes "["+@name$+"]";
 		mes "After your bride approves, you will be given your rings, the ceremony will begin and you will be officially married.";
 		close;
-	default:
-		end;
 	}
 }
 
@@ -482,8 +478,6 @@ prt_church.gat,106,99,3	script	Sister Mary	67,{
 		case 4: //Register
 			SF_Register();
 			break;
-		default:
-			end;
 		}
 	} while (@menu > 1);
 	end;
@@ -879,8 +873,6 @@ prt_church.gat,94,99,4	script	Sister Lisa	79,{
 			initnpctimer;
 			mes "Very well, get your partner to confirm, and I will collect the fee for filing the divorce then.";
 			close;
-		default:
-			end;
 		}
 	} while (@menu > 1);
 end;
@@ -902,7 +894,7 @@ function SF_InProgress {
 	mes $@divorcer$+" has asked to divorce you. If you accept, and have the fee of "+$@wed_divorce_fee+"z at hand, I will proceed to divorce you two.";
 	mes "So, should I proceed with the divorce?";
 	next;
-	if (select("I don't want to divorce....", "Yes, we have agreed to this.") !=2) {
+	if (select("I don't want to divorce....","Yes, we have agreed to this.")!=2) {
 		mes "["+@name$+"]";
 		mes "I hope you can work things out.";
 		emotion e_pat;

+ 1 - 7
npc/other/powernpc.txt

@@ -110,7 +110,6 @@ gonryun.gat,180,118,4	script	Iron man#gnp	85,{
 			mes "something new. Wanna try??";
 			break;
 		case 3:
-		case 255:
 			mes "[Songmoodoo]";
 			mes "I guess not..";
 			mes "....";
@@ -165,7 +164,7 @@ gon_test.gat,50,14,4	script	Administrator#gnp	780,{
 	mes "Remember, you have to pay";
 	mes "500z to fight.";
 	next;
-	if (select("Yes, let me fight!:One moment, please.") != 1) {
+	if (select("Yes, let me fight!:One moment, please.") == 2) {
 		mes "[Administrator]";
 		mes "Ok, see you later.";
 		close;
@@ -200,15 +199,11 @@ gon_test.gat,42,89,4	script	Summoner#gnp	774,{
 	mes "Which monster would you recall?";
 	next;
 	set @gnpGroup,select("Group 1:Group 2:Group 3:Group 4:Group 5:Group 6:Group 7:Group 8:Group 9:Group 10:Group 11");
-	if(@gnpGroup > 11 || @gnpGroup < 1)
-		end;
 	set @gnpGroupMob$,.gnpMobsName$[(@gnpGroup-1)*6];
 	for (set @i,1; @i < 6; set @i, @i+1) {
 		set @gnpGroupMob$, @gnpGroupMob$ + ":" + .gnpMobsName$[(@gnpGroup-1)*6 + @i];
 	}
 	set @gnpMob,select(@gnpGroupMob$);
-	if(@gnpMob > 6 || @gnpMob < 1)
-		end;
 	mes "[SongYeunWoo]";
 	mes "Let the fight begin!";
 	close2;
@@ -310,7 +305,6 @@ gon_test.gat,46,14,3	script	Guide of field of fight#gnp	770,{
 		warp "gonryun.gat",177,112;
 		end;
 	case 5:
-	case 255:
 		mes "[SongHeeYeon]";
 		mes "........";
 		mes "Good bye..";

+ 1 - 3
npc/quests/Lvl4_weapon_quest.txt

@@ -150,9 +150,7 @@ L4_0_1:
 			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 "with it's mysterious power, you know.";
-			break;
-		default:
-			end;			
+			break;			
 	}	
 	close;
 	

+ 0 - 11
npc/quests/gunslinger_quests.txt

@@ -95,9 +95,6 @@ que_ng.gat,182,85,3	script	Mr.Garrison	109,{
 			mes "will never part from his";
 			mes "favorite gun, heh.";
 			close;
-
-		default:
-			end;
 	}
 
 L_Slot:
@@ -165,8 +162,6 @@ L_Slot:
 			mes "Okay, come back when you";
 			mes "changed your mind.";
 			close;
-		default:
-			end;
 	}
 
 L_Already:
@@ -252,8 +247,6 @@ que_ng.gat,187,163,3	script	Ingrid	744,{
 			mes "Probably a good choice.";
 			mes "It's really dangerous.";
 			close;
-		default:
-			end;
 	}
 }
 
@@ -329,8 +322,6 @@ que_ng.gat,185,180,3	script	Vanessa	726,{
 			mes @npcname$;
 			mes "Oh well, your loss.";
 			close;
-		default:
-			end;
 	}
 }
 
@@ -410,7 +401,5 @@ que_ng.gat,149,178,5	script	N.A	744,{
 			mes @npcname$;
 			mes "Oh well, your loss.";
 			close;
-		default:
-			end;
 	}
 }

+ 2 - 9
npc/quests/quests_ein.txt

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

+ 0 - 7
npc/quests/quests_umbala.txt

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

+ 1 - 5
npc/sample/monster_controller.cpp

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

+ 48 - 1
src/map/script.c

@@ -3512,6 +3512,7 @@ int buildin_checkequipedcard(struct script_state *st);
 int buildin_globalmes(struct script_state *st);
 int buildin_jump_zero(struct script_state *st);
 int buildin_select(struct script_state *st);
+int buildin_prompt(struct script_state *st);
 int buildin_getmapmobs(struct script_state *st); //jA addition end
 int buildin_unequip(struct script_state *st); // unequip [Spectre]
 int buildin_getstrlen(struct script_state *st); //strlen [valaris]
@@ -3846,6 +3847,7 @@ struct script_function buildin_func[] = {
 	{buildin_checkequipedcard,"checkequipedcard","i"},
 	{buildin_jump_zero,"jump_zero","ii"}, //for future jA script compatibility
 	{buildin_select,"select","*"}, //for future jA script compatibility
+	{buildin_prompt,"prompt","*"},
 	{buildin_globalmes,"globalmes","s*"},
 	{buildin_getmapmobs,"getmapmobs","s"}, //end jA addition
 	{buildin_unequip,"unequip","i"}, // unequip command [Spectre]
@@ -10308,7 +10310,52 @@ int buildin_select(struct script_state *st)
 		sd->max_menu = max;
 		clif_scriptmenu(script_rid2sd(st),st->oid,buf);
 		aFree(buf);
-	} /*else if(sd->npc_menu==0xff){	// Cancel will be parsed since this is select() [Lance]
+	} else if(sd->npc_menu==0xff){
+	  sd->state.menu_or_input=0;
+	  st->state=END;
+	  } else {
+		//Skip empty menu entries which weren't displayed on the client (Skotlex)
+		for(i=st->start+2;i< (st->start+2+sd->npc_menu) && sd->npc_menu < (st->end-st->start-2);i++) {
+			conv_str(st,& (st->stack->stack_data[i])); // we should convert variables to strings before access it [jA1983] [EoE]
+			if((int)strlen(st->stack->stack_data[i].u.str) < 1)
+				sd->npc_menu++; //Empty selection which wasn't displayed on the client.
+		}
+		pc_setreg(sd,add_str((unsigned char *) "@menu"),sd->npc_menu);
+		sd->state.menu_or_input=0;
+		push_val(st->stack,C_INT,sd->npc_menu);
+	  }
+	  return 0;
+}
+
+int buildin_prompt(struct script_state *st)
+{
+	char *buf;
+	int len,i,max = 1;
+	struct map_session_data *sd;
+
+	sd=script_rid2sd(st);
+
+	if(sd->state.menu_or_input==0){
+		st->state=RERUNLINE;
+		sd->state.menu_or_input=1;
+		for(i=st->start+2,len=16;i<st->end;i++){
+			conv_str(st,& (st->stack->stack_data[i]));
+			len+=(int)strlen(st->stack->stack_data[i].u.str)+1;
+		}
+		buf=(char *)aMalloc((len+1)*sizeof(char));
+		buf[0]=0;
+		for(i=st->start+2,len=0;i<st->end;i++){
+			strcat(buf,st->stack->stack_data[i].u.str);
+			strcat(buf,":");
+		}
+		for(i=0; (unsigned int)i < strlen(buf); i++){
+			if(buf[i] == ':')
+				max++;
+		}
+		sd->max_menu = max;
+		clif_scriptmenu(script_rid2sd(st),st->oid,buf);
+		aFree(buf);
+	} /*else if(sd->npc_menu==0xff){
 	  sd->state.menu_or_input=0;
 	  st->state=END;
 	  }*/ else {