//================= Hercules Script =======================================
//= _ _ _
//= | | | | | |
//= | |_| | ___ _ __ ___ _ _| | ___ ___
//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
//= | | | | __/ | | (__| |_| | | __/\__ \
//= \_| |_/\___|_| \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2012-2015 Hercules Dev Team
//= Copyright (C) Joseph
//= Copyright (C) Euphy
//= Copyright (C) Kisuka
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program. If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Renewal Novice Training Grounds
//================= Description ===========================================
//= A tutorial for new players starting at new_1-1 (53,111).
//= This script was replaced by the Izlude Academy in 2012.
//================= Current Version =======================================
//= 1.5
//=========================================================================
//== Main NPCs =============================================
- script Sprakki#newbe01::NvSprakkiA FAKE_NPC,{
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 ^4d4dffmoves, 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;
mes "[Sprakki]";
mes "First off, try moving around.";
mes "Do you see that wooden bridge to the right?";
next;
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.";
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.";
next;
mes "[Sprakki]";
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 ^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;
}
}
new_1-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv1a 4_F_01
new_2-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv2a 4_F_01
new_3-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv3a 4_F_01
new_4-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv4a 4_F_01
new_5-1,53,114,3 duplicate(NvSprakkiA) Sprakki#nv5a 4_F_01
- script Sprakki#newbe05::NvSprakkiB FAKE_NPC,{
if (job_novice_q == 0) {
mes "[Sprakki]";
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 ^4d4dffmoves, 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;
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.";
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 ^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;
} 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?";
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 "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(NPC_MAP),100,100;
warp strnpcinfo(NPC_MAP),100,100;
end;
case 2:
nov_1st_cos = 0;
nov_2nd_cos = 0;
nov_3_swordman = 0;
nov_3_archer = 0;
nov_3_thief = 0;
nov_3_magician = 0;
nov_3_acolyte = 0;
nov_3_merchant = 0;
mes "[Sprakki]";
mes "Ok, You want to start right away.";
mes "Which Town do you want to start at?";
next;
.@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(NPC_MAP),100,100;
warp strnpcinfo(NPC_MAP),100,100;
end;
}
}
new_1-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv1b 4_F_01
new_2-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv2b 4_F_01
new_3-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv3b 4_F_01
new_4-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv4b 4_F_01
new_5-2,100,29,4 duplicate(NvSprakkiB) Sprakki#nv5b 4_F_01
- script Brade#newbe02::NvBradeA FAKE_NPC,{
if (job_novice_q < 2) {
mes "[Instructor Brade]";
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 "I guess we will just have to start your training all over again.";
next;
mes "[Instructor Brade]";
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 "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 "First off, try moving around.";
mes "After moving around, talk to me again.";
nov_1st_cos = 0;
nov_2nd_cos = 0;
nov_3_swordman = 0;
nov_3_archer = 0;
nov_3_thief = 0;
nov_3_magician = 0;
nov_3_acolyte = 0;
nov_3_merchant = 0;
treasure_alb = 0;
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 "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.";
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.";
}
job_novice_q = 4;
getitem Novice_Plate,1;
getitem Novice_Hood,1;
getitem Novice_Boots,1;
getitem Novice_Egg_Cap,1;
getitem Novice_Knife,1;
getitem Novice_Guard,1;
getitem Novice_Potion,300;
setquest 7119;
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...";
next;
mes "[Instructor Brade]";
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 "Detailed information of the item will pop up.";
next;
cutin "tutorial04",3;
mes "!- Info -!";
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, 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 "^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 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 "Or, drag the item on to the item slot you want the item to be equipped.";
next;
mes "!- Info -!";
mes "Equip all of the equipment given by Instructor Brade.";
close2;
cutin "",255;
end;
} 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 "You are all set.";
mes "You are coming along just fine.";
job_novice_q = 5;
getexp 1200,15;
getitem N_Fly_Wing,50;
getitem N_Butterfly_Wing,20;
completequest 7119;
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 ^4d4dffF12 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;
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 == 5) {
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.";
close;
} 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.";
next;
mes "[Instructor Brade]";
mes "And that's it, that's all I can teach you.";
mes "You see that exit to the west?";
mes "Move on to the next room and there will be another instructor waiting for you.";
next;
mes "[Instructor Brade]";
mes "We will be seeing each other soon enough.";
mes "But for now, go to the room to the west and get more information.";
next;
mes "[Instructor Brade]";
mes "You've come along fine this far.";
mes "This is not much, but take this as a reward.";
job_novice_q = 7;
getitem N_Adventurer's_Suit,1;
completequest 7120;
close;
} 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;
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 strnpcinfo(NPC_MAP),41,172;
end;
}
} else {
mes "[Instructor Brade]";
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(NPC_MAP),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(NPC_MAP),41,172;
end;
}
}
}
new_1-2,100,105,3 duplicate(NvBradeA) Brade#nv1a 4_M_JOB_KNIGHT1
new_2-2,100,105,3 duplicate(NvBradeA) Brade#nv2a 4_M_JOB_KNIGHT1
new_3-2,100,105,3 duplicate(NvBradeA) Brade#nv3a 4_M_JOB_KNIGHT1
new_4-2,100,105,3 duplicate(NvBradeA) Brade#nv4a 4_M_JOB_KNIGHT1
new_5-2,100,105,3 duplicate(NvBradeA) Brade#nv5a 4_M_JOB_KNIGHT1
- script Jinha#newbe03::NvJinha FAKE_NPC,{
if (job_novice_q < 5) {
mes "[Jinha]";
mes "What can I help you with?";
mes "Hmm? You haven't followed the curriculum correctly.";
next;
mes "[Jinha]";
mes "You have to see Instructor Brade first before me. I will send you to Instructor Brade.";
close2;
warp strnpcinfo(NPC_MAP),100,100;
end;
} 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.";
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;
skill_nov = 3; // Has future uses - do not remove! [Euphy]
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;
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 strnpcinfo(NPC_MAP),100,100;
end;
}
} else {
mes "[Jinha]";
mes "What can I do for you?";
mes "Next course will be continued in the West Room.";
mes "Go on into the west room.";
close;
}
}
new_1-2,115,120,3 duplicate(NvJinha) Jinha#nv1 1_M_ORIENT01
new_2-2,115,120,3 duplicate(NvJinha) Jinha#nv2 1_M_ORIENT01
new_3-2,115,120,3 duplicate(NvJinha) Jinha#nv3 1_M_ORIENT01
new_4-2,115,120,3 duplicate(NvJinha) Jinha#nv4 1_M_ORIENT01
new_5-2,115,120,3 duplicate(NvJinha) Jinha#nv5 1_M_ORIENT01
//== People/Services in Ragnarok ===========================
- script Chocolat#newbe06::NvChocolat FAKE_NPC,{
if (job_novice_q < 7) {
mes "[Chocolat]";
mes "Hmm? Strange.";
mes "Let me see that Trainee ID for a sec.";
next;
if (job_novice_q < 2) {
mes "[Chocolat]";
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(NPC_MAP),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.";
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(NPC_MAP),100,100;
end;
}
}
} 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.";
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 Information [Guide]";
next;
mes "[Chocolat]";
mes "Well then, let's hear from each of them.";
mes "Start by talking to the [Kafra] Employee.";
job_novice_q = 8;
setquest 7121;
close;
} else if (job_novice_q == 8) {
mes "[Chocolat]";
mes "Here, talk to these guys standing behind me.";
mes "Start with the [Kafra] Employee behind me.";
close;
} 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 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 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 == 10) {
mes "[Chocolat]";
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 Guide from the City of Prontera.";
mes "Ask him what he actually does in town.";
close;
} else if (job_novice_q == 11) {
mes "[Chocolat]";
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;
mes "[Chocolat]";
mes "You can rest at Inns or Hotels for a small fee.";
mes "Your HP and SP will be recovered completely by resting there.";
mes "Can't hurt to use one, eh?";
next;
mes "[Chocolat]";
mes "Besides these guys, there's many merchants selling various kind of items, so go check them out.";
job_novice_q = 12;
completequest 7121;
getexp 1800,20;
getitem Cargo_Free_Ticket,20;
getitem Warp_Free_Ticket,30;
next;
mes "[Chocolat]";
mes "You've completed all the quests I gave you.";
mes "As the reward, I will give you Free Tickets for Kafra Storage and Teleport Service.";
mes "They will come in handy.";
next;
mes "[Chocolat]";
mes "That's all for me.";
mes "Now, it's time for real combat!";
next;
mes "[Chocolat]";
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;
.@map$ = "new_"+charat(strnpcinfo(NPC_MAP),4)+"-3";
savepoint .@map$,96,21;
warp .@map$,96,21;
end;
} else {
mes "[Chocolat]";
mes "Are you lost?";
next;
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;
.@map$ = "new_"+charat(strnpcinfo(NPC_MAP),4)+"-3";
savepoint .@map$,96,21;
warp .@map$,96,21;
end;
}
}
}
new_1-2,33,172,4 duplicate(NvChocolat) Chocolat#nv1 4W_KID
new_2-2,33,172,4 duplicate(NvChocolat) Chocolat#nv2 4W_KID
new_3-2,33,172,4 duplicate(NvChocolat) Chocolat#nv3 4W_KID
new_4-2,33,172,4 duplicate(NvChocolat) Chocolat#nv4 4W_KID
new_5-2,33,172,4 duplicate(NvChocolat) Chocolat#nv5 4W_KID
- script Kafra Employee#newbe07::NvKafra FAKE_NPC,{
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 == 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 "It's important for you adventurers to be close with us.";
next;
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 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 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;
callsub L_Services,2; //Storage
next;
callsub L_Services,3; //Teleport
job_novice_q = 9;
next;
mes "[Kafra Employee]";
mes "Do you want to hear another explanation?";
next;
while(1) {
.@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) {
.@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 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 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 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;
// 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 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 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.";
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 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 Employee]";
mes "This is all for your never ending";
mes "support. We are working hard to";
mes "repay our dept to our customers.";
break;
case 4:
mes "[Kafra Employee]";
mes "The Kafra corporation provides Cart rental services";
mes "to customers engaged in commercial business.";
mes "Originally this cart rental service had been only provided";
mes "by the merchant guild in Alberta";
next;
mes "[Kafra Employee]";
mes "However, since we took over this service";
mes "our merchant customers have been able to rent carts from almost anywhere.";
mes "The cart rental service is available only for job classes engaged in commercial business";
mes "such as ^4d4dffMerchants, Blacksmiths, Alchemists, and Super Novices^000000.";
next;
mes "[Kafra Employee]";
mes "Of course you should learn the 'Pushcart' skill beforehand,";
mes "otherwise you will not be able to rent a cart from us.";
mes "The rental fee varies by town,";
mes "please keep that in mind.";
break;
}
return;
}
new_1-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv1 4_F_KAFRA1
new_2-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv2 4_F_KAFRA1
new_3-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv3 4_F_KAFRA1
new_4-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv4 4_F_KAFRA1
new_5-2,30,176,4 duplicate(NvKafra) Kafra Employee#nv5 4_F_KAFRA1
- script Cool Event Corp. Staff::NvCool FAKE_NPC,{
if (job_novice_q < 9) {
mes "[Cool Event Corp. Staff]";
mes "This is not my turn.";
mes "have you finished talking to the Kafra Employee yet?";
close;
} 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 services.";
next;
mes "[Cool Event Corp. Staff]";
mes "Our staff is here to support you with [storage], [save] and [teleport service].";
next;
mes "[Cool Event Corp. Staff]";
mes "If there's no Kafra around you, we're around to help you.";
next;
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 Corp. Staff]";
mes "Who knows, we might meet outside of this academy.";
next;
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.";
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;
}
}
new_1-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool1 4_M_ZONDAMAN
new_2-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool2 4_M_ZONDAMAN
new_3-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool3 4_M_ZONDAMAN
new_4-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool4 4_M_ZONDAMAN
new_5-2,33,176,4 duplicate(NvCool) Cool Event Corp. Staff::NvCool5 4_M_ZONDAMAN
- script Guide::NvGuide FAKE_NPC,{
if (job_novice_q < 10) {
mes "[Guide]";
mes "It ain't my turn yet.";
mes "Listen to Chocolat.";
close;
} 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 "[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.";
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;
}
}
}
new_1-2,36,176,4 duplicate(NvGuide) Guide#nv1 8W_SOLDIER
new_2-2,36,176,4 duplicate(NvGuide) Guide#nv2 8W_SOLDIER
new_3-2,36,176,4 duplicate(NvGuide) Guide#nv3 8W_SOLDIER
new_4-2,36,176,4 duplicate(NvGuide) Guide#nv4 8W_SOLDIER
new_5-2,36,176,4 duplicate(NvGuide) Guide#nv5 8W_SOLDIER
//== Real Combat Training ==================================
- script Brade#newbe04::NvBradeB FAKE_NPC,{
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(NPC_MAP),4)+"-2",100,100;
end;
case 2:
mes "[Brade]";
mes "Then we will start your training.";
mes "I'll write down the registration form.";
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(NPC_MAP),4)+"-2",41,172;
end;
case 2:
mes "[Brade]";
mes "Then we will start your training.";
mes "I'll write down the registration form.";
job_novice_q = 12;
close;
}
}
} else if (job_novice_q == 12) {
mes "[Brade]";
mes "Welcome.";
mes "Now this is real practice.";
mes "We can practice real battle here.";
next;
mes "[Brade]";
mes "As I explained the first time, we can click on the monsters.";
mes "One attack per click.";
next;
mes "[Brade]";
mes "For convenience,";
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 ^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.";
job_novice_q = 13;
setquest 7122;
getitem Novice_Potion,100;
savepoint strnpcinfo(NPC_MAP),96,21;
next;
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 (questprogress(7122,HUNTING) == 2) {
mes "[Brade]";
mes "You can see it is not so hard, huh?";
mes "Nice job.";
job_novice_q = 14;
getitem N_Cutter,1;
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.";
job_novice_q = 15;
close;
} 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 "It's ok to stay here and practice until you think you are ready.";
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",11,99,60;
percentheal 0,100;
close;
case 2:
mes "[Brade]";
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;
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;
}
}
}
}
new_1-3,96,30,4 duplicate(NvBradeB) Brade#nv1b 4_M_JOB_KNIGHT1
new_2-3,96,30,4 duplicate(NvBradeB) Brade#nv2b 4_M_JOB_KNIGHT1
new_3-3,96,30,4 duplicate(NvBradeB) Brade#nv3b 4_M_JOB_KNIGHT1
new_4-3,96,30,4 duplicate(NvBradeB) Brade#nv4b 4_M_JOB_KNIGHT1
new_5-3,96,30,4 duplicate(NvBradeB) Brade#nv5b 4_M_JOB_KNIGHT1
- script Swordman Guide#newbe10::NvSwordman FAKE_NPC,{
if (job_novice_q < 15) {
mes "[Swordman Guildsman]";
mes "I won't help you until you finish Brade's instructions.";
close;
}
mes "[Swordman Guildsman]";
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";
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(Swordman_Manual)) {
mes "[Swordman Guildsman]";
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 "Here is the Swordman manual.";
mes "I'll just take any manuals from any other classes you have.";
next;
callfunc "F_NvErase";
getitem Swordman_Manual,1;
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.";
close;
case 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;
}
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 "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 "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:
.@quest = questprogress(7123);
if (!.@quest) {
mes "[Swordman Guildsman]";
mes "You want me to give you a quest?";
mes "Umm. Let me see.";
mes "Ok! Hunt a couple of Picky monsters around here?";
next;
mes "^4d4dffYou received a hunting request from a staff of the Swordman Guild.";
mes "You can check the contents of the quest from the quest information window.^000000";
setquest 7123;
next;
mes "[Swordman Guildsman]";
mes "Use the 'Bash' skill in the Swordman manual.";
mes "Open your Skill Tree by pressing ^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;
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.";
close;
} else if (.@quest == 1) {
if (questprogress(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 Novice_Potion,200;
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 good luck.";
close;
} else {
mes "[Swordman Guildsman]";
mes "I'm sorry but I don't have any quests to give you right now.";
close;
}
case 4:
mes "[Swordman Guildsman]";
mes "If you have any questions about the Swordman class, please ask me.";
mes "The Swordman Guild is waiting for novices like you.";
close;
}
}
new_1-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv1 4_F_JOB_KNIGHT
new_2-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv2 4_F_JOB_KNIGHT
new_3-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv3 4_F_JOB_KNIGHT
new_4-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv4 4_F_JOB_KNIGHT
new_5-3,97,41,3 duplicate(NvSwordman) Swordman Guide#nv5 4_F_JOB_KNIGHT
- script Acolyte Guide#newbe10::NvAcolyte FAKE_NPC,{
if (job_novice_q < 15) {
mes "[Prontera Acolyte]";
mes "You look like you are not done with Instructor Brade's lessons.";
close;
}
mes "[Prontera Acolyte]";
mes "What can I do for you?";
next;
switch(select("What is an Acolyte?", "Job change to Acolyte.", "Cancel")) {
case 1:
mes "[Prontera Acolyte]";
mes "An Acolyte is someone who worships the goddess Freya sacrificing themselves to help others.";
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.";
next;
mes "[Prontera Acolyte]";
mes "^8E2323As an Acolyte, you can upgrade your future job to Priest or Monk^8E2323.";
next;
if (isequipped(2821) || countitem(Acolyte_Manual)) {
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;
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;
callfunc "F_NvErase";
getitem Acolyte_Manual,1;
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 ^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;
}
case 2:
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 "[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;
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;
close2;
savepoint "prontera",117,72;
warp "prt_church",172,19;
end;
}
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.";
close;
}
}
new_1-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv1 4_F_SISTER
new_2-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv2 4_F_SISTER
new_3-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv3 4_F_SISTER
new_4-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv4 4_F_SISTER
new_5-3,101,41,3 duplicate(NvAcolyte) Acolyte Guide#nv5 4_F_SISTER
- script Thief Guide#newbe10::NvThief FAKE_NPC,{
if (job_novice_q < 15) {
mes "[Thief Guild Member]";
mes "You look like you are not done with Instructor Brade's lessons.";
close;
}
mes "[Thief Guild Member]";
mes "How can I help you?";
next;
switch(select("About the Thief Class.", "I want to be a Thief.", "Got any Quests?", "Cancel.")) {
case 1:
mes "[Thief Guild Member]";
mes "Thieves are experts at using Dagger class weapons.";
mes "They strike quickly and easily evade attacks from their enemies.";
next;
mes "[Thief Guild Member]";
mes "Thieves can learn skills that allow them to hide from their enemies or steal items from monsters.";
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,";
mes "they can even use their skill to hide themselves easily.";
next;
mes "[Thief Guild Member]";
mes "Thieves can change their jobs to ^8E2323Assassins^000000 or ^8E2323Rogues^000000.";
next;
if (isequipped(2820) || countitem(Thief_Manual)) {
mes "[Thief Guild Member]";
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;
callfunc "F_NvErase";
getitem Thief_Manual,1;
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 ^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;
}
case 2:
mes "[Thief Guild Member]";
mes "Do you really want to be a Thief?";
mes "If so, I will send you to the Thief Guild immediately.";
next;
mes "[Thief Guild Member]";
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;
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.";
callfunc "F_NvErase",1;
close2;
savepoint "morocc",150,99;
warp "moc_prydb1",99,185;
end;
}
case 3:
.@quest = questprogress(7127);
if (!.@quest) {
mes "[Thief Guild Member]";
mes "Quests?";
mes "Hmm, what will be good for you?";
mes "How about hunting some Willows.";
next;
mes "[Thief Guild Member]";
mes "You can't cheat this so make sure to kill 5 Willows. When you're done come and talk to me again.";
mes "If you talk to Trainer Brutus, he can send you to a more difficult training ground where there are Willows to hunt.";
setquest 7127;
next;
mes "[Thief Guild Member]";
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) {
if (questprogress(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 N_Fly_Wing,50;
getexp 5000,100;
close;
} else {
mes "[Thief Guild Member]";
mes "Hunt 5 Willows and then come talk to me to finish your quest.";
close;
}
} 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 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;
}
case 4:
mes "[Thief Guild Member]";
mes "If you have something to ask about the Thief job, feel free to ask me.";
close;
}
}
new_1-3,105,41,3 duplicate(NvThief) Thief Guide#nv1 2_M_THIEFMASTER
new_2-3,105,41,3 duplicate(NvThief) Thief Guide#nv2 2_M_THIEFMASTER
new_3-3,105,41,3 duplicate(NvThief) Thief Guide#nv3 2_M_THIEFMASTER
new_4-3,105,41,3 duplicate(NvThief) Thief Guide#nv4 2_M_THIEFMASTER
new_5-3,105,41,3 duplicate(NvThief) Thief Guide#nv5 2_M_THIEFMASTER
- script Merchant Guide#newbe10::NvMerchant FAKE_NPC,{
if (job_novice_q < 15) {
mes "[Merchant Guildsman]";
mes "You are still in the process of training with sir Brad.";
close;
}
mes "[Merchant Guildsman]";
mes "What can I help you with?";
next;
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, 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";
mes "and sell them at a higher price.";
next;
mes "[Merchant Guildsman]";
mes "Also Merchants can have Carts";
mes "that we can store lots of items in.";
next;
mes "[Merchant Guildsman]";
mes "^8E2323Merchants can transform to a Blacksmith";
mes "^8E2323or an Alchemist^000000 as their second job.";
next;
if (isequipped(2823) || countitem(Merchant_Manual)) {
mes "[Merchant Guildsman]";
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;
callfunc "F_NvErase";
getitem Merchant_Manual,1;
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 ^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;
}
case 2:
mes "[Merchant Guildsman]";
mes "You want to be a Merchant?";
mes "Ok, then, I will send you to the Merchant Guild's union right away.";
next;
mes "[Merchant Guildsman]";
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;
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 "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;
close2;
savepoint "alberta",30,232;
warp "alberta_in",62,44;
end;
}
case 3:
.@quest = questprogress(7126);
if (!.@quest) {
mes "[Merchant Guildsman]";
mes "Huh? Quest??";
mes "Humm... What would be suited for you...?";
mes "Ok, then bring me ^5d5dff300 zeny^000000 by selling some of your items to the Potato Merchant.";
next;
mes "[Merchant Guildsman]";
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 >= 300) {
mes "[Merchant Guildsman]";
mes "Excellent!";
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 "We can use extremely powerful skills with zeny!";
mes "Mammonite! That is our ultimate attack skill!!";
mes "We basically paste money on the weapon and then strike the enemy. Death by Zeny! Nyahahahaha!";
next;
mes "[Merchant Guildsman]";
mes "By the way, you have done an excellent job. So, I should give you something... What would be good?";
mes "Alright! What about Phracon?";
mes "Phracon is a metallic element which you can use for refining weapons.";
completequest 7126;
getitem Phracon,7;
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;
}
} 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!";
next;
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;
}
case 4:
mes "[Merchant Guildsman]";
mes "If you have any questions about Merchants, feel free to ask me.";
mes "I think you could be a rich Merchant. AhHahaha.";
close;
}
}
new_1-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv1 4W_M_01
new_2-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv2 4W_M_01
new_3-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv3 4W_M_01
new_4-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv4 4W_M_01
new_5-3,109,41,3 duplicate(NvMerchant) Merchant Guide#nv5 4W_M_01
- script Archer Guide#newbe10::NvArcher FAKE_NPC,{
if (job_novice_q < 15) {
mes "[Archer Guildsman]";
mes "You are still in the process of training with sir Brade.";
close;
}
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 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 Guildsman]";
mes "Archers don't have great";
mes "vitality so they have to keep";
mes "their distance from enemies.";
next;
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 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(Archer_Manual)) {
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;
callfunc "F_NvErase";
getitem Archer_Manual,1;
next;
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 ^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;
}
case 2:
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 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;
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;
}
case 3:
mes "[Archer Guildsman]";
mes "If you have any questions about Archers, feel free to ask me.";
mes "I think you could be a strong Archer young Novice.";
close;
}
}
new_1-3,113,41,3 duplicate(NvArcher) Archer Guide#nv1 4_F_JOB_HUNTER
new_2-3,113,41,3 duplicate(NvArcher) Archer Guide#nv2 4_F_JOB_HUNTER
new_3-3,113,41,3 duplicate(NvArcher) Archer Guide#nv3 4_F_JOB_HUNTER
new_4-3,113,41,3 duplicate(NvArcher) Archer Guide#nv4 4_F_JOB_HUNTER
new_5-3,113,41,3 duplicate(NvArcher) Archer Guide#nv5 4_F_JOB_HUNTER
- script Mage Guide#newbe10::NvMage FAKE_NPC,{
if (job_novice_q < 15) {
mes "[Mage Guild Member]";
mes "You are still in the process of training with Instructor Brade.";
close;
}
mes "[Mage Guild Member]";
mes "What can I help you with?";
next;
switch(select("Tell me about Mages", "I want to be a Mage", "Give me a Quest", "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.";
next;
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 "[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 "[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(Mage_Manual)) {
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;
callfunc "F_NvErase";
getitem Mage_Manual,1;
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.";
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;
}
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.";
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?";
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 end the Training Process and send you to the Mage Guild union in Geffen right away.";
callfunc "F_NvErase",1;
close2;
savepoint "geffen",119,37;
warp "geffen_in",163,98;
end;
}
case 3:
.@quest = questprogress(7124);
if (!.@quest) {
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 (questprogress(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 N_Butterfly_Wing,30;
getexp 5000,100;
close;
} else {
mes "[Mage Guild Member]";
mes "The quest is that you have to";
mes "hunt Lunatics and bring 5 clovers.";
close;
}
} else if (.@quest == 2) {
mes "[Mage Guild Member]";
mes "You have already completed the quest.";
mes "Once you enter the main world, you can get various exciting quests there!";
next;
mes "[Mage Guild Member]";
mes "This should be enough for your training.";
close;
} else {
mes "[Mage Guild Member]";
mes "I'm sorry but I don't have any quests to give you right now.";
close;
}
case 4:
mes "[Mage Guild Member]";
mes "If you have any questions about Mages, feel free to ask me.";
mes "I think you could be a intelligent Mage...";
close;
}
}
new_1-3,117,41,3 duplicate(NvMage) Mage Guide#nv1 2_F_MAGICMASTER
new_2-3,117,41,3 duplicate(NvMage) Mage Guide#nv2 2_F_MAGICMASTER
new_3-3,117,41,3 duplicate(NvMage) Mage Guide#nv3 2_F_MAGICMASTER
new_4-3,117,41,3 duplicate(NvMage) Mage Guide#nv4 2_F_MAGICMASTER
new_5-3,117,41,3 duplicate(NvMage) Mage Guide#nv5 2_F_MAGICMASTER
- script Bruce#nv::NvBruce FAKE_NPC,{
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 Boy, Taekwon Girl, Ninja, Supernovice, Gunslinger.";
mes "Which job description do you want to hear?";
next;
while(1) {
switch(select("Taekwon", "Ninja", "Super Novice", "Gunslinger", "End the conversation.")) {
case 1:
mes "[Bruce]";
mes "It's a job that usually uses a lot of kicking skills.";
mes "It belongs to special class and later you can change your job into Taekwon Master which has much stronger attack skills.";
next;
mes "[Bruce]";
mes "There is a secondary class to choose from called Soul Linker which also has strong attacks.";
mes "You can decide that later when you get stronger.";
next;
break;
case 2:
mes "[Bruce]";
mes "Ninja's specialty is rapid movement.";
mes "They specialize in using throwing weapons.";
next;
mes "[Bruce]";
mes "Ninjas are kind of a hybrid class that can use various dodge skills with the capability of both physical and magical attacks depending on their preference.";
next;
break;
case 3:
mes "[Bruce]";
mes "The biggest attraction of the stronger Novice, called Super Novice, is their pull to mediocrity.";
mes "They are the proverbial Jack-of-all-Trades but Master of none.";
next;
mes "[Bruce]";
mes "Super Novices can learn most of the 1st job class skills.";
mes "If you become a Super Novice, you cannot change your job, which is too bad, but you can grow as a very individual character.";
next;
break;
case 4:
mes "[Bruce]";
mes "You can job change directly from Novice to a special class which is optimized for a long-distance attack with guns.";
next;
mes "[Bruce]";
mes "Gunslingers use all kinds of guns made in 'Einbroch', the city of steel.";
mes "I recommend this for those who want to become powerful sharpshooters.";
next;
break;
case 5:
mes "[Bruce]";
mes "If you need more information,";
mes "you can always go to ^2F4F4F'www.ragnarok.co.kr'^000000";
close;
}
}
}
new_1-3,121,41,3 duplicate(NvBruce) Bruce#nv1 1_M_LIBRARYMASTER
new_2-3,121,41,3 duplicate(NvBruce) Bruce#nv2 1_M_LIBRARYMASTER
new_3-3,121,41,3 duplicate(NvBruce) Bruce#nv3 1_M_LIBRARYMASTER
new_4-3,121,41,3 duplicate(NvBruce) Bruce#nv4 1_M_LIBRARYMASTER
new_5-3,121,41,3 duplicate(NvBruce) Bruce#nv5 1_M_LIBRARYMASTER
//== Eden Group Officer (iRO only) =========================
/*
- script Eden Group Officer::NvEden FAKE_NPC,{
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.";
next;
mes "[Eden Group Officer]";
mes "We have agents all over the world waiting to send you to our secret headquarters where you can get some useful quests.";
next;
mes "[Eden Group Officer]";
mes "If you take our quests we even give you weapons and equipment so be sure to visit us once you are done with your training.";
next;
mes "[Eden Group Officer]";
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;
}
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 "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;
}
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:
close2;
callfunc "F_NvErase",1;
savepoint getarg(0),getarg(1),getarg(2);
warp getarg(0),getarg(3),getarg(4);
end;
OnTouch:
emotion e_gasp;
end;
}
new_1-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv1 4_F_NOVICE,5,5
new_2-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv2 4_F_NOVICE,5,5
new_3-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv3 4_F_NOVICE,5,5
new_4-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv4 4_F_NOVICE,5,5
new_5-3,97,50,4 duplicate(NvEden) Eden Group Officer#nv5 4_F_NOVICE,5,5
*/
//== Trainer ===============================================
- script ::NvBrutus FAKE_NPC,{
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;
mes "[Trainer Brutus]";
mes "If you think monsters here are too weak for you, I can send you to another training ground where the monsters are stronger than the ones over here.";
next;
mes "[Trainer Brutus]";
mes "So would you like to try?";
next;
switch(select("Send me to another Level", "What monsters are there?", "Cancel")) {
case 1:
mes "[Trainer Brutus]";
mes "I see, then let me guide you to another level. Which level do you want to go to?";
next;
for(.@i = 1; .@i<6; ++.@i) {
if (!compare(strnpcinfo(NPC_NAME_HIDDEN),"nv"+.@i))
.@menu$ += "Send me to Level "+.@i;
.@menu$ += ":";
}
.@i = select(.@menu$+"Cancel");
if (.@i < 7)
warp "new_"+.@i+"-3",96,21;
close;
case 2:
mes "[Trainer Brutus]";
mes "You seem eager to fight.";
mes "The monster levels increase with each level of the training grounds.";
next;
mes "[Trainer Brutus]";
mes "Level 1 has the weakest monsters.";
mes "There you'll find Porings, Drops, and Lunatics.";
next;
mes "[Trainer Brutus]";
mes "Level 2 is more challenging.";
mes "There you'll find Porings, Lunatics, Willows, and Chonchons.";
next;
mes "[Trainer Brutus]";
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 Willows, Hornets, Pickys, and Fabres.";
next;
mes "[Trainer Brutus]";
mes "Level 5 is the same as Level 4.";
mes "There you'll find Willows, Hornets, Pickys, and Fabres.";
close;
case 3:
mes "[Trainer Brutus]";
mes "Hmm...?";
mes "Are you worried about going to more challenging places? That's understandable, since you're still a new adventurer. Good luck~";
close;
}
}
new_1-3,103,50,4 duplicate(NvBrutus) Level 1 Trainer#nv1 4_M_02
new_2-3,103,50,4 duplicate(NvBrutus) Level 2 Trainer#nv2 4_M_02
new_3-3,103,50,4 duplicate(NvBrutus) Level 3 Trainer#nv3 4_M_02
new_4-3,103,50,4 duplicate(NvBrutus) Level 4 Trainer#nv4 4_M_02
new_5-3,103,50,4 duplicate(NvBrutus) Level 5 Trainer#nv5 4_M_02
//== Monster Spawns ========================================
new_1-3,0,0,0,0 monster Poring 1002,20,0,0,0
new_1-3,0,0,0,0 monster Drops 1113,10,0,0,0
new_1-3,0,0,0,0 monster Lunatic 1063,20,0,0,0
new_2-3,0,0,0,0 monster Chonchon 1011,10,0,0,0
new_2-3,0,0,0,0 monster Lunatic 1063,15,0,0,0
new_2-3,0,0,0,0 monster Willow 1010,10,0,0,0
new_2-3,0,0,0,0 monster Poring 1002,15,0,0,0
new_3-3,0,0,0,0 monster Chonchon 1011,10,0,0,0
new_3-3,0,0,0,0 monster Lunatic 1063,15,0,0,0
new_3-3,0,0,0,0 monster Willow 1010,10,0,0,0
new_3-3,0,0,0,0 monster Poring 1002,5,0,0,0
new_4-3,0,0,0,0 monster Hornet 1004,5,0,0,0
new_4-3,0,0,0,0 monster Willow 1010,15,0,0,0
new_4-3,0,0,0,0 monster Fabre 1184,5,0,0,0
new_4-3,0,0,0,0 monster Picky 1049,15,0,0,0
new_5-3,0,0,0,0 monster Hornet 1004,5,0,0,0
new_5-3,0,0,0,0 monster Willow 1010,15,0,0,0
new_5-3,0,0,0,0 monster Fabre 1184,5,0,0,0
new_5-3,0,0,0,0 monster Picky 1049,15,0,0,0
//== Potato Merchant =======================================
- shop Potato Merchant#newbe09::NvPotato 4_F_04,516:-1
new_1-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv1 4_F_04
new_2-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv2 4_F_04
new_3-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv3 4_F_04
new_4-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv4 4_F_04
new_5-3,100,50,3 duplicate(NvPotato) Potato Merchant#nv5 4_F_04
//== Random Stuff ==========================================
- script Bulletin Board::NvBulletin FAKE_NPC,{
mes "^FF0000=================================";
mes " ^E40CAA[Welcome] ^CC0000to^FF9000Novice^7FFF00 Training^00FF00 Grounds^E40CAA [Welcome] ";
mes "^FF0000=================================^000000";
close;
}
new_1-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv1 HIDDEN_NPC
new_2-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv2 HIDDEN_NPC
new_3-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv3 HIDDEN_NPC
new_4-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv4 HIDDEN_NPC
new_5-1,66,114,4 duplicate(NvBulletin) Bulletin Board#nv5 HIDDEN_NPC
- script Guard::NvGuardA FAKE_NPC,{
mes "[Training Grounds Guard]";
mes "Welcome to the Training Grounds.";
mes "You are now in the outer court yard. Please go inside the castle to begin your training.";
close;
}
new_1-1,144,116,2 duplicate(NvGuardA) Guard#nv1a 8W_SOLDIER
new_2-1,144,116,2 duplicate(NvGuardA) Guard#nv2a 8W_SOLDIER
new_3-1,144,116,2 duplicate(NvGuardA) Guard#nv3a 8W_SOLDIER
new_4-1,144,116,2 duplicate(NvGuardA) Guard#nv4a 8W_SOLDIER
new_5-1,144,116,2 duplicate(NvGuardA) Guard#nv5a 8W_SOLDIER
- script Guard::NvGuardB FAKE_NPC,{
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 {
mes "Go, Novice, go!";
mes "Fight, and grow stronger! Look towards a brighter tomorrow!";
}
close;
}
new_1-1,144,107,2 duplicate(NvGuardB) Guard#nv1b 8W_SOLDIER
new_2-1,144,107,2 duplicate(NvGuardB) Guard#nv2b 8W_SOLDIER
new_3-1,144,107,2 duplicate(NvGuardB) Guard#nv3b 8W_SOLDIER
new_4-1,144,107,2 duplicate(NvGuardB) Guard#nv4b 8W_SOLDIER
new_5-1,144,107,2 duplicate(NvGuardB) Guard#nv5b 8W_SOLDIER
- script Instructor#Edwin::NvEdwin FAKE_NPC,{
mes "[Edwin]";
mes "Eh? Why are you still here?";
mes "There are no more courses that you need to take.";
next;
mes "[Edwin]";
mes "Well, I will let you out of here.";
mes "Go find the instructor, Brade.";
close2;
savepoint strnpcinfo(NPC_MAP),100,100;
warp strnpcinfo(NPC_MAP),100,100;
end;
}
new_1-2,161,182,5 duplicate(NvEdwin) Instructor#nv1 4_F_03
new_2-2,161,182,5 duplicate(NvEdwin) Instructor#nv2 4_F_03
new_3-2,161,182,5 duplicate(NvEdwin) Instructor#nv3 4_F_03
new_4-2,161,182,5 duplicate(NvEdwin) Instructor#nv4 4_F_03
new_5-2,161,182,5 duplicate(NvEdwin) Instructor#nv5 4_F_03
function script F_NvErase {
if (getarg(0,0)) {
if (questprogress(7123)) erasequest 7123;
if (questprogress(7124)) erasequest 7124;
if (questprogress(7126)) erasequest 7126;
if (questprogress(7127)) erasequest 7127;
}
nude;
setarray .@manuals[0],countitem(Swordman_Manual),countitem(Thief_Manual),countitem(Acolyte_Manual),countitem(Archer_Manual),countitem(Merchant_Manual),countitem(Mage_Manual);
if (.@manuals[0]) delitem Swordman_Manual,.@manuals[0];
if (.@manuals[1]) delitem Thief_Manual,.@manuals[1];
if (.@manuals[2]) delitem Acolyte_Manual,.@manuals[2];
if (.@manuals[3]) delitem Archer_Manual,.@manuals[3];
if (.@manuals[4]) delitem Merchant_Manual,.@manuals[4];
if (.@manuals[5]) delitem Mage_Manual,.@manuals[5];
return;
}
//== Pre-Renewal Backwards Compatibility ===================
- script Final Tester::NvHanson FAKE_NPC,{
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.";
nov_3_swordman = 40;
getitem Cargo_Free_Ticket,20;
getitem Warp_Free_Ticket,30;
getitem N_Adventurer's_Suit,1;
getitem N_Cutter,1;
next;
mes "[Hanson]";
mes "You will now";
mes "be teleported.";
mes "Good luck,";
mes "^A62A2A"+strcharinfo(0)+"^000000";
mes "and farewell.";
close2;
return;
L_Warp:
mes "[Hanson]";
switch(getarg(0)) {
case 1:
mes "I will send you to Prontera, the Capital City.";
close2;
savepoint "prontera",117,72;
warp "prontera",150,50;
end;
case 2:
mes "I will send you to Geffen, the City of Magic.";
close2;
savepoint "geffen",119,37;
warp "geffen",122,65;
end;
case 3:
mes "I will send you to Morroc, the Desert Town.";
close2;
savepoint "morocc",150,99;
warp "morocc",155,110;
end;
case 4:
mes "I will send you to Payon, the Mountain Village.";
close2;
savepoint "payon",70,100;
warp "payon",166,67;
end;
case 5:
mes "I will send you to Alberta, the Port City.";
close2;
savepoint "alberta",30,232;
warp "alberta",114,58;
end;
case 6:
mes "[Hanson]";
mes "Come back when you've made up your mind.";
close;
}
}
new_1-4,100,29,1 duplicate(NvHanson) Final Tester#nv1 1_ETC_01
new_2-4,100,29,1 duplicate(NvHanson) Final Tester#nv2 1_ETC_01
new_3-4,100,29,1 duplicate(NvHanson) Final Tester#nv3 1_ETC_01
new_4-4,100,29,1 duplicate(NvHanson) Final Tester#nv4 1_ETC_01
new_5-4,100,29,1 duplicate(NvHanson) Final Tester#nv5 1_ETC_01
//== Job Test ==============================================
- script Job Guide Lark::NvLark FAKE_NPC,{
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;
.@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;
.@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:
.@question_01$ = "You subdue them easily.";
++.@swordman_p;
++.@taekwon_p;
++.@ninja_p;
break;
case 2:
.@question_01$ = "You cast a spell on them.";
++.@magician_p;
break;
case 3:
.@question_01$ = "You call for help and Guards come to your aid.";
++.@acolyte_p;
break;
case 4:
.@question_01$ = "You skillfully throw rocks at the punks.";
++.@archer_p;
++.@gunslinger_p;
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:
.@question_02_01$ = "he";
.@question_02_02$ = "son";
break;
case 2:
.@question_02_01$ = "she";
.@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:
++.@swordman_p;
++.@archer_p;
++.@magician_p;
break;
case 2:
++.@thief_p;
++.@taekwon_p;
break;
case 3:
++.@acolyte_p;
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:
++.@acolyte_p;
break;
case 2:
++.@taekwon_p;
break;
case 3:
++.@merchant_p;
break;
case 4:
++.@magician_p;
break;
case 5:
++.@swordman_p;
break;
case 6:
++.@thief_p;
break;
case 7:
++.@gunslinger_p;
break;
case 8:
++.@ninja_p;
break;
case 9:
++.@archer_p;
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:
++.@thief_p;
++.@swordman_p;
++.@ninja_p;
++.@taekwon_p;
++.@magician_p;
++.@thief_p;
break;
case 2:
++.@acolyte_p;
++.@merchant_p;
++.@gunslinger_p;
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:
++.@magician_p;
break;
case 2:
++.@thief_p;
++.@swordman_p;
++.@taekwon_p;
break;
case 3:
++.@acolyte_p;
break;
case 4:
++.@thief_p;
++.@ninja_p;
break;
}
switch(select("Change", "Preservation")) {
case 1:
++.@magician_p;
break;
case 2:
++.@acolyte_p;
break;
}
switch(select("Consumer", "Seller", "Producer")) {
case 1:
++.@swordman_p;
++.@thief_p;
++.@acolyte_p;
++.@archer_p;
++.@gunslinger_p;
break;
case 2:
++.@merchant_p;
break;
case 3:
++.@magician_p;
break;
}
switch(select("Speed", "Caution")) {
case 1:
++.@thief_p;
++.@ninja_p;
break;
case 2:
++.@archer_p;
++.@gunslinger_p;
break;
}
switch(select("Theory", "Experience")) {
case 1:
++.@magician_p;
break;
case 2:
++.@swordman_p;
++.@taekwon_p;
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:
++.@merchant_p;
++.@ninja_p;
break;
case 2:
++.@acolyte_p;
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:
++.@ninja_p;
++.@archer_p;
break;
case 2:
++.@acolyte_p;
++.@gunslinger_p;
break;
}
mes "[Lark]";
mes "Do you like being able to carry a lot of items at once?";
next;
switch(select("Yes", "No")) {
case 1:
++.@swordman_p;
++.@merchant_p;
break;
case 2:
++.@magician_p;
++.@taekwon_p;
break;
}
mes "[Lark]";
mes "Do you like reading books?";
next;
switch(select("Yes", "No")) {
case 1:
++.@taekwon_p;
++.@gunslinger_p;
break;
case 2:
++.@ninja_p;
++.@merchant_p;
break;
}
mes "[Lark]";
mes "Do you read everything in a magazine?";
next;
switch(select("Yes", "No")) {
case 1:
++.@magician_p;
break;
case 2:
++.@archer_p;
++.@gunslinger_p;
break;
}
mes "[Lark]";
mes "Do you take the time to worry about what you are wearing?";
next;
switch(select("Yes", "No")) {
case 1:
++.@merchant_p;
++.@ninja_p;
break;
case 2:
++.@swordman_p;
++.@thief_p;
break;
}
mes "[Lark]";
mes "Do you tell others what kind of fancy foods you've eaten recently?";
next;
switch(select("Yes", "No")) {
case 1:
++.@thief_p;
++.@swordman_p;
break;
case 2:
++.@acolyte_p;
++.@taekwon_p;
break;
}
mes "[Lark]";
mes "Do you write things down in a notebook often?";
next;
switch(select("Yes", "No")) {
case 1:
++.@magician_p;
++.@merchant_p;
break;
case 2:
++.@thief_p;
++.@archer_p;
break;
}
mes "[Lark]";
mes "Do you consider yourself attractive?";
next;
switch(select("Yes", "No")) {
case 1:
++.@ninja_p;
++.@gunslinger_p;
break;
case 2:
++.@acolyte_p;
++.@swordman_p;
break;
}
mes "[Lark]";
mes "Do you like being in areas where a lot of people gather?";
next;
switch(select("Yes", "No")) {
case 1:
++.@acolyte_p;
++.@swordman_p;
break;
case 2:
++.@archer_p;
++.@ninja_p;
break;
}
mes "[Lark]";
mes "Do you like the idea of living a single life?";
next;
switch(select("Yes", "No")) {
case 1:
++.@thief_p;
++.@ninja_p;
break;
case 2:
++.@acolyte_p;
break;
}
mes "[Lark]";
mes "Do you like keeping your distance from others?";
next;
switch(select("Yes", "No")) {
case 1:
++.@gunslinger_p;
++.@archer_p;
break;
case 2:
++.@taekwon_p;
break;
}
mes "[Lark]";
mes "Do you think that having a good hiding space is important in battle?";
next;
switch(select("Yes", "No")) {
case 1:
++.@magician_p;
++.@gunslinger_p;
++.@archer_p;
break;
case 2:
++.@taekwon_p;
++.@magician_p;
break;
}
mes "[Lark]";
mes "Would you defend your friends even if you knew they were wrong?";
next;
switch(select("Yes", "No")) {
case 1:
++.@swordman_p;
break;
case 2:
++.@thief_p;
++.@ninja_p;
break;
}
mes "[Lark]";
mes "Would you try to convince an enemy not to fight you with logic?";
next;
switch(select("Yes", "No")) {
case 1:
++.@archer_p;
++.@merchant_p;
break;
case 2:
++.@acolyte_p;
++.@archer_p;
break;
}
mes "[Lark]";
mes "Can you sit still in the same place for a long time?";
next;
switch(select("Yes", "No")) {
case 1:
++.@taekwon_p;
++.@thief_p;
break;
case 2:
++.@archer_p;
++.@gunslinger_p;
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:
++.@swordman_p;
++.@merchant_p;
break;
case 2:
++.@magician_p;
++.@thief_p;
break;
}
mes "[Lark]";
mes "Do you make up nicknames for your friends?";
next;
switch(select("Yes", "No")) {
case 1:
++.@gunslinger_p;
++.@archer_p;
break;
case 2:
++.@acolyte_p;
++.@gunslinger_p;
break;
}
mes "[Lark]";
mes "Do you always have a plan B for various situations?";
next;
switch(select("Yes", "No")) {
case 1:
++.@thief_p;
++.@gunslinger_p;
break;
case 2:
++.@gunslinger_p;
++.@merchant_p;
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:
++.@magician_p;
break;
case 2:
++.@ninja_p;
++.@archer_p;
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;
.@max = .@points[0];
for(.@i = 1; .@i<9; ++.@i) {
if (.@points[.@i] >= .@max) {
.@max = .@points[.@i];
.@ele = .@i;
}
}
.@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:
.@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:
.@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:
.@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:
.@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:
.@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:
.@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:
.@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:
.@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:
.@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;
.@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;
.@str$ = "^A62A2A'"+strcharinfo(0)+"^000000'! Take care and may Freya bless you on your journey.";
switch(.@who_job) {
case 1:
mes "[Lark]";
mes "We will send you";
mes "to the swordman guild in Izlude, the Satelite city.";
mes .@str$;
mes "Good bye.";
close2;
savepoint "izlude",128,98; // Old coordinates: (95,104)
warp "izlude_in",74,167;
end;
case 2:
mes "[Lark]";
mes "We will send you";
mes "to the magician guild in Geffen, the Magical City.";
mes .@str$;
mes "Good bye.";
close2;
savepoint "geffen",119,37;
warp "geffen_in",163,98;
end;
case 3:
mes "[Lark]";
mes "We will send you";
mes "to the Archer Guild in Payon, the city of mountains.";
mes .@str$;
mes "Good bye.";
close2;
savepoint "payon",256,242;
warp "payon_in02",64,65;
end;
case 4:
mes "[Lark]";
mes "We will send you";
mes "to the merchant guild in Alberta, the Port City.";
mes .@str$;
mes "Good bye.";
close2;
savepoint "alberta",30,232;
warp "alberta_in",62,44;
end;
case 5:
mes "[Lark]";
mes "We will send you";
mes "to the thief guild in Morocc, the desert city.";
mes .@str$;
mes "Good bye.";
close2;
savepoint "morocc",150,99;
warp "moc_prydb1",99,185;
end;
case 6:
mes "[Lark]";
mes "We will send you";
mes "to the Prontera, the capital city of the Rune-Midgarts Kingdom.";
mes .@str$;
mes "Good bye.";
close2;
savepoint "prontera",117,72;
warp "prt_church",172,19;
end;
case 7:
mes "[Lark]";
mes "We will send you";
mes "to the Phoenix in Payon, the city of mountains.";
mes .@str$;
mes "Good bye.";
close2;
savepoint "payon",164,58;
warp "payon",163,141;
end;
case 8:
mes "[Lark]";
mes "You will be sent to the flyship";
mes "in Izlude, the Satelite city.";
mes "You can get on the flyship to go to Einbroch, the city of industries.";
mes .@str$;
mes "Good bye.";
close2;
savepoint "izlude",128,98; // Old coordinates: (95,104)
warp "izlude",128,67;
end;
case 9:
mes "[Lark]";
mes "We will send you";
mes "to the captain of the smuggling ship.";
mes "You can move to Amatsu";
mes "with the captain's help.";
mes .@str$;
mes "Good bye.";
close2;
savepoint "alberta",117,56;
warp "alberta",171,132;
end;
default:
mes "[Lark]";
mes "An error has occurred. If you keep having the same problem, please contact the local GM team.";
close;
}
}
new_1-3,106,50,4 duplicate(NvLark) Job Guide Lark#01 4_M_KID1
new_2-3,106,50,4 duplicate(NvLark) Job Guide Lark#02 4_M_KID1
new_3-3,106,50,4 duplicate(NvLark) Job Guide Lark#03 4_M_KID1
new_4-3,106,50,4 duplicate(NvLark) Job Guide Lark#04 4_M_KID1
new_5-3,106,50,4 duplicate(NvLark) Job Guide Lark#05 4_M_KID1