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.txt10
-rw-r--r--npc/re/jobs/1-1/archer.txt10
-rw-r--r--npc/re/jobs/1-1/mage.txt12
-rw-r--r--npc/re/jobs/1-1/merchant.txt12
-rw-r--r--npc/re/jobs/1-1/swordman.txt12
-rw-r--r--npc/re/jobs/1-1/thief.txt12
-rw-r--r--npc/re/jobs/3-1/archbishop.txt387
-rw-r--r--npc/re/jobs/3-1/guillotine_cross.txt58
-rw-r--r--npc/re/jobs/3-1/mechanic.txt14
-rw-r--r--npc/re/jobs/3-1/ranger.txt16
-rw-r--r--npc/re/jobs/3-1/rune_knight.txt17
-rw-r--r--npc/re/jobs/3-1/warlock.txt27
-rw-r--r--npc/re/jobs/3-2/genetic.txt4
-rw-r--r--npc/re/jobs/3-2/minstrel.txt12
-rw-r--r--npc/re/jobs/3-2/royal_guard.txt16
-rw-r--r--npc/re/jobs/3-2/shadow_chaser.txt12
-rw-r--r--npc/re/jobs/3-2/sorcerer.txt12
-rw-r--r--npc/re/jobs/3-2/sura.txt16
-rw-r--r--npc/re/jobs/3-2/wanderer.txt14
-rw-r--r--npc/re/jobs/novice/novice.txt3806
-rw-r--r--npc/re/jobs/novice/supernovice_ex.txt12
-rw-r--r--npc/re/jobs/repair.txt313
22 files changed, 3240 insertions, 1564 deletions
diff --git a/npc/re/jobs/1-1/acolyte.txt b/npc/re/jobs/1-1/acolyte.txt
index 4ab8837d3..ca80fda9c 100644
--- a/npc/re/jobs/1-1/acolyte.txt
+++ b/npc/re/jobs/1-1/acolyte.txt
@@ -1,17 +1,17 @@
//===== 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,{
if (Upper == 1) {
if (ADVJOB == Job_High_Priest || ADVJOB == Job_Champion) {
diff --git a/npc/re/jobs/1-1/archer.txt b/npc/re/jobs/1-1/archer.txt
index 8e8bedc5f..d22e85f04 100644
--- a/npc/re/jobs/1-1/archer.txt
+++ b/npc/re/jobs/1-1/archer.txt
@@ -1,16 +1,16 @@
//===== 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,{
if (Upper == 1) {
if (Class == Job_Novice_High && (ADVJOB == Job_Sniper || ADVJOB == Job_Clown || ADVJOB == Job_Gypsy)) {
diff --git a/npc/re/jobs/1-1/mage.txt b/npc/re/jobs/1-1/mage.txt
index 1fce4269e..ef60603f0 100644
--- a/npc/re/jobs/1-1/mage.txt
+++ b/npc/re/jobs/1-1/mage.txt
@@ -1,18 +1,16 @@
//===== 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,{
if (Upper == 1) {
if (ADVJOB == Job_High_Wizard || ADVJOB == Job_Professor) {
diff --git a/npc/re/jobs/1-1/merchant.txt b/npc/re/jobs/1-1/merchant.txt
index 58c13ae17..05b82ec66 100644
--- a/npc/re/jobs/1-1/merchant.txt
+++ b/npc/re/jobs/1-1/merchant.txt
@@ -1,18 +1,16 @@
//===== 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,{
if (Upper == 1) {
if (Class == Job_Novice_High && (ADVJOB == Job_Whitesmith || ADVJOB == Job_Creator)) {
diff --git a/npc/re/jobs/1-1/swordman.txt b/npc/re/jobs/1-1/swordman.txt
index 0d47f0b3a..fffebe722 100644
--- a/npc/re/jobs/1-1/swordman.txt
+++ b/npc/re/jobs/1-1/swordman.txt
@@ -1,18 +1,16 @@
//===== 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,{
if (Upper == 1) {
if (Class == Job_Novice_High && (ADVJOB == Job_Lord_Knight || ADVJOB == Job_Paladin)) {
diff --git a/npc/re/jobs/1-1/thief.txt b/npc/re/jobs/1-1/thief.txt
index 23b23bd96..c99368b8c 100644
--- a/npc/re/jobs/1-1/thief.txt
+++ b/npc/re/jobs/1-1/thief.txt
@@ -1,18 +1,16 @@
//===== 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,{
if (Upper == 1) {
if (ADVJOB == Job_Assassin_Cross || ADVJOB == Job_Stalker) {
diff --git a/npc/re/jobs/3-1/archbishop.txt b/npc/re/jobs/3-1/archbishop.txt
index 9a13aa359..ccc03b7f2 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,6 +20,8 @@
//= 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,{
@@ -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]";
@@ -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.";
@@ -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,7 +975,7 @@ 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;
}
@@ -979,8 +984,8 @@ job3_arch02,119,49,0 script #arch_1_start 139,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,18 +993,18 @@ 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;
}
@@ -1020,17 +1025,14 @@ job3_arch02,203,286,0 script #arch_1_boss 139,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;
}
@@ -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:
@@ -1087,9 +1089,9 @@ OnEnable:
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;
@@ -1298,7 +1300,7 @@ OnTouch:
jobchange roclass(eaclass()|EAJL_THIRD);
close;
OnInit:
- hideonnpc "#arch_end";
+ disablenpc "#arch_end";
end;
}
@@ -1332,7 +1334,7 @@ job3_arch02,132,323,0 script #arch_2_01 139,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,21 +1342,18 @@ 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;
}
@@ -1369,93 +1368,102 @@ 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
+/*
+// Not in official script.
job3_arch02,252,267,0 script #arch_2_12 139,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,{
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,{
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,{
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,{
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,{
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,{
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";
@@ -1465,18 +1473,20 @@ OnKill:
job3_arch02,389,389,1 script mob#arch_2 844,{
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";
@@ -1486,43 +1496,43 @@ OnKill:
job3_arch02,389,388,1 script start#arch 844,{
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,10 +1571,10 @@ 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;
@@ -1574,32 +1584,32 @@ OnTimer605000:
job3_arch02,390,388,1 script #arch_2_start 844,{
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;
@@ -1608,11 +1618,11 @@ OnEnable:
job3_arch02,390,386,1 script #arch_3_start 844,{
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;
}
@@ -1622,30 +1632,26 @@ OnTouch:
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 139,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,{
+ 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 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,{
+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..904c04148 100644
--- a/npc/re/jobs/3-1/guillotine_cross.txt
+++ b/npc/re/jobs/3-1/guillotine_cross.txt
@@ -1,21 +1,21 @@
//===== 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,{
@@ -3057,6 +3057,8 @@ 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
@@ -3086,6 +3088,8 @@ 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
@@ -3115,6 +3119,8 @@ 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
@@ -3139,6 +3145,8 @@ 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,{
@@ -3160,6 +3168,8 @@ 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,{
@@ -3181,6 +3191,8 @@ 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,{
@@ -3202,6 +3214,8 @@ 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,{
@@ -3223,6 +3237,8 @@ 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,{
@@ -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,6 +3306,8 @@ 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,{
@@ -3321,6 +3343,8 @@ OnEnable:
OnReset:
killmonster "job3_guil03","#3rdgc_sunchal_nomal::OnMyMobDead";
end;
+OnMyMobDead:
+ end;
}
job3_guil03,2,2,0 script #3rdgc_sunchal_kill01 844,{
@@ -3808,12 +3832,11 @@ OnTouch:
end;
}
-/*
job3_guil02,1,3,0 script #GMhelper01_gc 844,{
+ 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,{
+ 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..2133a227a 100644
--- a/npc/re/jobs/3-1/mechanic.txt
+++ b/npc/re/jobs/3-1/mechanic.txt
@@ -1,19 +1,17 @@
//===== 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,{
mes "[Chainheart]";
@@ -730,4 +728,4 @@ OnTouch:
}
jupe_core2,150,33,0 duplicate(#Acquiring Knowledge) #Acquiring Knowledge2 139,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..b35c8ebfc 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,6 +18,7 @@
//= 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,{
@@ -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,{
+ 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..f9264574a 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,6 +13,8 @@
//= 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,{
@@ -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,{
+ 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")) {
@@ -2161,4 +2155,3 @@ 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
-*/
diff --git a/npc/re/jobs/3-1/warlock.txt b/npc/re/jobs/3-1/warlock.txt
index d08d7395d..263ccd9b0 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,12 +66,10 @@ OnTouch:
}
end;
}
-morocc,103,144,0 duplicate(#distorted_space_) #distorted_space_1 139,1,1
+//morocc,103,144,0 duplicate(#distorted_space_) #distorted_space_1 139,1,1
+morocc,95,132,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
-
function script F_Warlock {
mes "[Assistant]";
mes "Huh!!! Human!?!";
@@ -1056,8 +1054,8 @@ OnTimer6000:
end;
}
-/*
-job3_war01,1,2,0 script Button Girl 66,{
+job3_war01,1,2,0 script Button Girl#wl 66,{
+ 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..44124a1d8 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.
@@ -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..5ddb5bf5d 100644
--- a/npc/re/jobs/3-2/minstrel.txt
+++ b/npc/re/jobs/3-2/minstrel.txt
@@ -1,15 +1,13 @@
//===== 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]
@@ -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..f98861461 100644
--- a/npc/re/jobs/3-2/royal_guard.txt
+++ b/npc/re/jobs/3-2/royal_guard.txt
@@ -1,17 +1,16 @@
//===== 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,{
@@ -497,8 +496,8 @@ OnTouch:
end;
}
-/*
sec_in02,12,43,3 script sorcereryal 57,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..30d10abdb 100644
--- a/npc/re/jobs/3-2/shadow_chaser.txt
+++ b/npc/re/jobs/3-2/shadow_chaser.txt
@@ -1,15 +1,13 @@
//===== 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]
@@ -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..de934d394 100644
--- a/npc/re/jobs/3-2/sorcerer.txt
+++ b/npc/re/jobs/3-2/sorcerer.txt
@@ -1,15 +1,13 @@
//===== 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]
@@ -417,4 +415,4 @@ gef_tower,113,161,5 script Karacas 754,{
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
+gon_dun02,195,190,0 duplicate(Spirit Detecting Staff#0) Spirit Detecting Staff#4 836 \ 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..240b453e2 100644
--- a/npc/re/jobs/3-2/sura.txt
+++ b/npc/re/jobs/3-2/sura.txt
@@ -1,18 +1,17 @@
//===== 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,{
@@ -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,{
+ 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..3c6e097c6 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.
@@ -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;
@@ -1034,4 +1032,4 @@ 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,154,129,1 duplicate(#wander_xmas) Spectator#xmas4 797 \ No newline at end of file
diff --git a/npc/re/jobs/novice/novice.txt b/npc/re/jobs/novice/novice.txt
index b9c2a10ac..95add76e2 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 90
+new_2-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv2a 90
+new_3-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv3a 90
+new_4-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv4a 90
+new_5-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv5a 90
-// 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 90
+new_2-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv2b 90
+new_3-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv3b 90
+new_4-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv4b 90
+new_5-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv5b 90
-// 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 733
+new_2-2,100,105,3 duplicate(NvBradeA) Brade#nv2a 733
+new_3-2,100,105,3 duplicate(NvBradeA) Brade#nv3a 733
+new_4-2,100,105,3 duplicate(NvBradeA) Brade#nv4a 733
+new_5-2,100,105,3 duplicate(NvBradeA) Brade#nv5a 733
-// 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 59
+new_2-2,115,120,3 duplicate(NvJinha) Jinha#nv2 59
+new_3-2,115,120,3 duplicate(NvJinha) Jinha#nv3 59
+new_4-2,115,120,3 duplicate(NvJinha) Jinha#nv4 59
+new_5-2,115,120,3 duplicate(NvJinha) Jinha#nv5 59
// 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 96
+new_2-2,33,172,4 duplicate(NvChocolat) Chocolat#nv2 96
+new_3-2,33,172,4 duplicate(NvChocolat) Chocolat#nv3 96
+new_4-2,33,172,4 duplicate(NvChocolat) Chocolat#nv4 96
+new_5-2,33,172,4 duplicate(NvChocolat) Chocolat#nv5 96
-// ---------- 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 117
+new_2-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv2 117
+new_3-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv3 117
+new_4-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv4 117
+new_5-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv5 117
-// ---------- 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 874
+new_2-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool2 874
+new_3-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool3 874
+new_4-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool4 874
+new_5-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool5 874
-// ---------- 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 105
+new_2-2,36,176,4 duplicate(NvGuide) Guide#nv2 105
+new_3-2,36,176,4 duplicate(NvGuide) Guide#nv3 105
+new_4-2,36,176,4 duplicate(NvGuide) Guide#nv4 105
+new_5-2,36,176,4 duplicate(NvGuide) Guide#nv5 105
-// 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 733
+new_2-3,96,30,4 duplicate(NvBradeB) Brade#nv2b 733
+new_3-3,96,30,4 duplicate(NvBradeB) Brade#nv3b 733
+new_4-3,96,30,4 duplicate(NvBradeB) Brade#nv4b 733
+new_5-3,96,30,4 duplicate(NvBradeB) Brade#nv5b 733
-// ---------------------------- 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;
+ } else if (.@quest == 0 || .@quest == 1) {
+ if (checkquest(7123,HUNTING) == 2) {
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;
- 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 728
+new_2-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv2 728
+new_3-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv3 728
+new_4-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv4 728
+new_5-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv5 728
-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 95
+new_2-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv2 95
+new_3-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv3 95
+new_4-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv4 95
+new_5-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv5 95
-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 118
+new_2-3,105,41,3 duplicate(NvThief) Thief Guide#nv2 118
+new_3-3,105,41,3 duplicate(NvThief) Thief Guide#nv3 118
+new_4-3,105,41,3 duplicate(NvThief) Thief Guide#nv4 118
+new_5-3,105,41,3 duplicate(NvThief) Thief Guide#nv5 118
-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 97
+new_2-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv2 97
+new_3-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv3 97
+new_4-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv4 97
+new_5-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv5 97
-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 727
+new_2-3,113,41,3 duplicate(NvArcher) Archer Guide#nv2 727
+new_3-3,113,41,3 duplicate(NvArcher) Archer Guide#nv3 727
+new_4-3,113,41,3 duplicate(NvArcher) Archer Guide#nv4 727
+new_5-3,113,41,3 duplicate(NvArcher) Archer Guide#nv5 727
-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 123
+new_2-3,117,41,3 duplicate(NvMage) Mage Guide#nv2 123
+new_3-3,117,41,3 duplicate(NvMage) Mage Guide#nv3 123
+new_4-3,117,41,3 duplicate(NvMage) Mage Guide#nv4 123
+new_5-3,117,41,3 duplicate(NvMage) Mage Guide#nv5 123
-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 57
+new_2-3,121,41,3 duplicate(NvBruce) Bruce#nv2 57
+new_3-3,121,41,3 duplicate(NvBruce) Bruce#nv3 57
+new_4-3,121,41,3 duplicate(NvBruce) Bruce#nv4 57
+new_5-3,121,41,3 duplicate(NvBruce) Bruce#nv5 57
-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 729,5,5
+new_2-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv2 729,5,5
+new_3-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv3 729,5,5
+new_4-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv4 729,5,5
+new_5-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv5 729,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)
+// Trainer
//============================================================
-- 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)
-//============================================================
-- 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 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
-// Random Stuff (Guards & Bulletin Board)
+// Monster Spawns
//============================================================
-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";
+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
+
+// Potato Merchant
+//============================================================
+- shop Potato Merchant#newbe09::NvPotato 93,516:-1
+
+new_1-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv1 93
+new_2-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv2 93
+new_3-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv3 93
+new_4-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv4 93
+new_5-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv5 93
+
+// 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 111
+new_2-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv2 111
+new_3-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv3 111
+new_4-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv4 111
+new_5-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv5 111
-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 105
+new_2-1,144,116,2 duplicate(NvGuardA) Guard#nv2a 105
+new_3-1,144,116,2 duplicate(NvGuardA) Guard#nv3a 105
+new_4-1,144,116,2 duplicate(NvGuardA) Guard#nv4a 105
+new_5-1,144,116,2 duplicate(NvGuardA) Guard#nv5a 105
-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 105
+new_2-1,144,107,2 duplicate(NvGuardB) Guard#nv2b 105
+new_3-1,144,107,2 duplicate(NvGuardB) Guard#nv3b 105
+new_4-1,144,107,2 duplicate(NvGuardB) Guard#nv4b 105
+new_5-1,144,107,2 duplicate(NvGuardB) Guard#nv5b 105
-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 92
+new_2-2,161,182,5 duplicate(NvEdwin) Instructor#nv2 92
+new_3-2,161,182,5 duplicate(NvEdwin) Instructor#nv3 92
+new_4-2,161,182,5 duplicate(NvEdwin) Instructor#nv4 92
+new_5-2,161,182,5 duplicate(NvEdwin) Instructor#nv5 92
+
+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 46
+new_2-4,100,29,1 duplicate(NvHanson) Final Tester#nv2 46
+new_3-4,100,29,1 duplicate(NvHanson) Final Tester#nv3 46
+new_4-4,100,29,1 duplicate(NvHanson) Final Tester#nv4 46
+new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 46
+
+// 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 706
+new_2-3,106,50,4 duplicate(NvLark) Job Guide Lark#02 706
+new_3-3,106,50,4 duplicate(NvLark) Job Guide Lark#03 706
+new_4-3,106,50,4 duplicate(NvLark) Job Guide Lark#04 706
+new_5-3,106,50,4 duplicate(NvLark) Job Guide Lark#05 706
diff --git a/npc/re/jobs/novice/supernovice_ex.txt b/npc/re/jobs/novice/supernovice_ex.txt
index 4a8436dfe..6d570f1c7 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) {
diff --git a/npc/re/jobs/repair.txt b/npc/re/jobs/repair.txt
new file mode 100644
index 000000000..1c49717bc
--- /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 811,{
+ 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 837
+ein_in01,13,28,4 duplicate(Valerie#sign) Valerie#bls 837
+hu_in01,386,377,4 duplicate(Valerie#sign) Valerie#hnt 837
+prt_in,88,108,4 duplicate(Valerie#sign) Valerie#knt 837
+prt_church,19,36,4 duplicate(Valerie#sign) Valerie#prst 837
+gef_tower,110,30,4 duplicate(Valerie#sign) Valerie#wiz 837
+comodo,215,155,4 duplicate(Valerie#sign) Valerie#danc 837
+prt_castle,45,167,4 duplicate(Valerie#sign) Valerie#cru 837
+prt_monk,59,253,4 duplicate(Valerie#sign) Valerie#mnk 837
+moc_ruins,90,104,4 duplicate(Valerie#sign) Valerie#rg 837
+yuno_in02,43,62,4 duplicate(Valerie#sign) Valerie#sag 837
+prt_church,103,86,4 duplicate(Valerie#sign) Valerie#arch 837
+que_job01,75,92,4 duplicate(Valerie#sign) Valerie#gc 837
+yuno,129,150,4 duplicate(Valerie#sign) Valerie#mech 837
+tur_dun01,159,40,4 duplicate(Valerie#sign) Valerie#ran 837
+prt_in,167,24,4 duplicate(Valerie#sign) Valerie#rk 837
+spl_in02,81,102,4 duplicate(Valerie#sign) Valerie#wl 837
+alde_alche,38,181,4 duplicate(Valerie#sign) Valerie#alche 837
+alberta,198,129,4 duplicate(Valerie#sign) Valerie#min 837
+in_rogue,376,104,4 duplicate(Valerie#sign) Valerie#sc 837
+ve_in,244,122,4 duplicate(Valerie#sign) Valerie#shu 837
+xmas,166,209,4 duplicate(Valerie#sign) Valerie#wan 837
+
+sec_in02,12,40,5 script Job Repair 57,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;
+}