//===== Hercules Script ======================================
//= Sage Job Quest
//===== By: ==================================================
//= jAthena (0.9) - I guess
//= Unknown Translator (1.0)
//= Darkchild (1.2)
//===== Current Version: =====================================
//= 2.8
//===== Description: =========================================
//= [Official Conversion]
//= Job quest for Sage classes
//===== Additional Comments: =================================
//= 2.1 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
//= No longer uses function "F_BlockHigh"
//= 2.2 Small bug fix (== -> !=) thanks to Saithis. [L0ne_W0lf]
//= 2.2b ANotehr smaLL bugfix, pointed out by Cara. [L0ne_W0lf]
//= 2.3 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
//= 2.4 Fixes bug with first room monsters not being reset. [L0ne_W0lf]
//= 2.4a Deleted unused variables. [Samuray22]
//= 2.5 Updated waiting room. (Removes global var) [L0ne_W0lf]
//= 2.5a Corrected some "mes"s without the getitemname. (bugreport:1564) [Samuray22]
//= -Changed an incorrect "!=" to "==". (bugreport:1572)
//= -And Small Typo Error
//= 2.6 Fixed Kayron Grik cutin not being removed as reported by jc1991, bugreport:1825 [Brainstorm]
//= 2.6a Fixed a Little Bug with Whispers Summoned in the Last Test. (bugreport:2253) [Samuray22]
//= 2.7 Added Quest Log commands. [Kisuka]
//= 2.8 Removed the need for use of 'goto.' [L0ne_W0lf]
//============================================================
yuno_in02,38,61,5 script Dean of the Academy#sa 2_M_SAGE_OLD,{
cutin "job_sage_kayron",2;
mes "[Kayron Grik]";
if (Upper == 1) {
mes "Haha, I have seen many people";
mes "but it seems you possess special power and abilities.";
next;
mes "[Kayron Grik]";
mes "You'd better leave and increase your reputation.";
mes "Never forget that once you also used to be a novice.";
close2;
cutin "job_sage_kayron",255;
end;
}
if (BaseJob != Job_Mage) {
if (BaseJob == Job_Sage) {
mes "What brings you here? Is there anything bothering you recently?";
mes "Although you're already a Sage, that doesn't mean you can stop studying.";
next;
mes "[Kayron Grik]";
mes "Our knowledge is the mainspring of activity which helps the kingdom to be developed faster.";
mes "Please keep this in mind: you must study and record everything you've discovered so that all in the kingdom may benefit.";
}
else if (BaseJob == Job_Novice) {
mes "Hahah, so my little Novice, what brings you this way? ...I guess you're on a sightseeing trip?";
mes "You must have had a really hard time to reach this place. I must say, you seem interested in the Sage class.";
next;
mes "[Kayron Grik]";
mes "If you aspire to become a Sage, you must first live life as a Mage. Only then shall you have a chance.";
mes "I am looking forward seeing you again.";
}
else {
mes "*Chuckle* Although we've been studying this world for a long time, I know that studying in itself will fulfill all the needs of the people.";
mes "Other classes are just as important to the welfare of Rune-Midgarts...";
next;
mes "[Kayron Grik]";
mes "However, if you happen to meet a Sage down the road, I hope you will lend him your assistance.";
mes "And if you do, he shall repay you in kind...";
}
close2;
cutin "job_sage_kayron",255;
end;
}
if (SAGE_Q == 0) {
cutin "job_sage_kayron",2;
mes "Welcome, young one. I can see that you're intrigued by the wonders of magic.";
mes "So what kind of business brings you to me?";
next;
switch(select("I would like to be a Sage.:Let me know about the Sage job change.:Nothing.")) {
case 1:
mes "[Kayron Grik]";
mes "Hm? Do you wish to become a Sage?";
mes "Well then, I would like to suggest a few things that are required of a Sage.";
next;
mes "[Kayron Grik]";
mes "Sages are those who promote the development of this continent through the endless studying and recording of all knowledge related to this world.";
mes "Becoming a Sage is more than just a costume change: It's an important job where you must be always aware of your duty and responsibility to the people.";
next;
mes "[Kayron Grik]";
mes "You may want to enter an enrollment application to the Schweicherbil Magic Academy.";
mes "I believe they can explain in detail what you need to become a Sage.";
break;
case 2:
mes "[Kayron Grik]";
mes "Sage job change...hmm...an interesting turn of phrase, I must say.";
mes "Although that is what we say, it is very inappropriate to think of becoming a Sage as merely changing a job.";
next;
mes "[Kayron Grik]";
mes "In order to be a Sage, you must enter an application to the Schweicherbil Magic Academy.";
mes "You will then take the entrance examination.";
next;
mes "[Kayron Grik]";
mes "After the examination, you will be assigned to study a specific subject...";
mes "and finally, you will submit your dissertation to the university.";
next;
mes "[Kayron Grik]";
mes "I am the one who evaluates your dissertation.";
mes "When you pass all the courses, you will become a Sage.";
next;
mes "[Kayron Grik]";
mes "Please visit the Schweicherbil Magic Academy.";
mes "A young Sage named Metheus Sylphe will accept your application.";
break;
case 3:
mes "[Kayron Grik]";
mes "I see...Well, seeing as you have leisure time to spare, I encourage you to peruse as many books as you can.";
mes "You can find and research every worldly matter within their pages.";
next;
mes "[Kayron Grik]";
mes "Ah yes, you can not become the most intelligent person merely by reading all the books around you...";
mes "However, for a Sage such as myself, the knowledge found in books is most important.";
}
close2;
cutin "job_sage_kayron",255;
end;
}
else if (SAGE_Q == 15) {
if (countitem(1550) > 0) {
if (JobLevel < 40) {
SAGE_Q = 0;
mes "You don't seem to be qualified yet.";
mes "Remember, you must reach at least job level 40 to become a Sage.";
close2;
cutin "job_sage_kayron",255;
end;
}
if (SkillPoint) {
mes "You possess remaining skill points...";
mes "Before you submit your dissertation, please take care this matter first.";
close2;
cutin "job_sage_kayron",255;
end;
}
mes "Ho~ So? Did you finally complete your dissertation? Well done.";
mes "Let me see.";
next;
mes "[Kayron Grik]";
mes "Hmm...";
next;
mes "[Kayron Grik]";
mes "Huh...";
next;
mes "[Kayron Grik]";
mes "Interesting...";
next;
mes "[Kayron Grik]";
mes "Although it's roughly written, it's well done for a beginner.";
mes "Ah yes...you seem to be proficient in studying.";
next;
completequest 2052;
callfunc "Job_Change",Job_Sage;
callfunc "F_ClearJobVar";
mes "[Kayron Grik]";
mes "Congratulations! You have now become a Sage.";
mes "Always remember to keep a studious and analytical mindset.";
next;
mes "[Kayron Grik]";
mes "Also, keep this dissertation and treat it with care, since it is one and only book you have written.";
mes "You may have need of it one of these days. And it shall forever remind of this grandiose moment.";
next;
mes "[Kayron Grik]";
mes "Well then...May God fill your path with knowledge.";
mes "Study with diligence!!";
}
else {
mes "Hmm? What has happened to you? Where did you leave your dissertation?";
mes "Please bring it to me so that you may pass the test.";
next;
mes "[Kayron Grik]";
mes "Wait...you didn't lose it, did you?";
mes "Well...that's your business. It is regrettable that you won't be able to get a chance to write a book anymore.";
}
}
else {
mes "*Chuckle* Becoming a Sage isn't as simple as you may have assumed.";
mes "You cannot become a Sage because your magic skills are inadequate...";
next;
mes "[Kayron Grik]";
mes "Study diligently, and return when you finish your dissertation.";
mes "Until then, farewell!";
}
close2;
cutin "",255;
end;
}
yuno_in03,154,35,4 script Staff of the Academy#a 2_M_SAGE_B,{
mes "[Metheus Sylphe]";
if (Upper == 1) {
mes "Welcome to the";
mes "Schweicherbil Magic";
mes "Academy. W-wait a second...";
mes "Do I know you from somewhere?";
next;
mes "[Metheus Sylphe]";
mes "We've met before, haven't";
mes "we? Oh gosh, I must sound";
mes "pretty crazy. I'm sorry, I guess it's because I haven't been";
mes "sleeping too well? Oh well,";
mes "have a good day, adventurer~";
close;
}
if (BaseJob != Job_Mage) {
if (BaseJob == Job_Sage) {
mes "Oh nice to meet you again, long time no see.";
mes "So how's it going with the studying?";
next;
mes "[Metheus Sylphe]";
mes "It's okay to study books and magic scrolls all day, ";
mes "but you must go outside and fight with monsters as much as you can in order to be a well experienced Sage.";
next;
mes "[Metheus Sylphe]";
mes "If you know any Sage candidates, please give them some advice...";
mes "Also, please give my regards to your colleagues as well.";
}
else if (BaseJob == Job_Novice) {
mes "Welcome to the Schweicherbil Magic Academy.";
next;
mes "[Metheus Sylphe]";
mes "This place is specialized in Sage class training. Mostly, what we do is study about monsters and magic spells.";
mes "We always welcome new students.";
next;
mes "[Metheus Sylphe]";
mes "People who are at job jevel 40 as Mage class are qualified to apply for enrollment.";
mes "By passing selected courses, we will then approve them as Sages.";
next;
mes "[Metheus Sylphe]";
mes "If you're interested in the Sage class, please come again.";
mes "And have a good day.";
}
else {
mes "Welcome to the Schweicherbil Magic Academy.";
next;
mes "[Metheus Sylphe]";
mes "This place is specialized in Sage class training. What we do is study about monsters and magic spells.";
mes "People who are at job jevel 40 as Mage class are qualified to apply for enrollment.";
next;
mes "[Metheus Sylphe]";
mes "If you have any Mage friends, please let them know about this academy.";
mes "Have a good day.";
}
close;
}
if (SAGE_Q == 0) {
mes "Welcome to the Schweicherbil Magic Academy.";
mes "Oh, You're a Mage. How may I assist you?";
next;
switch(select("Let me know about the Sage job change.:I want to enroll in the school.:Nothing.")) {
case 1:
mes "[Metheus Sylphe]";
mes "I see. Do you wish to become a Sage?";
mes "Unfortunately, we are not in charge of changing your job to the Sage class.";
next;
mes "[Metheus Sylphe]";
mes "After you enter this academy and pass certain courses...";
mes "you will receive official approval to conduct studies as a Sage.";
next;
mes "[Metheus Sylphe]";
mes "For this reason, we do not speak of this proccess as a job change, but as graduation.";
mes "Anyway, if you enter your application for this academy, I will inform you about the registration fee and will let you take the test.";
next;
mes "[Metheus Sylphe]";
mes "For your information, if you bring ^3355FFOld Magicbook^000000 and ^3355FFNecklace of Wisdom^000000, ";
mes "you don't have to pay for the Registration Fee to enroll in the school.";
next;
mes "[Metheus Sylphe]";
mes "After you register, you will be able to take the entrance test.";
mes "If you pass the test, you will write a thesis for a given subject.";
next;
mes "[Metheus Sylphe]";
mes "The Dean of the academy will decide whether or not you are qualified.";
mes "If you're granted admission, you will be able to join in study and research activities as a Sage.";
next;
mes "[Metheus Sylphe]";
mes "You're always welcome to join us.";
mes "Have a good day.";
close;
case 2:
mes "[Metheus Sylphe]";
mes "I see, you want to join the academy. Once again, welcome to the Schweicherbil Magic Academy.";
next;
mes "[Metheus Sylphe]";
mes "People who have already met the basic requirement by reaching at Mage job level 40 are qualified for enrollment.";
mes "A small registration fee will also be required.";
next;
mes "[Metheus Sylphe]";
mes "The registration fee is 70,000 zeny.";
mes "However, if you bring ^3355FFOld Magicbook^000000 and ^3355FFNecklace of Wisdom^000000, you will be exempt from this fee.";
next;
mes "[Metheus Sylphe]";
mes "So, do you wish to apply immediately?";
next;
switch(select("Yes, I do.:The fee is much too expensive.:I will come back later.")) {
case 1:
if (JobLevel < 40) {
mes "[Metheus Sylphe]";
mes "I'm sorry, but you haven't met the basic requirements yet.";
mes "Please go study more and reach Mage job level 40 first.";
close;
}
if (SkillPoint) {
mes "[Metheus Sylphe]";
mes "You have unused skill points left. Please go learn all those skills you've been planning to learn.";
mes "We do not accept any ambiguous candidates.";
close;
}
mes "[Metheus Sylphe]";
mes "Very well. Let's complete your application form.";
mes "Please put your signature here.";
next;
select(strcharinfo(0));
mes "[Metheus Sylphe]";
mes "Your name is ... " + strcharinfo(0) + ". It's a very nice name.";
next;
if (JobLevel == 50) {
mes "[Metheus Sylphe]";
mes "Oh, you've mastered the Mage job! You're great!! *Clap Clap Clap*";
mes "In reward for your great effort, you will be exempt from the registration fee!";
next;
mes "[Metheus Sylphe]";
mes "Yes, everything's ready.";
mes "Next, you will take an entrance test.";
SAGE_Q = 4;
setquest 2041;
next;
mes "[Metheus Sylphe]";
mes "Please visit Professor Claytos.";
mes "He's in the left room.";
close;
}
mes "[Metheus Sylphe]";
mes "Will you pay the registration fee with 70,000 zeny?";
mes "Or will you give me ^3355FFOld Magicbook^000000 and ^3355FFNecklace of Wisdom^000000?";
next;
if (select("Pay 70,000 zeny.:Give him Old Magicbook and Necklace of Wisdom.") == 1) {
if (Zeny > 69999) {
Zeny -= 70000;
mes "[Metheus Sylphe]";
mes "Thank you, your application has been accepted.";
mes "Next, you will take an entrance test.";
SAGE_Q = 4;
setquest 2041;
next;
mes "[Metheus Sylphe]";
mes "Please visit Professor Claytos.";
mes "He's in the left room.";
close;
}
mes "[Metheus Sylphe]";
mes "What a shame! It seems you didn't bring enough money for tuition.";
mes "Please make sure you have at least 70,000 zeny to enroll in classes.";
close;
}
if (countitem(1006) > 0 && countitem(1007) > 0) {
delitem 1006,1; //Old_Magic_Book
delitem 1007,1; //Penetration
mes "[Metheus Sylphe]";
mes "Thank you, your application has been accepted.";
mes "Next, you will take the entrance test.";
SAGE_Q = 4;
setquest 2041;
next;
mes "[Metheus Sylphe]";
mes "Please visit Professor Claytos.";
mes "He's in the left room.";
close;
}
mes "[Metheus Sylphe]";
mes "Umm...It seems you didn't bring any of those?";
mes "I suppose you left them somewhere behind. Please go get them, and then come back.";
close;
case 2:
if (JobLevel < 40) {
mes "[Metheus Sylphe]";
mes "Before we talk about the registration fee, it seems you haven't met the basic requirement yet, Mage job level 40.";
mes "Please go study more, and then come back to enroll.";
close;
}
if (JobLevel == 50) {
mes "[Metheus Sylphe]";
mes "Well, I can't help you with that issue. If you don't have the fee, you are not allowed to enter the academy.";
mes "Even if you might think it's absurdly expensive, it's a justifiable price to pay in order to become a Sage.";
next;
mes "[Metheus Sylphe]";
mes "Anyway... oh! You mastered the Mage job! You're truly exemplary!! *Clap Clap Clap*.";
mes "As a reward for your great effort, you will be exempt from the registration fee!";
next;
mes "[Metheus Sylphe]";
mes "Okay, let's complete the application form.";
mes "Please put your signature here.";
next;
select(strcharinfo(0));
mes "[Metheus Sylphe]";
mes "Your name is ... " + strcharinfo(0) + ". It's a very nice name.";
next;
mes "[Metheus Sylphe]";
mes "Yes, everything's ready.";
mes "Next, you will take the entrance test.";
SAGE_Q = 4;
setquest 2041;
next;
mes "[Metheus Sylphe]";
mes "Please visit professor Claytos.";
mes "He's in the left room.";
close;
}
if (Zeny > 43210) {
mes "[Metheus Sylphe]";
mes "Well, I can't help you with that issue. If you don't have the fee, you are not allowed to enter the academy.";
mes "Even if you may think it's absurdly expensive, it's a justifiable price to pay in order to become a Sage.";
next;
mes "[Metheus Sylphe]";
mes "Alternatively, you could try to find ^3355FFOld Magicbook^000000 and ^3355FFNecklace of Wisdom^000000.";
mes "If you don't wish to do that, you must save some money for the registration fee.";
next;
mes "[Metheus Sylphe]";
mes "Goodbye, and have a good day.";
close;
}
else {
mes "[Metheus Sylphe]";
mes "Oh, I guess you don't have enough money?";
mes "Under the existing provisions, you must pay 70,000 zeny for the application...";
next;
if (select("Please...is there any way?:Ok, I will come back later.") == 1) {
mes "[Metheus Sylphe]";
mes "Hmmm...then I shall offer a special option!";
mes "You will pay 30,000 zeny and bring some items as compensation for the tuition discount.";
next;
switch(rand(1,3)) {
case 1:
SAGE_Q = 1;
setquest 2043;
mes "[Metheus Sylphe]";
mes "Please gather the following items.";
mes "50 ^3355FFFeather of Birds^000000";
mes "50 ^3355FFFluff^000000";
mes "25 ^3355FFIron Ore^000000";
next;
mes "[Metheus Sylphe]";
mes "If you bring those items, your tuition will be 30,000 zeny, in lieu of the original 70,000 zeny fee.";
break;
case 2:
SAGE_Q = 2;
setquest 2044;
mes "[Metheus Sylphe]";
mes "Please gather the following items.";
mes "50 ^3355FFClover^000000";
mes "50 ^3355FFFeather^000000";
mes "25 ^3355FFSquid Ink^000000";
next;
mes "[Metheus Sylphe]";
mes "If you bring the aforementioned items, the tuition fee will be 30,000 zeny, rather than the original 70,000 zeny fee.";
break;
case 3:
SAGE_Q = 3;
setquest 2045;
mes "[Metheus Sylphe]";
mes "Please gather the following items.";
mes "50 ^3355FFFeather of Birds^000000";
mes "50 ^3355FFFluff^000000";
mes "50 ^3355FFClover^000000";
mes "50 ^3355FFFeather^000000";
next;
mes "[Metheus Sylphe]";
mes "If you bring those items, your tuition will only be 30,000 zeny, instead of the original 70,000 zeny fee.";
}
mes "I am sure it's a very reasonable option for you.";
next;
mes "[Metheus Sylphe]";
mes "Ah yes, before gathering all of those items, if you happen to have 70,000 zeny, I will be more than happy to receive the full payment.";
mes "That is, after all, our original policy.";
next;
mes "[Metheus Sylphe]";
mes "Alternatively, you can bring me ^3355FFOld Magicbook^000000 and ^3355FFNecklace of Wisdom^000000.";
mes "Goodbye, and have a good day.";
close;
}
mes "[Metheus Sylphe]";
mes "Ah yes, take your time...";
mes "Goodbye, and have a good day.";
close;
}
case 3:
mes "[Metheus Sylphe]";
mes "Ah yes, take your time...";
mes "Goodbye, and have a good day.";
close;
}
case 3:
mes "[Metheus Sylphe]";
mes "I see, take your time. You can also take a look around.";
mes "Goodbye, and have a good day.";
close;
}
}
else if (SAGE_Q >= 1 && SAGE_Q <= 3) {
mes "Welcome, once again.";
next;
if (countitem(1006) > 0 && countitem(1007) > 0) {
delitem 1006,1; //Old_Magic_Book
delitem 1007,1; //Penetration
mes "[Metheus Sylphe]";
mes "Well done. Let me proceed with your application request.";
SAGE_Q = 4;
next;
}
else if (Zeny > 69999) {
Zeny -= 70000;
mes "[Metheus Sylphe]";
mes "Well done. Let me proceed with your application request.";
SAGE_Q = 4;
next;
}
else {
switch (SAGE_Q) {
case 1:
//Feather_Of_Bird, Fluff, Iron_Ore
setarray .@item[0], 916,914,1002;
setarray .@count[0], 50,50,25;
break;
case 2:
//Clover, Feather, Chinese_Ink
setarray .@item[0], 705,949,1024;
setarray .@count[0], 50,50,25;
break;
case 3:
//Feather_Of_Bird, Fluff, Clover, Feather
setarray .@item[0], 916,914,705,949;
setarray .@count[0], 50,50,50,50;
break;
}
.@size = (getarraysize(.@item)-1);
for (.@i = 0 ; .@i < .@size && countitem(.@item[.@i]) >= .@count[.@i] ; ++.@i);
if(.@i == .@size) {
if (Zeny > 29999) {
for (.@i = 0; .@i < .@size ; ++.@i)
delitem .@item[.@i], .@count[.@i];
Zeny -= 30000;
mes "[Metheus Sylphe]";
mes "Well done. Let me proceed with your application request.";
.@SAGE_Q_T = SAGE_Q;
SAGE_Q = 4;
next;
}
mes "[Metheus Sylphe]";
mes "I am sorry to say that you are not ready yet.";
mes "Although you brought all of the items, the money you have now is less than 30,000 zeny.";
next;
mes "[Metheus Sylphe]";
mes "As I told you before, you must bring all of those items, as well as the 30,000 zeny together.";
mes "Please make sure that you have the required items and money.";
close;
}
else {
mes "[Metheus Sylphe]";
mes "I am sorry to say that it seems you didn't bring all of the required items.";
mes "I shall remind you what to bring, in case you have forgotten.";
next;
mes "[Metheus Sylphe]";
mes "Please bring the following items to me.";
mes .@count[0]+" ^3355FF"+getitemname(.@item[0])+"^000000";
mes .@count[1]+" ^3355FF"+getitemname(.@item[1])+"^000000";
mes .@count[2]+" ^3355FF"+getitemname(.@item[2])+"^000000";
if (SAGE_Q == 3) mes .@count[3]+" ^3355FF"+getitemname(.@item[3])+"^000000";
next;
mes "[Metheus Sylphe]";
mes "If you bring all of these items, your tuition fee will be reduced from 70,000 zeny to 30,000 zeny.";
mes "Good luck.";
close;
}
}
mes "[Metheus Sylphe]";
mes "Let's complete the application form.";
mes "Please put your signature here.";
next;
select(strcharinfo(0));
mes "[Metheus Sylphe]";
switch (.@SAGE_Q_T) {
case 1: mes "Your name is ... " + strcharinfo(0) + ". It's a very nice name."; break;
case 2: mes "Your name is ... " + strcharinfo(0) + ". It sounds very sagacious."; break;
case 3: mes "Your name is ... " + strcharinfo(0) + ". Interesting name."; break;
}
next;
mes "[Metheus Sylphe]";
mes "Ah yes, everything is in readiness.";
mes "Next, you will take an entrance test.";
SAGE_Q = 4;
if (questprogress(2043)) {
changequest 2043,2041;
}
else if (questprogress(2044)) {
changequest 2044,2041;
}
else if (questprogress(2045)) {
changequest 2045,2041;
}
else {
setquest 2041;
}
next;
mes "[Metheus Sylphe]";
mes "Please visit Professor Claytos.";
mes "He's in the left room.";
close;
}
else if (SAGE_Q == 4) {
mes "Huh? What are you doing here? You're supposed to be taking the entrance test by now.";
mes "Please visit Professor Claytos in the left room.";
close;
}
else if (SAGE_Q == 15) {
mes "Oh, are you done with the dissertation?";
mes "Sure, you can submit it to Dean Kayron.";
next;
mes "[Metheus Sylphe]";
mes "So long as you make the effort, you should achieve good results.";
mes "Good luck.";
close;
}
else {
mes "Oh sorry, this is a rather inconvenient time to converse.";
mes "Please come back later. I apologize for troubling you.";
close;
}
}
yuno_in03,105,177,5 script Written Test Professor#s 4_M_SAGE_A,{
mes "[Claytos Verdo]";
if (BaseJob != Job_Mage) {
if (BaseJob == Job_Sage) {
mes "Eh? What? Why are you back here?";
mes "Do you want to enter the school again?";
next;
mes "[Claytos Verdo]";
mes "Now, I understand how you feel. Since you graduated, you have become a Sage. A Sage...until the end of your days.";
mes "So, be strong and independent. Try to explore some places where nobody else has ventured to go.";
next;
mes "[Claytos Verdo]";
mes "Don't forget to record everything you've experienced.";
mes "You must share your knowledge with others by taking excellent notes.";
}
else if (BaseJob == Job_Novice) {
mes "What are you doing here, kid?";
mes "This is a Magic Academy, not a day care center.";
next;
mes "[Claytos Verdo]";
mes "Go outside and play with the Porings. That's your job.";
mes "Go out, chop chop!!";
}
else if (Class == Job_Wizard) {
mes "Well...look who came crawling back. Magic addict.";
mes "Yeah yeah, so it's not so bad to be devoted to magic.";
next;
mes "[Claytos Verdo]";
mes "But I hope you remember, no one can live alone.";
mes "Although you're strong enough for solo play, you must cooperate and help other people. That's what a Wizard shoud stand for.";
}
else {
mes "Hmm... I understand that you want to enter our prestigious academy, but since you chose to live as a different class,";
mes "I don't think you can become a Sage.";
next;
mes "[Claytos Verdo]";
mes "So, don't go around regretting why you chose a job other than Sage. You'd better go out and hunt, leveling up your current job.";
}
close;
}
if (SAGE_Q == 0) {
mes "What, do you want to be a Sage?";
mes "I can tell by your eyes, hungering for wisdom.";
next;
mes "[Claytos Verdo]";
mes "Of course, if you want to be a Sage, you must first enter the academy.";
mes "Apply for enrollment, and then come again.";
close;
}
else if (SAGE_Q == 1 || SAGE_Q == 2 || SAGE_Q == 3) {
mes "Hah! You didn't even finish the application process!?";
mes "I see...did Metheus tell you something?";
next;
mes "[Claytos Verdo]";
mes "Do your best. It'll be a good experience for you.";
mes "Come again when you finish the application.";
close;
}
else if (SAGE_Q == 4) {
mes "Welcome to the Schweicherbil Magic Academy.";
mes "You applied for this test already, didn't you?";
next;
mes "[Claytos Verdo]";
mes "Let's see, your name is " + strcharinfo(0) + "...";
mes "Okay, let's get started!";
next;
mes "[Claytos Verdo]";
mes "The test that I am going to give you will test your knowledge on all of the academic subjects in the world.";
mes "I will give you 20 questions, with each question being worth 5 points. When you earn a grade of 80 points, you will pass the test.";
next;
mes "[Claytos Verdo]";
mes "Okay, there's no need to wait. Let's start right away";
mes "Oh, and if you don't answer immediately, the test will be cancelled.";
L_AskQuestions:
next;
switch(rand(1,3)) {
case 1:
mes "1. Choose an item that the Gift merchant in Prontera does not sell.";
next;
if (select("China:Red Frame:Bouquet:Glass Bead") == 3)
.@sage_t += 5;
mes "2. Choose a city where you cannot purchase a Stiletto.";
next;
if (select("Prontera:Morroc:Geffen:Lutie") == 1)
.@sage_t += 5;
mes "3. Choose the closest city to Turtle Island.";
next;
if (select("Al De Baran:Alberta:Comodo:Izlude") == 2)
.@sage_t += 5;
mes "4. Choose the monster that is a different type than the others.";
next;
if (select("Raggler:Pest:Frilldora:Aster") == 4)
.@sage_t += 5;
mes "5. Choose the monster that has a different attribute than the others.";
next;
if (select("Mantis:Metaller:Rocker:Horn") == 2)
.@sage_t += 5;
mes "6. Choose the monster that is different sized than the others.";
next;
if (select("Raydric:Raydric Archer:Wanderer:Dark Frame") == 1)
.@sage_t += 5;
mes "7. Choose the monster which doesn't drop 'Alcohol'.";
next;
if (select("Horong:Plankton:Poison Spore:Toad") == 3)
.@sage_t += 5;
mes "8. Choose the NPC that is irrelevant to the Knight job change quest.";
next;
if (select("Sir Siracuse:Thomas Servantes:Sir Windsor:Lady Amy") == 2)
.@sage_t += 5;
mes "9. Choose the NPC that is not a citizen of Prontera.";
next;
if (select("Tono:Pina:YuPi:Hollgrehenn") == 2)
.@sage_t += 5;
mes "10. Choose the right name for the Kafra lady who wears glasses.";
next;
if (select("Pavianne:Roxie:Leilah:Curly Sue") == 3)
.@sage_t += 5;
mes "11. How much SP is spent to use lvl 7 Thunderstorm?";
next;
if (select("49:59:69:74") == 2)
.@sage_t += 5;
mes "12. Choose the right amount of damage reduction and SP consumption of the Energy Coat skill when the caster's remaining SP is 50%.";
next;
if (select("Damage -24% SP1.5%:Damage -24% SP2%:Damage -18% SP1.5%:Damage -18% SP2%") == 4)
.@sage_t += 5;
mes "13. Choose the property that is irrelevant to 'Bolt' type skills for the Mage class.";
next;
if (select("Water:Earth:Fire:Wind") == 2)
.@sage_t += 5;
mes "14. Choose the right chance and attack strength for lvl 7 Double Attack, the Thief skill.";
next;
if (select("35% / 120%:35% / 140%:40% / 120%:40% / 140%") == 2)
.@sage_t += 5;
mes "15. Choose the skill that is irrelevant to learning Magnus Exorcismus, the Priest skill.";
next;
if (select("Divine Protection:Heal:Ruwach:Aqua Benedicta") == 1)
.@sage_t += 5;
mes "16. Choose the correct defense and ability of the Bunny Band.";
next;
if (select("1 / LUK +2:1 / LUK +5:2 / LUK +2:2 / LUK +5") == 3)
.@sage_t += 5;
mes "17. Choose the class that cannot equip Padded Armor.";
next;
if (select("Swordman:Merchant:Thief:Archer") == 4)
.@sage_t += 5;
mes "18. Choose the item that cures all abnormal status and restores full HP and SP at the same time.";
next;
if (select("Royal Jelly:Yggdrasil Seed:Yggdrasilberry:Mastella Fruit") == 3)
.@sage_t += 5;
mes "19. Who rules the Rune-Midgarts kingdom right now?";
next;
if (select("Tristun the 3rd:Tristram the 3rd:Tristar the 3rd:Trast the 3rd") == 2)
.@sage_t += 5;
mes "20. Choose the god of Crusaders.";
next;
if (select("Odin:Loki:Thor:Venadin") == 1)
.@sage_t += 5;
break;
case 2:
mes "1. Choose the jewel that the Morroc Jewel Merchant does not sell.";
next;
if (select("Topaz:Garnet:Diamond:Sapphire") == 2)
.@sage_t += 5;
mes "2. Choose the city where users cannot purchase Monster's Feed from an NPC.";
next;
if (select("Prontera:Morroc:Al De Baran:Alberta") == 3)
.@sage_t += 5;
mes "3. Choose the closest city to the Maze.";
next;
if (select("Prontera:Morroc:Geffen:Payon") == 1)
.@sage_t += 5;
mes "4. Choose the monster that is a different type than the others.";
next;
if (select("Muka:Drops:Plankton:Penomena") == 4)
.@sage_t += 5;
mes "5. Choose the monster with the different attribute.";
next;
if (select("Dokebi:Isis:Giearth:Deviruchi") == 3)
.@sage_t += 5;
mes "6. Choose the monster that is different in size.";
next;
if (select("Thiefbug (Aggressive):Horn:Metaller:Argos") == 4)
.@sage_t += 5;
mes "7. Choose the monster which does not drop 'Yggdrasil Leaf'.";
next;
if (select("Marduk:Baphomet Jr.:Angeling:Wanderer") == 1)
.@sage_t += 5;
mes "8. Choose the NPC that is irrelevant to the Priest job change quest.";
next;
if (select("Paul:Sir Windsor:Peter S. Alberto:Cecilia") == 2)
.@sage_t += 5;
mes "9. Choose the NPC that is not a citizen of Morroc.";
next;
if (select("Syvia:Akira:Antonio:Dmitrii") == 3)
.@sage_t += 5;
mes "10. Choose the Kafra lady who has gorgeous blue hair.";
next;
if (select("Pavianne:Roxie:Leilah:Curly Sue") == 1)
.@sage_t += 5;
mes "11. Choose the skill that is irrelevant to learning Fire Wall, the Mage skill.";
next;
if (select("lvl 4 Fire Bolt:lvl 4 Napalm Beat:lvl 5 Fire Ball:lvl 1 Sight") == 2)
.@sage_t += 5;
mes "12. How much SP can be restored when learning SP recovery at lvl 6 (without being affected by INT)?";
next;
if (select("14:16:18:21") == 3)
.@sage_t += 5;
mes "13. How many INT points does a Mage receive as a bonus at job lvl 33?";
next;
if (select("7:6:5:4") == 4)
.@sage_t += 5;
mes "14. Choose the correct SP consumption and the skill duration for Improve Concentration lvl 5 (Archer skill).";
next;
if (select("45 / 80 sec:50 / 80 sec:45 / 90 sec:50 / 90 sec") == 1)
.@sage_t += 5;
mes "15. Choose the skill that is irrelevant to learning Maximize Power, the Blacksmith skill.";
next;
if (select("Hilt Binding:Skin Tempering:Hammer Fall:Weapon Perfection") == 2)
.@sage_t += 5;
mes "16. What is the correct defense rate and ability of Cute Ribbon?";
next;
if (select("0 / SP +20:0 / SP +30:1 / SP +20:1 / SP +30") == 3)
.@sage_t += 5;
mes "17. Choose the class that cannot equip Saint Robe.";
next;
if (select("Swordman:Merchant:Thief:Acolyte") == 3)
.@sage_t += 5;
mes "18. Choose the abnormal status that cannot be cured by Green Potion.";
next;
if (select("Silence:Chaos:Blind:Curse") == 4)
.@sage_t += 5;
mes "19. Choose the correct name for the ancient kingdom that disappeared somewhere in Geffen.";
next;
if (select("Geffayon:Geffenia:Gefenn:Jaffen") == 2)
.@sage_t += 5;
mes "20. Choose the correct name for the tree that has become the root of this world.";
next;
if (select("Yggdrasil:Iggdrassil:Mastella:Dead Branch") == 1)
.@sage_t += 5;
break;
case 3:
mes "1. Choose the item that the Magical Tool merchant in Geffen does not sell.";
next;
if (select("Mantle:Wand:Circlet:Silver Robe") == 1)
.@sage_t += 5;
mes "2. Choose the city where users cannot purchase Blade from an NPC.";
next;
if (select("Prontera:Izlude:Al De Baran:Payon") == 3)
.@sage_t += 5;
mes "3. Choose the closest city to Glast Heim.";
next;
if (select("Prontera:Geffen:Morroc:Payon") == 2)
.@sage_t += 5;
mes "4. Choose the monster that is a different type than the others.";
next;
if (select("Aster:Marc:Marse:Marin") == 4)
.@sage_t += 5;
mes "5. Choose the monster that has a different attribute.";
next;
if (select("Baby Desert Wolf:Smokie:Picky:Choco") == 2)
.@sage_t += 5;
mes "6. Choose the monster that is different sized.";
next;
if (select("Drake:Wraith:Evil Druid:Khalitzburg") == 1)
.@sage_t += 5;
mes "7. Choose the monster that does not drop 'Phracon'.";
next;
if (select("Pupa:Peco Peco Egg:Savage Bebe:Baby Desert Wolf") == 2)
.@sage_t += 5;
mes "8. Choose the NPC that is irrelevant to the Blacksmith job change quest.";
next;
if (select("Altiregen:Geschupenschte:Barcadi:Baisulist") == 3)
.@sage_t += 5;
mes "9. Choose the NPC that is not a citizen of Al De Baran.";
next;
if (select("RS125:GOD-POING:Stromme:Chemirre") == 2)
.@sage_t += 5;
mes "10. Choose the Kafra lady who is the youngest among the staff.";
next;
if (select("Pavianne:Roxie:Leilah:Curly Sue") == 4)
.@sage_t += 5;
mes "11. Choose the correct SP consumption and the number of evasions when using Safety Wall lvl 6.";
next;
if (select("SP 40, 6 times:SP 35, 6 times:SP 40, 7 times:SP 35, 7 times") == 3)
.@sage_t += 5;
mes "12. Choose the correct amount of magic attack for Napalm Beat lvl 6.";
next;
if (select("MATK * 1.2:MATK * 1.3:MATK * 1.4:MATK * 1.5") == 2)
.@sage_t += 5;
mes "13. Choose the catalyst stone for Mage Solution no. 4 that is used for the Mage job change quest.";
next;
if (select("Blue Gemstone:Red Gemstone:Yellow Gemstone:1 carat Diamond") == 4)
.@sage_t += 5;
mes "14. Choose the correct attack strength and SP consumption for Bash lvl 6, the Swordman skill.";
next;
if (select("250% / 8:280% / 8:280% / 15:310% / 15") == 3)
.@sage_t += 5;
mes "15. Choose the skill that is irrelevant to learning Claymore Trap, the Hunter skill.";
next;
if (select("Remove Trap:Land Mine:Ankle Snare:Flasher") == 1)
.@sage_t += 5;
mes "16. Choose the correct defense and ability of Wedding Veil.";
next;
if (select("0 / MDEF +3:0 / MDEF +5:1 / MDEF +3:1 / MDEF +5") == 2)
.@sage_t += 5;
mes "17. Choose the class that cannot equip Coat.";
next;
if (select("Swordman:Merchant:Thief:Novice") == 4)
.@sage_t += 5;
mes "18. Choose the item that is not an ingredient for Blue Dyestuffs.";
next;
if (select("Alcohol:Detrimindexta:Karvodailnirol:Blue Herb") == 3)
.@sage_t += 5;
mes "19. When the world was created by the god Odin, what did he use for the material?";
next;
if (select("The heart of Ymir:The nail of Ymir:The tooth of Ymir:The memento of Ymir") == 1)
.@sage_t += 5;
mes "20. Choose the metal that has rumored to bring fortune and fame to a person with the destiny.";
next;
if (select("Empelium Gold:Emperium:Emperor:Phracon") == 2)
.@sage_t += 5;
}
mes "[Claytos Verdo]";
if (SAGE_Q == 4) {
mes "Well, you answered all 20 of the questions.";
mes "Okay, let me check your answers and add up your score.";
}
else {
mes "Well, we finished all 20 questions.";
mes "Now, let's check how many points you got.";
}
next;
mes "[Claytos Verdo]";
mes "Let's see...";
mes "Hmm... hmm...";
next;
mes "[Claytos Verdo]";
mes "You got " + .@sage_t + " points.";
if (.@sage_t == 100) {
if (SAGE_Q == 4)
mes "Excellent! You seem fully qualified to become a Sage!";
else
mes "Excellent! You must have studed really hard for this test!";
SAGE_Q = 6;
changequest 2041,2046;
next;
mes "[Claytos Verdo]";
mes "You have passed the written test.";
mes "Go visit Professor Hermes for the practical examination.";
}
else if (.@sage_t >= 80) {
SAGE_Q = 6;
changequest 2041,2046;
mes "Yeah, not bad. I assume that you will at least understand what you're going to learn in class.";
next;
mes "[Claytos Verdo]";
mes "You passed the written test.";
mes "Go visit Professor Hermes for the practical examination.";
}
else {
if (SAGE_Q == 4) {
SAGE_Q = 5;
mes "Oh well...what a shame: You failed.";
next;
mes "[Claytos Verdo]";
mes "But I'll give you another chance to take the written test,";
mes "Go study harder and come back later.";
}
else {
mes "Oh what a shame: You failed.";
next;
mes "[Claytos Verdo]";
mes "But I'll give you another chance,";
mes "Go study even harder and come back.";
}
}
close;
}
else if (SAGE_Q == 5) {
mes "Welcome back.";
mes "So, did you study harder this time?";
next;
mes "[Claytos Verdo]";
mes "You will take the written test under the same conditions as the test you took before. I'll give you 20 questions.";
mes "Each correct answer will give you 5 points. When your score reaches 80 points, you pass the test.";
next;
sage_m2 = rand(1,3);
mes "[Claytos Verdo]";
mes "Okay, there's no need to wait.";
mes "Answer immediately, or I'll fail you again.";
SAGE_Q = 5;
goto L_AskQuestions;
end;
}
else if (SAGE_Q == 6) {
mes "What else do you want?! Do you want to take this test again?";
mes "You've already passed!";
next;
mes "[Claytos Verdo]";
mes "Go visit Professor Hermes for the practical examination.";
mes "Move!";
close;
}
else if (SAGE_Q == 15) {
mes "Heh heh, It seems you're done with your dissertation.";
mes "But I'm not the person handling that part of the test.";
next;
mes "[Claytos Verdo]";
mes "submit your thesis to Dean Kayron.";
mes "He will decide whether you are qualified to graduate or not.";
close;
}
else {
mes "I'm too busy to take care of written tests.";
mes "Come back later, and I'll spare some time to talk.";
close;
}
}
//Practical Examination Professer
yuno_in03,169,180,3 script Practical Examination P 4_M_SAGE_C,{
mes "[Hermes Tris]";
if (BaseJob != Job_Mage) {
if (BaseJob == Job_Sage) {
mes "Welcome. How have you been?";
mes "I guess you've been through a lot of hard times...I can tell by your appearance.";
next;
mes "[Hermes Tris]";
mes "I know how hard it is to explore all those perilous areas, but it will help you to gain more knowledge.";
mes "Book smarts never can beat street smarts.";
next;
mes "[Hermes Tris]";
mes "However, it's a very dangerous idea to go deep inside a dungeon alone. ";
mes "You'd better look for trustworthy comrades.";
}
else if (BaseJob == Job_Novice) {
mes "Heh heh, now ain't that a cute little Novice?";
next;
mes "[Hermes Tris]";
mes "In this continent of Rune-Midgarts, there are a lot of unknown places and objects that haven't been fully discovered.";
mes "The monsters, mysterious objects and heroes of myths...";
next;
mes "[Hermes Tris]";
mes "Why don't you consider being a Sage in the future?";
mes "You will love studying the world.";
next;
mes "[Hermes Tris]";
mes "If by chance you do decide to do that, we'll meet again.";
mes "Take care, kiddy.";
}
else {
mes "Welcome to the Schweicherbil Magic Academy.";
next;
mes "[Hermes Tris]";
mes "We Sages are more like scholars than Mages.";
mes "We are very helpful and powerful as members of a party.";
next;
mes "[Hermes Tris]";
mes "Try to make a party with a Sage next time.";
mes "The wisdom a Sage will bring will be more than helpful for your party...";
}
close;
}
if (SAGE_Q >= 0 && SAGE_Q <= 3) {
mes "I am Professor Hermes, in charge of practical examinations.";
mes "Are you a candidate for the Sage class?";
next;
mes "[Hermes Tris]";
mes "Register your application and take the written test first.";
close;
}
else if (SAGE_Q == 4 || SAGE_Q == 5) {
mes "I am professor Hermes, in charge of practical examinations.";
mes "Are you a candidate for the Sage class?";
next;
mes "[Hermes Tris]";
mes "Go pass the written test with Professor Claytos first.";
mes "Then I will take care of you.";
close;
}
else if (SAGE_Q == 6) {
mes "Welcome, you just passed the written test, didn't you?";
mes "Now it's time for the practical examination.";
next;
mes "[Hermes Tris]";
mes "There is nothing difficult or special about this test.";
mes "All you have to do is kill all the monsters within the time limit.";
next;
mes "[Hermes Tris]";
mes "It's better to experience this for yourself, rather than be told about this test 100 times.";
mes "How about it? Are you ready to take this test?";
next;
if (select("Yes, I am.:Sorry, give me some time.") == 1) {
SAGE_Q = 7;
mes "[Hermes Tris]";
mes "Good, let's start immediately.";
mes "Do your best and come back safely!";
close2;
warp "job_sage",50,154;
end;
}
SAGE_Q = 7;
mes "[Hermes Tris]";
mes "Yes, you don't need to hurry... take your time and come back.";
close;
}
else if (SAGE_Q == 7) {
mes "Welcome again! So, did you fully prepare yourself this time?";
mes "Oh well, it's not that hard. Give it your all, okay?";
next;
mes "[Hermes Tris]";
mes "Are you ready?";
next;
if (select("Yes, I am.:Sorry, give me some time.") == 1) {
mes "[Hermes Tris]";
mes "Good, let's start immediately.";
mes "Do your best and come back safely!";
close2;
warp "job_sage",50,154;
end;
}
mes "[Hermes Tris]";
mes "Yes, you don't need to hurry... take your time and come back.";
close;
}
else if (SAGE_Q == 8) {
mes "Good job~ Since you passed the practical examination as well...";
mes "I'll accept your admission.";
next;
mes "[Hermes Tris]";
mes "Now I need to decide what subject you will learn and study...";
mes "Let's see... let me check your written test grade and the time spent on the practical examination.";
next;
mes "[Hermes Tris]";
mes "Hmm, hmm... I see.";
mes "Well... I think you're okay.";
next;
switch(rand(1,3)) {
case 1:
SAGE_Q = 9;
changequest 2046,2047;
mes "[Hermes Tris]";
mes "Now, you will study Yggdrasil.";
mes "Yggdrasil is the tree that was rumored to be the source of life for this world.";
next;
mes "[Hermes Tris]";
mes "That is a good subject which helps us to recognize changes in the world, as well as the direction of its improvement.";
mes "Go ask for help from Professor Saphien. He's in the Lecture Room.";
next;
mes "[Hermes Tris]";
mes "I wish you luck.";
close;
case 2:
SAGE_Q = 11;
changequest 2046,2048;
mes "[Hermes Tris]";
mes "Now, you will study monsters.";
mes "The purpose of this study is to learn and understand more about creatures existing all over the continent.";
next;
mes "[Hermes Tris]";
mes "This is a good subject which will help you lead your life as a well-experienced Sage.";
mes "Go ask for help from Professor Lucius. He's in the Monster Museum.";
next;
mes "[Hermes Tris]";
mes "I wish you luck.";
close;
case 3:
SAGE_Q = 13;
changequest 2046,2049;
mes "[Hermes Tris]";
mes "Now, you will study magic skills that have certain properties.";
mes "The purpose of this study is to better understand basic magic skills that we use in everyday life.";
next;
mes "[Hermes Tris]";
mes "That is a good subject which helps you to deeply understand of the truth of magic.";
mes "Go ask Professor Aebecee for help...He's in the Somatology Laboratory.";
next;
mes "[Hermes Tris]";
mes "I wish you luck.";
close;
}
}
else if (SAGE_Q == 9) {
mes "Huh? Didn't you understand what I said?";
mes "I told you to study Yggdrasil.";
next;
mes "[Hermes Tris]";
mes "Go ask for help from Professor Saphien. He's in the Lecture Room.";
close;
}
else if (SAGE_Q == 11) {
mes "Huh? Didn't you understand what I said?";
mes "I told you to study monsters.";
next;
mes "[Hermes Tris]";
mes "Go ask for help from Professor Lucius. He's in the Monster Museum.";
close;
}
else if (SAGE_Q == 13) {
mes "Huh? Didn't you understand what I said?";
mes "I told you to study magic spells that possess certain properties.";
next;
mes "[Hermes Tris]";
mes "Go ask a help from Professor Aebecee. He's in the Somatology Laboratory.";
close;
}
else if (SAGE_Q == 15) {
mes "What are you doing here? Aren't you supposed to be with Dean Kayron?";
mes "Oh well, there's no harm in showing me your dissertation though...";
next;
mes "[Hermes Tris]";
mes "But then again, maybe there is. Go see Dean Kayron.";
close;
}
else {
mes "Oh sorry, I'm quite busy at the moment...";
mes "If you have any questions, go visit the professor I've assigned to you.";
close;
}
}
yuno_in03,62,176,2 script History Professor#sa 4_M_MANAGER,{
mes "[Saphien Layless]";
if (BaseJob != Job_Mage) {
if (BaseJob == Job_Sage) {
mes "Do I know you? Were you one of my students?";
mes "Oh, it doesn't matter anyway. You wouldn't be a Sage without graduating from this academy...";
next;
mes "[Saphien Layless]";
mes "In any case, you must study the past in order to better understand the present and to predict...the future.";
mes "This sentence contains all the truth of the world.";
next;
mes "[Saphien Layless]";
mes "I guess you're treading the right path...";
mes "One of these days you'll look back to this moment and realize it changed your life.";
}
else if (BaseJob == Job_Novice) {
mes "A Novice? Why is a novice here?";
next;
mes "[Saphien Layless]";
mes "One whose life has many possibilities... ";
mes "How do you wish to lead your life?";
next;
mes "[Saphien Layless]";
mes "No matter what you decide to be, everything depends on your choice.";
mes "May God bless you so that you can choose the path best for you...";
}
else {
mes "Welcome, I am in charge of historical studies here in the academy.";
next;
mes "[Saphien Layless]";
mes "The world as we know it is a result of events that described in the records of the ages. It is historical events that have shaped the world as it is today.";
mes "Therefore, knowing the past means you will better understand the present and...the future.";
next;
mes "[Saphien Layless]";
mes "Reflect upon your past.";
mes "You will see your path in the future...";
}
close;
}
if (SAGE_Q == 9) {
if (SAGE_Q2 == 0) {
mes "Welcome, " + strcharinfo(0) + ". I am glad to meet you.";
mes "My name is Saphien Layless, I will be in charge of your class for a while.";
next;
mes "[Saphien Layless]";
mes "The subject you're studying is Yggdrasil.";
mes "So...do you even know what Yggdrasil is?";
next;
switch(select("Yes, I know very well.:No, I don't.")) {
case 1:
mes "[Saphien Layless]";
mes "Okay then, what is Yggdrasil?";
mes "Please answer me.";
next;
switch(select("It's a name of a health item.:It's the source of life in the world.:Suckah, I lied.")) {
case 1:
mes "[Saphien Layless]";
mes "Wrong. " + strcharinfo(0) + ", you got - 10 points.";
mes "That's just one of the gifts from Yggdrasil.";
next;
mes "[Saphien Layless]";
mes "Yggdrasil is the name of the tree that is the source of life in this world.";
break;
case 2:
mes "[Saphien Layless]";
mes "That's right. Yggdrasil, the so-called 'World Tree', ";
mes "is the name of the tree that has been the source of life in this world.";
break;
case 3:
mes "[Saphien Layless]";
mes "Great Schott...If you don't know, just say so.";
mes "By the way, " + strcharinfo(0) + ", you just got - 10 points for lying and for being wrong.";
break;
}
next;
break;
case 2:
mes "[Saphien Layless]";
mes "Ah well, I expected you would know at least a little bit about Yggdrasil...";
mes "Yggdrasil is the name of the tree that is the source of life in this world.";
next;
break;
}
mes "[Saphien Layless]";
mes "Before we start the class, I'll need some reserve items.";
mes "It's for better understanding of Yggdrasil.";
next;
mes "[Saphien Layless]";
mes "Anything is fine as long as it's related to the Yggdrasil tree.";
mes "Seeds or fruits of the tree would be good. I know it's difficult to find, but please try.";
next;
SAGE_Q2 = 1;
changequest 2047,2050;
mes "[Saphien Layless]";
mes "When we have the reserve items, we will start the class.";
mes "Please come back.";
close;
}
else {
if (countitem(607) > 0) {
mes "[Saphien Layless]";
mes "Oh, did you bring them with you? Excellent!";
mes "You brought Yggdrasilberry!";
next;
mes "[Saphien Layless]";
mes "Okay, now I am starting the class.";
mes "Listen carefully, I will not accept dozing off in the middle of class.";
next;
}
else if (countitem(608) > 0) {
mes "[Saphien Layless]";
mes "Hmm, did you prepare for class? Let's see...";
mes "Oh! So you brought me the Yggdrasil Seed?";
next;
mes "[Saphien Layless]";
mes "Very well. Now I am starting the class..";
mes "Listen carefully, I will not accept dozing off in the middle of class.";
next;
}
else if (countitem(610) > 0) {
mes "[Saphien Layless]";
mes "Hmm, did you prepare for class? Let's see...";
mes "Yggdrasil Leaf...";
next;
mes "[Saphien Layless]";
mes "You can purchase this item from the town of Al De Baran! You didn't show any effort.";
mes "So, I must give you - 10 points, " + strcharinfo(0) + ".";
next;
mes "[Saphien Layless]";
mes "Okay, now I am starting the class.";
mes "Listen carefully, I will not accept you dozing off in the middle of class, or any more slacking.";
next;
}
else {
mes "[Saphien Layless]";
mes "Huh? You're not ready to this class yet!";
mes "I told you to bring me any items related Yggdrasil.";
next;
mes "[Saphien Layless]";
mes "Tell me when you're ready.";
mes "Don't worry about being late, we professors are paid to wait around.";
close;
}
mes "[Saphien Layless]";
mes "The root of this world, Yggdrasil, is a gigantic tree.";
mes "It takes root all over the continent of Rune-Midgarts and its leaves reach the sky.";
next;
mes "[Saphien Layless]";
mes "Outside of this continent, there is a ocean where a giant snake named Yormungandr is coiled up.";
mes "The world as we know it consists of 3 places: Asgard, Midgard and Utgard.";
next;
mes "[Saphien Layless]";
mes "Utgard is where all the titans live.";
next;
mes "[Saphien Layless]";
mes "Midgard is where all human beings live.";
next;
mes "[Saphien Layless]";
mes "And Asgard is where the gods reside...";
mes "An ash tree taking root in the middle of the Rune-Midgarts continent, that is Yggdrasil.";
next;
mes "[Saphien Layless]";
mes "This continent was born from the heart of Ymir, and Yggdrasil holds the continent together by grasping it with its 3 roots.";
mes "These roots stretch into 3 different places.";
next;
mes "[Saphien Layless]";
mes "The first root reaches Asgard where the gods live and ";
mes "where we, mere humans, haven't yet explored or experienced.";
next;
mes "[Saphien Layless]";
mes "The second root reaches Jotunnheim where all the giants live.";
mes "We've been told this name many times through myths and legends.";
next;
mes "[Saphien Layless]";
mes "The third one reaches Niflheim.";
mes "That place is rumored to be covered with a thick, black fog.";
next;
mes "[Saphien Layless]";
mes "Items, such as Seed of Yggdrasil, Yggdrasilbrry and Leaf of Yggdrasil are";
mes "considered a part of Yggdrasil tree.";
next;
mes "[Saphien Layless]";
mes "Yggdrasilberry has a fascinating scent that is rumored to";
mes "restore full HP and SP at once.";
next;
mes "[Saphien Layless]";
mes "The seed of Yggdrasil which has the fragrance of a blooming flower and the flavor of nut is rumored to";
mes "restore half of HP and SP at once.";
next;
mes "[Saphien Layless]";
mes "The leaf of Yggdrasil which is filled with vital force is rumored to";
mes "revive the dead, bringing them back to this world.";
next;
mes "[Saphien Layless]";
mes "Lastly... if by some chance you discover a way into Asgard in the future, ";
mes "I hope you will find the Yggdrasil tree.";
next;
mes "[Saphien Layless]";
mes "Even though the story of the Yggdrasil tree only exists in myths and legends, ";
mes "we Sages are obligated to discover the truth of the Yggdrasil tree.";
next;
mes "[Saphien Layless]";
mes "That is the end of today's class.";
mes "Please record the articles you've learned today, and try to remember as much as you can.";
next;
mes "[Saphien Layless]";
mes "In the next class, you will write a thesis about Yggdrasil...";
mes "Please bring the following items to prepare for class.";
next;
mes "[Saphien Layless]";
mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
mes "^3355FF1 Empty Bottle^000000 which will be used for holding the squid ink.";
next;
SAGE_Q2 = 0;
SAGE_Q = 10;
changequest 2050,2051;
mes "[Saphien Layless]";
mes "I will help you to write your thesis when you're ready with all those items.";
mes "I am looking forward to the next class with you.";
close;
}
}
else if (SAGE_Q == 10) {
if (countitem(916) > 0 && countitem(919) > 0 && countitem(1019) > 0 && countitem(1024) > 0 && countitem(713) > 0) {
delitem 916,1; //Feather_Of_Birds
delitem 919,1; //Animal's_Skin
delitem 1019,1; //Wooden_Block
delitem 1024,1; //Chinese_Ink
delitem 713,1; //Empty_Bottle
mes "Now, you're writing your thesis.";
mes "I will assist you with your writing.";
next;
mes "..........";
next;
mes "....................";
next;
mes ".................................";
next;
mes ".....There is a ocean around the continent,";
mes "The ocean is coiled up by";
switch(select("A giant ash tree.:A giant snake Yormungandr.:A giant turtle and elephants.:A giant dragon.")) {
case 1:
.@w_point += 1;
mes "A giant ash tree.";
break;
case 2:
mes "A giant snake Yormungandr.";
break;
case 3:
.@w_point += 1;
mes "A giant turtle and elephants.";
break;
case 4:
.@w_point += 1;
mes "A giant dragon.";
break;
}
mes "The continent consists of three places such as,";
switch(select("Mt.Mjolnir, where spiders live,:Uranos, where titans live,:Utgard, where titans live,:Lutie, the winter land,")) {
case 1:
.@w_point += 1;
mes "Mt.Mjolnir where spiders live,";
break;
case 2:
.@w_point += 1;
mes "Uranos where titans live,";
break;
case 3:
mes "Utgard where titans live,";
break;
case 4:
.@w_point += 1;
mes "Lutie, the winter land,";
break;
}
switch(select("Midgard, where humans live,:Rune-Midgarts where humans live,:Tritonia, where mermaids live,:Morroc, the desert city,")) {
case 1:
mes "Midgard, where humans live in,";
break;
case 2:
.@w_point += 1;
mes "Rune-Midgarts, where humans live,";
break;
case 3:
.@w_point += 1;
mes "Tritonia, where mermaids live,";
break;
case 4:
.@w_point += 1;
mes "Morroc, the desert city,";
break;
}
switch(select("Abguard, where gods live.:Asgard, where gods live.:Schwarzwald, where citizens live.:Prontera, the capital of Rune-Midgarts.")) {
case 1:
.@w_point += 1;
mes "Abguard where gods live.";
break;
case 2:
mes "Asgard, where gods live.";
break;
case 3:
.@w_point += 1;
mes "Schwarzwald, where citizens live.";
break;
case 4:
.@w_point += 1;
mes "Prontera, the capital of Rune-Midgarts.";
break;
}
mes "The continent consists of the three places stated above.";
next;
if (.@w_point > 0) {
mes "[Saphien Layless]";
mes "..." + strcharinfo(0) + ", have you lost your mind?";
mes "Your work is too poor to be considered as a thesis!";
next;
mes "[Saphien Layless]";
mes "I don't think you can submit your work to the dean.";
mes "Go study harder and try again!";
close;
}
mes ".....as we studied from the last class,";
mes "Yggdrasil is...";
switch(select("A giant ash tree.:A fabulous Mastella tree.:A giant willow.:A giant dead branch.")) {
case 1:
mes "A giant ash tree.";
break;
case 2:
.@w_point += 1;
mes "A fabulous Mastella tree.";
break;
case 3:
.@w_point += 1;
mes "A giant willow.";
break;
case 4:
.@w_point += 1;
mes "A giant dead branch.";
break;
}
mes "The root of Yggdrasil is divided into 3 parts. Those parts reach to 3 places...";
switch(select("Schwarzwald, Jotunnheim, Niflheim.:Midgard, Jotunnheim, Naffleheim.:Asgard, Jotunnheim, Naffleheim.:Asgard, Jotunnheim, Niflheim.")) {
case 1:
.@w_point += 1;
mes "Schwarzwald, Jotunnheim, Niflheim.";
break;
case 2:
.@w_point += 1;
mes "Midgard, Jotunnheim, Naffleheim.";
break;
case 3:
.@w_point += 1;
mes "Asgard, Jotunnheim, Naffleheim.";
break;
case 4:
mes "Asgard, Jotunnheim, Niflheim.";
break;
}
mes "One who has a Seed of Yggdrasil,";
switch(select("can be cured from all the abnormal statuses.:can restore full HP and SP at once.:can restore half of total HP and SP.:can be cured from Silence, Curse and Chaos.")) {
case 1:
.@w_point += 1;
mes "can be cured from all the abnormal statuses.";
break;
case 2:
.@w_point += 1;
mes "can restore full HP and SP at once.";
break;
case 3:
mes "can restore half of total HP and SP.";
break;
case 4:
.@w_point += 1;
mes "can be cured from Silence, Curse and Chaos.";
break;
}
next;
if (.@w_point > 0) {
mes "[Saphien Layless]";
mes "..." + strcharinfo(0) + ", have you lost your mind?";
mes "Your work is too poor to be considered as a thesis!";
next;
mes "[Saphien Layless]";
mes "I don't think you can submit your work to the dean.";
mes "Go study harder and try again!";
close;
}
mes "..........";
next;
mes "....................";
next;
mes ".................................";
next;
SAGE_Q = 15;
changequest 2051,2052;
mes "[Saphien Layless]";
mes "Oh, did you finish already? Well done.";
mes "Please handle this with care, because you won't be able to do this ever again.";
getitem 1550,1; //Book
next;
mes "[Saphien Layless]";
mes "I assume you're ready to submit your work to the dean.";
mes "Whether you will pass the test or not is his decision.";
close;
}
else {
mes "I am not sure that you're ready to write a thesis.";
mes "I am afraid to say I already informed you of what you need.";
next;
mes "[Saphien Layless]";
mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
mes "^3355FF1 Empty Bottle^000000 which will be used for holding squid ink.";
next;
mes "[Saphien Layless]";
mes "I will assist you in writing your thesis.";
mes "Please bring all those items with you.";
close;
}
}
else if (SAGE_Q == 15) {
mes "Huh? Aren't you supposed to head over to the dean?";
mes "If you've finished writing your thesis, please bring it to the dean.";
next;
mes "[Saphien Layless]";
mes "You can have only one chance to write your thesis before you become a Sage.";
mes "So please move on.";
close;
}
else {
mes "I am not sure if you have business with me, but please come back later.";
mes "I have some issues to think about..";
close;
}
}
yuno_in03,32,102,1 script Biology Professor#sa 4_M_SAGE_C,{
mes "[Lucius Celsus]";
if (BaseJob != Job_Mage) {
if (BaseJob == Job_Sage) {
mes "What is your business with me?";
mes "You must make a reservation a week in advance if you have any questions.";
next;
mes "[Lucius Celsus]";
mes "You don't know how busy person I am...don't you?";
mes "If you're a Sage, you're supposed to know about me by now.";
next;
mes "[Lucius Celsus]";
mes "You have too much time on your hands. Go explore some dungeons.";
mes "I think it will be more helpful than wasting your time on me.";
}
else if (BaseJob == Job_Novice) {
mes "What brings you to me, kid?";
next;
mes "[Lucius Celsus]";
mes "You'd better go out and play with your pals. ";
mes "This is not a place where you can fool around.";
}
else {
mes "Hmm? What brings you to me? Are you interested in watching monsters?";
next;
mes "[Lucius Celsus]";
mes "You're allowed to watch. However, do not disturb them by making any fuss.";
mes "And keep your hands off, some of these guys are way too dangerous to touch.";
next;
mes "[Lucius Celsus]";
mes "By the way, if you catch any rare monsters in future, let me know.";
mes "I am willing to purchase those at any cost.";
}
close;
}
if (SAGE_Q == 11) {
if (SAGE_Q2 == 0) {
mes "Welcome to my class, did you earn good results in the practical exam?";
mes "My name is Lucius Celsus, the expert of Biology.";
next;
mes "[Lucius Celsus]";
mes "Huh...how rude of you! You're expected to introduce yourself to me as soon as I greet you!";
mes "What is your name, young one?";
next;
select(strcharinfo(0));
mes "[Lucius Celsus]";
mes "A fine name. It's nice to meet you.";
mes "So, are you aware of the subject you're studying?";
next;
mes "[Lucius Celsus]";
mes "As you know, your topic of study is monsters.";
mes "How many times have you fought with monsters?";
next;
if (select("Well, I can't even count.:A few times, I guess...") == 1) {
mes "[Lucius Celsus]";
mes "Oh shut up, you brat. Don't be so sure about yourself.";
mes "Even if you have much experience with monsters, you will have a hard time comprehending my lecture.";
}
mes "[Lucius Celsus]";
mes "Yes, that's what I guessed about you. You're just book smart.";
mes "However, I am sure you will encounter most of the monsters mentioned in my lecture.";
next;
sage_m4 = rand(1,3);
mes "[Lucius Celsus]";
mes "Let's get started.";
mes "Make sure you're ready for the practical examination during my lecture.";
next;
if (sage_m4 == 1) {
SAGE_Q2 = 1;
changequest 2048,2053;
mes "[Lucius Celsus]";
mes "Go bring the following items to me.";
mes "5 ^3355FFTentacle^000000,";
mes "5 ^3355FFSingle Cell^000000,";
mes "5 ^3355FFFish Tail^000000.";
}
else if (sage_m4 == 2) {
SAGE_Q2 = 2;
changequest 2048,2054;
mes "[Lucius Celsus]";
mes "Go bring the following items to me.";
mes "5 ^3355FFNipper^000000,";
mes "5 ^3355FFClam Flesh^000000,";
mes "5 ^3355FFHeart of Mermaid^000000.";
}
else {
SAGE_Q2 = 3;
changequest 2048,2054;
mes "[Lucius Celsus]";
mes "Go bring following items to me.";
mes "5 ^3355FFTendon^000000,";
mes "5 ^3355FFNipper^000000,";
mes "5 ^3355FFSharp Scale^000000.";
}
next;
mes "[Lucius Celsus]";
mes "I will proceed with the class when you bring those to me.";
mes "Have fun.";
close;
}
else if (SAGE_Q2 >= 1 && SAGE_Q2 <=3) {
switch(SAGE_Q2) {
case 1: setarray .@items[0],962,1052,1023; break;
//Nipper, Clam Flesh, Heart of Mermaid
case 2: setarray .@items[0],960,966,950; break;
//Tendon, Nipper, Sharp Scale
case 3: setarray .@items[0],1050,960,963; break;
}
if (countitem(.@items[0]) > 4 && countitem(.@items[1]) > 4 && countitem(.@items[2]) > 4) {
mes "You showed great effort to gather all of those.";
mes "Well, I am not sure if you gathered them by yourself or bought them from shops...";
next;
mes "[Lucius Celsus]";
mes "Somehow the monsters that drop those items have something in common.";
mes "Can you tell me what that similarity is?";
next;
switch(select("They possess water property.:They are fishes.:They are aggressive.:Um...they monsters.")) {
case 1:
mes "[Lucius Celsus]";
mes "Yes, they possess water property and at the same time they are fishes.";
mes "Most fish class monsters live underwater, so they are attributed with the water property.";
break;
case 2:
mes "[Lucius Celsus]";
mes "Yes, they possess water property and at the same time they are fishes.";
mes "Most fish class monsters live underwater, so they are attributed with the water property.";
break;
case 3:
sage_m4 = 4;
mes "[Lucius Celsus]";
mes "...I didn't know Phens were aggressive nowadays?";
mes "Or do Marina and Plankton team up to start a fight with you?";
next;
mes "[Lucius Celsus]";
mes "All the monsters from which you obtained these items are not agressive... get a grip.";
mes "They are all fishes and possess water property.";
break;
case 4:
sage_m4 = 4;
mes "[Lucius Celsus]";
mes "What...! What are you here for!? You are here to study about specific monsters, microcephalic moron!";
mes "Sigh...they are all fishes and possess water property.";
break;
}
next;
mes "[Lucius Celsus]";
mes "Not all fish class monsters possess water property, but most of them do.";
mes "So which kind of magic would work best on most fish class monsters?";
next;
switch(select("Lightening Bolt.:Fire Bolt.:Thunder Storm.:Frost Diver.")) {
case 1:
mes "[Lucius Celsus]";
mes "That's right, Lightening Bolt, which possesses the wind property, works best on water property monsters.";
mes "Although you might want to be careful of monsters that recognize magic casting.";
break;
case 2:
sage_m4 = 4;
mes "[Lucius Celsus]";
mes "What? Fire Bolt! Fire cannot beat water, you imbecile!";
mes "Most fishes are attributed with the water property. Therefore, they are weak to wind property magic spells. Don't you get it?";
break;
case 3:
mes "[Lucius Celsus]";
mes "Yeah, Thunder Storm spell is fine... it's a wind property spell.";
mes "However, you will be in trouble if you use the spell in a poorly chosen spot.";
break;
case 4:
sage_m4 = 4;
mes "[Lucius Celsus]";
mes "I can't fathom such stupidity! This question asks you to choose a property that counters water! Don't you get it?";
mes "Logically, any magic spell possessing the water property cannot overcome the water atrribute monsters!";
break;
}
next;
mes "[Lucius Celsus]";
mes "By the way, although some monsters such as Penomena or Aster are considered to be fish class monsters, ";
mes "they have a different property than the others. You'd better be careful with them.";
next;
mes "[Lucius Celsus]";
mes "Okay, let me teach you about insect monsters.";
mes "Let's see... hmm... hmm...";
next;
switch(rand(1,4)) {
case 1:
SAGE_Q2 = 4;
if (questprogress(2053)) {
changequest 2053,2056;
}
else if (questprogress(2054)) {
changequest 2054,2056;
}
else {
changequest 2055,2056;
}
mes "5 ^3355FFCobweb^000000,";
mes "5 ^3355FFShell^000000,";
mes "5 ^3355FFInsect Feeler^000000.";
break;
case 2:
SAGE_Q2 = 5;
if (questprogress(2053)) {
changequest 2053,2057;
}
else if (questprogress(2054)) {
changequest 2054,2057;
}
else {
changequest 2055,2057;
}
mes "5 ^3355FFHorn^000000,";
mes "5 ^3355FFSnail's Shell^000000,";
mes "5 ^3355FFMoth Dust^000000.";
break;
case 3:
SAGE_Q2 = 6;
if (questprogress(2053)) {
changequest 2053,2058;
}
else if (questprogress(2054)) {
changequest 2054,2058;
}
else {
changequest 2055,2058;
}
mes "5 ^3355FFMantis Scythe^000000,";
mes "5 ^3355FFWorm Peeling^000000,";
mes "5 ^3355FFRainbow Shell^000000.";
break;
case 4:
SAGE_Q2 = 7;
if (questprogress(2053)) {
changequest 2053,2059;
}
else if (questprogress(2054)) {
changequest 2054,2059;
}
else {
changequest 2055,2059;
}
mes "5 ^3355FFCobweb^000000,";
mes "5 ^3355FFMantis Scythe^000000,";
mes "5 ^3355FFSolid Shell^000000.";
}
next;
mes "[Lucius Celsus]";
mes "I will proceed with the class when you bring those to me.";
mes "Have fun.";
close;
}
mes "What, you already forgot what I told you just a minute before?";
mes "What a nusance... listen carefully this time.";
next;
mes "[Lucius Celsus]";
mes "5 ^3355FF"+getitemname(.@items[0])+"^000000,";
mes "5 ^3355FF"+getitemname(.@items[1])+"^000000,";
mes "5 ^3355FF"+getitemname(.@items[2])+"^000000,";
close;
}
else if (SAGE_Q2 >= 4 && SAGE_Q2 <= 7) {
switch(SAGE_Q2) {
case 4: setarray .@items[0],1025,935,928; break;
//Horn, Snail's Shell, Moth Dust
case 5: setarray .@items[0],947,946,1057; break;
//Mantis Scythe, Worm Peeling, Rainbow Shell
case 6: setarray .@items[0],1031,955,1013; break;
//Cobweb, Mantis Scythe, Solid Shell
case 7: setarray .@items[0],1025,1031,943; break;
}
if (countitem(.@items[0]) > 4 && countitem(.@items[1]) > 4 && countitem(.@items[2]) > 4) {
mes "Well done. So, did you watch insects while gathering those items?";
mes "Oh well, I believe you did a good job with the task.";
next;
mes "[Lucius Celsus]";
mes "Insect class monsters do not share the same property most of the time, ";
mes "You must think twice before you cast a magic spell on an insect.";
next;
mes "[Lucius Celsus]";
mes "It's remarkable that insects can detect hidden objects.";
mes "Therefore, any hiding skill such as the Hiding skill or Cloaking skill will not work on insect monsters.";
next;
mes "[Lucius Celsus]";
mes "Some insects form a group and live together.";
mes "They are controlled by the head of the group...";
next;
mes "[Lucius Celsus]";
mes "For instance, Maya the queen ant...";
mes "Mistress, the queen of hornets,";
mes "or Golden Thiefbug, the king of thiefbugs...";
next;
mes "[Lucius Celsus]";
mes "You cannot beat those boss monsters alone, ";
mes "you'd better form a party if you want to fight with them.";
next;
mes "[Lucius Celsus]";
mes "That's the end of my class...it's time for you to write a thesis.";
mes "Bring me following items for writing the thesis.";
next;
mes "[Lucius Celsus]";
mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
mes "^3355FF1 Empty Bottle^000000 which will be used for holding squid ink.";
next;
SAGE_Q2 = 0;
SAGE_Q = 12;
if (questprogress(2056)) {
changequest 2056,2051;
}
else if (questprogress(2057)) {
changequest 2057,2051;
}
else if (questprogress(2058)) {
changequest 2058,2051;
}
else {
changequest 2059,2051;
}
mes "[Lucius Celsus]";
mes "I will help you in writing the thesis when you bring all of those items.";
mes "You're almost there. Isn't learning easy?";
close;
}
mes "What, you already forgot what I told you?";
mes "What a nuisance...listen carefully this time.";
next;
mes "[Lucius Celsus]";
mes "5 ^3355FF"+getitemname(.@items[0])+"^000000,";
mes "5 ^3355FF"+getitemname(.@items[1])+"^000000,";
mes "5 ^3355FF"+getitemname(.@items[2])+"^000000,";
close;
}
mes "Zzz...Zzz...";
close;
}
else if (SAGE_Q == 12) {
if (countitem(916) > 0 && countitem(919) > 0 && countitem(1019) > 0 && countitem(1024) > 0 && countitem(713) > 0) {
delitem 916,1; //Feather_Of_Birds
delitem 919,1; //Animal's_Skin
delitem 1019,1; //Wooden_Block
delitem 1024,1; //Chinese_Ink
delitem 713,1; //Empty_Bottle
mes "Hmph. Lucky brat brought all of the items.";
mes "Well, I don't expect you to write an outrageously great thesis though...";
next;
mes "[Lucius Celsus]";
mes "Well, if you really want to write it by yourself, I can let you handle it but...";
mes "I will give you a work of staggering genius. Just make a copy of it under your name.";
next;
mes "[Lucius Celsus]";
mes "You got a problem with that? Tough, that's my style.";
mes "Just do what I say.";
next;
mes "..........";
next;
mes "....................";
next;
mes ".................................";
next;
select(".....Monsters vary by physical appearance,");
mes ".....Monsters vary by physical appearance,";
select("...and possess various elemental properties.");
mes "...and possess various elemental properties.";
select("You must be aware of each monster's properties,");
mes "You must be aware of each monster's properties,";
select("...and be aware that certain spells work differently on different monsters.");
mes "...and be aware that certain spells work differently on different monsters.";
select("You must be especially careful of holy property and shadow property monsters.");
mes "You must be especially careful of holy property and shadow property monsters.";
select("These monsters are most dangerous, though occasionally cute.");
mes "These monsters are most dangerous.";
next;
mes "..........";
next;
mes "....................";
next;
mes ".................................";
next;
SAGE_Q = 15;
changequest 2051,2052;
mes "[Lucius Celsus]";
mes "Are you done? Okay, then it's over.";
mes "You won't be able to write another thesis again, handle this with care.";
getitem 1550,1; //Book
next;
mes "[Lucius Celsus]";
mes "Show this masterpiece to the dean.";
mes "Then, he will let you graduate from the academy. See you.";
close;
}
else {
mes "What, are you sure that you're ready? No, I don't think so.";
mes "Oh well... listen carefully this time.";
next;
mes "[Lucius Celsus]";
mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
mes "^3355FF1 Empty Bottle^000000 which will be used for holding squid ink.";
next;
mes "[Lucius Celsus]";
mes "You have been doing fine, I guess you can do this without a problem.";
mes "Go get them. Hurry up.";
close;
}
}
else if (SAGE_Q == 15) {
mes "What are you doing here, Go show your thesis to the dean!";
mes "Don't wasn't any more time here.";
next;
mes "[Lucius Celsus]";
mes "It seems you have too much time on your hands. Okay, I will assign you some tasks.";
mes "Hahaha, did you say no? Alright then, fine. Scram.";
close;
}
else {
mes "Wah~! My brain is gonna blow up soon! Why must I have to prepare all of these things?!";
mes "Who are you?! Don't disturb me, I'm busy!!";
next;
mes "[Lucius Celsus]";
mes "If you just want to watch monsters here, fine with me...";
mes "Just don't ask me any questions.";
close;
}
}
yuno_in03,244,31,3 script Physics Professor#sa 2_M_PHARMACIST,{
mes "[Aebecee George]";
if (BaseJob != Job_Mage) {
if (BaseJob == Job_Sage) {
mes "Tee hee, hello there! What brings you here again, sweetie?";
mes "Oh, I see... you're just excited because you finally became a Sage? Tee hee~";
next;
mes "[Aebecee George]";
mes "Oh well, although you have become a Sage, you're just doing the same thing, tee hee...we're mages down to the core!";
mes "We're way better than any other class because we're pretty good with our heads, you know?";
next;
mes "[Aebecee George]";
mes "Okay, is there anything you want to talk about?";
mes "Oh dearie, don't be nervous...where's your sense of adventure?";
}
else if (BaseJob == Job_Novice) {
mes "Well, aren't you the cutest little Novice~";
next;
mes "[Aebecee George]";
mes "What are you doing here, sweetcakes? Do you just come over to see what's in here?";
mes "Do you want some candy? Candy, my precious? Tee hee.";
next;
mes "[Aebecee George]";
mes "Oh gosh...Sorry, I thought I had some...";
mes "But I've got other treats, you catch my drift?";
}
else {
mes "Hey there, tee hee, how's it going sailor?";
next;
mes "[Aebecee George]";
mes "Did you come here to look around? Huh...?";
mes "Well, if you're not here for business, you must be here...";
next;
mes "[Aebecee George]";
mes "...for PLEASURE.";
mes "Hey wait! Come back~!";
}
close;
}
if (SAGE_Q == 13) {
if (SAGE_Q2 == 0) {
mes "Hello~? Nice to meet you, tee hee.";
mes "Did you come to see me? Oh, you're a student!";
next;
mes "[Aebecee George]";
mes "Tee hee, I am the Professor in charge of you, Abecee George.";
mes "So...aren't you happy to be with me, dearie? Aren't you gay? Tee hee~";
next;
mes "[Aebecee George]";
mes "However, before we get start class, I need you to do me...a favor.";
mes "Don't be scared, its just an eensy weensy favor. Tee hee~";
next;
mes "[Aebecee George]";
mes "Please bring me ^3355FF30 Stone^000000, that's all.";
mes "It's not so hard, isn't it?";
next;
SAGE_Q2 = 1;
changequest 2049,2060;
mes "[Aebecee George]";
mes "Why don't you ask a thief pal for help?";
mes "We'll start the class when you bring me those stones~ Tee hee~";
close;
}
else if (SAGE_Q2 == 1) {
if (countitem(7049) > 29) {
mes "Oh~ how sweet! You brought them all~ thank you~";
mes "Oh, can you wait a little bit? I need to do something before we start. Tee hee~";
next;
mes "[Aebecee George]";
mes "Hocus-focus!!";
next;
mes "[Aebecee George]";
mes "Hocus~focus!!";
next;
mes "[Aebecee George]";
mes "Ho~cus~fo~cus!!";
next;
delitem 7049,30; //Stone
mes "[Aebecee George]";
mes "Tee hee, you naughty stone~";
mes "Only 3 of them worked for me. Tee hee~";
next;
mes "[Aebecee George]";
mes "Here's my other favor to ask of you. Oh, are those tears of...joy?";
mes "Oh, I'm sooo excited too! Tee hee~";
next;
getitem 991,1; //Crystal_Blue
getitem 993,1; //Yellow_Live
getitem 992,1; //Wind_Of_Verdure
mes "[Aebecee George]";
mes "I will give you these elemental ores...but...they are not for free.";
mes "Whoa there cowboy! Don't pull out so soon~ Listen, tee hee~";
SAGE_Q2 = 2;
changequest 2060,2061;
next;
mes "[Aebecee George]";
mes "Please make arrows using these items and bring them to me, pretty please~";
mes "50 ^3355FFCrystal Arrow^000000,";
mes "50 ^3355FFStone Arrow^000000,";
mes "50 ^3355FFWind Arrow^000000.";
next;
mes "[Aebecee George]";
mes "Ask any of your Archer friends if you know any.";
mes "I am looking forward to seeing you again, tee hee~";
close;
}
else {
mes "You don't have all the items? And here I was, getting all hot and bothered.";
mes "Go on, sweetheart, and hurry baaack~";
next;
mes "[Aebecee George]";
mes "I asked you to bring ^3355FF30 Stone^000000.";
mes "There are many out there, so you won't have too hard a time getting them~ tee hee.";
close;
}
}
else if (SAGE_Q2 == 2) {
if (countitem(1754) > 49 && countitem(1756) > 49 && countitem(1755) > 49) {
mes "Oh~ how sweet! You brought them all~ Oh thank you~";
mes "Well now, let's get down to business. Tee hee~";
next;
mes "[Aebecee George]";
mes "I'll say something, and you just write everything down.";
mes "Don't forget to underline the important sentences~";
next;
mes "[Aebecee George]";
mes "Water property magic is sooo strong against the fire property.";
mes "Just remember those burly, sexay fire fighters, shall we say, putting out that fire with water. Ooh, wet!";
next;
mes "[Aebecee George]";
mes "Wind property magic totally dominates the water property! Oh, yes~";
mes "Think of a hot flash, and by that I mean ligntening, striking a lake. Oh, I'm bad!";
next;
mes "[Aebecee George]";
mes "In terms of strength, magic with earth property goes on top of wind property magic! Ho~~";
mes "Just think of how the wind passionately beats against the cliffside near the Lookout Point or Lover's Lane. Tee hee~";
next;
mes "[Aebecee George]";
mes "Magic with fire property is strong against earth property! Tee hee~";
mes "Just think of burning wood, sprung from the earth, in a cozy fireplace. On the bearskin, in the dark~";
next;
mes "[Aebecee George]";
mes "...Oh my gosh! Time flies sooo fast!";
mes "Let's call it a day, dear, tee hee~";
next;
delitem 1754,50; //Crystal_Arrow
delitem 1756,50; //Stone_Arrow
delitem 1755,50; //Arrow_Of_Wind
mes "[Aebecee George]";
mes "When you come to the next class, bring ^3355FF1 Holy Water^000000~";
mes "I hope you have at least one Priest friend. Oh, you don't? Well, it couldn't hurt to get friendly with one.";
SAGE_Q2 = 3;
changequest 2061,2062;
close;
}
else {
mes "What are you doing here, precious...are you trying to fool me? Tee hee~";
mes "I hope you didn't sell the elemental ores I gave you? Naughty naughty~ Don't you know diamonds are a girl's best friend? Tee hee~";
next;
mes "[Aebecee George]";
mes "50 ^3355FFCrystal Arrow^000000,";
mes "50 ^3355FFStone Arrow^000000,";
mes "50 ^3355FFWind Arrow^000000.";
mes "Ask your Archer friend if you have one~ tee hee.";
close;
}
}
else if (SAGE_Q2 == 3) {
if (countitem(523) > 0) {
mes "Oh~ how sweet! You brought some Holy Water~ thanks honey~";
mes "Oh righty, we should start class. Tee hee~";
next;
mes "[Aebecee George]";
mes "Just Like last time, I will speak and you just write down everything I say.";
mes "Even if you don't understand, just pretend and go with the flow, alright? Tee hee~";
next;
mes "[Aebecee George]";
mes "Water Magic is weak against wind property! Yes, that's right~";
mes "Just remember why you don't keep the electric fan around when you're taking a hot bubble bath. Ooh! So electric!";
next;
mes "[Aebecee George]";
mes "Magic with the wind property is weak against earth property!";
mes "Think of how the wind can't, shall we say, penetrate a mud facial mask~";
next;
mes "[Aebecee George]";
mes "Magic with earth property is weak against fire property! Tee hee~";
mes "Just think of burning wood, sprung from the earth, in a cozy fireplace. On the be--oh? I said that already? Oh poopy.";
next;
mes "[Aebecee George]";
mes "Magic with fire property is weak against water property! Yes~";
mes "When things get flaming hot, it's best to splash things in cold water. Don't you agree~?";
next;
mes "[Aebecee George]";
mes "Oh, it's the end of the class~ tee hee.";
mes "So? Do you think you've learned a lot? You can thank me, honey!";
next;
delitem 523,1; //Holy_Water
mes "[Aebecee George]";
mes "Well, that's it. You can write your thesis with what I've taught you!";
mes "Tee hee~ yes! Yes! I am the best teacher in the world! Oh, I am on fire! Tee hee~";
SAGE_Q2 = 0;
SAGE_Q = 14;
changequest 2062,2051;
next;
mes "[Aebecee George]";
mes "Okay, please gather these items so you can write the thesis, dear~ Tee hee~";
mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
mes "^3355FF1 Empty Bottle^000000 to keep that Squid Ink from splashing.";
next;
mes "[Aebecee George]";
mes "So get on out there cowboy and hurry back~ Tee hee~";
close;
}
else {
mes "What are you doing here, precious...are you playing games? Tee hee.";
mes "Oh, poor dear. Did you already forget what I told you? Do you want me to remind you? Tee hee~";
next;
mes "[Aebecee George]";
mes "^3355FF1 Holy Water^000000,";
mes "It couldn't hurt to get friendly with an Aco or Priest...tee hee.";
close;
}
}
else {
mes "So...do you have the time? I'm kidding, girlfriend!";
close;
}
}
else if (SAGE_Q == 14) {
if (countitem(916) > 0 && countitem(919) > 0 && countitem(1019) > 0 && countitem(1024) > 0 && countitem(713) > 0) {
delitem 916,1; //Feather_Of_Birds
delitem 919,1; //Animal's_Skin
delitem 1019,1; //Wooden_Block
delitem 1024,1; //Chinese_Ink
delitem 713,1; //Empty_Bottle
mes "Okay~ so its now or never~ tee hee~";
mes "I taught you everything I know. Don't be nervous, you'll be okay~";
next;
mes "..........";
next;
mes "....................";
next;
mes ".................................";
next;
mes ".....Magic spells are varied into 4 elements such as";
switch(select("Water, Earth, Fire and Wind.:Earth, Water, Fire and Wind.:Water, Wind, Earth and Fire.")) {
case 1:
mes "Water, Earth, Fire and Wind.";
break;
case 2:
mes "Earth, Water, Fire and Wind.";
break;
case 3:
mes "Water, Wind, Earth and Fire.";
break;
}
mes "Each property has an opposing property,";
switch(select("Magic with wind property is strong against water:Magic with water property is strong against fire:Magic with fire property is strong against earth")) {
case 1:
mes "Magic with wind property is strong against water";
break;
case 2:
mes "Magic with water property is strong against fire";
break;
case 3:
mes "Magic with fire property is strong against earth";
break;
}
mes "Magic with earth property is strong against wind.";
switch(select("However, that does not work on the opposite case :This theory works the same for earth property weapons:Elemental properties are varied by monster types")) {
case 1:
mes "However, that does not work on the opposite case ";
break;
case 2:
mes "This theory works the same for earth property weapons";
break;
case 3:
mes "Elemental properties are varied by monster types";
break;
}
switch(select("You must be aware of the limit of your ability.:You must apply different types of property by the situation or place.:Red Potion is rumored to taste like strawberries.")) {
case 1:
mes "You must be aware of the limit of your ability.";
break;
case 2:
mes "You must apply different types of property by the situation or place.";
break;
case 3:
mes "Red Potion is rumored to taste like strawberries.";
break;
}
next;
switch(select("The most adorable NPC is YuPi in Prontera:Red Potion is rumored to be made out of Porings:You never know the limits of magic")) {
case 1:
mes "The most adorable NPC is YuPi in Prontera";
break;
case 2:
mes "Red Potion is rumored to be made out of Porings";
break;
case 3:
mes "You never know the limits of magic";
break;
}
switch(select("Merchant Lady in Morroc is also as cute as YuPi.:Nobody knows why Red Potion tastes like strawberries.:It is not suggested to be too addicted to magic spells.")) {
case 1:
mes "Merchant Lady in Morroc is also as cute as YuPi.";
break;
case 2:
mes "Nobody knows why Red Potion tastes like strawberries.";
break;
case 3:
mes "It is not suggested to be too addicted to magic spells.";
break;
}
switch(select("If I had a Bunny Band,:If so, what about the taste of White Potion?:Only pertinent uses of magic, as well as rest")) {
case 1:
mes "If I had a Bunny Band,";
break;
case 2:
mes "If so, what about the taste of White Potion?";
break;
case 3:
mes "Only pertinent uses of magic, as well as rest";
break;
}
switch(select("I would want to give it to her as a present.:I can't even imagine the taste.:will guarantee you a safe battle.")) {
case 1:
mes "I would want to give it to her as a present.";
break;
case 2:
mes "I can't even imagine the taste.";
break;
case 3:
mes "will guarantee you a safe battle.";
break;
}
switch(select("Although the Bunny Band best fits the Acolyte class:I love this thrilling feeling:Forming a party with people of different classes")) {
case 1:
mes "Although the Bunny Band best fits the Acolyte class";
break;
case 2:
mes "I love this thrilling feeling";
break;
case 3:
mes "Forming a party with people of different classes";
break;
}
switch(select("I still wonder if the Bunny Band would be perfect for GOD-POING.:I won't be able to drink it even if my HP is less than 1.:is considered the best way to ready for battle.")) {
case 1:
mes "I still wonder if the Bunny Band would be perfect for GOD-POING.";
break;
case 2:
mes "I won't be able to drink it even if my HP is less than 1.";
break;
case 3:
mes "is considered the best way to ready for battle.";
break;
}
next;
mes "..........";
next;
mes "....................";
next;
mes ".................................";
next;
SAGE_Q = 15;
changequest 2051,2052;
mes "[Aebecee George]";
mes "Tee hee, so... are you done with your thesis? What do you think of your work? I think you did fine~";
mes "Don't forget, this is the first and the last time you'll write a thesis, okay? Tee hee~";
getitem 1550,1; //Book
next;
mes "[Aebecee George]";
mes "Okay, now you can show the dean your thesis~";
mes "You're almost there~ tee hee.";
close;
}
else {
mes "What are you still doing here, sweet cheeks? Tee hee~";
mes "Oh, poor dear. Did you already forget what I told you? Do you want me to remind you? Not a problem, tee hee.";
next;
mes "[Aebecee George]";
mes "^3355FF1 Feather of Birds^000000 which will be used as a pen,";
mes "^3355FF1 Animal Skin^000000 which will be used as paper,";
mes "^3355FF1 Trunk^000000 which will be used to bind a book,";
mes "^3355FF1 Squid Ink^000000 which will be used as ink,";
mes "^3355FF1 Empty Bottle^000000 which will be used for holding squid ink.";
next;
mes "[Aebecee George]";
mes "You are supposed to prepare all of those items, aren't you?";
mes "Hurry baaack~! Tee hee~";
close;
}
}
else if (SAGE_Q == 15) {
mes "What are you doing here, dearie? Don't you want to meet the dean and show him your stuff?";
mes "Take it from me, boys like him won't wait for you forever, tee hee~";
next;
mes "[Aebecee George]";
mes "I know, I know...you wanna play with little ol' me. But you should become a Sage first.";
mes "Please hurry up, tee hee.";
close;
}
else {
mes "Well well...what do we have here?";
next;
mes "[Aebecee George]";
mes "You're not a Sage. Pity, sweet thang like yourself...";
mes "But seeing as you're not here for business, you must be here for...";
next;
mes "[Aebecee George]";
mes "...PLEASURE. Wait, where are you going, hon?";
close;
}
}
job_sage,50,165,4 script Test Helper#talk 8_F_GIRL,{
mes "[Test Helper]";
mes "Welcome to the Sage practical examination hall.";
mes "If you wish to take the test right now, please enter the waiting room.";
next;
mes "[Test Helper]";
mes "If someone is currently taking the test, please wait until that person finishes.";
mes "The progression of the test is announced on the entire map. An announcement will be made when the next person is ready to leave the waiting room.";
next;
mes "[Test Helper]";
mes "The Test takes 5 ~ 10 minutes per each person.";
mes "If you wish to leave the arena, please log out from the game.";
close;
}
job_sage,50,165,4 script Waiting Room#sg 8_F_GIRL,{
end;
OnInit:
disablenpc "Waiting Room#sg";
waitingroom "Waiting Room",20,"Waiting Room#sg::OnStartArena",1;
enablewaitingroomevent;
end;
OnStartArena:
warpwaitingpc "job_sage",116,97;
donpcevent "Arena#1::OnEnable";
disablewaitingroomevent;
end;
OnEnable:
enablewaitingroomevent;
end;
}
- script Arena#1 1_F_01,{
OnInit:
disablenpc "Arena#1";
end;
OnEnable:
enablenpc "Arena#1";
.MyMobs = 16;
monster "job_sage",111,102,"Grade F",1183,1,"Arena#1::OnMyMobDead";
monster "job_sage",120,102,"Grade F",1183,1,"Arena#1::OnMyMobDead";
monster "job_sage",111,93,"Grade F",1183,1,"Arena#1::OnMyMobDead";
monster "job_sage",120,93,"Grade F",1183,1,"Arena#1::OnMyMobDead";
monster "job_sage",107,98,"Grade F",1183,1,"Arena#1::OnMyMobDead";
monster "job_sage",124,98,"Grade F",1183,1,"Arena#1::OnMyMobDead";
monster "job_sage",115,106,"Grade F",1183,1,"Arena#1::OnMyMobDead";
monster "job_sage",115,90,"Grade F",1183,1,"Arena#1::OnMyMobDead";
monster "job_sage",103,110,"Grade D",1184,1,"Arena#1::OnMyMobDead";
monster "job_sage",128,110,"Grade D",1184,1,"Arena#1::OnMyMobDead";
monster "job_sage",103,85,"Grade D",1184,1,"Arena#1::OnMyMobDead";
monster "job_sage",128,85,"Grade D",1184,1,"Arena#1::OnMyMobDead";
monster "job_sage",107,106,"Grade D",1184,1,"Arena#1::OnMyMobDead";
monster "job_sage",124,106,"Grade D",1184,1,"Arena#1::OnMyMobDead";
monster "job_sage",107,89,"Grade D",1184,1,"Arena#1::OnMyMobDead";
monster "job_sage",124,89,"Grade D",1184,1,"Arena#1::OnMyMobDead";
initnpctimer;
end;
OnReset:
killmonsterall "job_sage";
end;
OnMyMobDead:
--.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_sage"," " + strcharinfo(0) + ", successfully defeat all the monsters.",bc_map;
donpcevent "Arena#2::OnEnable";
stopnpctimer;
}
end;
OnTimer1000:
mapannounce "job_sage","The practical examination has started.",bc_map;
end;
OnTimer2000:
mapannounce "job_sage","1st test - time limit 3 minutes.",bc_map;
end;
OnTimer3000:
mapannounce "job_sage","Please defeat all the monsters within the time limit.",bc_map;
end;
OnTimer33000:
mapannounce "job_sage","2 minutes 30 seconds remaining.",bc_map;
end;
OnTimer63000:
mapannounce "job_sage","2 minutes remaining.",bc_map;
end;
OnTimer93000:
mapannounce "job_sage","1 minute 30 seconds remaining.",bc_map;
end;
OnTimer123000:
mapannounce "job_sage","1 min remaining.",bc_map;
end;
OnTimer153000:
mapannounce "job_sage","30 seconds remaining.",bc_map;
end;
OnTimer173000:
mapannounce "job_sage","10 seconds remaining.",bc_map;
end;
OnTimer183000:
mapannounce "job_sage","Time over.",bc_map;
donpcevent "Arena#1::OnReset";
end;
OnTimer184000:
areawarp "job_sage",100,82,131,113,"yuno",324,258;
end;
OnTimer185000:
mapannounce "job_sage","Next candidate, enter.",bc_map;
end;
OnTimer186000:
disablenpc "Arena#1";
donpcevent "Waiting Room#sg::OnEnable";
stopnpctimer;
end;
}
- script Arena#2 -1,{
OnInit:
disablenpc "Arena#2";
end;
OnEnable:
enablenpc "Arena#2";
donpcevent "Arena#1::OnReset";
disablenpc "Arena#1";
.MyMobs = 24;
monster "job_sage",111,102,"Numerical Value",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",111,102,"Physics",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",111,102,"History",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",120,102,"Geography",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",120,102,"Astronomy",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",120,102,"Meteorology",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",111,93,"Architecture",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",111,93,"Control",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",111,93,"Instrumentology",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",120,102,"Statistics;",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",120,102,"Graphic Method",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",120,102,"Language",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",111,93,"Sitology",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",111,93,"Dietetics",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",111,93,"Landscape Architecture",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",120,93,"Anthropology",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",120,93,"Biology",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",120,93,"Ethics",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",107,98,"Economy",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",107,98,"Politics",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",107,98,"Photography",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",124,98,"Dendrology",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",124,98,"Hygiene",1063,1,"Arena#2::OnMyMobDead";
monster "job_sage",124,98,"Sociology",1063,1,"Arena#2::OnMyMobDead";
initnpctimer;
end;
OnReset:
killmonsterall "job_sage";
end;
OnMyMobDead:
--.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_sage"," " + strcharinfo(0) + ", successfully defeat all the monsters.",bc_map;
donpcevent "Arena#Doorkeeper::OnEnable";
donpcevent "Arena#3::OnEnable";
stopnpctimer;
}
end;
OnTimer1000:
mapannounce "job_sage","Second test - time limit 3 minutes.",bc_map;
end;
OnTimer2000:
mapannounce "job_sage","Please defeat all the monsters within the time limit.",bc_map;
end;
OnTimer33000:
mapannounce "job_sage","2 minutes 30 seconds remaining.",bc_map;
end;
OnTimer63000:
mapannounce "job_sage","2 minutes remaining.",bc_map;
end;
OnTimer93000:
mapannounce "job_sage","1 minute 30 seconds remaining.",bc_map;
end;
OnTimer123000:
mapannounce "job_sage","1 min remaining.",bc_map;
end;
OnTimer153000:
mapannounce "job_sage","30 seconds remaining.",bc_map;
end;
OnTimer173000:
mapannounce "job_sage","10 seconds remaining.",bc_map;
end;
OnTimer183000:
mapannounce "job_sage","Time over.",bc_map;
donpcevent "Arena#2::OnReset";
end;
OnTimer184000:
areawarp "job_sage",100,82,131,113,"yuno",324,258;
end;
OnTimer185000:
mapannounce "job_sage","Next candidate, please enter.",bc_map;
end;
OnTimer186000:
disablenpc "Arena#2";
donpcevent "Waiting Room#sg::OnEnable";
stopnpctimer;
end;
}
- script Arena#Doorkeeper -1,{
OnInit:
disablenpc "Arena#Doorkeeper";
end;
OnEnable:
enablenpc "Arena#Doorkeeper";
donpcevent "Arena#2::OnReset";
disablenpc "Arena#2";
.MyMobs = 1;
monster "job_sage",116,97,"Academic Probation",1179,1,"Arena#Doorkeeper::OnMyMobDead";
initnpctimer;
end;
OnReset:
killmonsterall "job_sage";
end;
OnDisable:
disablenpc "Arena#3";
disablenpc "Arena#Doorkeeper";
end;
OnMyMobDead:
--.MyMobs;
if (.MyMobs < 1) {
mapannounce "job_sage","Congratulations, " + strcharinfo(0) + ". You passed the test.",bc_map;
SAGE_Q = 8;
donpcevent "Test Helper#sg::OnEnable";
disablenpc "Arena#Doorkeeper";
stopnpctimer;
}
end;
OnTimer1000:
mapannounce "job_sage","3rd test - Time limit 1 minute.",bc_map;
end;
OnTimer30000:
mapannounce "job_sage","30 seconds remaining.",bc_map;
end;
OnTimer50000:
mapannounce "job_sage","10 seconds remaining.",bc_map;
end;
OnTimer60000:
mapannounce "job_sage","Time over.",bc_map;
donpcevent "Arena#Doorkeeper::OnReset";
end;
OnTimer61000:
areawarp "job_sage",100,82,131,113,"yuno",324,258;
end;
OnTimer62000:
mapannounce "job_sage","Next candidate, please enter.",bc_map;
end;
OnTimer63000:
disablenpc "Arena#Doorkeeper";
donpcevent "Waiting Room#sg::OnEnable";
stopnpctimer;
end;
}
- script Arena#3 -1,{
OnInit:
disablenpc "Arena#3";
end;
OnEnable:
monster "job_sage",107,106,"Absent 3 times",1185,1;
monster "job_sage",124,106,"Being Late 5 times",1185,1;
monster "job_sage",107,89,"Cheating 2 times",1185,1;
monster "job_sage",124,89,"Cheating 4 times",1185,1;
end;
OnDisable:
killmonsterall "job_sage";
end;
}
- script Test Helper#sg -1,{
OnInit:
disablenpc "Test Helper#sg";
end;
OnEnable:
initnpctimer;
end;
OnTimer2000:
mapannounce "job_sage","Please go back to where you came from and finish the rest of your job change quest.",bc_map;
end;
OnTimer4000:
mapannounce "job_sage","This is the end of practical examination. Next candidate, please get ready.",bc_map;
end;
OnTimer5000:
areawarp "job_sage",100,82,131,113,"yuno_in03",163,180;
end;
OnTimer7000:
mapannounce "job_sage","Next candidate, please enter.",bc_map;
end;
OnTimer9000:
disablenpc "Test Helper#sg";
donpcevent "Waiting Room#sg::OnEnable";
stopnpctimer;
end;
}
//============================================================
// Old changelog
//============================================================
//= Script mostly based on translated jA script
//= Written test questions/answers weren't translated 100% corectly
//= So a lot of those are based upon mRO site and my own info
//= IF you by excident have (or can get) screenshots of these questions
//= Then PLEASE send them to Darkchild
//= 1.3 Baby class Support added [Lupus] 1.5 Fixed possible EXP abuse [Lupus]
//= 1.6 Added a func which prevent advanced classes passing
//= 2nd Job Quests again. It also guides adv classes where to go. [Lupus]
//= 1.7 Fixed tuition fee. Fixed some answers, names & typos, added missing labels [Lupus]
//= 1.7a Moved JFunc back in the main file, fixed typos [Lupus]
//= 2.0 Changed numbers to constants. [Vicious]
//= 2.0a Fixed double warp [KarLaeda] 2.0b Mantis Scythe Item name fix