diff options
author | shennetsind <ind@henn.et> | 2013-10-30 18:38:14 -0200 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-10-30 18:38:14 -0200 |
commit | 7fefefdde386f13f8fefa8db3ffe9ed140c8aa10 (patch) | |
tree | 715f3b80d75cab3a9c2a3abd04ae4461165e8854 /npc/re/jobs | |
parent | a2405882a4123d6a11d24e895b40148dc7cb455e (diff) | |
parent | bd04c6c566902d03d633b4dfee5335361155a79e (diff) | |
download | hercules-7fefefdde386f13f8fefa8db3ffe9ed140c8aa10.tar.gz hercules-7fefefdde386f13f8fefa8db3ffe9ed140c8aa10.tar.bz2 hercules-7fefefdde386f13f8fefa8db3ffe9ed140c8aa10.tar.xz hercules-7fefefdde386f13f8fefa8db3ffe9ed140c8aa10.zip |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'npc/re/jobs')
-rw-r--r-- | npc/re/jobs/1-1/acolyte.txt | 10 | ||||
-rw-r--r-- | npc/re/jobs/1-1/archer.txt | 10 | ||||
-rw-r--r-- | npc/re/jobs/1-1/mage.txt | 12 | ||||
-rw-r--r-- | npc/re/jobs/1-1/merchant.txt | 12 | ||||
-rw-r--r-- | npc/re/jobs/1-1/swordman.txt | 12 | ||||
-rw-r--r-- | npc/re/jobs/1-1/thief.txt | 12 | ||||
-rw-r--r-- | npc/re/jobs/3-1/archbishop.txt | 387 | ||||
-rw-r--r-- | npc/re/jobs/3-1/guillotine_cross.txt | 58 | ||||
-rw-r--r-- | npc/re/jobs/3-1/mechanic.txt | 14 | ||||
-rw-r--r-- | npc/re/jobs/3-1/ranger.txt | 16 | ||||
-rw-r--r-- | npc/re/jobs/3-1/rune_knight.txt | 17 | ||||
-rw-r--r-- | npc/re/jobs/3-1/warlock.txt | 27 | ||||
-rw-r--r-- | npc/re/jobs/3-2/genetic.txt | 4 | ||||
-rw-r--r-- | npc/re/jobs/3-2/minstrel.txt | 12 | ||||
-rw-r--r-- | npc/re/jobs/3-2/royal_guard.txt | 16 | ||||
-rw-r--r-- | npc/re/jobs/3-2/shadow_chaser.txt | 12 | ||||
-rw-r--r-- | npc/re/jobs/3-2/sorcerer.txt | 12 | ||||
-rw-r--r-- | npc/re/jobs/3-2/sura.txt | 16 | ||||
-rw-r--r-- | npc/re/jobs/3-2/wanderer.txt | 14 | ||||
-rw-r--r-- | npc/re/jobs/novice/novice.txt | 3806 | ||||
-rw-r--r-- | npc/re/jobs/novice/supernovice_ex.txt | 12 | ||||
-rw-r--r-- | npc/re/jobs/repair.txt | 313 |
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; +} |