summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt2
-rw-r--r--npc/airports/airships.txt6
-rw-r--r--npc/cities/amatsu.txt3
-rw-r--r--npc/cities/gonryun.txt3
-rw-r--r--npc/cities/hugel.txt2
-rw-r--r--npc/cities/lighthalzen.txt2
-rw-r--r--npc/cities/niflheim.txt9
-rw-r--r--npc/cities/valkyrie.txt1
-rw-r--r--npc/custom/eAAC_Scripts/disguiser.txt3
-rw-r--r--npc/custom/eAAC_Scripts/quest_warper.txt14
-rw-r--r--npc/custom/jobs/jobmaster.txt11
-rw-r--r--npc/events/idul_fitri.txt1
-rw-r--r--npc/jobs/1-1e/gunslinger.txt4
-rw-r--r--npc/jobs/1-1e/ninja.txt1444
-rw-r--r--npc/jobs/novice/novice.txt129
-rw-r--r--npc/merchants/kunai_maker.txt2
-rw-r--r--npc/merchants/novice_exchange.txt2
-rw-r--r--npc/merchants/refine.txt3
-rw-r--r--npc/other/comodo_gambling.txt2
-rw-r--r--npc/other/dts_warper.txt10
-rw-r--r--npc/other/marriage.txt10
-rw-r--r--npc/other/powernpc.txt8
-rw-r--r--npc/quests/Lvl4_weapon_quest.txt4
-rw-r--r--npc/quests/gunslinger_quests.txt11
-rw-r--r--npc/quests/quests_ein.txt11
-rw-r--r--npc/quests/quests_umbala.txt7
-rw-r--r--npc/sample/monster_controller.cpp6
-rw-r--r--src/map/script.c49
28 files changed, 822 insertions, 937 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index e19ae7a3d..ee863d33a 100644
--- a/Changelog-Trunk.txt
+++ b/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]
diff --git a/npc/airports/airships.txt b/npc/airports/airships.txt
index b6e43c727..ab5826fac 100644
--- a/npc/airports/airships.txt
+++ b/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);
diff --git a/npc/cities/amatsu.txt b/npc/cities/amatsu.txt
index e54c56e10..a4542edc3 100644
--- a/npc/cities/amatsu.txt
+++ b/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]";
diff --git a/npc/cities/gonryun.txt b/npc/cities/gonryun.txt
index bc92d920f..1549721d3 100644
--- a/npc/cities/gonryun.txt
+++ b/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;
}
diff --git a/npc/cities/hugel.txt b/npc/cities/hugel.txt
index 7d9a9e984..61c6c5bb0 100644
--- a/npc/cities/hugel.txt
+++ b/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;
}
}
diff --git a/npc/cities/lighthalzen.txt b/npc/cities/lighthalzen.txt
index 49fc9f60b..c03c2c2d0 100644
--- a/npc/cities/lighthalzen.txt
+++ b/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 "......";
diff --git a/npc/cities/niflheim.txt b/npc/cities/niflheim.txt
index 99a4e5efd..6c20f0141 100644
--- a/npc/cities/niflheim.txt
+++ b/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)){
diff --git a/npc/cities/valkyrie.txt b/npc/cities/valkyrie.txt
index 502cd46d5..1aea9c3aa 100644
--- a/npc/cities/valkyrie.txt
+++ b/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 ". . . . .";
diff --git a/npc/custom/eAAC_Scripts/disguiser.txt b/npc/custom/eAAC_Scripts/disguiser.txt
index ce5978d95..218de0196 100644
--- a/npc/custom/eAAC_Scripts/disguiser.txt
+++ b/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;
diff --git a/npc/custom/eAAC_Scripts/quest_warper.txt b/npc/custom/eAAC_Scripts/quest_warper.txt
index 47f6c94c0..24b61f0de 100644
--- a/npc/custom/eAAC_Scripts/quest_warper.txt
+++ b/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";
diff --git a/npc/custom/jobs/jobmaster.txt b/npc/custom/jobs/jobmaster.txt
index e4c72d3f5..c929d4894 100644
--- a/npc/custom/jobs/jobmaster.txt
+++ b/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) + "?";
diff --git a/npc/events/idul_fitri.txt b/npc/events/idul_fitri.txt
index 7414c19a9..b5b62df5d 100644
--- a/npc/events/idul_fitri.txt
+++ b/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.";
diff --git a/npc/jobs/1-1e/gunslinger.txt b/npc/jobs/1-1e/gunslinger.txt
index 7e06a416e..47da54866 100644
--- a/npc/jobs/1-1e/gunslinger.txt
+++ b/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$;
diff --git a/npc/jobs/1-1e/ninja.txt b/npc/jobs/1-1e/ninja.txt
index ccd51081d..f2e9f2be3 100644
--- a/npc/jobs/1-1e/ninja.txt
+++ b/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;
+ }
} \ No newline at end of file
diff --git a/npc/jobs/novice/novice.txt b/npc/jobs/novice/novice.txt
index a48ac87d9..90267adfc 100644
--- a/npc/jobs/novice/novice.txt
+++ b/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]";
diff --git a/npc/merchants/kunai_maker.txt b/npc/merchants/kunai_maker.txt
index 3f2eae55c..f836befdf 100644
--- a/npc/merchants/kunai_maker.txt
+++ b/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:
diff --git a/npc/merchants/novice_exchange.txt b/npc/merchants/novice_exchange.txt
index aed369124..6c2dda72b 100644
--- a/npc/merchants/novice_exchange.txt
+++ b/npc/merchants/novice_exchange.txt
@@ -134,8 +134,6 @@ function script F_NMerch {
mes "Hah, no problem.";
mes "Bah!";
close;
- case 255:
- end;
}
}
diff --git a/npc/merchants/refine.txt b/npc/merchants/refine.txt
index 5f3922984..1ea743dc3 100644
--- a/npc/merchants/refine.txt
+++ b/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;
diff --git a/npc/other/comodo_gambling.txt b/npc/other/comodo_gambling.txt
index f9cbd557b..9412810e1 100644
--- a/npc/other/comodo_gambling.txt
+++ b/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))
diff --git a/npc/other/dts_warper.txt b/npc/other/dts_warper.txt
index 31d38bba2..f7f71d9c2 100644
--- a/npc/other/dts_warper.txt
+++ b/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;
diff --git a/npc/other/marriage.txt b/npc/other/marriage.txt
index 35571a1ae..200968bb2 100644
--- a/npc/other/marriage.txt
+++ b/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;
diff --git a/npc/other/powernpc.txt b/npc/other/powernpc.txt
index 5785d1201..94539780e 100644
--- a/npc/other/powernpc.txt
+++ b/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..";
diff --git a/npc/quests/Lvl4_weapon_quest.txt b/npc/quests/Lvl4_weapon_quest.txt
index d99868e1e..b3183c526 100644
--- a/npc/quests/Lvl4_weapon_quest.txt
+++ b/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;
diff --git a/npc/quests/gunslinger_quests.txt b/npc/quests/gunslinger_quests.txt
index ef769dc87..cb2823a88 100644
--- a/npc/quests/gunslinger_quests.txt
+++ b/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;
}
} \ No newline at end of file
diff --git a/npc/quests/quests_ein.txt b/npc/quests/quests_ein.txt
index 75eedb1e1..7d0421bc7 100644
--- a/npc/quests/quests_ein.txt
+++ b/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!";
diff --git a/npc/quests/quests_umbala.txt b/npc/quests/quests_umbala.txt
index eb783eaa7..b4a539b81 100644
--- a/npc/quests/quests_umbala.txt
+++ b/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;
}
} \ No newline at end of file
diff --git a/npc/sample/monster_controller.cpp b/npc/sample/monster_controller.cpp
index fa75175e0..76ba7ade3 100644
--- a/npc/sample/monster_controller.cpp
+++ b/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;
} \ No newline at end of file
diff --git a/src/map/script.c b/src/map/script.c
index 27ea71cbb..ebe4c490c 100644
--- a/src/map/script.c
+++ b/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 {