summaryrefslogtreecommitdiff
path: root/npc/re/jobs
diff options
context:
space:
mode:
Diffstat (limited to 'npc/re/jobs')
-rw-r--r--npc/re/jobs/1-1/acolyte.txt18
-rw-r--r--npc/re/jobs/1-1/archer.txt12
-rw-r--r--npc/re/jobs/1-1/mage.txt14
-rw-r--r--npc/re/jobs/1-1/merchant.txt14
-rw-r--r--npc/re/jobs/1-1/swordman.txt14
-rw-r--r--npc/re/jobs/1-1/thief.txt16
-rw-r--r--npc/re/jobs/3-1/archbishop.txt493
-rw-r--r--npc/re/jobs/3-1/guillotine_cross.txt186
-rw-r--r--npc/re/jobs/3-1/mechanic.txt34
-rw-r--r--npc/re/jobs/3-1/ranger.txt76
-rw-r--r--npc/re/jobs/3-1/rune_knight.txt83
-rw-r--r--npc/re/jobs/3-1/warlock.txt45
-rw-r--r--npc/re/jobs/3-2/genetic.txt56
-rw-r--r--npc/re/jobs/3-2/minstrel.txt102
-rw-r--r--npc/re/jobs/3-2/royal_guard.txt46
-rw-r--r--npc/re/jobs/3-2/shadow_chaser.txt56
-rw-r--r--npc/re/jobs/3-2/sorcerer.txt22
-rw-r--r--npc/re/jobs/3-2/sura.txt46
-rw-r--r--npc/re/jobs/3-2/wanderer.txt62
-rw-r--r--npc/re/jobs/novice/novice.txt3814
-rw-r--r--npc/re/jobs/novice/supernovice_ex.txt16
-rw-r--r--npc/re/jobs/repair.txt313
22 files changed, 3607 insertions, 1931 deletions
diff --git a/npc/re/jobs/1-1/acolyte.txt b/npc/re/jobs/1-1/acolyte.txt
index 4ab8837d3..07c37a07c 100644
--- a/npc/re/jobs/1-1/acolyte.txt
+++ b/npc/re/jobs/1-1/acolyte.txt
@@ -1,18 +1,18 @@
//===== Hercules Script ======================================
//= Renewal Acolyte Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.3
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Acolyte Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added back the npcs used for the priest quest.
//= 1.2 Added Baby Job compatibility [Streusel]
//= 1.3 Rewrote bits [Euphy]
-//============================================================
-prt_church,184,41,4 script Cleric#aco 60,{
+//============================================================
+prt_church,184,41,4 script Cleric#aco 1_M_PASTOR,{
if (Upper == 1) {
if (ADVJOB == Job_High_Priest || ADVJOB == Job_Champion) {
if (Class == Job_Novice_High) {
@@ -110,7 +110,7 @@ prt_church,184,41,4 script Cleric#aco 60,{
}
}
-prt_fild03,365,255,2 script Ascetic#aco 89,{
+prt_fild03,365,255,2 script Ascetic#aco 4_M_ORIENT02,{
mes "[Father Rubalkabara]";
if (BaseJob == Job_Novice) {
if (job_acolyte_q == 6) {
@@ -187,7 +187,7 @@ prt_fild03,365,255,2 script Ascetic#aco 89,{
}
}
-moc_fild07,41,355,4 script Ascetic#2aco 95,{
+moc_fild07,41,355,4 script Ascetic#2aco 4_F_SISTER,{
mes "[Mother Mathilda]";
if (BaseJob == Job_Novice) {
if (job_acolyte_q == 7) {
@@ -256,7 +256,7 @@ moc_fild07,41,355,4 script Ascetic#2aco 95,{
}
}
-prt_fild00,208,218,6 script Ascetic#3aco 98,{
+prt_fild00,208,218,6 script Ascetic#3aco 4W_M_02,{
mes "[Father Yosuke]";
if (BaseJob == Job_Novice) {
if (job_acolyte_q == 8) {
diff --git a/npc/re/jobs/1-1/archer.txt b/npc/re/jobs/1-1/archer.txt
index 8e8bedc5f..71df65889 100644
--- a/npc/re/jobs/1-1/archer.txt
+++ b/npc/re/jobs/1-1/archer.txt
@@ -1,17 +1,17 @@
//===== Hercules Script ======================================
//= Renewal Archer Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Archer Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added Baby Job compatibility [Streusel]
//= 1.2 Rewrote bits [Euphy]
-//============================================================
-payon_in02,64,71,4 script Archer Guildsman#archer 85,{
+//============================================================
+payon_in02,64,71,4 script Archer Guildsman#archer 4_M_03,{
if (Upper == 1) {
if (Class == Job_Novice_High && (ADVJOB == Job_Sniper || ADVJOB == Job_Clown || ADVJOB == Job_Gypsy)) {
mes "[Archer Guildsman]";
diff --git a/npc/re/jobs/1-1/mage.txt b/npc/re/jobs/1-1/mage.txt
index 1fce4269e..e87f89328 100644
--- a/npc/re/jobs/1-1/mage.txt
+++ b/npc/re/jobs/1-1/mage.txt
@@ -1,19 +1,17 @@
//===== Hercules Script ======================================
//= Renewal Mage Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Mage Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added Baby Job compatibility [Streusel]
//= 1.2 Rewrote bits [Euphy]
-//============================================================
-geffen_in,164,124,4 script Mage Guildsman#mage 123,{
+//============================================================
+geffen_in,164,124,4 script Mage Guildsman#mage 2_F_MAGICMASTER,{
if (Upper == 1) {
if (ADVJOB == Job_High_Wizard || ADVJOB == Job_Professor) {
if (Class == Job_Novice_High) {
diff --git a/npc/re/jobs/1-1/merchant.txt b/npc/re/jobs/1-1/merchant.txt
index 58c13ae17..619a2a465 100644
--- a/npc/re/jobs/1-1/merchant.txt
+++ b/npc/re/jobs/1-1/merchant.txt
@@ -1,19 +1,17 @@
//===== Hercules Script ======================================
//= Renewal Merchant Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Merchant Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added Baby Job compatibility [Streusel]
//= 1.2 Rewrote bits [Euphy]
-//============================================================
-alberta_in,53,43,6 script Merchant#mer 86,{
+//============================================================
+alberta_in,53,43,6 script Merchant#mer 4_M_04,{
if (Upper == 1) {
if (Class == Job_Novice_High && (ADVJOB == Job_Whitesmith || ADVJOB == Job_Creator)) {
mes "[Chief Mahnsoo]";
diff --git a/npc/re/jobs/1-1/swordman.txt b/npc/re/jobs/1-1/swordman.txt
index 0d47f0b3a..d8bd67711 100644
--- a/npc/re/jobs/1-1/swordman.txt
+++ b/npc/re/jobs/1-1/swordman.txt
@@ -1,19 +1,17 @@
//===== Hercules Script ======================================
//= Renewal Swordman Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Swordman Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added Baby Job compatibility [Streusel]
//= 1.2 Rewrote bits [Euphy]
-//============================================================
-izlude_in,74,172,4 script Swordman#swd 119,{
+//============================================================
+izlude_in,74,172,4 script Swordman#swd 2_M_SWORDMASTER,{
if (Upper == 1) {
if (Class == Job_Novice_High && (ADVJOB == Job_Lord_Knight || ADVJOB == Job_Paladin)) {
mes "[Swordman]";
diff --git a/npc/re/jobs/1-1/thief.txt b/npc/re/jobs/1-1/thief.txt
index 23b23bd96..c42888a66 100644
--- a/npc/re/jobs/1-1/thief.txt
+++ b/npc/re/jobs/1-1/thief.txt
@@ -1,19 +1,17 @@
//===== Hercules Script ======================================
//= Renewal Thief Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Kisuka
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change to Thief Class
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Kisuka]
//= 1.1 Added Baby Job compatibility [Streusel]
//= 1.2 Rewrote bits [Euphy]
-//============================================================
-moc_prydb1,39,129,2 script Thief Guide#thief 69,{
+//============================================================
+moc_prydb1,39,129,2 script Thief Guide#thief 1_F_04,{
if (Upper == 1) {
if (ADVJOB == Job_Assassin_Cross || ADVJOB == Job_Stalker) {
if (Class == Job_Novice_High) {
@@ -157,7 +155,7 @@ moc_prydb1,39,129,2 script Thief Guide#thief 69,{
close;
}
-moc_prydb1,42,133,2 script Thief Guildsman#thief 118,{
+moc_prydb1,42,133,2 script Thief Guildsman#thief 2_M_THIEFMASTER,{
if(q_job_thief == 1) {
mes "[Thief Guildsman]";
mes "Alright. You must have passed the job interview, huh?";
diff --git a/npc/re/jobs/3-1/archbishop.txt b/npc/re/jobs/3-1/archbishop.txt
index 9a13aa359..26782eb94 100644
--- a/npc/re/jobs/3-1/archbishop.txt
+++ b/npc/re/jobs/3-1/archbishop.txt
@@ -1,10 +1,10 @@
-//===== Hercules Script =======================================
+//===== Hercules Script ======================================
//= Arch Bishop Job Quest
//===== By: ==================================================
//= L0ne_W0lf
//= Credits: Gepard
//===== Current Version: =====================================
-//= 1.7a
+//= 1.9
//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Priest / High Priest -> Arch Bishop.
@@ -20,9 +20,11 @@
//= 1.6 Fixed bugs where players unable to continue the quest. [Joseph]
//= 1.7 Updated script, many bugs fixed. [Euphy]
//= 1.7a Moved warps to separate file. [Euphy]
+//= 1.8 Bug fixes and corrections. [Euphy]
+//= 1.9 Added GM management function. [Euphy]
//============================================================
-prt_church,103,88,3 script Praying Minister#arch 60,{
+prt_church,103,88,3 script Praying Minister#arch 1_M_PASTOR,{
if (BaseJob != Job_Priest) {
if (Class == Job_Arch_Bishop || Class == Job_Arch_Bishop_T || Class == Job_Baby_Bishop) {
mes "[Praying Minister]";
@@ -91,7 +93,7 @@ prt_church,103,88,3 script Praying Minister#arch 60,{
mes "But, I recommend this.";
next;
mes "[Praying Minister]";
- mes "Have you ever heard of a^3131FFHoly Pilgrimage^000000?";
+ mes "Have you ever heard of a ^3131FFHoly Pilgrimage^000000?";
mes "A Holy Pilgrimage means going to a holy place to pray to the God Odin for protection and grace.";
next;
mes "[Praying Minister]";
@@ -160,13 +162,13 @@ prt_church,103,88,3 script Praying Minister#arch 60,{
close;
}
-umbala,137,227,5 script Utan Boy#arch 787,{
+umbala,137,227,5 script Utan Boy#arch 4_M_UMKID,{
mes "[Utan Boy]";
mes "........";
close;
}
-umbala,139,227,3 script Priest#arch 60,{
+umbala,139,227,3 script Priest#arch 1_M_PASTOR,{
if (job_arch == 0) {
mes "[Priest]";
mes "Un...ba... Unba?";
@@ -276,7 +278,7 @@ umbala,139,227,3 script Priest#arch 60,{
mes "And in Asgard, the world of the Gods, there is the Word spring.";
next;
mes "[Priest Dayan]";
- mes "Mimir'’s spring wells with intelligence, myth says that if Odin lets you have his eye that you will gain all of the knowledge within that spring.";
+ mes "Mimir's spring wells with intelligence, myth says that if Odin lets you have his eye that you will gain all of the knowledge within that spring.";
next;
mes "[Priest Dayan]";
mes Sex?"Brother.":"Sister.";
@@ -412,7 +414,7 @@ umbala,139,227,3 script Priest#arch 60,{
close;
}
-yggdrasil01,220,47,0 script #arch_pilgrimage 139,5,5,{
+yggdrasil01,220,47,0 script #arch_pilgrimage HIDDEN_WARP_NPC,5,5,{
OnTouch:
if (job_arch == 2) {
mes "[" + strcharinfo(0) + "]";
@@ -571,7 +573,7 @@ OnTouch:
end;
}
-hu_in01,205,204,7 script Praying Nun#benew 79,{
+hu_in01,205,204,7 script Praying Nun#benew 1_F_PRIEST,{
if (job_arch == 4) {
mes "- There is a nun closing her eyes as she murmurs something which sounds like a prayer. -";
next;
@@ -720,14 +722,14 @@ hu_in01,205,204,7 script Praying Nun#benew 79,{
close;
}
-odin_tem02,282,263,0 script #find_val 139,3,3,{
+odin_tem02,282,263,0 script #find_val HIDDEN_WARP_NPC,3,3,{
OnTouch:
if ((job_arch > 4) && (job_arch < 100))
hideoffnpc "Valkyrie Illusion#arch";
end;
}
-odin_tem02,281,275,3 script Valkyrie Illusion#arch 403,{
+odin_tem02,281,275,3 script Valkyrie Illusion#arch 4_F_VALKYRIE2,{
if ((job_arch > 4) && (job_arch < 100)) {
mes "You can see Valkyrie who has a despairing face.";
next;
@@ -752,7 +754,7 @@ OnInit:
end;
}
-job3_arch01,29,34,3 script Valkyrie#arch 403,{
+job3_arch01,29,34,3 script Valkyrie#arch 4_F_VALKYRIE2,{
if (checkweight(1201,1) == 0 || (MaxWeight - Weight) < 2000) {
mes "- Wait a Sec !! -";
mes "- You are carrying too many items, -";
@@ -774,7 +776,10 @@ job3_arch01,29,34,3 script Valkyrie#arch 403,{
mes "You can't progress without using all your skill points. Please use all of your skill points before progressing~";
close;
}
- if (Class != Job_Arch_Bishop || Class != Job_Arch_Bishop_T || Class != Job_Baby_Bishop) {
+ if (Class != Job_Priest && Class != Job_High_Priest && Class != Job_Baby_Priest) {
+ warp "odin_tem02",282,263;
+ end;
+ } else if (Class != Job_Arch_Bishop && Class != Job_Arch_Bishop_T && Class != Job_Baby_Bishop) {
if (job_arch < 5) {
warp "odin_tem02",282,263;
end;
@@ -951,7 +956,7 @@ job3_arch01,29,34,3 script Valkyrie#arch 403,{
mes "OK. now I'm going to send you there.";
mes "^FF0000When you go there, you have to summon my impersonation with the scroll^000000.";
mes "An impersonation will help when you move or attack as you want through ^FF0000ALT+click^000000.";
- mes "But you have to be careful if an imeprsonation falls down.";
+ mes "But you have to be careful if an impersonation falls down.";
close2;
nude;
if (countitem(2798))
@@ -970,17 +975,17 @@ job3_arch01,29,34,3 script Valkyrie#arch 403,{
end;
OnBc:
set $@archbs,0;
- mapannounce "job3_arch01","Valkyrie: I think someone fell down in the shrine. I can hear the devil's unpleasant laugh.",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch01","Valkyrie: I think someone fell down in the shrine. I can hear the devil's unpleasant laugh.",bc_map,"0xFFCE00";
hideoffnpc "Valkyrie#arch";
end;
}
-job3_arch02,119,49,0 script #arch_1_start 139,6,6,{
+job3_arch02,119,49,0 script #arch_1_start HIDDEN_WARP_NPC,6,6,{
OnTouch:
if (countitem(12381) == 0)
getitem 12381,1; //ValkyrieA_Scroll
- mapannounce "job3_arch02","Whispering of an impersonation: I feel heavy! Set me free!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- hideonnpc "#arch_1_start";
+ mapannounce "job3_arch02","Whispering of an impersonation: I feel heavy! Set me free!",bc_map,"0xFFCE00";
+ disablenpc "#arch_1_start";
end;
}
@@ -988,49 +993,46 @@ OnTouch:
OnTouch:
if (countitem(12381)) {
delitem 12381,1; //ValkyrieA_Scroll
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
- }
- if (getmercinfo(1) == 2037) {
+ // fall through
+ } else if (getmercinfo(1) == 2037) {
+ if (strnpcinfo(0) == "#arch_1_10")
+ viewpoint 1,113,327,1,0xFF9900;
set .@randht, rand(1,10);
if (.@randht < 8)
- mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits! Be careful!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits! Be careful!",bc_map,"0xFFCE00";
else if ((.@randht == 8) || (.@randht == 9))
- mapannounce "job3_arch02","Whispering of an impersonation: They are coming!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: They are coming!",bc_map,"0xFFCE00";
end;
}
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00";
mapwarp "job3_arch02","job3_arch01",29,29;
end;
}
-job3_arch02,112,73,0 duplicate(archbjcq) #arch_1_01 139,5,5
-job3_arch02,94,123,0 duplicate(archbjcq) #arch_1_02 139,5,5
-job3_arch02,93,173,0 duplicate(archbjcq) #arch_1_03 139,5,5
-job3_arch02,114,186,0 duplicate(archbjcq) #arch_1_04 139,5,5
-job3_arch02,134,201,0 duplicate(archbjcq) #arch_1_05 139,5,5
-job3_arch02,154,211,0 duplicate(archbjcq) #arch_1_06 139,5,5
-job3_arch02,175,227,0 duplicate(archbjcq) #arch_1_07 139,5,5
-job3_arch02,201,240,0 duplicate(archbjcq) #arch_1_08 139,5,5
-job3_arch02,223,252,0 duplicate(archbjcq) #arch_1_09 139,5,5
-job3_arch02,255,268,0 duplicate(archbjcq) #arch_1_10 139,5,5
-job3_arch02,269,302,0 duplicate(archbjcq) #arch_1_11 139,5,5
-job3_arch02,245,289,0 duplicate(archbjcq) #arch_1_12 139,5,5
+job3_arch02,112,73,0 duplicate(archbjcq) #arch_1_01 HIDDEN_WARP_NPC,5,5
+job3_arch02,94,123,0 duplicate(archbjcq) #arch_1_02 HIDDEN_WARP_NPC,5,5
+job3_arch02,93,173,0 duplicate(archbjcq) #arch_1_03 HIDDEN_WARP_NPC,5,5
+job3_arch02,114,186,0 duplicate(archbjcq) #arch_1_04 HIDDEN_WARP_NPC,5,5
+job3_arch02,134,201,0 duplicate(archbjcq) #arch_1_05 HIDDEN_WARP_NPC,5,5
+job3_arch02,154,211,0 duplicate(archbjcq) #arch_1_06 HIDDEN_WARP_NPC,5,5
+job3_arch02,175,227,0 duplicate(archbjcq) #arch_1_07 HIDDEN_WARP_NPC,5,5
+job3_arch02,201,240,0 duplicate(archbjcq) #arch_1_08 HIDDEN_WARP_NPC,5,5
+job3_arch02,223,252,0 duplicate(archbjcq) #arch_1_09 HIDDEN_WARP_NPC,5,5
+job3_arch02,255,268,0 duplicate(archbjcq) #arch_1_10 HIDDEN_WARP_NPC,5,5
+job3_arch02,269,302,0 duplicate(archbjcq) #arch_1_11 HIDDEN_WARP_NPC,5,5
+job3_arch02,245,289,0 duplicate(archbjcq) #arch_1_12 HIDDEN_WARP_NPC,5,5
-job3_arch02,203,286,0 script #arch_1_boss 139,5,5,{
+job3_arch02,203,286,0 script #arch_1_boss HIDDEN_WARP_NPC,5,5,{
OnTouch:
if (countitem(12381)) {
delitem 12381,1; //ValkyrieA_Scroll
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
- end;
- }
- if (getmercinfo(1) == 2037) {
- mapannounce "job3_arch02","Valkyrie's Nightmare: An incompetent illusion of Valkyrie came here with the assistance of humans. You wanna have that nightmare?",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
+ // fall through
+ } else if (getmercinfo(1) == 2037) {
+ mapannounce "job3_arch02","Valkyrie's Nightmare: An incompetent illusion of Valkyrie came here with the assistance of humans. You wanna have that nightmare?",bc_map,"0xFF0000";
donpcevent "mob#arch_1::OnKill";
- } else {
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
+ end;
}
+ mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00";
+ mapwarp "job3_arch02","job3_arch01",29,29;
end;
}
@@ -1049,7 +1051,7 @@ OnRed:
end;
}
-job3_arch02,390,389,1 script #arch_val01 844,{
+job3_arch02,390,389,1 script #arch_val01 CLEAR_NPC,{
end;
OnEnable:
areamonster "job3_arch02",111,325,115,329,"Valkyrie's Nightmare",2036,1,"#arch_val01::OnMyMobDead";
@@ -1057,22 +1059,22 @@ OnEnable:
OnMyMobDead:
if (mobcount("job3_arch02","#arch_val01::OnMyMobDead") < 1) {
donpcevent "#arch_redcell::OnGreen";
- mapannounce "job3_arch02","Valkyrie's Nightmare: Your win is only a false image! hahahaha!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Valkyrie's Nightmare: Your win is only a false image! hahahaha!",bc_map,"0xFF0000";
hideoffnpc "Valkyrie#arch_01";
- hideonnpc "#arch_1_start";
- hideonnpc "#arch_1_01";
- hideonnpc "#arch_1_02";
- hideonnpc "#arch_1_03";
- hideonnpc "#arch_1_04";
- hideonnpc "#arch_1_05";
- hideonnpc "#arch_1_06";
- hideonnpc "#arch_1_07";
- hideonnpc "#arch_1_08";
- hideonnpc "#arch_1_09";
- hideonnpc "#arch_1_10";
- hideonnpc "#arch_1_11";
- hideonnpc "#arch_1_12";
- hideonnpc "#arch_1_boss";
+ disablenpc "#arch_1_start";
+ disablenpc "#arch_1_01";
+ disablenpc "#arch_1_02";
+ disablenpc "#arch_1_03";
+ disablenpc "#arch_1_04";
+ disablenpc "#arch_1_05";
+ disablenpc "#arch_1_06";
+ disablenpc "#arch_1_07";
+ disablenpc "#arch_1_08";
+ disablenpc "#arch_1_09";
+ disablenpc "#arch_1_10";
+ disablenpc "#arch_1_11";
+ disablenpc "#arch_1_12";
+ disablenpc "#arch_1_boss";
}
end;
OnKill:
@@ -1080,16 +1082,16 @@ OnKill:
end;
}
-job3_arch02,390,387,1 script #arch_val02 844,{
+job3_arch02,390,387,1 script #arch_val02 CLEAR_NPC,{
end;
OnEnable:
areamonster "job3_arch02",242,44,246,48,"Valkyrie's Nightmare",2036,1,"#arch_val02::OnMyMobDead";
end;
OnMyMobDead:
if (mobcount("job3_arch02","#arch_val02::OnMyMobDead") < 1) {
- mapannounce "job3_arch02","Valkyrie's Nightmare: You are so childish. I invite you to a devil's party. I'll make sure you have a fun!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Valkyrie's Nightmare: You are so childish. I invite you to a devil's party. I'll make sure you have a fun!",bc_map,"0xFF0000";
hideoffnpc "Valkyrie#arch_02";
- hideonnpc "#arch_2_boss";
+ disablenpc "#arch_2_boss";
viewpoint 1,279,234,1,0xFFFF99;
}
end;
@@ -1098,7 +1100,7 @@ OnKill:
end;
}
-job3_arch02,113,327,5 script Valkyrie#arch_01 403,{
+job3_arch02,113,327,5 script Valkyrie#arch_01 4_F_VALKYRIE2,{
if (getmercinfo(1)) {
mes "[Valkyrie]";
mes "If you want to talk with me, you have to ^3131FFcancel all contracts^000000 with any mercenaries you have.";
@@ -1133,7 +1135,7 @@ job3_arch02,113,327,5 script Valkyrie#arch_01 403,{
end;
}
-job3_arch02,244,46,5 script Valkyrie#arch_02 403,{
+job3_arch02,244,46,5 script Valkyrie#arch_02 4_F_VALKYRIE2,{
mes "[Valkyrie Anguhilde]";
mes "Did you find the rest of the pieces?";
next;
@@ -1170,7 +1172,7 @@ job3_arch02,244,46,5 script Valkyrie#arch_02 403,{
end;
}
-job3_arch02,279,234,0 script #arch_end 139,7,7,{
+job3_arch02,279,234,0 script #arch_end HIDDEN_WARP_NPC,7,7,{
end;
OnTouch:
donpcevent "#arch_3_01::OnKill";
@@ -1298,18 +1300,18 @@ OnTouch:
jobchange roclass(eaclass()|EAJL_THIRD);
close;
OnInit:
- hideonnpc "#arch_end";
+ disablenpc "#arch_end";
end;
}
-job3_arch02,281,232,1 script Valkyrie Anguhilde#end 403,{
+job3_arch02,281,232,1 script Valkyrie Anguhilde#end 4_F_VALKYRIE2,{
end;
OnInit:
hideonnpc "Valkyrie Anguhilde#end";
end;
}
-job3_arch02,273,235,5 script Valkyrie of the heavens 811,{
+job3_arch02,273,235,5 script Valkyrie of the heavens 4_F_VALKYRIE,{
if (job_arch == 100) {
mes "[Valkyrie of the heavens]";
mes "Now, go back to your world.";
@@ -1328,11 +1330,11 @@ OnInit:
end;
}
-job3_arch02,132,323,0 script #arch_2_01 139,5,5,{
+job3_arch02,132,323,0 script #arch_2_01 HIDDEN_WARP_NPC,5,5,{
end;
OnTouch:
if (countitem(12382))
- mapannounce "job3_arch02","Whispering of Valkyrie: I see a new ancient scroll!",bc_map; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of Valkyrie: I see a new ancient scroll!",bc_map;
end;
}
@@ -1340,189 +1342,197 @@ OnTouch:
OnTouch:
if (countitem(12382)) {
delitem 12382,1; //ValkyrieB_Scroll
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
- end;
- }
- if (getmercinfo(1) == 2038) {
+ // fall through
+ } else if (getmercinfo(1) == 2038) {
set .@randht, rand(1,10);
if (.@randht < 8)
- mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits. Can you hear? The sound of gathering in crowds.",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: I can feel the devil's spirits. Can you hear? The sound of gathering in crowds.",bc_map,"0xFFCE00";
else if ((.@randht == 8) || (.@randht == 9))
- mapannounce "job3_arch02","Whispering of an impersonation: Combat readiness!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: Combat readiness!",bc_map,"0xFFCE00";
else
- mapannounce "job3_arch02","Whispering of an impersonation: I can't leave you. Die!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: I can't leave you. Die!",bc_map,"0xFFCE00";
end;
}
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00";
mapwarp "job3_arch02","job3_arch01",29,29;
end;
}
-job3_arch02,167,313,0 duplicate(archbjcq2) #arch_2_02 139,5,5
-job3_arch02,127,304,0 duplicate(archbjcq2) #arch_2_03 139,5,5
-job3_arch02,207,279,0 duplicate(archbjcq2) #arch_2_04 139,5,5
-job3_arch02,239,281,0 duplicate(archbjcq2) #arch_2_05 139,5,5
-job3_arch02,269,303,0 duplicate(archbjcq2) #arch_2_06 139,5,5
-job3_arch02,288,283,0 duplicate(archbjcq2) #arch_2_07 139,5,5
-job3_arch02,278,234,0 duplicate(archbjcq2) #arch_2_08 139,5,5
-job3_arch02,234,179,0 duplicate(archbjcq2) #arch_2_09 139,5,5
-job3_arch02,227,169,0 duplicate(archbjcq2) #arch_2_10 139,5,5
-job3_arch02,190,146,0 duplicate(archbjcq2) #arch_2_11 139,5,5
+job3_arch02,167,313,0 duplicate(archbjcq2) #arch_2_02 HIDDEN_WARP_NPC,5,5
+job3_arch02,127,304,0 duplicate(archbjcq2) #arch_2_03 HIDDEN_WARP_NPC,5,5
+job3_arch02,207,279,0 duplicate(archbjcq2) #arch_2_04 HIDDEN_WARP_NPC,5,5
+job3_arch02,239,281,0 duplicate(archbjcq2) #arch_2_05 HIDDEN_WARP_NPC,5,5
+job3_arch02,269,303,0 duplicate(archbjcq2) #arch_2_06 HIDDEN_WARP_NPC,5,5
+job3_arch02,288,283,0 duplicate(archbjcq2) #arch_2_07 HIDDEN_WARP_NPC,5,5
+job3_arch02,278,234,0 duplicate(archbjcq2) #arch_2_08 HIDDEN_WARP_NPC,5,5
+job3_arch02,234,179,0 duplicate(archbjcq2) #arch_2_09 HIDDEN_WARP_NPC,5,5
+job3_arch02,227,169,0 duplicate(archbjcq2) #arch_2_10 HIDDEN_WARP_NPC,5,5
+job3_arch02,190,146,0 duplicate(archbjcq2) #arch_2_11 HIDDEN_WARP_NPC,5,5
-job3_arch02,252,267,0 script #arch_2_12 139,5,5,{
+/*
+// Not in official script.
+job3_arch02,252,267,0 script #arch_2_12 HIDDEN_WARP_NPC,5,5,{
OnTouch:
- mapannounce "job3_arch02","Whispering of an impersonation: It's a crossroad. Let's go to the left side. I have to find my pipe.",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: It's a crossroad. Let's go to the left side. I have to find my pipe.",bc_map,"0xFFCE00";
end;
}
-job3_arch02,250,290,0 script #arch_2_13 139,5,5,{
+job3_arch02,250,290,0 script #arch_2_13 HIDDEN_WARP_NPC,5,5,{
OnTouch:
- mapannounce "job3_arch02","Whispering of an impersonation: I can see a ruined shrine. Take a rest in there.",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of an impersonation: I can see a ruined shrine. Take a rest in there.",bc_map,"0xFFCE00";
end;
}
+*/
-job3_arch02,206,113,0 script #arch_2_boss 139,5,5,{
+job3_arch02,206,113,0 script #arch_2_boss HIDDEN_WARP_NPC,5,5,{
OnTouch:
if (countitem(12382)) {
delitem 12382,1; //ValkyrieB_Scroll
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
- }
- if (getmercinfo(1) == 2038)
- mapannounce "job3_arch02","A shout of devil: You are so childish. I invite you a party of devil. I'll make you have a fun!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
- else {
- mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
- mapwarp "job3_arch02","job3_arch01",29,29;
+ // fall through
+ } else if (getmercinfo(1) == 2038) {
+ mapannounce "job3_arch02","A shout of devil: You are so childish. I invite you a party of devil. I'll make you have a fun!",bc_map,"0xFF0000";
+ end;
}
+ mapannounce "job3_arch02","Whispering of an impersonation: You can't do anything by yourself! Let's go back!",bc_map,"0xFFCE00";
+ mapwarp "job3_arch02","job3_arch01",29,29;
end;
}
-job3_arch02,284,159,0 script #arch_3_01 139,20,20,{
+job3_arch02,284,159,0 script #arch_3_01 HIDDEN_WARP_NPC,20,20,{
OnTouch:
- if (BaseJob != Job_Priest) {
- mapannounce "job3_arch02","Frus: Do you want to see God? Okay, I'll send you to the land of the dead by myself!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
- areamonster "job3_arch02",242,44,246,48,"Frus",1762,1;
+ if (Class != Job_Priest) {
+ mapannounce "job3_arch02","Frus: Do you want to see God? Okay, I'll send you to the land of the dead by myself!",bc_map,"0xFF0000";
+ areamonster "job3_arch02",242,44,246,48,"Frus",1762,1,"#arch_3_01::OnMyMobDead";
}
- hideonnpc "#arch_3_01";
+ disablenpc "#arch_3_01";
+ end;
+OnMyMobDead:
end;
OnKill:
killmonster "job3_arch02","#arch_3_01::OnMyMobDead";
end;
-OnInit:
- hideoffnpc "#arch_3_01";
- end;
+//OnInit:
+// enablenpc "#arch_3_01";
+// end;
}
-job3_arch02,307,200,0 script #arch_3_02 139,5,5,{
+job3_arch02,307,200,0 script #arch_3_02 HIDDEN_WARP_NPC,5,5,{
OnTouch:
if (BaseJob == Job_Priest) {
- mapannounce "job3_arch02","Skogul: You are my guest!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
- monster "job3_arch02",307,200,"Skogul",1761,1;
+ mapannounce "job3_arch02","Skogul: You are my guest!",bc_map,"0xFF0000";
+ monster "job3_arch02",307,200,"Skogul",1761,1,"#arch_3_02::OnMyMobDead";
}
- hideonnpc "#arch_3_02";
+ disablenpc "#arch_3_02";
+ end;
+OnMyMobDead:
end;
OnKill:
killmonster "job3_arch02","#arch_3_02::OnMyMobDead";
end;
-OnInit:
- hideoffnpc "#arch_3_02";
- end;
+//OnInit:
+// enablenpc "#arch_3_02";
+// end;
}
-job3_arch02,296,216,0 script #arch_3_03 139,5,5,{
+job3_arch02,296,216,0 script #arch_3_03 HIDDEN_WARP_NPC,5,5,{
OnTouch:
- mapannounce "job3_arch02","Frus: I like your face... Can I steal it?",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
- monster "job3_arch02",296,216,"Frus",1762,1;
- hideonnpc "#arch_3_03";
+ mapannounce "job3_arch02","Frus: I like your face... Can I steal it?",bc_map,"0xFF0000";
+ monster "job3_arch02",296,216,"Frus",1762,1,"#arch_3_03::OnMyMobDead";
+ disablenpc "#arch_3_03";
+ end;
+OnMyMobDead:
end;
OnKill:
killmonster "job3_arch02","#arch_3_03::OnMyMobDead";
end;
OnInit:
- hideonnpc "#arch_3_03";
+ disablenpc "#arch_3_03";
end;
}
-job3_arch02,389,390,1 script mob#arch_1 844,{
+job3_arch02,389,390,1 script mob#arch_1 CLEAR_NPC,{
end;
OnEnable:
- monster "job3_arch02",100,102,"Shrine Invader",1394,2;
- monster "job3_arch02",90,131,"Shrine Invader",1394,2;
- monster "job3_arch02",91,170,"Shrine Invader",1427,1;
- monster "job3_arch02",104,183,"Shrine Invader",1427,1;
- monster "job3_arch02",138,205,"Shrine Invader",1394,2;
- monster "job3_arch02",161,215,"Shrine Invader",1394,2;
- monster "job3_arch02",165,215,"Shrine Invader",1427,1;
- monster "job3_arch02",201,236,"Shrine Invader",1394,2;
- monster "job3_arch02",218,250,"Shrine Invader",1427,1;
- monster "job3_arch02",254,293,"Shrine Invader",1427,1;
+ monster "job3_arch02",100,102,"Shrine Invader",1394,2,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",90,131,"Shrine Invader",1394,2,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",91,170,"Shrine Invader",1427,1,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",104,183,"Shrine Invader",1427,1,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",138,205,"Shrine Invader",1394,2,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",161,215,"Shrine Invader",1394,2,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",165,215,"Shrine Invader",1427,1,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",201,236,"Shrine Invader",1394,2,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",218,250,"Shrine Invader",1427,1,"mob#arch_1::OnMyMobDead";
+ monster "job3_arch02",254,293,"Shrine Invader",1427,1,"mob#arch_1::OnMyMobDead";
+ end;
+OnMyMobDead:
end;
OnKill:
killmonster "job3_arch02","mob#arch_1::OnMyMobDead";
end;
}
-job3_arch02,389,389,1 script mob#arch_2 844,{
+job3_arch02,389,389,1 script mob#arch_2 CLEAR_NPC,{
end;
OnEnable:
- monster "job3_arch02",156,321,"Shrine Invader",1480,2;
- monster "job3_arch02",170,305,"Shrine Invader",1480,2;
- monster "job3_arch02",183,293,"Shrine Invader",1453,1;
- monster "job3_arch02",200,287,"Shrine Invader",1453,1;
- monster "job3_arch02",256,293,"Shrine Invader",1480,2;
- monster "job3_arch02",286,284,"Shrine Invader",1480,2;
- monster "job3_arch02",278,236,"Shrine Invader",1453,1;
- monster "job3_arch02",292,185,"Shrine Invader",1480,2;
- monster "job3_arch02",281,170,"Shrine Invader",1453,1;
- monster "job3_arch02",227,166,"Shrine Invader",1453,1;
- monster "job3_arch02",190,146,"Shrine Invader",1480,1;
- monster "job3_arch02",204,177,"Shrine Invader",1453,1;
+ monster "job3_arch02",156,321,"Shrine Invader",1480,2,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",170,305,"Shrine Invader",1480,2,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",183,293,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",200,287,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",256,293,"Shrine Invader",1480,2,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",286,284,"Shrine Invader",1480,2,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",278,236,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",292,185,"Shrine Invader",1480,2,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",281,170,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",227,166,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",190,146,"Shrine Invader",1480,1,"mob#arch_2::OnMyMobDead";
+ monster "job3_arch02",204,177,"Shrine Invader",1453,1,"mob#arch_2::OnMyMobDead";
+ end;
+OnMyMobDead:
end;
OnKill:
killmonster "job3_arch02","mob#arch_2::OnMyMobDead";
end;
}
-job3_arch02,389,388,1 script start#arch 844,{
+job3_arch02,389,388,1 script start#arch CLEAR_NPC,{
end;
OnInit:
- mapwarp "job3_arch02","job3_arch02",29,29;
+ mapwarp "job3_arch02","job3_arch01",29,29;
end;
OnEnable:
- mapwarp "job3_arch02","job3_arch02",29,29;
- hideoffnpc "#arch_1_start";
- hideoffnpc "#arch_1_01";
- hideoffnpc "#arch_1_02";
- hideoffnpc "#arch_1_03";
- hideoffnpc "#arch_1_04";
- hideoffnpc "#arch_1_05";
- hideoffnpc "#arch_1_06";
- hideoffnpc "#arch_1_07";
- hideoffnpc "#arch_1_08";
- hideoffnpc "#arch_1_09";
- hideoffnpc "#arch_1_10";
- hideoffnpc "#arch_1_11";
- hideoffnpc "#arch_1_12";
- hideoffnpc "#arch_1_boss";
- hideonnpc "#arch_2_01";
- hideonnpc "#arch_2_02";
- hideonnpc "#arch_2_03";
- hideonnpc "#arch_2_04";
- hideonnpc "#arch_2_05";
- hideonnpc "#arch_2_06";
- hideonnpc "#arch_2_07";
- hideonnpc "#arch_2_08";
- hideonnpc "#arch_2_09";
- hideonnpc "#arch_2_10";
- hideonnpc "#arch_2_11";
- hideonnpc "#arch_2_boss";
- hideonnpc "#arch_3_01";
- hideonnpc "#arch_3_02";
- hideonnpc "#arch_3_03";
+ mapwarp "job3_arch02","job3_arch01",29,29;
+ enablenpc "#arch_1_start";
+ enablenpc "#arch_1_01";
+ enablenpc "#arch_1_02";
+ enablenpc "#arch_1_03";
+ enablenpc "#arch_1_04";
+ enablenpc "#arch_1_05";
+ enablenpc "#arch_1_06";
+ enablenpc "#arch_1_07";
+ enablenpc "#arch_1_08";
+ enablenpc "#arch_1_09";
+ enablenpc "#arch_1_10";
+ enablenpc "#arch_1_11";
+ enablenpc "#arch_1_12";
+ enablenpc "#arch_1_boss";
+ disablenpc "#arch_2_01";
+ disablenpc "#arch_2_02";
+ disablenpc "#arch_2_03";
+ disablenpc "#arch_2_04";
+ disablenpc "#arch_2_05";
+ disablenpc "#arch_2_06";
+ disablenpc "#arch_2_07";
+ disablenpc "#arch_2_08";
+ disablenpc "#arch_2_09";
+ disablenpc "#arch_2_10";
+ disablenpc "#arch_2_11";
+ disablenpc "#arch_2_boss";
+ disablenpc "#arch_3_01";
+ disablenpc "#arch_3_02";
+ disablenpc "#arch_3_03";
donpcevent "#arch_3_01::OnKill";
donpcevent "#arch_3_02::OnKill";
donpcevent "#arch_3_03::OnKill";
- hideonnpc "#arch_end";
+ disablenpc "#arch_end";
hideonnpc "Valkyrie#arch_01";
hideonnpc "Valkyrie#arch_02";
hideonnpc "Valkyrie Anguhilde#end";
@@ -1530,8 +1540,8 @@ OnEnable:
donpcevent "#arch_redcell::OnRed";
donpcevent "mob#arch_1::OnKill";
donpcevent "mob#arch_2::OnKill";
- donpcevent "start#arch::OnTimeoff";
- donpcevent "start#arch::OnTimeon";
+ donpcevent "start#arch::OnTimeOff";
+ donpcevent "start#arch::OnTimeOn";
donpcevent "#arch_val01::OnKill";
donpcevent "#arch_val02::OnKill";
donpcevent "mob#arch_1::OnKill";
@@ -1539,10 +1549,10 @@ OnEnable:
donpcevent "mob#arch_1::OnEnable";
donpcevent "#arch_val01::OnEnable";
end;
-OnTimeon:
+OnTimeOn:
initnpctimer;
end;
-OnTimeoff:
+OnTimeOff:
stopnpctimer;
end;
OnTimer60000:
@@ -1561,91 +1571,87 @@ OnTimer540000:
}
end;
OnTimer600000:
- mapannounce "job3_arch02","Valkyrie's Nightmare: I can't stand anymore!",bc_map,"0xFF0000"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Valkyrie's Nightmare: I can't stand anymore!",bc_map,"0xFF0000";
end;
OnTimer605000:
- mapannounce "job3_arch02","Whispering of Valkyrie: No way! I can't let you guys do that. Go back!",bc_map,"0xFFCE00"; //FW_NORMAL 12 0 0
+ mapannounce "job3_arch02","Whispering of Valkyrie: No way! I can't let you guys do that. Go back!",bc_map,"0xFFCE00";
mapwarp "job3_arch02","job3_arch01",29,29;
donpcevent "Valkyrie#arch::OnBc";
stopnpctimer;
end;
}
-job3_arch02,390,388,1 script #arch_2_start 844,{
+job3_arch02,390,388,1 script #arch_2_start CLEAR_NPC,{
end;
OnInit:
- hideonnpc "#arch_2_01";
- hideonnpc "#arch_2_02";
- hideonnpc "#arch_2_03";
- hideonnpc "#arch_2_04";
- hideonnpc "#arch_2_05";
- hideonnpc "#arch_2_06";
- hideonnpc "#arch_2_07";
- hideonnpc "#arch_2_08";
- hideonnpc "#arch_2_09";
- hideonnpc "#arch_2_10";
- hideonnpc "#arch_2_11";
- hideonnpc "#arch_2_boss";
+ disablenpc "#arch_2_01";
+ disablenpc "#arch_2_02";
+ disablenpc "#arch_2_03";
+ disablenpc "#arch_2_04";
+ disablenpc "#arch_2_05";
+ disablenpc "#arch_2_06";
+ disablenpc "#arch_2_07";
+ disablenpc "#arch_2_08";
+ disablenpc "#arch_2_09";
+ disablenpc "#arch_2_10";
+ disablenpc "#arch_2_11";
+ disablenpc "#arch_2_boss";
end;
OnEnable:
- hideoffnpc "#arch_2_01";
- hideoffnpc "#arch_2_02";
- hideoffnpc "#arch_2_03";
- hideoffnpc "#arch_2_04";
- hideoffnpc "#arch_2_05";
- hideoffnpc "#arch_2_06";
- hideoffnpc "#arch_2_07";
- hideoffnpc "#arch_2_08";
- hideoffnpc "#arch_2_09";
- hideoffnpc "#arch_2_10";
- hideoffnpc "#arch_2_11";
- hideoffnpc "#arch_2_boss";
+ enablenpc "#arch_2_01";
+ enablenpc "#arch_2_02";
+ enablenpc "#arch_2_03";
+ enablenpc "#arch_2_04";
+ enablenpc "#arch_2_05";
+ enablenpc "#arch_2_06";
+ enablenpc "#arch_2_07";
+ enablenpc "#arch_2_08";
+ enablenpc "#arch_2_09";
+ enablenpc "#arch_2_10";
+ enablenpc "#arch_2_11";
+ enablenpc "#arch_2_boss";
donpcevent "#arch_val02::OnEnable";
donpcevent "mob#arch_2::OnEnable";
end;
}
-job3_arch02,390,386,1 script #arch_3_start 844,{
+job3_arch02,390,386,1 script #arch_3_start CLEAR_NPC,{
end;
OnEnable:
- hideoffnpc "#arch_3_01";
- hideoffnpc "#arch_3_02";
- hideoffnpc "#arch_3_03";
- hideoffnpc "#arch_end";
- hideoffnpc "#arch_end_eff";
+ enablenpc "#arch_3_01";
+ enablenpc "#arch_3_02";
+ enablenpc "#arch_3_03";
+ enablenpc "#arch_end";
+ //enablenpc "#arch_end_eff";
end;
}
-job3_arch02,290,221,0 script #arch_end_eff 139,5,5,{
+job3_arch02,290,221,0 script #arch_end_eff HIDDEN_WARP_NPC,5,5,{
OnTouch:
specialeffect EF_MAPPILLAR2,"#arch_end";
end;
}
-odin_tem02,30,181,0 script #wherearch01 139,10,10,{
-OnTouch:
- if (job_arch == 5)
- viewpoint 1,282,263,1,0xFFFF99;
- end;
-}
-
-odin_tem02,30,335,0 script #wherearch02 139,10,10,{
+/*
+job_arch01,26,25,0 script #archremove HIDDEN_WARP_NPC,3,3,{
OnTouch:
- if (job_arch == 5)
- viewpoint 1,282,263,1,0xFFFF99;
+ if (countitem(6154)) delitem 6154, countitem(6154); //Broken_Horn_Pipe
+ if (countitem(12381)) delitem 12381, countitem(12381); //ValkyrieA_Scroll
+ if (countitem(12382)) delitem 12382, countitem(12382); //ValkyrieB_Scroll
+ if (countitem(2798)) delitem 2798, countitem(2798); //Will_Of_Exhausted_Angel
end;
}
+*/
-/*
-job3_arch01,1,1,1 script control#arch 844,{
+job3_arch01,1,1,1 script control#arch CLEAR_NPC,{
+ callfunc "F_GM_NPC";
mes "[Troll]";
mes "Password please.";
next;
- input .@input;
- if (.@input == 1854) {
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
mes "[Transit]";
mes "The GlobalVar is";
- mes "" + $@archbs + ".";
+ mes $@archbs + ".";
mes "Do you want to change it?";
next;
switch(select("0:1")) {
@@ -1664,4 +1670,17 @@ job3_arch01,1,1,1 script control#arch 844,{
close;
}
}
-*/
+
+odin_tem02,30,181,0 script #wherearch01 HIDDEN_WARP_NPC,10,10,{
+OnTouch:
+ if (job_arch == 5)
+ viewpoint 1,282,263,1,0xFFFF99;
+ end;
+}
+
+odin_tem02,30,335,0 script #wherearch02 HIDDEN_WARP_NPC,10,10,{
+OnTouch:
+ if (job_arch == 5)
+ viewpoint 1,282,263,1,0xFFFF99;
+ end;
+}
diff --git a/npc/re/jobs/3-1/guillotine_cross.txt b/npc/re/jobs/3-1/guillotine_cross.txt
index 47b42e16f..c206599bb 100644
--- a/npc/re/jobs/3-1/guillotine_cross.txt
+++ b/npc/re/jobs/3-1/guillotine_cross.txt
@@ -1,24 +1,24 @@
//===== Hercules Script ======================================
//= Guillotine Cross Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.5
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Assassin / Assassin Cross -> Guillotine Cross.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 Adapted from original script. [Euphy]
//= 1.0a Added 'npcskill' command. [Euphy]
//= 1.0b Moved warps to separate file. [Euphy]
//= 1.1 Fixed some minor bugs. [Euphy]
//= 1.2 Moved "Girl" NPC off ve_fild05. [Euphy]
//= 1.3 Added missing OnMyMobDead labels. [Euphy]
+//= 1.4 Added missing labels. [Joseph]
+//= 1.5 Added GM management function. [Euphy]
//============================================================
-que_job01,75,96,3 script Guild Member#3rdgc01 997,{
+que_job01,75,96,3 script Guild Member#3rdgc01 4_M_MOCASS1,{
if (job_3rd_gc == 0) {
if (Class == Job_Assassin || Class == Job_Assassin_Cross || Class == Job_Baby_Assassin) {
if (BaseLevel == 99) {
@@ -222,7 +222,7 @@ function script func_3rdgc {
close;
}
-job3_guil01,82,95,3 script Daora#3rdgc02 940,{
+job3_guil01,82,95,3 script Daora#3rdgc02 4_F_DESERT,{
mes "[Daora]";
if (Class == Job_Assassin || Class == Job_Assassin_Cross || Class == Job_Baby_Assassin) {
if (job_3rd_gc < 4) {
@@ -825,7 +825,7 @@ job3_guil01,82,95,3 script Daora#3rdgc02 940,{
}
}
-job3_guil01,16,20,4 script Mayshell#3rdgc03 894,{
+job3_guil01,16,20,4 script Mayshell#3rdgc03 4_F_KHELLISIA,{
if (!checkweight(1201,2)) {
mes "- You can't continue this quest because you have too many items. -";
close;
@@ -1097,7 +1097,7 @@ job3_guil01,16,20,4 script Mayshell#3rdgc03 894,{
}
}
-ve_in,228,108,3 script Waitress#3rdgc04 80,{
+ve_in,228,108,3 script Waitress#3rdgc04 1_F_PUBGIRL,{
mes "[Waitress]";
if (job_3rd_gc < 6) {
mes "Welcome~";
@@ -1330,7 +1330,7 @@ ve_in,228,108,3 script Waitress#3rdgc04 80,{
}
}
-ve_in,246,303,3 script Young Merchant#3rdgc05 930,{
+ve_in,246,303,3 script Young Merchant#3rdgc05 4_M_RACHMAN2,{
if (job_3rd_gc < 6) {
mes "[Young Merchant]";
mes "If you want to buy stuff, go to this person.";
@@ -1526,7 +1526,7 @@ ve_in,246,303,3 script Young Merchant#3rdgc05 930,{
}
}
-veins,291,215,3 script Vigilante#3rdgc06 939,{
+veins,291,215,3 script Vigilante#3rdgc06 4_DST_SOLDIER,{
if (job_3rd_gc < 6) {
mes "[Vigilante]";
mes "Do you have any inconveniences while you are traveling?";
@@ -1690,7 +1690,7 @@ veins,291,215,3 script Vigilante#3rdgc06 939,{
}
}
-veins,187,143,5 script Peddler#3rdgc07 892,{
+veins,187,143,5 script Peddler#3rdgc07 4_F_HUGRANMA,{
mes "[Peddler]";
if (job_3rd_gc < 6) {
mes "What a huge sandstorm.";
@@ -1793,7 +1793,7 @@ veins,187,143,5 script Peddler#3rdgc07 892,{
}
}
-veins,235,126,3 script Old Man#3rdgc07 945,{
+veins,235,126,3 script Old Man#3rdgc07 4_M_DST_GRAND,{
mes "[Old Man]";
if (job_3rd_gc < 6) {
mes "Haha... I can remember my past when I see a young adventurer like you...";
@@ -1900,7 +1900,7 @@ veins,235,126,3 script Old Man#3rdgc07 945,{
}
}
-veins,223,180,3 script Girl#3rdgc09 941,{
+veins,223,180,3 script Girl#3rdgc09 4_F_DST_CHILD,{
mes "[Melissa]";
if (job_3rd_gc == 8) {
mes "Hi?";
@@ -2071,7 +2071,7 @@ veins,223,180,3 script Girl#3rdgc09 941,{
}
}
-veins,337,284,0 script #ghostestilla_3rdgc 139,3,3,{
+veins,337,284,0 script #ghostestilla_3rdgc HIDDEN_WARP_NPC,3,3,{
end;
OnTouch:
if (job_3rd_gc == 9) {
@@ -2184,7 +2184,7 @@ OnTouch:
end;
}
-veins,341,287,3 script Estillda#3rdgc10 919,{
+veins,341,287,3 script Estillda#3rdgc10 4_F_SHABBY,{
OnInit:
OnDisable:
disablenpc "Estillda#3rdgc10";
@@ -2194,7 +2194,7 @@ OnEnable:
end;
}
-job3_guil01,79,15,1 script Estillda#3rdgc11 919,{
+job3_guil01,79,15,1 script Estillda#3rdgc11 4_F_SHABBY,{
if (job_3rd_gc == 11) {
mes "Estillda is looking around with an anxious expression on her face.";
next;
@@ -2313,7 +2313,7 @@ job3_guil01,79,15,1 script Estillda#3rdgc11 919,{
end;
}
-veins,206,56,0 script #3rdgc_battleroom01 139,1,1,{
+veins,206,56,0 script #3rdgc_battleroom01 HIDDEN_WARP_NPC,1,1,{
end;
OnInit:
set $@3rdgc_room01, 0;
@@ -2352,7 +2352,7 @@ OnTouch:
end;
}
-job3_guil02,34,44,0 script #3rdgc_room01_mag01 139,2,2,{
+job3_guil02,34,44,0 script #3rdgc_room01_mag01 HIDDEN_WARP_NPC,2,2,{
end;
OnEnable:
enablenpc "#3rdgc_room01_mag01";
@@ -2397,7 +2397,7 @@ OnTimer300000:
end;
}
-job3_guil02,51,43,7 script A man with black clothes 456,4,4,{
+job3_guil02,51,43,7 script A man with black clothes 4_M_DSTMAN,4,4,{
end;
OnInit:
OnDisable:
@@ -2452,7 +2452,7 @@ OnMyMobDead:
end;
}
-job3_guil02,1,1,0 script #3rdgc_2nd_timer 844,{
+job3_guil02,1,1,0 script #3rdgc_2nd_timer CLEAR_NPC,{
end;
OnEnable:
initnpctimer;
@@ -2472,7 +2472,7 @@ OnTimer61000:
end;
}
-job3_guil02,49,43,5 script Dandelion#3rdgc12 457,{
+job3_guil02,49,43,5 script Dandelion#3rdgc12 4_M_DSTMANDEAD,{
if (!checkweight(1201,2)) {
mes "- You can't continue this quest because you have too many items. -";
close;
@@ -2517,7 +2517,7 @@ OnEnable:
end;
}
-rachel,115,77,3 script Girke#3rdgc13 85,{
+rachel,115,77,3 script Girke#3rdgc13 4_M_03,{
mes "[Girke]";
mes "Oh~ young man.";
mes "I'm Girke Sara.";
@@ -2564,7 +2564,7 @@ rachel,115,77,3 script Girke#3rdgc13 85,{
close;
}
-ra_in01,175,196,3 script Oresa Rava#3rdgc13 866,{
+ra_in01,175,196,3 script Oresa Rava#3rdgc13 4_M_LGTGRAND,{
mes "[Oresa Rava]";
if (job_3rd_gc == 13) {
mes "I don't know why you are visiting me, but I'm not crafting anymore.";
@@ -2649,7 +2649,7 @@ ra_in01,175,196,3 script Oresa Rava#3rdgc13 866,{
}
//Pre-RE: ve_fild05 (327,308)
-ve_fild02,330,384,3 script Girl#3rdgc14 466,{
+ve_fild02,330,384,3 script Girl#3rdgc14 4_F_GUILLOTINE,{
if (job_3rd_gc > 14 && job_3rd_gc < 18) {
mes "[Renzak]";
if (job_3rd_gc == 15) {
@@ -2728,7 +2728,7 @@ OnInit:
end;
}
-job3_guil03,22,70,0 script #3rdgc_event01 139,3,3,{
+job3_guil03,22,70,0 script #3rdgc_event01 HIDDEN_WARP_NPC,3,3,{
end;
OnEnable:
enablenpc "#3rdgc_event01";
@@ -2763,7 +2763,7 @@ OnTimer902000:
end;
}
-job3_guil03,1,4,0 script #3rdgc_event_master 844,{
+job3_guil03,1,4,0 script #3rdgc_event_master CLEAR_NPC,{
end;
OnEnable:
donpcevent "Barbed-Wire Entanglement::OnEnable";
@@ -2814,7 +2814,7 @@ OnReset:
}
//Original name: Barbed-Wire Entanglements#3rdgc_door01
-job3_guil03,55,79,0 script Barbed-Wire Entanglement 844,1,1,{
+job3_guil03,55,79,0 script Barbed-Wire Entanglement CLEAR_NPC,1,1,{
end;
OnEnable:
enablenpc "Barbed-Wire Entanglement";
@@ -2836,7 +2836,7 @@ OnTouch:
close;
}
-job3_guil03,98,46,0 script #3rdgc_hide01 139,1,4,{
+job3_guil03,98,46,0 script #3rdgc_hide01 HIDDEN_WARP_NPC,1,4,{
end;
OnStop:
killmonster "job3_guil03","#3rdgc_hide01::OnMyMobDead";
@@ -2863,7 +2863,7 @@ OnMyMobDead:
end;
}
-job3_guil03,98,55,0 script #3rdgc_hide02 139,1,4,{
+job3_guil03,98,55,0 script #3rdgc_hide02 HIDDEN_WARP_NPC,1,4,{
end;
OnStop:
killmonster "job3_guil03","#3rdgc_hide02::OnMyMobDead";
@@ -2890,7 +2890,7 @@ OnMyMobDead:
end;
}
-job3_guil03,98,64,0 script #3rdgc_hide03 139,1,4,{
+job3_guil03,98,64,0 script #3rdgc_hide03 HIDDEN_WARP_NPC,1,4,{
end;
OnStop:
killmonster "job3_guil03","#3rdgc_hide03::OnMyMobDead";
@@ -2917,7 +2917,7 @@ OnMyMobDead:
end;
}
-job3_guil03,1,2,0 script #3rdgc_guard 844,{
+job3_guil03,1,2,0 script #3rdgc_guard CLEAR_NPC,{
end;
OnEnable:
initnpctimer;
@@ -2958,7 +2958,7 @@ OnTimer16000:
end;
}
-job3_guil03,1,3,0 script #3rdgc_guardoff 844,{
+job3_guil03,1,3,0 script #3rdgc_guardoff CLEAR_NPC,{
end;
OnDisable:
initnpctimer;
@@ -3033,7 +3033,7 @@ OnEnable:
end;
}
-job3_guil03,93,35,3 script Front Gate Guard#g01 456,5,5,{
+job3_guil03,93,35,3 script Front Gate Guard#g01 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3057,12 +3057,14 @@ OnTouch:
monster "job3_guil03",93,33,"Front Gate Guard",1985,1,"Front Gate Guard#g01::OnMyMobDead";
monster "job3_guil03",93,32,"Guard Dog",1866,1,"Front Gate Guard#g01::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,93,36,3 duplicate(#3rdgc_guard00) Front Gate Guard#g03 456
-job3_guil03,93,34,3 duplicate(#3rdgc_guard00) Front Gate Guard#g04 456
-job3_guil03,93,33,3 duplicate(#3rdgc_guard00) Front Gate Guard#g05 456
+job3_guil03,93,36,3 duplicate(#3rdgc_guard00) Front Gate Guard#g03 4_M_DSTMAN
+job3_guil03,93,34,3 duplicate(#3rdgc_guard00) Front Gate Guard#g04 4_M_DSTMAN
+job3_guil03,93,33,3 duplicate(#3rdgc_guard00) Front Gate Guard#g05 4_M_DSTMAN
-job3_guil03,133,52,5 script Back Gate Guard#g01 456,5,5,{
+job3_guil03,133,52,5 script Back Gate Guard#g01 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3086,12 +3088,14 @@ OnTouch:
monster "job3_guil03",133,50,"Back Gate Guard",1985,1,"Back Gate Guard#g01::OnMyMobDead";
monster "job3_guil03",133,49,"Guard Dog",1866,1,"Back Gate Guard#g01::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,133,53,5 duplicate(#3rdgc_guard00) Back Gate Guard#g03 456
-job3_guil03,133,51,5 duplicate(#3rdgc_guard00) Back Gate Guard#g04 456
-job3_guil03,133,50,5 duplicate(#3rdgc_guard00) Back Gate Guard#g05 456
+job3_guil03,133,53,5 duplicate(#3rdgc_guard00) Back Gate Guard#g03 4_M_DSTMAN
+job3_guil03,133,51,5 duplicate(#3rdgc_guard00) Back Gate Guard#g04 4_M_DSTMAN
+job3_guil03,133,50,5 duplicate(#3rdgc_guard00) Back Gate Guard#g05 4_M_DSTMAN
-job3_guil03,117,51,4 script Interior Guard#g01 456,5,5,{
+job3_guil03,117,51,4 script Interior Guard#g01 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3115,12 +3119,14 @@ OnTouch:
monster "job3_guil03",117,49,"Interior Guard",1985,1,"Interior Guard#g01::OnMyMobDead";
monster "job3_guil03",117,48,"Guard Dog",1866,1,"Interior Guard#g01::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,117,52,4 duplicate(#3rdgc_guard00) Interior Guard#g03 456
-job3_guil03,117,50,4 duplicate(#3rdgc_guard00) Interior Guard#g04 456
-job3_guil03,117,49,4 duplicate(#3rdgc_guard00) Interior Guard#g05 456
+job3_guil03,117,52,4 duplicate(#3rdgc_guard00) Interior Guard#g03 4_M_DSTMAN
+job3_guil03,117,50,4 duplicate(#3rdgc_guard00) Interior Guard#g04 4_M_DSTMAN
+job3_guil03,117,49,4 duplicate(#3rdgc_guard00) Interior Guard#g05 4_M_DSTMAN
-job3_guil03,88,44,4 script Exterior Guard#g01 456,5,5,{
+job3_guil03,88,44,4 script Exterior Guard#g01 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3139,9 +3145,11 @@ OnTouch:
monster "job3_guil03",88,43,"Exterior Guard",1985,1,"Exterior Guard#g01::OnMyMobDead";
monster "job3_guil03",88,45,"Guard Dog",1866,1,"Exterior Guard#g01::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,88,55,4 script Exterior Guard#g02 456,5,5,{
+job3_guil03,88,55,4 script Exterior Guard#g02 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3160,9 +3168,11 @@ OnTouch:
monster "job3_guil03",88,54,"Exterior Guard",1985,1,"Exterior Guard#g02::OnMyMobDead";
monster "job3_guil03",88,56,"Guard Dog",1866,1,"Exterior Guard#g02::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,88,64,4 script Exterior Guard#g03 456,5,5,{
+job3_guil03,88,64,4 script Exterior Guard#g03 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3181,9 +3191,11 @@ OnTouch:
monster "job3_guil03",88,63,"Exterior Guard",1985,1,"Exterior Guard#g03::OnMyMobDead";
monster "job3_guil03",88,65,"Guard Dog",1866,1,"Exterior Guard#g03::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,73,62,4 script Exterior Guard#g04 456,5,5,{
+job3_guil03,73,62,4 script Exterior Guard#g04 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3202,9 +3214,11 @@ OnTouch:
monster "job3_guil03",73,61,"Exterior Guard",1985,1,"Exterior Guard#g04::OnMyMobDead";
monster "job3_guil03",73,63,"Guard Dog",1866,1,"Exterior Guard#g04::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,77,51,4 script Exterior Guard#g05 456,5,5,{
+job3_guil03,77,51,4 script Exterior Guard#g05 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3223,9 +3237,11 @@ OnTouch:
monster "job3_guil03",77,50,"Exterior Guards",1985,1,"Exterior Guard#g05::OnMyMobDead";
monster "job3_guil03",77,49,"Guard Dog",1866,1,"Exterior Guard#g05::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,73,34,4 script Exterior Guard#g06 456,5,5,{
+job3_guil03,73,34,4 script Exterior Guard#g06 4_M_DSTMAN,5,5,{
end;
OnInit:
OnDisable:
@@ -3244,6 +3260,8 @@ OnTouch:
monster "job3_guil03",73,33,"Exterior guards",1985,1,"Exterior Guard#g06::OnMyMobDead";
monster "job3_guil03",73,32,"Guard Dog",1866,1,"Exterior Guard#g06::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
job3_guil03,110,27,3 script Guard Dog#dog01 1866,3,1,{
@@ -3265,6 +3283,8 @@ OnTouch:
monster "job3_guil03",104,27,"Dog Trainer's Assistant",1985,1,"Guard Dog#dog01::OnMyMobDead";
monster "job3_guil03",98,27,"Guard",1985,1,"Guard Dog#dog01::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
job3_guil03,119,27,3 script Guard Dog#dog02 1866,3,1,{
@@ -3286,9 +3306,11 @@ OnTouch:
monster "job3_guil03",104,27,"Trainer's Assistant",1985,1,"Guard Dog#dog02::OnMyMobDead";
monster "job3_guil03",131,27,"Guard",1985,1,"Guard Dog#dog02::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,2,1,0 script #3rdgc_sunchal_nomal 844,{
+job3_guil03,2,1,0 script #3rdgc_sunchal_nomal CLEAR_NPC,{
end;
OnEnable:
monster "job3_guil03",62,35,"Guard",1985,1,"#3rdgc_sunchal_nomal::OnMyMobDead";
@@ -3321,9 +3343,11 @@ OnEnable:
OnReset:
killmonster "job3_guil03","#3rdgc_sunchal_nomal::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
-job3_guil03,2,2,0 script #3rdgc_sunchal_kill01 844,{
+job3_guil03,2,2,0 script #3rdgc_sunchal_kill01 CLEAR_NPC,{
end;
OnEnable:
set .@i, atoi(charat(strnpcinfo(0),20));
@@ -3353,10 +3377,10 @@ OnTimer10000:
stopnpctimer;
end;
}
-job3_guil03,2,3,0 duplicate(#3rdgc_sunchal_kill01) #3rdgc_sunchal_kill02 844
-job3_guil03,2,4,0 duplicate(#3rdgc_sunchal_kill01) #3rdgc_sunchal_kill03 844
+job3_guil03,2,3,0 duplicate(#3rdgc_sunchal_kill01) #3rdgc_sunchal_kill02 CLEAR_NPC
+job3_guil03,2,4,0 duplicate(#3rdgc_sunchal_kill01) #3rdgc_sunchal_kill03 CLEAR_NPC
-job3_guil03,64,68,3 script #3rdgc_gojung_kill01 456,7,7,{
+job3_guil03,64,68,3 script #3rdgc_gojung_kill01 4_M_DSTMAN,7,7,{
end;
OnEnable:
enablenpc strnpcinfo(0);
@@ -3391,10 +3415,10 @@ OnTimer10000:
stopnpctimer;
end;
}
-job3_guil03,86,63,1 duplicate(#3rdgc_gojung_kill01) #3rdgc_gojung_kill02 456,8,8
-job3_guil03,83,36,5 duplicate(#3rdgc_gojung_kill01) #3rdgc_gojung_kill03 456,6,6
+job3_guil03,86,63,1 duplicate(#3rdgc_gojung_kill01) #3rdgc_gojung_kill02 4_M_DSTMAN,8,8
+job3_guil03,83,36,5 duplicate(#3rdgc_gojung_kill01) #3rdgc_gojung_kill03 4_M_DSTMAN,6,6
-job3_guil03,88,71,0 script #3rdgc_safezone01 139,1,1,{
+job3_guil03,88,71,0 script #3rdgc_safezone01 HIDDEN_WARP_NPC,1,1,{
end;
OnTouch:
mes "It's a good bush to hide yourself.";
@@ -3416,10 +3440,10 @@ OnTimer:
donpcevent "#3rdgc_guardoff::OnDisable";
end;
}
-job3_guil03,82,45,0 duplicate(#3rdgc_safezone01) #3rdgc_safezone02 139,1,1
-job3_guil03,72,53,0 duplicate(#3rdgc_safezone01) #3rdgc_safezone03 139,1,1
+job3_guil03,82,45,0 duplicate(#3rdgc_safezone01) #3rdgc_safezone02 HIDDEN_WARP_NPC,1,1
+job3_guil03,72,53,0 duplicate(#3rdgc_safezone01) #3rdgc_safezone03 HIDDEN_WARP_NPC,1,1
-job3_guil03,111,51,7 script Priest from Rachel 928,{
+job3_guil03,111,51,7 script Priest from Rachel 4_M_MIDDLE1,{
if (!.on) end;
mes "[Priest from Rachel]";
if (job_3rd_gc == 17) {
@@ -3514,7 +3538,7 @@ OnTimer61500:
end;
}
-job3_guil03,146,70,3 script Renzak#3rdgc16 466,{
+job3_guil03,146,70,3 script Renzak#3rdgc16 4_F_GUILLOTINE,{
mes "[Renzak]";
if (checkquest(7110,HUNTING) == 2) {
mes "My peers will come here to settle this affair.";
@@ -3551,7 +3575,7 @@ OnDisable:
end;
}
-job3_guil01,148,53,3 script Bercasell#3rdgc16 467,{
+job3_guil01,148,53,3 script Bercasell#3rdgc16 4_M_GUILLOTINE,{
if (!checkweight(1201,2)) {
mes "- You can't continue this quest because you have too many items. -";
close;
@@ -3764,7 +3788,7 @@ L_Info:
// Warp Portals
//============================================================
-job3_guil01,80,77,0 script #gate_to_guil05 45,1,1,{
+job3_guil01,80,77,0 script #gate_to_guil05 WARPNPC,1,1,{
end;
OnTouch:
if (job_3rd_gc > 3)
@@ -3777,7 +3801,7 @@ OnTouch:
}
end;
}
-job3_guil01,51,55,0 script #gate_to_guil07 45,1,1,{
+job3_guil01,51,55,0 script #gate_to_guil07 WARPNPC,1,1,{
end;
OnTouch:
if (job_3rd_gc == 4 || job_3rd_gc == 14 || job_3rd_gc > 17)
@@ -3794,7 +3818,7 @@ OnTouch:
}
end;
}
-job3_guil01,51,44,0 script #gate_to_guil09 45,1,1,{
+job3_guil01,51,44,0 script #gate_to_guil09 WARPNPC,1,1,{
end;
OnTouch:
if (job_3rd_gc == 11 || job_3rd_gc == 12)
@@ -3808,12 +3832,11 @@ OnTouch:
end;
}
-/*
-job3_guil02,1,3,0 script #GMhelper01_gc 844,{
+job3_guil02,1,3,0 script #GMhelper01_gc CLEAR_NPC,{
+ callfunc "F_GM_NPC";
mes "What can I do for you?";
next;
- input .@input;
- if (.@input == 1854) {
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
set .@room01, $@3rdgc_room01;
mes "I check the recent situation.";
mes "The battle situation of storage: "+.@room01+"";
@@ -3842,16 +3865,17 @@ job3_guil02,1,3,0 script #GMhelper01_gc 844,{
mes "A management for mansion is in mansion.";
close;
}
+ } else {
+ mes "-_-.";
+ close;
}
- mes "-_-.";
- close;
}
-job3_guil03,1,8,0 script #GMhelper02_gc 844,{
+job3_guil03,1,8,0 script #GMhelper02_gc CLEAR_NPC,{
+ callfunc "F_GM_NPC";
mes "What can I do for you?";
next;
- input .@input;
- if (.@input == 1854) {
+ if (callfunc("F_GM_NPC",1854,0) == 1) {
set .@room02, $@3rdgc_room02;
mes "Check the recent situation.";
mes "The battle situation of the mansion is: "+.@room02+"";
@@ -3912,8 +3936,8 @@ job3_guil03,1,8,0 script #GMhelper02_gc 844,{
mes "The management of storage is in a storage.";
close;
}
+ } else {
+ mes "-_-.";
+ close;
}
- mes "-_-.";
- close;
}
-*/
diff --git a/npc/re/jobs/3-1/mechanic.txt b/npc/re/jobs/3-1/mechanic.txt
index 4890d072b..8300576f2 100644
--- a/npc/re/jobs/3-1/mechanic.txt
+++ b/npc/re/jobs/3-1/mechanic.txt
@@ -1,21 +1,19 @@
//===== Hercules Script ======================================
//= Mechanic Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= [Official Conversion]
//= Jobchange Quest from Blacksmith / Whitesmith -> Mechanic.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Fixed the Door NPC [JayPee].
//= 1.2 Updated script. [Euphy]
-//============================================================
+//============================================================
-yuno,129,156,3 script Chainheart 923,{
+yuno,129,156,3 script Chainheart 4_M_DOCTOR,{
mes "[Chainheart]";
if (BaseLevel > 99) {
mes "Living as a Mechanic is tough,";
@@ -295,7 +293,7 @@ yuno,129,156,3 script Chainheart 923,{
close;
}
-jupe_cave,37,55,5 script Scholar#Mechanic 883,{
+jupe_cave,37,55,5 script Scholar#Mechanic 4_M_ALCHE_D,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 300) {
mes "- Your pack is too heavy. -";
mes "- Lighten your body first -";
@@ -386,7 +384,7 @@ jupe_cave,37,55,5 script Scholar#Mechanic 883,{
close;
}
-jupe_core2,149,273,3 script Ghostfire#1 802,{
+jupe_core2,149,273,3 script Ghostfire#1 4_NFWISP,{
mes "[?]";
if (job__mechanic == 11) {
mes "I've lost my body and all that's left is my spirit in this place.";
@@ -472,7 +470,7 @@ jupe_core2,149,273,3 script Ghostfire#1 802,{
end;
}
-jupe_core2,53,75,3 script Ghostfire#2 802,{
+jupe_core2,53,75,3 script Ghostfire#2 4_NFWISP,{
mes "[?]";
if (job__mechanic > 5) {
mes "Juperos... I...";
@@ -534,7 +532,7 @@ jupe_core2,53,75,3 script Ghostfire#2 802,{
end;
}
-jupe_core2,242,62,3 script Ghostfire#3 802,{
+jupe_core2,242,62,3 script Ghostfire#3 4_NFWISP,{
mes "[?]";
if (job__mechanic > 6) {
mes "I want to know more about the knowledge...";
@@ -575,7 +573,7 @@ jupe_core2,242,62,3 script Ghostfire#3 802,{
end;
}
-jupe_core2,29,150,0 script #Foothold 139,1,1,{
+jupe_core2,29,150,0 script #Foothold HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job__mechanic == 8) {
percentheal 0,-30;
@@ -614,7 +612,7 @@ OnTouch:
end;
}
-jupe_core2,272,149,0 script #Foothold2 139,1,1,{
+jupe_core2,272,149,0 script #Foothold2 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job__mechanic == 9) {
mes "-I had a feeling that power-";
@@ -649,7 +647,7 @@ OnTouch:
end;
}
-jupe_core2,288,142,3 script #Door 844,1,1,{
+jupe_core2,288,142,3 script #Door CLEAR_NPC,1,1,{
end;
OnInit:
OnDisable:
@@ -703,7 +701,7 @@ OnTouch:
end;
}
-jupe_core2,149,34,0 script #Acquiring Knowledge 139,1,0,{
+jupe_core2,149,34,0 script #Acquiring Knowledge HIDDEN_WARP_NPC,1,0,{
OnTouch:
if (job__mechanic == 9) {
mes "-The moment I stepped on-";
@@ -728,6 +726,6 @@ OnTouch:
}
end;
}
-jupe_core2,150,33,0 duplicate(#Acquiring Knowledge) #Acquiring Knowledge2 139,1,0
+jupe_core2,150,33,0 duplicate(#Acquiring Knowledge) #Acquiring Knowledge2 HIDDEN_WARP_NPC,1,0
-jupe_core2,0,0,0,0 monster Dimik 1669,100,0,0,0
+jupe_core2,0,0,0,0 monster Dimik 1669,100,0,0,0 \ No newline at end of file
diff --git a/npc/re/jobs/3-1/ranger.txt b/npc/re/jobs/3-1/ranger.txt
index 02af29d54..0b52df91f 100644
--- a/npc/re/jobs/3-1/ranger.txt
+++ b/npc/re/jobs/3-1/ranger.txt
@@ -1,15 +1,13 @@
//===== Hercules Script ======================================
//= Ranger Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.5
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.6
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Hunter / Sniper -> Ranger.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Updated SC_STONE duration from 2 Seconds to 2 Minutes
//= and fixed Mercenary check.
@@ -20,9 +18,10 @@
//= 1.3a Little beauty fix, changed break; to next; . [Masao]
//= 1.4 Some optimization. [Euphy]
//= 1.5 Updated script, optimized. [Euphy]
+//= 1.6 Added GM management function. [Euphy]
//============================================================
-tur_dun01,156,36,5 script Survival Instructor#jr01 59,{
+tur_dun01,156,36,5 script Survival Instructor#jr01 1_M_ORIENT01,{
mes "[Survival Instructor, Rescue]";
if (BaseJob == Job_Hunter) {
if (job_ranger01 < 1) {
@@ -305,7 +304,7 @@ tur_dun01,156,36,5 script Survival Instructor#jr01 59,{
close;
}
-tur_dun01,91,169,3 script Test Instructor#jr02 732,{
+tur_dun01,91,169,3 script Test Instructor#jr02 4_M_JOB_HUNTER,{
mes "[Test Instructor, Teardrop]";
if (BaseJob == Job_Hunter) {
if (job_ranger01 < 3) {
@@ -673,7 +672,7 @@ L_Start:
end;
}
-job3_rang01,30,44,3 script Test Waiting Room#jr_03 88,{
+job3_rang01,30,44,3 script Test Waiting Room#jr_03 4_M_ORIENT01,{
mes "[Staff DTS]";
mes "Please wait at the practical test waiting room to start the test process.";
next;
@@ -799,7 +798,7 @@ OnDisable:
end;
}
-job3_rang02,100,95,0 script Test Supervisor#jr_04 139,{
+job3_rang02,100,95,0 script Test Supervisor#jr_04 HIDDEN_WARP_NPC,{
OnInit:
set $@job_rang_point01,0;
disablenpc "Test Supervisor#jr_04";
@@ -842,7 +841,7 @@ OnTimer18000:
end;
}
-job3_rang02,102,95,0 script First Test Timer#jr_05 139,{
+job3_rang02,102,95,0 script First Test Timer#jr_05 HIDDEN_WARP_NPC,{
OnInit:
disablenpc "First Test Timer#jr_05";
end;
@@ -943,7 +942,7 @@ OnTimer157000:
end;
}
-job3_rang02,104,95,0 script CallCorrectAnswer#jr 139,{
+job3_rang02,104,95,0 script CallCorrectAnswer#jr HIDDEN_WARP_NPC,{
OnInit:
OnDisable:
disablenpc "CallCorrectAnswer#jr";
@@ -970,7 +969,7 @@ OnMyMobDead:
end;
}
-job3_rang02,106,95,0 script CallWrongAnswer#jr 139,{
+job3_rang02,106,95,0 script CallWrongAnswer#jr HIDDEN_WARP_NPC,{
OnInit:
OnDisable:
disablenpc "CallWrongAnswer#jr";
@@ -1060,7 +1059,7 @@ OnMyMobDead:
end;
}
-job3_rang02,100,93,0 script Second Test Timer#jr_08 139,{
+job3_rang02,100,93,0 script Second Test Timer#jr_08 HIDDEN_WARP_NPC,{
OnInit:
disablenpc "Second Test Timer#jr_08";
end;
@@ -1167,7 +1166,7 @@ OnTimer223000:
end;
}
-job3_rang02,111,56,3 script Staff Rust#jr_09 89,{
+job3_rang02,111,56,3 script Staff Rust#jr_09 4_M_ORIENT02,{
if (job_ranger01 == 6) {
if (countitem(12258) < 1) {
percentheal 100,0;
@@ -1212,7 +1211,7 @@ OnDisable:
end;
}
-job3_rang02,136,21,0 script Summon Monster#jr_10 139,5,5,{
+job3_rang02,136,21,0 script Summon Monster#jr_10 HIDDEN_WARP_NPC,5,5,{
OnInit:
disablenpc "Summon Monster#jr_10";
end;
@@ -1261,7 +1260,7 @@ OnMyMobDead:
end;
}
-job3_rang02,180,78,3 script Test Supervisor#jr_11 882,1,1,{
+job3_rang02,180,78,3 script Test Supervisor#jr_11 4_F_SITDOWN,1,1,{
mes "[Test Supervisor, Caution]";
mes "Come, come near, nearer, nearer!!";
close;
@@ -1361,7 +1360,7 @@ OnTimer105000:
end;
}
-job3_rang02,104,93,0 script Third Test Timer#jr_12 139,{
+job3_rang02,104,93,0 script Third Test Timer#jr_12 HIDDEN_WARP_NPC,{
OnInit:
disablenpc "Third Test Timer#jr_12";
end;
@@ -1448,7 +1447,7 @@ OnTimer130000:
end;
}
-job3_rang02,251,49,3 script Test Supervisor#jr_13 732,{
+job3_rang02,251,49,3 script Test Supervisor#jr_13 4_M_JOB_HUNTER,{
mes "[Test Supervisor, Freeze]";
if (job_ranger01 == 6) {
if (checkquest(8261) == -1) {
@@ -1603,23 +1602,23 @@ OnTimer10000:
donpcevent strnpcinfo(0)+"::OnDisable";
end;
}
-job3_rang02,246,42,0 duplicate(Egg Bomb#0) Egg Bomb#14 139
-job3_rang02,249,46,0 duplicate(Egg Bomb#0) Egg Bomb#15 139
-job3_rang02,256,43,0 duplicate(Egg Bomb#0) Egg Bomb#16 139
-job3_rang02,243,54,0 duplicate(Egg Bomb#0) Egg Bomb#17 139
-job3_rang02,246,58,0 duplicate(Egg Bomb#0) Egg Bomb#18 139
-job3_rang02,255,56,0 duplicate(Egg Bomb#0) Egg Bomb#19 139
-job3_rang02,260,48,0 duplicate(Egg Bomb#0) Egg Bomb#20 139
-job3_rang02,244,53,0 duplicate(Egg Bomb#0) Egg Bomb#21 139
-job3_rang02,254,50,0 duplicate(Egg Bomb#0) Egg Bomb#22 139
-job3_rang02,241,41,0 duplicate(Egg Bomb#0) Egg Bomb#23 139
-job3_rang02,259,41,0 duplicate(Egg Bomb#0) Egg Bomb#24 139
-job3_rang02,256,52,0 duplicate(Egg Bomb#0) Egg Bomb#25 139
-job3_rang02,259,58,0 duplicate(Egg Bomb#0) Egg Bomb#26 139
-job3_rang02,254,52,0 duplicate(Egg Bomb#0) Egg Bomb#27 139
-job3_rang02,247,42,0 duplicate(Egg Bomb#0) Egg Bomb#28 139
+job3_rang02,246,42,0 duplicate(Egg Bomb#0) Egg Bomb#14 HIDDEN_WARP_NPC
+job3_rang02,249,46,0 duplicate(Egg Bomb#0) Egg Bomb#15 HIDDEN_WARP_NPC
+job3_rang02,256,43,0 duplicate(Egg Bomb#0) Egg Bomb#16 HIDDEN_WARP_NPC
+job3_rang02,243,54,0 duplicate(Egg Bomb#0) Egg Bomb#17 HIDDEN_WARP_NPC
+job3_rang02,246,58,0 duplicate(Egg Bomb#0) Egg Bomb#18 HIDDEN_WARP_NPC
+job3_rang02,255,56,0 duplicate(Egg Bomb#0) Egg Bomb#19 HIDDEN_WARP_NPC
+job3_rang02,260,48,0 duplicate(Egg Bomb#0) Egg Bomb#20 HIDDEN_WARP_NPC
+job3_rang02,244,53,0 duplicate(Egg Bomb#0) Egg Bomb#21 HIDDEN_WARP_NPC
+job3_rang02,254,50,0 duplicate(Egg Bomb#0) Egg Bomb#22 HIDDEN_WARP_NPC
+job3_rang02,241,41,0 duplicate(Egg Bomb#0) Egg Bomb#23 HIDDEN_WARP_NPC
+job3_rang02,259,41,0 duplicate(Egg Bomb#0) Egg Bomb#24 HIDDEN_WARP_NPC
+job3_rang02,256,52,0 duplicate(Egg Bomb#0) Egg Bomb#25 HIDDEN_WARP_NPC
+job3_rang02,259,58,0 duplicate(Egg Bomb#0) Egg Bomb#26 HIDDEN_WARP_NPC
+job3_rang02,254,52,0 duplicate(Egg Bomb#0) Egg Bomb#27 HIDDEN_WARP_NPC
+job3_rang02,247,42,0 duplicate(Egg Bomb#0) Egg Bomb#28 HIDDEN_WARP_NPC
-job3_rang01,90,43,3 script Ranger Master#jr_29 832,{
+job3_rang01,90,43,3 script Ranger Master#jr_29 4_M_REIDIN_KURS,{
mes "[Ranger Master, Neveragain]";
if (job_ranger01 < 6) {
mes "... ...Huh?";
@@ -1757,8 +1756,8 @@ job3_rang01,90,43,3 script Ranger Master#jr_29 832,{
}
}
-/*
-job3_rang01,58,1,0 script Worker#job_ranger 88,{
+job3_rang01,58,1,0 script Worker#job_ranger 4_M_ORIENT01,{
+ callfunc "F_GM_NPC";
switch(select("Enable Waiting Room:Disable Waiting Room:Enable 1st Test:Disable 1st Test:Enable 2nd Test:Disable 2nd Test:Enable 3rd Test:Disable 3rd Test:Cancel")) {
case 1:
mes "Enabled Waiting Room";
@@ -1803,4 +1802,3 @@ job3_rang01,58,1,0 script Worker#job_ranger 88,{
close;
}
}
-*/
diff --git a/npc/re/jobs/3-1/rune_knight.txt b/npc/re/jobs/3-1/rune_knight.txt
index 1255c355e..ffb395e07 100644
--- a/npc/re/jobs/3-1/rune_knight.txt
+++ b/npc/re/jobs/3-1/rune_knight.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= L0ne_W0lf, Muad_Dib
//===== Current Version: =====================================
-//= 1.4
+//= 1.5
//===== Description: =========================================
//= Job change Quest from Knight / Lord Knight -> Rune Knight.
//===== Additional Comments: =================================
@@ -13,9 +13,11 @@
//= 1.3 Updated script, optimized. [Euphy]
//= 1.3a Added 'npcskill' command. [Euphy]
//= 1.4 Fixed a few bugs. [Euphy]
+//= 1.4a Moved Kafra to main file. [Euphy]
+//= 1.5 Added GM management function. [Euphy]
//============================================================
-prt_in,162,24,3 script Splendid-Looking Knight 470,2,2,{
+prt_in,162,24,3 script Splendid-Looking Knight 4_M_KNIGHT_SILVER,2,2,{
mes "[Rune Knight Manuel]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "You are now a member of our select brethren. I can still remember when I first met you.";
@@ -123,7 +125,7 @@ prt_in,162,24,3 script Splendid-Looking Knight 470,2,2,{
close;
}
-glast_01,44,363,3 script Guide, Jungberg 468,2,2,{
+glast_01,44,363,3 script Guide, Jungberg 4_M_KNIGHT_BLACK,2,2,{
mes "[Guide, Jungberg]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Oh, you must be "+strcharinfo(0)+".";
@@ -247,7 +249,7 @@ glast_01,44,363,3 script Guide, Jungberg 468,2,2,{
}
}
-gl_knt02,150,55,3 script Rune Knight Staff 83,2,2,{
+gl_knt02,150,55,3 script Rune Knight Staff 4_M_01,2,2,{
mes "[Rune Knight Staff]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Welcome, "+strcharinfo(0)+". Are you going to the gathering place?";
@@ -294,7 +296,7 @@ gl_knt02,150,55,3 script Rune Knight Staff 83,2,2,{
close;
}
-job3_rune01,80,60,3 script Rune Knight Captain 470,2,2,{
+job3_rune01,80,60,3 script Rune Knight Captain 4_M_KNIGHT_SILVER,2,2,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "You've got too many things. You cannot proceed anymore. Please try again after losing some weight.";
close;
@@ -572,7 +574,7 @@ L_Warning:
return;
}
-job3_rune01,90,50,3 script Rune Knight Lunarea 469,2,2,{
+job3_rune01,90,50,3 script Rune Knight Lunarea 4_M_KNIGHT_GOLD,2,2,{
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "She holds up her chin quietly, nods lightly and notices me.";
next;
@@ -686,7 +688,7 @@ L_Test:
close;
}
-job3_rune01,55,50,3 script Rune Knight, Renoa 469,2,2,{
+job3_rune01,55,50,3 script Rune Knight, Renoa 4_M_KNIGHT_GOLD,2,2,{
mes "[Rune Knight, Renoa]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Congratulations for becoming one of us. Junior Rune Knight, "+strcharinfo(0)+".";
@@ -902,7 +904,7 @@ job3_rune01,55,50,3 script Rune Knight, Renoa 469,2,2,{
close;
}
-job3_rune01,58,51,1 script Rune Furnace 844,{
+job3_rune01,58,51,1 script Rune Furnace CLEAR_NPC,{
if (job_rune_edq < 15) {
mes "[Rune Knight Renoa]";
mes "You don't want to touch that thing. Believe me, I'm not kidding.";
@@ -974,7 +976,7 @@ job3_rune01,58,51,1 script Rune Furnace 844,{
close;
}
-job3_rune01,40,54,1 script Runes and Rune Knights 844,{
+job3_rune01,40,54,1 script Runes and Rune Knights CLEAR_NPC,{
if (job_rune_edq < 8) {
mes "[Rune Knight Renoa]";
mes "Besides touching stuff in this place without permission. Would you be able to understand the contents of the book?";
@@ -1033,7 +1035,7 @@ job3_rune01,40,54,1 script Runes and Rune Knights 844,{
}
}
-job3_rune01,43,44,1 script The Principles of Runes 844,{
+job3_rune01,43,44,1 script The Principles of Runes CLEAR_NPC,{
if (job_rune_edq < 8) {
mes "[Rune Knight Renoa]";
mes "Besides touching stuff in this place without permission. Would you be able to understand the contents of the book?";
@@ -1080,7 +1082,7 @@ job3_rune01,43,44,1 script The Principles of Runes 844,{
}
}
-job3_rune01,50,36,1 script Runes, Make & Use 844,{
+job3_rune01,50,36,1 script Runes, Make & Use CLEAR_NPC,{
if (job_rune_edq < 8) {
mes "[Rune Knight Renoa]";
mes "Besides touching stuff in this place without permission. Would you be able to understand the contents of the book?";
@@ -1179,7 +1181,7 @@ job3_rune01,50,36,1 script Runes, Make & Use 844,{
}
}
-mid_camp,238,250,3 script Rune Knight Sage Guard 468,2,2,{
+mid_camp,238,250,3 script Rune Knight Sage Guard 4_M_KNIGHT_BLACK,2,2,{
mes "[Rune Knight Sage Guard]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "The sage Serpeone is the one who has been with us since the beginning of the Rune Knights.";
@@ -1206,7 +1208,7 @@ mid_camp,238,250,3 script Rune Knight Sage Guard 468,2,2,{
close;
}
-mid_camp,13,138,3 script Dispatched Rune Knight#1 83,2,2,{
+mid_camp,13,138,3 script Dispatched Rune Knight#1 4_M_01,2,2,{
mes "[Dispatched Rune Knight]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Thanks for your work. We will continue our mission for the Rune Knight testers.";
@@ -1234,9 +1236,9 @@ mid_camp,13,138,3 script Dispatched Rune Knight#1 83,2,2,{
mes "Shh... Our mission is not something to be revealed to the public. Please just move along.";
close;
}
-spl_fild01,361,327,3 duplicate(Dispatched Rune Knight#1) Dispatched Rune Knight#2 83,2,2
+spl_fild01,361,327,3 duplicate(Dispatched Rune Knight#1) Dispatched Rune Knight#2 4_M_01,2,2
-spl_fild02,13,241,0 script #Barricade1 139,10,10,{
+spl_fild02,13,241,0 script #Barricade1 HIDDEN_WARP_NPC,10,10,{
end;
OnTouch:
if (job_rune_edq > 0 && job_rune_edq < 23) {
@@ -1254,7 +1256,7 @@ OnTouch:
end;
}
-mid_camp,235,250,3 script Sage Serpeone 435,2,2,{
+mid_camp,235,250,3 script Sage Serpeone 4_F_FAIRY,2,2,{
mes "[Sage Serpeone]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "Finally you are an honorable Rune Knight. I'm happy to help you.";
@@ -1418,7 +1420,7 @@ mid_camp,235,250,3 script Sage Serpeone 435,2,2,{
close;
}
-job3_rune01,114,50,3 script Rune Knight Velpino 468,{
+job3_rune01,114,50,3 script Rune Knight Velpino 4_M_KNIGHT_BLACK,{
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) {
mes "[Rune Knight Velpino]";
mes "You still smell like a fledging. Bring honor to the Rune Knights and raise your power...";
@@ -1552,7 +1554,7 @@ job3_rune01,114,50,3 script Rune Knight Velpino 468,{
close;
}
-job3_rune02,38,40,0 script #RK Test Hidden Portal 1 139,15,15,{
+job3_rune02,38,40,0 script #RK Test Hidden Portal 1 HIDDEN_WARP_NPC,15,15,{
end;
OnEnable:
enablenpc "#RK Test Hidden Portal 1";
@@ -1586,7 +1588,7 @@ OnTouch:
}
}
-job3_rune02,1,1,0 script job_rune_edq#1st_tb 139,{
+job3_rune02,1,1,0 script job_rune_edq#1st_tb HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#1st_tb";
@@ -1615,7 +1617,7 @@ OnTimer14000:
end;
}
-job3_rune02,1,2,0 script job_rune_edq#1st_tc 139,{
+job3_rune02,1,2,0 script job_rune_edq#1st_tc HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#1st_tc";
@@ -1651,7 +1653,7 @@ OnTimer305000:
end;
}
-job3_rune02,3,10,0 script job_rune_edq#1st_tcmc 139,{
+job3_rune02,3,10,0 script job_rune_edq#1st_tcmc HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#1st_tcmc";
@@ -1704,7 +1706,7 @@ OnMyMobDead:
end;
}
-job3_rune02,3,11,0 script job_rune_edq#1st_tcmc2 139,{
+job3_rune02,3,11,0 script job_rune_edq#1st_tcmc2 HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#1st_tcmc2";
@@ -1754,7 +1756,7 @@ OnMyMobDead:
end;
}
-job3_rune02,1,10,0 script job_rune_edq#1st_tcnc 139,{
+job3_rune02,1,10,0 script job_rune_edq#1st_tcnc HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#1st_tcnc";
@@ -1800,7 +1802,7 @@ OnTimer60000:
end;
}
-job3_rune02,34,46,5 script Captain Tigris#jrt1 470,2,2,{
+job3_rune02,34,46,5 script Captain Tigris#jrt1 4_M_KNIGHT_SILVER,2,2,{
if (job_rune_edq != 4 || $@job_rune_test2 != 0) {
donpcevent "job_rune_edq#1st_tcnc::OnUse";
end;
@@ -1846,7 +1848,7 @@ OnTimer5000:
end;
}
-job3_rune02,43,46,3 script Rune Knight Lunarea#jrt1 469,2,2,{
+job3_rune02,43,46,3 script Rune Knight Lunarea#jrt1 4_M_KNIGHT_GOLD,2,2,{
if (job_rune_edq != 4 || $@job_rune_test2 != 0) {
donpcevent "job_rune_edq#1st_tcnc::OnUse";
end;
@@ -1891,7 +1893,7 @@ OnTimer5000:
end;
}
-job3_rune02,43,34,1 script Rune Knight Renoa#jrt1 469,2,2,{
+job3_rune02,43,34,1 script Rune Knight Renoa#jrt1 4_M_KNIGHT_GOLD,2,2,{
if (job_rune_edq != 4 || $@job_rune_test2 != 0) {
donpcevent "job_rune_edq#1st_tcnc::OnUse";
end;
@@ -1937,7 +1939,7 @@ OnTimer5000:
end;
}
-job3_rune02,34,34,7 script Rune Knight Velpino#jrt1 468,2,2,{
+job3_rune02,34,34,7 script Rune Knight Velpino#jrt1 4_M_KNIGHT_BLACK,2,2,{
if (job_rune_edq != 4 || $@job_rune_test2 != 0) {
donpcevent "job_rune_edq#1st_tcnc::OnUse";
end;
@@ -1982,7 +1984,7 @@ OnTimer5000:
end;
}
-job3_rune02,2,1,0 script job_rune_edq#3rd_tb 139,{
+job3_rune02,2,1,0 script job_rune_edq#3rd_tb HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#3rd_tb";
@@ -2011,7 +2013,7 @@ OnTimer14000:
end;
}
-job3_rune02,2,2,0 script job_rune_edq#3rd_tc 139,{
+job3_rune02,2,2,0 script job_rune_edq#3rd_tc HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#3rd_tc";
@@ -2048,7 +2050,7 @@ OnTimer482000:
end;
}
-job3_rune02,2,3,0 script job_rune_edq#3rd_tc1 139,{
+job3_rune02,2,3,0 script job_rune_edq#3rd_tc1 HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#3rd_tc1";
@@ -2072,7 +2074,7 @@ OnMyMobDead:
end;
}
-job3_rune02,2,4,0 script job_rune_edq#3rd_tc2 139,{
+job3_rune02,2,4,0 script job_rune_edq#3rd_tc2 HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#3rd_tc2";
@@ -2096,7 +2098,7 @@ OnMyMobDead:
end;
}
-job3_rune02,2,5,0 script job_rune_edq#3rd_tc3 139,{
+job3_rune02,2,5,0 script job_rune_edq#3rd_tc3 HIDDEN_WARP_NPC,{
end;
OnInit:
disablenpc "job_rune_edq#3rd_tc3";
@@ -2132,19 +2134,11 @@ OnMyMobDead:
end;
}
-job3_rune01,92,62,3 script Kafra Employee::kaf_rune 114,{
- cutin "kafra_04",2;
- callfunc "F_KafSet";
- callfunc "F_Kafra",0,9,2,80,700;
- callfunc "F_KafEnd",0,0;
-}
-
-/*
-sec_in02,34,167,3 script R.Knight Job Manager 470,1,1,{
+sec_in02,34,167,3 script R.Knight Job Manager 4_M_KNIGHT_SILVER,1,1,{
+ callfunc "F_GM_NPC";
mes "Enter the Password.";
next;
- input .@inputstr$;
- if (.@inputstr$ == "1854") {
+ if (callfunc("F_GM_NPC","1854",1) == 1) {
mes "Rune Knight Job Change Managing Module Start";
next;
switch(select("GlobalVar check:GlobalVar Oneshot Modification")) {
@@ -2160,5 +2154,4 @@ sec_in02,34,167,3 script R.Knight Job Manager 470,1,1,{
}
close;
}
-job3_rune01,1,1,3 duplicate(R.Knight Job Manager) #renshucheck 844
-*/
+job3_rune01,1,1,3 duplicate(R.Knight Job Manager) #renshucheck CLEAR_NPC
diff --git a/npc/re/jobs/3-1/warlock.txt b/npc/re/jobs/3-1/warlock.txt
index d08d7395d..0efc323c8 100644
--- a/npc/re/jobs/3-1/warlock.txt
+++ b/npc/re/jobs/3-1/warlock.txt
@@ -1,15 +1,13 @@
//===== Hercules Script ======================================
//= Warlock Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib, Gepard & L0ne_W0lf
-//===== Current Version: =====================================
-//= 1.3a
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.4
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Wizard / High Wizard -> Warlock.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First version. [Masao]
//= 1.1 Fixed some conversion mistakes, replaced numbers with
//= constants, added item names in comments.
@@ -18,6 +16,8 @@
//= 1.2a Fixed a typo. [Euphy]
//= 1.3 Updated script, optimized. [Euphy]
//= 1.3a Added temporary coordinate fix #distorted_space_1-1. [Euphy]
+//= 1.3b Added official coordinates. [Euphy]
+//= 1.4 Added GM management function. [Euphy]
//============================================================
- script #distorted_space_ -1,{
@@ -66,11 +66,9 @@ OnTouch:
}
end;
}
-morocc,103,144,0 duplicate(#distorted_space_) #distorted_space_1 139,1,1
-splendide,141,284,0 duplicate(#distorted_space_) #distorted_space_2 139,1,1
-
-// This is a temporary fix until new official coordinates are found.
-morocc,98,144,0 duplicate(#distorted_space_) #distorted_space_1-1 139,1,1
+//morocc,103,144,0 duplicate(#distorted_space_) #distorted_space_1 HIDDEN_WARP_NPC,1,1
+morocc,95,132,0 duplicate(#distorted_space_) #distorted_space_1 HIDDEN_WARP_NPC,1,1
+splendide,141,284,0 duplicate(#distorted_space_) #distorted_space_2 HIDDEN_WARP_NPC,1,1
function script F_Warlock {
mes "[Assistant]";
@@ -205,7 +203,7 @@ function script F_Warlock {
end;
}
-spl_in02,77,107,5 script Assistant#Warlock1 446,{
+spl_in02,77,107,5 script Assistant#Warlock1 4_M_FAIRYKID5,{
if (job_wl == 0) {
callfunc "F_Warlock";
end;
@@ -323,7 +321,7 @@ L_Quest:
return;
}
-spl_in02,60,231,5 script Yoop#Warlock 446,{
+spl_in02,60,231,5 script Yoop#Warlock 4_M_FAIRYKID5,{
mes "[Yoop]";
if (job_wl < 4) {
mes "Who are you?";
@@ -452,7 +450,7 @@ spl_in02,60,231,5 script Yoop#Warlock 446,{
}
}
-spl_in02,84,103,3 script Assistant#Warlock2 439,{
+spl_in02,84,103,3 script Assistant#Warlock2 4_F_FAIRYKID4,{
if (job_wl == 0) {
callfunc "F_Warlock";
end;
@@ -543,7 +541,7 @@ spl_in02,84,103,3 script Assistant#Warlock2 439,{
}
}
-spl_in02,78,110,5 script Assistant#Warlock3 437,{
+spl_in02,78,110,5 script Assistant#Warlock3 4_F_FAIRYKID2,{
if (job_wl == 0) {
callfunc "F_Warlock";
end;
@@ -570,7 +568,7 @@ spl_in02,78,110,5 script Assistant#Warlock3 437,{
}
}
-spl_in02,80,108,5 script Guild Master#Warlock 465,{
+spl_in02,80,108,5 script Guild Master#Warlock 4_F_FAIRY1,{
if (job_wl == 0) {
callfunc "F_Warlock";
end;
@@ -712,14 +710,14 @@ spl_in02,80,108,5 script Guild Master#Warlock 465,{
}
}
-job3_war01,22,22,7 script Yoop#WRR 439,{
+job3_war01,22,22,7 script Yoop#WRR 4_F_FAIRYKID4,{
mes "[Yoop]";
mes "If you ask Ebein to be sent to the magical room, he would send you there.";
mes "Wait in the queue to enter the Chamber of Magic.";
close;
}
-job3_war01,29,25,0 script Ebein#WRR 437,{
+job3_war01,29,25,0 script Ebein#WRR 4_F_FAIRYKID2,{
mes "[Ebein]";
mes "Would you like to take a test?";
mes "If you stand by in the waiting room, you'll be able to go into the Chamber of Magic.";
@@ -744,7 +742,7 @@ job3_war01,29,25,0 script Ebein#WRR 437,{
}
}
-job3_war01,29,25,5 script The chamber of magic#1 437,{
+job3_war01,29,25,5 script The chamber of magic#1 4_F_FAIRYKID2,{
end;
OnInit:
disablenpc "The chamber of magic#1";
@@ -1056,8 +1054,8 @@ OnTimer6000:
end;
}
-/*
-job3_war01,1,2,0 script Button Girl 66,{
+job3_war01,1,2,0 script Button Girl#wl 1_F_01,{
+ callfunc "F_GM_NPC";
switch(select("Open Arena:Close Arena:Open the Chamber of Magic:Close the Chamber of Magic:Hollow Stone On:Hollow Stone Off:Cancel")) {
case 1:
mes "Opening the Arena.";
@@ -1093,7 +1091,6 @@ job3_war01,1,2,0 script Button Girl 66,{
close;
}
}
-*/
spl_fild02,0,0,0,0 monster Bradium Golem 2049,20,5000,0,0
-spl_fild02,0,0,0,0 monster Naga 2047,20,5000,0,0
+spl_fild02,0,0,0,0 monster Naga 2047,20,5000,0,0 \ No newline at end of file
diff --git a/npc/re/jobs/3-2/genetic.txt b/npc/re/jobs/3-2/genetic.txt
index 5ca20d2d3..21dfc943a 100644
--- a/npc/re/jobs/3-2/genetic.txt
+++ b/npc/re/jobs/3-2/genetic.txt
@@ -4,8 +4,6 @@
//= Muad_Dib, Aeomin
//===== Current Version: =====================================
//= 1.3a
-//===== Compatible With: =====================================
-//= Hercules
//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Alchemist / Creator -> Genetic.
@@ -17,7 +15,7 @@
//= 1.3a Moved warps to separate file. [Euphy]
//============================================================
-alde_alche,35,186,5 script Alchemist Union Member 805,{
+alde_alche,35,186,5 script Alchemist Union Member 1_M_SIGNALCHE,{
mes "[Alchemist Union Member]";
if (BaseLevel > 98 && JobLevel > 49){
if (BaseJob == Job_Alchemist) {
@@ -85,7 +83,7 @@ alde_alche,35,186,5 script Alchemist Union Member 805,{
close;
}
-job3_gen01,25,58,3 script Devries#gen 865,{
+job3_gen01,25,58,3 script Devries#gen 4_LGTSCIENCE,{
if (SkillPoint != 0) {
mes "- You still have some unused skill points. -";
close;
@@ -575,7 +573,7 @@ job3_gen01,25,58,3 script Devries#gen 865,{
close;
}
-job3_gen01,83,72,3 script Delivery Box#generic 111,{
+job3_gen01,83,72,3 script Delivery Box#generic HIDDEN_NPC,{
mes "- There's a big box. -";
if (job_gen == 2) {
next;
@@ -604,7 +602,7 @@ job3_gen01,83,72,3 script Delivery Box#generic 111,{
close;
}
-job3_gen01,12,56,3 script Plant Guide#generic 111,{
+job3_gen01,12,56,3 script Plant Guide#generic HIDDEN_NPC,{
mes "<The Easiest Alchemy in the World>";
mes "Written by Bob Ross.";
next;
@@ -668,32 +666,32 @@ function script Genetic_Job_Plant {
close;
}
-job3_gen01,36,55,3 script Bigibigi Grass#gen 844,{
+job3_gen01,36,55,3 script Bigibigi Grass#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2209,"Bigibigi Grass","The size is quite big to be normal grass so it's called Bigibigi Grass.";
end;
}
-job3_gen01,36,45,3 script Muka Tree#gen 844,{
+job3_gen01,36,45,3 script Muka Tree#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2210,"Muka Tree","This is the Muka Tree which protects its delicate inside with sharp thorns.",1;
end;
}
-job3_gen01,42,55,3 script Bogi Vine#gen 844,{
+job3_gen01,42,55,3 script Bogi Vine#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2211,"Bogi Vine","This is a Bogi Vine which has a very fast growth speed.",1;
end;
}
-job3_gen01,30,58,3 script Aolatura#gen 844,{
+job3_gen01,30,58,3 script Aolatura#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2212,"Aolatura","This is known to blossom then thousand flowers as it only blooms once per lifetime.";
end;
}
-job3_gen01,30,63,3 script Congra#gen 844,{
+job3_gen01,30,63,3 script Congra#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2213,"Congra","It's a plant that has a big and solid stem with enormous leaves.";
end;
}
-job3_gen01,32,38,3 script Sticky Grass#gen 844,{
+job3_gen01,32,38,3 script Sticky Grass#gen CLEAR_NPC,{
callfunc "Genetic_Job_Plant",2214,"Sticky Grass","I may not know the name but it's sticky and can stick to just about anything.";
end;
}
-job3_gen01,7,50,3 script Testing Table#gen 844,{
+job3_gen01,7,50,3 script Testing Table#gen CLEAR_NPC,{
if (job_gen == 7) {
mes "- This is a testing table with a lot of equipment. I think I can study the combinations here with plants. -";
next;
@@ -773,11 +771,11 @@ job3_gen01,7,50,3 script Testing Table#gen 844,{
close;
}
-job3_gen01,21,67,3 script Super Cultivator#gen 844,{
+job3_gen01,21,67,3 script Super Cultivator#gen CLEAR_NPC,{
end;
}
-job3_gen01,91,48,3 script Demi Calberine#gen 982,{
+job3_gen01,91,48,3 script Demi Calberine#gen 4_F_SCIENCE,{
mes "[Demi Calberine]";
if (job_gen < 62) {
mes "Hmm~ Where'd that bolt go?";
@@ -969,15 +967,15 @@ OnTimer7000:
stopnpctimer;
end;
}
-job3_gen01,84,45,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen1 111
-job3_gen01,77,41,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen2 111
-job3_gen01,78,57,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen3 111
-job3_gen01,89,59,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen4 111
-job3_gen01,90,51,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen5 111
-job3_gen01,83,27,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen6 111
-job3_gen01,74,45,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen7 111
+job3_gen01,84,45,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen1 HIDDEN_NPC
+job3_gen01,77,41,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen2 HIDDEN_NPC
+job3_gen01,78,57,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen3 HIDDEN_NPC
+job3_gen01,89,59,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen4 HIDDEN_NPC
+job3_gen01,90,51,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen5 HIDDEN_NPC
+job3_gen01,83,27,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen6 HIDDEN_NPC
+job3_gen01,74,45,3 duplicate(Scattered Stuff#gen) Scattered Stuff#gen7 HIDDEN_NPC
-job3_gen01,18,39,3 script Warning#gen 837,{
+job3_gen01,18,39,3 script Warning#gen 2_BULLETIN_BOARD,{
mes "= Warning =";
mes "If you bully my spores, I'll scream!!!";
if (job_gen < 75) close;
@@ -994,30 +992,30 @@ job3_gen01,18,39,3 script Warning#gen 837,{
}
}
-job3_gen01,80,12,1 script Stacked Magazines#gen 111,{
+job3_gen01,80,12,1 script Stacked Magazines#gen HIDDEN_NPC,{
mes "- 'Monthly Bang!' magazines are piled up in disorder. -";
close;
}
-job3_gen01,83,20,1 script Bed#gen 111,{
+job3_gen01,83,20,1 script Bed#gen HIDDEN_NPC,{
mes "- A checker patterned blanket set which looks like it was picked carefully is too good for this dirty bed. -";
close;
}
-job3_gen01,85,25,1 script Opened Book#gen 111,{
+job3_gen01,85,25,1 script Opened Book#gen HIDDEN_NPC,{
mes "< Do you want to have my pretty room? Do you have enough zeny? Is there enough room? Run to the Lighthalzen Department Store right away and get the most high-end wall papers and interior accessories! >";
next;
mes "< Luxurious candles that'll lighten up your room, a huge golden mirror that every lady owns, you cannot miss any of them! >";
close;
}
-job3_gen01,81,81,0 script #dbroom 139,2,2,{
+job3_gen01,81,81,0 script #dbroom HIDDEN_WARP_NPC,2,2,{
OnTouch:
mes "- It's a room that looks like a storehouse, thanks to so many parcels piled up in the room. -";
close;
}
-job3_gen01,24,32,0 script The gaze of Devries 139,2,2,{
+job3_gen01,24,32,0 script The gaze of Devries HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (checkquest(2223,HUNTING) == 2) {
mapannounce "job3_gen01","Devries: Whoa? Was there a lost kitty in the spore pen?",bc_map,"0x99CC00"; //FW_NORMAL 12 0 0
@@ -1044,4 +1042,4 @@ job3_gen01,23,33,0,0 monster Poison Spore 1428,1,7000,0,0
job3_gen01,21,30,0,0 monster Poison Spore 1428,1,7000,0,0
job3_gen01,26,34,0,0 monster Poison Spore 1428,1,7000,0,0
job3_gen01,23,33,0,0 monster Poison Spore 1428,1,7000,0,0
-job3_gen01,21,30,0,0 monster Poison Spore 1428,1,7000,0,0
+job3_gen01,21,30,0,0 monster Poison Spore 1428,1,7000,0,0 \ No newline at end of file
diff --git a/npc/re/jobs/3-2/minstrel.txt b/npc/re/jobs/3-2/minstrel.txt
index 5ffc84a06..8b9288ad6 100644
--- a/npc/re/jobs/3-2/minstrel.txt
+++ b/npc/re/jobs/3-2/minstrel.txt
@@ -1,22 +1,20 @@
//===== Hercules Script ======================================
//= Minstrel Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Bard / Clown -> Minstrel.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Fix the checking of requirements before job change to Minstel [JayPee]
//= 1.2 Optimized. [Euphy]
//= 1.3 Updated script. [Euphy]
//============================================================
-alberta,196,133,4 script Bard#job_min 486,{
+alberta,196,133,4 script Bard#job_min 4_M_BARD,{
if (job_min == 0) {
if (BaseJob == Job_Bard && BaseLevel > 98 && JobLevel > 49) {
mes "[Bard]";
@@ -239,7 +237,7 @@ alberta,196,133,4 script Bard#job_min 486,{
close;
}
-prontera,141,97,4 script Warmhearted woman 701,{
+prontera,141,97,4 script Warmhearted woman 4_F_GODEMOM,{
mes "[Warmhearted woman]";
if (job_min == 1) {
mes "Maestro Song?";
@@ -270,7 +268,7 @@ prontera,141,97,4 script Warmhearted woman 701,{
close;
}
-prontera,140,331,6 script Glasses-wearing Man 883,{
+prontera,140,331,6 script Glasses-wearing Man 4_M_ALCHE_D,{
mes "[Glasses-wearing Man]";
if (job_min == 2) {
mes "You mean Maestro Song?";
@@ -303,7 +301,7 @@ prontera,140,331,6 script Glasses-wearing Man 883,{
close;
}
-prontera,146,218,4 script Woman#job_min 90,{
+prontera,146,218,4 script Woman#job_min 4_F_01,{
if (job_min == 3) {
mes "[Woman]";
mes "Do you know who Maestro Song is?";
@@ -342,7 +340,7 @@ prontera,146,218,4 script Woman#job_min 90,{
close;
}
-airplane,222,67,6 script Karian#job_min1 486,{
+airplane,222,67,6 script Karian#job_min1 4_M_BARD,{
mes "[Karian]";
mes "Yup!!!!!!!!!!!!!!!!!!";
next;
@@ -362,7 +360,7 @@ airplane,222,67,6 script Karian#job_min1 486,{
close;
}
-hu_in01,267,5,3 script Karian#job_min2 486,{
+hu_in01,267,5,3 script Karian#job_min2 4_M_BARD,{
mes "[Karian]";
if (job_min == 6) {
mes "Eeeeh it's so painful.";
@@ -487,7 +485,7 @@ hu_in01,267,5,3 script Karian#job_min2 486,{
close;
}
-hu_in01,361,103,3 script Tone-deaf person 995,{
+hu_in01,361,103,3 script Tone-deaf person 4_M_CASMAN1,{
if (job_min == 7) {
mes "[Tone-deaf person]";
mes "Lala~ lala~";
@@ -707,7 +705,7 @@ hu_in01,361,103,3 script Tone-deaf person 995,{
close;
}
-tha_scene01,140,200,0 script #min_receipt 139,3,3,{
+tha_scene01,140,200,0 script #min_receipt HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_min == 10 || (job_min == 11 && countitem(6271) == 0)) {
mes "-There is a piece of paper on the ground.-";
@@ -749,7 +747,7 @@ OnTouch:
end;
}
-tha_scene01,139,204,6 script Karian#cmd1 486,{
+tha_scene01,139,204,6 script Karian#cmd1 4_M_BARD,{
end;
OnInit:
disablenpc "Karian#cmd1";
@@ -768,7 +766,7 @@ OnTimer15000:
end;
}
-ve_fild07,129,132,5 script Karian#cmd5 486,{
+ve_fild07,129,132,5 script Karian#cmd5 4_M_BARD,{
end;
OnInit:
disablenpc "Karian#cmd5";
@@ -787,7 +785,7 @@ OnTimer30000:
end;
}
-prontera,155,49,4 script Karian#cmd9 486,{
+prontera,155,49,4 script Karian#cmd9 4_M_BARD,{
end;
OnInit:
disablenpc "Karian#cmd9";
@@ -806,7 +804,7 @@ OnTimer300000:
end;
}
-yuno,146,168,0 script Karian#cmd2 486,{
+yuno,146,168,0 script Karian#cmd2 4_M_BARD,{
end;
OnInit:
disablenpc strnpcinfo(0);
@@ -824,13 +822,13 @@ OnTimer100000:
stopnpctimer;
end;
}
-lighthalzen,160,124,6 duplicate(Karian#cmd2) Karian#cmd3 486
-ra_in01,357,128,0 duplicate(Karian#cmd2) Karian#cmd4 486
-comodo,184,109,0 duplicate(Karian#cmd2) Karian#cmd6 486
-moc_fild16,204,231,0 duplicate(Karian#cmd2) Karian#cmd7 486
-aldebaran,142,128,2 duplicate(Karian#cmd2) Karian#cmd8 486
+lighthalzen,160,124,6 duplicate(Karian#cmd2) Karian#cmd3 4_M_BARD
+ra_in01,357,128,0 duplicate(Karian#cmd2) Karian#cmd4 4_M_BARD
+comodo,184,109,0 duplicate(Karian#cmd2) Karian#cmd6 4_M_BARD
+moc_fild16,204,231,0 duplicate(Karian#cmd2) Karian#cmd7 4_M_BARD
+aldebaran,142,128,2 duplicate(Karian#cmd2) Karian#cmd8 4_M_BARD
-yuno,143,170,6 script Mr. Click#job_min 748,{
+yuno,143,170,6 script Mr. Click#job_min 4_M_ALCHE_A,{
mes "[Mr. Click]";
if (job_min == 11) {
mes "Hi~ welcome~";
@@ -954,7 +952,7 @@ yuno,143,170,6 script Mr. Click#job_min 748,{
close;
}
-lighthalzen,155,119,3 script Little girl#job_min 891,3,3,{
+lighthalzen,155,119,3 script Little girl#job_min 4_F_HUGIRL,3,3,{
OnTouch:
if (checkquest(11145,HUNTING) == 2) {
if (job_min == 12) {
@@ -1084,7 +1082,7 @@ OnTouch:
close;
}
-ice_dun01,157,15,0 script #Minsicecave1 139,2,2,{
+ice_dun01,157,15,0 script #Minsicecave1 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-A long time ago-";
@@ -1095,7 +1093,7 @@ OnTouch:
end;
}
-ice_dun01,157,23,0 script #Minsicecave2 139,2,2,{
+ice_dun01,157,23,0 script #Minsicecave2 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-The giant born to ice-";
@@ -1106,7 +1104,7 @@ OnTouch:
end;
}
-ice_dun01,141,41,0 script #Minsicecave3 139,2,2,{
+ice_dun01,141,41,0 script #Minsicecave3 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-died-";
@@ -1117,7 +1115,7 @@ OnTouch:
end;
}
-ice_dun01,120,35,0 script #Minsicecave4 139,2,2,{
+ice_dun01,120,35,0 script #Minsicecave4 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His body became the ground-";
@@ -1128,7 +1126,7 @@ OnTouch:
end;
}
-ice_dun01,104,30,0 script #Minsicecave5 139,2,2,{
+ice_dun01,104,30,0 script #Minsicecave5 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His bones became a mountain-";
@@ -1139,7 +1137,7 @@ OnTouch:
end;
}
-ice_dun01,86,23,0 script #Minsicecave6 139,2,2,{
+ice_dun01,86,23,0 script #Minsicecave6 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His skin became soil-";
@@ -1150,7 +1148,7 @@ OnTouch:
end;
}
-ice_dun01,75,19,0 script #Minsicecave7 139,2,2,{
+ice_dun01,75,19,0 script #Minsicecave7 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His blood became a river-";
@@ -1161,7 +1159,7 @@ OnTouch:
end;
}
-ice_dun01,56,12,0 script #Minsicecave8 139,2,2,{
+ice_dun01,56,12,0 script #Minsicecave8 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His hair became a plant-";
@@ -1172,7 +1170,7 @@ OnTouch:
end;
}
-ice_dun01,29,26,0 script #Minsicecave9 139,2,2,{
+ice_dun01,29,26,0 script #Minsicecave9 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His head became the sky-";
@@ -1183,7 +1181,7 @@ OnTouch:
end;
}
-ice_dun01,25,46,0 script #Minsicecave10 139,2,2,{
+ice_dun01,25,46,0 script #Minsicecave10 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-His tears from his-";
@@ -1194,7 +1192,7 @@ OnTouch:
end;
}
-ice_dun01,20,66,0 script #Minsicecave11 139,2,2,{
+ice_dun01,20,66,0 script #Minsicecave11 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-eyes became dew-";
@@ -1205,7 +1203,7 @@ OnTouch:
end;
}
-ice_dun01,22,85,0 script #Minsicecave12 139,2,2,{
+ice_dun01,22,85,0 script #Minsicecave12 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 13) {
mes "-on the leaves-";
@@ -1219,7 +1217,7 @@ OnTouch:
end;
}
-ra_in01,361,129,0 script #jmRachelHotel 139,2,2,{
+ra_in01,361,129,0 script #jmRachelHotel HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 14) {
mes "[Old Woman]";
@@ -1234,7 +1232,7 @@ OnTouch:
end;
}
-ra_in01,358,130,4 script Old Woman#job_min 979,{
+ra_in01,358,130,4 script Old Woman#job_min 4_F_CAVE1,{
mes "[Old Woman]";
if (job_min == 14) {
mes "Huu!!";
@@ -1331,7 +1329,7 @@ ra_in01,358,130,4 script Old Woman#job_min 979,{
close;
}
-ve_fild07,131,132,5 script =Notice=#job_min 837,{
+ve_fild07,131,132,5 script =Notice=#job_min 2_BULLETIN_BOARD,{
function Choice;
if (job_min == 16) {
mes "===Notice===";
@@ -1470,7 +1468,7 @@ function Choice;
}
}
-comodo,184,108,0 script #jmComodo Almost Dead 139,2,2,{
+comodo,184,108,0 script #jmComodo Almost Dead HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 17) {
mes "["+strcharinfo(0)+"]";
@@ -1510,7 +1508,7 @@ OnTouch:
end;
}
-comodo,192,119,0 script Kayak Master#job_min 98,{
+comodo,192,119,0 script Kayak Master#job_min 4W_M_02,{
mes "[Kayak Master]";
if (job_min == 18) {
mes "What?";
@@ -1535,7 +1533,7 @@ comodo,192,119,0 script Kayak Master#job_min 98,{
close;
}
-comodo,159,316,4 script Woman Roasting Meat 701,{
+comodo,159,316,4 script Woman Roasting Meat 4_F_GODEMOM,{
mes "[Woman Roasting Meat]";
if (job_min == 19) {
mes "Maestro Song?";
@@ -1579,7 +1577,7 @@ comodo,159,316,4 script Woman Roasting Meat 701,{
close;
}
-moc_fild16,206,232,0 script #jmTransfer news 139,3,3,{
+moc_fild16,206,232,0 script #jmTransfer news HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_min == 20) {
mes "["+strcharinfo(0)+"]";
@@ -1655,7 +1653,7 @@ OnTouch:
end;
}
-aldebaran,140,130,0 script #jmAldebaran Clock Tower 139,3,3,{
+aldebaran,140,130,0 script #jmAldebaran Clock Tower HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_min == 21) {
mes "["+strcharinfo(0)+"]";
@@ -1720,7 +1718,7 @@ OnTouch:
end;
}
-prontera,155,40,0 script #jmprt1 139,2,2,{
+prontera,155,40,0 script #jmprt1 HIDDEN_WARP_NPC,2,2,{
OnTouch:
if (job_min == 22) {
mes "[Karian]";
@@ -1738,7 +1736,7 @@ OnTouch:
end;
}
-prontera,155,42,0 script #prtjm1 139,1,1,{
+prontera,155,42,0 script #prtjm1 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 23) {
mes "-Let me go back to my hometown.-";
@@ -1750,7 +1748,7 @@ OnTouch:
end;
}
-prontera,155,44,0 script #prtjm2 139,1,1,{
+prontera,155,44,0 script #prtjm2 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 24) {
mes "-There are many beautiful flowers.-";
@@ -1762,7 +1760,7 @@ OnTouch:
end;
}
-prontera,155,46,0 script #prtjm3 139,1,1,{
+prontera,155,46,0 script #prtjm3 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 25) {
mes "-The birds sing for me.-";
@@ -1774,7 +1772,7 @@ OnTouch:
end;
}
-prontera,155,48,0 script #prtjm4 139,1,1,{
+prontera,155,48,0 script #prtjm4 HIDDEN_WARP_NPC,1,1,{
OnTouch:
if (job_min == 26 || job_min == 27) {
mes "-It's this old town.-";
@@ -1824,7 +1822,7 @@ OnTouch:
end;
}
-prt_in,94,172,4 script Karian#job_min3 480,{
+prt_in,94,172,4 script Karian#job_min3 4_M_MINSTREL1,{
if (job_min == 27) {
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 3500) {
mes "While you are on a trip, you gain lots of stuff. Make yourself lighter.";
@@ -1917,4 +1915,4 @@ prt_in,94,172,4 script Karian#job_min3 480,{
mes "[Karian]";
mes "How did you get in here?";
close;
-}
+} \ No newline at end of file
diff --git a/npc/re/jobs/3-2/royal_guard.txt b/npc/re/jobs/3-2/royal_guard.txt
index 1222c23ed..82632ed36 100644
--- a/npc/re/jobs/3-2/royal_guard.txt
+++ b/npc/re/jobs/3-2/royal_guard.txt
@@ -1,20 +1,19 @@
//===== Hercules Script ======================================
//= Royal Guard Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
-//= 1.1
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.2
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Crusader / Paladin -> Royal Guard.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [brAthena]
//= 1.1 Updated script. [Euphy]
+//= 1.2 Added GM management function. [Euphy]
//============================================================
-prt_castle,48,161,3 script Middle-aged Gentleman#rg 57,{
+prt_castle,48,161,3 script Middle-aged Gentleman#rg 1_M_LIBRARYMASTER,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "- Your pack is too heavy. -";
mes "- Lighten your body first -";
@@ -334,7 +333,7 @@ prt_castle,48,161,3 script Middle-aged Gentleman#rg 57,{
}
}
-glast_01,240,366,5 script Memory of King Schmidtz 844,{
+glast_01,240,366,5 script Memory of King Schmidtz CLEAR_NPC,{
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "- Your pack is too heavy. -";
mes "- Lighten your body first -";
@@ -435,7 +434,7 @@ glast_01,240,366,5 script Memory of King Schmidtz 844,{
end;
}
-gl_church,173,88,0 script Delicate trace#01 844,{
+gl_church,173,88,0 script Delicate trace#01 CLEAR_NPC,{
if (job_royal == 4 && countitem(6274) == 0) {
progressbar "ffff00",5;
set .@roy_ran, rand(1,70);
@@ -465,18 +464,18 @@ OnTimer40000:
specialeffect EF_MAPPILLAR;
end;
}
-gl_church,158,103,0 duplicate(Delicate trace#01) Delicate trace#02 844
-gl_church,139,90,0 duplicate(Delicate trace#01) Delicate trace#03 844
-gl_church,126,62,0 duplicate(Delicate trace#01) Delicate trace#04 844
-gl_church,148,5,0 duplicate(Delicate trace#01) Delicate trace#05 844
-gl_church,185,72,0 duplicate(Delicate trace#01) Delicate trace#06 844
-gl_church,185,72,0 duplicate(Delicate trace#01) Delicate trace#07 844
-gl_church,211,94,0 duplicate(Delicate trace#01) Delicate trace#08 844
-gl_church,185,125,0 duplicate(Delicate trace#01) Delicate trace#09 844
-gl_church,143,125,0 duplicate(Delicate trace#01) Delicate trace#10 844
-gl_church,105,115,0 duplicate(Delicate trace#01) Delicate trace#11 844
+gl_church,158,103,0 duplicate(Delicate trace#01) Delicate trace#02 CLEAR_NPC
+gl_church,139,90,0 duplicate(Delicate trace#01) Delicate trace#03 CLEAR_NPC
+gl_church,126,62,0 duplicate(Delicate trace#01) Delicate trace#04 CLEAR_NPC
+gl_church,148,5,0 duplicate(Delicate trace#01) Delicate trace#05 CLEAR_NPC
+gl_church,185,72,0 duplicate(Delicate trace#01) Delicate trace#06 CLEAR_NPC
+gl_church,185,72,0 duplicate(Delicate trace#01) Delicate trace#07 CLEAR_NPC
+gl_church,211,94,0 duplicate(Delicate trace#01) Delicate trace#08 CLEAR_NPC
+gl_church,185,125,0 duplicate(Delicate trace#01) Delicate trace#09 CLEAR_NPC
+gl_church,143,125,0 duplicate(Delicate trace#01) Delicate trace#10 CLEAR_NPC
+gl_church,105,115,0 duplicate(Delicate trace#01) Delicate trace#11 CLEAR_NPC
-gl_church,158,100,0 script #Clue of traces 111,4,4,{
+gl_church,158,100,0 script #Clue of traces HIDDEN_NPC,4,4,{
end;
OnTouch:
if (job_royal == 4 && countitem(6274) == 0) {
@@ -497,8 +496,8 @@ OnTouch:
end;
}
-/*
-sec_in02,12,43,3 script sorcereryal 57,1,1,{
+sec_in02,12,43,3 script sorcereryal 1_M_LIBRARYMASTER,1,1,{
+ callfunc "F_GM_NPC";
switch(select("Royal Guard:Rune Knight:Sorcerer")) {
case 1:
mes "1~5";
@@ -538,4 +537,3 @@ sec_in02,12,43,3 script sorcereryal 57,1,1,{
close;
}
}
-*/
diff --git a/npc/re/jobs/3-2/shadow_chaser.txt b/npc/re/jobs/3-2/shadow_chaser.txt
index 313ce7390..201a7fb4f 100644
--- a/npc/re/jobs/3-2/shadow_chaser.txt
+++ b/npc/re/jobs/3-2/shadow_chaser.txt
@@ -1,22 +1,20 @@
//===== Hercules Script ======================================
//= Shadow Chaser Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.3
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Rogue / Stalker -> Shadow Chaser.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [ultragunner, Oshinoke]
//= 1.1 Standardized. [Euphy]
//= 1.2 Updated dialogue. [Joseph]
//= 1.3 Updated to official script. [Euphy]
//============================================================
-morocc,156,70,3 script Girl#sc00 93,3,3,{
+morocc,156,70,3 script Girl#sc00 4_F_04,3,3,{
mes "[Girl]";
if (BaseJob == Job_Rogue) {
if (job_sha == 0) {
@@ -75,7 +73,7 @@ OnTouch:
end;
}
-in_rogue,376,100,5 script Guild Member#sc01 828,{
+in_rogue,376,100,5 script Guild Member#sc01 4_M_ROGUE,{
if (BaseJob == Job_Rogue) {
if (job_sha < 2) {
set @job_sha,0;
@@ -145,7 +143,7 @@ in_rogue,376,100,5 script Guild Member#sc01 828,{
close;
}
-in_rogue,379,99,1 script Guild Member#sc02 747,{
+in_rogue,379,99,1 script Guild Member#sc02 4_F_ROGUE,{
if (BaseJob == Job_Rogue) {
if (job_sha < 2) {
set @job_sha,1;
@@ -175,7 +173,7 @@ in_rogue,379,99,1 script Guild Member#sc02 747,{
close;
}
-in_rogue,379,101,3 script Scary Man#sc03 810,{
+in_rogue,379,101,3 script Scary Man#sc03 1_M_SIGNROGUE,{
if (job_sha == 0) {
if (BaseJob == Job_Rogue && BaseLevel > 98 && JobLevel > 49) {
mes "[Scary man]";
@@ -294,7 +292,7 @@ L_Code:
return;
}
-s_atelier,65,123,5 script Manager#sc04_prt 903,{
+s_atelier,65,123,5 script Manager#sc04_prt 4_M_KHKYEL,{
if (job_sha == 2) {
mes "[Manager]";
mes "Where's Max!?";
@@ -613,7 +611,7 @@ L_Code:
close;
}
-s_atelier,168,65,5 script Manager#sc08_ra 923,{
+s_atelier,168,65,5 script Manager#sc08_ra 4_M_DOCTOR,{
if (job_sha < 10) {
mes "[Manager]";
mes "Who are you?";
@@ -885,7 +883,7 @@ L_Code:
close;
}
-s_atelier,167,129,3 script Manager#sc06_yuno 806,{
+s_atelier,167,129,3 script Manager#sc06_yuno 1_M_SIGNART,{
if (job_sha < 19) {
mes "[Manager]";
mes "What?";
@@ -1120,7 +1118,7 @@ L_Code:
return;
}
-s_atelier,25,75,3 script Manager#sc10_lgt 899,{
+s_atelier,25,75,3 script Manager#sc10_lgt 4_M_HUMAN_02,{
if (job_sha < 26) {
mes "[Manager]";
mes "You are?";
@@ -1314,7 +1312,7 @@ s_atelier,25,75,3 script Manager#sc10_lgt 899,{
close;
}
-s_atelier,73,65,3 script Vicente#sc12_lgt 899,{
+s_atelier,73,65,3 script Vicente#sc12_lgt 4_M_HUMAN_02,{
mes "[Vicente]";
if (job_sha < 29) {
mes "If you don't have anything special to do here, you'd better leave.";
@@ -1340,7 +1338,7 @@ s_atelier,73,65,3 script Vicente#sc12_lgt 899,{
close;
}
-s_atelier,70,66,4 script Dumk#sc13_lgh 481,{
+s_atelier,70,66,4 script Dumk#sc13_lgh 4_M_SHADOWCHASER,{
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
mes "[Dumk]";
mes "What is it?";
@@ -1670,7 +1668,7 @@ s_atelier,70,66,4 script Dumk#sc13_lgh 481,{
// Flames
//============================================================
-tur_dun03,38,209,1 script Blue Flame#sc_f01 802,{
+tur_dun03,38,209,1 script Blue Flame#sc_f01 4_NFWISP,{
if (job_sha == 5) {
mes "A blue flame is roaring.";
mes "The deciphered code means...";
@@ -1755,7 +1753,7 @@ tur_dun03,38,209,1 script Blue Flame#sc_f01 802,{
close;
}
-ice_dun02,206,223,1 script Red Flame#sc_f02 802,{
+ice_dun02,206,223,1 script Red Flame#sc_f02 4_NFWISP,{
if (job_sha < 11) {
mes "An unknown red flame is roaring.";
close;
@@ -1819,7 +1817,7 @@ ice_dun02,206,223,1 script Red Flame#sc_f02 802,{
close;
}
-niflheim,230,276,1 script Red Flame#sc_f03 802,{
+niflheim,230,276,1 script Red Flame#sc_f03 4_NFWISP,{
if (job_sha < 21) {
mes "That's a mysterious flame.";
mes "It looks like cursing.";
@@ -1922,7 +1920,7 @@ niflheim,230,276,1 script Red Flame#sc_f03 802,{
// Boxes
//============================================================
-job3_sha01,22,78,0 script ????#keybox01 844,{
+job3_sha01,22,78,0 script ????#keybox01 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You can't continue on in this quest because you are overweight. -";
close;
@@ -1992,7 +1990,7 @@ job3_sha01,22,78,0 script ????#keybox01 844,{
close;
}
-job3_sha01,25,28,0 script ????#keybox02 844,{
+job3_sha01,25,28,0 script ????#keybox02 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You can't continue on in this quest because you are overweight. -";
close;
@@ -2071,7 +2069,7 @@ job3_sha01,25,28,0 script ????#keybox02 844,{
end;
}
-job3_sha01,73,80,0 script ????#keybox03 844,{
+job3_sha01,73,80,0 script ????#keybox03 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You can't continue on in this quest because you are overweight. -";
close;
@@ -2208,7 +2206,7 @@ job3_sha01,73,80,0 script ????#keybox03 844,{
end;
}
-job3_sha01,71,27,0 script ????#keybox04 844,{
+job3_sha01,71,27,0 script ????#keybox04 CLEAR_NPC,{
if (checkweight(1201,1) == 0) {
mes "- You can't continue on in this quest because you are overweight. -";
close;
@@ -2269,7 +2267,7 @@ job3_sha01,71,27,0 script ????#keybox04 844,{
// Brush Shops
//============================================================
-s_atelier,29,119,3 script Max#sc05_prt 97,{
+s_atelier,29,119,3 script Max#sc05_prt 4W_M_01,{
mes "[Max]";
mes "Welcome~";
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
@@ -2334,7 +2332,7 @@ s_atelier,29,119,3 script Max#sc05_prt 97,{
}
}
-s_atelier,136,70,3 script Titika#sc09_ra 914,{
+s_atelier,136,70,3 script Titika#sc09_ra 4_F_CHILD,{
mes "[Titika]";
mes "Welcome.";
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
@@ -2385,7 +2383,7 @@ s_atelier,136,70,3 script Titika#sc09_ra 914,{
}
}
-s_atelier,124,128,3 script RimiGX#sc07_yuno 862,{
+s_atelier,124,128,3 script RimiGX#sc07_yuno 4_F_LGTGIRL,{
mes "[RimiGX]";
mes "Welcome.";
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
@@ -2434,7 +2432,7 @@ s_atelier,124,128,3 script RimiGX#sc07_yuno 862,{
}
}
-s_atelier,26,68,3 script Vito#sc11_lgt 904,{
+s_atelier,26,68,3 script Vito#sc11_lgt 4_M_KHMAN,{
mes "[Vito]";
mes "Welcome.";
if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {
@@ -2485,7 +2483,7 @@ s_atelier,26,68,3 script Vito#sc11_lgt 904,{
// Warp Portal
//============================================================
-tha_t01,149,228,0 script #shadowc02 45,2,2,{
+tha_t01,149,228,0 script #shadowc02 WARPNPC,2,2,{
end;
OnTouch:
mes "You can feel weird power.";
@@ -2503,4 +2501,4 @@ OnTouch:
//============================================================
tur_dun03,0,0,0,0 monster Shadow of Deception 2076,1,1000,0,0
ice_dun02,0,0,0,0 monster Shadow of Illusion 2077,1,1000,0,0
-niflheim,0,0,0,0 monster Shadow of Pleasure 2078,1,1000,0,0
+niflheim,0,0,0,0 monster Shadow of Pleasure 2078,1,1000,0,0 \ No newline at end of file
diff --git a/npc/re/jobs/3-2/sorcerer.txt b/npc/re/jobs/3-2/sorcerer.txt
index d2cec9242..af38058a3 100644
--- a/npc/re/jobs/3-2/sorcerer.txt
+++ b/npc/re/jobs/3-2/sorcerer.txt
@@ -1,21 +1,19 @@
//===== Hercules Script ======================================
//= Sorcerer Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Sage / Professor -> Sorcerer.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Cleaning. [Euphy]
//= 1.2 Updated script, optimized. [Euphy]
//============================================================
-gef_tower,102,34,5 script Merito 742,{
+gef_tower,102,34,5 script Merito 2_M_SAGE_B,{
mes "[Merito]";
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "You packed so much in your bag. Try again after emptying your bag.";
@@ -127,7 +125,7 @@ gef_tower,102,34,5 script Merito 742,{
}
}
-gef_tower,113,161,5 script Karacas 754,{
+gef_tower,113,161,5 script Karacas 4_M_SAGE_A,{
mes "[Karacas]";
if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
mes "Oh, it seems that you're too heavy. Empty your bag and then come again.";
@@ -414,7 +412,7 @@ gef_tower,113,161,5 script Karacas 754,{
}
close;
}
-thor_v01,64,252,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#1 836
-ice_dun01,274,274,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#2 836
-mjo_dun03,200,141,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#3 836
-gon_dun02,195,190,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#4 836
+thor_v01,64,252,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#1 2_BOARD2
+ice_dun01,274,274,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#2 2_BOARD2
+mjo_dun03,200,141,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#3 2_BOARD2
+gon_dun02,195,190,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#4 2_BOARD2 \ No newline at end of file
diff --git a/npc/re/jobs/3-2/sura.txt b/npc/re/jobs/3-2/sura.txt
index 5a0e8e36a..8bbc45cfe 100644
--- a/npc/re/jobs/3-2/sura.txt
+++ b/npc/re/jobs/3-2/sura.txt
@@ -1,21 +1,20 @@
//===== Hercules Script ======================================
//= Sura Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib, Gepard
-//===== Current Version: =====================================
-//= 1.2
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Current Version: =====================================
+//= 1.3
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Monk / Champion -> Sura.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version. [Masao]
//= 1.1 Removed disablenpc which causes players stucked in waitingroom. [Joseph]
//= 1.2 Updated script, optimized. [Euphy]
+//= 1.3 Added GM management function. [Euphy]
//============================================================
-ve_in,237,125,0 script King Crab#job_shu 107,{
+ve_in,237,125,0 script King Crab#job_shu 1_M_PAY_ELDER,{
if (job_shu == 0) {
mes "[King Crab]";
mes "Khh ha ha ha ha ha ha.";
@@ -156,9 +155,9 @@ ve_in,237,125,0 script King Crab#job_shu 107,{
close;
}
}
-ve_in,241,128,4 duplicate(King Crab#job_shu) Sludge Worm#job_shu 110
+ve_in,241,128,4 duplicate(King Crab#job_shu) Sludge Worm#job_shu 4_M_MINISTER
-ve_in,244,126,3 script Waitress#job_shu 69,{
+ve_in,244,126,3 script Waitress#job_shu 1_F_04,{
mes "[Waitress]";
if (job_shu == 0) {
mes "Oh no~";
@@ -193,7 +192,7 @@ ve_in,244,126,3 script Waitress#job_shu 69,{
close;
}
-ve_in,240,131,0 script ???#bcmd 484,{
+ve_in,240,131,0 script ???#bcmd 4_F_SURA,{
end;
OnInit:
disablenpc "???#bcmd";
@@ -212,7 +211,7 @@ OnTimer600000:
end;
}
-ve_in,97,149,0 script #Suraryokan 139,3,3,{
+ve_in,97,149,0 script #Suraryokan HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_shu == 1) {
set .@n$, "["+strcharinfo(0)+"]";
@@ -270,7 +269,7 @@ OnTouch:
end;
}
-ve_in,98,159,0 script Fighter#job_shu 484,{
+ve_in,98,159,0 script Fighter#job_shu 4_F_SURA,{
if (job_shu < 2) {
mes "[Fighter]";
mes "Ahhhh~ I'm so tired.";
@@ -432,7 +431,7 @@ ve_in,98,159,0 script Fighter#job_shu 484,{
close;
}
-yuno_fild07,254,176,7 script Buddy#job_shu 753,{
+yuno_fild07,254,176,7 script Buddy#job_shu 4_M_MONK,{
if (job_shu < 4) {
mes "[Buddy]";
mes "Haaap!!! Haaaap!!! Whoo!! Haahhp!!!";
@@ -506,7 +505,7 @@ yuno_fild07,254,176,7 script Buddy#job_shu 753,{
end;
}
-sword_1-1,223,243,4 script Drawing Room 753,{
+sword_1-1,223,243,4 script Drawing Room 4_M_MONK,{
end;
OnInit:
waitingroom "Drawing Room",20,"Drawing Room::OnStartArena",1;
@@ -525,7 +524,7 @@ OnDisable:
end;
}
-sword_1-1,223,243,4 script Buddy#job_shu_Salong 753,{
+sword_1-1,223,243,4 script Buddy#job_shu_Salong 4_M_MONK,{
mes "[Buddy]";
mes "My master doesn't like noise, so please ^f57d7dwait in the living room silently.^000000";
next;
@@ -543,7 +542,7 @@ sword_1-1,223,243,4 script Buddy#job_shu_Salong 753,{
}
}
-sword_2-1,1,1,0 script Buddy#Sura_Salon 66,{
+sword_2-1,1,1,0 script Buddy#Sura_Salon 1_F_01,{
end;
OnInit:
disablenpc "Buddy#Sura_Salon";
@@ -644,7 +643,7 @@ OnTimer320000:
end;
}
-sword_2-1,223,205,7 script Buddy#job_shuaneh 753,{
+sword_2-1,223,205,7 script Buddy#job_shuaneh 4_M_MONK,{
if (job_shu > 4) {
mes "I'll show you the way. This way.";
close2;
@@ -665,7 +664,7 @@ OnEnable:
end;
}
-sword_2-1,223,205,0 script #Sura_garajjom 139,10,10,{
+sword_2-1,223,205,0 script #Sura_garajjom HIDDEN_WARP_NPC,10,10,{
OnTouch:
warp "sword_1-1",216,168;
end;
@@ -678,7 +677,7 @@ OnEnable:
end;
}
-sword_1-1,222,169,5 script Bruno#job_shu 484,{
+sword_1-1,222,169,5 script Bruno#job_shu 4_F_SURA,{
if (job_shu > 4) {
mes "[Bruno]";
mes "Hey~ "+strcharinfo(0)+", what's up?";
@@ -743,7 +742,7 @@ sword_1-1,222,169,5 script Bruno#job_shu 484,{
end;
}
-sword_1-1,223,167,2 script Master#job_shu 483,{
+sword_1-1,223,167,2 script Master#job_shu 4_M_SURA,{
mes "[Master]";
if (job_shu == 5) {
mes "You must have bright eyes to see that you finally came to this room.";
@@ -829,8 +828,8 @@ sword_1-1,223,167,2 script Master#job_shu 483,{
end;
}
-/*
-sword_2-1,1,2,0 script Button Girl#sura 66,{
+sword_2-1,1,2,0 script Button Girl#sura 1_F_01,{
+ callfunc "F_GM_NPC";
switch(select("Turn on arena.:Turn off arena.:Turn on the living room.:Turn on Buddy.:Turn on Gara.:Turn off all.:Close")) {
case 1:
mes "Turn on arena.";
@@ -864,4 +863,3 @@ sword_2-1,1,2,0 script Button Girl#sura 66,{
close;
}
}
-*/
diff --git a/npc/re/jobs/3-2/wanderer.txt b/npc/re/jobs/3-2/wanderer.txt
index fd3b75f59..5926b7bcb 100644
--- a/npc/re/jobs/3-2/wanderer.txt
+++ b/npc/re/jobs/3-2/wanderer.txt
@@ -1,15 +1,13 @@
//===== Hercules Script ======================================
//= Wanderer Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Muad_Dib, Meyraw
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.4
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= [Official Conversion]
//= Job change Quest from Dancer / Gypsy -> Wanderer.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 First Version.
//= 1.1 Updated dialogue to be more official / accurate. Huge thanks to Muad_Dib! [Masao]
//= 1.2 Fixed an endless loop in dialogue.
@@ -17,7 +15,7 @@
//= 1.4 Updated script, optimized. [Euphy]
//============================================================
-xmas,162,209,5 script Aspiring Wanderer, Soy 714,{
+xmas,162,209,5 script Aspiring Wanderer, Soy 4_F_06,{
if (job_wan == 0) {
mes "[Soy]";
mes "Mimi, what should I do?";
@@ -111,9 +109,9 @@ xmas,162,209,5 script Aspiring Wanderer, Soy 714,{
close;
}
}
-xmas,163,209,3 duplicate(Aspiring Wanderer, Soy) Aspiring Wanderer, Mimi 714
+xmas,163,209,3 duplicate(Aspiring Wanderer, Soy) Aspiring Wanderer, Mimi 4_F_06
-xmas,132,143,5 script Performance Manager#wnd 713,{
+xmas,132,143,5 script Performance Manager#wnd 4_M_06,{
mes "[Performance Manager]";
if (job_wan == 0) {
mes "Oh, what should I do?";
@@ -291,7 +289,7 @@ xmas,132,143,5 script Performance Manager#wnd 713,{
close;
}
-comodo,140,86,5 script Cheerless Maestro 479,{
+comodo,140,86,5 script Cheerless Maestro 4_M_MINSTREL,{
if (job_wan < 2) {
mes "[Cheerless Maestro]";
mes "You can dance ~";
@@ -453,7 +451,7 @@ comodo,140,86,5 script Cheerless Maestro 479,{
mes "[" + strcharinfo(0) + "]";
mes "It felt like hearing mommy's lullaby~ It was so beautiful and moving... You are the best artist of our time.";
next;
- specialeffect 18;
+ specialeffect EF_STEAL;
mes "[Guitar Song]";
mes "Ha ha ha. I know that well, but it feels good to hear a compliment from you!";
next;
@@ -560,7 +558,7 @@ comodo,140,86,5 script Cheerless Maestro 479,{
close;
}
-hu_in01,305,251,5 script Vacant Looking Lady#wnd 879,{
+hu_in01,305,251,5 script Vacant Looking Lady#wnd 4_F_CAPEGIRL,{
if (job_wan < 4) {
mes "[Vacant Looking Lady]";
mes "(blank...)";
@@ -748,7 +746,7 @@ hu_in01,305,251,5 script Vacant Looking Lady#wnd 879,{
close;
}
-hu_fild05,342,130,5 script Dancer Kim#fild 879,{
+hu_fild05,342,130,5 script Dancer Kim#fild 4_F_CAPEGIRL,{
if (job_wan == 6) {
mes "[Dancer Kim]";
mes "Exercising together is good but if we compete for it, I think we'll get a better effect!";
@@ -860,18 +858,18 @@ OnTouch:
}
end;
}
-hu_fild05,81,111,0 duplicate(wandererjcq) #fildshout01 139,20,20
-hu_fild05,193,98,0 duplicate(wandererjcq) #fildshout02 139,20,20
-hu_fild05,252,74,0 duplicate(wandererjcq) #fildshout03 139,20,20
-hu_fild05,323,175,0 duplicate(wandererjcq) #fildshout04 139,20,20
-hu_fild05,334,225,0 duplicate(wandererjcq) #fildshout05 139,20,20
-hu_fild05,301,287,0 duplicate(wandererjcq) #fildshout06 139,20,20
-hu_fild05,229,315,0 duplicate(wandererjcq) #fildshout07 139,20,20
-hu_fild05,146,309,0 duplicate(wandererjcq) #fildshout08 139,20,20
-hu_fild05,80,239,0 duplicate(wandererjcq) #fildshout09 139,20,20
-hu_fild05,69,147,0 duplicate(wandererjcq) #fildshout10 139,20,20
+hu_fild05,81,111,0 duplicate(wandererjcq) #fildshout01 HIDDEN_WARP_NPC,20,20
+hu_fild05,193,98,0 duplicate(wandererjcq) #fildshout02 HIDDEN_WARP_NPC,20,20
+hu_fild05,252,74,0 duplicate(wandererjcq) #fildshout03 HIDDEN_WARP_NPC,20,20
+hu_fild05,323,175,0 duplicate(wandererjcq) #fildshout04 HIDDEN_WARP_NPC,20,20
+hu_fild05,334,225,0 duplicate(wandererjcq) #fildshout05 HIDDEN_WARP_NPC,20,20
+hu_fild05,301,287,0 duplicate(wandererjcq) #fildshout06 HIDDEN_WARP_NPC,20,20
+hu_fild05,229,315,0 duplicate(wandererjcq) #fildshout07 HIDDEN_WARP_NPC,20,20
+hu_fild05,146,309,0 duplicate(wandererjcq) #fildshout08 HIDDEN_WARP_NPC,20,20
+hu_fild05,80,239,0 duplicate(wandererjcq) #fildshout09 HIDDEN_WARP_NPC,20,20
+hu_fild05,69,147,0 duplicate(wandererjcq) #fildshout10 HIDDEN_WARP_NPC,20,20
-xmas,148,131,0 script #wandergogo 139,3,3,{
+xmas,148,131,0 script #wandergogo HIDDEN_WARP_NPC,3,3,{
OnTouch:
if (job_wan == 9) {
enablenpc "Dancer Kim#xmas";
@@ -886,7 +884,7 @@ OnTouch:
end;
}
-xmas,147,135,5 script Dancer Kim#xmas 485,{
+xmas,147,135,5 script Dancer Kim#xmas 4_F_WANDERER,{
if (job_wan == 9) {
if (BaseJob != Job_Dancer && BaseLevel < 99 && JobLevel < 50) {
mes "- You can't continue the quest because the condition for the quest is not appropriate. -";
@@ -1028,10 +1026,10 @@ OnInit:
disablenpc strnpcinfo(0);
end;
}
-xmas,149,135,3 duplicate(#wander_xmas) Guitar Song#xmas 479
-xmas,142,130,7 duplicate(#wander_xmas) Spectator#xmas1 711
-xmas,145,127,7 duplicate(#wander_xmas) Spectator#xmas2 712
-xmas,148,127,7 duplicate(#wander_xmas) Soy#xmas 714
-xmas,149,127,1 duplicate(#wander_xmas) Mimi#xmas 714
-xmas,151,127,1 duplicate(#wander_xmas) Spectator#xmas3 716
-xmas,154,129,1 duplicate(#wander_xmas) Spectator#xmas4 797
+xmas,149,135,3 duplicate(#wander_xmas) Guitar Song#xmas 4_M_MINSTREL
+xmas,142,130,7 duplicate(#wander_xmas) Spectator#xmas1 4_F_05
+xmas,145,127,7 duplicate(#wander_xmas) Spectator#xmas2 4_M_05
+xmas,148,127,7 duplicate(#wander_xmas) Soy#xmas 4_F_06
+xmas,149,127,1 duplicate(#wander_xmas) Mimi#xmas 4_F_06
+xmas,151,127,1 duplicate(#wander_xmas) Spectator#xmas3 4_M_KID2
+xmas,154,129,1 duplicate(#wander_xmas) Spectator#xmas4 4_M_NFLOSTMAN \ No newline at end of file
diff --git a/npc/re/jobs/novice/novice.txt b/npc/re/jobs/novice/novice.txt
index b9c2a10ac..b7a4bd492 100644
--- a/npc/re/jobs/novice/novice.txt
+++ b/npc/re/jobs/novice/novice.txt
@@ -1,34 +1,35 @@
-//===== rAthena Script =======================================
-//= New Novice Training Grounds
+//===== Hercules Script ======================================
+//= Renewal Novice Training Grounds
//===== By: ==================================================
//= Kisuka
//===== Current Version: =====================================
-//= 1.4a
-//===== Compatible With: =====================================
-//= rAthena SVN
+//= 1.5
//===== Description: =========================================
-//= New Novice Training Grounds
-//= [Hand Scripted (No Programs or AEGIS Scripts)]
+//= [Official Conversion]
+//= A tutorial for new players starting at new_1-1 (53,111).
+//=
+//= This script was replaced by the Izlude Academy in 2012.
//===== Additional Comments: =================================
-//= 1.0 First version. [Kisuka]
+//= 1.0 First version, hand scripted from iRO. [Kisuka]
//= 1.1 Updated warps, savepoints, NPC locations. [Kisuka]
//= 1.2 Cleaning. [Euphy]
//= 1.3 Fixed Eden Group Officer's level requirement. [Joseph]
//= 1.4 Fixed checkquest to check quest accordingly. [Joseph]
//= 1.4a Added 'npcskill' command. [Euphy]
+//= 1.5 Replaced with the official kRO scripts. [Euphy]
//============================================================
-// Sprakki (Stard of Novice Training Ground, Outside Castle)
+// Main NPCs
//============================================================
-new_1-1,53,114,4 script Sprakki#nv1 90,{
- if(job_novice_q < 1) {
+- script Sprakki#newbe01::NvSprakkiA -1,{
+ if (job_novice_q == 0) {
mes "[Sprakki]";
mes "Hello there! Welcome to the World of Ragnarok Online. My name is Sprakki and I'm in charge of giving you basic gameplay tips.";
mes "Click on the [Next] button or press [Enter] to continue.";
next;
mes "[Sprakki]";
mes "First you need to learn the very basics of controlling your character.";
- mes "All the basic ^4A4AFFmoves, selection of items, and attacks^000000 use the ^4A4AFFleft click of the mouse^000000.";
+ mes "All the basic ^4d4dffmoves, selection of items, and attacks^000000 use the ^4d4dff left click of the mouse^000000.";
next;
cutin "tutorial01",3;
mes "-! Info !-";
@@ -40,11 +41,11 @@ new_1-1,53,114,4 script Sprakki#nv1 90,{
mes "First off, try moving around.";
mes "Do you see that wooden bridge to the right?";
next;
- setquest 7117;
- set job_novice_q,1;
mes "[Sprakki]";
mes "Walk over that bridge and there's a castle used as the Training Center.";
mes "I will be waiting for you inside of that Castle. Please come to the castle by yourself.";
+ set job_novice_q,1;
+ setquest 7117;
next;
cutin "tutorial02",3;
mes "-! Info !-";
@@ -55,30 +56,43 @@ new_1-1,53,114,4 script Sprakki#nv1 90,{
mes "I will wait inside the Training Center across the bridge.";
next;
mes "-! Info !-";
- mes "You can open the Quest Info Window by pressing the ^4A4AFFALT + U^000000 keys at the same time.";
+ mes "You can open the Quest Info Window by pressing the ^4d4dffAlt + U^000000 keys at the same time.";
next;
cutin "",255;
mes "[Sprakki]";
mes "Have you checked the Quest Info Window?";
mes "I'll be waiting in the castle across the bridge.";
+ close2;
+ cutin "",255;
+ end;
+ } else if (job_novice_q == 1) {
+ mes "[Sprakki]";
+ mes "I will be waiting for you across the Bridge to the east.";
+ close;
+ } else {
+ mes "[Sprakki]";
+ mes "Are you lost?";
+ mes "Have you gone beyond the bridge to the east?";
+ mes "I will guide you further after we meet in the Training Center.";
close;
}
- mes "[Sprakki]";
- mes "I will be waiting for you across the Bridge to the east.";
- close;
}
+new_1-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv1a 4_F_01
+new_2-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv2a 4_F_01
+new_3-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv3a 4_F_01
+new_4-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv4a 4_F_01
+new_5-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv5a 4_F_01
-// Sprakki (Inside Castle)
-//============================================================
-new_1-2,100,29,4 script Sprakki#nv2 90,{
- if(job_novice_q < 1) {
+- script Sprakki#newbe05::NvSprakkiB -1,{
+ if (job_novice_q == 0) {
mes "[Sprakki]";
- mes "Hello there! Welcome to the World of Ragnarok Online. My name is Sprakki and I'm in charge of giving you basic gameplay tips.";
- mes "Click on the [Next] button or press [Enter] to continue.";
+ mes "Hello there! Welcome to the World of Ragnarok Online.";
+ mes "My name is Sprakki and I'm in charge of giving you basic gameplay tips.";
+ mes "Click on the [Next] button or press [Enter] key to continue.";
next;
mes "[Sprakki]";
mes "First you need to learn the very basics of controlling your character.";
- mes "All the basic ^4A4AFFmoves, selection of items, and attacks^000000 use the ^4A4AFFleft click of the mouse^000000.";
+ mes "All the basic ^4d4dffmoves, selection of items, and attacks^000000 use the ^4d4dff left click of the mouse^000000.";
next;
cutin "tutorial01",3;
mes "-! Info !-";
@@ -86,133 +100,247 @@ new_1-2,100,29,4 script Sprakki#nv2 90,{
mes "Attacking monsters and conversations with the people of this world can be done by simply clicking on them.";
next;
cutin "",255;
- setquest 7117;
- set job_novice_q,1;
mes "[Sprakki]";
mes "Well then, I will give you a quest to talk to me.";
mes "After the conversation is over, talk to me again by left-clicking on me.";
+ set job_novice_q,1;
+ setquest 7117;
next;
cutin "tutorial02",3;
mes "-! Info !-";
mes "You've received a quest from Sprakki.";
- mes "You can check the contents of the quest in the Quest Info Window by pressing the ^4A4AFFAlt + U^000000 keys at the same time.";
+ mes "You can check the contents of the quest in the Quest Info Window by pressing the ^4d4dffAlt + U^000000 keys at the same time.";
next;
cutin "",255;
mes "[Sprakki]";
mes "Have you checked the Quest Info Window?";
mes "Well, talk to me again.";
close;
- }
- if(job_novice_q == 1) {
- getexp 300,0;
- getexp 300,5;
- completequest 7117;
- set job_novice_q,2;
+ } else if (job_novice_q < 3) {
+ if (job_novice_q == 1) {
+ mes "[Sprakki]";
+ mes "Great!";
+ mes "Now you know how to move and talk to others, right?";
+ set job_novice_q,2;
+ getexp 600,5;
+ completequest 7117;
+ next;
+ }
+ mes "[Sprakki]";
+ mes "The Training Center is prepared for novices just like you.";
+ mes "You are going to be trained to get used to the basics of the Game.";
+ next;
mes "[Sprakki]";
- mes "Great!";
- mes "Now you know how to move and talk to others, right?";
+ mes "Of course, this Training Process is optional, if you want to go straight to town, that's also fine.";
+ mes "But, you will miss all the advantages you can get in the Training Center.";
next;
+ switch(select("Begin Training.:Start the game right away.")) {
+ case 1:
+ mes "[Sprakki]";
+ mes "I will guide you to the Novice Training Center.";
+ mes "Inside, Instructor 'Brade' will be waiting to speak to you.";
+ next;
+ mes "[Sprakki]";
+ mes "Instructor 'Brade' will help you afterwards.";
+ mes "Please, Go see him.";
+ setquest 7118;
+ next;
+ mes "^4d4dff- You received a quest 'Novice Training Ground -1' from Sprakki.";
+ mes "Please check the Quest Info Window. -^000000";
+ close2;
+ savepoint strnpcinfo(4),100,100;
+ warp strnpcinfo(4),100,100;
+ end;
+ case 2:
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ mes "[Sprakki]";
+ mes "Ok, You want to start right away.";
+ mes "Which Town do you want to start at?";
+ next;
+ set .@select, select("Prontera:Morroc:Geffen:Payon:Alberta:Izlude");
+ mes "[Sprakki]";
+ mes "I see.";
+ mes "Go ahead and grow stronger! Look toward a brighter future ahead of you.";
+ callfunc "F_NvErase";
+ close2;
+ switch(.@select) {
+ case 1:
+ savepoint "prontera",273,354;
+ warp "prontera",273,354;
+ break;
+ case 2:
+ savepoint "morocc",160,94;
+ warp "morocc",160,94;
+ break;
+ case 3:
+ savepoint "geffen",120,100;
+ warp "geffen",120,100;
+ break;
+ case 4:
+ savepoint "payon",70,100;
+ warp "payon",70,100;
+ break;
+ case 5:
+ savepoint "alberta",116,57;
+ warp "alberta",116,57;
+ break;
+ case 6: // Old coordinates: (94,103)
+ savepoint "izlude",128,98;
+ warp "izlude",128,98;
+ break;
+ }
+ end;
+ }
+ } else {
+ mes "[Sprakki]";
+ mes "These are the Novice Training Grounds.";
+ mes "I will guide you to the Novice Training Center.";
+ close2;
+ savepoint strnpcinfo(4),100,100;
+ warp strnpcinfo(4),100,100;
+ end;
}
- mes "[Sprakki]";
- mes "The training Center is prepared for novices just like you.";
- mes "You are going to be trained to get used to the basics of the Game.";
- next;
- select("Begin Training.");
- mes "[Sprakki]";
- mes "I will guide you to the Novice Training Center.";
- mes "Inside, Instructor 'Brade' will be waiting to speak to you.";
- next;
- setquest 7118;
- set job_novice_q,3;
- mes "[Sprakki]";
- mes "Instructor 'Brade' will help you afterwards.";
- mes "Please, Go see him.";
- next;
- mes "^4A4AFF- You received a quest 'Novice Training Ground-1' from Sprakki.^000000";
- mes "^4A4AFFPlease check the Quest Info Window.-^000000";
- close2;
- savepoint "new_1-2",100,100;
- warp "new_1-2",100,100;
- end;
}
+new_1-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv1b 4_F_01
+new_2-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv2b 4_F_01
+new_3-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv3b 4_F_01
+new_4-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv4b 4_F_01
+new_5-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv5b 4_F_01
-// Instructor Brade
-//============================================================
-new_1-2,100,105,4 script Brade#nv 733,{
- if(job_novice_q < 3) {
+- script Brade#newbe02::NvBradeA -1,{
+ if (job_novice_q < 2) {
mes "[Instructor Brade]";
- mes "How did you get here?";
- close2;
- warp "new_1-1",53,111;
- end;
- }
- else if(job_novice_q == 3) {
- getexp 300,0;
- getexp 300,0;
- getexp 300,10;
- completequest 7118;
- set job_novice_q,4;
+ mes "Hello there! Welcome to the World of Ragnarok Online.";
+ mes "You have participated on the previous Training Grounds.";
+ mes "The Training Grounds have now come under new management.";
+ next;
mes "[Instructor Brade]";
- mes "Great.";
- mes "You've completed the given quest successfully, so I will reward you with experience points.";
+ mes "I guess we will just have to start your training all over again.";
next;
mes "[Instructor Brade]";
- mes "Experience Points you've earned from hunting or finishing quests can be checked by tracking the EXP Bar, located at the upper-left side of the display.";
+ mes "My name is Instructor Brade and I'm in charge of giving you basic gameplay tips.";
+ mes "Click on the [Next] button or press [Enter] to continue.";
next;
mes "[Instructor Brade]";
- mes "Sigh... I will just talk roughly.";
- mes "...I just can't get used to";
- mes "'politeness' you know.";
- mes "Don't look at me like that!";
+ mes "First you need to learn the very basics of controlling your character.";
+ mes "All the basic ^4d4dff moves, selection of items, and attacks^000000 use the ^4d4dff left click of the mouse^000000.";
+ next;
+ cutin "tutorial01",3;
+ mes "-! Info !-";
+ mes "Click on the ground to move the character.";
+ mes "Attacking monsters and conversations with the people of this world can be done by simply clicking on them.";
+ next;
+ cutin "",255;
next;
mes "[Instructor Brade]";
- mes "Ok look alive you maggot.";
- mes "Next up is items and equipment.";
+ mes "First off, try moving around.";
+ mes "After moving around, talk to me again.";
+ set nov_1st_cos,0;
+ set nov_2nd_cos,0;
+ set nov_3_swordman,0;
+ set nov_3_archer,0;
+ set nov_3_thief,0;
+ set nov_3_magician,0;
+ set nov_3_acolyte,0;
+ set nov_3_merchant,0;
+ set treasure_alb,0;
+ set job_novice_q,2;
+ setquest 7118;
next;
+ cutin "tutorial02",3;
+ mes "-! Info !-";
+ mes "You've received a quest from Instructor Brade.";
+ mes "You can check the contents of the quest in the Quest Info Window.";
+ next;
+ mes "-! Info !-";
+ mes "You can open the Quest Info Window by pressing the ^4d4dffAlt + U^000000keys at the same time.";
+ next;
+ cutin "",255;
mes "[Instructor Brade]";
- mes "First, take these.";
- mes "These are very basic equipments and recovery potions.";
- getitem 2352,1; // Novice_Plate
- getitem 2510,1; // Novice_Hood
- getitem 2414,1; // Novice_Boots
- getitem 5055,1; // Novice_Egg_Cap
- getitem 1243,1; // Novice_Knife
- getitem 2112,1; // Novice_Guard
- getitem 569,300; // Novice_Potion
+ mes "Have you checked the Quest Info Window?";
+ mes "Well, talk to me again.";
+ close;
+ } else if (job_novice_q < 4) {
+ if (job_novice_q == 2) {
+ mes "[Instructor Brade]";
+ mes "Great.";
+ mes "You've completed the given quest successfully, so I will reward you with experience points.";
+ set job_novice_q,3;
+ getexp 900,10;
+ completequest 7118;
+ next;
+ mes "[Instructor Brade]";
+ mes "Experience Points you've earned from hunting or finishing quests can be checked by tracking the EXP Bar, located at upper-left side of the display.";
+ next;
+ mes "[Instructor Brade]";
+ mes "Sigh... I will just talk roughly.";
+ mes "...I just can't get used to 'politeness' you know.";
+ mes "Don't look at me like that!";
+ next;
+ mes "[Instructor Brade]";
+ mes "Ok look alive you maggot.";
+ mes "Next up is items and equipment.";
+ next;
+ mes "[Instructor Brade]";
+ mes "First, take these.";
+ mes "These are very basic equipments and recovery potions.";
+ } else {
+ mes "[Instructor Brade]";
+ mes "Uh... Where were we? Oh right, let's continue.";
+ mes "It's about items and equipments.";
+ next;
+ mes "[Instructor Brade]";
+ mes "Take these.";
+ mes "Basic equipments and recovery potions.";
+ }
+ set job_novice_q,4;
+ getitem 2352,1; //Novice_Plate
+ getitem 2510,1; //Novice_Hood
+ getitem 2414,1; //Novice_Boots
+ getitem 5055,1; //Novice_Egg_Cap
+ getitem 1243,1; //Novice_Knife
+ getitem 2112,1; //Novice_Guard
+ getitem 569,300; //Novice_Potion
setquest 7119;
- set job_novice_q,5;
next;
mes "[Instructor Brade]";
- mes "In the upper left Basic Info Window, press the 'Item' icon to open the Item Window.";
- mes "The item window has 3 sections...";
+ mes "In the upper left Basic Info. Window, press the 'Item' icon to open the Item Window.";
+ mes "The item window is divided into...";
next;
mes "[Instructor Brade]";
- mes "Consumable items, equipment, and other items.";
- mes "If you want to use or equip items, double-click on the item or drag them into the Equipment Window.";
+ mes "3 sections: consumable items, equipment and other items.";
+ mes "If you want to use or equip items, just double-click on the item or drag them into the Equipment Window.";
next;
mes "[Instructor Brade]";
- mes "You can see detailed info of each item by right-clicking on the item.";
- mes "Do that and the info will pop-up in a separate window.";
+ mes "You can see detailed info. of each item by right-clicking on the item.";
+ mes "Detailed information of the item will pop up.";
next;
cutin "tutorial04",3;
mes "!- Info -!";
- mes "Double-click on the item to see the detailed information.";
+ mes "Right-click on an item to see detailed information about it.";
next;
mes "!- Info -!";
- mes "Right-click on other players to show the Community Menu and you can join a party, request trades, etc.";
+ mes "Right-click on other players to show the Community Menu and you can join a party, or request trade with a player etc.";
next;
cutin "",255;
mes "[Instructor Brade]";
mes "Why don't you equip the items I gave you earlier?";
- mes "^4A4AFFDouble-Click^000000 on the item you want to equip. Let us continue after you are done gearing up.";
+ mes "^4d4dffDouble-Click^000000 on the item you want to equip. Let us continue after you are done gearing up.";
next;
cutin "tutorial03",3;
mes "!- Info -!";
- mes "Items can be easily equipped or used by simply clicking on them.";
- mes "The Hot Key to open the Item Window is Alt + E.";
+ mes "Items can be easily equipped or used by simply double-clicking on them.";
+ mes "The Hot Key to open the Inventory Window is ALT + E.";
next;
mes "!- Info -!";
- mes "To check on the items that are currently equipped, use the hot key Alt + Q.";
+ mes "To check on the items that are currently equipped, use the Hot Key ALT + Q.";
mes "Or, drag the item on to the item slot you want the item to be equipped.";
next;
mes "!- Info -!";
@@ -220,139 +348,71 @@ new_1-2,100,105,4 script Brade#nv 733,{
close2;
cutin "",255;
end;
- }
- else if(job_novice_q == 4) {
+ } else if (job_novice_q == 4) {
+ if (isequipped(2414) + isequipped(2352) + isequipped(2510) + isequipped(2112) + isequipped(1243) < 4) {
+ mes "[Instructor Brade]";
+ mes "Try to put on at least 4 of the equipments I gave you.";
+ mes "Put those shoes on, wear those clothes, and arm yourself with that weapon you maggot.";
+ close;
+ }
mes "[Instructor Brade]";
- mes "Uh... Where were we? Oh right, let's continue.";
- mes "It's about items and equipments.";
+ mes "You are all set.";
+ mes "You are coming along just fine.";
+ set job_novice_q,5;
+ getexp 1200,15;
+ getitem 12323,50; //N_Fly_Wing
+ getitem 12324,20; //N_Butterfly_Wing
+ completequest 7119;
next;
mes "[Instructor Brade]";
- mes "Take these.";
- mes "Basic equipments and recovery potions.";
- getitem 2352,1; // Novice_Plate
- getitem 2510,1; // Novice_Hood
- getitem 2414,1; // Novice_Boots
- getitem 5055,1; // Novice_Egg_Cap
- getitem 1243,1; // Novice_Knife
- getitem 2112,1; // Novice_Guard
- getitem 569,300; // Novice_Potion
- setquest 7119;
- set job_novice_q,5;
+ mes "Here's some Fly Wings and Butterfly Wings as a reward.";
+ mes "You don't need these in the Training Ground, but they will come in handy later.";
next;
mes "[Instructor Brade]";
- mes "In the upper left Basic Info Window, press the 'Item' icon to open the Item Window.";
- mes "The item window is divided into...";
+ mes "Next, are Hot Keys.";
+ mes "Press the ^4d4dffF12 key^000000 on your keyboard.";
+ mes "A box with 9 slots will pop up.";
next;
mes "[Instructor Brade]";
- mes "3 sections: consumable items, equipment and other items.";
- mes "If you want to use or equip items, double-click on the item or drag them into the Equipment Window.";
+ mes "Drag on the right corner of the Hot Key Window and you will be able to see the other pages of the Hot Key.";
next;
mes "[Instructor Brade]";
- mes "You can see detailed info of each item by right-clicking on the item.";
- mes "Do that and the info will pop-up in a separate window.";
+ mes "The F1 to F9 keys are the designated hotkeys.";
+ mes "Just drag a skill or an item onto the Hot Key Window and press a corresponding key to use them right away.";
next;
- cutin "tutorial04",3;
+ cutin "tutorial05",3;
mes "!- Info -!";
- mes "Double-click on the item to see the detailed information.";
+ mes "You can register a skill or an item to the Hot Key Window by just dragging them onto the Hot Key Slot.";
next;
mes "!- Info -!";
- mes "Right-click on other players to show the Community Menu and you can join a party, request trades, etc.";
- next;
- cutin "",255;
- mes "[Instructor Brade]";
- mes "Why don't you equip the items I gave you earlier?";
- mes "^4A4AFFDouble-Click^000000 on the item you want to equip. Let us continue after you are done gearing up.";
+ mes "Registered Skills or Items can be used/equipped by just pressing the corresponding key.";
next;
- cutin "tutorial03",3;
mes "!- Info -!";
- mes "Items can be easily equipped or used by simply clicking on them.";
- mes "The Hot Key to open the Item Window is Alt + E.";
+ mes "You can customize the Hot Key to use any keys you please as the Hot Key by changing the Shortcut configuration in the options menu.";
next;
mes "!- Info -!";
- mes "To check on the items that are currently equipped, use the hot key Alt + Q.";
- mes "Or, drag the item on to the item slot you want the item to be equipped.";
+ mes "Register skills and items that you use often so that you can use them easily.";
next;
- mes "!- Info -!";
- mes "Equip all of the equipment given by Instructor Brade.";
- close2;
cutin "",255;
- end;
- }
- else if(job_novice_q == 5 || job_novice_q == 6) {
- for(set .@i,1; .@i<7; set .@i,.@i+1)
- if (getequipisequiped(.@i)) set .@EquipCheck, .@EquipCheck+1;
- if(.@EquipCheck >= 4) {
- if(job_novice_q == 5) {
- mes "[Instructor Brade]";
- mes "You are all set.";
- mes "You are coming along just fine.";
- getexp 300,0;
- getexp 300,0;
- getexp 300,0;
- getexp 300,15;
- getitem 12323,50; // N_Fly_Wing
- getitem 12324,20; // N_Butterfly_Wing
- completequest 7119;
- set job_novice_q,6;
- next;
- mes "[Instructor Brade]";
- mes "Here's some Fly Wings and Butterfly Wings as a reward.";
- mes "You don't need these in the Training Ground, but they will come in handy later.";
- next;
- }
- mes "[Instructor Brade]";
- mes "Next, are Hot Keys.";
- mes "Press the ^4A4AFF12 key^000000 on your keyboard.";
- mes "A box with 9 slots will pop up.";
- next;
- mes "[Instructor Brade]";
- mes "Drag on the right corner of the Hot Key Window and you will be able to see the other pages of the Hot Key.";
- next;
- mes "[Instructor Brade]";
- mes "The F1 to F9 keys are the designated hotkeys.";
- mes "Just drag a skill or an item onto the Hot Key Window and press a corresponding key to use them right away.";
- next;
- cutin "tutorial05",3;
- mes "!- Info -!";
- mes "You can register a skill or an item to the Hot Key Window by just dragging them onto the Hot Key Slot.";
- next;
- mes "!- Info -!";
- mes "Registered Skills or Items can be used/equipped by just pressing the corresponding key.";
- next;
- mes "!- Info -!";
- mes "You can customize the Hot Key to use any keys you please as the Hot Key by changing the Shortcut configuration in the options menu.";
- next;
- mes "!- Info -!";
- mes "Register skills and items that you use often so that you can use them easily";
- next;
- cutin "",255;
- mes "[Instructor Brade]";
- mes "The last part is how to use Skills.";
- mes "But before that, you need to learn something first.";
- next;
- setquest 7120;
- set job_novice_q,7;
- mes "[Instructor Brade]";
- mes "Somewhere in this room, there's someone named ^4A4AFFJinha^000000.";
- mes "Find Jinha and learn the ^4A4AFF[First Aid]^000000 skill from him.";
- next;
- mes "[Instructor Brade]";
- mes "Your lesson is after that.";
- mes "Go find Jinha and learn the [First Aid] Skill. Then come back to me.";
- close;
- }
mes "[Instructor Brade]";
- mes "Try to put on at least 4 of the equipment I gave you.";
- mes "Put those shoes on, wear those clothes, and arm yourself with that weapon you maggot.";
+ mes "The last part is how to use Skills.";
+ mes "But before that, you need to learn something first.";
+ next;
+ mes "[Instructor Brade]";
+ mes "Somewhere in this room, there's someone named ^4d4dffJinha^000000.";
+ mes "Find Jinha and learn the ^4d4dff[First Aid]^000000 skill from him.";
+ setquest 7120;
+ next;
+ mes "[Instructor Brade]";
+ mes "Your lesson is after that.";
+ mes "Go find Jinha and learn the [First Aid] Skill. Then come back to me.";
close;
- }
- else if(job_novice_q == 7) {
+ } else if (job_novice_q == 5) {
mes "[Instructor Brade]";
- mes "Somewhere in this room, there's someone named ^4A4AFFJinha^000000.";
- mes "Find Jinha and learn the ^4A4AFF[First Aid]^000000 skill from him.";
+ mes "Somewhere in this room, there's someone named ^4d4dffJinha^000000.";
+ mes "Find Jinha and learn the ^4d4dff[First Aid]^000000 skill from him.";
close;
- }
- else if(job_novice_q == 8) {
+ } else if (job_novice_q == 6) {
mes "[Instructor Brade]";
mes "Now you've learned the [First Aid] Skill.";
mes "Just as I told you before, by registering the First Aid Skill onto the Hot Key Window, you can use the skill fast and easy.";
@@ -368,43 +428,64 @@ new_1-2,100,105,4 script Brade#nv 733,{
next;
mes "[Instructor Brade]";
mes "You've come along fine this far.";
- mes "This is not much, but that this as a reward.";
- getitem 2393,1; // N_Adventurer's_Suit
+ mes "This is not much, but take this as a reward.";
+ set job_novice_q,7;
+ getitem 2393,1; //N_Adventurer's_Suit
completequest 7120;
- set job_novice_q,9;
close;
- }
- else if(job_novice_q > 8) {
+ } else if (job_novice_q == 7) {
mes "[Instructor Brade]";
mes "Next step of the Training is done in the room west of here.";
mes "If you are lost, I can send you there.";
next;
- if(select("I can get there by myself.:Please, send me to the next room.") == 2) {
+ switch(select("I can get there by myself.:Please, send me to the next room.")) {
+ case 1:
+ mes "[Instructor Brade]";
+ mes "Good. That's the attitude you must have.";
+ mes "You can't just lean on others to help you.";
+ mes "Now, go ahead.";
+ close;
+ case 2:
mes "[Instructor Brade]";
mes "Oh well.";
mes "I think it's better than seeing you lost and wandering about.";
mes "Hahahaha...";
close2;
- warp "new_1-2",41,172;
+ warp strnpcinfo(4),41,172;
end;
}
+ } else {
mes "[Instructor Brade]";
- mes "Good. That's the attitude you must have.";
- mes "You can't just lean on others to help you.";
- mes "Now, go ahead.";
- close;
+ mes "Aren't you done with the courses here?";
+ mes "Or are you just lost?";
+ next;
+ switch(select("Send me to the Combat Training Ground.:I want to go to town.")) {
+ case 1:
+ mes "[Instructor Brade]";
+ mes "Sure.";
+ mes "Be careful not to be lost again.";
+ close2;
+ warp "new_"+charat(strnpcinfo(4),4)+"-3",96,21;
+ end;
+ case 2:
+ mes "[Instructor Brade]";
+ mes "Town... Eh?";
+ mes "In that case, I will send you to where the Kafra Employee is at.";
+ mes "Use ^4d4dffKafra's Warp Service^000000 to go to town.";
+ close2;
+ warp strnpcinfo(4),41,172;
+ end;
+ }
}
- mes "[Instructor Brade]";
- mes "Why are you still here?";
- close2;
- warp "prontera",156,90;
- end;
}
+new_1-2,100,105,3 duplicate(NvBradeA) Brade#nv1a 4_M_JOB_KNIGHT1
+new_2-2,100,105,3 duplicate(NvBradeA) Brade#nv2a 4_M_JOB_KNIGHT1
+new_3-2,100,105,3 duplicate(NvBradeA) Brade#nv3a 4_M_JOB_KNIGHT1
+new_4-2,100,105,3 duplicate(NvBradeA) Brade#nv4a 4_M_JOB_KNIGHT1
+new_5-2,100,105,3 duplicate(NvBradeA) Brade#nv5a 4_M_JOB_KNIGHT1
-// Instructor Jinha
-//============================================================
-new_1-2,115,120,4 script Jinha#nv 59,{
- if(job_novice_q < 7) {
+- script Jinha#newbe03::NvJinha -1,{
+ if (job_novice_q < 5) {
mes "[Jinha]";
mes "What can I help you with?";
mes "Hmm? You haven't followed the curriculum correctly.";
@@ -412,99 +493,168 @@ new_1-2,115,120,4 script Jinha#nv 59,{
mes "[Jinha]";
mes "You have to see Instructor Brade first before me. I will send you to Instructor Brade.";
close2;
- warp "new_1-2",100,100;
+ warp strnpcinfo(4),100,100;
end;
- }
- else if(job_novice_q == 7) {
- mes "[Jinha]";
- mes "Hello!";
- mes "How can I help you?";
- next;
- select("I want to learn the use the [First Aid] Skill.");
- mes "[Jinha]";
- mes "That's right.";
- mes "First Aid is the skill used to convert SP into HP when you are in danger.";
- next;
- specialeffect2 58;
- specialeffect2 234;
- mes "[Jinha]";
- mes "It's recovery amount is small.";
- mes "Still, it will help you not to faint from a critical hit.";
- next;
- skill "NV_FIRSTAID",1,0; // NV_FIRSTAID
- set job_novice_q,8;
- mes "[Jinha]";
- mes "You can open the Skill Window by pressing the ^4A4AFFskill^000000 button in the Basic Window.";
- mes "Hot Key is ^4A4AFFALT + S^000000.";
- mes "Why don't you try the skill?";
- next;
- mes "[Jinha]";
- mes "Good, now you know how to use the First Aid Skill, you have to move on to the next step.";
- mes "Go back to Instructor Brade and show him what you've learned here.";
- close;
- }
- else if(job_novice_q == 8) {
+ } else if (job_novice_q == 5) {
+ if (getskilllv("NV_FIRSTAID") > 0) {
+ mes "[Jinha]";
+ mes "Hello!";
+ mes "I am responsible for teaching you the [First Aid] skill.";
+ mes "Instructor Brade asked you to learn it right?.";
+ next;
+ mes "[Jinha]";
+ mes "Wow... ...it's amazing!";
+ mes "You already know the First Aid Skill.";
+ mes "There doesn't seem to be anything for me to teach you.";
+ next;
+ mes "[Jinha]";
+ mes "Great. Was your instructor from the previous management Cecil?";
+ mes "Well, you have learned First Aid, I can confirm that.";
+ next;
+ mes "[Jinha]";
+ mes "Well, you can directly go to the next step of the course.";
+ mes "Go back to Instructor Brade.";
+ set job_novice_q,6;
+ close;
+ } else {
+ mes "[Jinha]";
+ mes "Hello!";
+ mes "How can I help you?";
+ next;
+ select("I want to learn to use the [First Aid] Skill.");
+ mes "[Jinha]";
+ mes "That's right.";
+ mes "First Aid is the skill used to convert SP into HP when you are in danger.";
+ next;
+ mes "[Jinha]";
+ mes "It's recovery amount is small.";
+ mes "Still, it will help you not to faint from a critical hit.";
+ specialeffect2 EF_BEGINSPELL6;
+ specialeffect2 EF_SPELLBREAKER;
+ next;
+ mes "[Jinha]";
+ mes "You can open the Skill Window by pressing the ^4d4dffskill^000000 button in the Basic Window.";
+ mes "Hot Key is ^4d4dffALT + S^000000.";
+ mes "Why don't you try the skill?";
+ skill "NV_FIRSTAID",1,0;
+ set skill_nov,3; // Has future uses - do not remove! [Euphy]
+ set job_novice_q,6;
+ next;
+ mes "[Jinha]";
+ mes "Good, now you know how to use the First Aid Skill, you have to move on to the next step.";
+ mes "Go back to Instructor Brade and show him what you've learned here.";
+ close;
+ }
+ } else if (job_novice_q == 6) {
mes "[Jinha]";
mes "Didn't you learn the First Aid Skill already?";
mes "Have it checked by Instructor Brade.";
mes "If you don't know how to get to him, I will send you to him.";
next;
- if(select("I'm good by myself.:Please, send me to him.") == 2) {
+ switch(select("I'm good by myself.:Please, send me to him.")) {
+ case 1:
+ mes "[Jinha]";
+ mes "Very Good!";
+ mes "That's the right attitude!";
+ mes "You will be a great adventurer in the future.";
+ close;
+ case 2:
mes "[Jinha]";
mes "I will send you to Instructor Brade.";
close2;
- warp "new_1-2",100,100;
+ warp strnpcinfo(4),100,100;
end;
}
- mes "[Jinha]";
- mes "Very Good!";
- mes "That's the right attitude!";
- mes "You will be a great adventurer in the future.";
- close;
- }
- else if(job_novice_q > 8) {
+ } else {
mes "[Jinha]";
mes "What can I do for you?";
mes "Next course will be continued in the West Room.";
- mes "Go on to the west room.";
+ mes "Go on into the west room.";
close;
}
- mes "[Jinha]";
- mes "Why are you still here?";
- close2;
- warp "prontera",156,90;
- end;
}
+new_1-2,115,120,3 duplicate(NvJinha) Jinha#nv1 1_M_ORIENT01
+new_2-2,115,120,3 duplicate(NvJinha) Jinha#nv2 1_M_ORIENT01
+new_3-2,115,120,3 duplicate(NvJinha) Jinha#nv3 1_M_ORIENT01
+new_4-2,115,120,3 duplicate(NvJinha) Jinha#nv4 1_M_ORIENT01
+new_5-2,115,120,3 duplicate(NvJinha) Jinha#nv5 1_M_ORIENT01
// People/Services in Ragnarok
//============================================================
-// ---------- Chocolat ----------
-new_1-2,32,172,4 script Chocolat#nv 96,{
- if(job_novice_q < 9) {
+- script Chocolat#newbe06::NvChocolat -1,{
+ if (job_novice_q < 7) {
mes "[Chocolat]";
mes "Hmm? Strange.";
mes "Let me see that Trainee ID for a sec.";
next;
- mes "[Chocolat]";
- mes "You were still on the basic course.";
- mes "You should go back to Instructor Brade or Jinha.";
- next;
- mes "[Chocolat]";
- mes "If you don't know how to find them, I can send you to Instructor Brade, How about it?";
- next;
- if(select("I will go myself.:Will you do that for me?") == 2) {
+ if (job_novice_q < 2) {
mes "[Chocolat]";
- mes "Sure.";
- mes "I will see you later.";
- close2;
- warp "new_1-2",100,100;
- end;
+ mes "Oh, really...";
+ mes "You have participated on the previous Training Grounds.";
+ mes "The Training Grounds have now come under new management.";
+ next;
+ mes "[Chocolat]";
+ mes "If you want to do the basic course,";
+ mes "you should go back to Instructor Brade.";
+ next;
+ mes "[Chocolat]";
+ mes "Or you can go ahead and start with theory training.";
+ mes "What would you like to do?";
+ next;
+ switch(select("Send me to Basic Training.:Start Theory Training.")) {
+ case 1:
+ mes "[Chocolat]";
+ mes "Sure.";
+ mes "I will send you to Instructor Brade.";
+ mes "Instructor Brade will start your basic training.";
+ close2;
+ warp strnpcinfo(4),100,100;
+ end;
+ case 2:
+ mes "[Chocolat]";
+ mes "I will tell you about the people you will be seeing in Town.";
+ mes "There are many kinds of people in town and some of them will be helpful to know.";
+ next;
+ mes "[Chocolat]";
+ mes "There are a lot of people in town, but among them, these people are the most important to know.";
+ next;
+ mes "[Chocolat]";
+ mes "They are [Kafra] Employee's standing right behind me and their rival company the [Cool Event Corp].";
+ mes "When you visit a town for the first time, you should talk to the Information [Guide]";
+ next;
+ mes "[Chocolat]";
+ mes "Well then, let's hear from each of them.";
+ mes "Start by talking to the [Kafra] Employee.";
+ set job_novice_q,8;
+ setquest 7121;
+ next;
+ mes "^4d4dff- You've received a quest from Chocolat.";
+ mes "Please check the quest information window. -^000000";
+ close;
+ }
+ } else {
+ mes "[Chocolat]";
+ mes "You were still on the basic course.";
+ mes "You should go back to Instructor Brade or Jinha.";
+ next;
+ mes "[Chocolat]";
+ mes "If you don't know how to find them, I can send you to Instructor Brade, How about it?";
+ next;
+ switch(select("I will go myself.:Will you do that for me?")) {
+ case 1:
+ mes "[Chocolat]";
+ mes "Sure. Go out to the door to the right.";
+ close;
+ case 2:
+ mes "[Chocolat]";
+ mes "Sure.";
+ mes "I will see you later.";
+ close2;
+ warp strnpcinfo(4),100,100;
+ end;
+ }
}
- mes "[Chocolat]";
- mes "Sure. Go out to the door to the right.";
- close;
- }
- else if(job_novice_q == 9) {
+ } else if (job_novice_q == 7) {
mes "[Chocolat]";
mes "I will tell you about the people you will be seeing in Town.";
mes "There are many kinds of people in town and some of them will be helpful to know.";
@@ -513,46 +663,46 @@ new_1-2,32,172,4 script Chocolat#nv 96,{
mes "There are a lot of people in town, but among them, these people are the most important to know.";
next;
mes "[Chocolat]";
- mes "They are [Kafra] Agents standing right behind me and their rival company the [Cool Event].";
- mes "When you visit a town for the first time, you should talk to Information [Soldier].";
+ mes "They are [Kafra] Employee's standing right behind me and their rival company the [Cool Event Corp].";
+ mes "When you visit a town for the first time, you should talk to Information [Guide]";
next;
mes "[Chocolat]";
mes "Well then, let's hear from each of them.";
- mes "Start by talking to the [Kafra] agent.";
+ mes "Start by talking to the [Kafra] Employee.";
+ set job_novice_q,8;
setquest 7121;
- set job_novice_q,10;
close;
- }
- else if(job_novice_q == 10) {
+ } else if (job_novice_q == 8) {
mes "[Chocolat]";
mes "Here, talk to these guys standing behind me.";
- mes "Start with the [Kafra] gal behind me.";
+ mes "Start with the [Kafra] Employee behind me.";
close;
- }
- else if(job_novice_q == 11) {
+ } else if (job_novice_q == 9) {
mes "[Chocolat]";
mes "You've learned a lot about Kafra service huh?";
- mes "From now on, you can use the Kafra Server.";
+ mes "From now on, you can use the Kafra Service.";
+ next;
+ mes "[Chocolat]";
+ mes "During the Training Process, if you want to go straight to the town, you can use the Kafra Service to go there.";
+ mes "But, once you leave the Training Center, you can never come back here.";
next;
mes "[Chocolat]";
- mes "Next is Kafra's rival, [Cool Event] Staff!";
- mes "[Cool Event] Staff specialize in events.";
+ mes "Next is the Kafra's rival, [Cool Event Corp.] Staff!";
+ mes "[Cool Event Corp.] Staff specialize in events.";
mes "Well, why don't you talk to him yourself?";
close;
- }
- else if(job_novice_q == 12) {
+ } else if (job_novice_q == 10) {
mes "[Chocolat]";
- mes "After [Kafra] and [Cool Event], are the Information [Soldier]s.";
+ mes "After [Kafra] and [Cool Event Corp.], are the Information [Guide]'s.";
mes "They can seem insignificant but they can help you greatly when the time comes.";
next;
mes "[Chocolat]";
- mes "I've brought the Information Soldier from the City of Prontera.";
+ mes "I've brought the Information Guide from the City of Prontera.";
mes "Ask him what he actually does in town.";
close;
- }
- else if(job_novice_q == 13) {
+ } else if (job_novice_q == 11) {
mes "[Chocolat]";
- mes "How was the guide of the Information [Soldier]?";
+ mes "How was the explanation of the Information [Guide]?";
mes "Last is about using [Inn]s.";
mes "There's an Inn located in each town.";
next;
@@ -563,16 +713,11 @@ new_1-2,32,172,4 script Chocolat#nv 96,{
next;
mes "[Chocolat]";
mes "Besides these guys, there's many merchants selling various kind of items, so go check them out.";
+ set job_novice_q,12;
completequest 7121;
- getexp 300,0;
- getexp 300,0;
- getexp 300,0;
- getexp 300,0;
- getexp 300,0;
- getexp 300,20;
- getitem 7059,20; // Cargo_Free_Ticket
- getitem 7060,30; // Warp_Free_Ticket
- set job_novice_q,14;
+ getexp 1800,20;
+ getitem 7059,20; //Cargo_Free_Ticket
+ getitem 7060,30; //Warp_Free_Ticket
next;
mes "[Chocolat]";
mes "You've completed all the quests I gave you.";
@@ -587,280 +732,423 @@ new_1-2,32,172,4 script Chocolat#nv 96,{
mes "Real Combat Training will be given by Instructor Brade. You met him earlier.";
mes "I will send you to the Real Combat Training Field.";
close2;
- savepoint "new_1-3",96,21;
- warp "new_1-3",96,21;
+ set .@map$, "new_"+charat(strnpcinfo(4),4)+"-3";
+ savepoint .@map$,96,21;
+ warp .@map$,96,21;
end;
- }
- else if(job_novice_q > 13) {
+ } else {
mes "[Chocolat]";
- mes "What can I do for you?";
+ mes "Are you lost?";
next;
- select("");
- mes "[Chocolat]";
- mes "I will send you to the Real Combat Training Field right away.";
- close2;
- savepoint "new_1-3",96,21;
- warp "new_1-3",96,21;
- end;
+ switch(select("No, just looking around:Yes, send me to the Combat Training Field")) {
+ case 1:
+ mes "[Chocolat]";
+ mes "Okay, come back to me if";
+ mes "you need me to redirect you.";
+ close;
+ case 2:
+ mes "[Chocolat]";
+ mes "I will send you to the Real Combat Training Field.";
+ close2;
+ set .@map$, "new_"+charat(strnpcinfo(4),4)+"-3";
+ savepoint .@map$,96,21;
+ warp .@map$,96,21;
+ end;
+ }
}
- mes "[Chocolat]";
- mes "Why are you still here?";
- close2;
- warp "prontera",156,90;
- end;
}
+new_1-2,33,172,4 duplicate(NvChocolat) Chocolat#nv1 4W_KID
+new_2-2,33,172,4 duplicate(NvChocolat) Chocolat#nv2 4W_KID
+new_3-2,33,172,4 duplicate(NvChocolat) Chocolat#nv3 4W_KID
+new_4-2,33,172,4 duplicate(NvChocolat) Chocolat#nv4 4W_KID
+new_5-2,33,172,4 duplicate(NvChocolat) Chocolat#nv5 4W_KID
-// ---------- Kafra ----------
-new_1-2,29,176,4 script Kafra#nv 117,{
- if(job_novice_q < 10) {
- mes "[Kafra Agent]";
+- script Kafra Employee#newbe07::NvKafra -1,{
+ if (job_novice_q < 8) {
+ mes "[Kafra Employee]";
mes "Hello.";
mes "I don't think it's my turn yet.";
mes "Please talk to 'Chocolat' first.";
close;
- }
- else if(job_novice_q == 10) {
- mes "[Kafra Agent]";
+ } else if (job_novice_q == 8) {
+ mes "[Kafra Employee]";
mes "Hello.";
- mes "I've been dispatched by the Kafra Head Office to help Trainees.";
- mes "The Kafra Corporation is the world's largest company with a long and distinguished history on the Rune Midgard continent.";
+ mes "I've been dispatched by the Kafra Head Office to help trainees.";
+ mes "The Kafra Corporation is the world's largest company with a long and distinguished history on the Rune-Midgard continent.";
mes "It's important for you adventurers to be close with us.";
next;
- mes "[Kafra Agent]";
- mes "I will inform you about the Kafra Services which you will be using most frequently, [Save], [Storage], and [Teleport] Services.";
+ mes "[Kafra Employee]";
+ mes "I will inform you about the Kafra Services which you will be using most frequently, [Save], [Storage] and [Teleport] Services.";
next;
- mes "[Kafra Agent]";
- mes "When you talk to a Kafra Agent and ask for the Save Service, the location of where you will revive, after being defeated in battle, will be changed.";
+ mes "[Kafra Employee]";
+ mes "When you talk to a Kafra Employee and ask for the Save Service,";
+ mes "the location of where you will revive, after being defeated in battle, will be changed.";
next;
- mes "[Kafra Agent]";
- mes "Your Respawn Point is always the last place where you have saved.";
- mes "Using a Butterfly Wing will return you to the place where you last saved.";
+ mes "[Kafra Employee]";
+ mes "Your Respawn Point is always the last place where you have saved. Using a Butterfly Wing will return you to the place where you last saved.";
mes "This service is free to use, so feel free to use the Save Service anytime you like.";
next;
- mes "[Kafra Agent]";
- mes "Next is the Storage Service.";
+ callsub L_Services,2; //Storage
+ next;
+ callsub L_Services,3; //Teleport
+ set job_novice_q,9;
+ next;
+ mes "[Kafra Employee]";
+ mes "Do you want to hear another explanation?";
+ next;
+ while(1) {
+ set .@select, select("About Save:About Storage:About Teleport:About Cart:No More.");
+ if (.@select == 5) {
+ mes "[Kafra Employee]";
+ mes "I hope you are satisfied with my explanation";
+ mes "about the Kafra Service.";
+ close;
+ }
+ callsub L_Services, .@select;
+ next;
+ }
+ } else {
+ mes "[Kafra Employee]";
+ mes "Kafra Service at your service.";
+ mes "What can I do for you?";
+ next;
+ mes "[Kafra Employee]";
+ mes "Let me inform you before you use the Teleport Service.";
+ mes "If you teleport to the village,";
+ mes "^4d4dffyou can NEVER come back to the Novice Training Field.^000000";
+ mes "So keep that in mind.";
+ next;
+ switch(select("Teleport Service:About Kafra Service")) {
+ case 1:
+ mes "[Kafra Employee]";
+ mes "So, you are going straight to town.";
+ mes "Let me give you a brief introduction.";
+ mes "^4d4dffProntera is the Capital City of the Rune-Midgarts Kingdom, and right next to it is Izlude^000000.";
+ next;
+ mes "[Kafra Employee]";
+ mes "^4d4dffMorroc is the Desert City, you can change your job to Thief and Assassin^000000 here.";
+ mes "^4d4dffPayon is the Village in the Mountains, and it is close to the Archer Village^000000.";
+ mes "^4d4dffGeffen is the City of Magic. Go there if you want to become a Mage.^000000";
+ next;
+ mes "[Kafra Employee]";
+ mes "^4d4dffAlberta is the Port City and there you can find the Merchant Guild^000000.";
+ mes "Also, if you are trying to take a boat to go somewhere, you have to go through Alberta first.";
+ mes "Select the town you want to teleport to.";
+ next;
+ switch(select("Prontera:Morroc:Payon:Alberta:Geffen")) {
+ case 1:
+ mes "[Kafra Employee]";
+ mes "Rune-Midgarts' Capital, Prontera.";
+ mes "I will send you to Prontera.";
+ mes "May Freya bless you upon your journey.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "prontera",117,72;
+ warp "prontera",150,50;
+ end;
+ case 2:
+ mes "[Kafra Employee]";
+ mes "The Desert City, Morroc...";
+ mes "It has lost it's former glory...";
+ mes "Do not lose the dream in your heart right now.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "morocc",150,99;
+ warp "morocc",155,110;
+ end;
+ case 3:
+ mes "[Kafra Employee]";
+ mes "Hmm, you want to be an Archer?.";
+ mes "Let's go to Payon.";
+ mes "Let Freya bless you.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "payon",70,100;
+ warp "payon",166,67;
+ end;
+ case 4:
+ mes "[Kafra Employee]";
+ mes "The Port City, Alberta.";
+ mes "Main city for all trades on the Rune-Midgard continent.";
+ mes "If you want to experience other civilizations, you have to visit Alberta first.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "alberta",30,232;
+ warp "alberta",114,58;
+ end;
+ case 5:
+ mes "[Kafra Employee]";
+ mes "The City of Magic!";
+ mes "Geffen Tower is looking nice standing in the middle of Geffen City.";
+ mes "I will send you close to the Geffen fountain.";
+ mes "May Goddess Freya bless you!.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "geffen",119,37;
+ warp "geffen",122,65;
+ end;
+ }
+ case 2:
+ mes "[Kafra Employee]";
+ mes "I will explain about the Kafra Service.";
+ mes "Which Service do you want to be";
+ mes "informed about?";
+ next;
+ while(1) {
+ set .@select, select("About Save:About Storage:About Teleport:About Cart:No More.");
+ if (.@select == 5) {
+ mes "[Kafra Employee]";
+ mes "I hope you are satisfied with my explanation";
+ mes "about the Kafra Service.";
+ close;
+ }
+ callsub L_Services, .@select;
+ next;
+ }
+ }
+ }
+ end;
+
+L_Services:
+ switch(getarg(0)) {
+ case 1:
+ mes "[Kafra Employee]";
+ mes "When you are killed in a battle,";
+ mes "you can revive in the location you saved with this service.";
+ mes "If you save at a Kafra in each village";
+ mes "You can revive in the village you saved.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Saved location is always where";
+ mes "you saved last, and by using a Butterfly Wing,";
+ mes "you can teleport directly to your saved point.";
+ mes "So feel free to use this service.";
+ break;
+ case 2:
+ mes "[Kafra Employee]";
+ mes "Next is about using the Storage Service.";
mes "You can store and retrieve your items in any town at your convenience.";
next;
- mes "[Kafra Agent]";
+ mes "[Kafra Employee]";
mes "It's unreasonable to carry all of your items with you when you don't need them right away.";
mes "Please use our Storage and keep your items safe and secure.";
next;
- mes "[Kafra Agent]";
- mes "Our convenient Storage Service is provided to our customers for a small fee which is different from town to town.";
- mes "However, you must be at least ^4A4AFFBasic Skill Level 6^000000 to use the Storage.";
+ mes "[Kafra Employee]";
+ mes "Our convenient Storage Service";
+ mes "is provided to our customers for a small fee which is different from town to town.";
+ mes "However, you must be";
+ mes "at least ^3355FFBasic Skill Level 6^000000";
+ mes "to use the Storage.";
next;
- mes "[Kafra Agent]";
+ mes "[Kafra Employee]";
+ //mes "There are 3 different item sections of the Storage into which items are organized: Consumable, Equipment and Etc.";
mes "There are 7 different item sections of the Storage into which items are organized: Consumable, Kafra (Item Mall), Armor, Weapons, Ammo, Cards, and Etc items.";
next;
- mes "[Kafra Agent]";
- mes "There are a maximum of 600 Inventory Slots in Kafra Storage, meaning you can have up to 600 different kinds of total items in Storage.";
+
+ // VIP System messages.
+ mes "[Kafra Employee]";
+ mes "There are a maximum of 600 Inventory Slots in Kafra Storage, meaning you can have up to 600 different kinds of items in Storage.";
+ next;
+/*
+ mes "[Kafra Employee]";
+ mes "There are a maximum of 300 Inventory Slots in Kafra Storage, meaning you can have up to 300 different kinds of items in Storage.";
next;
- mes "[Kafra Agent]";
+ mes "[Kafra Employee]";
mes "If you have a Premium Subscription, the maximum Inventory Slots in Kafra Storage is 600!";
mes "Remember though, that in the case of Equipment, each item takes up one Inventory Slot.";
mes "The maximum number of items that can be placed in Kafra Storage is 30,000.";
next;
- mes "[Kafra Agent]";
- mes "Storage is shared by everyone character on one account.";
- mes "Storage Fees can vary for each Town.";
+*/
+
+ mes "[Kafra Employee]";
+ mes "This Storage is shared by every character on one account.";
+ mes "Storage Fees can be vary for each Town.";
mes "So please keep that in mind when you are using our storage service.";
- next;
- mes "[Kafra Agent]";
+ break;
+ case 3:
+ mes "[Kafra Employee]";
mes "We also provide you with a Teleport Service to make your trips easier when you are trying to move a long distance.";
next;
- mes "[Kafra Agent]";
- mes "With our veteran teleporter's skill, your trip will be safer and more comfortable.";
+ mes "[Kafra Employee]";
+ mes "With our veteran teleporter's skill,";
+ mes "your trip will be safer and more comfortable.";
mes "Oh and remember that the places you can teleport to vary from town to town.";
next;
- mes "[Kafra Agent]";
- mes "This is all for your never ending support. We are working hard to repay our debt to our customers.";
- next;
- mes "[Kafra Agent]";
- mes "Do you want to hear another explanation?";
- set job_novice_q,11;
- next;
- }
- else {
- mes "[Kafra Agent]";
- mes "Kafra Service at your service";
- mes "What can I do for you?";
- next;
- select("About Kafra Service");
- mes "[Kafra Agent]";
- mes "I will explain about the Kafra Service.";
- mes "Which service do you want to be informed about?";
- next;
- }
-
- while(1) {
- switch(select("About Save:About Storage:About Teleport:About Cart:No More.")) {
- case 1:
- mes "[Kafra Agent]";
- mes "When you are killed in battle, you can revive in the location you saved with this service.";
- mes "If you save at a Kafra in a village, you can revive in the village you saved.";
- next;
- mes "[Kafra Agent]";
- mes "Saved location is always where you saved last, and by using a Butterfly Wing, you can teleport directly to your saved point.";
- mes "So feel free to use this service.";
- next;
- break;
- case 2:
- mes "[Kafra Agent]";
- mes "Next is the Storage Service.";
- mes "You can store and retrieve your items in any town at your convenience.";
- next;
- mes "[Kafra Agent]";
- mes "It's unreasonable to carry all of your items with you when you don't need them right away.";
- mes "Please use our Storage and keep your items safe and secure.";
- next;
- mes "[Kafra Agent]";
- mes "Our convenient Storage Service is provided to our customers for a small fee which is different from town to town.";
- mes "However, you must be at least ^4A4AFFBasic Skill Level 6^000000 to use the Storage.";
- next;
- mes "[Kafra Agent]";
- mes "There are 7 different item sections of the Storage into which items are organized: Consumable, Kafra (Item Mall), Armor, Weapons, Ammo, Cards, and Etc items.";
- next;
- mes "[Kafra Agent]";
- mes "There are a maximum of 600 Inventory Slots in Kafra Storage, meaning you can have up to 600 different kinds of total items in Storage.";
- next;
- mes "[Kafra Agent]";
- mes "If you have a Premium Subscription, the maximum Inventory Slots in Kafra Storage is 600!";
- mes "Remember though, that in the case of Equipment, each item takes up one Inventory Slot.";
- mes "The maximum number of items that can be placed in Kafra Storage is 30,000.";
- next;
- mes "[Kafra Agent]";
- mes "Storage is shared by everyone character on one account.";
- mes "Storage Fees can vary for each Town.";
- mes "So please keep that in mind when you are using our storage service.";
- next;
- break;
- case 3:
- mes "[Kafra Agent]";
- mes "We also provide you with a Teleport Service to make your trips easier when you are trying to move a long distance.";
- next;
- mes "[Kafra Agent]";
- mes "With our veteran teleporter's skill, your trip will be safer and more comfortable.";
- mes "Oh and remember that the places you can teleport to vary from town to town.";
- next;
- mes "[Kafra Agent]";
- mes "This is all for your never ending support. We are working hard to repay our debt to our customers.";
- next;
- break;
- case 4:
- mes "[Kafra Agent]";
- mes "The Kafra corporation provides Cart rental services to customers engaged in commercial business.";
- mes "Originally this cart rental service had been only provided by the merchant guild in Alberta.";
- next;
- mes "[Kafra Agent]";
- mes "However, since we took over this service, our merchant customers have been able to rent carts from almost anywhere.";
- mes "The cart rental service is available only for job classes engaged in commercial business such as ^4A4AFFMerchants, Blacksmiths, Alchemists, and Super Novices^000000.";
- next;
- mes "[Kafra Agent]";
- mes "Of course you should learn the 'Pushcart' skill beforehand, otherwise you will not be able to rent a cart from us.";
- mes "The rental fee varies by town, please keep that in mind.";
- next;
- break;
- case 5:
- mes "[Kafra Agent]";
- mes "I hope you are satisfied with my explanation about the Kafra Service.";
- close;
- }
+ mes "[Kafra Employee]";
+ mes "This is all for your never ending";
+ mes "support. We are working hard to";
+ mes "repay our dept to our customers.";
+ break;
+ case 4:
+ mes "[Kafra Employee]";
+ mes "The Kafra corporation provides Cart rental services";
+ mes "to customers engaged in commercial business.";
+ mes "Originally this cart rental service had been only provided";
+ mes "by the merchant guild in Alberta";
+ next;
+ mes "[Kafra Employee]";
+ mes "However, since we took over this service";
+ mes "our merchant customers have been able to rent carts from almost anywhere.";
+ mes "The cart rental service is available only for job classes engaged in commercial business";
+ mes "such as ^4d4dffMerchants, Blacksmiths, Alchemists, and Super Novices^000000.";
+ next;
+ mes "[Kafra Employee]";
+ mes "Of course you should learn the 'Pushcart' skill beforehand,";
+ mes "otherwise you will not be able to rent a cart from us.";
+ mes "The rental fee varies by town,";
+ mes "please keep that in mind.";
+ break;
}
+ return;
}
+new_1-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv1 4_F_KAFRA1
+new_2-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv2 4_F_KAFRA1
+new_3-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv3 4_F_KAFRA1
+new_4-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv4 4_F_KAFRA1
+new_5-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv5 4_F_KAFRA1
-// ---------- Cool Event Staff ----------
-new_1-2,32,176,4 script Cool Event Staff#nv 874,{
- if(job_novice_q < 11) {
- mes "[Cool Event Staff]";
+- script Cool Event Corp. Staff::NvCool -1,{
+ if (job_novice_q < 9) {
+ mes "[Cool Event Corp. Staff]";
mes "This is not my turn.";
- mes "You finished talking to Kafra yet?";
+ mes "have you finished talking to the Kafra Employee yet?";
close;
- }
- else if(job_novice_q == 11) {
- mes "[Cool Event Staff]";
+ } else if (job_novice_q == 9) {
+ mes "[Cool Event Corp. Staff]";
mes "Hello.";
- mes "We are working hard to provide events on Rune Midgard similar to the Kafra service.";
+ mes "We are working hard to provide events on Rune-Midgard similar to the Kafra services.";
next;
- mes "[Cool Event Staff]";
- mes "Our staff is here to support you with [storage], [save], and [teleport] services.";
+ mes "[Cool Event Corp. Staff]";
+ mes "Our staff is here to support you with [storage], [save] and [teleport service].";
next;
- mes "[Cool Event Staff]";
+ mes "[Cool Event Corp. Staff]";
mes "If there's no Kafra around you, we're around to help you.";
next;
- mes "[Cool Event Staff]";
+ mes "[Cool Event Corp. Staff]";
mes "We are working hard on a network of Events to make your life better.";
mes "I hope that you can meet our staff in Alberta.";
next;
- mes "[Cool Event Staff]";
+ mes "[Cool Event Corp. Staff]";
mes "Who knows, we might meet outside of this academy.";
next;
- mes "[Cool Event Staff]";
- mes "Mostly all of us wear red coats in the places that the Kafra Staff don't work for.";
- set job_novice_q,12;
+ mes "[Cool Event Corp. Staff]";
+ mes "Mostly all of us wear red coats in the places that the Kafra Employee's don't work in.";
+ set job_novice_q,10;
+ close;
+ } else {
+ mes "[Cool Event Corp. Staff]";
+ mes "Most of our services are similar to those of the Kafra Corporation.";
close;
}
- mes "[Cool Event Staff]";
- mes "Most of our services are similar to those of Kafra.";
- close;
}
+new_1-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool1 4_M_ZONDAMAN
+new_2-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool2 4_M_ZONDAMAN
+new_3-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool3 4_M_ZONDAMAN
+new_4-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool4 4_M_ZONDAMAN
+new_5-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool5 4_M_ZONDAMAN
-// ---------- Soldier ----------
-new_1-2,35,176,4 script Soldier#nv 105,{
- if(job_novice_q < 12) {
- mes "[Soldier]";
- mes "It isn't my turn yet.";
+- script Guide::NvGuide -1,{
+ if (job_novice_q < 10) {
+ mes "[Guide]";
+ mes "It ain't my turn yet.";
mes "Listen to Chocolat.";
close;
- }
- else if(job_novice_q == 12) {
- mes "[Soldier]";
- mes "Soldiers are in each town to guide you to useful places.";
- mes "Ask us where you want to go and we'll mark your mini maps with a ^4A4AFF+^000000.";
+ } else if (job_novice_q == 10) {
+ mes "[Guide]";
+ mes "Guides are in each town to guide you to useful places.";
+ mes "Ask us where you want to go and we'll mark your mini maps with a ^4d4dff+^000000.";
mes "Don't hesitate to ask us questions.";
next;
- mes "[Soldier]";
+ mes "[Guide]";
mes "We all don't look the same in every town but our roles are the same.";
mes "Take note of this whenever you go to a new town.";
next;
- mes "[Soldier]";
- mes "If you want to go to your first town, you can do so once you have reached Base Level 11 in the training grounds.";
- set job_novice_q,13;
- close;
- }
- mes "[Soldier]";
- mes "What can I help you with?";
- mes "Need me to explain what I do again?";
- next;
- if(select("Yes, I need an explanation.:Nope") == 2) {
- mes "[Soldier]";
- mes "Ok well talk to Chocolat if you're done talking with us.";
+ mes "[Guide]";
+ mes "If you want to go to your first town, you can ask the Kafra Employee to the left.";
+ mes "You can move there with the Teleport Service.";
+ set job_novice_q,11;
close;
+ } else {
+ mes "[Guide]";
+ mes "What can I help you with?";
+ mes "Need me to explain what I do again?";
+ next;
+ switch(select("Yes, I need an explanation.:Nope.")) {
+ case 1:
+ mes "[Guide]";
+ mes "Guides are in each town to guide you to useful places in each town.";
+ mes "Ask us where you want to go and we'll mark your mini maps with a ^4d4dff+^000000.";
+ mes "Don't hesitate to ask us questions.";
+ next;
+ mes "[Guide]";
+ mes "We all don't look the same in every town but our roles are the same.";
+ mes "Take note of this whenever you go to a new town.";
+ next;
+ mes "[Guide]";
+ mes "If you want to go to your first town, you can ask the Kafra Employee to the left.";
+ mes "You can move there with the Teleport Service.";
+ close;
+ case 2:
+ mes "[Guide]";
+ mes "Ok well talk to Chocolat if you're done talking with us.";
+ close;
+ }
}
- mes "[Soldier]";
- mes "Soldiers are in each town to guide you to useful places.";
- mes "Ask us where you want to go and we'll mark your mini maps with a ^4A4AFF+^000000.";
- mes "Don't hesitate to ask us questions.";
- next;
- mes "[Soldier]";
- mes "We all don't look the same in every town but our roles are the same.";
- mes "Take note of this whenever you go to a new town.";
- next;
- mes "[Soldier]";
- mes "If you want to go to your first town, you can do so once you have reached Base Level 11 in the training grounds.";
- close;
}
+new_1-2,36,176,4 duplicate(NvGuide) Guide#nv1 8W_SOLDIER
+new_2-2,36,176,4 duplicate(NvGuide) Guide#nv2 8W_SOLDIER
+new_3-2,36,176,4 duplicate(NvGuide) Guide#nv3 8W_SOLDIER
+new_4-2,36,176,4 duplicate(NvGuide) Guide#nv4 8W_SOLDIER
+new_5-2,36,176,4 duplicate(NvGuide) Guide#nv5 8W_SOLDIER
-// Instructor Brade (Real Combat Training)
+// Real Combat Training
//============================================================
-- script Brade#nv::NvBrade 733,{
- if(job_novice_q < 14) {
- mes "[Brade]";
- mes "How did you get here?";
- close2;
- warp "new_1-2",100,100;
- end;
- }
- else if(job_novice_q == 14) {
+- script Brade#newbe04::NvBradeB -1,{
+ if (job_novice_q < 12) {
+ if (job_novice_q < 2) {
+ mes "[Brade]";
+ mes "You have participated on the previous Training Grounds.";
+ mes "The Training Grounds have now come under new management.";
+ next;
+ mes "[Brade]";
+ mes "Do you want to do the basic course,";
+ mes "or do you just want to go through from here?";
+ next;
+ switch(select("Send me to Basic Training.:I'll start from here.")) {
+ case 1:
+ mes "[Brade]";
+ mes "Ok. I'll send you to the basic course.";
+ close2;
+ warp "new_"+charat(strnpcinfo(4),4)+"-2",100,100;
+ end;
+ case 2:
+ mes "[Brade]";
+ mes "Then we will start your training.";
+ mes "I'll write down the registration form.";
+ set job_novice_q,12;
+ close;
+ }
+ } else {
+ mes "[Brade]";
+ mes "I think you came back from theory training course,";
+ mes "can I send you back to there or do you just want to go through from here?";
+ next;
+ switch(select("Send me back to Chocolat.:I'll start from here.")) {
+ case 1:
+ mes "[Brade]";
+ mes "Ok. I'll send you to Chocolat.";
+ close2;
+ warp "new_"+charat(strnpcinfo(4),4)+"-2",41,172;
+ end;
+ case 2:
+ mes "[Brade]";
+ mes "Then we will start your training.";
+ mes "I'll write down the registration form.";
+ set job_novice_q,12;
+ close;
+ }
+ }
+ } else if (job_novice_q == 12) {
mes "[Brade]";
mes "Welcome.";
mes "Now this is real practice.";
@@ -872,113 +1160,163 @@ new_1-2,35,176,4 script Soldier#nv 105,{
next;
mes "[Brade]";
mes "For convenience,";
- mes "^4A4AFFIf you hold down the Ctrl key,^000000";
- mes "while attacking, you will automatically attack.";
+ mes "^4d4dffIf you hold down the Ctrl key,^000000 while attacking, you will automatically attack.";
next;
mes "[Brade]";
- mes "You can also set this mode before battle by typing ^4A4AFF[ /nc ]^000000.";
+ mes "You can also set this mode before battle by typing ^4d4dff[ /nc ]^000000.";
next;
mes "[Brade]";
mes "Then, let's go Poring hunting.";
- mes "Please hunt Poring's on Level 1 of the training grounds.";
+ mes "Please hunt 'Poring's on Level 1 of the training grounds.";
+ set job_novice_q,13;
setquest 7122;
- set job_novice_q,15;
- getitem 569,100; // Novice_Potion
+ getitem 569,100; //Novice_Potion
+ savepoint strnpcinfo(4),96,21;
next;
- mes "^4A4AFF- You've received a quest from Instructor Brade.^000000";
- mes "^4A4AFFPlease check the quest information window. -^000000";
+ mes "^4d4dff- You've received a quest from Instructor Brade.";
+ mes "Please check the quest information window. -^000000";
+ close2;
+ } else if (job_novice_q < 15) {
+ if (job_novice_q == 13) {
+ if (checkquest(7122,HUNTING) == 2) {
+ mes "[Brade]";
+ mes "You can see it is not so hard, huh?";
+ mes "Nice job.";
+ set job_novice_q,14;
+ getitem 13040,1; //N_Cutter
+ getexp 3000,30;
+ completequest 7122;
+ next;
+ } else {
+ mes "[Brade]";
+ mes "Kill enough Porings.";
+ mes "Porings are easy to deal with, so cheer up.";
+ mes "Try again.";
+ npcskill "AL_HEAL",11,99,60;
+ close;
+ }
+ }
+ mes "[Brade]";
+ mes "Now all of the courses are almost done.";
+ mes "You are a Novice, and you can't get any jobs yet.";
+ next;
+ mes "[Brade]";
+ mes "If you acquire all of basic skills with JOB Level 10, you can change your job.";
+ next;
+ mes "[Brade]";
+ mes "The first Job classes are defined into 6 classes.";
+ next;
+ mes "[Brade]";
+ mes "The 6 basic jobs are";
+ mes "Swordman, Thief,";
+ mes "Acolyte, Mage,";
+ mes "Archer and Merchant.";
+ next;
+ mes "[Brade]";
+ mes "Let's experience the basic 6 jobs, Swordman, Thief, Acolyte, Mage, Archer and Merchant and see what those jobs can do.";
+ next;
+ mes "[Brade]";
+ mes "Behind me, there are people dispatched from each of the basic Job Guilds.";
+ mes "These people will give you instruction manuals that allow you to experience some limited skills of each job.";
+ next;
+ mes "[Brade]";
+ mes "Equip a manual of the job which you want to experience, and you will be able to use some basic skills of that corresponding job.";
+ mes "Try those skills and decide which job to choose.";
+ set job_novice_q,15;
close;
- }
- else if(job_novice_q == 15) {
- if(checkquest(7122,HUNTING) == 2) {
- mes "[Brade]";
- mes "You can see it is not so hard, right?";
- mes "Nice job.";
- getitem 13040,1; // N_Cutter
- getexp 1000,0;
- getexp 1000,0;
- getexp 1000,30;
- completequest 7122;
- set job_novice_q,16;
- next;
- mes "[Brade]";
- mes "Now all of the courses are almost done.";
- mes "You are a Novice, and you can't get any jobs yet.";
- next;
- mes "[Brade]";
- mes "If you acquire all of basic skills with Job Level 10, you can change your job.";
- next;
- mes "[Brade]";
- mes "The first job classes are defined into 6 classes.";
- next;
+ } else {
+ mes "[Brade]";
+ mes "Have you tried the skills in the Manuals?";
+ mes "If you want to hear information about each job, talk to the people dispatched by the Job Guilds.";
+ next;
+ mes "[Brade]";
+ mes "I think you've learned enough, do you want to quit and go to your first town?";
+ next;
+ switch(select("I will stay little longer.:I want to quit and go to the town.")) {
+ case 1:
mes "[Brade]";
- mes "The 6 basic jobs are";
- mes "Swordman, Thief,";
- mes "Acolyte, Mage,";
- mes "Archer and Merchant.";
+ mes "It's ok to stay here and practice until you think you are ready.";
next;
mes "[Brade]";
- mes "Let's experience the basic 6 jobs, Swordman, Thief, Acolyte, Mage, Archer and Merchant and see what those jobs can do.";
- next;
+ mes "Try using the job manuals to find out the characteristics of each job's skills.";
+ mes "I will restore your HP and SP... Keep it up.";
+ npcskill "AL_HEAL",11,99,60;
+ percentheal 0,100;
+ close;
+ case 2:
mes "[Brade]";
- mes "Behind me, there are people dispatched from each of the basic Job Guilds.";
- mes "These people will give you instruction manuals that allow you to experience some limited skills of each job.";
+ mes "Looks like you are ready.";
+ mes "I guess you have made up your mind, huh?";
+ mes "Well, where do you want to go?";
next;
- mes "[Brade]";
- mes "Equip a manual of the job which you want to experience, and you will be able to use some basic skills of that corresponding job.";
- mes "Try those skills and decide which job to choose.";
- close;
+ switch(select("Prontera:Morroc:Payon:Alberta:Geffen:Cancel")) {
+ case 1:
+ mes "[Brade]";
+ mes "Prontera, the Capital city of the Rune-Midgarts Kingdom.";
+ mes "Take care and god bless you on your journey.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "prontera",117,72;
+ warp "prontera",150,50;
+ end;
+ case 2:
+ mes "[Brade]";
+ mes "The Desert Town, Morroc...";
+ mes "There's lots of hidden stories within that town.";
+ mes "Take care.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "morocc",150,99;
+ warp "morocc",155,110;
+ end;
+ case 3:
+ mes "[Brade]";
+ mes "You've selected Payon.";
+ mes "God bless you.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "payon",70,100;
+ warp "payon",166,67;
+ end;
+ case 4:
+ mes "[Brade]";
+ mes "Alberta, the Port City.";
+ mes "It's the main hub of all trades.";
+ mes "If you want to meet with other civilizations, you have to go to Alberta first.";
+ mes "Well then, god bless you on your soul.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "alberta",30,232;
+ warp "alberta",114,58;
+ end;
+ case 5:
+ mes "[Brade]";
+ mes "Geffen, the City of Magic.";
+ mes "Geffen Tower in the middle of the city is nice.";
+ mes "I will send you near the Geffen fountain.";
+ mes "May Goddess Freya bless you.";
+ callfunc "F_NvErase";
+ close2;
+ savepoint "geffen",119,37;
+ warp "geffen",122,65;
+ end;
+ case 6:
+ mes "[Brade]";
+ mes "Yeah... Think with prudence.";
+ mes "...Meet up with the people from each guild.";
+ close;
+ }
}
- mes "[Brade]";
- mes "Kill enough Porings.";
- mes "Porings are easy to deal with, so cheer up.";
- mes "Try again.";
- npcskill "AL_HEAL",10,99,60;
- close;
- }
- mes "[Brade]";
- mes "Have you tried the skills in the Manuals?";
- mes "If you want to hear information about each job, talk to the people dispatched by the Job Guilds.";
- next;
- mes "[Brade]";
- mes "I think you've learned enough, if you want to learn more, then speak to the Eden Group girl next to the Trainers.";
- next;
- mes "[Brade]";
- mes "Try using the job manuals to find out the characteristics of each job's skills.";
- mes "I will restore your HP and SP... Keep it up.";
- npcskill "AL_HEAL",10,99,60;
- close;
-}
-
-new_1-3,96,30,4 duplicate(NvBrade) Brade#nv1 733
-new_2-3,96,30,4 duplicate(NvBrade) Brade#nv2 733
-new_3-3,96,30,4 duplicate(NvBrade) Brade#nv3 733
-new_4-3,96,30,4 duplicate(NvBrade) Brade#nv4 733
-new_5-3,96,30,4 duplicate(NvBrade) Brade#nv5 733
-
-// Job Guides (Real Combat Training)
-//============================================================
-// --------------------------- Deletion Function ------------------------------
-function script F_NvErase {
- if (getarg(0,0)) {
- if (checkquest(7123) == 0 || checkquest(7123) == 1) erasequest 7123;
- if (checkquest(7124) == 0 || checkquest(7124) == 1) erasequest 7124;
- if (checkquest(7126) == 0 || checkquest(7126) == 1) erasequest 7126;
- if (checkquest(7127) == 0 || checkquest(7127) == 1) erasequest 7127;
}
- nude;
- if (countitem(2819)) delitem 2819,1; // Swordsman_Manual
- if (countitem(2820)) delitem 2820,1; // Thief_Manual
- if (countitem(2821)) delitem 2821,1; // Acolyte_Manual
- if (countitem(2822)) delitem 2822,1; // Archer_Manual
- if (countitem(2823)) delitem 2823,1; // Merchant_Manual
- if (countitem(2824)) delitem 2824,1; // Mage_Manual
- return;
}
+new_1-3,96,30,4 duplicate(NvBradeB) Brade#nv1b 4_M_JOB_KNIGHT1
+new_2-3,96,30,4 duplicate(NvBradeB) Brade#nv2b 4_M_JOB_KNIGHT1
+new_3-3,96,30,4 duplicate(NvBradeB) Brade#nv3b 4_M_JOB_KNIGHT1
+new_4-3,96,30,4 duplicate(NvBradeB) Brade#nv4b 4_M_JOB_KNIGHT1
+new_5-3,96,30,4 duplicate(NvBradeB) Brade#nv5b 4_M_JOB_KNIGHT1
-// ---------------------------- Swordman Guide -------------------------------
-- script Swordman Guide#nv::NvSwd 728,{
- if(job_novice_q < 16) {
+- script Swordman Guide#newbe10::NvSwordman -1,{
+ if (job_novice_q < 15) {
mes "[Swordman Guildsman]";
mes "I won't help you until you finish Brade's instructions.";
close;
@@ -987,291 +1325,248 @@ function script F_NvErase {
mes "Can I help you?";
next;
switch(select("About Swordman Class.:Job change to Swordman.:Got any quests?:Cancel.")) {
- case 1:
- mes "[Swordman Guildsman]";
- mes "Literally, Swordman means one, who is specialized in wielding swords.";
- mes "But they can also choose to use spears if they so choose.";
- next;
+ case 1:
+ mes "[Swordman Guildsman]";
+ mes "Literally, Swordman means one, who";
+ mes "is specialized in wielding swords.";
+ mes "But they can also choose to use spears if they so choose.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "We possesses strong physical strength.";
+ mes "So naturally we can equip heavy armors and weapons.";
+ mes "Most weapon classes, except for bows and rods,";
+ mes "are equippable by our class.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "The only weakness of the Swordman class is that they cannot use magic spells.";
+ mes "But we've compensated for that by using elemental weapons.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "The merits of being a Swordman is the enormous amount of HP we have.";
+ mes "Most of us can bear the grunt of our enemies' attacks with relative ease.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "And we are unrivaled when it comes to one-on-one melee combat.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "Anyone who chooses to be a Swordman will likely play the role of the tank. It is our duty to protect the weak.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "As a Swordman you can advance to a ^8E2323Knight^000000 or ^8E2323Crusader^000000 class as your 2nd class profession.";
+ mes "And just recently third professions have been discovered.";
+ next;
+ if (isequipped(2819) || countitem(2819)) {
mes "[Swordman Guildsman]";
- mes "We possess strong physical strength.";
- mes "So naturally we can equip heavy armors and weapons.";
- mes "Most weapon classes, except for bows and rods, are equippable by our class.";
- next;
+ mes "Try the Swordman skills listed in the manual.";
+ mes "Open your skill menu by pressing Alt + S";
+ mes "Make sure it is in list mode by clicking the minimize button on the top right corner of the Skill Menu.";
+ close;
+ }
+ mes "[Swordman Guildsman]";
+ mes "If you're interested in being a Swordman, I'll offer you this manual.";
+ mes "Do you want to try the skills of a Swordman?";
+ next;
+ switch(select("I'll try the Swordman skills.:No thanks.")) {
+ case 1:
mes "[Swordman Guildsman]";
- mes "The only weakness of the Swordman class is that they cannot use magic spells.";
- mes "But we've compensated for that by using elemental weapons.";
+ mes "Here is the Swordman manual.";
+ mes "I'll just take any manuals from any other classes you have.";
next;
- mes "[Swordman Guildsman]";
- mes "The merits of being a Swordman is the enormous amount of HP we have.";
- mes "Most of us can bear the grunt of our enemies' attacks with relative ease.";
+ callfunc "F_NvErase";
+ getitem 2819,1; //Swordman_Manual
next;
mes "[Swordman Guildsman]";
- mes "And we are unrivaled when it comes to one-on-one melee combat.";
- next;
+ mes "After equipping the Manual, open your Skill menu by pressing ALT+S.";
+ mes "Make sure to minimize your Skill tree by clicking the '-' button on the top right corner of the Skill Tree Window.";
+ close;
+ case 2:
mes "[Swordman Guildsman]";
- mes "Anyone who chooses to be a Swordman will likely play the role of the tank. It is our duty to protect the weak.";
- next;
+ mes "Hum. Do you think so?";
+ mes "Ok, I agree with you. Choosing a job is very important in our lives.";
+ mes "Just talk to me whenever you want to experience Swordman skills.";
+ close;
+ }
+ case 2:
+ mes "[Swordman Guildsman]";
+ mes "Do you really want to change your job to Swordman?";
+ mes "If you want to be a Swordman, I'll send you to the Swordman Association immediately.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "I think you have enough job levels, of course, right?";
+ mes "Do you want to stop your training now and go to the Swordman Association?";
+ next;
+ switch(select("I'll consider it again.:I'll go to the Swordman Association.")) {
+ case 1:
mes "[Swordman Guildsman]";
- mes "As a Swordman you can advance to a ^8C2121Knight^000000 or ^8C2121Crusader^000000 class as your 2nd class profession.";
- mes "And just recently third professions have been discovered.";
- if(countitem(2819) == 0 && (getequipid(EQI_ACC_L) != 2819 || getequipid(EQI_ACC_R) != 2819)) {
- next;
- mes "[Swordman Guildsman]";
- mes "If you're interested in being a Swordman, I'll offer you this manual.";
- mes "Do you want to try the skills of a Swordman?";
- next;
- if(select("I'll try the Swordman skills.:No Thanks.") == 2) {
- mes "[Swordman Guildsman]";
- mes "Hum. Do you think so?";
- mes "Ok, I agree with you. Choosing a job is very important in our lives.";
- mes "Just talk to me whenever you want to experience Swordman skills.";
- close;
- }
- mes "[Swordman Guildsman]";
- mes "Here is the Swordman manual.";
- mes "I'll just take any manuals from any other classes you have.";
- callfunc "F_NvErase";
- getitem 2819,1; // Swordsman_Manual
- next;
- mes "[Swordman Guildsman]";
- mes "After equipping the Manual, open your Skill menu by pressing ALT+S.";
- mes "Make sure to minimize your Skill tree by clicking the '-' button on the top right corner of the Skill Tree Window.";
- }
+ mes "Please try enough instruction manuals from each job class and consider it carefully.";
+ mes "Of course, you're always welcomed.";
close;
case 2:
mes "[Swordman Guildsman]";
- mes "Do you really want to change your job to Swordman?";
- mes "If you want to be a Swordman, I'll send you to the Swordman Guild immediately.";
+ mes "I see.";
+ mes "Then I'll end your training process and send you to the Swordman Guild.";
+ callfunc "F_NvErase",1;
+ close2;
+ savepoint "izlude",128,98; // Old coordinates: (95,104)
+ warp "izlude_in",74,167;
+ end;
+ }
+ case 3:
+ set .@quest, checkquest(7123);
+ if (.@quest == -1) {
+ mes "[Swordman Guildsman]";
+ mes "You want me to give you a quest?";
+ mes "Umm. Let me see.";
+ mes "Ok! Hunt a couple of Picky monsters around here?";
+ next;
+ mes "^4d4dffYou received a hunting request from a staff of the Swordman Guild.";
+ mes "You can check the contents of the quest from the quest information window.^000000";
+ setquest 7123;
next;
mes "[Swordman Guildsman]";
- mes "I think you have enough job levels, of course, right?";
- mes "Do you want to stop your training now and go to the Swordman Guild?";
+ mes "Use the 'Bash' skill in the Swordman manual.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available Swordman skills.";
next;
- if(select("I'll consider it again.:I'll go to the Swordman Guild.") == 2) {
- mes "[Swordman Guildsman]";
- mes "I see.";
- mes "Then I'll end your training process and send you to the Swordman Guild.";
- close2;
- callfunc "F_NvErase",1;
- savepoint "izlude",94,103;
- warp "izlude_in",74,167;
- end;
- }
mes "[Swordman Guildsman]";
- mes "Please try enough instruction manuals from each job class and consider it carefully.";
- mes "Of course, you're always welcomed.";
+ mes "Talk to Trainer Brutus if you want to fight stronger monsters.";
+ mes "I'll wait for you here.";
+ mes "Wish you a good luck.";
close;
- case 3:
- set .@quest, checkquest(7123);
- if (.@quest == -1) {
- mes "[Swordman Guildsman]";
- mes "You want me to give you a quest?";
- mes "Umm. Let me see.";
- mes "Ok! Hunt a couple of Picky monsters around here.";
- next;
- mes "^4d4dffYou received a hunting request from a staff of the Swordman Guild.";
- mes "You can check the contents of the quest from the quest information window.^000000";
- setquest 7123;
- next;
- mes "[Swordman Guildsman]";
- mes "Use the 'Bash' skill in the Swordman manual.";
- mes "Open your Skill Tree by pressing ^4A4AFFAlt + S^000000 and minimize the window by pressing the '-' button on the top right corner of the window to see the available Swordman skills.";
- next;
+ } else if (.@quest == 0 || .@quest == 1) {
+ if (checkquest(7123,HUNTING) == 2) {
mes "[Swordman Guildsman]";
- mes "Talk to Trainer Brutus if you want to fight stronger monsters.";
- mes "I'll wait for you here.";
- mes "Wish you a good luck.";
+ mes "Great.";
+ mes "I think that you're good enough to be a Swordman.";
+ mes "I'll give you some potions as a reward.";
+ completequest 7123;
+ getitem 569,200; //Novice_Potion
+ getexp 5000,100;
close;
- }
- else if (.@quest == 1) {
- if (checkquest(7123,HUNTING) == 2) {
- mes "[Swordman Guildsman]";
- mes "Great.";
- mes "I think that you're good enough to be a Swordman.";
- mes "I'll give you some potions as a reward.";
- completequest 7123;
- getitem 569,200; // Novice_Potion
- getexp 5000,100;
- close;
- }
+ } else {
mes "[Swordman Guildsman]";
mes "Hunt two Picky monsters.";
mes "You can find them in the more difficult training grounds by talking to Trainer Brutus.";
close;
}
- else if (.@quest == 2) {
- mes "[Swordman Guildsman]";
- mes "I think you finished that quest already, right?";
- mes "You'll experience more of these quests as you grow as an adventurer in the world.";
- next;
- mes "[Swordman Guildsman]";
- mes "Your training is now complete.";
- mes "If you choose to become a Swordman I wish you goodluck.";
- close;
- }
+ } else if (.@quest == 2) {
mes "[Swordman Guildsman]";
- mes "I'm sorry but I don't have any quests to give you right now.";
+ mes "I think you finished that quest already, right?";
+ mes "You'll experience more of these quests as you grow as an adventurer in the world.";
+ next;
+ mes "[Swordman Guildsman]";
+ mes "Your training is now complete.";
+ mes "If you choose to become a Swordman I wish you good luck.";
close;
- case 4:
+ } else {
mes "[Swordman Guildsman]";
- mes "If you have any questions about the Swordman class, please ask me.";
- mes "The Swordman Guild is waiting for novices like you.";
+ mes "I'm sorry but I don't have any quests to give you right now.";
close;
+ }
+ case 4:
+ mes "[Swordman Guildsman]";
+ mes "If you have any questions about the Swordman class, please ask me.";
+ mes "The Swordman Guild is waiting for novices like you.";
+ close;
}
}
+new_1-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv1 4_F_JOB_KNIGHT
+new_2-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv2 4_F_JOB_KNIGHT
+new_3-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv3 4_F_JOB_KNIGHT
+new_4-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv4 4_F_JOB_KNIGHT
+new_5-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv5 4_F_JOB_KNIGHT
-new_1-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv1 728
-new_2-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv2 728
-new_3-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv3 728
-new_4-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv4 728
-new_5-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv5 728
-
-// ---------------------------- Mage Guide ----------------------------------
-- script Mage Guide#nv::NvMag 123,{
- if(job_novice_q < 16) {
- mes "[Mage Guild Member]";
- mes "You are still in the process of training with Instructor Brade.";
+- script Acolyte Guide#newbe10::NvAcolyte -1,{
+ if (job_novice_q < 15) {
+ mes "[Prontera Acolyte]";
+ mes "You look like you are not done with Instructor Brade's lessons.";
close;
}
- mes "[Mage Guild Member]";
- mes "What can I help you with?";
+ mes "[Prontera Acolyte]";
+ mes "What can I do for you?";
next;
- switch(select("Tell me about Mages:I want to be a Mage:Give me a Quest:Cancel")) {
+ switch(select("What is an Acolyte?:Job change to Acolyte.:Cancel")) {
case 1:
- mes "[Mage Guild Member]";
- mes "Mages are those who can use magic when they need to protect their friends.";
- mes "Mages can curse enemies using the elements of fire, water, earth and thunder magic.";
+ mes "[Prontera Acolyte]";
+ mes "An Acolyte is someone who worships the goddess Freya sacrificing themselves to help others.";
next;
- mes "[Mage Guild Member]";
- mes "However they cannot equip other weapons but staffs and books.";
- mes "Because they are too delicate to carry heavy weapons.";
+ mes "[Prontera Acolyte]";
+ mes "Acolytes use supportive skills to make combat easier.";
+ mes "It is essential to have an Acolyte in any successful party.";
next;
- mes "[Mage Guild Member]";
- mes "But they can cover this weakness by their remarkable magic skills.";
- mes "That is why many people want to become a Mage!";
+ mes "[Prontera Acolyte]";
+ mes "^8E2323As an Acolyte, you can upgrade your future job to Priest or Monk^8E2323.";
next;
- mes "[Mage Guild Member]";
- mes "Mages have to be in their guild for guild's power and honor.";
- mes "This is one of the reasons why Mages are popular in any parties and guilds.";
- mes "Why don't you become a Mage?";
+ if (isequipped(2821) || countitem(2821)) {
+ mes "[Prontera Acolyte]";
+ mes "Try the Acolyte Skills with the manual you have. It will help you understand the job easier.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available skills.";
+ close;
+ }
+ mes "[Prontera Acolyte]";
+ mes "If you want, I can give you a skill manual to experience what it is like to be an Acolyte.";
+ mes "Would you like to experience the skills of an Acolyte?";
next;
- mes "[Mage Guild Member]";
- mes "^8C2121Mages can transform to Wizards or Sages as their second job.^000000";
- if(countitem(2824) == 0 && (getequipid(EQI_ACC_L) != 2824 || getequipid(EQI_ACC_R) != 2824)) {
- next;
- mes "[Mage Guild Member]";
- mes "Do you want to register to experience how it is to be a Mage?";
- mes "Would you like to test Mage skills?";
- next;
- if(select("I want to test Mage skills.:I don't want to test it.") == 2) {
- mes "[Mage Guild Member]";
- mes "Hum. Do you think so.";
- mes "Ok, I agree with you. Choosing a job is very important in our life.";
- mes "Just talk to me whenever you want to experience Mage skills.";
- close;
- }
- mes "[Mage Guild Member]";
- mes "Here is the Mage Manual.";
- mes "I will take the other job registration forms and manuals from you.";
+ switch(select("Yes, please.:No, I'm not interested.")) {
+ case 1:
+ mes "[Prontera Acolyte]";
+ mes "Here you go, the instruction manual of an Acolyte.";
+ mes "I will take away those other job's manuals while you study this one.";
next;
- mes "[Mage Guild Member]";
- mes "Here is the Mage Manual.";
- mes "I will take the other job registration forms and manuals from you.";
callfunc "F_NvErase";
- getitem 2824,1; // Mage_Manual
+ getitem 2821,1; //Acolyte_Manual
next;
- mes "[Mage Guild Member]";
- mes "After equipping the Manual, open your Skill menu by pressing ALT+S.";
- mes "Make sure to minimize your Skill tree by clicking the '-' button on the top right corner of the Skill Tree Window.";
+ mes "[Prontera Acolyte]";
+ mes "Make sure to equip the Skill Manual by double-clicking it in the Inventory Window.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available skills.";
+ close;
+ case 2:
+ mes "[Prontera Acolyte]";
+ mes "Hum. Do you think so.";
+ mes "Ok, I agree with you. Choosing a job is very important in our life.";
+ mes "Just talk to me whenever you want to know about Acolytes.";
+ close;
}
- close;
case 2:
- mes "[Mage Guild Member]";
- mes "You want to be a Mage?";
- mes "Ok, then, I will send you to the Mage Guild union in Geffen right away.";
+ mes "[Prontera Acolyte]";
+ mes "Do you really want to become an Acolyte?";
+ mes "If you do, I will send you to Prontera's Sanctuary.";
next;
- mes "[Mage Guild Member]";
- mes "Wait, have you checked your Job level?";
- mes "Do you want to complete your Novice training and go straight to the Mage Guild's union?";
+ mes "[Prontera Acolyte]";
+ mes "Of course, I assume you have enough job levels to become an Acolyte right?";
+ mes "Would you like to quit the Training Process and go to the Prontera's Sanctuary?";
next;
- if(select("I will think about it again.:Yes, complete my training.") == 2) {
- mes "[Mage Guild Member]";
- mes "Welcome!!";
- mes "I will send you to the Mage Guilds union after you complete your Novice training.";
- close2;
+ switch(select("Let me reconsider.:I will go to the Sanctuary.")) {
+ case 1:
+ mes "[Prontera Acolyte]";
+ mes "You should try out each job's manuals.";
+ mes "Go through them thoroughly and decide carefully.";
+ mes "Of course, I will welcome you anytime.";
+ close;
+ case 2:
+ mes "[Prontera Acolyte]";
+ mes "That's great.";
+ mes "Then I will completely end the Training Process and send you to Prontera's Sanctuary.";
callfunc "F_NvErase",1;
- savepoint "geffen",119,38;
- warp "geffen_in",163,98;
+ close2;
+ savepoint "prontera",117,72;
+ warp "prt_church",172,19;
end;
}
- mes "[Mage Guild Member]";
- mes "Please test what Mage skills are all about before you decide.";
- mes "We are always welcome to have you!";
- close;
case 3:
- set .@quest, checkquest(7124);
- if (.@quest == -1) {
- mes "[Mage Guild Member]";
- mes "Huh? Quest?";
- mes "Hmm... What would be suited for you...?";
- mes "Would you like to hunt Lunatics by using Bolt skills?";
- next;
- mes "^4d4dffYou have received a Hunting quest from the Mage Guide.";
- mes "You can get more information about the quest from the quest window.^000000";
- setquest 7124;
- next;
- mes "[Mage Guild Member]";
- mes "You are able to use 'Fire Bolt' skill that is shown on the Mage manual.";
- mes "I will wait for you here.";
- mes "Good luck!";
- close;
- }
- else if (.@quest == 1) {
- if (checkquest(7124,HUNTING) == 2) {
- mes "[Mage Guild Member]";
- mes "You have done excellent job.";
- mes "So, did you find any interests about Mages?";
- mes "Alright. I will give something...";
- mes "Here are Novice Butterfly Wings, please take them.";
- completequest 7124;
- getitem 12324, 30; // N_Butterfly_Wing
- getexp 5000,100;
- close;
- }
- mes "[Mage Guild Member]";
- mes "The quest is that you have to";
- mes "hunt Lunatics and bring 5 clovers.";
- close;
- }
- else if (.@quest == 2) {
- mes "[Mage Guild Member]";
- mes "You have already completed the quest.";
- mes "Once you enter the main world, you can get various exciting quests there!";
- next;
- mes "[Mage Guild Member]";
- mes "This should be enough for your training.";
- close;
- }
- mes "[Mage Guild Member]";
- mes "I'm sorry but I don't have any quests to give you right now.";
- close;
- case 4:
- mes "[Mage Guild Member]";
- mes "If you have any questions about Mages, feel free to ask me.";
- mes "I think you could be a intelligent Mage...";
+ mes "[Prontera Acolyte]";
+ mes "If you have any questions about Acolytes, please ask me anytime.";
+ mes "Our God, Odin awaits adventurers like you.";
close;
}
}
+new_1-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv1 4_F_SISTER
+new_2-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv2 4_F_SISTER
+new_3-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv3 4_F_SISTER
+new_4-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv4 4_F_SISTER
+new_5-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv5 4_F_SISTER
-new_1-3,101,41,4 duplicate(NvMag) Mage Guide#nv1 123
-new_2-3,101,41,4 duplicate(NvMag) Mage Guide#nv2 123
-new_3-3,101,41,4 duplicate(NvMag) Mage Guide#nv3 123
-new_4-3,101,41,4 duplicate(NvMag) Mage Guide#nv4 123
-new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
-
-// ---------------------------- Thief Guide ---------------------------------
-- script Thief Guide#nv::NvThf 118,{
- if(job_novice_q < 16) {
+- script Thief Guide#newbe10::NvThief -1,{
+ if (job_novice_q < 15) {
mes "[Thief Guild Member]";
mes "You look like you are not done with Instructor Brade's lessons.";
close;
@@ -1290,39 +1585,41 @@ new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
mes "They are also feared for their use of poison, which slowly weakens their enemies.";
next;
mes "[Thief Guild Member]";
- mes "In jeopardy, or in the case that thieves do not want to reveal themselves, they can use their skill to hide themselves easily.";
+ mes "In jeopardy, or in the case that thieves do not want to reveal themselves,";
+ mes "they can even use their skill to hide themselves easily.";
next;
mes "[Thief Guild Member]";
- mes "Thieves can change their jobs to ^8C2121Assassins^000000 or ^8C2121Rogues.^000000";
- if(countitem(2820) == 0 && (getequipid(EQI_ACC_L) != 2820 || getequipid(EQI_ACC_R) != 2820)) {
- next;
+ mes "Thieves can change their jobs to ^8E2323Assassins^000000 or ^8E2323Rogues^000000.";
+ next;
+ if (isequipped(2820) || countitem(2820)) {
mes "[Thief Guild Member]";
- mes "If you want, I'll give you a Thief skill manual.";
- mes "Would you like to experience the skills of a Thief?";
- next;
- if(select("Yes, I would.:No, I don't.") == 2) {
- mes "[Thief Guild Member]";
- mes "Oh, are you sure?";
- mes "Class selection is very important so please consider it carefully.";
- mes "If you want to ask about Thieves, please talk to me any time.";
- close;
- }
+ mes "The class manual can help you understand what it is to be a Thief by using the skills that are essential to all Thieves.";
+ close;
+ }
+ mes "[Thief Guild Member]";
+ mes "If you want, I'll give you a Thief skill manual.";
+ mes "Would you like to experience the skills of a Thief?";
+ next;
+ switch(select("Yes, I would.:No, I don't.")) {
+ case 1:
mes "[Thief Guild Member]";
mes "Here, please take the Thief manual.";
mes "I'll just take the other class manuals while I'm at it.";
next;
- mes "[Thief Guild Member]";
- mes "Here, please take the Thief manual.";
- mes "I'll just take the other class manuals while I'm at it.";
callfunc "F_NvErase";
- getitem 2820,1; // Thief_Manual
+ getitem 2820,1; //Thief_Manual
next;
mes "[Thief Guild Member]";
mes "Make sure to equip the Skill Manual by double-clicking it in the Inventory Window.";
- mes "Open your Skill Tree by pressing ^4A4AFFAlt + S^000000 and minimize the window by pressing the '-' button on the top right corner of the window to see the available skills.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available skills.";
+ close;
+ case 2:
+ mes "[Thief Guild Member]";
+ mes "Oh, are you sure?";
+ mes "Class selection is very important so please consider it carefully.";
+ mes "If you want to ask about Thieves, please talk to me any time.";
+ close;
}
- close;
-
case 2:
mes "[Thief Guild Member]";
mes "Do you really want to be a Thief?";
@@ -1332,20 +1629,22 @@ new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
mes "You already reached the required job level, didn't you?";
mes "Do you want to finish the Novice training and go to the Thief Guild?";
next;
- if(select("Let me consider it again.:Yes, I do.") == 2) {
+ switch(select("Let me consider it again.:Yes, I do.")) {
+ case 1:
+ mes "[Thief Guild Member]";
+ mes "Have you tried all of the class manuals yet?";
+ mes "If you're undecided what job to take on I suggest you try talking to all the Guides first.";
+ close;
+ case 2:
mes "[Thief Guild Member]";
mes "Ok, I see.";
mes "Welcome. Then your Novice training is totally complete and you will be sent to the Thief Guild immediately.";
- close2;
callfunc "F_NvErase",1;
- savepoint "morocc",150,100;
+ close2;
+ savepoint "morocc",150,99;
warp "moc_prydb1",99,185;
end;
}
- mes "[Thief Guild Member]";
- mes "Have you tried all of the class manuals yet?";
- mes "If you're undecided what job to take on I suggest you try talking to all the Guides first.";
- close;
case 3:
set .@quest, checkquest(7127);
if (.@quest == -1) {
@@ -1363,52 +1662,50 @@ new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
mes "If you equip the Thief manual, you can have the effect of the skill, Double Attack.";
mes "Double Attack and Hide are the main skills of the Thief.";
close;
- }
- else if (.@quest == 1) {
+ } else if (.@quest == 0 || .@quest == 1) {
if (checkquest(7127,HUNTING) == 2) {
mes "[Thief Guild Member]";
mes "You are very strong.";
mes "These are not many but let me give you a reward for your effort.";
completequest 7127;
- getitem 12323, 50; // N_Fly_Wing
+ getitem 12323,50; //N_Fly_Wing
getexp 5000,100;
close;
+ } else {
+ mes "[Thief Guild Member]";
+ mes "Hunt 5 Willows and then come talk to me to finish your quest.";
+ close;
}
- mes "[Thief Guild Member]";
- mes "Hunt 5 Willows and then come talk to me to finish your quest.";
- close;
- }
- else if (.@quest == 2) {
+ } else if (.@quest == 2) {
mes "[Thief Guild Member]";
mes "I think you finished that quest already, right?";
mes "You'll experience more of these quests as you grow as an adventurer in the world.";
next;
mes "[Thief Guild Member]";
mes "Your training is now complete.";
- mes "If you choose to become a Thief I wish you goodluck.";
+ mes "If you choose to become a Thief I wish you good luck.";
+ close;
+ } else {
+ mes "[Thief Guild Member]";
+ mes "I'm sorry but I don't have any quests to give you right now.";
close;
}
- mes "[Thief Guild Member]";
- mes "I'm sorry but I don't have any quests to give you right now.";
- close;
case 4:
mes "[Thief Guild Member]";
mes "If you have something to ask about the Thief job, feel free to ask me.";
close;
}
}
+new_1-3,105,41,3 duplicate(NvThief) Thief Guide#nv1 2_M_THIEFMASTER
+new_2-3,105,41,3 duplicate(NvThief) Thief Guide#nv2 2_M_THIEFMASTER
+new_3-3,105,41,3 duplicate(NvThief) Thief Guide#nv3 2_M_THIEFMASTER
+new_4-3,105,41,3 duplicate(NvThief) Thief Guide#nv4 2_M_THIEFMASTER
+new_5-3,105,41,3 duplicate(NvThief) Thief Guide#nv5 2_M_THIEFMASTER
-new_1-3,105,41,4 duplicate(NvThf) Thief Guide#nv1 118
-new_2-3,105,41,4 duplicate(NvThf) Thief Guide#nv2 118
-new_3-3,105,41,4 duplicate(NvThf) Thief Guide#nv3 118
-new_4-3,105,41,4 duplicate(NvThf) Thief Guide#nv4 118
-new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
-
-// ---------------------------- Merchant Guide ------------------------------
-- script Merchant Guide#nv::NvMer 97,{
- if(job_novice_q < 16) {
+- script Merchant Guide#newbe10::NvMerchant -1,{
+ if (job_novice_q < 15) {
mes "[Merchant Guildsman]";
- mes "You are still in the process of training with sir Brade.";
+ mes "You are still in the process of training with sir Brad.";
close;
}
mes "[Merchant Guildsman]";
@@ -1417,46 +1714,50 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
switch(select("Tell me about Merchants:I want to be a Merchant.:Give me a Quest.:Cancel")) {
case 1:
mes "[Merchant Guildsman]";
- mes "Merchant? Simply put, they sell goods and make money.";
+ mes "Merchant? Simply put, he sells goods and makes money.";
mes "That's the main focus for any Merchant.";
next;
mes "[Merchant Guildsman]";
mes "We have special skills for making money.";
- mes "We can buy goods at a lower price and sell them at a higher price.";
+ mes "We can buy goods at a lower price";
+ mes "and sell them at a higher price.";
next;
mes "[Merchant Guildsman]";
- mes "Also Merchants can have Carts that we can store lots of items in.";
+ mes "Also Merchants can have Carts";
+ mes "that we can store lots of items in.";
next;
mes "[Merchant Guildsman]";
- mes "^8C2121Merchants can transform to a Blacksmith or an Alchemist^000000 as their second job.";
- if(countitem(2823) == 0 && (getequipid(EQI_ACC_L) != 2823 || getequipid(EQI_ACC_R) != 2823)) {
- next;
+ mes "^8E2323Merchants can transform to a Blacksmith";
+ mes "^8E2323or an Alchemist^000000 as their second job.";
+ next;
+ if (isequipped(2823) || countitem(2823)) {
mes "[Merchant Guildsman]";
- mes "Do you wan to see what it's like to be a Merchant?";
- next;
- if(select("I want to test Merchant skills.:I don't want to test it.") == 2) {
- mes "[Merchant Guildsman]";
- mes "Hum. Do you think so?";
- mes "Ok, I agree with you. Choosing a job is very important in our life.";
- mes "Just talk to me whenever you want to experience Merchant skills.";
- close;
- }
+ mes "I think you should test Merchant skills before you decide what to do.";
+ close;
+ }
+ mes "[Merchant Guildsman]";
+ mes "Do you want to see what it's like to be a Merchant?";
+ next;
+ switch(select("I want to test Merchant skills.:I don't want to test it.")) {
+ case 1:
mes "[Merchant Guildsman]";
mes "Here is the Merchant skill manual.";
mes "I will take other job manuals from you while I'm at it.";
next;
- mes "[Merchant Guildsman]";
- mes "Here is the Merchant skill manual.";
- mes "I will take other job manuals from you while I'm at it.";
callfunc "F_NvErase";
- getitem 2823,1; // Merchant_Manual
+ getitem 2823,1; //Merchant_Manual
next;
mes "[Merchant Guildsman]";
mes "Make sure to equip the Skill Manual by double-clicking it in the Inventory Window.";
- mes "Open your Skill Tree by pressing ^4A4AFFAlt + S^000000 and minimize the window by pressing the '-' button on the top right corner of the window to see the available skills.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available skills.";
+ close;
+ case 2:
+ mes "[Merchant Guildsman]";
+ mes "Hum. Do you think so.";
+ mes "Ok, I agree with you. Choosing job is very important in our life.";
+ mes "Just talk to me whenever you want to experience Merchant skills.";
+ close;
}
- close;
-
case 2:
mes "[Merchant Guildsman]";
mes "You want to be a Merchant?";
@@ -1466,20 +1767,22 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "Wait, have you checked your Job level?";
mes "Do you want to complete your Novice training and go straight to the Merchant Guild's union?";
next;
- if(select("I will think about it again.:Yes, I want to go to the Merchant Guild's union.") == 2) {
+ switch(select("I will think about it again.:Yes, I want to go to the Merchant Guild's union")) {
+ case 1:
mes "[Merchant Guildsman]";
- mes "Welcome!!";
- mes "I will send you to the Merchant Guild's union after you complete your Novice training.";
- close2;
+ mes "Ok, I hope you consider being a Merchant.";
+ mes "We are always welcome to have you!";
+ close;
+ case 2:
+ mes "[Merchant Guildsman]";
+ mes "That's great.";
+ mes "Then I will end the Training Process and send you to the Merchant Guild's union immediately.";
callfunc "F_NvErase",1;
- savepoint "alberta",29,231;
+ close2;
+ savepoint "alberta",30,232;
warp "alberta_in",62,44;
end;
}
- mes "[Merchant Guildsman]";
- mes "Ok, I hope you consider being a Merchant.";
- mes "We are always welcome to have you!";
- close;
case 3:
set .@quest, checkquest(7126);
if (.@quest == -1) {
@@ -1492,12 +1795,12 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "If you equipped the Merchant manual you have the ability to use the 'Overcharge' and 'Discount' skills.";
setquest 7126;
next;
+ mes "[Merchant Guildsman]";
mes "I will wait for you here.";
mes "Good luck!";
close;
- }
- else if (.@quest == 1) {
- if (Zeny > 299) {
+ } else if (.@quest == 0 || .@quest == 1) {
+ if (Zeny >= 300) {
mes "[Merchant Guildsman]";
mes "Excellent!";
mes "Zeny is the currency of Rune-Midgard.";
@@ -1513,23 +1816,23 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "Alright! What about Phracon?";
mes "Phracon is a metallic element which you can use for refining weapons.";
completequest 7126;
- getitem 1010,7; // Phracon
+ getitem 1010,7; //Phracon
getexp 5000,100;
close;
+ } else {
+ mes "[Merchant Guildsman]";
+ mes "Zeny is the currency of Rune-Midgard.";
+ mes "You can make zeny by selling loot as well as through making smart business decisions.";
+ next;
+ mes "[Merchant Guildsman]";
+ mes "You can get loot by killing monsters. After hunting monsters, you can sell those loot to make a profit!";
+ mes "What a valuable job it is! Isn't it?";
+ next;
+ mes "[Merchant Guildsman]";
+ mes "Why don't you try to be a Merchant? Making money is not easy but it will be a great experience!";
+ close;
}
- mes "[Merchant Guildsman]";
- mes "Zeny is the currency of Rune-Midgard.";
- mes "You can make zeny by selling loot as well as through making smart business decisions.";
- next;
- mes "[Merchant Guildsman]";
- mes "You can get loot by killing monsters. After hunting monsters, you can sell those loot to make a profit!";
- mes "What a valuable job it is! Isn't it?";
- next;
- mes "[Merchant Guildsman]";
- mes "Why don't you try to be a Merchant? Making money is not easy but it will be a great experience!";
- close;
- }
- else if (.@quest == 2) {
+ } else if (.@quest == 2) {
mes "[Merchant Guildsman]";
mes "You have already completed the quest.";
mes "Once you enter the main world, you can get various exciting quests there!";
@@ -1537,10 +1840,11 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "[Merchant Guildsman]";
mes "I think you're strong enough now to change your job right? Hahahaha don't waste too much time here Novice.";
close;
+ } else {
+ mes "[Merchant Guildsman]";
+ mes "I'm sorry but I don't have any quests to give you right now.";
+ close;
}
- mes "[Merchant Guildsman]";
- mes "I'm sorry but I don't have any quests to give you right now.";
- close;
case 4:
mes "[Merchant Guildsman]";
mes "If you have any questions about Merchants, feel free to ask me.";
@@ -1548,197 +1852,266 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
close;
}
}
+new_1-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv1 4W_M_01
+new_2-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv2 4W_M_01
+new_3-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv3 4W_M_01
+new_4-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv4 4W_M_01
+new_5-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv5 4W_M_01
-new_1-3,109,41,4 duplicate(NvMer) Merchant Guide#nv1 97
-new_2-3,109,41,4 duplicate(NvMer) Merchant Guide#nv2 97
-new_3-3,109,41,4 duplicate(NvMer) Merchant Guide#nv3 97
-new_4-3,109,41,4 duplicate(NvMer) Merchant Guide#nv4 97
-new_5-3,109,41,4 duplicate(NvMer) Merchant Guide#nv5 97
-
-// ---------------------------- Archer Guide --------------------------------
-- script Archer Guide#nv::NvArc 727,{
- if(job_novice_q < 16) {
- mes "[Archer Guide]";
+- script Archer Guide#newbe10::NvArcher -1,{
+ if (job_novice_q < 15) {
+ mes "[Archer Guildsman]";
mes "You are still in the process of training with sir Brade.";
close;
}
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "What can I help you with?";
next;
switch(select("Tell me about Archers:I want to be an Archer:Cancel")) {
case 1:
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "Archers have specialized skills by using a Bow and have a variety of powerful skills.";
mes "Archers are good at staying back and picking off their targets.";
next;
- mes "[Archer Guide]";
- mes "Archers don't have great vitality so they have to keep their distance from enemies.";
+ mes "[Archer Guildsman]";
+ mes "Archers don't have great";
+ mes "vitality so they have to keep";
+ mes "their distance from enemies.";
next;
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "On the other hand, Archers are attentive and have incredibly accurate eyes.";
mes "So once they are ready to attack, they can kill enemies before they're even aware of their presence.";
next;
- mes "[Archer Guide]";
- mes "^8C2121Archers can transform to many second jobs like a Hunter.^000000";
- mes "^8C2121Besides Hunters, Archers can transform to a Bard, if they are male.^000000";
- mes "^8C2121They can transform to a Dancer, if they are female.^000000";
- if(countitem(2822) == 0 && (getequipid(EQI_ACC_L) != 2822 || getequipid(EQI_ACC_R) != 2822)) {
- next;
- mes "[Archer Guide]";
- mes "Do you want to register to test skill experience?";
- mes "Would you like to test Archer skills?";
- next;
- if(select("I want to test Archer skills.:I don't want to test it.") == 2) {
- mes "[Archer Guide]";
- mes "Hum. Do you think so.";
- mes "Ok, I agree with you. Choosing a job is very important in our life.";
- mes "Just talk to me whenever you want to experience Archer skills.";
- close;
- }
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
+ mes "^8E2323Archers can transform to many second jobs like a Hunter.";
+ mes "Besides Hunters, Archers can transform to a Bard, if they are male.";
+ mes "They can transform to a Dancer, if they are female^000000.";
+ next;
+ if (isequipped(2822) || countitem(2822)) {
+ mes "[Archer Guildsman]";
+ mes "I think you should test Archer skills before you decide what to do.";
+ mes "I can provide you our test skill manual.";
+ close;
+ }
+ mes "[Archer Guildsman]";
+ mes "Do you want to register to test skill experience?";
+ mes "Would like to test Archer skills?";
+ next;
+ switch(select("I want to test Archer skills.:I don't want to test it.")) {
+ case 1:
+ mes "[Archer Guildsman]";
mes "Here is the Archer manual.";
mes "I will take the other job manuals from you while you test the Archer manual out.";
next;
- mes "[Archer Guide]";
- mes "I will take the other job manuals from you while you test the Archer manual out.";
callfunc "F_NvErase";
- getitem 2822,1; // Archer_Manual
+ getitem 2822,1; //Archer_Manual
next;
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "Make sure to equip the Skill Manual by double-clicking it in the Inventory Window.";
- mes "Open your Skill Tree by pressing ^4A4AFFAlt + S^000000 and minimize the window by pressing the '-' button on the top right corner of the window to see the available skills.";
+ mes "Open your Skill Tree by pressing ^4d4dffAlt + S^000000 and minimize the window by pressing the ^4d4dff'-'^000000 button on the top right corner of the window to see the available skills.";
+ close;
+ case 2:
+ mes "[Archer Guildsman]";
+ mes "Hum. Do you think so.";
+ mes "Ok, I agree with you. Choosing a job is very important in our life.";
+ mes "Just talk to me whenever you want to experience Archer skills.";
+ close;
}
- close;
case 2:
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "You want to be an Archer?";
mes "Ok, then, I will send you to the Archer Guild right away.";
next;
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "Wait, have you checked your Job level?";
mes "Do you want to complete the Novice training arena and go to the Archer Guild right now?";
next;
- if(select("I will think about it again.:Yes, I want to go to the Archer Guild's union.") == 2) {
- mes "[Archer Guide]";
- mes "Welcome!!";
- mes "I will send you to the Archer Guild after you complete your Novice training.";
- close2;
+ switch(select("I will think about it again.:Yes, I want to go to the Archer Guilds union")) {
+ case 1:
+ mes "[Archer Guildsman]";
+ mes "Test out all the jobs if you have to but choose Archer because we're the best.";
+ mes "We are always welcome to have you!";
+ close;
+ case 2:
+ mes "[Archer Guildsman]";
+ mes "That's great.";
+ mes "Then I will completely end the Training Process and send you to the Archer Guild.";
callfunc "F_NvErase",1;
+ close2;
savepoint "payon",256,242;
warp "payon_in02",64,65;
end;
}
- mes "[Archer Guide]";
- mes "Test out all the jobs if you have to but choose Archer because we're the best.";
- mes "We are always welcome to have you!";
- close;
case 3:
- mes "[Archer Guide]";
+ mes "[Archer Guildsman]";
mes "If you have any questions about Archers, feel free to ask me.";
mes "I think you could be a strong Archer young Novice.";
close;
}
}
+new_1-3,113,41,3 duplicate(NvArcher) Archer Guide#nv1 4_F_JOB_HUNTER
+new_2-3,113,41,3 duplicate(NvArcher) Archer Guide#nv2 4_F_JOB_HUNTER
+new_3-3,113,41,3 duplicate(NvArcher) Archer Guide#nv3 4_F_JOB_HUNTER
+new_4-3,113,41,3 duplicate(NvArcher) Archer Guide#nv4 4_F_JOB_HUNTER
+new_5-3,113,41,3 duplicate(NvArcher) Archer Guide#nv5 4_F_JOB_HUNTER
-new_1-3,113,41,4 duplicate(NvArc) Archer Guide#nv1 727
-new_2-3,113,41,4 duplicate(NvArc) Archer Guide#nv2 727
-new_3-3,113,41,4 duplicate(NvArc) Archer Guide#nv3 727
-new_4-3,113,41,4 duplicate(NvArc) Archer Guide#nv4 727
-new_5-3,113,41,4 duplicate(NvArc) Archer Guide#nv5 727
-
-// ---------------------------- Acolyte Guide -------------------------------
-- script Acolyte Guide#nv::NvAco 95,{
- if(job_novice_q < 16) {
- mes "[Prontera Acolyte]";
- mes "You look like you are not done with Instructor Brade's lessons.";
+- script Mage Guide#newbe10::NvMage -1,{
+ if (job_novice_q < 15) {
+ mes "[Mage Guild Member]";
+ mes "You are still in the process of training with Instructor Brade.";
close;
}
- mes "[Prontera Acolyte]";
- mes "What can I do for you?";
+ mes "[Mage Guild Member]";
+ mes "What can I help you with?";
next;
- switch(select("What is an Acolyte?:Job change to Acolyte:Cancel")) {
+ switch(select("Tell me about Mages:I want to be a Mage:Give me a Quest:Cancel")) {
case 1:
- mes "[Prontera Acolyte]";
- mes "An Acolyte is someone who worships the goddess Freya sacrificing themselves to help others.";
+ mes "[Mage Guild Member]";
+ mes "Mages are those who can use magic when they need to protect their friends.";
+ mes "Mages can curse enemies using the elements of fire, water, earth and thunder magic.";
next;
- mes "[Prontera Acolyte]";
- mes "Acolytes use supportive skills to make combat easier.";
- mes "It is essential to have an Acolyte in any successful party.";
+ mes "[Mage Guild Member]";
+ mes "However they cannot equip other weapons but staffs and books.";
+ mes "Because they are too delicate";
+ mes "to carry heavy weapons.";
next;
- mes "[Prontera Acolyte]";
- mes "^8C2121As an Acolyte, you can upgrade your future job to Priest or Monk.^000000";
+ mes "[Mage Guild Member]";
+ mes "But they can cover this weakness";
+ mes "by their remarkable magic skills.";
+ mes "That is why many people want";
+ mes "to become a Mage!";
next;
- mes "[Prontera Acolyte]";
- if(countitem(2821) == 0 && (getequipid(EQI_ACC_L) != 2821 || getequipid(EQI_ACC_R) != 2821)) {
- next;
- mes "[Prontera Acolyte]";
- mes "If you want, I can give you a skill manual to experience what it is like to be an Acolyte.";
- mes "Would you like to experience the skills of an Acolyte?";
- next;
- if(select("Yes, please.:No I'm not interested.") == 2) {
- mes "[Prontera Acolyte]";
- mes "Hum. Do you think so.";
- mes "Ok, I agree with you. Choosing a job is very important in our life.";
- mes "Just talk to me whenever you want to know about Acolytes.";
- close;
- }
- mes "[Prontera Acolyte]";
- mes "Here you go, the instruction manual of an Acolyte.";
- mes "I will take away those other job's manuals while you study this one.";
+ mes "[Mage Guild Member]";
+ mes "Mages have to be in their guild for guild's power and honor.";
+ mes "This is one of reasons why Mages are popular in any parties and guilds.";
+ mes "Why don't you become a Mage?";
+ next;
+ mes "[Mage Guild Member]";
+ mes "^8E2323Mages can transform to Wizards";
+ mes "^8E2323or Sages as their second job^000000.";
+ next;
+ if (isequipped(2824) || countitem(2824)) {
+ mes "[Mage Guild Member]";
+ mes "I think you should test Mage skills before you decide what to do.";
+ mes "I can provide you with our test skill registration form.";
+ close;
+ }
+ mes "[Mage Guild Member]";
+ mes "Do you want to register to experience how it is to be a Mage?";
+ mes "Would you like to test Mage skills?";
+ next;
+ switch(select("I want to test Mage skills.:I don't want to test it.")) {
+ case 1:
+ mes "[Mage Guild Member]";
+ mes "Here is the Mage Manual.";
+ mes "I will take the other job registration forms and manuals from you.";
next;
- mes "[Prontera Acolyte]";
- mes "Here you go, the instruction manual of an Acolyte.";
- mes "I will take away those other job's manuals while you study this one.";
callfunc "F_NvErase";
- getitem 2821,1; // Acolyte_Manual
+ getitem 2824,1; //Mage_Manual
next;
- mes "[Prontera Acolyte]";
- mes "Make sure to equip the Skill Manual by double-clicking it in the Inventory Window.";
- mes "Open your Skill Tree by pressing ^4A4AFFAlt + S^000000 and minimizing the window by pressing the '-' button on the top right corner of the window to see the available skills.";
+ mes "[Mage Guild Member]";
+ mes "After equipping the Manual, open your Skill menu by pressing ALT+S.";
+ mes "Make sure to minimize your Skill tree by clicking the '-' button on the top right corner of the Skill Tree Window.";
+ close;
+ case 2:
+ mes "[Mage Guild Member]";
+ mes "Hum. Do you think so.";
+ mes "Ok, I agree with you. Choosing a job is very important in our life.";
+ mes "Just talk to me whenever you want to experience Mage skills.";
+ close;
}
- close;
case 2:
- mes "[Prontera Acolyte]";
- mes "Of course, I assume you have enough job levels to become an Acolyte right?";
- mes "Would you like to quit the Training Process and go to the Cathedral of Prontera?";
+ mes "[Mage Guild Member]";
+ mes "You want to be a Mage?";
+ mes "Ok, then, I will send you to the Mage Guild union in Geffen right away.";
next;
- if(select("Let me reconsider.:I will go to the Cathedral.") == 2) {
- mes "[Prontera Acolyte]";
+ mes "[Mage Guild Member]";
+ mes "Wait, have you checked your Job level?";
+ mes "Do you want to complete your Novice training and go straight to the Mage Guild's union?";
+ next;
+ switch(select("I will think about it again.:Yes, complete my training.")) {
+ case 1:
+ mes "[Mage Guild Member]";
+ mes "Please test what Mage skills are all about before you decide.";
+ mes "We are always welcome to have you!";
+ close;
+ case 2:
+ mes "[Mage Guild Member]";
mes "That's great.";
- mes "Then I will completely end the Training Process and send you to the Cathedral of Prontera.";
- close2;
+ mes "Then I will end the Training Process and send you to the Mage Guild union in Geffen right away.";
callfunc "F_NvErase",1;
- savepoint "prontera",117,72;
- warp "prt_church",172,19;
+ close2;
+ savepoint "geffen",119,37;
+ warp "geffen_in",163,98;
end;
}
- mes "[Prontera Acolyte]";
- mes "You should try out each job's manuals.";
- mes "Go through them throughly and decide carefully.";
- mes "Of course, I will welcome you anytime.";
- close;
case 3:
- mes "[Prontera Acolyte]";
- mes "If you have any questions about Acolytes, please ask me anytime.";
- mes "Our God, Odin awaits adventurers like you";
+ set .@quest, checkquest(7124);
+ if (.@quest == -1) {
+ mes "[Mage Guild Member]";
+ mes "Huh? Quest?";
+ mes "Hmm... What would be suited for you...?";
+ mes "Would you like to hunt Lunatics by using Bolt skills?";
+ next;
+ mes "^4d4dffYou have received a Hunting quest from the Mage Guide.";
+ mes "You can get more information about the quest from the quest window.^000000";
+ setquest 7124;
+ next;
+ mes "[Mage Guild Member]";
+ mes "You are able to use 'Fire Bolt' skill that is shown on the Mage manual.";
+ mes "I will wait for you here.";
+ mes "Good luck!";
+ close;
+ } else if (.@quest == 0 || .@quest == 1) {
+ if (checkquest(7124,HUNTING) == 2) {
+ mes "[Mage Guild Member]";
+ mes "You have done an excellent job.";
+ mes "So, did you find any interests about Mages?";
+ mes "Alright. I will give something...";
+ mes "Here are Novice Butterfly Wings, please take them.";
+ completequest 7124;
+ getitem 12324,30; //N_Butterfly_Wing
+ getexp 5000,100;
+ close;
+ } else {
+ mes "[Mage Guild Member]";
+ mes "The quest is that you have to";
+ mes "hunt Lunatics and bring 5 clovers.";
+ close;
+ }
+ } else if (.@quest == 2) {
+ mes "[Mage Guild Member]";
+ mes "You have already completed the quest.";
+ mes "Once you enter the main world, you can get various exciting quests there!";
+ next;
+ mes "[Mage Guild Member]";
+ mes "This should be enough for your training.";
+ close;
+ } else {
+ mes "[Mage Guild Member]";
+ mes "I'm sorry but I don't have any quests to give you right now.";
+ close;
+ }
+ case 4:
+ mes "[Mage Guild Member]";
+ mes "If you have any questions about Mages, feel free to ask me.";
+ mes "I think you could be a intelligent Mage...";
close;
}
}
+new_1-3,117,41,3 duplicate(NvMage) Mage Guide#nv1 2_F_MAGICMASTER
+new_2-3,117,41,3 duplicate(NvMage) Mage Guide#nv2 2_F_MAGICMASTER
+new_3-3,117,41,3 duplicate(NvMage) Mage Guide#nv3 2_F_MAGICMASTER
+new_4-3,117,41,3 duplicate(NvMage) Mage Guide#nv4 2_F_MAGICMASTER
+new_5-3,117,41,3 duplicate(NvMage) Mage Guide#nv5 2_F_MAGICMASTER
-new_1-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv1 95
-new_2-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv2 95
-new_3-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv3 95
-new_4-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv4 95
-new_5-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv5 95
-
-// ---------------------------- Bruce (Extended Jobs) -----------------------
-- script Bruce#nv::NvBruce 57,{
+- script Bruce#nv::NvBruce -1,{
mes "[Bruce]";
mes "Hello?";
mes "I'm here to guide you about extra jobs and special classes.";
next;
mes "[Bruce]";
- mes "For special classes, there are Taekwon, Ninja, Super Novice, and Gunslinger.";
+ mes "For special classes, there are Taekwon Boy, Taekwon Girl, Ninja, Supernovice, Gunslinger.";
mes "Which job description do you want to hear?";
next;
while(1) {
@@ -1783,24 +2156,23 @@ new_5-3,117,41,4 duplicate(NvAco) Acolyte Guide#nv5 95
break;
case 5:
mes "[Bruce]";
- mes "If you need more information, you can always go to";
- mes "'iro.ragnarokonline.com'";
+ mes "If you need more information,";
+ mes "you can always go to ^2F4F4F'www.ragnarok.co.kr'^000000";
close;
}
}
}
+new_1-3,121,41,3 duplicate(NvBruce) Bruce#nv1 1_M_LIBRARYMASTER
+new_2-3,121,41,3 duplicate(NvBruce) Bruce#nv2 1_M_LIBRARYMASTER
+new_3-3,121,41,3 duplicate(NvBruce) Bruce#nv3 1_M_LIBRARYMASTER
+new_4-3,121,41,3 duplicate(NvBruce) Bruce#nv4 1_M_LIBRARYMASTER
+new_5-3,121,41,3 duplicate(NvBruce) Bruce#nv5 1_M_LIBRARYMASTER
-new_1-3,121,41,4 duplicate(NvBruce) Bruce#nv1 57
-new_2-3,121,41,4 duplicate(NvBruce) Bruce#nv2 57
-new_3-3,121,41,4 duplicate(NvBruce) Bruce#nv3 57
-new_4-3,121,41,4 duplicate(NvBruce) Bruce#nv4 57
-new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
-
-//============================================================================
-// Eden Group Officer (Real Combat Training)
-//============================================================================
-- script Eden Group Officer#nv::NvEdn -1,{
- if(BaseLevel < 10) {
+// Eden Group Officer (iRO only)
+//============================================================
+/*
+- script Eden Group Officer::NvEden -1,{
+ if (BaseLevel < 10) {
mes "[Eden Group Officer]";
mes "Hello, I am a representative of the Eden Group.";
mes "We are here to assist adventurers in Rune Midgard.";
@@ -1815,79 +2187,78 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "Speak to me again once you have reached Base Level 10 and I will send you out of the training grounds.";
mes "Have you taken the quests from all of the Guides yet?";
close;
- }else{
+ }
+ mes "[Eden Group Officer]";
+ mes "Great! You are ready to take on the challenges of the world.";
+ mes "What would you like to do?";
+ next;
+ switch(select("I want to leave the training grounds:Tell me about the towns.:Cancel")) {
+ case 1:
+ mes "[Eden Group Officer]";
+ mes "Looks like you are ready.";
+ mes "I guess you have made up your mind, huh?";
+ next;
mes "[Eden Group Officer]";
- mes "Great! You are ready to take on the challenges of the world.";
- mes "What would you like to do?";
+ mes "If you know what job you want to change to, you should ask the ^4A4AFFJob Guides^000000 to send you out of the training grounds.";
+ mes "What town would you like to go to?";
next;
- switch(select("I want to leave the training grounds:Tell me about the towns.:Cancel")) {
+ switch(select("Prontera:Morocc:Payon:Alberta:Geffen:Cancel")) {
case 1:
mes "[Eden Group Officer]";
- mes "Looks like you are ready.";
- mes "I guess you have made up your mind, huh?";
- next;
- mes "[Eden Group Officer]";
- mes "If you know what job you want to change to, you should ask the ^4A4AFFJob Guides^000000 to send you out of the training grounds.";
- mes "What town would you like to go to?";
- next;
- switch(select("Prontera:Morocc:Payon:Alberta:Geffen:Cancel")) {
- case 1:
- mes "[Eden Group Officer]";
- mes "Prontera, the Capital city of the Rune-Midgarts Kingdom.";
- mes "Take care and may Freya bless you on your journey.";
- callsub S_Warp,"prontera",121,77,121,76;
- case 2:
- mes "[Eden Group Officer]";
- mes "The desert city of Morocc was recently destroyed.";
- mes "I will send you to the camp where the survivors are.";
- callsub S_Warp,"moc_ruins",71,157,70,158;
- case 3:
- mes "[Eden Group Officer]";
- mes "Just north of Payon you'll find the Archer Village.";
- mes "Good luck on your journeys.";
- callsub S_Warp,"payon",167,68,172,111;
- case 4:
- mes "[Eden Group Officer]";
- mes "Alberta, the Port City.";
- mes "It's the main hub of all trades.";
- mes "If you want to travel to other civilizations, Alberta is the only outlet.";
- callsub S_Warp,"alberta",115,57,116,58;
- case 5:
- mes "[Eden Group Officer]";
- mes "Geffen, is known as the Magical City of Rune Midgard.";
- mes "I will send you near the Fountains.";
- mes "Goddess Freya bless you.";
- callsub S_Warp,"geffen",118,36,128,66;
- case 6:
- mes "[Eden Group Officer]";
- mes "If you're still not sure what job you want, talk to the Job Guides for more help.";
- close;
- }
+ mes "Prontera, the Capital city of the Rune-Midgarts Kingdom.";
+ mes "Take care and may Freya bless you on your journey.";
+ callsub S_Warp,"prontera",121,77,121,76;
case 2:
mes "[Eden Group Officer]";
- mes "Prontera is the main capital of the Rune-Midgard Kingdom. Here you will find Merchants selling their items and is a favorite gathering point of adventurers.";
- next;
- mes "[Eden Group Officer]";
- mes "The Acolyte Guild is here at the Prontera Church located to the northwest. The Swordman Guild can be found at Izlude, a town just southeast of Prontera.";
- next;
- mes "[Eden Group Officer]";
- mes "Morocc is a city located in the desert that was recently destroyed due to an evil monster named Satan Morroc. The Thief Guild has been working to restore it to it's former glory.";
- next;
+ mes "The desert city of Morocc was recently destroyed.";
+ mes "I will send you to the camp where the survivors are.";
+ callsub S_Warp,"moc_ruins",71,157,70,158;
+ case 3:
mes "[Eden Group Officer]";
- mes "Payon is where the Archer Guild has made it's home. You can also find the Kafra Shop Employees selling their Item Mall items near the center of this city.";
- next;
+ mes "Just north of Payon you'll find the Archer Village.";
+ mes "Good luck on your journeys.";
+ callsub S_Warp,"payon",167,68,172,111;
+ case 4:
mes "[Eden Group Officer]";
- mes "Alberta is the trading hub of Rune Midgard. The Merchant Guild is located here and the docks have ships that will take you to different island cities.";
- next;
+ mes "Alberta, the Port City.";
+ mes "It's the main hub of all trades.";
+ mes "If you want to travel to other civilizations, Alberta is the only outlet.";
+ callsub S_Warp,"alberta",115,57,116,58;
+ case 5:
mes "[Eden Group Officer]";
- mes "Geffen is known as the magical city of Rune Midgard. The Mage Guild is located here and research for new magic is always being conducted at their headquarters.";
- next;
+ mes "Geffen, is known as the Magical City of Rune Midgard.";
+ mes "I will send you near the Fountains.";
+ mes "Goddess Freya bless you.";
+ callsub S_Warp,"geffen",118,36,128,66;
+ case 6:
mes "[Eden Group Officer]";
- mes "If you wish to be sent directly to the Job Guilds, then speak to the Job Guides and tell them that you want to change your job.";
- close;
- case 3:
+ mes "If you're still not sure what job you want, talk to the Job Guides for more help.";
close;
}
+ case 2:
+ mes "[Eden Group Officer]";
+ mes "Prontera is the main capital of the Rune-Midgard Kingdom. Here you will find Merchants selling their items and is a favorite gathering point of adventurers.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "The Acolyte Guild is here at the Prontera Church located to the northwest. The Swordman Guild can be found at Izlude, a town just southeast of Prontera.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "Morocc is a city located in the desert that was recently destroyed due to an evil monster named Satan Morroc. The Thief Guild has been working to restore it to it's former glory.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "Payon is where the Archer Guild has made it's home. You can also find the Kafra Shop Employees selling their Item Mall items near the center of this city.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "Alberta is the trading hub of Rune Midgard. The Merchant Guild is located here and the docks have ships that will take you to different island cities.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "Geffen is known as the magical city of Rune Midgard. The Mage Guild is located here and research for new magic is always being conducted at their headquarters.";
+ next;
+ mes "[Eden Group Officer]";
+ mes "If you wish to be sent directly to the Job Guilds, then speak to the Job Guides and tell them that you want to change your job.";
+ close;
+ case 3:
+ close;
}
S_Warp:
@@ -1901,26 +2272,16 @@ OnTouch:
emotion e_gasp;
end;
}
+new_1-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv1 4_F_NOVICE,5,5
+new_2-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv2 4_F_NOVICE,5,5
+new_3-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv3 4_F_NOVICE,5,5
+new_4-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv4 4_F_NOVICE,5,5
+new_5-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv5 4_F_NOVICE,5,5
+*/
-new_1-3,97,50,4 duplicate(NvEdn) Eden Group Officer#nv1 729,5,5
-new_2-3,97,50,4 duplicate(NvEdn) Eden Group Officer#nv2 729,5,5
-new_3-3,97,50,4 duplicate(NvEdn) Eden Group Officer#nv3 729,5,5
-new_4-3,97,50,4 duplicate(NvEdn) Eden Group Officer#nv4 729,5,5
-new_5-3,97,50,4 duplicate(NvEdn) Eden Group Officer#nv5 729,5,5
-
-// Merchant (Real Combat Training)
-//============================================================
-- shop Merchant#nv::NvPotato 93,516:15
-
-new_1-3,100,50,4 duplicate(NvPotato) Merchant#nv1 93
-new_2-3,100,50,4 duplicate(NvPotato) Merchant#nv2 93
-new_3-3,100,50,4 duplicate(NvPotato) Merchant#nv3 93
-new_4-3,100,50,4 duplicate(NvPotato) Merchant#nv4 93
-new_5-3,100,50,4 duplicate(NvPotato) Merchant#nv5 93
-
-// Trainer (Real Combat Training)
+// Trainer
//============================================================
-- script Level 1 Trainer#nv::NvBrutus 84,{
+- script ::NvBrutus -1,{
mes "[Trainer Brutus]";
mes "These monsters are all weak and easy to kill. But be careful, a lot of them are aggressive and out for blood!";
next;
@@ -1941,7 +2302,8 @@ new_5-3,100,50,4 duplicate(NvPotato) Merchant#nv5 93
set .@menu$, .@menu$+":";
}
set .@i, select(.@menu$+"Cancel");
- if (.@i < 7) warp "new_"+.@i+"-3",96,21;
+ if (.@i < 7)
+ warp "new_"+.@i+"-3",96,21;
close;
case 2:
mes "[Trainer Brutus]";
@@ -1950,23 +2312,23 @@ new_5-3,100,50,4 duplicate(NvPotato) Merchant#nv5 93
next;
mes "[Trainer Brutus]";
mes "Level 1 has the weakest monsters.";
- mes "There you'll find Poring, Drops, Lunatics, Fabres, and Chonchons.";
+ mes "There you'll find Porings, Drops, and Lunatics.";
next;
mes "[Trainer Brutus]";
mes "Level 2 is more challenging.";
- mes "There you'll find Condors, Pickys, Willows, Fabres, and Roda Frogs.";
+ mes "There you'll find Porings, Lunatics, Willows, and Chonchons.";
next;
mes "[Trainer Brutus]";
- mes "Level 3 is pretty much the same as Level 2.";
- mes "There you'll find Condors, Pickys, Willows, Fabres, and Roda Frogs.";
+ mes "Level 3 is the same as Level 2.";
+ mes "There you'll find Porings, Lunatics, Willows, and Chonchons.";
next;
mes "[Trainer Brutus]";
mes "Level 4 has stronger monsters.";
- mes "There you'll find Rockers, Spores, and Fabres.";
+ mes "There you'll find Willows, Hornets, Pickys, and Fabres.";
next;
mes "[Trainer Brutus]";
mes "Level 5 is the same as Level 4.";
- mes "There you'll find Rockers, Spores, and Fabres.";
+ mes "There you'll find Willows, Hornets, Pickys, and Fabres.";
close;
case 3:
mes "[Trainer Brutus]";
@@ -1975,46 +2337,92 @@ new_5-3,100,50,4 duplicate(NvPotato) Merchant#nv5 93
close;
}
}
+new_1-3,103,50,4 duplicate(NvBrutus) Level 1 Trainer#nv1 4_M_02
+new_2-3,103,50,4 duplicate(NvBrutus) Level 2 Trainer#nv2 4_M_02
+new_3-3,103,50,4 duplicate(NvBrutus) Level 3 Trainer#nv3 4_M_02
+new_4-3,103,50,4 duplicate(NvBrutus) Level 4 Trainer#nv4 4_M_02
+new_5-3,103,50,4 duplicate(NvBrutus) Level 5 Trainer#nv5 4_M_02
-new_1-3,103,50,4 duplicate(NvBrutus) Level 1 Trainer#nv1 84
-new_2-3,103,50,4 duplicate(NvBrutus) Level 2 Trainer#nv2 84
-new_3-3,103,50,4 duplicate(NvBrutus) Level 3 Trainer#nv3 84
-new_4-3,103,50,4 duplicate(NvBrutus) Level 4 Trainer#nv4 84
-new_5-3,103,50,4 duplicate(NvBrutus) Level 5 Trainer#nv5 84
+// Monster Spawns
+//============================================================
+new_1-3,0,0,0,0 monster Poring 1002,20,0,0,0
+new_1-3,0,0,0,0 monster Drops 1113,10,0,0,0
+new_1-3,0,0,0,0 monster Lunatic 1063,20,0,0,0
+
+new_2-3,0,0,0,0 monster Chonchon 1011,10,0,0,0
+new_2-3,0,0,0,0 monster Lunatic 1063,15,0,0,0
+new_2-3,0,0,0,0 monster Willow 1010,10,0,0,0
+new_2-3,0,0,0,0 monster Poring 1002,15,0,0,0
+
+new_3-3,0,0,0,0 monster Chonchon 1011,10,0,0,0
+new_3-3,0,0,0,0 monster Lunatic 1063,15,0,0,0
+new_3-3,0,0,0,0 monster Willow 1010,10,0,0,0
+new_3-3,0,0,0,0 monster Poring 1002,5,0,0,0
+
+new_4-3,0,0,0,0 monster Hornet 1004,5,0,0,0
+new_4-3,0,0,0,0 monster Willow 1010,15,0,0,0
+new_4-3,0,0,0,0 monster Fabre 1184,5,0,0,0
+new_4-3,0,0,0,0 monster Picky 1049,15,0,0,0
+
+new_5-3,0,0,0,0 monster Hornet 1004,5,0,0,0
+new_5-3,0,0,0,0 monster Willow 1010,15,0,0,0
+new_5-3,0,0,0,0 monster Fabre 1184,5,0,0,0
+new_5-3,0,0,0,0 monster Picky 1049,15,0,0,0
-// Random Stuff (Guards & Bulletin Board)
+// Potato Merchant
//============================================================
-new_1-1,66,114,4 script Bulletin Board#nv 111,{
- mes "^FF0000=================================^000000";
- mes "^FF0000 ^000000 ^E40CAA[Welcome]^CC0000 to ^FF9000Novice^7FFF00 Training ^00FF00Grounds ^E40CAA[Welcome]^FF0000^000000";
+- shop Potato Merchant#newbe09::NvPotato 4_F_04,516:-1
+
+new_1-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv1 4_F_04
+new_2-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv2 4_F_04
+new_3-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv3 4_F_04
+new_4-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv4 4_F_04
+new_5-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv5 4_F_04
+
+// Random Stuff
+//============================================================
+- script Bulletin Board::NvBulletin -1,{
+ mes "^FF0000=================================";
+ mes " ^E40CAA[Welcome] ^CC0000to^FF9000Novice^7FFF00 Training^00FF00 Grounds^E40CAA [Welcome] ";
mes "^FF0000=================================^000000";
close;
}
+new_1-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv1 HIDDEN_NPC
+new_2-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv2 HIDDEN_NPC
+new_3-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv3 HIDDEN_NPC
+new_4-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv4 HIDDEN_NPC
+new_5-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv5 HIDDEN_NPC
-new_1-1,144,116,2 script Guard#nv1 105,{
+- script Guard::NvGuardA -1,{
mes "[Training Grounds Guard]";
mes "Welcome to the Training Grounds.";
mes "You are now in the outer court yard. Please go inside the castle to begin your training.";
close;
}
+new_1-1,144,116,2 duplicate(NvGuardA) Guard#nv1a 8W_SOLDIER
+new_2-1,144,116,2 duplicate(NvGuardA) Guard#nv2a 8W_SOLDIER
+new_3-1,144,116,2 duplicate(NvGuardA) Guard#nv3a 8W_SOLDIER
+new_4-1,144,116,2 duplicate(NvGuardA) Guard#nv4a 8W_SOLDIER
+new_5-1,144,116,2 duplicate(NvGuardA) Guard#nv5a 8W_SOLDIER
-new_1-1,144,107,2 script Guard#nv2 105,{
+- script Guard::NvGuardB -1,{
mes "[Training Grounds Guard]";
- if(rand(2)) {
- mes "Come in!";
- mes "I would like to welcome you to the Training Grounds!";
- next;
- mes "[Training Grounds Guard]";
+ if (rand(2)) {
+ mes "Come in! I would like to welcome you to the Training Grounds!";
mes "In here, you can prepare yourself for your future adventures throughout the Ragnarok world!";
- }
- else {
+ } else {
mes "Go, Novice, go!";
mes "Fight, and grow stronger! Look towards a brighter tomorrow!";
}
close;
}
+new_1-1,144,107,2 duplicate(NvGuardB) Guard#nv1b 8W_SOLDIER
+new_2-1,144,107,2 duplicate(NvGuardB) Guard#nv2b 8W_SOLDIER
+new_3-1,144,107,2 duplicate(NvGuardB) Guard#nv3b 8W_SOLDIER
+new_4-1,144,107,2 duplicate(NvGuardB) Guard#nv4b 8W_SOLDIER
+new_5-1,144,107,2 duplicate(NvGuardB) Guard#nv5b 8W_SOLDIER
-new_1-2,161,182,5 script Instructor#nv 92,{
+- script Instructor#Edwin::NvEdwin -1,{
mes "[Edwin]";
mes "Eh? Why are you still here?";
mes "There are no more courses that you need to take.";
@@ -2023,34 +2431,984 @@ new_1-2,161,182,5 script Instructor#nv 92,{
mes "Well, I will let you out of here.";
mes "Go find the instructor, Brade.";
close2;
- warp "new_1-2",100,100;
+ savepoint strnpcinfo(4),100,100;
+ warp strnpcinfo(4),100,100;
end;
}
+new_1-2,161,182,5 duplicate(NvEdwin) Instructor#nv1 4_F_03
+new_2-2,161,182,5 duplicate(NvEdwin) Instructor#nv2 4_F_03
+new_3-2,161,182,5 duplicate(NvEdwin) Instructor#nv3 4_F_03
+new_4-2,161,182,5 duplicate(NvEdwin) Instructor#nv4 4_F_03
+new_5-2,161,182,5 duplicate(NvEdwin) Instructor#nv5 4_F_03
+
+function script F_NvErase {
+ if (getarg(0,0)) {
+ if (checkquest(7123) > -1) erasequest 7123;
+ if (checkquest(7124) > -1) erasequest 7124;
+ if (checkquest(7126) > -1) erasequest 7126;
+ if (checkquest(7127) > -1) erasequest 7127;
+ }
+ nude;
+ setarray .@manuals[0],countitem(2819),countitem(2820),countitem(2821),countitem(2822),countitem(2823),countitem(2824);
+ if (.@manuals[0]) delitem 2819,.@manuals[0]; //Swordman_Manual
+ if (.@manuals[1]) delitem 2820,.@manuals[1]; //Thief_Manual
+ if (.@manuals[2]) delitem 2821,.@manuals[2]; //Acolyte_Manual
+ if (.@manuals[3]) delitem 2822,.@manuals[3]; //Archer_Manual
+ if (.@manuals[4]) delitem 2823,.@manuals[4]; //Merchant_Manual
+ if (.@manuals[5]) delitem 2824,.@manuals[5]; //Mage_Manual
+ return;
+}
-// Real Combat Training Mobs
+// Pre-Renewal Backwards Compatibility
//============================================================
-new_1-3,0,0,0,0 monster ChonChon 1011,10,0,0,0
-new_1-3,0,0,0,0 monster Drops 1113,10,0,0,0
-new_1-3,0,0,0,0 monster Fabre 1184,5,0,0,0
-new_1-3,0,0,0,0 monster Lunatic 1063,10,0,0,0
-new_1-3,0,0,0,0 monster Poring 1002,10,0,0,0
-new_2-3,0,0,0,0 monster Condor 1009,10,0,0,0
-new_2-3,0,0,0,0 monster Fabre 1184,5,0,0,0
-new_2-3,0,0,0,0 monster Picky 1050,10,0,0,0
-new_2-3,0,0,0,0 monster Roda Frog 1012,10,0,0,0
-new_2-3,0,0,0,0 monster Willow 1010,10,0,0,0
-new_3-3,0,0,0,0 monster Condor 1009,10,0,0,0
-new_3-3,0,0,0,0 monster Fabre 1184,5,0,0,0
-new_3-3,0,0,0,0 monster Picky 1050,10,0,0,0
-new_3-3,0,0,0,0 monster Roda Frog 1012,10,0,0,0
-new_3-3,0,0,0,0 monster Willow 1010,10,0,0,0
-new_4-3,0,0,0,0 monster Fabre 1184,5,0,0,0
-new_4-3,0,0,0,0 monster Rocker 1052,10,0,0,0
-new_4-3,0,0,0,0 monster Spore 1014,10,0,0,0
-new_4-3,0,0,0,0 monster Thief Bug 1051,10,0,0,0
-new_4-3,0,0,0,0 monster Thief Bug 1053,10,0,0,0
-new_5-3,0,0,0,0 monster Fabre 1184,5,0,0,0
-new_5-3,0,0,0,0 monster Rocker 1052,10,0,0,0
-new_5-3,0,0,0,0 monster Spore 1014,1,0,0,0
-new_5-3,0,0,0,0 monster Thief Bug 1051,1,0,0,0
-new_5-3,0,0,0,0 monster Thief Bug 1053,1,0,0,0
+- script Final Tester::NvHanson -1,{
+ if (nov_3_swordman < 40) {
+ mes "[Hanson]";
+ mes "Eh? Weird?";
+ next;
+ mes "[Hanson]";
+ mes "The Training Grounds have come under new management...";
+ mes "You seem to have come from the previous management.";
+ next;
+ mes "[Hanson]";
+ mes "You may continue, you should have enough experience if you made it here.";
+ next;
+ mes "[Hanson]";
+ mes "I will send you to any town that you'd like to go to.";
+ mes "Or do you have a favourite profession?";
+ next;
+ switch(select("Choose Profession.:Go to Towns.")) {
+ case 1:
+ mes "[Hanson]";
+ mes "What profession would you like to perform?";
+ next;
+ switch(select("Swordman:Acolyte:Thief:Merchant:Archer:Mage")) {
+ case 1:
+ mes "[Hanson]";
+ mes "That's a great choice!";
+ mes "After you receive all the supplies, I will teleport you to the Swordman Association.";
+ next;
+ mes "[Hanson]";
+ mes "The town you will be sent to is called Izlude which is a satellite of Prontera. The Swordman Association is located in the West of town. Please remember this.";
+ next;
+ callsub L_Supplies;
+ savepoint "izlude",128,98; // Old coordinates: (95,104)
+ warp "izlude_in",74,167;
+ end;
+ case 2:
+ mes "[Hanson]";
+ mes "You have chosen";
+ mes "to become an Acolyte.";
+ mes "You will be sent to";
+ mes "the town of Prontera.";
+ next;
+ mes "[Hanson]";
+ mes "The Prontera Sanctuary is located to the North-East in Prontera. Please remember this.";
+ next;
+ callsub L_Supplies;
+ savepoint "prontera",117,72;
+ warp "prt_church",172,19;
+ end;
+ case 3:
+ mes "[Hanson]";
+ mes "You have chosen";
+ mes "to become a Thief.";
+ mes "You will be sent to";
+ mes "the town of Morroc.";
+ next;
+ mes "[Hanson]";
+ mes "The Thief guild is in the underground 1st floor of a pyramid which is North-West of town. Please remember this.";
+ next;
+ callsub L_Supplies;
+ savepoint "morocc",150,99;
+ warp "moc_ruins",155,44;
+ end;
+ case 4:
+ mes "[Hanson]";
+ mes "You have chosen";
+ mes "to become a Merchant.";
+ mes "You will be sent to";
+ mes "the town of Alberta.";
+ next;
+ callsub L_Supplies;
+ savepoint "alberta",30,232;
+ warp "alberta_in",62,44;
+ end;
+ case 5:
+ mes "[Hanson]";
+ mes "You have chosen";
+ mes "to become an Archer.";
+ mes "You will be sent to";
+ mes "the town of Payon.";
+ next;
+ mes "[Hanson]";
+ mes "The Archer Guild is located to the North-West in Payon. Please remember this.";
+ next;
+ callsub L_Supplies;
+ savepoint "payon",256,242;
+ warp "payon_in02",64,65;
+ end;
+ case 6:
+ mes "[Hanson]";
+ mes "You have chosen";
+ mes "to become a Mage.";
+ mes "You will be sent to";
+ mes "the town of Geffen.";
+ next;
+ mes "[Hanson]";
+ mes "The Mage Academy is located in the North-West in town. Please remember this.";
+ next;
+ callsub L_Supplies;
+ savepoint "geffen",119,37;
+ warp "geffen_in",163,98;
+ end;
+ }
+ case 2:
+ mes "[Hanson]";
+ mes "To what town do you want to go?";
+ next;
+ callsub L_Warp, select("Prontera:Geffen:Morroc:Payon:Alberta:Never mind");
+ end;
+ }
+ } else {
+ mes "[Hanson]";
+ mes "You have received all the supplies.";
+ mes "To what town do you want to go?";
+ next;
+ callsub L_Warp, select("Prontera:Geffen:Morroc:Payon:Alberta");
+ end;
+ }
+ end;
+
+L_Supplies:
+ mes "[Hanson]";
+ mes "Let me give you";
+ mes "some supplies. Then";
+ mes "you will transported";
+ mes "to the chosen town.";
+ next;
+ mes "^660000List of Supplies^000000";
+ mes "^00003320 Free Tickets for Kafra Storage^000000";
+ mes "^00003330 Free Tickets for Kafra Transportation^000000";
+ mes "^0000331 Novice Cutter^000000";
+ mes "^0000331 Novice Adventurer's Suit^000000";
+ next;
+ mes "[Hanson]";
+ mes "Please check your inventory";
+ mes "to see if you have received all the supplies listed. Let me briefly inform you about the items you've received.";
+ next;
+ mes "[Hanson]";
+ mes "Free tickets for Kafra storage and transportation can be used for Kafra storage and teleport services.";
+ set nov_3_swordman,40;
+ getitem 7059,20; //Cargo_Free_Ticket
+ getitem 7060,30; //Warp_Free_Ticket
+ getitem 2393,1; //N_Adventurer's_Suit
+ getitem 13040,1; //N_Cutter
+ next;
+ mes "[Hanson]";
+ mes "You will now";
+ mes "be teleported.";
+ mes "Good luck,";
+ mes "^A62A2A"+strcharinfo(0)+"^000000";
+ mes "and farewell.";
+ close2;
+ return;
+
+L_Warp:
+ mes "[Hanson]";
+ switch(getarg(0)) {
+ case 1:
+ mes "I will send you to Prontera, the Capital City.";
+ close2;
+ savepoint "prontera",117,72;
+ warp "prontera",150,50;
+ end;
+ case 2:
+ mes "I will send you to Geffen, the City of Magic.";
+ close2;
+ savepoint "geffen",119,37;
+ warp "geffen",122,65;
+ end;
+ case 3:
+ mes "I will send you to Morroc, the Desert Town.";
+ close2;
+ savepoint "morocc",150,99;
+ warp "morocc",155,110;
+ end;
+ case 4:
+ mes "I will send you to Payon, the Mountain Village.";
+ close2;
+ savepoint "payon",70,100;
+ warp "payon",166,67;
+ end;
+ case 5:
+ mes "I will send you to Alberta, the Port City.";
+ close2;
+ savepoint "alberta",30,232;
+ warp "alberta",114,58;
+ end;
+ case 6:
+ mes "[Hanson]";
+ mes "Come back when you've made up your mind.";
+ close;
+ }
+}
+new_1-4,100,29,1 duplicate(NvHanson) Final Tester#nv1 1_ETC_01
+new_2-4,100,29,1 duplicate(NvHanson) Final Tester#nv2 1_ETC_01
+new_3-4,100,29,1 duplicate(NvHanson) Final Tester#nv3 1_ETC_01
+new_4-4,100,29,1 duplicate(NvHanson) Final Tester#nv4 1_ETC_01
+new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
+
+// Job Test
+//============================================================
+- script Job Guide Lark::NvLark -1,{
+ mes "[Lark]";
+ mes "Have you decided what job you're going to choose?";
+ next;
+ mes "[Lark]";
+ mes "I've prepared a test to see what's the best job for you, according to your answers.";
+ next;
+ mes "[Lark]";
+ mes "How about it?";
+ mes "Would you like to take the test?";
+ next;
+ set .@loop,1;
+ while(.@loop) {
+ switch(select("Take the test.:What's the test for?:No, thank you.")) {
+ case 1:
+ mes "[Lark]";
+ mes "Great!";
+ mes "Let's start the test~";
+ next;
+ set .@loop,0;
+ break;
+ case 2:
+ mes "[Lark]";
+ mes "I will ask you a few simple questions.";
+ mes "Through this test, we will check "+strcharinfo(0)+"'s personality and propensity so that we can find the most appropriate job for you.";
+ next;
+ mes "[Lark]";
+ mes "There are 3 different types of tests and a total of 30 questions.";
+ next;
+ mes "[Lark]";
+ mes "What do you think? Will you take the test?";
+ next;
+ break;
+ case 3:
+ mes "[Lark]";
+ mes "If you haven't decided what job you want yet,";
+ mes "I suggest that you take the test.";
+ close;
+ }
+ }
+ mes "[Lark]";
+ mes "Let's start the first test.";
+ mes "Choose the answer that you like the most.";
+ mes "^FF0000There are 5 questions.^000000";
+ next;
+ mes "[Lark]";
+ mes "In the middle of the dark, you're walking on the streets of Prontera when you suddenly hear someone scream.";
+ next;
+ mes "'Aaaahh!! Don't hurt me ~'";
+ next;
+ mes "You run to the place and see someone surrounded by punks. Because of your sudden appearance, the punks are surprised.";
+ mes "What would be your reaction in this situation?";
+ next;
+ switch(select("Fight against the punks:Cast Magic.:Call for Guards.:Throw rocks at them.")) {
+ case 1:
+ set .@question_01$, "You subdue them easily.";
+ set .@swordman_p, .@swordman_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 2:
+ set .@question_01$, "You cast a spell on them.";
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 3:
+ set .@question_01$, "You call for help and Guards come to your aid.";
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ case 4:
+ set .@question_01$, "You skillfully throw rocks at the punks.";
+ set .@archer_p, .@archer_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes .@question_01$+" You have destroyed the street punks.";
+ mes "After clearing up the mess, you approach the person who was being attacked.";
+ mes "Do you think the person who was surrounded by punks is a man or a woman?";
+ next;
+ switch(select("Man:Woman")) {
+ case 1:
+ set .@question_02_01$, "he";
+ set .@question_02_02$, "son";
+ break;
+ case 2:
+ set .@question_02_01$, "she";
+ set .@question_02_02$, "daughter";
+ break;
+ }
+ mes "[Lark]";
+ mes "You find out that "+.@question_02_01$+" is the "+.@question_02_02$+" of a very rich family in Alberta and Punks attacked while "+.@question_02_01$+" was on an errand for the family.";
+ mes "What kind of errand was "+.@question_02_01$+" doing?";
+ next;
+ switch(select("Delivering an important object:Delivering a small souvenir:Delivering a message")) {
+ case 1:
+ set .@swordman_p, .@swordman_p+1;
+ set .@archer_p, .@archer_p+1;
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 2:
+ set .@thief_p, .@thief_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ case 3:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Thanks to your bravery, "+.@question_02_01$+" becomes your friend and decides to go on a trip.";
+ mes "Where are you going?";
+ next;
+ switch(select("Capital city, Prontera:Mountain city, Payon:Port city, Alberta:Magic city, Geffen:Satelite city, Izlude:Desert city, Morocc:Industrial city, Einbroch:World of natural life, Amatsu:Garden city, Hugel")) {
+ case 1:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ case 2:
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ case 3:
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 4:
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 5:
+ set .@swordman_p, .@swordman_p+1;
+ break;
+ case 6:
+ set .@thief_p, .@thief_p+1;
+ break;
+ case 7:
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ case 8:
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 9:
+ set .@archer_p, .@archer_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "You're having a great time. Do you feel like something will be happening or not?";
+ next;
+ switch(select("Happening:Not happening.")) {
+ case 1:
+ set .@thief_p, .@thief_p+1;
+ set .@swordman_p, .@swordman_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ set .@magician_p, .@magician_p+1;
+ set .@thief_p, .@thief_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Let's go now for the second test. Choose the best answer in your own opinion.";
+ mes "^FF0000There are 5 questions.^000000";
+ next;
+ switch(select("Study:Exercise:Service:Violence")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 2:
+ set .@thief_p, .@thief_p+1;
+ set .@swordman_p, .@swordman_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ case 3:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ case 4:
+ set .@thief_p, .@thief_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ }
+ switch(select("Change:Preservation")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ }
+ switch(select("Consumer:Seller:Producer")) {
+ case 1:
+ set .@swordman_p, .@swordman_p+1;
+ set .@thief_p, .@thief_p+1;
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@archer_p, .@archer_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ case 2:
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 3:
+ set .@magician_p, .@magician_p+1;
+ break;
+ }
+ switch(select("Speed:Caution")) {
+ case 1:
+ set .@thief_p, .@thief_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 2:
+ set .@archer_p, .@archer_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ switch(select("Theory:Experience")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 2:
+ set .@swordman_p, .@swordman_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Let's go now for the third test. Please answer (Yes) or (No) to each question.";
+ mes "^FF0000There are 20 questions.^000000";
+ next;
+ mes "[Lark]";
+ mes "Do you always pick up the money that you find on the ground?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@merchant_p, .@merchant_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "If you had the same name as someone of the opposite sex, would that make you less attracted to them?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@ninja_p, .@ninja_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you like being able to carry a lot of items at once?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@swordman_p, .@swordman_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 2:
+ set .@magician_p, .@magician_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you like reading books?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@taekwon_p, .@taekwon_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ case 2:
+ set .@ninja_p, .@ninja_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you read everything in a magazine?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 2:
+ set .@archer_p, .@archer_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you take the time to worry about what you are wearing?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@merchant_p, .@merchant_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 2:
+ set .@swordman_p, .@swordman_p+1;
+ set .@thief_p, .@thief_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you tell others what kind of fancy foods you've eaten recently?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@thief_p, .@thief_p+1;
+ set .@swordman_p, .@swordman_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you write things down in a notebook often?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 2:
+ set .@thief_p, .@thief_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you consider yourself attractive?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@ninja_p, .@ninja_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@swordman_p, .@swordman_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you like being in areas where a lot of people gather?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@swordman_p, .@swordman_p+1;
+ break;
+ case 2:
+ set .@archer_p, .@archer_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you like the idea of living a single life?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@thief_p, .@thief_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you like keeping your distance from others?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@gunslinger_p, .@gunslinger_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ case 2:
+ set .@taekwon_p, .@taekwon_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you think that having a good hiding space is important in battle?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ case 2:
+ set .@taekwon_p, .@taekwon_p+1;
+ set .@magician_p, .@magician_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Would you defend your friends even if you knew they were wrong?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@swordman_p, .@swordman_p+1;
+ break;
+ case 2:
+ set .@thief_p, .@thief_p+1;
+ set .@ninja_p, .@ninja_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Would you try to convince an enemy not to fight you with logic?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@archer_p, .@archer_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Can you sit still in the same place for a long time?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@taekwon_p, .@taekwon_p+1;
+ set .@thief_p, .@thief_p+1;
+ break;
+ case 2:
+ set .@archer_p, .@archer_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you think that you can take a punch straight to the gut from an Orc?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@swordman_p, .@swordman_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ case 2:
+ set .@magician_p, .@magician_p+1;
+ set .@thief_p, .@thief_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you make up nicknames for your friends?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@gunslinger_p, .@gunslinger_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ case 2:
+ set .@acolyte_p, .@acolyte_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "Do you always have a plan B for various situations?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@thief_p, .@thief_p+1;
+ set .@gunslinger_p, .@gunslinger_p+1;
+ break;
+ case 2:
+ set .@gunslinger_p, .@gunslinger_p+1;
+ set .@merchant_p, .@merchant_p+1;
+ break;
+ }
+ mes "[Lark]";
+ mes "When talking with other people, do you take time so that the others have time to think?";
+ next;
+ switch(select("Yes:No")) {
+ case 1:
+ set .@magician_p, .@magician_p+1;
+ break;
+ case 2:
+ set .@ninja_p, .@ninja_p+1;
+ set .@archer_p, .@archer_p+1;
+ break;
+ }
+
+ // Calculate player's job.
+ // In the official script, higher .@who_job value always wins in a tie.
+ setarray .@points[0],
+ .@swordman_p, .@magician_p, .@archer_p, .@merchant_p, .@thief_p, .@acolyte_p, .@taekwon_p, .@gunslinger_p, .@ninja_p;
+ set .@max, .@points[0];
+ for(set .@i,1; .@i<9; set .@i,.@i+1) {
+ if (.@points[.@i] >= .@max) {
+ set .@max, .@points[.@i];
+ set .@ele, .@i;
+ }
+ }
+ set .@who_job, .@ele+1; // To match the official script's numbering.
+
+ mes "[Lark]";
+ mes "Thank you, have a long life.";
+ mes "The vocational aptitude assessment is finished.";
+ next;
+ mes "[Lark]";
+ mes "... ... the result is an aggregate. ... ...";
+ next;
+ mes "[Lark]";
+ mes "Tabulation is complete.";
+ mes "'^0000FFSo^000000', if you press this button";
+ mes "you can see the results.";
+ next;
+ switch(.@who_job) {
+ case 1:
+ set .@job$, "Swordman";
+ mes "[Lark]";
+ mes "...simple and straightforward...";
+ mes "...strong beliefs can affect the world...";
+ mes "...stands for hope that the people...";
+ mes "...to protect loyalty.";
+ mes "...thrusting you ...";
+ next;
+ break;
+ case 2:
+ set .@job$, "Wizard";
+ mes "[Lark]";
+ mes "...to understand all these things alone deulmyeo...";
+ mes "...hard work and independent thinking...";
+ mes "...type. Excellent judgement, naehyangjeok...";
+ mes "...and analytical, with insight...";
+ mes "...type : he observes everything...";
+ next;
+ break;
+ case 3:
+ set .@job$, "Archer";
+ mes "[Lark]";
+ mes "...immeasurable, have many emotions...";
+ mes "...to people who are trying to understand...";
+ mes "...trying to understand the type to receive. Also,...";
+ mes "...rejects mediocrity, and his true...";
+ mes "...type of life to live. Impressionable...";
+ mes "...rich and romantic ...";
+ next;
+ break;
+ case 4:
+ set .@job$, "Merchant";
+ mes "[Lark]";
+ mes "...to identify people's sense of hearing...";
+ mes "...outstanding determination and goals...";
+ mes "...oriented and a strong type of responsibility...";
+ mes "...seongchwiyok strong...";
+ next;
+ break;
+ case 5:
+ set .@job$, "Thief";
+ mes "[Lark]";
+ mes "...always makes life fun and who wants...";
+ mes "...always trying to find a new job...";
+ mes "...contribution to the world,...";
+ mes "...that type. Adventurer,...";
+ mes "...optimistic.";
+ next;
+ break;
+ case 6:
+ set .@job$, "Acolyte";
+ mes "[Lark]";
+ mes "...mentality makes him warm and considerate for others...";
+ mes "I know I have loved anyone,...";
+ mes "...be of help to others and for others...";
+ mes "...type of well-caring.";
+ mes "...always wants to help others.";
+ next;
+ break;
+ case 7:
+ set .@job$, "Taekwon Boy/Girl";
+ mes "[Lark]";
+ mes "...to believe with a stubborn conviction...";
+ mes "...heart and spirit of the grassland is consistent: it...";
+ mes "...make steps to move forward.";
+ mes "...type of comments or want to understand the beliefs...";
+ mes "...that type of effort to correct through training,...";
+ mes "...to have a sound mind...";
+ next;
+ break;
+ case 8:
+ set .@job$, "Gunslinger";
+ mes "[Lark]";
+ mes "People often praised Justice.";
+ mes "Sometimes fear and confusion may exist...";
+ mes "...that time, the definition of confusion...";
+ mes "...to maintain the balance, you're carrying the burden...";
+ mes "...for you ...";
+ next;
+ break;
+ case 9:
+ set .@job$, "Ninja";
+ mes "[Lark]";
+ mes "...to avoid the type of self-aspiring...";
+ mes "...married to a prominent goal and quietly avoiding...";
+ mes "...step and their goals...";
+ mes "...type of reaching your goal until they're complete...";
+ mes "...I do not regret it as ...";
+ next;
+ break;
+ default:
+ mes "[Lark]";
+ mes "An error has occurred.";
+ close;
+ }
+ mes "[Lark]";
+ mes "^8014EB"+.@job$+" is the job that suits you.^000000";
+ next;
+ mes "[Lark]";
+ mes "Well, "+.@job$+", you can choose among various career pathways.";
+ mes "Do you want to determine the job that suits you?";
+ mes "Do you want to select a job?";
+ next;
+ switch(select(.@job$+".:Any other profession.")) {
+ case 1:
+ mes "[Lark]";
+ mes "The Novice Training Center course is now shut down, "+.@job$+". Would you like to make this occupation your profession?";
+ next;
+ if(select("I will think about it again.:I'll choose the former.") == 1) {
+ mes "[Lark]";
+ mes "You will receive a book corresponding to each job type.";
+ mes "Please have enough experience to determine carefully the job that suits you.";
+ close;
+ }
+ break;
+ case 2:
+ mes "[Lark]";
+ mes "Quit now the Training Center Course. Would you like to make an occupation your career choice?";
+ next;
+ if(select("I will think about it again.:I still want to change my job.") == 1) {
+ mes "[Lark]";
+ mes "Primer of each class would have received.";
+ mes "Have enough experience to determine looked carefully, please.";
+ close;
+ }
+ mes "[Lark]";
+ mes "Yes, sir. Please select your desired job.";
+ next;
+ set .@who_job, select("Swordman:Wizard:Archer:Merchant:Thief:Acolyte:Taekwon Boy/Girl:Gunslinger:Ninja:I'll think again.");
+ if (.@who_job == 10) {
+ mes "[Lark]";
+ mes "The Novice Training Center has a lot of sea experience, please pay attention along the way.";
+ close;
+ }
+ break;
+ }
+ callfunc "F_NvErase",1;
+ set .@str$, "^A62A2A'"+strcharinfo(0)+"^000000'! Take care and may Freya bless you on your journey.";
+ switch(.@who_job) {
+ case 1:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the swordman guild in Izlude, the Satelite city.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "izlude",128,98; // Old coordinates: (95,104)
+ warp "izlude_in",74,167;
+ end;
+ case 2:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the magician guild in Geffen, the Magical City.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "geffen",119,37;
+ warp "geffen_in",163,98;
+ end;
+ case 3:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the Archer Guild in Payon, the city of mountains.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "payon",256,242;
+ warp "payon_in02",64,65;
+ end;
+ case 4:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the merchant guild in Alberta, the Port City.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "alberta",30,232;
+ warp "alberta_in",62,44;
+ end;
+ case 5:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the thief guild in Morocc, the desert city.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "morocc",150,99;
+ warp "moc_prydb1",99,185;
+ end;
+ case 6:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the Prontera, the capital city of the Rune-Midgarts Kingdom.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "prontera",117,72;
+ warp "prt_church",172,19;
+ end;
+ case 7:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the Phoenix in Payon, the city of mountains.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "payon",164,58;
+ warp "payon",163,141;
+ end;
+ case 8:
+ mes "[Lark]";
+ mes "You will be sent to the flyship";
+ mes "in Izlude, the Satelite city.";
+ mes "You can get on the flyship to go to Einbroch, the city of industries.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "izlude",128,98; // Old coordinates: (95,104)
+ warp "izlude",128,67;
+ end;
+ case 9:
+ mes "[Lark]";
+ mes "We will send you";
+ mes "to the captain of the smuggling ship.";
+ mes "You can move to Amatsu";
+ mes "with the captain's help.";
+ mes .@str$;
+ mes "Good bye.";
+ close2;
+ savepoint "alberta",117,56;
+ warp "alberta",171,132;
+ end;
+ default:
+ mes "[Lark]";
+ mes "An error has occurred. If you keep having the same problem, please contact the local GM team.";
+ close;
+ }
+}
+new_1-3,106,50,4 duplicate(NvLark) Job Guide Lark#01 4_M_KID1
+new_2-3,106,50,4 duplicate(NvLark) Job Guide Lark#02 4_M_KID1
+new_3-3,106,50,4 duplicate(NvLark) Job Guide Lark#03 4_M_KID1
+new_4-3,106,50,4 duplicate(NvLark) Job Guide Lark#04 4_M_KID1
+new_5-3,106,50,4 duplicate(NvLark) Job Guide Lark#05 4_M_KID1
diff --git a/npc/re/jobs/novice/supernovice_ex.txt b/npc/re/jobs/novice/supernovice_ex.txt
index 4a8436dfe..3a8dad744 100644
--- a/npc/re/jobs/novice/supernovice_ex.txt
+++ b/npc/re/jobs/novice/supernovice_ex.txt
@@ -1,19 +1,17 @@
//===== Hercules Script ======================================
//= Expanded Super Novice Job Quest
-//===== By: ==================================================
+//===== By: ==================================================
//= Euphy
-//===== Current Version: =====================================
+//===== Current Version: =====================================
//= 1.1a
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
+//===== Description: =========================================
//= Job Change quest for Expanded Super Novice class.
-//===== Additional Comments: =================================
+//===== Additional Comments: =================================
//= 1.0 All dialogue is custom, contains some incorrect behaviors.
//= 1.1 Switched to a translated copy of the official script
//= by Gennosuke Kouga, but vastly edited its content. [Euphy]
//= 1.1a Replaced effect numerics with constants. [Euphy]
-//============================================================
+//============================================================
function script Esseray_Ex {
if (BaseLevel > 98 && JobLevel > 98) {
@@ -59,7 +57,7 @@ function script Esseray_Ex {
else return;
}
-beach_dun2,119,92,4 script Fishing Novice#sp2 567,{
+beach_dun2,119,92,4 script Fishing Novice#sp2 4_M_SIT_NOVICE,{
if (checkquest(5092) >= 0) {
mes "[Fishing Novice]";
mes "Sh --------- !!";
@@ -589,7 +587,7 @@ beach_dun2,119,92,4 script Fishing Novice#sp2 567,{
close;
}
-airplane,33,47,5 script Nudor#sp2 729,{
+airplane,33,47,5 script Nudor#sp2 4_F_NOVICE,{
if (checkquest(5099) >= 0) {
mes "[Nudor]";
mes "Ahhh~ I have no money to buy any food.";
diff --git a/npc/re/jobs/repair.txt b/npc/re/jobs/repair.txt
new file mode 100644
index 000000000..f1587f55a
--- /dev/null
+++ b/npc/re/jobs/repair.txt
@@ -0,0 +1,313 @@
+//===== Hercules Script ======================================
+//= Job Repairs
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.1
+//===== Description: =========================================
+//= [Official Conversion]
+//= Removes potentially conflicting job data.
+//===== Additional Comments: =================================
+//= 1.0 First version.
+//= 1.1 Added GM management function. [Euphy]
+//============================================================
+
+/*
+rAthena -> official job variable conversion
+-------------------------------------------
+
+Knight: KNIGHT_Q -> job_knight_q
+Priest: PRIEST_Q -> job_priest_q
+Wizard: WIZ_Q -> job_wizard_q
+Blacksmith: BSMITH_Q -> job_black
+Assassin: ASSIN_Q -> job_assasin
+Hunter: HNTR_Q -> job_hunter
+Crusader: CRUS_Q -> job_crusader_q
+Monk: MONK_Q -> job_monk
+Sage: SAGE_Q -> job_sage_q
+Alchemist: ALCH_Q -> job_alchemist_q
+Rogue: ROGUE_Q -> job_rogue
+Bard: BARD_Q -> job_bard_q
+Dancer: DANC_Q -> job_dancer
+
+Rebirth: ADVJOB -> job_karma
+
+Rune Knight: job_rune_edq
+Arch Bishop: job_arch
+Warlock: job_wl
+Mechanic: job__mechanic -> job_mechanic
+Guillotine Cross: job_3rd_gc
+Ranger: job_ranger01
+Royal Guard: job_royal -> job_roy
+Sura: job_shu
+Sorcerer: job_soc
+Geneticist: job_gen
+Shadow Chaser: job_sha -> job_3rd_sc
+Minstrel: job_min
+Wanderer: job_wan
+
+Gunslinger: GUNS_Q -> hg_gun
+Ninja: NINJ_Q -> hg_nin
+Taekwon: TK_Q -> job_taekwon
+Star Gladiator: STGL_Q -> job_star
+Soul Linker: SOUL_Q -> job_linker
+Super Novice: SUPNOV_Q -> job_super
+Expanded Super Novice: EXSUPNOV_Q -> job_super2
+*/
+
+prt_in,38,104,4 script Valerie 4_F_VALKYRIE,{
+ if (checkweight(1201,1) == 0) {
+ mes "I think you have too many items. Let's try it again after you take some out.";
+ close;
+ }
+ if (MaxWeight - Weight < 1000) {
+ mes "You're overweight with items so I don't think we can proceed any further. Challenge me after you've taken some items off.";
+ close;
+ }
+ mes "[Valerie]";
+ mes "I am Valerie; I help those with abnormalities. I am friends with Valkyrie.";
+ next;
+ mes "[Valerie]";
+ mes "If both abnormalities disappear then we must start the test over from scratch. What would you like to do?";
+ next;
+ switch(select("I don't have any abnormalities:I think my body has some abnormalities")) {
+ case 1:
+ mes "[Valerie]";
+ mes "That's a relief. Then please take care.";
+ close;
+ case 2:
+ mes "[Valerie]";
+ mes "Are you sure you want to intialize it and start over?";
+ next;
+ if(select("Nope:Yes, I want to start completely over") == 1) {
+ mes "[Valerie]";
+ mes "I understand. I'll see you next time";
+ close;
+ }
+ mes "[Valerie]";
+ mes "All items related to the existing conditions will disappear. Are you okay with this?";
+ next;
+ if(select("Nope:Yes, I want to start completely over.") == 1) {
+ mes "[Valerie]";
+ mes "I understand. I'll see you next time.";
+ close;
+ }
+ mes "[Valerie]";
+ mes "It seems that there are a sea of people who seemed to be cursed of not being able to get a significant other after going through with this. Are you still okay with this? ";
+ next;
+ if(select("Nope:I still want to intialize.") == 1) {
+ mes "[Valerie]";
+ mes "I understand. I will see you next time.";
+ close;
+ }
+ mes "[Valerie]";
+ mes "In extreme cases, some become crippled and can get ulcers. Do you still want to intilize former processes?";
+ next;
+ if(select("Nope:Please intilize the former processes") == 1) {
+ mes "[Valerie]";
+ mes "I understand. I will see you next time";
+ close;
+ }
+ specialeffect2 EF_INVENOM;
+ progressbar "0xffff00",3;
+
+ // Warlock - quest items
+ if (isequipped(2796) || isequipped(2797)) {
+ mes "[Valerie]";
+ mes "Please unequip the Magical Stone or Magical Stone Ring and try again.";
+ close;
+ }
+ if (countitem(2796) || countitem(2797)) {
+ if (isequipped(2796) || isequipped(2797)) {
+ mes "[Valerie]";
+ mes "Please talk to me after your replace all Magical Stones.";
+ close;
+ }
+ setarray .@items[0], 2796, 2797, 6152, 6151; //Magical_Stone,Magical_Stone_,Glittering_Crystal,Peice_Of_Great_Bradium
+ for(set .@i,0; .@i<4; set .@i,.@i+1) {
+ if (countitem(.@items[.@i]))
+ delitem .@items[.@i], countitem(.@items[.@i]);
+ }
+ mes "[Valerie]";
+ mes "You're carrying something that is unnecessary. I will sort it out for you.";
+ close;
+ }
+
+ // Baby and third job characters meet no further conditions.
+ if (eaclass()&(EAJL_BABY|EAJL_THIRD)) {
+ mes "[Valerie]";
+ mes "I don't think you should have any further business with me.";
+ close;
+ }
+
+ // Rebirth - variable
+ if ((Class >= Job_Swordman && Class <= Job_Crusader2) && ADVJOB != 0) {
+ set ADVJOB,0;
+ mes "[Valerie]";
+ mes "You're carrying big karma- You should erase it.";
+ next;
+ mes "[Valerie]";
+ mes "Please talk to me again as there could be additional problems.";
+ close;
+ }
+
+ // Second job - variable and quests
+ // callsub L_Second, "<variable>", <quest>;
+ if (Class == Job_Swordman) {
+ callsub L_Second, "KNIGHT_Q", 9012;
+ callsub L_Second, "CRUS_Q", 3015;
+ } else if (Class == Job_Archer) {
+ callsub L_Second, "HNTR_Q", 4013;
+ callsub L_Second, "BARD_Q", 3004;
+ callsub L_Second, "DANC_Q", 7006;
+ } else if (Class == Job_Mage) {
+ callsub L_Second, "WIZ_Q", 9018;
+ callsub L_Second, "SAGE_Q", 2052;
+ } else if (Class == Job_Merchant) {
+ callsub L_Second, "BSMITH_Q", 2016;
+ callsub L_Second, "ALCH_Q", 2040;
+ } else if (Class == Job_Thief) {
+ callsub L_Second, "ASSIN_Q", 8008;
+ callsub L_Second, "ROGUE_Q", 2027;
+ } else if (Class == Job_Acolyte) {
+ callsub L_Second, "PRIEST_Q", 8016;
+ callsub L_Second, "MONK_Q", 3032;
+ }
+
+ // Third job - variable and quests
+ // callsub L_Third, "<variable>", <main quest>, <first quest>, <last quest>{, <additional quest>};
+ if (BaseJob == Job_Assassin)
+ callsub L_Third, "job_3rd_gc", 7100, 7091, 7116;
+ else if (BaseJob == Job_Blacksmith)
+ callsub L_Third, "job__mechanic", 10101, 10090, 10101;
+ else if (BaseJob == Job_Hunter)
+ callsub L_Third, "job_ranger01", 8262, 8254, 8262;
+ else if (BaseJob == Job_Knight)
+ callsub L_Third, "job_rune_edq", 3219, 3200, 3220;
+ else if (BaseJob == Job_Priest)
+ callsub L_Third, "job_arch", 2191, 2187, 2191;
+ else if (BaseJob == Job_Wizard)
+ callsub L_Third, "job_wl", 11112, 11106, 11112;
+ else if (BaseJob == Job_Alchemist)
+ callsub L_Third, "job_gen", 2223, 2209, 2217, 2223;
+ else if (BaseJob == Job_Bard)
+ callsub L_Third, "job_min", 11154, 11135, 11154;
+ else if (BaseJob == Job_Crusader)
+ callsub L_Third, "job_royal", 0, 12090, 12094;
+ else if (BaseJob == Job_Dancer)
+ callsub L_Third, "job_wan", 2222, 2218, 2222;
+ else if (BaseJob == Job_Monk)
+ callsub L_Third, "job_shu", 11158, 11155, 11158;
+ else if (BaseJob == Job_Rogue)
+ callsub L_Third, "job_sha", 7180, 7160, 7180;
+ else if (BaseJob == Job_Sage)
+ callsub L_Third, "job_soc", 12098, 12096, 12098;
+
+ mes "[Valerie]";
+ mes "I don't think you should have any further business with me.";
+ close;
+ }
+
+L_Second:
+ if (getd(getarg(0)) != 0) {
+ setd getarg(0),0;
+ if (checkquest(getarg(1)) == 2)
+ erasequest getarg(1);
+ mes "[Valerie]";
+ mes "I will help clear your problems for you that came from your former attempts.";
+ next;
+ mes "[Valerie]";
+ mes "Please talk to me again as there could be additional problems.";
+ close;
+ } else
+ return;
+
+L_Third:
+ if (getd(getarg(0)) != 0) {
+ setd getarg(0),0;
+ if (getarg(1)) {
+ if (checkquest(getarg(1)) == 2)
+ erasequest getarg(1);
+ }
+ for(set .@i,getarg(2); .@i<=getarg(3); set .@i,.@i+1) {
+ if (checkquest(.@i) > -1)
+ erasequest .@i;
+ }
+ if (getarg(4,0)) {
+ if (checkquest(getarg(4)) > -1)
+ erasequest getarg(4);
+ }
+ mes "[Valerie]";
+ mes "I will help clear your problems for you that came from your former attempts.";
+ next;
+ mes "[Valerie]";
+ mes "Please talk to me again as there could be additional problems.";
+ close;
+ } else
+ return;
+}
+
+- script Valerie#sign -1,{
+ mes "^ff00ffI couldn't pay the office rent so I am temporarily relocating to the building across from the Prontera Refinery.^000000";
+ mes " ";
+ mes "^ff00ffValerie^000000";
+ close;
+}
+in_moc_16,17,33,4 duplicate(Valerie#sign) Valerie#asn 2_BULLETIN_BOARD
+ein_in01,13,28,4 duplicate(Valerie#sign) Valerie#bls 2_BULLETIN_BOARD
+hu_in01,386,377,4 duplicate(Valerie#sign) Valerie#hnt 2_BULLETIN_BOARD
+prt_in,88,108,4 duplicate(Valerie#sign) Valerie#knt 2_BULLETIN_BOARD
+prt_church,19,36,4 duplicate(Valerie#sign) Valerie#prst 2_BULLETIN_BOARD
+gef_tower,110,30,4 duplicate(Valerie#sign) Valerie#wiz 2_BULLETIN_BOARD
+comodo,215,155,4 duplicate(Valerie#sign) Valerie#danc 2_BULLETIN_BOARD
+prt_castle,45,167,4 duplicate(Valerie#sign) Valerie#cru 2_BULLETIN_BOARD
+prt_monk,59,253,4 duplicate(Valerie#sign) Valerie#mnk 2_BULLETIN_BOARD
+moc_ruins,90,104,4 duplicate(Valerie#sign) Valerie#rg 2_BULLETIN_BOARD
+yuno_in02,43,62,4 duplicate(Valerie#sign) Valerie#sag 2_BULLETIN_BOARD
+prt_church,103,86,4 duplicate(Valerie#sign) Valerie#arch 2_BULLETIN_BOARD
+que_job01,75,92,4 duplicate(Valerie#sign) Valerie#gc 2_BULLETIN_BOARD
+yuno,129,150,4 duplicate(Valerie#sign) Valerie#mech 2_BULLETIN_BOARD
+tur_dun01,159,40,4 duplicate(Valerie#sign) Valerie#ran 2_BULLETIN_BOARD
+prt_in,167,24,4 duplicate(Valerie#sign) Valerie#rk 2_BULLETIN_BOARD
+spl_in02,81,102,4 duplicate(Valerie#sign) Valerie#wl 2_BULLETIN_BOARD
+alde_alche,38,181,4 duplicate(Valerie#sign) Valerie#alche 2_BULLETIN_BOARD
+alberta,198,129,4 duplicate(Valerie#sign) Valerie#min 2_BULLETIN_BOARD
+in_rogue,376,104,4 duplicate(Valerie#sign) Valerie#sc 2_BULLETIN_BOARD
+ve_in,244,122,4 duplicate(Valerie#sign) Valerie#shu 2_BULLETIN_BOARD
+xmas,166,209,4 duplicate(Valerie#sign) Valerie#wan 2_BULLETIN_BOARD
+
+sec_in02,12,40,5 script Job Repair 1_M_LIBRARYMASTER,1,1,{
+ callfunc "F_GM_NPC";
+ mes "Please input your password.";
+ next;
+ if (callfunc("F_GM_NPC","1854",1) == 1) {
+ set job_arch,100;
+ set job_3rd_gc,100;
+ set job__mechanic,100;
+ set job_ranger01,100;
+ set job_rune_edq,100;
+ set job_wl,100;
+ set job_gen,100;
+ set job_min,100;
+ set job_royal,100;
+ set job_sha,100;
+ set job_soc,100;
+ set job_shu,100;
+ set job_wan,100;
+ set KNIGHT_Q,100;
+ set PRIEST_Q,100;
+ set WIZ_Q,100;
+ set BSMITH_Q,100;
+ set ASSIN_Q,100;
+ set HNTR_Q,100;
+ set CRUS_Q,100;
+ set MONK_Q,100;
+ set SAGE_Q,100;
+ set ALCH_Q,100;
+ set ROGUE_Q,100;
+ set BARD_Q,100;
+ set DANC_Q,100;
+ set ADVJOB,15;
+ }
+ close;
+}