diff options
-rw-r--r-- | npc/Changelog.txt | 3 | ||||
-rw-r--r-- | npc/cities/valkyrie.txt | 553 | ||||
-rw-r--r-- | npc/jobs/1-1/acolyte.txt | 836 | ||||
-rw-r--r-- | npc/jobs/1-1/archer.txt | 334 | ||||
-rw-r--r-- | npc/jobs/1-1/mage.txt | 1055 | ||||
-rw-r--r-- | npc/jobs/1-1/merchant.txt | 1897 | ||||
-rw-r--r-- | npc/jobs/1-1/swordman.txt | 1852 | ||||
-rw-r--r-- | npc/jobs/1-1/thief.txt | 839 | ||||
-rw-r--r-- | npc/jobs/2-1a/AssassinCross.txt | 85 | ||||
-rw-r--r-- | npc/jobs/2-1a/HighPriest.txt | 67 | ||||
-rw-r--r-- | npc/jobs/2-1a/HighWizard.txt | 71 | ||||
-rw-r--r-- | npc/jobs/2-1a/LordKnight.txt | 69 | ||||
-rw-r--r-- | npc/jobs/2-1a/Sniper.txt | 68 | ||||
-rw-r--r-- | npc/jobs/2-1a/WhiteSmith.txt | 73 | ||||
-rw-r--r-- | npc/jobs/2-2a/Champion.txt | 72 | ||||
-rw-r--r-- | npc/jobs/2-2a/Clown.txt | 66 | ||||
-rw-r--r-- | npc/jobs/2-2a/Creator.txt | 121 | ||||
-rw-r--r-- | npc/jobs/2-2a/Gypsy.txt | 68 | ||||
-rw-r--r-- | npc/jobs/2-2a/Paladin.txt | 70 | ||||
-rw-r--r-- | npc/jobs/2-2a/Professor.txt | 78 | ||||
-rw-r--r-- | npc/jobs/2-2a/Stalker.txt | 78 | ||||
-rw-r--r-- | npc/jobs/valkyrie.txt | 388 | ||||
-rw-r--r-- | npc/scripts_athena.conf | 1 | ||||
-rw-r--r-- | npc/scripts_jobs.conf | 6 |
24 files changed, 5365 insertions, 3385 deletions
diff --git a/npc/Changelog.txt b/npc/Changelog.txt index ce3be3110..45c1ef3c4 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -1,5 +1,8 @@ Date Added ====== +2007/07/30 + * Rev. 10926 Updated Job quests for 1-1 classes and Rebirthed classes. [L0ne_W0lf] + - Moved valkyrie.txt from ../cities/ to ../jobs/. It's not a city. Doofus. 2007/07/29 * Fixed warps "Private House", from Moscovia. [Samuray22] - Thanks to $ephiroth for the fix. diff --git a/npc/cities/valkyrie.txt b/npc/cities/valkyrie.txt deleted file mode 100644 index 77a8cce43..000000000 --- a/npc/cities/valkyrie.txt +++ /dev/null @@ -1,553 +0,0 @@ -//===== eAthena Script ======================================= -//= Valkyrie Realm -//===== By: ================================================== -//= Nana, fixes by Poki -//= finished, optimized and tested by Lupus -//===== Current Version: ===================================== -//= 2.6a -//===== Compatible With: ===================================== -//= eAthena 1.0 + -//===== Description: ========================================= -//= The Jobquest from kRO on how to advance to a Reborn class. -//===== Additional Comments: ================================= -//= 1.1 Made all into functions,additional checks,quest skills,now Valhallana can return you back. She also makes reborn process only when you got no Zeny/items (as in kRO) [Lupus] -//= 1.2 now alternative classes can use their 1-1 job NPC to become Advanced 1st Class [Lupus] -//= 1.4 added Baby Class support [Lupus] -//= 1.5 Fixed loads of gramatical errors. [Mass Zero] -//= 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 On reborn reset some Job Quest Vars and Reset Girls Counter [Lupus] -//= 1.8 Added Taekwondo classes check [Lupus] -//= 1.9 Added support for Job NPC Fase pics, sorrected one dialogue stuff [Lupus] -//= 2.0 Removed callfunc Is_####_Class in favor of baseClass [Silentdragon] -//= 2.1 Changed all numbers into constants. [Vicious] -//= 2.2 Now ALL quests skills are saved/restored [Lupus] 2.3 Removed Duplicates [Silent] 2.4 Fixed typos, optimized [Lupus] 2.5 Fixed a stuck bug [Lupus] -//= 2.6a Adding proper dialogues [Lupus] -//============================================================ - - -// -== Warp's needed! ==- -valkyrie,48,73,0 warp valk01 1,1,valkyrie,48,64 -valkyrie,48,66,0 warp valk01 1,1,valkyrie,48,75 - -// -== Book of Ymir (Heavens Door) ==- -yuno_in02,93,207,0 script Book of Ymir 111,{ - mes "[Book of Ymir]"; - if(Upper==1 || valkyrie_Q>1){ - mes "...The entrance to the Hall of Honor"; - mes "is open to everyone who will move forward, into their next lives."; - mes "It is there to help heroes decide what they want to do, and can"; - mes "access every place in this world."; - next; - mes "[Book of Ymir]"; - mes "In the Hall of Honor, everything is perfectly prepared for heroes."; - mes "It is rumored that any wish that"; - mes "cannot be fulfilled in our reality"; - mes "can be realized in the Hall of Honor."; - next; - switch(select("Stop reading.:Continue reading.")) { - case 1: - mes "[Book of Ymir]"; - mes ". . . . ."; - close; - break; - case 2: - mes "[Book of Ymir]"; - mes "There is a forgotten path which leads to"; - mes "the Hall of Honor, the closest place to the heavens. However, it is forbidden"; - mes "for ordinary people to know about it..."; - close2; - warp "valkyrie",48,9; //48,8? - end; - break; - } - } - if(valkyrie_Q<1 || Upper==2 || BaseClass == Job_Taekwon || BaseJob == Job_Gunslinger || BaseJob == Job_Ninja){ - mes ". . . . ."; - } - mes "...Therefore, ancient heroes were"; - mes "always in anguish, knowing that"; - mes "eventually, they were mortal and"; - mes "would pass from this realm..."; - next; - mes "[The Book of Ymir]"; - mes "There were no documents, songs"; - mes "or remaining folklore that"; - mes "had any information on life"; - mes "after death. However, I recently"; - mes "uncovered an old scroll about"; - mes "Valkyrie..."; - next; - mes "[The Book of Ymir]"; - mes "Valkyrie..."; - mes "The legendary guardian angel"; - mes "angel of Ragnarok."; - next; - mes "[The Book of Ymir]"; - mes "Adventurers of great strength"; - mes "and bravery will be lead by"; - mes "Valkyrie to Valhalla, the Hall"; - mes "of Honor. There, they will be"; - mes "given a new life."; - next; - mes "[The Book of Ymir]"; - mes "Reborn, they will live again as"; - mes "even greater heroes that will"; - mes "brighten the world. Bodies that"; - mes "were exhausted will be filled"; - mes "with energy..."; - next; - mes "[The Book of Ymir]"; - mes "And the spirit will be given"; - mes "abilities with the heart of Ymir."; - mes "However, the heart of Ymir was"; - mes "totally destroyed and scattered"; - mes "all over the world after the battle of the Rune-Midgarts."; - next; - mes "[The Book of Ymir]"; - mes "I had found a small amount of"; - mes "Ymir heart pieces over a long"; - mes "long period of time. But I can't"; - mes "confirm if the story of Valkyrie"; - mes "and Valhalla is true or not"; - mes "through scientific tests."; - next; - mes "[The Book of Ymir]"; - mes "So, I am leaving this record"; - mes "and hope that someone in the future"; - mes "can confirm that Valkyrie and Valhalla"; - mes "exist through my records."; - next; - mes "[The book of Ymir]"; - mes "Let the heroes live new lives"; - mes "so they could protect the world from danger."; - mes "And then......"; - mes "..........."; - close; -} - -// -== The Librarian that watches the "Book of Ymir" ==- -yuno_in02,91,176,5 script Librarian 754,{ - mes "[Librarian]"; - if(valkyrie_Q){ - mes "Why? You have already paid me."; - mes "Now go and look for the Book of Ymir."; - close; - } - if(BaseJob >= Job_Knight && Upper==0) goto L_PAY; - mes "Have a look around, but don't touch the book. Only a few chosen ones can read its wise words."; - close; - -L_PAY: - mes "You seem like a worthy human."; - mes "I, the 78th Librarian of the secret order have sworn to protect this book, it won't thread lightly on you."; - mes "In order to let me allow you to view into this wonderous book, you have to do two things for me."; - next; - mes "[Librarian]"; - mes "One. You have to pay me 1,285,000 Zeny. Remember that you need the accurate amount. Not over or under 1,285,000z."; - mes "Two. You have to venture deep inside of Yuno castle, into the Heart of Ymir."; - mes "Remember that you cannot view the book unless you have done this."; - mes "Now go, brave one."; - next; - menu "Pay now",-,"Close",M_EXIT; - - mes "[Librarian]"; - if(Zeny != 1285000){ - mes "You didn't bring me the accurate number of zeny I wanted. Bring me back only 1,285,000 zeny!"; - mes "Not more, nor less."; - close; - } - set Zeny,0; - set valkyrie_Q,1; - mes "Go now, into Heart of Ymir"; - mes "There, you'll find the last piece of information before you can open the book."; -M_EXIT: - close; -} - -// -== The Heart of Ymir ==- -yuno_in05,50,44,0 script Heart of Ymir 111,{ - mes "[Heart of Ymir]"; - if(valkyrie_Q == 1){ - mes "Thus upon hard times and when our self esteem is at its lowest, then is when our faith has to be the strongest."; - mes "For aeons the secret guardians of the path to heaven have protected the secret gate from evil spirits entering it."; - mes "Thus, the bonds became to weaken over time... That's when the Legion of Sages started recruiting and making young, brave and quick minded mages and sages, teaching them the laws and propositions of our world."; - next; - mes "[Heart of Ymir]"; - mes "Aeons passed and the Sages grew stronger in both mind and forces, until they all were feared throughout the monsters' world."; - mes "Now, after listening to my words of wisdom, please advance to the Book of Ymir and give yourself into Gods light."; - mes "If you are pure of heart and have no evil intentions, the gates of dawn will open for you and take you in..."; - set valkyrie_Q,2; - close; - } - if(valkyrie_Q == 2){ - mes "I have nothing more to teach you, nor to tell you."; - close; - } - mes ". . ."; - close; -} - -// -== Researcher of the Book of Ymir ==- -yuno_in02,90,77,4 script Researcher#06 744,{ - mes "[Researcher]"; - mes "Argh, where is it!?"; - mes "They said that it would be around here somewhere..."; - mes "Maybe I have to look deeper into this castle..."; - emotion e_what; - close; -} - -// -== Valhallana ==- -valkyrie,48,86,6 script Valkyrie 811,{ - mes "[Valhallana]"; - if(BaseJob == Job_SuperNovice) goto L_SN; - if(baseClass == Job_Taekwon || BaseJob == Job_Gunslinger || BaseJob == Job_Ninja) goto L_CANT; //sent back any Taekwondo/GS/NJ classes - if(Upper == 2) goto L_BABY; - if(Upper > 0) goto L_ALREADY; - if(BaseLevel >= 99 && JobLevel >= 50 && BaseJob > Job_Thief) goto L_CHANGE; - if(BaseJob <= Job_Thief) goto L_NOTHING; - - mes "You need 99 Base Level and 50 Job Level."; - mes "Also you must get rid of all of your money and items."; - next; - goto L_NOTHING; - -L_BABY: - mes "A Baby?! How did you get here?"; - mes "I'm passing you back to your parents."; - emotion e_what; - next; -L_Y: - warp "yuno_in02",93,204; - close; - -L_CANT: - mes "How did you get here?"; - emotion e_what; - next; - goto L_Y; - -L_SN: - mes "Welcome to Valkyrie, "+strcharinfo(0)+"."; - mes "I see you have followed a hard way of the Super Novice."; - next; - mes "[Valhallana]"; - mes "I am sorry, but I can't help you."; - emotion e_sry; - next; - goto L_NOTHING; - -L_ALREADY: - mes "I can't help you anymore."; - if(Class == Job_Novice_High) mes "You have been reborn already."; - if(Class >= Job_Swordman_High && Class <= Job_Thief_High) mes "Please go over there, to the person representing your class."; - next; - -L_NOTHING: - mes "Do you wish to go back to your world?"; - next; - menu "Yes",L_Y,"No",-; - - mes "[Valhallana]"; - mes "As you wish..."; - close; - -L_CHANGE: - mes "Welcome to Valkyrie, "+strcharinfo(0)+". From this point on, there is no returning back."; - next; - mes "[Valhallana]"; - if(Zeny || Weight) goto L_ZENYITEMS; - if(checkcart()) goto L_CART; - if(checkfalcon()) goto L_FALCON; - if(checkriding()) goto L_PECO; - if(skillpoint > 0) goto L_SKILLPNTS; - - mes "Let's start your reincarnation ceremony..."; - next; - - set ADVJOB, Class+Job_Novice_High; //memo the target 3rd Job ID - if(ADVJOB == Job_Lord_Knight2) set ADVJOB,Job_Lord_Knight; - if(ADVJOB == Job_Paladin2) set ADVJOB,Job_Paladin; - - callfunc("F_SaveQuestSkills"); - - mes "[Valhallana]"; - mes "Done..."; - mes "Good luck."; - jobchange Job_Novice_High; - resetlvl(1); - callfunc "F_ClearJobVar"; - set RES_SKILL,0; //we reset Reset Skills NPC counter - next; - if(ADVJOB == Job_Lord_Knight || ADVJOB == Job_Paladin) goto L_Izl; - if(ADVJOB == Job_High_Priest || ADVJOB == Job_Champion) goto L_Pro; - if(ADVJOB == Job_High_Wizard || ADVJOB == Job_Professor) goto L_Gef; - if(ADVJOB == Job_Whitesmith || ADVJOB == Job_Creator) goto L_Alb; - if(ADVJOB == Job_Sniper || ADVJOB == Job_Clown || ADVJOB == Job_Gypsy) goto L_Pay; - if(ADVJOB == Job_Assassin_Cross || ADVJOB == Job_Stalker) goto L_Mor; - -L_Pro: - savepoint "prontera",273,354; - warp "prontera",273,354; - close; - -L_Mor: - savepoint "morocc",160,94; - warp "morocc",160,94; - close; - -L_Alb: - savepoint "alberta",116,57; - warp "alberta",116,57; - close; - -L_Pay: - savepoint "payon",155,90; - warp "payon",155,90; - close; - -L_Izl: - savepoint "izlude",94,103; - warp "izlude",94,103; - close; - -L_Gef: - savepoint "geffen",120,100; - warp "geffen",120,100; - close; - -L_ZENYITEMS: - mes "Your money and items do rope you to your routine life."; - mes "You should get rid of them."; - close; - -L_CART: - mes "Please, drop your cart and we'll continue."; - close; - -L_FALCON: - mes "Please, free your Falcon and we'll continue."; - close; - -L_PECO: - mes "Please, free your PecoPeco and we'll continue."; - close; - -L_SKILLPNTS: - mes "You will need to use up all of your skill points if you want me to continue."; - close; -} - -// function HIGH NOVICE -> HIGH 1 -//getarg(0) - High Job ID -//getarg(1) - High Job Name -//getarg(2) - 3rd Job ID -//getarg(3) - current NPC's name - -function script F_ToHigh { - if(Upper == 2) return; //Baby Class - skip it - if(ADVJOB == Job_Lord_Knight2) set ADVJOB,Job_Lord_Knight; - if(ADVJOB == Job_Paladin2) set ADVJOB,Job_Paladin; - set @fjob,ADVJOB; //alternative classes should pass, too - if(@fjob == Job_Stalker) set @fjob,Job_Assassin_Cross; - if(@fjob == Job_Creator) set @fjob,Job_Whitesmith; - if(@fjob == Job_Clown || @fjob == Job_Gypsy) set @fjob,Job_Sniper; - if(@fjob == Job_Paladin) set @fjob,Job_Lord_Knight; - if(@fjob == Job_Champion) set @fjob,Job_High_Priest; - if(@fjob == Job_Professor) set @fjob,Job_High_Wizard; - - if(Class == getarg(0)) goto L_WELCOME; //3rd Job - if(Class >= Job_Lord_Knight && Class <= Job_Paladin2) goto L_ALREADY; //already advanced class - if(Class == Job_Novice_High && @fjob == getarg(2)) goto L_GETHIGH; //High Novice -> High XXXX - if(Class == Job_Novice_High) { - mes "Hello, Novice High! If you are going to became a "+getarg(1)+", then go visit your very first job teacher."; - close; - } - return; //this char doesn't want to get HIGH class - -L_GETHIGH: - mes "["+getarg(3)+"]"; - if(JobLevel < 10) goto L_NOTREADY; - if(checkcart()) goto L_CART; - if(checkfalcon()) goto L_FALCON; - if(checkriding()) goto L_PECO; - if(skillpoint > 0) goto L_SKILLPNTS; - - mes "Hello there, "+strcharinfo(0)+"!"; - mes "You've made a brave choice in coming here to be reborn and stepping forth into the advanced ranks."; - mes "Now... close your eyes."; - next; - mes "["+getarg(3)+"]"; - mes "Open your eyes."; - mes "You have become a "+getarg(1)+"."; - jobchange getarg(0); //High Class - next; - if(ADV_QSK){ - mes "["+getarg(3)+"]"; - mes "Let me just add in the missing Quest Skills you lost under the Reborn process, "+strcharinfo(0)+"."; - next; - //return learnt quest skills - callfunc("F_Load1Skills"); - } - mes "["+getarg(3)+"]"; - mes "I wish you good fortune in the near future!"; - emotion e_grat; - close; - -L_NOTREADY: - mes "You are not ready to become a "+getarg(1)+"."; - mes "You have to raise your Job Level to 10."; - emotion e_gasp; - close; - -L_SKILLPNTS: - mes "You will need to use up all of your skill points if you want me to continue."; - emotion e_hmm; - close; - -L_CART: - mes "Please, drop your cart and we'll continue."; - emotion e_hmm; - close; - -L_FALCON: - mes "Please, free your Falcon and we'll continue."; - emotion e_hmm; - close; - -L_PECO: - mes "Please, free your Pecopeco and we'll continue."; - emotion e_hmm; - close; - -L_WELCOME: - mes "["+getarg(3)+"]"; - mes "You are welcome, "+strcharinfo(0)+"!"; - mes "We're always glad to see a "+getarg(1)+" here!"; - close; - -L_ALREADY: - mes "["+getarg(3)+"]"; - mes "It's such a big honor to salute envoys of Valhalla."; - mes "Come again."; - emotion e_ho; - close; -} - -// function GET 3rd JOB -//getarg(0) - High Job ID -//getarg(1) - High Job Name -//getarg(2) - 3rd Job ID -//getarg(3) - 3rd Job Name -function script F_Rebirth { - mes "["+getarg(3)+"]"; - if(Upper == 2) goto L_BABY; //Baby Class - skip it - if(Class >= Job_Lord_Knight && Class <= Job_Paladin2) goto L_ALREADY; //already advanced class - if(Class == getarg(0) && ADVJOB == getarg(2)) goto L_GET3RD; //Hight XXXX -> 3rd Job - mes "Go talk to either Valhallana or one of my collegues..."; - emotion e_sry; - close; - -L_GET3RD: - if(JobLevel < 45) goto L_NOTREADY; - if(checkcart()) goto L_CART; - if(checkfalcon()) goto L_FALCON; - if(checkriding()) goto L_PECO; - if(skillpoint > 0) goto L_SKILLPNTS; - - mes "Congratulations!"; - mes "You have trained well. Now stroll here as a "+getarg(3)+"!"; - jobchange getarg(2); //Rebirth Class - set ADVJOB,0; - if(ADV_QSK2){ - next; - mes "["+getarg(3)+"]"; - mes "Let me just add in the missing Quest Skills you lost under the Reborn process, "+strcharinfo(0)+"."; - next; - //return learnt quest skills - callfunc("F_Load2Skills"); - } - close; - -L_NOTREADY: - mes "You have went so far to get here. But I am sorry, you aren't quite ready to become a "+getarg(3)+"."; - mes "You need at least Job Level 45 or higher."; - emotion e_gasp; - close; - -L_SKILLPNTS: - mes "You will need to use up all of your skill points if you want me to continue."; - emotion e_hmm; - close; - -L_CART: - mes "Please, drop your cart and we'll continue."; - emotion e_hmm; - close; - -L_FALCON: - mes "Please, free your Falcon and we'll continue."; - emotion e_hmm; - close; - -L_PECO: - mes "Please, free your Pecopeco and we'll continue."; - emotion e_hmm; - close; - -L_ALREADY: - mes "Well, hello there! You have been reborn once, there is no second chance."; - emotion e_ho; - close; - -L_BABY: - mes "What a lively baby!"; - mes "How did you get here? Go to aunt Valhallana and ask her to take your home."; - emotion e_pat; - close; -} - -// function GUIDE player to Valhalla for getting 3rd JOB -// this function prevents passing 2nd JOB QUESTS by advanced classes also -//getarg(0) - High Job ID -//getarg(1) - High Job Name -//getarg(2) - 3rd Job ID -//getarg(3) - 3rd Job Name -//getarg(4) - NPC Name -function script F_BlockHigh { - if(Upper != 1) return; //This func should interact with Advanced classes only - mes "["+getarg(4)+"]"; - if(Class == getarg(0) && ADVJOB == getarg(2)) goto L_RIGHTHIGH; - if(Class == getarg(2)) goto L_RIGHT3RD; - if(Class >= Job_Lord_Knight && Class <= Job_Paladin2) goto L_ALREADY3RD; //already advanced class, but from wrong guild -//this player is a High Novice - if(Class == Job_Novice_High) mes "Hello, Novice High! If you are going to became a "+getarg(1)+", then go visit your very first job teacher."; -//this player has 1st advanced job, but from wrong guild - if(Class == getarg(0)) mes "A "+getarg(1)+"?"; - if(Class != Job_Novice_High) mes "Rumors say only Valhallana knows your way..."; - emotion e_sry; - close; - -L_RIGHT3RD: - mes "Well, hello there! You look... younger."; - emotion e_hmm; - next; - mes "["+getarg(4)+"]"; - mes "You are always welcome here, "+strcharinfo(0)+"!"; - mes "Our good old guild is your second home, isn't it?"; - emotion e_no1; - close; - -L_RIGHTHIGH: - mes "Hello, "+strcharinfo(0)+"!"; - mes "If you are going to become a "+getarg(3)+", then you should visit Valhalla again."; - if(JobLevel < 45) mes "But you need at least Job Level 45 or higher."; - emotion e_gasp; - close; - -L_ALREADY3RD: - mes "A "+getarg(3)+"?"; - mes "You don't belong to our guild. Begone!"; - emotion e_omg; - close; -} diff --git a/npc/jobs/1-1/acolyte.txt b/npc/jobs/1-1/acolyte.txt index 692d8c4c6..aa725c94d 100644 --- a/npc/jobs/1-1/acolyte.txt +++ b/npc/jobs/1-1/acolyte.txt @@ -1,13 +1,14 @@ //===== eAthena Script ======================================= //= Acolyte Job Quest //===== By: ================================================== -//= kobra_k88 +//= kobra_k88; L0ne_W0lf //===== Current Version: ===================================== -//= 1.6 +//= 1.7 //===== Compatible With: ===================================== -//= eAthena 1.0 + +//= eAthena SVN //===== Description: ========================================= -//= <Description> +//= [Aegis Conversion] +//= Job quest for Acolyte classes //===== Additional Comments: ================================= //= v1.0 Fully working. //= v1.1 Added function calls for Priest Quest. @@ -17,333 +18,588 @@ //= v1.4 Optimised and moved first checker to Jfunc1-1 [massdriller] //= 1.5 Now saves/restores all quest skills [Lupus] //= 1.6 Merged back JFunc [Lupus] +//= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf] +//= No longer uses function "F_ToHigh" +//= Proper dialog for Priest job quest is unused (for now.) //============================================================ - -// -- Father Mareusis -- -prt_church,184,41,4 script Father Mareusis 60,{ - callfunc "F_ToHigh",Job_Acolyte_High,"Acolyte High",Job_High_Priest,"Father Mareusis"; - mes "[Father Mareusis]"; - if(BaseJob == Job_Novice && job_acolyte_q > 0) goto L_Check; - mes "What is it you are looking for?"; - next; - menu "Father, I want to become an Acolyte.",M_0,"The Requirements.",M_1,"I'm just looking around that's all",M_End; - close; - - M_0: - mes "[Father Mareusis]"; - if(BaseJob == Job_Acolyte) { - mes "Are you feeling okay?...."; - emotion e_hmm; - next; - mes "[Father Mareusis]"; - mes "...your attire..."; - next; +prt_church,184,41,4 script Cleric#aco 60,{ + if (Upper == 1) { + if (ADVJOB == Job_High_Priest || ADVJOB == Job_Champion) { + if (Class == Job_Novice_High) { + mes "[Father Mareusis]"; + mes "Ah, I sense you have endured"; + mes "a past life experience. You must have learned many things before entering Valhalla."; + next; + if (getskilllv(1) < 9) { + mes "[Father Mareusis]"; + mes "Unfortunately, I don't think you're ready to become an Acolyte yet. Please finish learning all of the Basic Skills first."; + next; + mes "[Father Mareusis]"; + mes "In the meantime,"; + mes "I will wait until"; + mes "you are ready."; + mes "May God be"; + mes "with you."; + close; + } + mes "[Father Mareusis]"; + mes "Well, I welcome you"; + mes "back from Valhalla and"; + mes "wish you luck on your"; + mes "new life's journey."; + next; + skill 143,0,0; + jobchange Job_Acolyte_High; + skill 142,1,0; + mes "[Father Mareusis]"; + mes "Now, venture forth and seek those who need your help. May God light your path."; + close; + } + else { + mes "[Father Mareusis]"; + mes "Now, venture forth to seek people who need your help. May God enlighten your way."; + close; + } + } + else { mes "[Father Mareusis]"; - mes "You're already are an Acolyte....."; + mes "I sense that you have endured a past life experience. You must have learned many things before entering Valhalla."; next; mes "[Father Mareusis]"; - mes "You are not joking with me, are you? Hoho!!..kids these days."; - emotion e_heh; + mes "However, I can tell that you are not suited to be an Acolyte. Please remember who you were in your past life and find your path."; + close; + } + } + mes "[Father Mareusis]"; + mes "What is it that you seek?"; + next; + switch(select("Father, I want to be a Acolyte.:Acolyte Requirements.:Just looking around.")) { + case 1: + mes "[Father Mareusis]"; + if (BaseJob == Job_Acolyte) { + mes "Are you feeling okay today? I can tell by your attire that you are already an Acolyte. You're not joking around, are you?"; close; } - if(BaseJob != Job_Novice) { - mes "I am sorry child. You have already devoted your life to another profession. I am afraid that you will no longer be able to devote it to God."; + else if (BaseJob != Job_Novice) { + mes "I'm sorry, but we can only accept Novices as applicants for the job change to Acolyte."; close; } - if(JobLevel < 10) { - mes "My child you do not yet possess the necessary skills to serve the lord."; - mes "Please come back when your faith in God has become stronger"; + if (job_acolyte_q == 0) { + mes "Do you truly"; + mes "wish to become"; + mes "a servant of God?"; next; + if (select("Yes Father, I do.:Nope, I lied.") == 1) { + mes "[Father Mareusis]"; + mes "Good. I accept " + strcharinfo(0) + "'s will to become an Acolyte. You understand that you must do penance before you can become a servant of God, right?"; + next; + mes "[Father Mareusis]"; + mes "Well, I will"; + mes "give you a mission..."; + switch(rand(2)) { + default: + set job_acolyte_q,2; + mes "Please visit ^000077Father Rubalkabara^000000, a member of the Prontera Parish, and return here. He has been practicing asceticism in the ^000077Relics NorthEast of Prontera City^000000."; + break; + case 1: + set job_acolyte_q,3; + mes "Please visit ^000077Mother Mathilda^000000 and then return to me. She has been practicing asceticism near ^000077Morroc Town, SouthWest of Prontera City^000000."; + break; + case 2: + set job_acolyte_q,4; + mes "Please visit ^000077Father Yosuke^000000 and return here. He has been practicing asceticism around ^000077a bridge somewhere NorthWest of Prontera^000000."; + break; + } + next; + mes "[Father Mareusis]"; + mes "May the grace of God light your path and guide you during your journey of penance."; + close; + } mes "[Father Mareusis]"; - mes "May God bless you."; + mes "You lied?"; + mes "It is good that you"; + mes "have confessed your"; + mes "wrongdoing. Go in"; + mes "peace, my son."; close; } - mes "Do you truly wish to become a servant of God?"; + mes "Oh, you've come back. Let me check and see if you are ready to serve God. Let's see..."; next; - menu "Yes, Father, I do.",sM_0,"Nope, I lied.",sM_1; - close; - - sM_0: - mes "[Father Mareusis]"; - mes "Good. I accept your will to become an Acolyte."; - mes "You understand that you need to do penance before you become a servant of God, don't you?"; + mes "[Father Mareusis]"; + if (getskilllv(1) < 9) { + mes "Good Lord! Haven't you accomplished the Basic Training yet?! It's important that you finish that!"; next; mes "[Father Mareusis]"; - mes "Well then, here is your Divine Quest....."; + mes "You should have trained more! Go back and make sure you reach Novice Job Level 9 and learn all of the Basic Skills!"; + close; + } + if (job_acolyte_q < 5) { + mes "Oh? I can't find your name on the Registration List."; next; - mes "[Father Mareusis]"; - set job_acolyte_q, rand(1,3); - if(job_acolyte_q == 2) goto sR_2; - if(job_acolyte_q == 3) goto sR_3; - - sR_1: - mes "Please visit ^0000ffFather Rubalkabara^000000, a member of the Prontera Parish and report back here."; - mes "He has been Practicing Asceticism near the ^0000ffSt. Capitolina Abbey, 1 map North, and 2 maps East of Prontera City.^000000."; - goto sL_End; - - sR_2: - mes "Please Visit ^0000ffMother Marthilda^000000 and report back here."; - mes "She has been Practicing Asceticism in the ^0000ffSograt Desert, one map north from the town of Morroc^000000. Morroc is SouthWest from Prontera."; - goto sL_End; - - sR_3: - mes "Please Visit ^0000ffFather Yosuke^000000 and report back here."; - mes "He has been Practicing Asceticism on ^0000ffa very small island 2 maps West, and 1 map North, of Prontera City.^000000."; - - sL_End: + switch(job_acolyte_q) { + case 2: + mes "[Father Mareusis]"; + mes "Please visit ^000077Father Rubalkabara^000000, a member of the Prontera Parish, and return here."; next; mes "[Father Mareusis]"; - mes "May the Grace of God enlighten your path."; - close; - - sM_1: + mes "He has been practicing asceticism in the ^000077Relics at the NorthEast of Prontera City^000000."; + break; + case 3: + mes "[Father Mareusis]"; + mes "Please Visit ^000077Mother Mathilda^000000 and return here to me."; + next; + mes "[Father Mareusis]"; + mes "She has been practicing asceticism near ^000077Morroc Town, located SouthWest of Prontera City^000000."; + break; + case 4: + mes "[Father Mareusis]"; + mes "Please visit ^000077 Father Yosuke ^000000 and return here to me."; + next; + mes "[Father Mareusis]"; + mes "He has been practicing asceticism near a ^000077bridge somewhere to the NorthWest of Prontera^000000."; + break; + } + next; mes "[Father Mareusis]"; - mes "Lying is a sin my child!"; - mes "Please come back when you are ready"; - emotion e_swt2; + mes "May the grace of God brighten your path and guide you on your journey of penance."; close; - - M_1: + } + mes "Hmm..."; + mes "Your name is on the list and you've proven your qualification."; + next; mes "[Father Mareusis]"; - if(BaseJob == Job_Acolyte) goto M1b; - if(BaseJob != Job_Novice) goto M1a; - - mes "So you wish to become an Acolyte do you?"; - mes "Here are the two requirements you must fullfill first in order to do so."; + mes "I am proud to say that you are now ready to become an Acolyte!"; next; + set job_acolyte_q,0; + skill 143,0,0; + callfunc "Job_Change",Job_Acolyte; + callfunc "F_ClearJobVar"; mes "[Father Mareusis]"; - mes "First of all, you have to reach ^0000ffnovice job Level 9^000000 and learn the ^0000ffBasic Skills^000000 that come with it."; + mes "Always remember to be thankful to God, who is taking care of us all the time."; next; mes "[Father Mareusis]"; - mes "Secondly, you have to embark on a Divine Quest!!"; + mes "Always use your gifts to serve Him by helping others. In chaos and times of difficulty, face your hardships with unwavering faith."; next; mes "[Father Mareusis]"; - mes "You'll will become an Acolyte in no time if, from the bottom of your heart, you are truly eager to become a servant of God."; + mes "Lastly, I want to sincerely congratulate you on persevering through your trial of penance."; close; - - M1a: - mes "You have already devoted your life to another profession...."; - close; - M1b: - mes "You have already devoted your life to the lord my child. Please go with God's blessing."; - close; - - M_End: + case 2: mes "[Father Mareusis]"; - mes "I see. I pray for your salvation."; - close; - -L_Check: - mes "Oh, You've come back. Let me check to see if you are ready to serve God... Let's see..."; - next; - mes "[Father Mareusis]"; - if(job_acolyte_q < 4) goto sL_NotRdy; - if(SkillPoint > 0) goto sL_Skpoint; - mes "Your prayers have been answered my child. That which has been asked of you has been fullfilled!!."; - next; - mes "[Father Mareusis]"; - mes "With the powers vested in me I hearby make you, ^0000ff"+strcharinfo(0)+"^000000, an Acolyte!!!"; - next; - mes "(whispers a prayer)"; - next; - callfunc "Job_Change",Job_Acolyte; - callfunc "F_ClearJobVar"; // clears all job variables for the current player - mes "[Father Mareusis]"; - mes "Remember to be thankful to God, who is taking care of us all of the time."; - mes "That you have the unique chance to serve him...you should feel very fortunate and blessed."; - next; - mes "[Father Mareusis]"; - mes "Now go forth my child and VANQUISH the EVILS of this world. You have my blessing and the blessing of the church."; - close; - - sL_NotRdy: - mes "Hmm... you don't seem to have finished your Divine Quest my child."; + mes "Do you wish to become an Acolyte? You must fulfill two requirements."; + next; + mes "[Father Mareusis]"; + mes "First, you have to reach at least Novice Job Level 9 and learn all of the Basic Skills. Second, you will be given a trial of penance to overcome."; + next; + mes "[Father Mareusis]"; + if (job_acolyte_q != 0) { + switch(job_acolyte_q) { + case 2: + mes "For your trial, please visit ^000077Father Rubalkabara ^000000 and then return here to me."; + next; + mes "[Father Mareusis]"; + mes "He is practicing asceticism in the ^000077Relics at the NorthEast of Prontera City^000000."; + break; + case 3: + mes "For your trial, please visit ^000077Mother Mathilda^000000 and return here to me."; + next; + mes "[Father Mareusis]"; + mes "She has been practicing asceticism near ^000077Morroc, located to the SouthWest of Prontera City^000000."; + break; + default: + mes "For your trial, please visit ^000077Father Yosuke^000000 and return here to me."; + next; + mes "[Father Mareusis]"; + mes "He has been practicing asceticism around a bridge somewhere ^000077NorthWest of Prontera^000000."; + break; + } + next; + mes "[Father Mareusis]"; + mes "May the grace of God light your path and guide you on your journey of penance."; + } + else { + mes "The destination for this trial will be decided once you fill the application form."; + } next; mes "[Father Mareusis]"; - if(job_acolyte_q == 1) goto sR_1; - if(job_acolyte_q == 2) goto sR_2; - if(job_acolyte_q == 3) goto sR_3; + mes "Please come back after fulfilling the two requirements I've asked of you. As long as your desire to serve God and others is sincere, you will be able to make it."; close; - - sL_Skpoint: - mes "Before we can move on, please use up all of your skill points my child."; + case 3: close; + } } - -// == Devine Quest == -// -- Father Rubalkabara -- -prt_fild03,365,259,2 script Father Rubalkabara 110,{ - mes "[Father Rubalkabara]"; - if(BaseJob == Job_Acolyte || BaseJob == Job_Priest) callfunc "F_FatherRub"; - if(BaseJob == Job_Novice) goto L_Novice; - -L_Other: - mes "Oh.. Have you come here to train Or are you just a Wanderer..?"; - next; +prt_fild03,365,255,2 script Ascetic#aco 89,{ mes "[Father Rubalkabara]"; - mes "Whoever you are, please take care of yourself. Monsters in here are shockingly Strong contrary to their Cute apprearance."; - close; - -L_Novice: - if(job_acolyte_q==4) goto QuestOver; - if(job_acolyte_q > 0) goto L_Start; - mes "Huh..? What brings you here? This is a Very dangerous place for a Novice like you. Please Go back quickly."; - emotion e_gasp; - close; - -L_Start: - mes "Oh... Are you the young one who wishes to become an Acolyte...? I've already received the news of your comming from the Santuary."; - next; - mes "[Father Rubalkabara]"; - mes "Let me just check my list of candidates here to make sure you are at the right place......"; - next; - mes "[Father Rubalkabara]"; - if(job_acolyte_q != 1) goto Goback; - mes "You're ^0000ff"+strcharinfo(0)+"^000000, right? Thank you for comming to vist me."; - next; - mes "[Father Rubalkabara]"; - mes "I believe you have already been informed about Acolytes from Father Mareusis. So I won't bother to bore you with any futher lectures on the subject."; - next; - mes "[Father Rubalkabara]"; - mes "Besides, I know your generation doesn't like to be lectured by old men like myself. Hahaha..."; - emotion e_heh; - next; - mes "[Father Rubalkabara]"; - mes "But you might have to learn to endure what your elders say, because God loves to teach his children. You will see."; - next; - mes "[Father Rubalkabara]"; - mes "I will send a message to Father Mareusis stating that you visted me as proof of the completion of your Divine Quest."; - next; - mes "[Father Rubalkabara]"; - mes "You may go back to Prontera now. Farewell and may God bless you."; - set job_acolyte_q,4; - close; - - QuestOver: - mes "Your Divine Quest is has been completed. You may continue in your journey to serve God."; - close; - - Goback: - mes "Hmmm... I do not think you name is on my list of candidates."; - emotion e_hmm; - next; - mes "[Father Rubalkabara]"; - mes "...... Why don't you go back to the Santuary and check again."; - close; + if (BaseJob == Job_Novice) { + if (job_acolyte_q == 6) { + mes "Please take care. They should know that you've met me by the time you arrive at the Prontera Sanctuary."; + next; + mes "[Father Rubalkabara]"; + mes "I've sent a carrier pigeon with a message. I hope it will arrive there safely..."; + close; + } + if (job_acolyte_q != 0) { + if (job_acolyte_q == 2) { + mes "Oh...? You must be the one who aspires to become an Acolyte. I've already received news from the Sanctuary that you might be coming."; + next; + mes "[Father Rubalkabara]"; + mes "Now, your name was " + strcharinfo(0) + ", right? Excellent, thank you for visiting me."; + next; + mes "[Father Rubalkabara]"; + mes "I believe you've been told much about Acolytes from Friar Mareusis. Plus, there's plenty of helpful people in the Prontera Sanctuary."; + next; + mes "[Father Rubalkabara]"; + mes "I guess there's really no need for me to teach you much. Besides, I'm sure your someone from your generation may have trouble listening to an old man like me. Hahaha~"; + next; + mes "[Father Rubalkabara]"; + mes "Still, lessons may come from the places you'd least expect. God loves to teach his children in strange ways. You'll see."; + next; + mes "[Father Rubalkabara]"; + mes "Well, I'll send the message telling them that you've come to visit me. So, you may now return to the Prontera Sanctuary."; + next; + mes "[Father Rubalkabara]"; + mes "Farewell."; + close; + savepoint "prt_fild03",361,255; + set job_acolyte_q,6; + end; + } + else { + mes "Oh..."; + mes "Are you one of the"; + mes "Acolyte applicants...?"; + mes "Let's see..."; + next; + mes "[Father Rubalkabara]"; + mes "Your name is " + strcharinfo(0) + "?"; + mes "I don't think your name"; + mes "is on my list. Hmmm..."; + next; + mes "[Father Rubalkabara]"; + mes "Why don't you go back to the Prontera Sanctuary and check again?"; + close; + } + } + else { + mes "Huh? What brings you here? This is a very dangerous place for a Novice like yourself!"; + close; + } + } + else if (BaseJob == Job_Acolyte) { + callfunc "F_FatherRub"; + end; + //Official Dialog is as follows, however it requires rewriting the priest quest. + if (job_priest_q != 0) { + if (job_priest_q == 1) { + mes "Ah yes, so you're the young Acolyte who wishes to become a Priest."; + next; + mes "[Father Rubalkabara]"; + mes "I've received the message from Bishop Paul. Since you made the pilgrimage, I hope you accomplish your goal of becoming a Priest."; + next; + mes "[Father Rubalkabara]"; + mes "Also, if you have a chance, please visit this abbey again. It's a sacred place for our Church."; + next; + mes "[Father Rubalkabara]"; + mes "Well then, please head to your next destination for your pilgrimage. Be safe in your travels."; + close2; + savepoint "prt_fild03",361,255; + set job_priest_q,2; + end; + } + else if (job_priest_q == 2) { + mes "Please be hurry to the next destination for your pilgrimage. I hope you become a Priest soon."; + close; + } + else { + mes "May I ask why you have returned? Please go back and continue your religious practice."; + close; + } + } + else { + mes "I have no idea what brought you here, but please excuse me."; + close; + } + } + else { + if (BaseJob == Job_Priest) { + mes "Greetings."; + next; + mes "[Father Rubalkabara]"; + mes "Welcome to the Deep. Feel free to sit and contemplate God's message with me. This place is beautiful, even if danger accompanies its sense of serenity..."; + close; + } + else { + mes "Oh ho..."; + mes "Have you come into the Deep here for training? Or are you just a Wanderer?"; + next; + mes "[Father Rubalkabara]"; + mes "Whoever you are, please take care of yourself. The monsters in here are shockingly strong, contrary to their cute appearance."; + close; + } + } } -// -- Mother Marthilda -- -moc_fild07,36,354,4 script Mother Marthilda 79,{ - mes "[Mother Marthilda]"; - if(BaseJob == Job_Acolyte || BaseJob == Job_Priest) callfunc "F_MotherMart"; - if(BaseJob == Job_Novice) goto L_Novice; - -L_Other: - mes "Hello and welcome. I am Mother Marthilda. Are you a weary traveler or a mighty warrior?"; - mes "Whoever you are please make sure to keep your faith in God."; - close; - -L_Novice: - if(job_acolyte_q == 5) goto QuestOver; - if(job_acolyte_q > 0) goto L_Start; - mes "My!! Aren't you a little far from your town? A novice like you could get hurt. Please be safe."; - emotion e_gasp; - close; -L_Start: - mes "Ah, You are one of the Acolyte Applicants. I sincerely welcome you."; - next; - mes "[Mother Marthilda]"; - mes "Let me just check my list of candidates here to make sure you are at the right place......"; - next; - if(job_acolyte_q != 2) goto Goback; - mes "[Mother Marthilda]"; - mes ".... ^0000ff"+strcharinfo(0)+"^000000, Yes! I found you."; - next; - mes "[Mother Marthilda]"; - mes "I will send a message to 'Father Mareusis' stating that you visted me as proof of the completion of your Divine Quest."; - next; - mes "[Mother Marthilda]"; - mes "Thank you for visiting me. I am even more greatfull that you chose to follow your heart and devote your life to the divinity."; - mes "God is only as powerfull as our devotion to him. Remember that."; - next; +moc_fild07,41,355,4 script Ascetic#2aco 95,{ mes "[Mother Marthilda]"; - mes "You may go back to Prontera now."; - mes "Be safe and may God bless."; - set job_acolyte_q,5; - close; - - Goback: - mes "[Mother Marthilda]"; - mes "Hmm....let's see...."; - mes "..Well... I can't find your name on the List ...."; - emotion e_hmm; - next; - mes "[Mother Marthilda]"; - mes "I recommend that you to return to the Santuary and Check again."; - close; - - QuestOver: - mes "Your Divine Quest is has been completed. You may continue in your journey to serve God."; - close; + if (BaseJob == Job_Novice) { + if (job_acolyte_q == 7) { + mes "I will send a carrier pigeon to the Prontera Sanctuary. When you return, the Priest there should already have received my message."; + next; + mes "[Mother Marthilda]"; + mes "I will pray to God, and hope that you become an Acolyte soon."; + close; + } + if (job_acolyte_q != 0) { + if (job_acolyte_q == 3) { + mes "Ah, you must be one of the Acolyte applicants. I sincerely welcome you."; + next; + mes "[Mother Marthilda]"; + mes "What is your name? " + strcharinfo(0) + "? Let's see... Ah, you're on my list."; + next; + mes "[Mother Marthilda]"; + mes "I will send a message to the Sanctuary confirming that you, " + strcharinfo(0) + " visited me and completed your penance."; + next; + mes "[Mother Marthilda]"; + mes "Please return to the Prontera Sanctuary and speak to the Priest in charge."; + close2; + savepoint "moc_fild07",35,355; + set job_acolyte_q,7; + end; + } + else { + mes "Ah...!"; + mes "You must be one"; + mes "of the Acolyte applicants."; + mes "I sincerely welcome you."; + next; + mes "[Mother Marthilda]"; + mes "Now, what is your name?"; + mes "" + strcharinfo(0) + "? Let's see..."; + next; + mes "[Mother Marthilda]"; + mes "Hmm..."; + mes "It seems your name"; + mes "is not on my list..."; + next; + mes "[Mother Marthilda]"; + mes "Perhaps you should return to the Prontera Sanctuary and check the destination for your penance trial once again."; + close; + } + } + else { + mes "..."; + close; + } + } + else if (BaseJob == Job_Acolyte) { + callfunc "F_MotherMart"; + end; + //Official Dialog is as follows, however it requires rewriting the priest quest. + if (job_priest_q != 0) { + if (job_priest_q == 1) { + mes "Hmm..."; + mes "It seems you're"; + mes "training to become"; + mes "a Priest."; + next; + mes "[Mother Marthilda]"; + mes "However, at this point in your pilgrimage, I am not the person that you should be visiting."; + next; + mes "[Mother Marthilda]"; + mes "Perhaps you should ask Bishop Paul or Sister Cecilia once again. Well, may God be with you..."; + close; + } + else if (job_priest_q == 2) { + mes "Ah, are you"; + mes "a Priest trainee...?"; + mes "Welcome!"; + next; + mes "[Mother Marthilda]"; + mes "We Priests are obliged to spread the message of God to"; + mes "the peoples of the Earth."; + next; + mes "[Mother Marthilda]"; + mes "After you become a Priest, your travels may take you to the Morroc Pyramids. I hope that you may release the Undead there from the evil to which they are bound."; + next; + mes "[Mother Marthilda]"; + mes "Well then..."; + mes "I shall pray to"; + mes "God for safety"; + mes "on your journey."; + close; + savepoint "moc_fild07",35,355; + set job_priest_q,3; + end; + } + else if (job_priest_q == 3) { + mes "Please leave soon, and"; + mes "continue your training."; + close; + } + else { + mes "May I ask you the reason you came back? Please continue your training."; + close; + } + } + else { + mes "May God"; + mes "be with you..."; + close; + } + } + else { + if (BaseJob == Job_Priest) { + mes "Hello there~"; + next; + mes "[Mother Marthilda]"; + mes "How is your practice coming along? I certainly hope you're enjoying living in the grace of God."; + close; + } + else { + mes "May God"; + mes "be with you..."; + close; + } + } } -// -- Father Yosuke -- -prt_fild00,208,218,6 script Father Yosuke 120,{ - mes "[Father Yosuke]"; - if(BaseJob == Job_Acolyte || BaseJob == Job_Priest) callfunc "F_FatherYos"; - if(BaseJob == Job_Novice) goto L_Novice; - -L_Other: - mes "What brings you to this place. Try not to bother me ok."; - close; - -L_Novice: - if(job_acolyte_q == 6) goto QuestOver; - if(job_acolyte_q > 0) goto L_Start; - mes "You, Novice...wanna tell me something?"; - mes "If not go back home."; - close; - -L_Start: - mes "Hey!! You there."; - next; - mes "[Father Yosuke]"; - mes "You look like an Acolyte Applicant...am I right?"; - next; - mes "[Father Yosuke]"; - mes "Let me just check my list of candidates here to make sure you are at the right place......"; - next; - if(job_acolyte_q != 3) goto Goback; +prt_fild00,208,218,6 script Ascetic#3aco 98,{ mes "[Father Yosuke]"; - mes "Here we are, ^0000ff"+strcharinfo(0)+"^000000, correct? Not bad, Not bad. You withstood the long journey to get here pretty well."; - next; - mes "[Father Yosuke]"; - mes "I will send a message to 'Father Mareusis' stating that you visted me as proof of the completion of your Divine Quest."; - next; - mes "[Father Yosuke]"; - mes "Now go back to the Sanctuary and don't forget to carry God's teachings with you where ever you go!"; - emotion e_go; - set job_acolyte_q,6; - close; - - Goback: - mes "[Father Yosuke]"; - mes "Interesting.. I can't find your name on my list.."; - emotion e_hmm; - next; - mes "[Father Yosuke]"; - mes "I think you've come here by mistake."; - mes "Go back to the Santuary and check with Father Mareusis."; - close; - - QuestOver: - mes "What ? You Have more Business with me?"; - emotion e_what; - next; - mes "[Father Yosuke]"; - mes "Your Divine Quest is complete. Go back to the Sanctuary Now!"; - emotion e_go; - close; + if (BaseJob == Job_Novice) { + if (job_acolyte_q == 8) { + mes "What?"; + next; + mes "[Father Yosuke]"; + mes "Have you any more business with me?! You don't! Go back to the Sanctuary now!"; + close; + } + if (job_acolyte_q != 0) { + if (job_acolyte_q == 4) { + mes "Hey."; + mes "Whatever you are,"; + mes "you look like an"; + mes "Acolyte applicant."; + mes "Right?"; + next; + mes "[Father Yosuke]"; + mes "Not bad, not bad. You withstood the penance trial pretty well."; + mes "So what's your name?"; + next; + mes "[Father Yosuke]"; + mes "" + strcharinfo(0) + ", huh?"; + next; + mes "[Father Yosuke]"; + mes "Okay. I'll send a message to the Sanctuary that you, " + strcharinfo(0) + ", came to visit me."; + next; + mes "[Father Yosuke]"; + mes "Now go back to the Santuary and finish becoming an Acolyte, kid."; + close; + savepoint "prt_fild00",206,230; + set job_acolyte_q,8; + end; + } + else { + mes "Hey."; + mes "You look like an Acolyte Applicant. Am I right?"; + next; + mes "[Father Yosuke]"; + mes "Not bad at all, you've made it all the way here from Prontera. So what's your name, kid?"; + next; + mes "[Father Yosuke]"; + mes "" + strcharinfo(0) + ", huh? Why isn't your name on my list?"; + next; + mes "[Father Yosuke]"; + mes "You probably made a mistake. Go back to the Santuary, and check with the Bishop."; + close; + } + } + else { + mes "You..."; + mes "Novice."; + mes "There something"; + mes "you wanna tell me?"; + close; + } + } + else if (BaseJob == Job_Acolyte) { + callfunc "F_FatherYos"; + end; + //Official Dialog is as follows, however it requires rewriting the priest quest. + if (job_priest_q != 0) { + if (job_priest_q == 1) { + mes "Hmm..."; + mes "A Priest trainee, eh?"; + next; + mes "[Father Yosuke]"; + mes "Well, you got the wrong person. If you're supposed to meet up with me at all, it'd be later."; + next; + mes "[Father Yosuke]"; + mes "But that's your own fault."; + mes "Now, go back to Church, kid."; + close; + } + else if (job_priest_q == 2) { + mes "Hmm..."; + mes "A Priest trainee, eh?"; + next; + mes "[Father Yosuke]"; + mes "Well, you got the wrong person. If you're supposed to meet up with me at all, it'd be later."; + next; + mes "[Father Yosuke]"; + mes "But that's your own fault. Go back to Church."; + close; + } + else if (job_priest_q == 3) { + mes "Hmm."; + mes "A Priest"; + mes "trainee, eh? "; + mes "Welcome."; + next; + mes "[Father Yosuke]"; + mes "I won't say"; + mes "anything more."; + mes "Just devote your"; + mes "life to God."; + next; + mes "[Father Yosuke]"; + mes "Now go back to church."; + mes "Hereby, the first of"; + mes "your trials is now"; + mes "completed."; + close2; + savepoint "prt_fild00",206,230; + set job_priest_q,4; + end; + } + else if (job_priest_q == 4) { + mes "I told you to go back to church."; + mes "Or do you want to live with me here for the rest of your life...?"; + close; + } + else { + mes "Just go be a Priest. This isn't a playground for kids."; + close; + } + } + else { + mes "...Acolyte, you don't have any business with me here."; + close; + } + } + else { + if (BaseJob == Job_Priest) { + mes "Hey..."; + next; + mes "[Father Yosuke]"; + mes "If you like, come sit here with me and meditate the great truths. God's majesty is truly inspiring..."; + close; + } + else { + mes "Do you have anything to say? Because unfortunately for you,"; + mes "I don't any replies."; + close; + } + } } + diff --git a/npc/jobs/1-1/archer.txt b/npc/jobs/1-1/archer.txt index 0fdf21f96..6557e2922 100644 --- a/npc/jobs/1-1/archer.txt +++ b/npc/jobs/1-1/archer.txt @@ -1,13 +1,14 @@ //===== eAthena Script ======================================= //= Archer Job Quest //===== By: ================================================== -//= kobra_k88 +//= kobra_k88; L0ne_W0lf //===== Current Version: ===================================== -//= 1.6 +//= 1.7 //===== Compatible With: ===================================== -//= eAthena 1.0 + +//= eAthena SVN //===== Description: ========================================= -//= <Description> +//= [Aegis Conversion] +//= Job quest for Archer classes //===== Additional Comments: ================================= //= Fully working //= v1.1 Added instant job change for High Novice [Lupus] @@ -15,169 +16,226 @@ //= v1.4 Optimised and moved first checker to Jfunc1-1 [massdriller] //= 1.5 Now saves/restores all quest skills [Lupus] //= 1.6 Merged back JFunc [Lupus] +//= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf] +//= Arrow reward is now equal to the type sof trunks brought. +//= No longer uses function "F_ToHigh" //============================================================ - -// -- Archer Guildsman -- -payon_in02,64,71,4 script Archer Guildsman 59,{ - callfunc "F_ToHigh",Job_Archer_High,"High Archer",Job_Sniper,"Archer Guildsman"; +payon_in02,64,71,4 script Archer Guildsman#archer 85,{ + if (Upper == 1) { + if (Class == Job_Novice_High && ADVJOB == Job_Sniper || ADVJOB == Job_Clown || ADVJOB == Job_Gypsy) { + mes "[Archer Guildsman]"; + mes "Hey, I know you."; + mes "You took this test"; + mes "before, didn't you?"; + next; + mes "[Archer Guildsman]"; + mes "Ah, you must have been"; + mes "to Valhalla and been reborn."; + mes "Wow, that's so impressive!"; + next; + if (getskilllv(1) < 9) { + mes "[Archer Guildsman]"; + mes "Err..."; + mes "You'd better learn all the Basic Skills first before you can become an Archer."; + next; + mes "[Archer Guildsman]"; + mes "Alright, see you later."; + close; + } + mes "[Archer Guildsman]"; + mes "Well then. I don't"; + mes "need to say anything else."; + mes "I know you'll make a great Archer..."; + next; + skill 143,0,0; + jobchange Job_Archer_high; + skill 147,1,0; + skill 148,1,0; + mes "[Archer Guildsman]"; + mes "Although there's no special"; + mes "reward for you this time, I hope you understand. Take care of yourself."; + close; + } + else { + mes "[Archer Guildsman]"; + mes "Oh...?"; + mes "Hey, what are"; + mes "you doing here...?"; + next; + mes "[Archer Guildsman]"; + mes "I can tell that you're not cut out to be an Archer. It sort of feels like you're meant to do"; + mes "something else..."; + close; + } + } mes "[Archer Guildsman]"; - if(BaseJob == Job_Novice && job_archer_q == 1) goto L_Check; - mes "Good Day. How may I help you?"; + mes "Good day. How may I help you?"; next; - menu "I would like to become an Archer.",M_0,"What are the Requirements?",M_1,"Never mind.",M_End; - - M_0: - mes "[Archer Guildsman]"; - if(BaseJob == Job_Archer) { - mes "Your free spirited nature tells me that you're already an archer....that and the bow and arrow in your hands...Haha"; - emotion e_heh; + switch(select("I want to be an Archer.:I need the requirements, please.:Nothing, thanks.")) { + case 1: + if (BaseJob == Job_Archer) { + mes "[Archer Guildsman]"; + mes "You've already become an Archer..."; close; } - if(BaseJob != Job_Novice) { - mes "I'm sorry but you cannot leave your current job to become an Archer...though I can understand why you would want to do so."; + else if (BaseJob != Job_Archer && BaseJob != Job_Novice) { + mes "[Archer Guildsman]"; + mes "Hmm..."; + mes "You don't look much like a Novice at all..."; + next; + mes "[Archer Guildsman]"; + mes "Anyway, whatever you are, you can't choose a job as an Archer because you have a job already."; close; } - mes "You have made an excellent job choice."; - mes "Please submit your resume so that I can check your qualifications."; - next; - mes "(You hand over your resume)"; - next; - mes "[Archer Guildsman]"; - if(JobLevel < 10) { - mes "It seems that you are not qualified to become an Archer yet. Please take a look at the job requirements once more."; + if (job_archer_q == 0) { + mes "[Archer Guildsman]"; + mes "Do you want to be an Archer?"; + mes "If so, you need to fill out this application form."; + next; + if (select("Apply.:Cancel") == 1) { + set job_archer_q,1; + mes "[Archer Guildsman]"; + mes "Okay, sign here. Alright, um, I'll promote you once you meet the requirements."; + next; + mes "[Archer Guildsman]"; + mes "If you think you've met them already, we can check that now."; + mes "Are you ready?"; + next; + if (select("Yes, I am.:No, not yet.") == 1) { + mes "[Archer Guildsman]"; + mes "Alright, let me check."; + next; + } + else { + mes "[Archer Guildsman]"; + mes "I understand. Be my guest if you want to look at the requirements."; + close; + } + } + mes "[Archer Guildsman]"; + mes "Well, alright."; + mes "See you next time."; close; } - set job_archer_q,1; - mes "Looks good. You have the necesssary skills to become an archer...."; - next; mes "[Archer Guildsman]"; - mes "but.... "; + mes "Are you..." + strcharinfo(0) + "?"; next; - mes "[Archer Guildsman]"; - mes "you must first pass a test in order to do so. I hope you didn't think becoming an archer was going to be that easy. Ha ha!"; - next; - mes "[Archer Guildsman]"; - mes "A well made bow is essential for a good archer, and high quality wood is in turn essential for a well made bow."; - mes "You will be tested on how well you are able to gather high quality wood."; + if (getskilllv(1) < 9) { + mes "[Archer Guildsman]"; + mes "Well, you're not at the right job level. Please check the requirements again."; + next; + mes "[Archer Guildsman]"; + mes "Your job level must be at least 10, and don't forget you should learn all of the Basic Skills. Once you've done that, come back."; + close; + } + if (job_archer_q == 1) { + set .@archer_item1,countitem(1066) * 5; + set .@archer_item2,countitem(1067) * 3; + set .@archer_item3,countitem(1068) * 2; + set .@archer_item4,countitem(1019); + set .@total_archer,.@archer_item1 + .@archer_item2 + .@archer_item3 + .@archer_item4; + set .@total_archer2,(((.@archer_item2 + .@archer_item3) * 2) + .@archer_item4); + mes "[Archer Guildsman]"; + mes "Excellent!"; + mes "Now then,"; + mes "let's see..."; + next; + mes "[Archer Guildsman]"; + mes "I will appraise the value of the various types of Trunks, needed to produce a Bow, that you've brought."; + next; + if (countitem(1066) == 0 && countitem(1067) == 0 && countitem(1068) == 0 && countitem(1019) == 0) { + mes "[Archer Guildsman]"; + mes "Um..."; + mes "Unfortunately you didn't bring any of the required items. There's nothing for me to appraise."; + close; + } + mes "[Archer Guildsman]"; + if (countitem(1066) != 0) mes " Grade S : " + countitem(1066) + " ea, Grade: " + .@archer_item1 + " . "; + if (countitem(1067) != 0) mes " Grade A : " + countitem(1067) + " ea, Grade : " + .@archer_item2 + " . "; + if (countitem(1068) != 0) mes " Grade B : " + countitem(1068) + " ea, Grade : " + .@archer_item3 + " . "; + if (countitem(1019) != 0) mes " Grade C : " + countitem(1019) + " ea, Grade : " + .@archer_item4 + " . "; + if (.@total_archer < 25) { + mes "Total Grades: ^FF0000" + .@total_archer + "^000000 / 40"; + next; + mes "[Archer Guildsman]"; + mes "Less than 25!? You have to get a grade of at least 25! Come on, try harder!"; + close; + } + else { + mes "Total Grades: ^0000FF" + .@total_archer + "^000000 / 40"; + next; + mes "[Archer Guildsman]"; + if (.@total_archer > 40) { + mes "Wow! More than 40!"; + mes "Excellent! Congratulations!"; + } + else if (.@total_archer > 30) { + mes "More than 30! Nice job!"; + mes "Congratulations!"; + } + else if (.@total_archer > 25) { + mes "*Sigh* Well, you just barely passed... Anyway, well done."; + } + } + next; + mes "[Archer Guildsman]"; + mes "I'll transfer these Trunks to our Bow Production Department. Now that you've met the requirements, let me promote you right away!"; + if (countitem(1066) != 0) delitem 1066,countitem(1066); //Tree_Of_Archer_1 + if (countitem(1067) != 0) delitem 1067,countitem(1067); //Tree_Of_Archer_2 + if (countitem(1068) != 0) delitem 1068,countitem(1068); //Tree_Of_Archer_3 + if (countitem(1019) != 0) delitem 1019,countitem(1019); //Wooden_Block + } next; + callfunc "Job_Change",Job_Archer; + callfunc "F_ClearJobVar"; mes "[Archer Guildsman]"; - mes "The higher the quality of the wood you gather the higher your score."; - mes "You must receive a score of ^ff0000at least 25^000000 in order to ^ff0000pass the test^000000."; + mes "Congratulations!"; + mes "You are now an Archer!"; next; mes "[Archer Guildsman]"; - mes "You can find wood by battling ^0000ff'Willows'^000000, a type of tree monster found outside of town in Payon forest."; - mes "They drop the wood in the form of^0000ff 'Trunks'^000000."; + mes "Of course, we expect that you will help contribute towards the future of the Archer Guild with your efforts."; next; mes "[Archer Guildsman]"; - mes "There are a total of 4 different kind of trunks each with a different point value. Gather a variety of trunks and bring them back here for me to grade."; + mes "Ah, your bow has arrived from the Bow Production Department. Here, take it! It's yours~"; + getitem 1702,1; //Bow_ + getitem 1750,.@total_archer2; //Arrow next; mes "[Archer Guildsman]"; - mes "I must warn you, the Willows can be tough monsters so be carefull and remember to rest and use your healing items. Good luck!"; + mes "Now, off you go. Hunt with pride, knowing you were trained by one of the best!"; close; - - M_1: - mes "[Archer Guildsman]"; - if(BaseJob == Job_Archer) goto sM_1a; - if(BaseJob != Job_Novice) goto sM_1b; - mes "Let me explain the requirements for becoming an archer to you:"; - next; - mes "[Archer Guildsman]"; - mes "First of all, you have to have a job level of 9 and you must learn all of the skills that come with that job level."; + case 2: + mes "[Archer Guildsman]"; + mes "I will explain the requirements for being an Archer."; + if (BaseJob != Job_Novice) { + if (BaseJob == Job_Archer) { + next; + mes "[Archer Guildsman]"; + mes "But..."; + mes "You're already an Archer. You should know these already..."; + } + else { + next; + mes "[Archer Guildsman]"; + mes "Wait a second. You've chosen a different job already. You don't need to know this~"; + } + mes "So...Yeah...no real reason to tell you the requirements..."; + } next; mes "[Archer Guildsman]"; - mes "Secondly, you will have to take a test that will determine whether or not you have the skills to become an archer."; + mes "First of all, you have to the Job Level 9 as a Novice, and know all of the Basic Skills."; next; mes "[Archer Guildsman]"; - mes "Those are the requirements. Fullfill them and you will be able to live life as only an Archer can."; - close; - - sM_1a: - mes "Have you already forgotten how you became an Archer?...."; - emotion 1; - close; - sM_1b: - mes "Telling you the requirements won't help you become an Archer since you already have another job."; - close; - - M_End: - mes "[Archer Guildsman]"; - mes "Ok then, take care."; - close; - -L_Check: - mes "Oh, I see you've come back."; - next; - mes "[Archer Guildsman]"; - if((countitem(1066) == 0) && (countitem(1067) == 0) && (countitem(1068) == 0) && (countitem(1019) == 0)) goto sL_NotRdy; - if(SkillPoint > 0) goto sL_SkPoints; - set @Trunk1, countitem(1066)*5; - set @Trunk2, countitem(1067)*3; - set @Trunk3, countitem(1068)*2; - set @Trunk4, countitem(1019); - set @TrunkTotal, @Trunk1 + @Trunk2 + @Trunk3 + @Trunk4; - - mes "Lets see....."; - next; - mes "[Archer Guildsman]"; - mes "You have:"; - mes "^0000FF" +countitem(1066)+ "^000000 Fine grained trunks for ^ff0000" +@Trunk1+ "^000000 points,"; - mes "^0000FF" +countitem(1067)+ "^000000 Solid trunks for ^ff0000" +@Trunk2+ "^000000 points,"; - mes "^0000FF" +countitem(1068)+ "^000000 Barren trunks for ^ff0000" +@Trunk3+ "^000000 points,"; - mes "^0000FF" +countitem(1019)+ "^000000 Trunks for ^ff0000" +@Trunk4+ "^000000 points....."; - next; - mes "[Archer Guildsman]"; - mes "That gives you a total score of: ^ff0000" +@TrunkTotal+"^000000"; - next; - mes "[Archer Guildsman]"; - if(@TrunkTotal < 25) goto sL_Failed; - - mes "Very good! You have passed the test. Congratulations, you are now fully qualified to become an archer."; - emotion 21; - next; - mes "[Archer Guildsman]"; - mes "I will now transform you..."; - next; - callfunc "Job_Change",Job_Archer; - callfunc "F_ClearJobVar"; // clears all job variables for the current player - mes "[Archer Guildsman]"; - mes "In exchange for the trunks you brought in I will give you this Bow and some arrows. Please take them."; - next; - getitem 1702,1;//Items: Bow_, - getitem 1750,200;//Items: Arrow, - delitem 1066, countitem(1066);//Items: Fine-grained_Trunk, - delitem 1067, countitem(1067);//Items: Solid_Trunk, - delitem 1068, countitem(1068);//Items: Barren_Trunk, - delitem 1019, countitem(1019);//Items: Trunk, - mes "[Archer Guildsman]"; - mes "An Archer knows no bounds so live your life to its fullest. I know you will make an exellent archer."; - next; - mes "[Archer Guildsman]"; - mes "Farewell and good luck on your journey."; - close; - - sL_NotRdy: - mes "What? You didn't bring any trunks back for me to grade? Let me explain the test requirements again just in case you forgot..."; - emotion 1; + mes "An Archer needs extremely high concentration and reflexes, so we do not accept those who have little patience."; next; mes "[Archer Guildsman]"; - mes "There are a total of ^5555FF4 different kind of Trunks^000000 each with a different point value."; - mes "Gather a variety of Trunks and bring them back here for me to grade."; + mes "You also have to gather ^FF0000Trunks^000000. There are 4 different types of Trunks, each of differing quality. You'll be given different grades for your Trunks, depending on their quality."; next; mes "[Archer Guildsman]"; - mes "You can find Trunks by battling ^0000ff'Willows'^000000, a type of tree monster found outside of town in Payon forest."; + mes "In order to become an Archer, you must receive a grade of at least ^0000FF25^000000 points out of 40. You can get Trunks from 'Willow,' the tree. Be careful, though. They can be tough monsters."; close; - sL_SkPoints: - mes "You need to use up all of your skill points before I can make you an Archer."; + case 3: close; - sL_Failed: - mes "I'm sorry but your score is too low. I'm afraid that you have failed the test."; - next; - mes "[Archer Guildsman]"; - mes "Fortunatley for you I'm somewhat softhearted so I'll give you another chance. Go gather some more trunks and come back."; - next; - mes "[Archer Guildsman]"; - mes "Hopefull they will be of a high enough quality for you to pass the test."; - close; - + } } + diff --git a/npc/jobs/1-1/mage.txt b/npc/jobs/1-1/mage.txt index 93ad891f5..2be2c586d 100644 --- a/npc/jobs/1-1/mage.txt +++ b/npc/jobs/1-1/mage.txt @@ -1,13 +1,14 @@ //===== eAthena Script ======================================= //= Mage Job Quest //===== By: ================================================== -//= kobra_k88 +//= kobra_k88; L0ne_W0lf //===== Current Version: ===================================== -//= 1.6 +//= 1.7 //===== Compatible With: ===================================== -//= eAthena 1.0 + +//= eAthena SVN //===== Description: ========================================= -//= <Description> +//= [Aegis Conversion] +//= Job quest for Mage classes //===== Additional Comments: ================================= //= Fully working //= 1.1 Fixed input ingridients bug [Lupus] @@ -16,480 +17,700 @@ //= v1.4 Optimised and moved first checker to Jfunc1-1 [massdriller] //= 1.5 Now saves/restores all quest skills [Lupus] //= 1.6 Merged back JFunc, CHANGED NUMBERS TO CONSTANTS [Lupus] +//= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf] +//= No longer uses function "F_ToHigh" //============================================================ - -// -- Expert Mage -- -geffen_in,164,124,4 script Expert Mage 123,{ - callfunc "F_ToHigh",Job_Mage_High,"High Mage",Job_High_Wizard,"Expert Mage"; - if(BaseJob == Job_Novice && job_magician_q >= 1) goto L_BeMage; - - mes "[Expert Mage]"; - mes "Hi hi! What can I help you with today?"; -M_Menu: +geffen_in,164,124,4 script Mage Guildsman 123,{ + if (Upper == 1) { + if (ADVJOB == Job_High_Wizard || ADVJOB == Job_Professer) { + if (Class == Job_Novice_High) { + mes "[Mage Guildsman]"; + mes "Whoa, long time no see! But weren't you supposed to be dead?"; + next; + mes "[Mage Guildsman]"; + mes "Ah, you must have been reborn. Well, I'm glad to have you back."; + next; + if (getskilllv(1) < 9) { + mes "[Mage Guildsman]"; + mes "I'm sorry, but I don't think you're ready to learn magic yet. Why don't you go finish learning the Basic Skills first?"; + next; + mes "[Mage Guildsman]"; + mes "Take your time. The more you learn, the more ready you'll be to learn magic again."; + close; + } + mes "[Mage Guildsman]"; + mes "Well, since you have passed the Mage test once, I will not question your qualification. You want to have your magic skills back immediately, don't you?"; + next; + skill 143,0,0; + jobchange Job_Mage_High; + skill 157,1,0; + mes "[Mage Guildsman]"; + mes "Wow, for some reason, you look way better than you did before. Anyway, I believe you will do a better job being a Mage as well."; + close; + } + else { + mes "[Mage Guildsman]"; + mes "Is there anything more I can help you with? If not, why don't you go test your skills? The world is waiting for you~!"; + close; + } + } + else { + mes "[Mage Guildsman]"; + mes "What, are you interested in the Mage guild? I didn't want to tell you this, but you don't belong here."; + next; + mes "[Mage Guildsman]"; + mes "I am not sure why you're still standing in front of me, but I can tell that you're not meant to be a Mage."; + close; + } + } + mes "[Mage Guildsman]"; + mes "Yo. What's up?"; next; - menu "I'm in love with magic, make me a Mage!",M_0,"Tell me the Requirements.",M_1,"Nothing thanks.",M_End; - - M_0: - mes "[Expert Mage]"; - mes "You wanna be a Mage? Hmmm....."; - next; - mes "[Expert Mage]"; - if(BaseJob == Job_Mage) { - mes "You should really get yourself a mirror. Then you could see that you are ^ff0000already a Mage^000000."; - mes "It may even help you fix up your hair do."; - emotion e_swt; + switch(select("I want to be a Mage.:Tell me the Requirements.:Pretty much nothing.")) { + case 1: + mes "[Mage Guildsman]"; + if (BaseJob == Job_Mage) { + mes "Hey, haven't you realized? You're aleady a Mage, silly!"; + next; + mes "[Mage Guildsman]"; + mes "One of these days you'll realize the power inside of you when you can make Fire with your mind!"; + close; + } + if (BaseJob != Job_Novice) { + mes "Hey~ C'mon. Quit playing games. You can't be a Mage because you already have another Job."; + close; + } + if (job_magician_q == 0) { + mes "Wanna be a Mage, eh...?"; + if (sex) + mes "Hey, look at you! You're kinda cute~! Not my type though..."; + else { + mes "Oooh, you're such a hot babe~!"; + mes "I like girls like you~"; + } + next; + mes "[Mage Guildsman]"; + mes "Right, you said that you wanna be a Mage? Alright then, please sign the Mage Application."; + next; + if (select("Sign Up.:Quit.") == 1) { + mes "[Mage Guildsman]"; + mes "Okay. Sign right there. Oh, you're very good at spelling. Alright. So your name is... " + strcharinfo(0) + "."; + next; + mes "[Mage Guildsman]"; + mes "Now it's time for"; + mes "me to give you the test."; + switch(rand(3)) { + case 1: + mes "Make me a ^3355FFMixed Solution No. 1^000000"; + mes "and bring it back to me."; + set job_magician_q,1; + break; + case 2: + mes "Make me a ^3355FFMixed Solution No. 2^000000"; + mes "and bring it back to me."; + set job_magician_q,2; + break; + case 3: + mes "Make me a ^3355FFMixed Solution No. 3^000000"; + mes "and bring it back to me."; + set job_magician_q,3; + break; + default: + mes "Make me a ^3355FFMixed Solution No. 4^000000"; + mes "and bring it back to me."; + set job_magician_q,4; + } + next; + getitem 1092,1; //Empty_Cylinder + mes "[Mage Guildsman]"; + mes "You can find the neccessary ingredients inside the Guide Book in this Guild. So you better look up what you need before you go."; + next; + mes "[Mage Guildsman]"; + mes "Once you collect all the ingredients you, use the machine in the center of the room to mix the solution. Good luck!"; + close; + } + mes "[Mage Guildsman]"; + mes "Whaaaaat~?! Right after you tell me that you wanna become a Mage, you change your mind?! Be a bit more decisive!"; close; } - if(BaseJob != Job_Novice) { - mes "Oh...I'm sorry. I know they say 2 is always better than 1, but when it comes to Jobs, it's a No No."; - mes "Try to stay positive. Your current job can't be that bad."; - emotion e_no; + mes "Yeah? Ready...?"; + if (getskilllv(1) < 9) { + mes "Oh, what a bummer. You haven't met the requirements yet."; + next; + mes "[Mage Guildman]"; + mes "Go back and reach Novice Job level 9 first. Don't forget that you also have to learn all of the Basic Skills before you come back."; close; } - mes "Okays, just fill out this application form pleeassse."; + mes "" + strcharinfo(0) + "'s test was..."; + if (job_magician_q == 1) + mes "Making Mixed Solution No. 1."; + else if (job_magician_q == 2) + mes "Making Mixed Solution No. 2."; + else if (job_magician_q == 3) + mes "Making Mixed Solution No. 3."; + else + mes "Making Mixed Solution No. 4."; next; - mes "(you fill out the form and hand it back to her)"; + mes "[Mage Guildsman]"; + mes "Okay, let me"; + mes "check if you made your"; + mes "solution accurately..."; next; - mes "[Expert Mage]"; - if(JobLevel < 10) { - mes "Oh...I'm sorry. You need ^ff0000Job level 9^000000 and all of the ^0000ffBasic Skills^000000 before you can become a Mage."; - mes "Go out and kill some more Fabres okays."; - emotion e_no; + mes "[Mage Guildsman]"; + if (countitem(1071) == 0 && countitem(1085) == 0 && countitem(1086) == 0 && countitem(1087) == 0 && countitem(1090) == 0) { + mes "Hey, where's the Solution"; + mes "I asked for...? I can't check it if you don't show it to me, right?"; close; } - mes "Oooh~ You have very nice hand writing ^0000dd"+ strcharinfo(0) +"^000000, and more importantly you have met the necessary prerequisites to become a mage."; + else { + if (job_magician_q == 1 && countitem(1071) == 0) || (job_magician_q == 2 && countitem(1085) == 0 || job_magician_q == 3 && countitem(1086) == 0 || job_magician_q == 4 && countitem(1087) == 0) { + mes "Wait."; + mes "This isn't the"; + mes "Solution I asked for!"; + next; + mes "[Mage Guildsman]"; + if (job_magician_q == 1) + mes "You're supposed to make Mixed Solution No. 1 and bring it back to me. Now go and try it again."; + else if (job_magician_q == 2) + mes "You're supposed to make Mixed Solution No. 2 and bring it back to me. Now go and try it again."; + else if (job_magician_q == 3) + mes "You're supposed to make Mixed Solution No. 3 and bring it back to me. Now go and try it again."; + else + mes "You're supposed to make Mixed Solution No. 4 and bring it back to me. Now go and try it again."; + + if (countitem(1071) != 0) delitem 1071,1; //Mage_Test_1 + else if (countitem(1085) != 0) delitem 1085,1; //Mage_Test_2 + else if (countitem(1086) != 0) delitem 1086,1; //Mage_Test_3 + else if (countitem(1087) != 0) delitem 1087,1; //Mage_Test_4 + else delitem 1090,1; //Mage_Test_Etc + close; + } + } + if (countitem(1071) != 0) delitem 1071,1; //Mage_Test_1 + else if (countitem(1085) != 0) delitem 1085,1; //Mage_Test_2 + else if (countitem(1086) != 0) delitem 1086,1; //Mage_Test_3 + else if (countitem(1087) != 0) delitem 1087,1; //Mage_Test_4 + else delitem 1090,1; //Mage_Test_Etc + mes "Hmm. I can see that you tried really hard. For a beginner's attempt, this is really good."; + mes "Great work!"; next; - mes "[Expert Mage]"; - mes "The only thing left to do is to pass the official Geffen Mage Test. Let me give you the details of the test."; + mes "[Mage Guildsman]"; + mes "Alright! I'm pleased to say that you've passed the Mage Test. I will transform you right away!"; next; - set job_magician_q, rand(1,4); - - L_Explain: - mes "[Expert Mage]"; - if(job_magician_q == 1) mes "Your test is to make ^0000ff'Mixed Solution No.1'^000000 and bring it back to me."; - if(job_magician_q == 2) mes "Your test is to make ^00aa00'Mixed Solution No.2'^000000 and bring it back to me."; - if(job_magician_q == 3) mes "Your test is to make ^ff0000'Mixed Solution No.3'^000000 and bring it back to me."; - if(job_magician_q == 4) mes "Your test is to make ^ffbb00'Mixed Solution No.4'^000000 and bring it back to me."; - + mes "[Mage Guildsman]"; + mes "*Ahem*"; + mes "Congratulations!"; + mes "You are now a Mage!"; next; - if(countitem(1092) == 0) getitem 1092,1;//Items: Empty_Test_Tube, - mes "[Expert Mage]"; - mes "You can get the necessary ingredients in the ^5533FF'Guide Book'^000000 in this room."; - mes "Refer to it to get a list of the proper ingredients for the solution."; + callfunc "Job_Change",Job_Mage; + callfunc "F_ClearJobVar"; + set Zeny,Zeny+50; + mes "[Mage Guildsman]"; + mes "'Welcome to My World~'"; + mes "Heh heh, I just wanted to say that. You know, it's a quote from a well-known movie~"; next; - mes "[Expert Mage]"; - mes "When you are ready to mix it, use the ^ff0000'Mixing Machine'^000000 in the center to mix the solution."; + mes "[Mage Guildsman]"; + mes "Now that you're a Mage just like us, let's be friends, okay?"; + close; + case 2: + mes "[Mage Guildsman]"; + mes "Wanna be a Mage, eh?"; + if (sex) + mes "For a cutie like you, I'd be happy to explain the requirements!"; + else + mes "I'd be happy to explain the requirements for a pretty girl like you!"; + next; + mes "[Mage Guildsman]"; + mes "First of all, you have to reach Novice Job Level 10 and learn all of the Basic Skills. Then, you'll have to pass the Mage Test."; + next; + if (job_magician_q != 0) { + mes "[Mage Guildsman]"; + mes "Your test is to"; + switch(job_magician_q) { + case 1: + mes "make me a"; + mes "^3355FFMixed Solution No. 1^000000"; + mes "and bring it back to me."; + break; + case 2: + mes "make me a"; + mes "^3355FFMixed Solution No. 2^000000"; + mes "and bring it back to me."; + break; + case 3: + mes "make me a"; + mes "^3355FFMixed Solution No. 3^000000"; + mes "and bring it back to me."; + break; + default: + mes "make me a"; + mes "^3355FFMixed Solution No. 4^000000"; + mes "and bring it back to me."; + } + next; + mes "[Mage Guildsman]"; + mes "You can look up the ingredients you'll need to make the Solution inside the Guide Book in this Guild."; + } + else { + mes "[Mage Guildsman]"; + mes "You will be informed as to which Mixed Solution you will need to create after signing the application form."; + } next; - mes "[Expert Mage]"; - mes "Good Luck! I'll be waiting."; + mes "[Mage Guildsman]"; + mes "Let me know when you are ready to become a Mage, alright?"; close; - - M_1: - mes "[Expert Mage]"; - mes "First of all, you have to reach Novice Level 9 and have learned all of the Basic Skills."; - mes "Secondly, you have to pass the Mage Test."; - goto M_Menu; - M_End: - mes "[Expert Mage]"; - mes "Okays. Bye bye."; + case 3: + mes "[Mage Guildsman]"; + mes "Nothing...?"; close; + } +} -L_BeMage: - mes "[Expert Mage]"; - mes "Oh, you're back. Lets see...."; - next; - mes "[Expert Mage]"; - if(countitem(1090) >= 1) goto L_Retry;//Items: Unknown_Test_Tube, - if((countitem(1071)<1) && (countitem(1085)<1) && (countitem(1086)<1) && (countitem(1087)<1)) goto L_NoSol;//Items: Unknown_Test_Tube, Unknown_Test_Tube, Unknown_Test_Tube, Unknown_Test_Tube, - - if(SkillPoint > 0) mes "You need to use up all of your skill points before I can make you a Mage."; - if(SkillPoint > 0) close; - - mes ".....The color's not quit right.... there is a little to much precipitate..... hmmm......"; - next; - mes "[Expert Mage]"; - mes "Well it's not perfect but it seems you worked very hard on this so...... alright! I'll let you pass! You are now officially qualified to become a mage!"; - emotion e_no1; - next; - mes "[Expert Mage]"; - mes "Abra-kadabra and hocus pocus, turn this young novice into a ^00aa00MAGE^000000!!"; - next; - callfunc "Job_Change",Job_Mage; - - set Zeny,Zeny+500; - if(job_magician_q == 1) delitem 1071,1;//Items: Unknown_Test_Tube, - if(job_magician_q == 2) delitem 1085,1;//Items: Unknown_Test_Tube, - if(job_magician_q == 3) delitem 1086,1;//Items: Unknown_Test_Tube, - if(job_magician_q == 4) delitem 1087,1;//Items: Unknown_Test_Tube, - - callfunc "F_ClearJobVar"; // clears all job variables for the current player - mes "[Expert Mage]"; - mes "'Welcome to My World~ teh hehe. I've always wanted to say that. Anyways, congratulations! You're one of us now so let's be friends okays!"; - emotion e_heh; +geffen_in,164,112,4 script Mixing Machine 111,{ + mes "[Mixing Machine]"; + mes "This machine is the property of the Geffen Mage Guild and is used only for mixing solutions for magic purposes."; next; - mes "[Expert Mage]"; - mes "Good luck to ya and take care!"; - close; - - L_Retry: - mes "I'm sorry but the solution you have is no good. I'm afraid that you didn't pass the test. You can try again though."; - mes "Let me explain the test for you once more okays."; - emotion e_swt; + if (select("Use Machine.:Cancel.") == 1) { + mes "[Mixing Machine]"; + mes "Choose the"; + mes "Solvent for"; + mes "the Solution."; next; - delitem 1090,1;//Items: Unknown_Test_Tube, - goto L_Explain; - - L_NoSol: - mes "Where is the solution I asked for? I'm sorry but I can't check the solution when you don't have it. Let me remind you what solution you need."; - emotion e_what; + switch(select("Payon Solution.:Morroc Solution.:No Solvent.")) { + case 1: + if (countitem(1089) == 0) { + mes "[Mixing Machine]"; + mes "Error."; + mes "Cannot find the item."; + mes "Please check again."; + mes "Process Halting."; + close; + } + set .@mixitem2,1; + break; + case 2: + if (countitem(1088) == 0) { + mes "[Mixing Machine]"; + mes "Error."; + mes "Cannot find the item."; + mes "Please check again."; + mes "Process Halting."; + close; + } + set .@mixitem2,2; + break; + case 3: + set .@mixitem2,0; + break; + } + while (1) { + if (.@progress == 2) { + mes "[Mixing Machine]"; + if (.@mixitem1_1 != 0) mes "Jellopy: " + .@mixitem1_1 + " ea."; + if (.@mixitem1_2 != 0) mes "Fluff: " + .@mixitem1_2 + " ea."; + if (.@mixitem1_3 != 0) mes "Milk: " + .@mixitem1_3 + " ea."; + if (.@mixitem2 == 0) mes "Solvent: None."; + if (.@mixitem2 == 1) mes "Solvent: Payon Solution."; + if (.@mixitem2 == 2) mes "Solvent: Morroc Solution."; + next; + mes "[Mixing Machine]"; + mes "Please choose if you wish to begin mixing, or to re-enter the number of items to be mixed."; + next; + switch(select("Begin Mixing.:Re-Enter Number of Items.:Reset.")) { + case 1: + mes "[Mixing Machine]"; + mes "Please place the items into the Mixing Receptacle. Make sure the item amounts are correct."; + next; + mes "[Mixing Machine]"; + mes "You cannot adjust or restore items once they are placed into the Mixing Receptacle."; + next; + mes "[Mixing Machine]"; + mes "If everything is correct, press the 'Mix' button when you are ready. Otherwise, press the 'Cancel' button."; + next; + if (select("Press 'Mix' Button.:Press 'Cancel' Button.") == 1) { + mes "[Mixing Machine]"; + mes "Place items into the Mixing Receptacle now. Please wait."; + next; + mes "[Mixing Machine]"; + if (countitem(909) < .@mixitem1_1) { + mes "Insufficient Jellopy."; + mes "Please Check again."; + mes "Process Halted."; + close; + } + else if (countitem(914) < .@mixitem1_2) { + mes "Insufficient Fluff."; + mes "Please Check again."; + mes "Process Halted."; + close; + } + else if (countitem(519) < .@mixitem1_3) { + mes "Insufficient Milk."; + mes "Please Check again."; + mes "Process Halted."; + close; + } + else if (.@mixitem2 == 1 || .@mixitem2 == 2) { + if (countitem(1089) == 0 && countitem(1088) == 0) { + mes "Solution not found."; + mes "Please Check again."; + mes "Process Halted."; + close; + } + } + if (.@mixitem1_1 != 0) delitem 909,.@mixitem1_1; //Jellopy + if (.@mixitem1_2 != 0) delitem 914,.@mixitem1_2; //Fluff + if (.@mixitem1_3 != 0) delitem 519,.@mixitem1_3; //Milk + if (.@mixitem2 == 1) delitem 1089,1; //Payon_Potion + if (.@mixitem2 == 2) delitem 1088,1; //Morocc_Potion + mes "Items are Ready."; + mes "Close the Lid."; + set .@progress,3; + next; + } + break; + case 2: + set .@continue,0; + next; + break; + case 3: + set .@mixitem1_1,0; + set .@mixitem1_2,0; + set .@mixitem1_3,0; + set .@progress,0; + set .@continue,0; + mes "[Mixing Machine]"; + mes "Reset Complete."; + mes "Initiate again?"; + next; + if (select("Yes.:No.") == 1) + break; + mes "[Mixing Machine]"; + mes "Process Halted."; + mes "Thank you."; + close; + } + if (.@progress == 3) break; + } + else if (.@progress == 1) { + mes "[Mixing Machine]"; + mes "Nothing found."; + next; + } + mes "[Mixing Machine]"; + mes "Select items to mix."; + while(1) { + switch(select("Jellopy.:Fluff.:Milk.:Ready to Mix.")) { + case 1: + while(1) { + input .@input; + if (.@input > 10000) { + next; + mes "[Mixing Machine]"; + mes "Error: Item limit exceeded. Please enter values less than 10,000 try again."; + next; + } + else { + if (countitem(909) > 0) set .@mixitem1_1,.@mixitem1_1 + .@input; + set .@progress,2; + break; + } + } + break; + case 2: + while(1) { + input .@input; + if (.@input > 10000) { + next; + mes "[Mixing Machine]"; + mes "Error: Item limit exceeded. Please enter values less than 10,000 try again."; + next; + } + else { + if (countitem(914) > 0) set .@mixitem1_2,.@mixitem1_2 + .@input; + set .@progress,2; + break; + } + } + break; + case 3: + while(1) { + input .@input; + if (.@input > 10000) { + next; + mes "[Mixing Machine]"; + mes "Error: Item limit exceeded. Please enter values less than 10,000 try again."; + next; + } + else { + if (countitem(519) > 0) set .@mixitem1_3,.@mixitem1_3 + .@input; + set .@progress,2; + break; + } + } + break; + + case 4: + if (.@progress != 2) + set .@progress,1; + set .@continue,1; + next; + } + if (.@continue) break; + } + } + mes "[Mixing Machine]"; + mes "Please enter the "; + mes "Serial Number of"; + mes "the Magic Powder."; next; - goto L_Explain; + while(1) { + input .@input; + if (.@input < 1000 || .@input > 9999) { + mes "[Mixing Machine]"; + if (.@input == 0) { + mes "Do you want to skip this Menu?"; + next; + if (select("Yes.:No.") == 1) { + break; + } + } + else { + mes "Invalid Serial Number."; + mes "Please try again."; + next; + } + } + else { + mes "[Mixing Machine]"; + mes "The Serial Number is #" + .@input + ", correct?"; + next; + if (select("Confirm.:Cancel.") == 1) { + if (.@input == 8472) + set .@magic_powder,1; + else if (.@input == 3735) + set .@magic_powder,2; + else if (.@input == 2750) + set .@magic_powder,3; + else if (.@input == 5429) + set .@magic_powder,4; + else + set .@magic_powder,5; + } + break; + } + } + mes "[Mixing Machine]"; + mes "Choose a"; + mes "Catalyst Stone."; + next; + switch(select("Yellow Gemstone.:Red Gemstone.:Blue Gemstone.:1carat Diamond.:Skip.")) { + case 1: set .@mixitem3,1; break; + case 2: set .@mixitem3,2; break; + case 3: set .@mixitem3,3; break; + case 4: set .@mixitem3,4; break; + case 5: break; + } + mes "[Mixing Machine]"; + mes "All Set."; + mes "Initiating"; + mes "Mixing process."; + mes "Please Wait."; + next; + mes "[Mixing Machine]"; + mes "- Proverb of the Day -"; + switch(rand(1,5)) { + case 1: + mes "An Eye for an Eye: When you take from a person, you must replace or repay in some way."; + break; + case 2: + mes "Credibility is a Man's Currency: There's a value in genuine trust that cannot be measured."; + break; + case 3: + mes "What Goes Around Comes Around: Ultimately, you will be treated in the way you treat others."; + mes "It means 'When you harm Another you will be harmed by him in an unavoidable situation'."; + break; + case 4: + mes "A good neighbor is better than a distant brother: When you need help, you can count on those close to you."; + break; + default: + mes "Birds of a Feather Flock Together: You can look at a person's friends as an indicator of their character."; + } + next; + if (.@mixitem1_1 == 2 && .@mixitem1_2 == 3 && .@mixitem1_3 == 1 && .@mixitem2 == 1 && .@mixitem3 == 1 && .@magic_powder == 1) { + mes "[Mixing Machine]"; + mes "Mage Test Solution No. 1."; + getitem 1071,1; //Mage_Test_1 + next; + } + else if (.@mixitem1_1 == 3 && .@mixitem1_2 == 1 && .@mixitem1_3 == 1 && .@mixitem2 == 0 && .@mixitem3 == 2 && .@magic_powder == 2) { + mes "[Mixing Machine]"; + mes "Mage Test Solution No. 2."; + getitem 1085,1; //Mage_Test_2 + next; + } + else if (.@mixitem1_1 == 6 && .@mixitem1_2 == 1 && .@mixitem1_3 == 0 && .@mixitem2 == 1 && .@mixitem3 == 3 && .@magic_powder == 3) { + mes "[Mixing Machine]"; + mes "Mage Test Solution No. 3."; + getitem 1086,1; //Mage_Test_3 + next; + } + else if (.@mixitem1_1 == 2 && .@mixitem1_2 == 3 && .@mixitem1_3 == 0 && .@mixitem2 == 2 && .@mixitem3 == 4 && .@magic_powder == 4) { + mes "[Mixing Machine]"; + mes "Mage Test Solution No. 4."; + getitem 1087,1; //Mage_Test_4 + next; + } + else { + mes "[Mixing Machine]"; + mes "Unexpected"; + mes "Error Occurred."; + getitem 1090,1; //Mage_Test_Etc + next; + } + mes "[Mixing Machine]"; + mes "Mixing Complete."; + mes "Thank you."; + close; + } + close; +} +pay_arche,122,100,0 script Dollshoi 88,{ + mes "[Mage Guildsman]"; + mes "You want a Solution? Hmm, give me 50 Zeny and at least 1 Empty Test Tube."; + next; + if (select("Alright, Deal.:Nah, forget it.") == 1) { + mes "[Mage Guildsman]"; + if (Zeny < 50) { + mes "Hey! You don't have enough money to cover my 50 Zeny charge."; + close; + } + if (countitem(1092) == 0) { + mes "You can't carry solutions without a bottle! Bring me an Empty Test Tube."; + close; + } + delitem 1092,1; //Empty_Cylinder + set zeny,zeny-50; + getitem 1089,1; //Payon_Potion + } + close; } -// -- Solutions Guide Book -- -geffen_in,177,112,1 script Solutions Guide Book 111,{ - mes "[Solutions Guide Book]"; - mes "I belong to Geffen Magic Academy. Please handle with care."; +moc_ruins,91,150,0 script Ponka-Hontas 93,{ + mes "[Mage Guildsman]"; + mes "Would you like a Solution? Then please give me 50 Zeny and at least 1 Empty Testtube."; next; - menu "Solution No. 1.",Sol1,"Solution No. 2.",Sol2,"Solution No. 3.",Sol3,"Solution No. 4.",Sol4,"Close.",Cancel; + IF (select("Alright, Deal.:Nah, forget it.") == 1) { + mes "[Mage Guildsman]"; + if (zENY < 50) { + mes "I'm sorry, but you don't have enough money to cover the 50 Zeny fee."; + close; + } + if (countitem(1092) == 0) { + mes "You can't carry liquids without using a bottle. Bring an Empty Test Tube the next time you see me."; + close; + } + delitem 1092,1; //Empty_Cylinder + set zeny,zeny-50; + getitem 1088,1; //Morocc_Potion + } + CLOSE; +} - Sol1: +geffen_in,177,112,4 script Bookshelf 111,{ + mes "[Guide Book]"; + mes "This Guide Book is the property of the Geffen Mage Association. Please handle with care."; + next; + switch(select("Solution No. 1.:Solution No. 2.:Solution No. 3.:Solution No. 4.:Close.")) { + case 1: mes "[Mage Test Solution No. 1]"; - mes "* Ingredients list *"; - mes " - Jellopy 2 ea"; - mes " - Fluff 3 ea"; - mes " - Milk 1 ea"; + mes "* Ingredients List *"; + mes "2 Jellopy"; + mes "3 Fluff"; + mes "1 Milk"; next; mes "[Mage Test Solution No. 1]"; mes "* Solvent Agent *"; - mes " Payon Solution"; - mes " Where to find: A Small Spring in"; - mes " Archer Village, Payon."; + mes "Payon Solution"; + mes "Where to Find:"; + mes "A small spring in Payon, the Archer Village."; next; mes "[Mage Test Solution No. 1]"; - mes "* Chemical ingredients *"; - mes " - 8472"; + mes "* Magic Power Serial Code *"; + mes "8472"; next; mes "[Mage Test Solution No. 1]"; - mes "* A Catalyst *"; - mes " - Yellow Gemstone"; - mes " (Mixing Machine Will provide"; - mes " this item.)"; + mes "* Catalyst *"; + mes "Yellow Gemstone"; + mes "(Provided by"; + mes "Mixing Machine)"; close; - Sol2: + case 2: mes "[Mage Test Solution No. 2]"; - mes "* Ingredients list *"; - mes " - Jellopy 3 ea"; - mes " - Fluff 1 ea"; - mes " - Milk 1 ea"; + mes "* Ingredients List *"; + mes "3 Jellopy"; + mes "1 Fluff"; + mes "1 Milk"; next; mes "[Mage Test Solution No. 2]"; mes "* Solvent Agent *"; - mes " - Not Appliable."; + mes "None"; next; mes "[Mage Test Solution No. 2]"; - mes "* Chemical ingredients *"; - mes " - 3735"; + mes "* Magic Power Serial Code *"; + mes "3735"; next; mes "[Mage Test Solution No. 2]"; - mes "* A Catalyst *"; - mes " - Red Gemstone"; - mes " (Mixing Machine Will provide"; - mes " this item.)"; + mes "* Catalyst *"; + mes "Red Gemstone"; + mes "(Provided by"; + mes "Mixing Machine)"; close; - Sol3: + case 3: mes "[Mage Test Solution No. 3]"; - mes "* Ingredients list *"; - mes " - Jellopy 6 ea"; - mes " - Fluff 1 ea"; + mes "* Ingredients List *"; + mes "6 Jellopy"; + mes "1 Fluff"; next; mes "[Mage Test Solution No. 3]"; mes "* Solvent Agent *"; - mes " Payon Solution"; - mes " Where to find: A Small Spring in"; - mes " Archer Village, Payon."; + mes "Payon Solution"; + mes "Where to Find:"; + mes "A small spring in Payon, the Archer Village."; next; mes "[Mage Test Solution No. 3]"; - mes "* Chemical ingredients *"; - mes " - 2750"; + mes "* Magic Power Serial Code *"; + mes "2750"; next; mes "[Mage Test Solution No. 3]"; - mes "* A Catalyst *"; - mes " - Blue Gemstone"; - mes " (Mixing Machine Will provide"; - mes " this item.)"; + mes "* Catalyst *"; + mes "Blue Gemstone"; + mes "(Provided by"; + mes "Mixing Machine)"; close; - Sol4: + case 4: mes "[Mage Test Solution No. 4]"; - mes "* Ingredients list *"; - mes " - Jellopy 2 ea"; - mes " - Fluff 3 ea"; + mes "* Ingredients List *"; + mes "2 Jellopy"; + mes "3 Fluff"; next; mes "[Mage Test Solution No. 4]"; mes "* Solvent Agent *"; - mes " Morroc Solution"; - mes " Where to find: A Small Spring"; - mes " Near the Enterance of Pyramid"; - mes " in Morroc."; + mes "Morroc Solution"; + mes "Where to Find:"; + mes "A small spring near entrance of pyramid in Morroc."; next; mes "[Mage Test Solution No. 4]"; - mes "* Chemical ingredients *"; - mes " - 5429"; + mes "* Magic Power Serial Code *"; + mes "5429"; next; mes "[Mage Test Solution No. 4]"; - mes "* A Catalyst *"; - mes " - 1 carat Diamond"; - mes " (Mixing Machine Will provide"; - mes " this item.)"; - close; - Cancel: - close; -} - -// -- Mixing Machine -- -geffen_in,164,112,1 script Mixing Machine 111,{ - mes "[Mixing Machine]"; - mes "This is the unique Mixing Machine designed only for making magic solutions. It is the property of the Geffen Magic Academy."; - next; - mes "[Mixing Machine]"; - mes "Would you like to use this machine?"; - next; - menu "Yes.",M_Start, "No.",M_End; - - M_Start: - mes "[Mixing Machine]"; - mes "Please specify the ingredients you will be using."; - next; - sM_Menu: - menu "Jellopy",sM_0, "Fluff",sM_1, "Milk",sM_2, "Move on to the next step.",sM_3; - - sM_0: - input @JELLOPY; - if (@JELLOPY<0 || @JELLOPY>100) set @JELLOPY,0; //set 0 if wrong input - goto sM_Menu; - sM_1: - input @FLUFF; - if (@FLUFF<0 || @FLUFF>100) set @FLUFF,0; //set 0 if wrong input - goto sM_Menu; - sM_2: - input @MILK; - if (@MILK<0 || @MILK>100) set @MILK,0; //set 0 if wrong input - goto sM_Menu; - sM_3: - mes "[Mixing Machine]"; - mes "Please specify a solvent."; - next; - menu "Payon Solvent.",ssM_0, "Morroc Solvent",ssM_1, "No Solvent.",ssM_2; - - ssM_0: - set @SOLVENT, 1089; - set @SOLVENT$, "Payon"; - goto L_Cont; - ssM_1: - set @SOLVENT, 1088; - set @SOLVENT$, "Morroc"; - goto L_Cont; - ssM_2: - set @SOLVENT, 0; - set @SOLVENT$, "No"; - - L_Cont: - mes "[Mixing Machine]"; - mes "Here is your current list of ingredients:"; - mes "^4444FF"+@JELLOPY+"^000000 Jellopy,"; - mes "^4444FF"+@FLUFF+"^000000 Fluff,"; - mes "^4444FF"+@MILK+"^000000 Milk,"; - mes "and ^4444FF"+@SOLVENT$+"^000000 Solvent."; - mes "Is this correct?"; - next; - menu "Yes.",-, "No.",M_Start; - - mes "[Mixing Machine]"; - mes "Please put all of the items into the drum. Now enter the magic serial number."; - next; - - L_Input: - input @INPUT; - mes "[Mixing Machine]"; - mes "You have inputted the number ^5555FF"+@INPUT+". Is this correct?"; - next; - menu "Yes.",-, "No.",L_Input; - - mes "[Mixing Machine]"; - mes "For the last item, choose a catalyst stone."; - next; - menu "Yellow Gemstone.",ssM_Yell, "Red Gemstone.",ssM_Red, "Blue Gemstone.",ssM_Blue, "1 Carat Diamond.",ssM_Diamd; - - ssM_Yell: - if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF || countitem(519)<@MILK) goto sL_NotEnuf;//Items: Jellopy, Fluff, Milk, - if(@SOLVENT$!=("No") && countitem(@SOLVENT)<1) goto sL_NotEnuf; - mes "[Mixing Machine]"; - mes "All set. Initiating the mixing process. Please wait."; - next; - mes "[Mixing Machine]"; - mes "~rumble~rumble~rumble~"; - next; - mes "[Mixing Machine]"; - if(job_magician_q != 1 || @INPUT != 8472 || @JELLOPY!=2 || @FLUFF!=3 || @MILK!=1 || @SOLVENT!=1089) goto sL_FAIL; - delitem 909,2;//Items: Jellopy, - delitem 914,3;//Items: Fluff, - delitem 519,1;//Items: Milk, - delitem 1089,1;//Items: Payon_Solution, - delitem 1092,1;//Items: Empty_Test_Tube, - mes "Mixing complete."; - getitem 1071,1;//Items: Unknown_Test_Tube, - close; - - ssM_Red: - if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF || countitem(519)<@MILK) goto sL_NotEnuf;//Items: Jellopy, Fluff, Milk, - mes "[Mixing Machine]"; - mes "All set. Initiating the mixing process. Please wait."; - next; - mes "[Mixing Machine]"; - mes "~rumble~rumble~rumble~"; - next; - mes "[Mixing Machine]"; - if(job_magician_q != 2 || @INPUT != 3735 || @JELLOPY!=3 || @FLUFF!=1 || @MILK!=1 || @SOLVENT!=0) goto sL_FAIL; - delitem 909,3;//Items: Jellopy, - delitem 914,1;//Items: Fluff, - delitem 519,1;//Items: Milk, - delitem 1092,1;//Items: Empty_Test_Tube, - mes "Mixing complete."; - getitem 1085,1;//Items: Unknown_Test_Tube, - close; - - ssM_Blue: - if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF) goto sL_NotEnuf;//Items: Jellopy, Fluff, - if(@SOLVENT$!=("No") && countitem(@SOLVENT)<1) goto sL_NotEnuf; - mes "[Mixing Machine]"; - mes "All set. Initiating the mixing process. Please wait."; - next; - mes "[Mixing Machine]"; - mes "~rumble~rumble~rumble~"; - next; - mes "[Mixing Machine]"; - if(job_magician_q != 3 || @INPUT != 2750 || @JELLOPY!=6 || @FLUFF!=1 || @MILK!=0 || @SOLVENT!=1089) goto sL_FAIL; - delitem 909,6;//Items: Jellopy, - delitem 914,1;//Items: Fluff, - delitem 1089,1;//Items: Payon_Solution, - delitem 1092,1;//Items: Empty_Test_Tube, - mes "Mixing complete."; - getitem 1086,1;//Items: Unknown_Test_Tube, - close; - - ssM_Diamd: - if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF) goto sL_NotEnuf;//Items: Jellopy, Fluff, - if(@SOLVENT$!=("No") && countitem(@SOLVENT)<1) goto sL_NotEnuf; - mes "[Mixing Machine]"; - mes "All set. Initiating the mixing process. Please wait."; - next; - mes "[Mixing Machine]"; - mes "~rumble~rumble~rumble~"; - next; - mes "[Mixing Machine]"; - if(job_magician_q != 4 || @INPUT != 5429 || @JELLOPY!=2 || @FLUFF!=3 || @MILK!=0 || @SOLVENT!=1088) goto sL_FAIL; - delitem 909,2;//Items: Jellopy, - delitem 914,3;//Items: Fluff, - delitem 1088,1;//Items: Morroc_Solution, - delitem 1092,1;//Items: Empty_Test_Tube, - mes "Mixing complete."; - getitem 1087,1;//Items: Unknown_Test_Tube, - close; - - sL_FAIL: - delitem 909, @JELLOPY;//Items: Jellopy, - delitem 914, @FLUFF;//Items: Fluff, - delitem 519, @MILK;//Items: Milk, - delitem @SOLVENT,1; - mes "Mixing complete."; - getitem 1090,1;//Items: Unknown_Test_Tube, - close; - - sL_NotEnuf: - mes "[Mixing Machine]"; - mes "You do not have enough ingredients to mix into a solution."; - close; - M_End: - close; - -} - - -// -- Morroc Solution -- -moc_ruins,91,150,5 script Ponka-Hontas 93,{ - mes "[Mage Guildsman]"; - mes "You want the Solution? Then give me 50 Zeny and at least 1 Empty Testube."; - next; - menu "Allright, Deal",L0,"Nah, forget it.",L1; - - L0: - if(countitem(1092)<1) goto L0NoT;//Items: Empty_Test_Tube, - if(Zeny<50) goto L0NoZ; - mes "[Mage Guildsman]"; - mes "Ok, you have the money and a empty Testube, that's good!"; - delitem 1092,1;//Items: Empty_Test_Tube, - set Zeny,Zeny-50; - next; - mes "[Mage Guildsman]"; - getitem 1088,1;//Items: Morroc_Solution, - mes "Thank you, I think you will be a great mage, you are so generous."; - mes "I hope i'll see you soon again here"; - emotion e_no1; - close; - - L0NoT: - mes "[Mage Guildsman]"; - mes "You can't Carry on Fluid without a bottle, are you sure you want to become a mage?"; - mes "Bring an Empty Testube"; - close; - - L0NoZ: - mes "[Mage Guildsman]"; - mes "Pfff, You are too poor to buy our noble Solution!"; - mes "Bring 50 Zeny, go to a merchant and sell something, it will not be too hard I hope."; - close; - L1: - mes "[Mage Guildsman]"; - close; -} - - -// -- Payon Solution -- -pay_arche,122,100,5 script Dollshoi 88,{ - mes "[Mage Guildsman]"; - mes "You want the Solution? Then give me 50 Zeny and at least 1 Empty Testube."; - next; - menu "Allright, Deal",L0,"Nah, forget it.",L1; - - L0: - if(countitem(1092)<1) goto L0NoT;//Items: Empty_Test_Tube, - if(Zeny<50) goto L0NoZ; - mes "[Mage Guildsman]"; - mes "Ok, you have the money and a empty Testube, that's good!"; - delitem 1092,1;//Items: Empty_Test_Tube, - set Zeny,Zeny-50; - next; - mes "[Mage Guildsman]"; - getitem 1089,1;//Items: Payon_Solution, - mes "Thank you, I think you will be a great mage, you are so generous."; - mes "I hope i'll see you soon again here"; - emotion e_no1; - close; - - L0NoT: - mes "[Mage Guildsman]"; - mes "You can't Carry on Fluid without a bottle, are you sure you want to become a mage?"; - mes "Bring an Empty Testube"; - close; - - L0NoZ: - mes "[Mage Guildsman]"; - mes "Pfff, You are too poor to buy our noble Solution!"; - mes "Bring 50 Zeny, go to a merchant and sell something, it will not be too hard I hope."; - close; - L1: - mes "[Mage Guildsman]"; + mes "* Catalyst *"; + mes "1 carat Diamond"; + mes "(Provided by"; + mes "Mixing Machine)"; close; + } } diff --git a/npc/jobs/1-1/merchant.txt b/npc/jobs/1-1/merchant.txt index b17ffddb1..2020f1313 100644 --- a/npc/jobs/1-1/merchant.txt +++ b/npc/jobs/1-1/merchant.txt @@ -1,13 +1,14 @@ //===== eAthena Script ======================================= //= Merchant Job Quest //===== By: ================================================== -//= kobra_k88 +//= kobra_k88; L0ne_W0lf //===== Current Version: ===================================== -//= 1.7 +//= 1.8 //===== Compatible With: ===================================== -//= eAthena 1.0 + +//= eAthena SVN //===== Description: ========================================= -//= <Description> +//= [Aegis Conversion] +//= Job quest for Merchant classes //===== Additional Comments: ================================= //= Fully working //= v1.1 Added instant job change for High Novice [Lupus] @@ -18,949 +19,1123 @@ //= 1.5.2 Now saves/restores all quest skills [Lupus] //= 1.6 Merged back JFunc, CHANGED NUMBERS TO CONSTANTS [Lupus] //= 1.7 Updated to use Free Ticket for Kafra [Lupus] +//= 1.8 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf] +//= No longer uses function "F_ToHigh" //============================================================ - -// == Guild NPCs == -// -- Mahnsoo -- -alberta_in,53,43,6 script Chief Mahnsoo 86,{ - callfunc "F_ToHigh",Job_Merchant_High,"Merchant High",Job_Whitesmith,"Chief Mahnsoo"; - mes "[Chief Mahnsoo]"; - if(BaseJob == Job_Novice && job_merchant_q3 == 4) goto L_MakeMerc; - if(BaseJob == Job_Novice && job_merchant_q3 == 3) goto L_GiveRecpt; - if(BaseJob == Job_Novice && job_merchant_q3 == 5) goto L_Failed; - if(BaseJob == Job_Novice && job_merchant_q2 > 0) goto L_Back; - - mes "What brings you here? Something on your mind?"; -M_Menu: - next; - menu "I want to be a Merchant.",M_0,"What exactly is a Merchant?",M_1,"Give me the Requirements.",M_2,"End.",M_End; - - M_0: - - if(BaseJob == Job_Merchant) { +alberta_in,53,43,6 script Merchant#mer 86,{ + if (Upper == 1) { + if (Class == Job_Novice_High && ADVJOB == Job_Whitesmith || ADVJOB == Job_Creator) { mes "[Chief Mahnsoo]"; - mes "Huh? What did you say? You noodle head! Take a good look at yourself. Your ALREADY A MERCHANT! Good lord!"; - emotion e_what; - emotion e_gasp; - close; - } - if(BaseJob != Job_Novice) { + mes "Long time no see!"; + mes "Hey, you didn't quit"; + mes "your business, did you?"; + mes "What happened?"; + next; mes "[Chief Mahnsoo]"; - mes "We Merchants really don't like people who work during the day, and then go out to crazy bars at night. When it comes to money, for them it's 'easy come easy go."; + mes "Whoa..."; + mes "You've actually been to Valhalla?! Wow, you've come a long way..."; next; + if (getskilllv(1) < 9) { + mes "[Chief Mahnsoo]"; + mes "Hmmm..."; + mes "It seems that you're not ready to become a Merchant again. Go finish learning the Basic Novice Skills first."; + next; + mes "[Chief Mahnsoo]"; + mes "Don't worry, we'll always have a Merchant position open for you. Just come back when you're ready, okay?"; + close; + } mes "[Chief Mahnsoo]"; - mes "Well.. I talked a little too long, I guess... but since you already have an occupation, we don't need you."; + mes "I guess it's destiny that we meet like this once more. Alright. Once again, let me change you into a Merchant!"; + next; + skill 143,0,0; + jobchange Job_Merchant_High; + skill 153,1,0; + skill 154,1,0; + skill 155,1,0; + mes "[Chief Mahnsoo]"; + mes "Ah~ How nostalgic. Just like old times! Alright, do your best!"; close; } - if(JobLevel < 10) { + else { mes "[Chief Mahnsoo]"; - mes "I'm sorry but you have to have a Novice Job level of 9 with all 9 of the basic Skills."; + mes "^333333*Sigh*^000000"; + mes "I'm so bored..."; + mes "When will I hear from my lovely Blossom?"; close; } + } + if (BaseJob == Job_Merchant) { mes "[Chief Mahnsoo]"; - mes "A Merchant you say? Well..."; + mes "Hello there!"; + mes "How do you like"; + mes "being a Merchant?"; next; mes "[Chief Mahnsoo]"; - mes "Alright. First fill out an application form and submit 1000 Zeny for the Memebership Fee."; - mes "If you don't have enough money right now, you can pay 500 Zeny first and then pay the rest later after you've passed the Merchant License Test."; + mes "Having a way with"; + mes "money certainly"; + mes "has its perks,"; + mes "does it not?"; + close; + } + else if (BaseJob != Job_Merchant && BaseJob != Job_Novice) { + mes "[Chief Mahnsoo]"; + mes "We Merchants hate people who are two faced. It's bad for business."; next; mes "[Chief Mahnsoo]"; - mes "How does that sound? Are you still interested?"; - + mes "People who always try to take advantage of other people by selling things at a ridiculous price just so they can make money that they'll waste are the worst."; next; - menu "Sure why not. Who needs college anyways.",sM_0a,"Maybe, later...",sM_0b; - - sM_0a: + mes "[Chief Mahnsoo]"; + mes "Well, in any case, we only accept Novices for job changes to the Merchant class. But I appreciate your interest in what we do."; + close; + } + else if (job_merchant_q == 9) { + mes "[Chief Mahnsoo]"; + mes "Hello there,"; + mes ""+ strcharinfo(0) +"."; + set job_merchant_q,0; + set job_merchant_q2,0; + set quest_alb_01,0; + mes "Unfortunately, you failed to earn your Merchant License this time."; + next; + mes "[Chief Mahnsoo]"; + mes "I'll erase your records, so come back anytime when you want to reapply."; + close; + } + else if (job_merchant_q == 8 || job_merchant_q == 7) { + mes "[Chief Mahnsoo]"; + mes "Hello there,"; + mes ""+ strcharinfo(0) +"."; + mes "I'm pleased to tell you"; + mes "that I have good news!"; + next; + mes "[Chief Mahnsoo]"; + mes "The Merchant Guild accepted your application. You've proven that you are fully qualified to become a Merchant."; + if (job_merchant_q == 7) { + next; mes "[Chief Mahnsoo]"; - mes "I'm glad to hear that. So how do you wish to pay the Membership Fee?"; - sM_Menu: + mes "The only thing to take care of is your Membership Fee."; + mes "Are you ready?"; next; - menu "Pay 1000 Zeny Now.",m_0a,"2 payments of 500 Zeny.",m_0b,"Nevermind.",m_0End; - - m_0a: + switch(select("Pay the rest of the 500 Zeny:Quit")) { + case 1: mes "[Chief Mahnsoo]"; - if(Zeny < 1000) goto sl_Short1k; - set Zeny,Zeny-1000; - set job_merchant_q,1; - mes "Let's see... 1000 Zeny.... Good."; - goto L_Cont0; - - sl_Short1k: - mes "Looks like your a little short on zeny. Why not make a minimal payment of 500 Zeny first?"; - mes "You can worry about the rest later."; - emotion e_swt; - goto sM_Menu; + if (Zeny < 500) { + mes "Hmmm..."; + mes "I suppose you currently don't have enough zeny to pay the rest of your Membership fee right now."; + next; + mes "[Chief Mahnsoo]"; + mes "Please return when you have earned the 500 zeny that you need to become a Merchant."; close; - - m_0b: - mes "[Chief Mahnsoo]"; - if(Zeny < 500) goto sl_Short500z; - set Zeny,Zeny-500; - set job_merchant_q,2; - mes "Let's See... 500 Zeny.... Good enough to start off... though I don't really think splitting paymenst is a good habbit for any Merchant."; - goto L_Cont0; - - sl_Short500z: - mes "Looks like your a little short on zeny. Come back when you have enough."; - emotion e_swt; - close; - - m_0End: + } + set zeny,zeny-500; + mes "Ah yes...!"; + mes "Now your"; + mes "membership"; + mes "is paid in full."; + break; + case 2: mes "[Chief Mahnsoo]"; - mes "You have no money now? Ok, No Problem. Take your time, Ok?"; + mes "I suppose you need some time to gather some zeny to pay your membership fee. Please come"; + mes "back as soon as you're ready."; close; - - sM_0b: - mes "[Chief Mahnsoo]"; - mes "Feel free to return anytime when you are ready, Alright?."; - close; - - - L_Cont0: + } + } next; mes "[Chief Mahnsoo]"; - mes "Now that that's settled, let me talk to you about the Merchant License Test. You will be given a task to fullfill."; - mes "How well you perform the task will determine whether or not you will become a merchant."; + mes "Congratulations!"; + callfunc "Job_Change",Job_Merchant; + callfunc "F_ClearJobVar"; + mes "I'm very pleased that you are joining the Merchant Guild and hope that you will play an active part in Rune-Midgarts' economy."; next; - mes "[Chief Mahnsoo]"; - mes "Oh, but before we get started I must say one thing....."; + if (quest_alb_01 == 1) { + mes "[Chief Mahnsoo]"; + mes "*Ahem* Aaaaand let me give you a little bit of money for delivering that message to Blossom for me."; + mes "I hope you'll help me again next time~"; + set zeny,zeny+200; + set quest_alb_01,2; + } + else { + mes "[Chief Mahnsoo]"; + mes "The message you were supposed to deliver as per my request? You've forgotten about that? Oh well. Good work!"; + } next; mes "[Chief Mahnsoo]"; - mes "There are some dumb and greedy people out there who do not know what it means to be a Merchant."; - mes "I sincerely hope you will not turn out to be like them. You won't... will you??..... (stares at you intently)"; + mes "Our goal is to control 20 % of the world's income! We're going to need young, eager people like you!"; next; mes "[Chief Mahnsoo]"; - mes "Anywho, here is your task. You will need to...."; - next; + mes "But overall, we'll also be happy just to make loads of money."; + mes "But we all know that~"; + close; + } + else if (job_merchant_q <= 6 && job_merchant_q != 0) { mes "[Chief Mahnsoo]"; - - set @TEMP,rand(4); - if(@TEMP ==1) goto R_1; - if(@TEMP ==2) goto R_2; - if(@TEMP ==3) goto R_3; - - R_0: - mes "retrieve a ^ff0000product^000000 from the ^0000ffWharehouse^000000 and deliver it to the ^00aa00Kafra Worker in the Former Swordman Association in Prontera^000000."; - if(job_merchant_q2 == 1) goto sR_0a; - if(job_merchant_q2 == 2) goto sR_0b; - set @TEMP,rand(2); - if(@TEMP !=0) goto sR_0b; - - sR_0a: - mes "The ^0000ff'Serial Number'^000000 of the product is ^ff00002485741^000000."; - set job_merchant_q2, 1; - next; - goto L_Cont1; - sR_0b: - mes "The ^0000ff'Serial Number'^000000 of the product is ^ff00002328137^000000."; - set job_merchant_q2, 2; - next; - goto L_Cont1; - - R_1: - mes "retrieve a ^ff0000product^000000 from the ^0000ffWharehouse^000000 and deliver it to a member of the ^00aa00Mage Guild in Geffen^000000."; + if (job_merchant_q2 == 1 || job_merchant_q2 == 2) { + mes "First, get the delivery package from the storehouse, and then take it to the former Swordman's Association in Prontera."; next; mes "[Chief Mahnsoo]"; - if(job_merchant_q2 == 3) goto sR_1a; - if(job_merchant_q2 == 4) goto sR_1b; - set @TEMP,rand(2); - if(@TEMP !=0) goto sR_1b; - - sR_1a: - mes "The ^0000ff'Serial Number'^000000 of the product is ^ff00002989396^000000."; - set job_merchant_q2, 3; - next; - goto L_Cont1; - sR_1b: - mes "The ^0000ff'Serial Number'^000000 of the product is ^ff00002191737^000000."; - set job_merchant_q2, 4; - next; - goto L_Cont1; - - R_2: - mes "retrieve a ^ff0000product^000000 from the ^0000ffWharehouse^000000 and deliver it to ^00aa00Java Dullihan, the Dyermaker in Morroc^000000."; + mes "When you get there, give the package to the Kafra Employee stationed near there. Her name is Blossom. Did you get all that?"; next; - mes "[Chief Mahnsoo]"; - if(job_merchant_q2 == 5) goto sR_2a; - if(job_merchant_q2 == 6) goto sR_2b; - set @TEMP,rand(2); - if(@TEMP !=0) goto sR_2b; - - sR_2a: - mes "The ^0000ff'Serial Number'^000000 of the product is ^ff00003012685^000000."; - set job_merchant_q2,5; - next; - goto L_Cont1; - sR_2b: - mes "The ^0000ff'Serial Number'^000000 of the product is ^ff00003487372^000000."; - set job_merchant_q2,6; - next; - goto L_Cont1; - - R_3: - mes "retrieve a ^ff0000product^000000 from the ^0000ffWharehouse^000000 and deliver it to the ^00aa00Kafra worker in Byalan island^000000."; + if (job_merchant_q2 == 1) { + mes "[Chief Mahnsoo]"; + mes "Remember, the Serial Number of the package is ^3355FF2485741^000000."; + } + else { + mes "[Chief Mahnsoo]"; + mes "Remember, the Serial Number of the package is ^3355FF2328137^000000."; + } + } + else if (job_merchant_q2 == 3 || job_merchant_q2 == 4) { + mes "First, get the delivery package from the storehouse, and then take it to the Mage Guild in Geffen."; + next; + if (job_merchant_q2 == 3) { + mes "[Chief Mahnsoo]"; + mes "When you get there, give the package to the Mage Guildsman in charge. Remember, the packages Serial Number is ^3355FF2989396^000000."; + } + else { + mes "[Chief Mahnsoo]"; + mes "When you get there, give the package to the Mage Guildsman in charge. Remember, the packages Serial Number is ^3355FF2191737^000000."; + } + } + else if (job_merchant_q2 == 5 || job_merchant_q2 == 6) { + mes "First, get the delivery package from the storehouse, and then take it to Morroc."; next; mes "[Chief Mahnsoo]"; - if(job_merchant_q2 == 7) goto sR_3a; - if(job_merchant_q2 == 8) goto sR_3b; - set @TEMP,rand(2); - if(@TEMP !=0) goto sR_3b; - - sR_3a: - - mes "The ^0000ff'Serial Number'^000000 of the product is ^ff00003318702^000000."; - set job_merchant_q2,7; - goto M00R3; - sR_3b: - mes "The ^0000ff'Serial Number'^000000 of the product is ^ff00003543625^000000."; - set job_merchant_q2,8; - goto M00R3; - - M00R3: - next; + mes "You'll have to find Java Dullihan, the Dyemaker, so that you can deliver the product he ordered."; + if (job_merchant_q2 == 5) { mes "[Chief Mahnsoo]"; - mes "Umm and... this is my personal request. Include this message in your delivery please~"; - if(countitem(1072)==0) getitem 1072,1;//Items: Delivery_Message, - next; - goto L_Cont1; - - - L_Cont1: - mes "[Chief Mahnsoo]"; - mes "Keep track of the ^ff0000'Serial Number'^000000 and the ^ff0000'Destination'^000000 of the product."; - mes "The Wharehouse Manager will need them to assist you in getting the right product."; - next; - mes "[Chief Mahnsoo]"; - mes "The Wharehouse itself is located to my right."; + mes "But he's a little forgetful, so give it to one of his students. Remember, the package's Serial Number is ^3355FF3012685^000000."; + } + else { + mes "[Chief Mahnsoo]"; + mes "But he's a little forgetful, give it to one of his students. Remember, the package's Serial Number is ^3355FF3487372^000000."; + } + } + else if (job_merchant_q2 == 7 || job_merchant_q2 == 8) { + mes "First, get the package from the storehouse, and then give it to the Kafra Employee stationed on Byalan Island. Her name is Blossom."; + if (job_merchant_q2 == 7) { + mes "[Chief Mahnsoo]"; + mes "Remember, the package's Serial Number is ^3355FF3318702^000000."; + } + else { + mes "[Chief Mahnsoo]"; + mes "Remember, the package's Serial Number is ^3355FF3543625^000000."; + } + } + if (job_merchant_q2 == 7 || job_merchant_q2 == 8) { + next; + mes "[Chief Mahnsoo]"; + mes "Aaaannnnd..."; + mes "Don't forget to deliver that message for me~"; + } next; mes "[Chief Mahnsoo]"; - mes "After you've finished making the delivery come back here and give the Receipt to the Wharehouse Manager. Then come see me. Is that clear?"; + mes "Don't forget your destination and the package's Serial Number."; + mes "You'll need to tell them"; + mes "to the storekeeper."; next; mes "[Chief Mahnsoo]"; - mes "Alright, good luck!"; - close; - - M_1: - mes "[Chief Mahnsoo]"; - mes "Merchants are people who are in the business of buying and selling goods. We focus on finding rare items and selling them to those who desire or need them."; - mes "We are not particularly good at fighting nor do we have any usefull support skills. What we Merchants can do is buy Goods at lower prices as well as sell them at Highter prices."; + mes "The storehouse is in the room"; + mes "to my right. There, you can talk"; + mes "to the storekeeper, and he'll"; + mes "help you out."; next; mes "[Chief Mahnsoo]"; - mes "As far as what weapons go, we can use most of them. Bows, Rods, and Two-Handed Swords are the only types of weapons we can't use."; - mes "The skill Mannomite even lets us use zeny as a weapon."; + mes "After you make the delivery, return to the storehouse and give the receipt to the storekeeper."; + mes "Then, come back"; + mes "and see me."; next; mes "[Chief Mahnsoo]"; - mes "Whatever people may say about us, making money is important to a merchants lively hood."; - goto M_Menu; + mes "Is that clear?"; + mes "Alright, that's"; + mes "the spirit."; + mes "Take care!"; close; - - M_2: - mes "[Chief Mahnsoo]"; - mes "There are three conditions to be qualified if you want to be a Merchant."; - next; - mes "[Chief Mahnsoo]"; - mes "First of all, You have to be at Novice job level 9 with fulfilled Basic Skills."; - next; + } + else if (job_merchant_q == 0) { mes "[Chief Mahnsoo]"; - mes "Secondly, You have to pay 1000 Zeny for acquire a Memebrship. I believe a Merchant Candidate will be able to earn 1000 Zeny at ease. Oh yeah~"; + mes "So, what brings you to"; + mes "the Merchant Association?"; + mes "Is there anything"; + mes "I can help you with?"; next; - mes "[Chief Mahnsoo]"; - mes "Third, There is a License Test to examine your basic Physical Strength and a Sense of Direction. You must Deliever the Goods to the Specific person in the Specific Town."; - goto M_Menu; - close; - - M_End: - close; - -L_GiveRecpt: - mes "Ah, " + strcharinfo(0) + ". You're back! I take it things went well? Tell you what, go give the Receipt to the Storekeeper and then hurry back here ok."; - close; - -L_Back: - mes "What are you doing back here?"; - emotion e_what; - next; - mes "[Chief Mahnsoo]"; - mes "You didn't leave yet?"; - next; - mes "[Chief Mahnsoo]"; - mes "You are supposed to be on your way by now. Don't tell me you already forgot the product number and destination?"; - next; - mes "[Chief Mahnsoo]"; - mes "Alright numskull, do you want me to repeat it to you one more time?"; - next; - menu "Yes please", M_Yes,"Never mind.",M_No; - - M_Yes: - mes "[Chief Mahnsoo]"; - if((job_merchant_q2==1) || (job_merchant_q2==2)) goto R_0; - if((job_merchant_q2==3) || (job_merchant_q2==4)) goto R_1; - if((job_merchant_q2==5) || (job_merchant_q2==6)) goto R_2; - if((job_merchant_q2==7) || (job_merchant_q2==8)) goto R_3; - close; - - M_No: - close; - -L_MakeMerc: - if(Sex == 1) mes "Mr. ^0000cc" + strcharinfo(0) + "^000000....."; - if(Sex == 0) mes "Ms. ^0000cc" + strcharinfo(0) + "^000000......."; - next; - mes "[Chief Mahnsoo]"; - if(SkillPoint > 0) mes "You need to use up all of your skill points before I can make you a Merchant."; - if(SkillPoint > 0) close; - - mes "WELL DONE! Well done indeed!! I just read Wharehouse Manager Kays' evaluation of your performance, and I was very impressed. I have great news for you!"; - next; - if(job_merchant_q == 2) goto L_MemFee; - - mes "[Chief Mahnsoo]"; - mes "Because of your HARD work, The Merchant Guild as decided to ACCEPT YOU as one of its members!"; - next; - callfunc "Job_Change",Job_Merchant; - callfunc "F_ClearJobVar"; // clears all job variables for the current player - - mes "[Chief Mahnsoo]"; - mes "Congratulations! You are now one of us, A PROUD MERCHANT!!"; - emotion e_no1; - next; - mes "[Chief Mahnsoo]"; - mes "I am very pleased that you decided to join the Merchant Guild and I hope you will play an active role in Rune Midgards' economy! The best of luck to you!!"; - if((job_merchant_q2==7) || (job_merchant_q2==8)) goto L_Favor; - close; - - L_Favor: - next; - mes "[Chief Mahnsoo]"; - mes "(Oh, here is a little something for Delivering the Message for me. Thanks very much)"; - set Zeny,Zeny+100; - close; - - L_MemFee: - mes "[Chief Mahnsoo]"; - mes "Um... before I go on... there was the little issue of the Membership Fee if you recall. I will need the rest of it before I can proceed with your initiation."; - emotion e_hmm; - next; - menu "Pay the remaining 500 Zeny",sM_1a,"...(run away!)...",sM_1b; - - sM_1a: - if(Zeny < 500) goto sL_NotEnough; - set Zeny,Zeny-500; - set job_merchant_q,1; - + switch(select("I want to be a Merchant.:Tell me about Merchants.:Tell me the requirements.:Nope.")) { + case 1: mes "[Chief Mahnsoo]"; - mes "Very good! Now I can go on. Now where was I?..... oh yes, I remember....."; - goto L_MakeMerc; - - sL_NotEnough: + mes "Do you want to"; + mes "be a Merchant?"; + mes "Well..."; + next; + if (getskilllv(1) < 9) { + mes "[Chief Mahnsoo]"; + mes "First, you have to be a Novice with Job Level 10. Once you do that, make sure you learn all of the Basic Skills."; + next; mes "[Chief Mahnsoo]"; - mes "Eh em.... you seem to be a little short. Now that you've come this far, don't let a little fee impede your progress. Go forth and do something about it!"; - emotion e_swt; + mes "We're not just"; + mes "simple money makers!"; + mes "We pride ourselves on having standards and only accepting qualified applicants!"; close; - - sM_1b: + } + mes "[Chief Mahnsoo]"; + mes "Alright, you'll need to fill out this application and prepare 1,000 Zeny for your Membership Fee."; + next; + mes "[Chief Mahnsoo]"; + mes "Oh...!"; + mes "If you don't have all the money,"; + mes "I can just take 500 Zeny now."; + mes "You can pay the rest after you"; + mes "pass the test and earn your"; + mes "Merchant Guild License."; + next; + mes "[Chief Mahnsoo]"; + mes "So what do you think?"; + mes "Are you ready to join now?"; + next; + if (select("Yes, I will.:Ummm, maybe later...") ==1 ) { + mes "[Chief Mahnsoo]"; + mes "Let me check if you"; + mes "filled out everything"; + mes "on your application form..."; + next; + mes "[Chief Mahnsoo]"; + mes "Hmm... "; + mes "" + strcharinfo(0) + "..."; + mes "That's a nice name."; + next; + mes "[Chief Mahnsoo]"; + mes "This application will"; + mes "only be registered once"; + mes "the Membership Fee is paid."; + mes "How do you wish to"; + mes "handle the fee?"; + next; + switch(select("Pay all 1,000 Zeny now!:Two payments of 500 Zeny.:Quit")) { + case 1: + mes "[Chief Mahnsoo]"; + if (Zeny >= 1000) { + set job_merchant_q,2; + set zeny,zeny-1000; + mes "Alright~"; + mes "That's 1,000 zeny."; + mes "Excellent, excellent."; + } + else { + mes "It seems don't have enough zeny to pay all of the fee right now. Why don't you just pay 500 zeny now? Think about it."; + close; + } + break; + case 2: + mes "[Chief Mahnsoo]"; + if (Zeny >= 500) { + set job_merchant_q,1; + set zeny,zeny-500; + mes "Let's see..."; + mes "That's 500 Zeny. Although I don't think splitting payment is a good idea for any Merchant, it's alright since you're still learning."; + } + else { + mes "Hmm..."; + mes "It seems you don't have the funds to pay half of the membership fee. Please come back once you collect the zeny that you need."; + close; + } + break; + case 3: + mes "[Chief Mahnsoo]"; + mes "Feel free to return anytime"; + mes "when you are ready, alright?"; + close; + } + } + else { + mes "[Chief Mahnsoo]"; + mes "You don't have enough zeny now? That's no problem. Take your time and come back when you're"; + mes "ready, okay?"; + close; + } + next; + mes "[Chief Mahnsoo]"; + mes "Alright, you're now on the list of applicants. Ah, before I get started let me say just one thing."; + next; + mes "[Chief Mahnsoo]"; + mes "There are some dumb and greedy people out there who do not know what it means to be a Merchant."; + mes "I hope you won't turn out to be like them, will you?"; + next; + mes "[Chief Mahnsoo]"; + mes "Now, let me"; + mes "explain what you"; + mes "need to do for the"; + mes "Merchant License Test."; + next; + mes "[Chief Mahnsoo]"; + switch(rand(1,4)) { + case 1: + mes "First, get the delivery package from the storehouse, then go to the former Swordman's Association in Prontera."; + next; + mes "[Chief Mahnsoo]"; + mes "When you get there, visit the Kafra Employee stationed there. Her name is Blossom. Did you get"; + mes "all of that?"; + callsub S_GiveSerial,2485741,1,2328137,2; + break; + case 2: + mes "First, get the delivery package from the storehouse, and then go to the Mage Guild in Geffen. When you get there, visit the Mage Guildsman in charge."; + callsub S_GiveSerial,2989396,3,2191737,4; + break; + case 3: + mes "First, get the delivery package from the storehouse, and then go to Morroc. There you must find Java Dullihan, the dyemaker."; + next; + mes "[Chief Mahnsoo]"; + mes "He's a bit forgetful, so you should probably give the package to one of his students."; + callsub S_GiveSerial,3012685,5,3487372,6; + break; + case 4: + mes "First, get the delivery package from the storehouse, and then give it to the Kafra Employee stationed on Byalan Island."; + callsub S_GiveSerial,3318702,7,3543625,8; + next; + mes "[Chief Mahnsoo]"; + mes "Ummmm..."; + mes "And I also have"; + mes "a bit of a personal"; + mes "request for you."; + next; + mes "[Chief Mahnsoo]"; + mes "Would you please give her this message when you deliver the package? Please~"; + getitem 1072,1; //Delivery_Message + break; + } + next; mes "[Chief Mahnsoo]"; - mes "WHAT THE??? Hey come back here! YOU STILL HAVE TO PAY THE FEE!!!!!"; - emotion e_swt2; + mes "Don't forget your destination and the package's Serial Number. You will need to tell those to the storekeeper in the storehouse to the right of me."; + next; + mes "[Chief Mahnsoo]"; + mes "After the delivery, give the receipt to the storekeeper, and then come back and see me."; + next; + mes "[Chief Mahnsoo]"; + mes "Is that clear?"; + mes "Alright, that's"; + mes "the spirit."; + mes "Take care!"; close; + case 2: + mes "[Chief Mahnsoo]"; + mes "Merchant?"; + mes "Well, we basically sell goods to make money. That is the way"; + mes "of the Merchant."; + next; + mes "[Chief Mahnsoo]"; + mes "I guess we may not be the best at fighting, and we don't have many special attacks. We've got no healing skills..."; + next; + mes "[Chief Mahnsoo]"; + mes "But we can buy goods at lower prices from NPC shops and sell them at a higher price to other people~"; + next; + mes "[Chief Mahnsoo]"; + mes "Our ultimate attack skill is 'Mammonite.' The strength of Mammonite comes from the anger"; + mes "when we're forced to throw away perfectly good zeny."; + next; + mes "[Chief Mahnsoo]"; + mes "Throwing away zeny like that"; + mes "causes a deadly rage to well up in the heart of any Merchant!"; + mes "Just thinking about it"; + mes "makes my blood boil!"; + next; + mes "[Chief Mahnsoo]"; + mes "Anyway, we can use most"; + mes "weapons except Bows, Rods, and Two-Handed Swords. But we can always sell those."; + next; + mes "[Chief Mahnsoo]"; + mes "Yes..."; + mes "We Merchants generally"; + mes "have money on our minds..."; + close; + case 3: + mes "[Chief Mahnsoo]"; + mes "There are three conditions that must be fulfilled before you can become a Merchant."; + next; + mes "[Chief Mahnsoo]"; + mes "First, You have to be a Novice with Job Level 10, and have learned all of the Basic Skills."; + next; + mes "[Chief Mahnsoo]"; + mes "Second, You have to pay a 1,000 Zeny Membership Fee. I believe any Merchant candidate should be able to earn 1,000 Zeny with ease."; + next; + mes "[Chief Mahnsoo]"; + mes "Third, there is a License Test to test your physical strength and sense of direction. You will deliver a package to a specific person in a specific location."; + close; + case 4: + close; + } + } -L_Failed: - set job_merchant_q2,0; - set job_merchant_q3,0; - - mes "I just finished reading Wharehouse Manager Kays' evalutation of your work......"; +S_GiveSerial: next; mes "[Chief Mahnsoo]"; - mes "What a shame, what a shame! HOW could you be so CARLESS??!! I'm sure Wharehouse Manager Kay has already given you an earfull so I will not go on with anymore critizism."; - emotion e_pif; - next; - mes "[Chief Mahnsoo]"; - mes "^ff0000"+strcharinfo(0) + "^000000, you have failed in the Merchant License Test! However...... if you are TRUELY interested in becoming a Merchant, and will work EXTREMELY HARD to do so...."; - next; - mes "[Chief Mahnsoo]"; - mes "... I will allow you to retake the test. What do you say?"; - next; - menu "Thank you very much for this opportunity!",M_Thanks,"Maybe some other time",M_NoThanks; - - M_Thanks: - set job_merchant_q2,0; - set job_merchant_q3,0; - goto L_Cont0; - - M_NoThanks: - mes "[Chief Mahnsoo]"; - mes "Remeber these words: In life, failure is NOT an option!!!"; - emotion e_gasp; - set job_merchant_q,0; - set job_merchant_q2,0; - set job_merchant_q3,0; - close; - + mes "Remember..."; + if (rand(1)) { + mes "The package's"; + mes "Serial Number is"; + mes "^3355FF"+getarg(0)+"^000000."; + set job_merchant_q2,getarg(1); + } + else { + mes "The package's"; + mes "Serial Number is"; + mes "^3355FF"+getarg(2)+"^000000."; + set job_merchant_q2,getarg(3); + } + return; } - -// -- Wharehouse Manager Kay -- -alberta_in,28,29,2 script Merchant Guildsman 83,{ - if(BaseJob == Job_Novice && job_merchant_q3 > 0) goto L_Check; - - mes "[Wharehouse Manager Kay]"; - mes "Hey~ What brings you here?"; - next; - menu "I came here for the Merchant Test.",M_0,"I came here for a Part Time job.",M_1,"Nope,Nothing.",M_End; - - M_0: - mes "[Wharehouse Manager Kay]"; - if(BaseJob != Job_Novice) goto L_NotNov; - if(job_merchant_q==0) goto L_NotRdy; - mes "You're ^0000cc"+ strcharinfo(0) +"^000000, right? Ok I'll give you a product to deliver. First I'll need the destination"; +alberta_in,28,29,2 script Merchant Guildsman#mer 83,{ + if (BaseJob == Job_Merchant) { + mes "[Union Staff Kay]"; + mes "Heya pal."; + mes "How ya doin'?"; + close; + } + else if (BaseJob != Job_Merchant && BaseJob != Job_Novice) { + mes "[Union Staff Kay]"; + mes "Hey you. We don't have any open positions for part time work. If you wanna earn some zeny, you'll hafta look elsewhere."; + close; + } + else if (job_merchant_q == 9) { + mes "[Union Staff Kay]"; + mes "Hey you. Yeah, you."; + mes "If you wanna restart the test, go visit Mahnsoo in the other room. Then we can talk."; + close; + } + else if (job_merchant_q == 8 || job_merchant_q == 7) { + mes "[Union Staff Kay]"; + mes "Alright! Everything looks perfect! I'll report your success to the guildmaster. Now go talk to Chief Mahnsoo, yeah?"; + } + else if (job_merchant_q == 6 || job_merchant_q == 5) { + mes " [Union Staff Kay] "; + mes "Oh, yeah? Okay, lemme check. Your name is " + strcharinfo(0) + "? Alright, your destination was..."; next; - menu "Prontera.",sM_0,"Geffen.",sM_1,"Morroc.",sM_2,"Byalan Island(Izlude).",sM_3; - - sM_0: - set @s_flag,1; - goto L_Cont0; - sM_1: - set @s_flag,2; - goto L_Cont0; - sM_2: - set @s_flag,3; - goto L_Cont0; - sM_3: - set @s_flag,4; - - L_Cont0: - mes "[Wharehouse Manager Kay]"; - mes "Now, I'll need the Serial Number of the product. Just type it in the box. If you want to Cancel, just type '0' in the box, alright?"; + mes "[Union Staff Kay]"; + if (job_merchant_q2 == 1 || job_merchant_q2 == 2) + mes "Wow! You met the Kafra babe in Prontera?! Lucky you~ ...Receipt?"; + else if (job_merchant_q2 == 3 || job_merchant_q2 == 4) + mes "Geffen Magic Academy. Okay, receipt?"; + else if (job_merchant_q2 == 5 || job_merchant_q2 == 6) + mes "The dyemaker in Morroc. Not bad. Receipt?"; + else if (job_merchant_q2 == 7 || job_merchant_q2 == 8) + mes "Oh hohohoho~! The Kafra Babe on Byalan Island?! Awesome! Anyway, did you bring the receipt?"; + + if (job_merchant_q2 == 1 && countitem(1073) != 0) + delitem 1073,1; //Merchant_Voucher_1 + else if (job_merchant_q2 == 2 && countitem(1074) != 0) + delitem 1074,1; //Merchant_Voucher_2 + else if (job_merchant_q2 == 3 && countitem(1075) != 0) + delitem 1075,1; //Merchant_Voucher_3 + else if (job_merchant_q2 == 4 && countitem(1076) != 0) + delitem 1076,1; //Merchant_Voucher_4 + else if (job_merchant_q2 == 5 && countitem(1077) != 0) + delitem 1077,1; //Merchant_Voucher_5 + else if (job_merchant_q2 == 6 && countitem(1078) != 0) + delitem 1078,1; //Merchant_Voucher_6 + else if (job_merchant_q2 == 7 && countitem(1079) != 0) + delitem 1079,1; //Merchant_Voucher_7 + else if (job_merchant_q2 == 8 && countitem(1080) != 0) + delitem 1080,1; //Merchant_Voucher_8 + else { + next; + set job_merchant_q,9; + mes " [Union Staff Kay] "; + mes "Wait a sec."; + mes "Where's the receipt?"; + mes "What happened?"; + next; + mes " [Union Staff Kay] "; + mes "If you don't have the receipt, you fail the test! You better talk to Mahnsoo if you wanna retake it, alright? Pay attention next time!"; + close; + } next; - input @input; - if(@input ==0 ) goto sL_Cancel; - if((@input < 1000000) || (@input > 5000000)) goto sL_Error; - - mes "[Wharehouse Manager Kay]"; - if(@s_flag==1) mes "Destination is Prontera. The Serial Number is "+@input+" . ^ff0000Is this correct^000000?"; - if(@s_flag==2) mes "Destination is Geffen. Phew~ Really far from here~ A little unlucky there huh? The Serial Number is "+@input+" . ^ff0000Is this correct^000000?"; - if(@s_flag==3) mes "Destination is Morroc. Phew~ Really far from here~ A little unlucky there huh? The Serial Number is "+@input+" . ^ff0000Is this correct^000000?"; - if(@s_flag==4) mes "Destination is Byalan. The Serial Number is "+@input+" . ^ff0000Is this correct^000000?"; + mes " [Union Staff Kay] "; + mes "...Great! Everything's perfect! I'll report your success to the Guildmaster. You should talk to Chief Mahnsoo now, alright?"; + close2; + if (job_merchant_q == 6) + set job_merchant_q,8; + else if (job_merchant_q == 5) + set job_merchant_q,7; + end; + } + else if (job_merchant_q == 4 || job_merchant_q == 3 && countitem(1081) == 0 && countitem(1082) == 0 && countitem(1091) == 0) { + mes " [Union Staff Kay] "; + mes "Huh?"; + mes "You're back?"; + mes "So how did"; + mes "the delivery go?"; next; - menu "Positive.",sM_Pos,"Negative.",sM_Neg; - - sM_Pos: - if(@s_flag==1 && @input==2485741 && job_merchant_q2 == 1) goto ssL_Prod1; - if(@s_flag==2 && @input==2989396 && job_merchant_q2 == 3) goto ssL_Prod1; - if(@s_flag==3 && @input==3012685 && job_merchant_q2 == 5) goto ssL_Prod1; - if(@s_flag==4 && @input==3318702 && job_merchant_q2 == 7) goto ssL_Prod1; - if(@s_flag==1 && @input==2328137 && job_merchant_q2 == 2) goto ssL_Prod2; - if(@s_flag==2 && @input==2191737 && job_merchant_q2 == 4) goto ssL_Prod2; - if(@s_flag==3 && @input==3487372 && job_merchant_q2 == 6) goto ssL_Prod2; - if(@s_flag==4 && @input==3543625 && job_merchant_q2 == 8) goto ssL_Prod2; - getitem 1083,1;//Items: Delivery_Box__, - goto L_Cont1; - - ssL_Prod1: - getitem 1081,1;//Items: Delivery_Box, - goto L_Cont1; - - ssL_Prod2: - getitem 1082,1;//Items: Delivery_Box_, - goto L_Cont1; - - sM_Neg: - close; - - sL_Cancel: - mes "[Wharehouse Manager Kay]"; - mes "Are you sure that you wanna cancel?"; + if (select("*Sob* I lost the package.:Fine.") == 1) { + set job_merchant_q,9; + mes "[Union Staff Kay]"; + mes "Are you kidding me? You'll fail the test if you lose the package!"; next; - menu "Oh yes.",m_yes,"No way.",m_no; - - m_yes: - mes "[Wharehouse Manager Kay]"; - mes "Do as you wish~I cancel~"; + mes "[Union Staff Kay]"; + mes "Awwww man. Well, if you wanna restart the test, talk to Mahnsoo, okay? You're lucky you're getting another chance!"; + close; + } + mes "[Union Staff Kay]"; + mes "Huh..."; + mes "Okay..."; + close; + } + else if (job_merchant_q == 4 || job_merchant_q == 3 && countitem(1081) != 0 || countitem(1082) != 0 || countitem(1091) != 0) { + mes "[Union Staff Kay]"; + mes "Hey, what are you still doing here? Shouldn't you be on your way already?"; + next; + if (select("I need a new package.:Oh, yeah. You're right!") == 1) { + if (countitem(1081) == 0 && countitem(1082) == 0 && countitem(1083) == 0 && countitem(1091) == 0) { + mes "[Union Staff Kay]"; + mes "Wha--?"; + mes "So where did"; + mes "the package go?"; + mes "Where is it?!"; + next; + if (select("*Sob* I lost it!:I have it right here.") == 1) { + set job_merchant_q,9; + mes "[Union Staff Kay]"; + mes "You..."; + mes "Lost it?!"; + mes "You failed the test!"; + next; + mes "[Union Staff Kay]"; + mes "*Sigh* If you want to restart the test, go visit Mahnsoo in the other room, alright?"; + close; + } + mes "[Union Staff Kay]"; + mes "Huh."; + mes "I thought"; + mes "you lost it."; + mes "You don't"; + mes "need a new one."; close; - m_no: - next; - goto L_Cont0; - - sL_Error: - mes "[Wharehouse Manager Kay]"; - mes "Hey~ Hey~ That number is out of the valid Serial number range. A valid Serial number should be betwwen 1000000 and 5000000."; + } + mes "[Union Staff Kay]"; + mes "*Sigh* Man, you're starting to become a pain in the ass. Hold on, lemme cancel your record..."; + if (countitem(1081) != 0) + delitem 1081,1; //Merchant_Box_1 + else if (countitem(1082) != 0) + delitem 1082,1; //Merchant_Box_2 + else if (countitem(1091) != 0) + delitem 1091,1; //Merchant_Box_Etc + if (job_merchant_q == 4) + set job_merchant_q,2; + else if (job_merchant_q == 3) + set job_merchant_q,1; next; - goto L_Cont0; - - - L_Cont1: - mes "[Wharehouse Manager Kay]"; - mes "Be very carefull with this product and make sure you do not loose it. It cannot be replaced. If you do loose it you will not be able to become a Merchant."; - next; - mes "[Wharehouse Manager Kay]"; - mes "After you've made the delivery be sure to get a Receipt. Good luck!"; - set job_merchant_q3, 1; + mes "[Union Staff Kay]"; + mes "I need some time to get everything in order, so come back later."; + close; + } + mes "[Union Staff Kay]"; + mes "What a bummer..."; close; - - L_NotRdy: - mes "Speak with the chief about that"; + } + else if ((job_merchant_q == 0 || job_merchant_q == 1 || job_merchant_q == 2)) { + set where_village,0; + mes "[Union Staff Kay]"; + mes "Hey there."; + mes "what brings"; + mes "you here?"; + next; + switch(select("My Merchant License test.:I'm looking for part time work.:Nothing.")) { + case 1: + mes "[Union Staff Kay]"; + mes "I see."; + mes "Alright."; + mes "So what's"; + mes "your name?"; + mes "" + strcharinfo(0) + "...?"; + next; + if (job_merchant_q == 0) { + mes "[Union Staff Kay]"; + mes "Huh. Your name's not on my list. Did you apply for the job change quest or what?"; + next; + mes "[Union Staff Kay]"; + mes "You gotta apply first by talking to Chief Mahnsoo in the center"; + mes "of this building, okay?"; + close; + } + mes "[Union Staff Kay]"; + mes "Alright, there you go. Lemme give you the package. Now, choose the destination of the delivery."; + next; + switch(select("Prontera.:Geffen.:Morocc.:Byalan Island.")) { + case 1: set .@where_village,1; break; + case 2: set .@where_village,2; break; + case 3: set .@where_village,3; break; + case 4: set .@where_village,4; break; + } + mes "[Union Staff Kay]"; + mes "Okay, now you need to give me the package's Serial Number. If you wanna cancel, just enter '0', alright?"; + next; + while(1) { + while(1) { + input .@input; + if (.@input == 0) { + mes "[Union Staff Kay]"; + mes "Are you sure that you wanna cancel?"; + if (select("Yes.:Let me try again.") == 1) { + mes "Alright, we'll cancel for now."; + close; + } + next; + } + else if (.@input < 1000000 || .@input > 5000000) { + mes "[Union Staff Kay]"; + mes "Hey hey. That number's not valid! Enter a value from 1000000 to 5000000. got it?"; + next; + } + else + break; + } + mes "[Union Staff Kay]"; + if (.@where_village == 1) + mes "Destination is Prontera. The Serial Number is " + .@input + ". Are you positive?"; + else if (.@where_village == 2) + mes "Destination is Geffen. Phew! That's really far! The Serial Number is " + .@input + ". Are you positive?"; + else if (.@where_village == 3) + mes "Destination is Morocc. That's pretty far away! The Serial Number is " + .@input + ". Are you positive?"; + else + mes "Lucky you! Your destination is Byalan Island. The Serial Number is " + .@input + ". Are you positive?"; + next; + if (select("Positive.:Whoops! Wrong number!") == 1) { + break; + } + } + if (.@where_village == 1) { + if (job_merchant_q2 == 1 && .@input == 2485741) + getitem 1081,1; //Merchant_Box_1 + else if (job_merchant_q2 == 2 && .@input == 2328137) + getitem 1082,1; //Merchant_Box_2 + else + getitem 1091,1; //Merchant_Box_Etc + } + else if (.@where_village == 2) { + if (job_merchant_q2 == 3 && .@input == 2989396) + getitem 1081,1; //Merchant_Box_1 + else if (job_merchant_q2 == 4 && .@input == 2191737) + getitem 1082,1; //Merchant_Box_2 + else + getitem 1091,1; //Merchant_Box_Etc + } + else if (.@where_village == 3) { + if (job_merchant_q2 == 5 && .@input == 3012685) + getitem 1081,1; //Merchant_Box_1 + else if (job_merchant_q2 == 6 && .@input == 3487372) + getitem 1082,1; //Merchant_Box_2 + else + getitem 1091,1; //Merchant_Box_Etc + } + else { + if (job_merchant_q2 == 7 && .@input == 3318702) + getitem 1081,1; //Merchant_Box_1 + else if (job_merchant_q2 == 8 && .@input == 3543625) + getitem 1082,1; //Merchant_Box_2 + else + getitem 1091,1; //Merchant_Box_Etc + } + if (job_merchant_q == 2) + set job_merchant_q,4; + else if (job_merchant_q == 1) + set job_merchant_q,3; + mes "[Union Staff Kay]"; + mes "Alright. Take this package and guard it with your life until it's safely delivered to the customer. Don't lose this thing, got it?"; + next; + mes "[Union Staff Kay]"; + mes "Well then, I wish you luck. Remember, you gotta bring me"; + mes "a receipt once you finish the delivery, okay?"; close; - - L_NotNov: - mes "I'm sorry but only novices are allowed to take the Merchant License Test."; + case 2: + mes "[Union Staff Kay]"; + mes "Part time job? Sorry pal, no jobs yet. The Paymaster's department can never balance our budget..."; close; + case 3: + mes "[Union Staff Kay]"; + mes "Nothing, eh?"; + mes "I guess you enjoy"; + mes "bothering people for"; + mes "no reason then, yeah?"; + close; + } + } +} - M_1: - mes "[Wharehouse Manager Kay]"; - mes "Part Time job? Nothing is available right now. We're currently in a budget crisis and can't afford to hire any new employees."; - close; - M_End: - mes "[Wharehouse Manager Kay]"; - mes "...? Huh..? Huh..? What..?"; - close; - -L_Check: - if( job_merchant_q3 == 4) goto L_Done; - mes "[Wharehouse Manager Kay]"; - if(job_merchant_q3 == 1) goto L_Back; - if(job_merchant_q3 == 5) goto L_Failed; - if((job_merchant_q3 == 2) && (countitem(1083) ==1)) goto L_WrongProd;//Items: Delivery_Box__, - - mes "I see your back ^0000cc"+ strcharinfo(0) +"^000000. I hope things went well. Lets see.... you were supposed to deliver a product to a...."; - next; - mes "[Wharehouse Manager Kay]"; - if((countitem(1073) == 1) || (countitem(1074) == 1)) goto L_0;//Items: Voucher, Voucher_, - if((countitem(1075) == 1) || (countitem(1076) == 1)) goto L_1;//Items: Voucher__, Voucher___, - if((countitem(1077) == 1) || (countitem(1078) == 1)) goto L_2;//Items: Voucher____, Voucher_____, - if((countitem(1079) == 1) || (countitem(1080) == 1)) goto L_3;//Items: Voucher______, Voucher_______, - goto L_LostRecpt; - - L_0: - mes "...Kafra employee in Prontera. And indeed the receipt veryifies that the delivery was successfully made."; - if(countitem(1073) == 1) delitem 1073,1;//Items: Voucher, - if(countitem(1074) == 1) delitem 1074,1;//Items: Voucher_, +morocc_in,140,102,4 script Student#mer 86,{ + if ((job_merchant_q == 4) || (job_merchant_q == 3)) { + mes "[Dyer's Student]"; + mes "You're from"; + mes "the Merchant Guild?"; + mes "Yes! You've come to"; + mes "the right place."; next; - goto L_Done; - - L_1: - mes "...member of the Geffen Magic Academy. And indeed the receipt veryifies that the delivery was successfully made"; - if(countitem(1075) == 1) delitem 1075,1;//Items: Voucher__, - if(countitem(1076) == 1) delitem 1076,1;//Items: Voucher___, + mes "[Dyer's Student]"; + if (countitem(1081) == 1 || countitem(1082) == 1 || countitem(1091) == 1) { + mes "Okay~"; + mes "Please set the"; + mes "package down"; + mes "over there."; + } + else { + mes "But..."; + mes "Where's the"; + mes "package I ordered?"; + mes "That's strange..."; + close; + } next; - goto L_Done; - - L_2: - mes "...Dyermaker in Morroc. And indeed the receipt veryifies that the delivery was successfully made."; - if(countitem(1077) == 1) delitem 1077,1;//Items: Voucher____, - if(countitem(1078) == 1) delitem 1078,1;//Items: Voucher_____, + mes "[Dyer's Student]"; + mes "Let me check the Serial Number of the package so I can give you the receipt, okay?"; next; - goto L_Done; - - L_3: - mes "...Kafra employee in Byalan. And indeed the receipt veryifies that the delivery was successfully made."; - if(countitem(1079) == 1) delitem 1079,1;//Items: Voucher______, - if(countitem(1080) == 1) delitem 1080,1;//Items: Voucher_______, + mes "[Dyer's Student]"; + if (job_merchant_q2 == 5 && countitem(1081) != 0) { + mes "3012685..."; + mes "That's right."; + mes "Here's your"; + mes "receipt."; + delitem 1081,1; //Merchant_Box_1 + getitem 1077,1; //Merchant_Voucher_5 + } + else if (job_merchant_q2 == 6 && countitem(1082) != 0) { + mes "3487372..."; + mes "That's right."; + mes "Here's your"; + mes "receipt."; + delitem 1082,1; //Merchant_Box_2 + getitem 1078,1; //Merchant_Voucher_6 + } + else { + mes "Excuse me, but..."; + if (job_merchant_q2 == 5) + mes "I don't think this is the package we ordered. The Serial Number should be 3012685. See?"; + else if (job_merchant_q2 == 6) + mes "I don't think this is the package we ordered. The Serial Number should be 3487372. See?"; + else + mes "I don't think this is the package we ordered. The Serial Number should be 3012685 or 3487372. Well, one of those two..."; + close; + } + if (job_merchant_q == 4) + set job_merchant_q,6; + else if (job_merchant_q == 3) + set job_merchant_q,5; next; - - L_Done: - mes "[Wharehouse Manager Kay]"; - mes "Great! Everything went perfectly! I will send my evaluation of your performance to 'Chief Mahnsoo' imiediately."; - mes "Go ahead and speak with Chief Mahnsoo so that he can finalize the process to make you a Merchant."; - emotion e_no1; - set job_merchant_q3,4; - close; - L_LostRecpt: - mes "Lets see here...... you say you delivered the correct Product to the correct person...... but you have no reciept....."; - next; - mes "[Wharehouse Manager Kay]"; - mes "YOU HAVE NO RECIEPT?????"; - emotion e_omg; - next; - mes "[Wharehouse Manager Kay]"; - mes "HOW the HECK am I gonna know that you delievered it then? This was an ABSOLUTE FAILURE!!"; - mes "Your evaluation is not going to look good. I suggest you find some good excuses by the time you speak with Chief Mahnsoo."; - emotion e_pif; - set job_merchant_q3,5; - close; - L_WrongProd: - mes "You delivered the WRONG PRODUCT??? DO YOU know how much TIME you've WASTED???? UCK! This was a total failure!"; - emotion e_an; - next; - mes "[Wharehouse Manager Kay]"; - mes "Your evaluation is not going to look good. I suggest you find some good excuses when you go to speak with Chief Mahnsoo."; - delitem 1083, 1;//Items: Delivery_Box__, - set job_merchant_q3,5; - close; - L_Failed: - mes "Go speak to the Chief about your failure........"; + mes "[Dyer's Student]"; + mes "Thanks a lot!"; + mes "See you again"; + mes "sometime!"; close; - -L_Back: - if((countitem(1081) != 1) && (countitem(1082) != 1) && (countitem(1083) != 1)) goto L_LostProd;//Items: Delivery_Box, Delivery_Box_, Delivery_Box__, - mes "Huh? Back so soon? Don't tell me you ran into problems already...."; - emotion e_hmm; - next; - menu "Please Exchange the Product.",M_Exch,"Nope, never mind.",M_Nvmnd; - - M_Exch: - mes "[Wharehouse Manager Kay]"; - mes "Sigh... this is not a good way to start your test you know. Make sure you get the RIGHT Product this time! "; - emotion e_pif; - if(countitem(1081) ==1) delitem 1081,1;//Items: Delivery_Box, - if(countitem(1082) ==1) delitem 1082,1;//Items: Delivery_Box_, - if(countitem(1083) ==1) delitem 1083,1;//Items: Delivery_Box__, - set job_merchant_q3,0; - next; - goto M_0; - - M_Nvmnd: + } + else if (job_merchant_q == 6 || job_merchant_q == 5 && job_merchant_q2 == 6 || job_merchant_q2 == 5) { + mes "[Dyer's Student]"; + mes "Oh..."; + mes "You're gonna"; + mes "go back? Okay"; + mes "then, take care!"; close; - - L_LostProd: - mes "Huh? Oh~ How was the Trip?"; - next; - mes "[Wharehouse Manager Kay]"; - mes "WHAT???"; - emotion e_what; + } + else { + mes "[Dyer's Student]"; + mes "Mr. Java Dullihan is the one and only, the best dye maker on the Rune-Midgard continent."; next; - mes "[Wharehouse Manager Kay]"; - mes "Holy crap!! YOU LOST the product??!! What have you done, you moron!!!"; - emotion e_omg; + mes "[Dyer's Student]"; + mes "Aaaand I'm proud to say that I'm his student! Someday, I'll be able to make really beautiful dyes too!"; next; - mes "[Wharehouse Manager Kay]"; - mes "Your evaluation is not going to look good. I suggest you find some good excuses when you go to speak with Chief Mahnsoo."; - emotion e_ag; - set job_merchant_q3,5; + mes "[Dyer's Student]"; + mes "Of course, I'm still learning the basics right now, but someday..."; close; - + } } - - -// == Customers == -// -- Kafra(Byalan) -- -function script F_MercKafra { - - if (job_merchant_q3 == 3) goto L_3; - - mes "[Kafra]"; - if(job_merchant_q3 ==2) goto L_WrongProd; - mes "A delivery from the Merchant Guild?? Oh, Right! Yes! I almost forgot."; - next; - mes "[Kafra]"; - mes "Let's see, the serial number for the product should be......."; - next; - mes "[Kafra]"; - if((countitem(1081) ==0) && (countitem(1082) ==0) && (countitem(1083) ==0)) goto L_NoProd;//Items: Delivery_Box, Delivery_Box_, Delivery_Box__, - if((job_merchant_q2 !=7) && (job_merchant_q2 !=8)) goto L_WrongDest; - if(countitem(1083) == 1) goto L_WrongProd;//Items: Delivery_Box__, - - mes "Oh, here it is. Yes! This is the one we ordered. Thank you very much. Here is your receipt."; - next; - - set job_merchant_q3, 3; - if(countitem(1081) == 1) goto L_0;//Items: Delivery_Box, - if(countitem(1082) == 1) goto L_1;//Items: Delivery_Box_, - - L_0: - getitem 1079,1;//Items: Voucher______, - delitem 1081,1;//Items: Delivery_Box, - goto L_3; - - L_1: - getitem 1080,1;//Items: Voucher_______, - delitem 1082,1;//Items: Delivery_Box_, - goto L_3; - - L_3: - if(countitem(1072) == 1) goto L_Msg;//Items: Delivery_Message, - mes "[Kafra]"; - mes "Thanks so much for comming all this way to deliver the product to me. Take care now. By bye."; - emotion e_thx; - cutin "kafra_03",255; - close; - - L_Msg: - mes "[Kafra]"; - mes "Oh,My good Lord! Mr. Mansoo wrote me a Letter? Thank you, Thank you~"; - mes "I though he would send one, one of these days, but I've never expected it would be at a time like this....."; - emotion e_what; - next; - mes "[Kafra]"; - mes "I really appreciate what you've done for me. Here is a small gift to show you my thanks."; - emotion e_thx; - delitem 1072,1;//Items: Delivery_Message, - set @TEMP,rand(2); - if(@TEMP !=0) goto R1; - - R0: - - getitem 513,3;//Items: Banana, - cutin "kafra_03",255; - close; - R1: - getitem 512,3;//Items: Apple, - cutin "kafra_03",255; - close; - -L_NoProd: - mes ".... I thought we what we ordered was OVERSIZED and HEAVY.... but.... you seem to carry it on without any difficulty........."; - emotion e_what; - cutin "kafra_03",255; - close; - -L_WrongProd: - mes "......? Excuse me! I think you gave me the wrong item. Our order should have the serial number 3318702 or 3543625..."; - emotion e_swt; - set job_merchant_q3,2; - cutin "kafra_03",255; - close; - -L_WrongDest: - mes "......? Excuse me.... I think you have the wrong person.... our order should have the serial number 3318702 or 3543625..."; - emotion e_swt; - cutin "kafra_03",255; - close; -} - -// -- Kafra(Prontera) -- -prontera,248,42,8 script Kafra#01 115,{ - cutin "kafra_03",2; - if(BaseJob == Job_Novice && job_merchant_q3>0) goto L_Start; -L_Other: - mes "[Kafra]"; - mes "Hello. I am a Kafra Service Agent. As you can see, the ^3355FFSwordsman Association^000000 has moved to Izlude."; - mes "I can warp you there for a small fee of 600 zeny however."; - next; - menu "Warp.",M_Warp, "Cancel.",M_End; - - M_Warp: - // we'll use Free Ticket for Kafra Transportation if available - if(countitem(7060)){ - delitem 7060,1; - } else { - if(Zeny < 600) goto sL_NdZeny; - set Zeny, Zeny - 600; - set RESRVPTS, RESRVPTS + 37; +geffen_in,155,122,4 script Guild Staff#mer 47,{ + if (job_merchant_q == 4 || job_merchant_q == 3) { + mes "[Guild Staff]"; + mes "Ah, you must be with the Merchant Guild. Finally, my package has arrived! Alright...!"; + next; + mes "[Guild Staff]"; + if (countitem(1081) == 1 || countitem(1082) == 1 || countitem(1091) == 1) { + mes "You must be very tired"; + mes "from having to travel"; + mes "in this kind"; + mes "of weather..."; } - warp "izlude",91,105; - cutin "kafra_03",255; - end; - - sL_NdZeny: - mes "[Kafra]"; - mes "I'm sorry but you do not have enough zeny."; - cutin "kafra_03",255; + else { + mes "Wait..."; + mes "Where's the"; + mes "package?"; close; - - M_End: - mes "[Kafra]"; - mes "Thank you for using Kafra Corp. Services. We will be with you wherever you go."; - emotion e_thx; - cutin "kafra_03",255; + } + next; + mes "[Guild Staff]"; + mes "Alright, let me"; + mes "check the Serial Number..."; + if (job_merchant_q2 == 3 && countitem(1081) != 0) { + mes "2989396. Yes, this is what we ordered. Here is your receipt."; + delitem 1081,1; //Merchant_Box_1 + getitem 1075,1; //Merchant_Voucher_3 + } + else if (job_merchant_q2 == 4 && countitem(1082) != 0) { + mes "2191737. Yes, this is what we ordered. Here is your receipt."; + delitem 1082,1; //Merchant_Box_2 + getitem 1076,1; //Merchant_Voucher_4 + } + else { + mes "Uh oh, this is the wrong number. This isn't what we ordered..."; + next; + mes "[Guild Staff]"; + if (job_merchant_q2 == 3) { + mes "The Serial Number"; + mes "should be 2989396."; + } + else if (job_merchant_q2 == 4) { + mes "The Serial Number"; + mes "should be 2191737."; + } + else { + mes "The Serial Number"; + mes "should be 2989396"; + mes "or 2191737, one of"; + mes "those two."; + } + mes "Look here!"; + mes "Don't you see"; + mes "something"; + mes "is wrong?"; + close; + } + if (job_merchant_q == 4) + set job_merchant_q,6; + else if (job_merchant_q == 3) + set job_merchant_q,5; + next; + mes "[Guild Staff]"; + mes "Heh heh~"; + mes "Thank you!"; + mes "Bye bye!"; close; - - -L_Start: - if(job_merchant_q3 ==3) goto L_3; - mes "[Kafra]"; - if(job_merchant_q3 ==2) goto L_WrongProd; - - mes "Oh, you're from the Merchant Guild and you have a delivery for me?"; - mes "I really appreciate you comming all this way.........."; - next; - mes "[Kafra]"; - - if((countitem(1081) ==0) && (countitem(1082) ==0) && (countitem(1083) ==0)) goto L_NoProd;//Items: Delivery_Box, Delivery_Box_, Delivery_Box__, - if((job_merchant_q2 !=1) && (job_merchant_q2 !=2)) goto L_WrongDest; - if(countitem(1083) == 1) goto L_WrongProd;//Items: Delivery_Box__, - - mes "Yes! This is the Product we ordered. Thank you. Here, let me give you a Receipt."; - next; - - set job_merchant_q3,3; - if(countitem(1081) == 1) goto L_0;//Items: Delivery_Box, - if(countitem(1082) == 1) goto L_1;//Items: Delivery_Box_, - - L_0: - getitem 1073,1;//Items: Voucher, - delitem 1081,1;//Items: Delivery_Box, - goto L_3; - - L_1: - getitem 1074,1;//Items: Voucher_, - delitem 1082,1;//Items: Delivery_Box_, - goto L_3; - - L_3: - mes "[Kafra]"; - mes "Thank you again for the delivery."; - emotion e_thx; - cutin "kafra_03",255; + } + else if (job_merchant_q == 6 || job_merchant_q == 5 && job_merchant_q2 == 4 || job_merchant_q2 == 3) { + mes "[Guild Staff]"; + mes "Hello,"; + mes "Merchant Guildsman~"; + mes "I give you my thanks."; close; - -L_NoProd: - mes "Umm......... excuse me... but where is the Product your supposed to give me....?"; - emotion e_hmm; - cutin "kafra_03",255; - close; - -L_WrongProd: - mes "Oh, Dear... this isn't what I ordered. It should have a serial number of either ^ff00002485741 or 2328137^000000."; - mes "It looks like there was a mix up at the wharehouse and you got the wrong product. I'd appreciate it if you could sort this out."; - emotion e_swt; - set job_merchant_q3,2; - cutin "kafra_03",255; - close; - -L_WrongDest: - mes "Oh, Dear... this isn't what I ordered. You see here, it's addressed to someone else. It looks like this Product is supposed to go to someone else."; - emotion e_swt; - cutin "kafra_03",255; - close; -} - - -// == Other Npcs == -// -- Guild Staff -- -geffen_in,155,122,4 script Guild Staff 47,{ - - if(BaseJob == Job_Novice && job_merchant_q3>0) goto L_Start; -L_Other: - mes "[Guild Staff]"; - mes "It should be arriving any time now...... it seems to be late.... Hmm..."; - close; - -L_Start: - if(job_merchant_q3 ==3) goto L_3; - mes "[Guild Staff]"; - if(job_merchant_q3 ==2) goto L_WrongProd; - - mes "Oh hi there. You're from the Merchant Guild you say? That means........."; - next; - mes "[Guild Staff]"; - mes "WOW! IT'S HERE! It's here!! They FINALLY sent the Box!...... "; - next; - mes "[Guild Staff]"; - mes "Oh excuse me, I'm so sorry. You must be very tired from having to travel in such hot weather. My thanks for your effort."; - next; - mes "[Guild Staff]"; - mes "Alright, let me just ckeck the Serial Number to make sure........."; - next; - mes "[Guild Staff]"; - if((countitem(1081) !=1) && (countitem(1082) !=1) && (countitem(1083) !=1)) goto L_NoProd;//Items: Delivery_Box, Delivery_Box_, Delivery_Box__, - if((job_merchant_q2 !=3) && (job_merchant_q2 !=4)) goto L_WrongDest; - if(countitem(1083) == 1) goto L_WrongProd;//Items: Delivery_Box__, - - mes "YES! This is it! Here, let me give you a Receipt."; - next; - set job_merchant_q3,3; - if(countitem(1081) == 1) goto L_0;//Items: Delivery_Box, - if(countitem(1082) == 1) goto L_1;//Items: Delivery_Box_, - - L_0: - getitem 1075,1;//Items: Voucher__, - delitem 1081,1;//Items: Delivery_Box, - goto L_3; - - L_1: - getitem 1076,1;//Items: Voucher___, - delitem 1082,1;//Items: Delivery_Box_, - goto L_3; - - L_3: + } + else { mes "[Guild Staff]"; - mes "Heheh~ Thank you, Bye Bye."; - emotion e_thx; + mes "My package should have arrived by now. Huh. I guess the Merchant Guild might be running a little late..."; close; -L_NoProd: - mes "Huh? Where? Where is the Box?"; - emotion e_what; - close; - -L_WrongDest: - mes "Hey wait a Minute! This is not what we ordered! The Serial Number should either be 2989396 or 2191737."; - mes "It looks like this is addressed to someone else. I think you got the wrong delivery destination."; - emotion e_swt2; - close; - -L_WrongProd: - mes "Hey wait a Minute! This is not what we ordered! The Serial Number should either be 2989396 or 2191737."; - mes "I don't know how you could make this mistake but please correct it. I really need that Product."; - emotion e_swt2; - set job_merchant_q3,2; - close; + } } +prontera,248,42,0 script Kafra Employee#mer 116,{ + cutin "kafra_02",2; + if (job_merchant_q == 6 || job_merchant_q == 5) && (job_merchant_q2 == 2 || job_merchant_q2 == 1) { + mes "[Kafra Employee]"; + mes "Oh! Thank you for"; + mes "traveling such a long"; + mes "way to come over here~"; + close2; + cutin "",255; + end; + } + else if (job_merchant_q == 4 || job_merchant_q == 3) { + mes "[Kafra Employee]"; + mes "A delivery from"; + mes "the Merchant Guild?"; + mes "Oh, yes, please set"; + mes "it down right over there..."; + if (countitem(1081) == 1 || countitem(1082) == 1 || countitem(1091) == 1) { + mes "You must be really tired"; + mes "after carrying it for so long!"; + } + else { + mes "W-wait. Didn't you bring it?"; + mes "Where's the package?"; + close2; + cutin "",255; + end; + } + next; + mes "[Kafra Employee]"; + mes "Now, let me check"; + mes "the serial number..."; + if (job_merchant_q2 == 1 && countitem(1081) != 0) { + mes "2485741. Right, this is"; + mes "the one we ordered. Oh,"; + mes "and don't forget this receipt!"; + next; + delitem 1081,1; //Merchant_Box_1 + getitem 1073,1; //Merchant_Voucher_1 + } + else if (job_merchant_q2 == 2 && countitem(1082) != 0) { + mes "2328137. Right, this is"; + mes "the one we ordered. Oh,"; + mes "and don't forget this receipt!"; + next; + delitem 1082,1; //Merchant_Box_2 + getitem 1074,1; //Merchant_Voucher_2 + } + else { + mes "Mmmm? Hold on. This is"; + mes "the wrong package. What we"; + if (job_merchant_q2 == 1) + mes "ordered had the serial number 2485741. I'm sure it's not this."; + else if (job_merchant_q2 == 2) + mes "ordered had the serial number 2328137. I'm sure it's not this."; + else + mes "ordered had the serial number 2328137 or 2328137."; + next; + mes "[Kafra Employee]"; + mes "I'm afraid there"; + mes "must be some kind"; + mes "of mistake. Perhaps"; + mes "you should go back to"; + mes "the Merchant Guild to"; + mes "clear up this situation?"; + close2; + cutin "",255; + end; + } + if (job_merchant_q == 4) + set job_merchant_q,6; + else if (job_merchant_q == 3) + set job_merchant_q,5; + mes "[Kafra Employee]"; + mes "Thanks again"; + mes "for going through"; + mes "all of that trouble~"; + close2; + cutin "",255; + end; + } + else { + mes "[Kafra Employee]"; + mes "Welcome to the"; + mes "Kafra Corportation,"; + mes "where the service is"; + mes "always on your side~"; + next; + mes "[Kafra Employee]"; + mes "As you can see, the"; + mes "Swordman Assocation"; + mes "has moved to Izlude, a"; + mes "satellite city of Prontera."; + mes "Currently, we offer a Teleport"; + mes "Service to Izlude for 600 zeny."; + next; + if (select("Use:Cancel") == 1) { + if (Zeny < 600) { + mes "[Kafra Employee]"; + mes "I'm sorry, but you"; + mes "don't have enough zeny"; + mes "for this Teleport Service."; + close2; + cutin "",255; + end; + } + set zeny,zeny-600; + set RESRVPTS, RESRVPTS + 37; + cutin "",255; + warp "izlude",94,103; + end; + } + close2; + cutin "",255; + end; + } +} -// -- Dyer's Student -- -morocc_in,140,102,4 script Dyer's Student 86,{ - if(BaseJob == Job_Novice && job_merchant_q3>0) goto L_Start; - -L_Other: - mes "[Dyer's Student]"; - mes "Mr. JavaDullihan is one and Only the Best in Midgard continent."; - mes "Aaaand I am his Student!! How proude of I am!!!!"; - next; - mes "[Dyer's Student]"; - mes ".....That's what I am saying.."; - close; - -L_Start: - if(job_merchant_q3 ==3) goto L_3; - mes "[Dyer's Student]"; - if(job_merchant_q3 ==2) goto L_WrongProd; - - mes "You're from the Merchant Guild...? Ah, Yes! I've been expecting you."; - next; - mes "[Dyer's Student]"; - mes "Let me check the Serial Number of the Product just to make sure......."; - next; - mes "[Dyer's Student]"; - if((countitem(1081) !=1) && (countitem(1082) !=1) && (countitem(1083) !=1)) goto L_NoProd;//Items: Delivery_Box, Delivery_Box_, Delivery_Box__, - if((job_merchant_q2 !=5) && (job_merchant_q2 !=6)) goto L_WrongDest; - if(countitem(1083) == 1) goto L_WrongProd;//Items: Delivery_Box__, - - mes "Great! This is what we ordered. Here, let me give you a Receipt."; - set job_merchant_q3,3; - if(countitem(1081) == 1) goto L_0;//Items: Delivery_Box, - if(countitem(1082) == 1) goto L_1;//Items: Delivery_Box_, - - L_0: - getitem 1077,1;//Items: Voucher____, - delitem 1081,1;//Items: Delivery_Box, - goto L_3; - - L_1: - getitem 1078,1;//Items: Voucher_____, - delitem 1082,1;//Items: Delivery_Box_, - goto L_3; - - L_3: - mes "[Dyer's Student]"; - mes "Thank you, See you next time~"; - emotion e_thx; - close; - -L_NoProd: - mes "But where's the Product?"; - emotion e_hmm; - close; - -L_WrongProd: - mes "Um..... excuse me? I don't think this is what we ordered? The Serial Number should be either 3012685 or 3487372."; - emotion e_hmm; - next; - mes "[Dyer's Student]"; - mes "I see. There was a mix up at the wharehouse and you got the wrong product."; - next; - mes "[Dyer's Student]"; - mes "Well this sucks. Please come back with the correct Product."; - emotion e_pif; - set job_merchant_q3,2; - close; - -L_WrongDest: - mes "Um.... excuse me? I don't think this is what we ordered? The Serial Number should be either 3012685 or 3487372."; - mes "I think you have the wrong delivery destination. Maybe you should try someone else."; - emotion e_hmm; - close; - - +//izlu2dun,106,58,4 script Kafra Employee#mer 116,{ +function script F_MercKafra { + if (job_merchant_q == 6 || job_merchant_q == 5 && job_merchant_q2 == 8 || job_merchant_q2 == 7) { + mes "[Kafra Employee]"; + mes "Oh hello~"; + mes "Um, is there"; + mes "some special reason"; + mes "as to why you're here?"; + close2; + cutin "",255; + end; + } + else if (job_merchant_q == 4 || job_merchant_q == 3) { + mes "[Kafra Employee]"; + mes "A delivery from"; + mes "the Merchant Guild?"; + mes "Oh, yes, please set"; + mes "it down right over there..."; + if (countitem(1081) == 1 || v[Merchant_Box_2] == 1 || countitem(1091) == 1) { + mes "You must be really tired"; + mes "after carrying it for so long!"; + } + else { + mes "W-wait. Didn't you bring it?"; + mes "Where's the package?"; + close2; + cutin "",255; + end; + } + next; + mes "[Kafra Employee]"; + mes "Now, let me check"; + mes "the serial number..."; + if (job_merchant_q2 == 7 && countitem(1081) != 0) { + mes "3318702. Right, this is"; + mes "the one we ordered. Oh,"; + mes "and don't forget this receipt!"; + delitem 1081,1; //Merchant_Box_1 + getitem 1079,1; //Merchant_Voucher_7 + } + else if (job_merchant_q2 == 8 && countitem(1082) != 0) { + mes "3543625. Right, this is"; + mes "the one we ordered. Oh,"; + mes "and don't forget this receipt!"; + delitem 1082,1; //Merchant_Box_2 + getitem 1080,1; //Merchant_Voucher_8 + } + else { + mes "Mmmm? Hold on. This is"; + mes "the wrong package. What we"; + if (job_merchant_q2 == 7) + mes "ordered had the serial number 3318702. I'm sure it's not this."; + else if (job_merchant_q2 == 8) + mes "ordered had the serial number 3543625. I'm sure it's not this."; + else + mes "ordered had the serial number 3318702 or 3543625."; + close2; + cutin "",255; + end; + } + if (job_merchant_q == 4) + set job_merchant_q,6; + else if (job_merchant_q == 3) + set job_merchant_q,5; + next; + if (countitem(1072) != 0 && quest_alb_01 == 0) { + select("This is from Chief Mahnsoo of the Merchant Guild..."); + delitem 1072,1; //Delivery_Message + set quest_alb_01,1; + mes "[Kafra Employee]"; + mes "Oh~! A letter from"; + mes "Mahnsoo! Thank you"; + mes "so much, I've been dying"; + mes "to hear from him. How is"; + mes "he doing, is he alright?"; + mes "I can't wait to read it..."; + next; + mes "[Kafra Employee]"; + mes "Oh, thank you for"; + mes "going through all the"; + mes "trouble of delivering all"; + mes "of this. This isn't anything"; + mes "special, but please take it."; + mes "Well, see you again~"; + getitem 513,3; //Banana + } + else { + mes "[Kafra Employee]"; + mes "Thanks again"; + mes "for going through"; + mes "all of that trouble~"; + } + close2; + cutin "",255; + end; + } } diff --git a/npc/jobs/1-1/swordman.txt b/npc/jobs/1-1/swordman.txt index f87d9c637..9ca396061 100644 --- a/npc/jobs/1-1/swordman.txt +++ b/npc/jobs/1-1/swordman.txt @@ -1,13 +1,14 @@ //===== eAthena Script ======================================= //= Swordsman Job Quest //===== By: ================================================== -//= kobra_k88 +//= kobra_k88; L0ne_W0lf //===== Current Version: ===================================== -//= 1.7.1 +//= 1.8 //===== Compatible With: ===================================== -//= eAthena 1.0 + +//= eAthena SVN //===== Description: ========================================= -//= <Description> +//= [Aegis Conversion] +//= Job quest for Swordman classes //===== Additional Comments: ================================= //= Fully working. I have created a custom warp to get into the test room so disable //= the one in your warp script or scripts. It is this warp: "izlude_in",40,170. @@ -22,779 +23,1220 @@ //= 1.6 Merged back JFunc, CHANGED NUMBERS TO CONSTANTS [Lupus] //= 1.7 changed location from its clone to the original [Lupus] //= 1.7.1 Fixed warp on timeout [KarLaeda] +//= 1.8 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf] +//= Removed "green" traps, quest is no longer timed. +//= No longer uses function "F_ToHigh" //============================================================ - -// == Npcs == -// -- Master Swordsman -- -izlude_in,74,172,5 script Master Swordsman 119,{ - callfunc "F_ToHigh",Job_Swordman_High,"Swordman High",Job_Lord_Knight,"Master Swordsman"; - mes "[Master Swordsman]"; - if(BaseJob == Job_Novice && job_sword_q == 2) goto L_Done; - mes "Welcome to the Swordsman Association! So.. What business brings you to us?"; -L_Menu: - next; - menu "Make me a Swordsman!",M_0,"About being a Swordsman.",M_1,"The job requirements.",M_2,"Cancel.",M_End; - close; - - M_0: - mes "[Master Swordsman]"; - if(BaseJob == Job_Swordman) { - mes "Muhahaha! You must be kidding me! You're already a swordsman."; - emotion e_heh; +izlude_in,74,172,4 script Swordman 119,{ + if (Upper == 1) { + if (Class == Job_Novice_High && ADVJOB == Job_Lord_Knight || ADVJOB == Job_Paladin) { + mes "[Swordman]"; + mes "It..."; + mes "Can't be..."; + mes "You've been reborn, haven't you?"; + next; + mes "[Swordman]"; + mes "I see you're retreading the path of the Swordman! Once you've gotten used to brandishing a sword, you can never go back!!"; + next; + if (getskilllv(1) < 9) { + mes "[Swordman]"; + mes "Hmm? Ah, you must first master the Basic Skills before you are ready to become a Swordman."; + next; + mes "[Swordman]"; + mes "Come back to me when you have finished learning the Basic Novice Skills."; + close; + } + mes "[Swordman]"; + mes "Excellent! Let me promote you to a Swordman right away!"; + next; + skill 143,0,0; + jobchange Job_Swordman_High; + skill 144,1,0; + skill 145,1,0; + skill 146,1,0; + mes "[Swordman]"; + mes "Hmm... You look like a well-experienced Swordman. Still, I'm sure that you must train to improve your skills and gain strength!"; close; } - if(BaseJob != Job_Novice) { - mes "Im sorry but you can not hold more than one job at a time and therefore I must refuse your request."; + else { + mes "[Swordman]"; + mes "Hm...?"; + mes "You're a reborn"; + mes "warrior, aren't you?"; next; - mes "[Master Swordsman]"; - mes "Try picking up a hobby to make use of your spare time. Muhahahahah!!"; - emotion e_heh; + mes "[Swordman]"; + mes "Hmmm..."; + mes "It seems that being"; + mes "a Swordman is not part"; + mes "of your destiny. I'm sorry,"; + mes "but it seems there is nothing"; + mes "I can do for you."; close; } - mes "So you wish to become a Swordsman aye? A very good choice!! Fill out this application form first."; - next; - mes "..(you fill out the form and hand it to him).."; - next; - mes "[Master Swordsman]"; - if(JobLevel < 10) { - mes "A hem...., you have yet to learn all of the 'Basic Skills' needed to become a Swordsman. Please check the requirements again."; + } + mes "[Swordman]"; + mes "Welcome to the"; + mes "Swordman Association!"; + next; + mes "[Swordman]"; + mes "So..."; + mes "What business"; + mes "brings you to us?"; + next; + switch(select("Job Change:About Swordman.:About the Job requirements.:Cancel.")) { + case 1: + if (BaseJob == Job_Swordman) { + mes "[Swordman]"; + mes "Job change? Muhahaha! But you're already a Swordman! Be proud and be strong!"; close; } - - set job_sword_q,1; - savepoint "izlude_in",65,165; - mes "Okay. Let me just review your information......"; - next; - mes "[Master Swordsman]"; - mes "Ah!! I see that you have met the necessary requirements....."; - next; - mes "[Master Swordsman]"; - mes "But there is one last thing you need to do to before I can make you an offical Swordsman."; - mes "You must prove your valour by taking the Izlude Swordsman Test!!!"; - next; - mes "[Master Swordsman]"; - mes "Are you willing to do so?"; - next; - menu "Yes.",sM_0,"No.",sM_1; - - sM_0: - mes "[Master Swordsman]"; - mes "Very good!!! The testing room is too my right."; + else if (BaseJob != Job_Novice) { + mes "[Swordman]"; + mes "Haha! Oh boy. I'm flattered, but you already have another job! Still, I can't blame you..."; + close; + } + if (job_sword_q == 0) { + mes "[Swordman]"; + mes "So you wish to become a proud Swordman? By all means, please sign up!"; + next; + if (select("Sign up.:Cancel.") == 1) { + savepoint "izlude_in",65,165; + set job_sword_q,1; + mes "[Swordman]"; + mes "Ah, yes. Your application will be reviewed as soon as possible."; + next; + mes "[Swordman]"; + mes "If you have already met the requirements, you can take an interview right now. Would you like to?"; + next; + if (select("Yes.:No.") == 1) { + mes "[Swordman]"; + mes "Good, good."; + mes "Now, let's see..."; + next; + } + else { + mes "[Swordman]"; + mes "Alright then. Feel free to come back whenever you are ready. All you ahve to do now is meet our requirements. Good luck to you."; + close; + } + } + else { + mes "[Swordman]"; + mes "Hm? Alright, come back whenever you change your mind. The world can always use another Swordman!"; + close; + } + } + mes "[Swordman]"; + if (getskilllv(1) < 9) { + mes "Hm, you still haven't learned all of the Basic Skills. You need to do that before you can become a Swordman."; next; - mes "[Master Swordsman]"; - mes "Good luck young warrior!!!"; + mes "[Swordman]"; + mes "Check the requirements for job change again, and come back when you are ready."; close; - - sM_1: - mes "[Master Swordsman]"; - mes "Very well then. Your registration is complete. When you are ready to take the test, just enter the testing room to my right."; + } + else if (job_sword_q <= 3) { + mes "Hm, you've learned all of the Basic Skills but didn't take the test yet. You must first pass the exam before you can change your job to Swordman."; + next; + mes "[Swordman]"; + mes "Enter the room to my right so that you can take the test. You'll need to speak to my right so you can enter the examination area."; close; - - M_1: - mes "[Master Swordsman]"; - mes "So you wish to know about the Swordsman profession... very good then! I will explain it to you."; - next; - mes "[Master Swordsman]"; - mes "The primary advantage of being a Swordsman is that you will become superior in pure strength and mele combat compared with those in the other professions."; - next; - mes "[Master Swordsman]"; - mes "There are 3 reasons why the swordsman is unparalled in hand to hand combat v.s. those of the other job types!"; - next; - mes "[Master Swordsman]"; - mes " - 1st, the swordsman has a skill that gives him/her an excellent hp regeration rate."; - mes " - 2nd, the swordsman is capable of using more kinds of weapons than those in the other job types."; - mes " - 3rd, Most of the swordsman's skills enhance and increase physical attacks making him/her an elite warrior."; + } + else if (job_sword_q == 4) { + mes "Hahaha! Congratulations! Now you are fully qualified to be a real Swordman! I will transform you right away!"; + next; + jobchange Job_Swordman; + set job_sword_q,0; + mes "[Swordman]"; + mes "Once again, congratulations. I expect that you will be a good representative of the Swordman Association."; + close; + } + case 2: + mes "[Swordman]"; + mes "So you wish to know more about the mighty Swordman job? Well, then..."; next; - mes "[Master Swordsman]"; - mes "A Simple but adequte explanation for a newbie like you."; + mes "[Swordman]"; + mes "Amongst the First Class jobs, the Swordman is the best melee fighter for three reasons."; + mes "There are 3 reasons why Swordy is the best to approch a fight!"; next; - mes "[Master Swordsman]"; - mes "Aside from this, in my personal opinion, being a 'Swordsman' is greatest job in all the land!"; - mes "Muhahahah!!!"; - emotion e_heh; - goto L_Menu; - - M_2: - mes "[Master Swordsman]"; - mes "So you wish to become a swordsman...."; + mes "[Swordman]"; + mes "First, Swordman has the benefit of additional HP. Second, Swordman generally have access to a wider selection fo weapons than the other First Class jobs."; next; - if(BaseJob == Job_Novice) goto O_2a; - if(BaseJob == Job_Swordman) { - mes "[Master Swordsman]"; - mes "....but you're already a Swordsman...????"; - emotion e_hmm; - close; + mes "[Swordman]"; + mes "And third, most of the Swordman skills are crushing physical attacks! In my opinion, being a Swordman is the best job ever!"; + close; + case 3: + mes "[Swordman]"; + mes "Hmmm..."; + if (BaseJob != Job_Novice) { + if (BaseJob == Job_Swordman) + mes "But there's no need to tell you the requirements. You've met them and already became a Swordman! Well, anyway..."; + else + mes "It's too late for you to become a Swordman. You already have another job. Still, there's no harm in telling you..."; } - mes "[Master Swordsman]"; - mes "But you already have another job.... it's too late for you to become a Swordsman."; next; - mes "[Master Swordsman]"; - mes "Still you seek knowledge about the Swordsman proffession ay?... very well then...."; + mes "[Swordman]"; + mes "First, you must learn all 9 of the Basic Skills. If you can't complete this requirement, you won't be able to change to any job."; next; - - O_2a: - mes "[Master Swordsman]"; - mes "First, You must learn all 9 Basic Skills. If you can't satisfy this condition, you won't be able to become anything."; - next; - mes "[Master Swordsman]"; - mes "Secondly you must pass the legendary Izlude Swordsman Test."; - next; - mes "[Master Swordsman]"; - mes "When you fullfill these 2 conditions, you can become an offical Swordsman."; - goto L_Menu; - - M_End: - mes "[Master Swordsman]"; - mes "Enjoy your youth before you lose it~~ Muhahahaha!!!!"; - emotion e_heh; + mes "[Swordman]"; + mes "Second, you must pass the Swordman Test. Inquire the Test Manager located in the waiting room of the Swordman Test."; + next; + mes "[Swordman]"; + mes "If you can complete these 2 requirements, you can change to a Swordman anytime you want."; close; - -L_Done: - mes "Let me see here....so you've past the test aye??...."; - next; - if(SkillPoint > 0) goto L_Skillpt; - mes "[Master Swordsman]"; - mes "Congratulations! Now you are now fully qualified to become a Real Swordsman! I will transform you right away!!"; - next; - callfunc "Job_Change",Job_Swordman; - callfunc "F_ClearJobVar"; // clears all job variables for the current player - mes "[Master Swordsman]"; - mes "As you set forth on your journey I will expect you to represent the Swordsman Assosiation of Izlude with great honor and integrity."; - next; - mes "[Master Swordsman]"; - mes "Muhahahaha!!!"; - close; - - L_Skillpt: - mes "[Master Swordsman]"; - mes "Hmm... just a momement... it seems you still have skill points left over."; - mes "Please use them up so that I can make you a Swordsman."; + case 4: + mes "[Swordman]"; + mes "Ha ha ha!"; + mes "Ah, youth!"; close; + } } -// == Warp == -// -- Warp to test room -- -izlude_in,62,170,0 script w1039 45,1,1,{ - if(BaseJob == Job_Novice && job_sword_q > 0) warp "izlude_in",40,170; - if(job_sword_q == 0) doevent "Swordsman#02::OnStart"; - end; -} - -// -- Swordsman -- -izlude_in,65,171,5 script Swordsman#01 85,{ - doevent "Swordsman#02::OnStart"; - end; -} - -// -- Hidden Npc -- -izlude_in,65,171,5 script Swordsman#02 -1,{ - -OnStart: - mes "[Swordsman]"; - if(BaseJob == Job_Swordman) goto L_Sword; - if(BaseJob == Job_Novice) goto L_Novice; - -L_Other: - mes "Who might you be?! Those who are not Novices are not permitted to go in! Please leave."; - emotion e_what; - close; -L_Sword: - mes "You're already a Swordsman!! You don't need to take this silly test!"; - emotion e_gasp; - close; - -L_Novice: - if(job_sword_q == 1) goto L_Start; - if(job_sword_q == 2) goto L_Done; - - mes "Halt! Do you want to take the Swordsman Test?"; - mes "If so, please fill out the swordsman application first."; - mes "Speak with the 'Master Swordsman' for more information."; - emotion e_gasp; +izlude_in,62,170,6 script Swordman 85,{ + mes "[Swordman]"; + if (BaseJob == Job_Swordman) { + mes "Sorry guy, but I can only allow Novices to enter the Test Hall."; close; - - L_Start: - mes "Please enter the testing room when you are ready. Good luck!"; + } + else if (BaseJob != Job_Novice) { + mes "Who the hell are you?! Nobody, other than Novices, is permitted to come in here!"; close; - - L_Done: - mes "Speak with the Master Swordsman so that he can make you a Swordsman."; + } + else if (getskilllv(1) < 9) { + mes "Stop! I can't let you in until you learn all of the Basic Skills. The Test Hall isn't for goofing off!"; close; + } + else if (job_sword_q == 4) { + mes "Hey. You need to talk to the Swordman in the center of the room, not me."; + close; + } + else if (job_sword_q == 0) { + mes "Stop! If you want to take the Swordman Test, you'll need to fill out an application first."; + next; + mes "[Swordman]"; + mes "The Swordman in the center of the room can help you with that, got it?"; + close; + } + else { + savepoint "izlude_in",65,165; + warp "izlude_in",39,170; + end; + } } -// -- Test Guide -- -izlude_in,30,175,4 script Test Guide 92,{ - mes "[Test Guide]"; - mes "I will tell you about the legendary Izlude Swordsman Test! Listen VERY CAREFULLY for I won't repeat this again!"; +izlude_in,30,175,4 script Swordman 92,{ + mes "[Swordman]"; + mes "I will tell you about the Test! Listen carefully, I won't repeat myself."; + next; + mes "[Swordman]"; + mes "The purpose of this test is to confirm whether or not you are qualified to be a Swordman. As you know, a Swordman needs physical strength and spirit!"; next; - mes "[Test Guide]"; - mes "The purpose of this test is to decide wheather or not you qualify to become a Swordsman."; - mes "As you know, a Swordsman needs superior physical Strength as well as an iron will!"; - mes "If you possess neither of these attributes you will surely fail this grueling test."; + mes "[Swordman]"; + mes "Without those, you won't be able to become a Swordman. Now, the conditions for completing this test are very simple."; next; - mes "[Test Guide]"; - mes "The objective of the test is very simple!"; + mes "[Swordman]"; + mes "You will travel through three courses and must reach the final checkpoint within ^FF000010 minutes^000000."; next; - mes "[Test Guide]"; - mes "You need to make through an obsticale course within ^FF00007 minutes^000000 in order to pass."; + mes "[Swordman]"; + mes "If you choose to 'Surrender,' or if you run out of time, you will not pass the test."; next; - mes "[Test Guide]"; - mes "The obsticale course is made up of 3 parts and is littered with booby-traps so be carefull!"; - mes "Some traps will reduce your HP while others will warp you to an random underground cave causing you to start over."; + mes "[Swordman]"; + mes "If you find that you are not strong enough to pass the test, head to the entrance of the course and talk to the checkpoint manager."; next; - mes "[Test Guide]"; - mes "If you `Surrender' or if you excede the 'time limit', you will be fail the test."; + mes "[Swordman]"; + mes "As you travel through the three courses, you may fall to a random, underground area. The course is designed so that you can still find your way back."; next; - mes "[Test Guide]"; - mes "That is everything you need to know in order to take the test."; - mes "May God bless you."; + mes "[Swordman]"; + mes "However, be careful, as this will waste your time! Godspeed to you."; close; } - -// -- Test Hall Staff 1 -- -izlude_in,30,163,8 script Test Hall Staff 105,{ - mes "[Test Hall Staff]"; - if(SWTEST == 1) goto L_Option2; - if(SWTEST >= 2) goto L_Option3; - set SWTEST, 0; - - mes " So you want to take the test huh? You look confident.. that's good. Stay relaxed and do your best. This is not a difficult test."; - next; +izlude_in,30,163,0 script Test Hall Staff 105,{ mes "[Test Hall Staff]"; - mes "Are you ready?"; - next; - menu "Let me at it!!",-,"Ah..maybe later..",M_no; - - M_yes: - set SWTEST, SWTEST + 1; - savepoint "izlude_in",39,170; - stopnpctimer; - initnpctimer "TimerSwrdmn"; - warp "job_sword1",10,245; + if (BaseJob == Job_Swordman) { + mes "Hm? How did you get inside? You're not supposed to be in here, so please leave now."; + close2; + warp "izlude_in",66,170; + end; + } + else if (BaseJob != Job_Novice) { + mes "Who are you?! This place is for the Swordman Test! You're not allowed to be in here! Leave now!"; + close2; + warp "izlude_in",66,170; end; + } + if (job_sword_q == 1) { + mes "So are you the one who wants to be a Swordman? Alright! You look reliable!"; + next; + mes "[Test Hall Staff]"; + mes "Try to relax and do your best. This course isn't so difficult."; + set job_sword_q,2; + } + else if (job_sword_q == 2) { + mes "Retesting? Try not to worry about it. It's good that you don't back down from a challenge! Here, take these and cheer up!"; + getitem 512,5; //Apple + set job_sword_q,3; + } + else if (job_sword_q == 3) + mes "Don't ever give up! Now retesting!"; + close2; + switch(rand(1,3)) { + case 1: warp "sword_1-1",10,245; end; + case 2: warp "sword_2-1",10,245; end; + case 3: warp "sword_3-1",10,245; end; + } +} - M_no: - mes "[Test Hall Staff]"; - mes "Check back with me when you are ready."; - close; +// Examination Courses NPCs +//============================================================ +// 1-1 +sword_1-1,230,245,2 script Medic#swd_1 105,{ + callfunc "F_JobSwdMedic","1st"; +} +sword_1-1,230,242,2 script Test Hall Staff#swd_1 105,{ + callfunc "F_JobSwdStaff",1; +} +sword_1-1,230,207,2 script Medic#2swd_1 105,{ + callfunc "F_JobSwdMedic","2nd"; +} +sword_1-1,230,204,2 script Test Hall Staff#2swd_1 105,{ + callfunc "F_JobSwdStaff",1; +} +sword_1-1,223,167,2 script Mae#swd_1_success 92,{ + callfunc "F_JobSwdMae",1; +} -L_Option2: - mes "Taking the test over?.... Keep your head up. I like those who never back down from a challange! Now take this and cheer up!"; - getitem 512,3;//Items: Apple, - next; - goto M_yes; - end; -L_Option3: - mes "Don't give up! I know you will pass this time!"; - mes "(you catch him whispering '...loooooseerrr...')"; - getitem 512,5;//Items: Apple, - next; - goto M_yes; - end; +// 2-1 +sword_2-1,230,245,2 script Medic#swd_2 105,{ + callfunc "F_JobSwdMedic","1st"; } -job_sword1,1,1,0 script TimerSwrdmn -1,{ - OnTimer4000: - areaannounce "job_sword1", 0, 0, 400, 400, "[Test Hall Staff]: Your 7 minutes starts now!",0; - end; - OnTimer184000: - areaannounce "job_sword1", 0, 0, 400, 400, "[Test Hall Staff]: You have 4 minutes left!",0; - end; - OnTimer304000: - areaannounce "job_sword1", 0, 0, 400, 400, "[Test Hall Staff]: You have 2 minutes left!",0; - end; - OnTimer364000: - areaannounce "job_sword1", 0, 0, 400, 400, "[Test Hall Staff]: You have 1 minutes left!",0; - end; - OnTimer394000: - areaannounce "job_sword1", 0, 0, 400, 400, "[Test Hall Staff]: You have 30 seconds left, hurry!",0; - end; - OnTimer424000: - areaannounce "job_sword1", 0, 0, 400, 400, "[Test Hall Staff]: Your times up! You failed the test.",0; - end; - OnTimer428000: - stopnpctimer; - areawarp "job_sword1",0,0,400,400,"izlude_in",39,170; - end; +sword_2-1,230,242,2 script Test Hall Staff#swd_2 105,{ + callfunc "F_JobSwdStaff",2; +} +sword_2-1,230,207,2 script Medic#2swd_2 105,{ + callfunc "F_JobSwdMedic","2nd"; +} +sword_2-1,230,204,2 script Test Hall Staff#2swd_2 105,{ + callfunc "F_JobSwdStaff",2; +} +sword_2-1,223,167,2 script Mae#swd_2_success 92,{ + callfunc "F_JobSwdMae",2; } +// 3-1 +sword_3-1,230,245,2 script Medic#swd_3 105,{ + callfunc "F_JobSwdMedic","1st"; +} +sword_3-1,230,242,2 script Test Hall Staff#swd_3 105,{ + callfunc "F_JobSwdStaff",3; +} +sword_3-1,230,207,2 script Medic#2swd_3 105,{ + callfunc "F_JobSwdMedic","2nd"; +} +sword_3-1,230,204,2 script Test Hall Staff#2swd_3 105,{ + callfunc "F_JobSwdStaff",3; +} +sword_3-1,223,167,2 script Mae#swd_3_success 92,{ + callfunc "F_JobSwdMae",3; +} -// -- Medic 1 -- -job_sword1,230,245,2 script Medic#01 105,{ +// Examination Course Fucntions +//============================================================ +function script F_JobSwdMedic { + percentheal 100,0; mes "[Medic]"; - mes "This is the 1st check point! You're doing great!"; - percentheal 100, 100; + mes "This is the "+getarg(0)+" check point!Cheer up!"; close; } - -// -- Test Hall Staff 2 -- -job_sword1,230,242,2 script Test Hall Staff#01 105,{ + +function script F_JobSwdStaff { mes "[Test Hall Staff]"; mes "Do you surrender?"; next; - menu "Yes.",M_0,"No.",M_1; - - M_0: + if (select("Yes.:No.") == 1) { + mapannounce "sword_"+getarg(0)+"-1","Applicant " + strcharinfo(0) + " quit the test.",bc_map; warp "izlude_in",65,165; - close; - M_1: - mes "[Test Hall Staff]"; - mes "Bravo! Go for it again!"; - close; + end; + } + mes "[Test Hall Staff]"; + mes "Bravo! Go for it again!"; + close; } -// -- Medic 2 -- -job_sword1,230,207,2 script Medic#02 105,{ - mes "[Medic]"; - mes "This is the 2nd check point! Keep up the good work!"; - percentheal 100, 100; - close; +function script F_JobSwdMae { + mapannounce "sword_"+getarg(0)+"-1","Applicant " + strcharinfo(0) + ". You successfully passed the test.",bc_map; + set job_sword_q,4; + mes "[Mae]"; + mes "I sencerely congratulate you for passing the test!"; + mes "I already sent your test result to the Job Department.Please inquire at the Officer in Centre.Thank you."; + close2; + warp "izlude_in",66,173; + end; } -// -- Test Hall Staff 3 -- -job_sword1,230,204,2 script Test Hall Staff#02 105,{ +function script F_JobSwdTestStaff { +OnTouch: mes "[Test Hall Staff]"; - mes "Do you surrender?"; + mes "Applicant " + strcharinfo(0) + ". Do you surrender??"; next; - menu "Yes.",M_0,"No.",M_1; - - M_0: + if (select("Yes.:No.") == 1) { + mapannounce "sword_"+getarg(0)+"-1","Applicant " + strcharinfo(0) + " quit the test..",bc_map; warp "izlude_in",65,165; - close; - M_1: - mes "[Test Hall Staff]"; - mes "Bravo! Go for it again!"; - close; + end; + } + warp "sword_"+getarg(0)+"-1",getarg(1),getarg(2); + end; } -// -- Mae (Medic 3) -- -job_sword1,223,167,2 script Mae 92,{ - mes "[Mae]"; - mes "I sincerely congratulate you for passing the test!"; - mes "I've already sent your test results to the 'Master Swordsman'."; - mes "Please inquire with him about your results. Thank you."; - next; - stopnpctimer "TimerSwrdmn"; - percentheal 100, 100; - set job_sword_q,2; - set SWTEST,0; - warp "izlude_in",66,173; - close; +function script F_JobSwdTestStaff2 { +OnTouch: + mapannounce "sword_"+getarg(1)+"-1","Applicant " + strcharinfo(0) + ". Pass the "+getarg(0)+" course.",bc_map; + warp "sword_"+getarg(1)+"-1",getarg(2),getarg(3); + end; } +// Examination Course 1 +//============================================================ +sword_1-1,223,243,0 warp checkp1-2 1,1,sword_1-1,11,206; +sword_1-1,223,205,0 warp checkp2-3 1,1,sword_1-1,11,168; +sword_1-1,7,245,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff",1,10,245; +} +sword_1-1,8,207,0 script Test Hall Staff 45,1,6,{ + callfunc "F_JobSwdTestStaff",1,11,207; +} -// == Green Traps == -// reduce hp when stepped on +sword_1-1,8,169,0 script Test Hall Staff 45,1,6,{ + callfunc "F_JobSwdTestStaff",1,11,169; +} -// -- First Section -- -// - Left - -job_sword1,22,172,1 script 1green_1::green 139,0,0,{ - heal -4,0; - end; +sword_1-1,192,244,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff2","1st",1,215,244; } -// -- Duplicates -- -job_sword1,22,173,1 duplicate(green) 1green_2 139,0,0 -job_sword1,23,172,1 duplicate(green) 1green_3 139,0,0 -job_sword1,23,173,1 duplicate(green) 1green_4 139,0,0 -job_sword1,34,172,1 duplicate(green) 1green_5 139,0,0 -job_sword1,34,173,1 duplicate(green) 1green_6 139,0,0 -job_sword1,35,172,1 duplicate(green) 1green_7 139,0,0 -job_sword1,35,173,1 duplicate(green) 1green_8 139,0,0 -job_sword1,66,170,1 duplicate(green) 1green_9 139,0,0 -job_sword1,66,171,1 duplicate(green) 1green_10 139,0,0 -job_sword1,67,170,1 duplicate(green) 1green_11 139,0,0 -job_sword1,67,171,1 duplicate(green) 1green_12 139,0,0 -job_sword1,70,170,1 duplicate(green) 1green_13 139,0,0 -job_sword1,70,171,1 duplicate(green) 1green_14 139,0,0 -job_sword1,71,170,1 duplicate(green) 1green_15 139,0,0 -job_sword1,71,171,1 duplicate(green) 1green_16 139,0,0 - -// - Right - -job_sword1,22,164,1 duplicate(green) 1green_17 139,0,0 -job_sword1,22,165,1 duplicate(green) 1green_18 139,0,0 -job_sword1,23,164,1 duplicate(green) 1green_19 139,0,0 -job_sword1,23,165,1 duplicate(green) 1green_20 139,0,0 -job_sword1,34,164,1 duplicate(green) 1green_21 139,0,0 -job_sword1,34,165,1 duplicate(green) 1green_22 139,0,0 -job_sword1,35,164,1 duplicate(green) 1green_23 139,0,0 -job_sword1,35,165,1 duplicate(green) 1green_24 139,0,0 -job_sword1,66,166,1 duplicate(green) 1green_25 139,0,0 -job_sword1,66,167,1 duplicate(green) 1green_26 139,0,0 -job_sword1,67,166,1 duplicate(green) 1green_27 139,0,0 -job_sword1,67,167,1 duplicate(green) 1green_28 139,0,0 -job_sword1,70,166,1 duplicate(green) 1green_29 139,0,0 -job_sword1,70,167,1 duplicate(green) 1green_30 139,0,0 -job_sword1,71,166,1 duplicate(green) 1green_31 139,0,0 -job_sword1,71,167,1 duplicate(green) 1green_32 139,0,0 -// - Center - -job_sword1,86,168,1 duplicate(green) 1green_33 139,0,0 -job_sword1,86,169,1 duplicate(green) 1green_34 139,0,0 -job_sword1,87,168,1 duplicate(green) 1green_35 139,0,0 -job_sword1,87,169,1 duplicate(green) 1green_36 139,0,0 - -// -- Second Section -- -// - Left - -job_sword1,83,171,1 duplicate(green) 2green_1 139,0,1 -job_sword1,82,171,1 duplicate(green) 2green_2 139,0,1 -job_sword1,90,171,1 duplicate(green) 2green_3 139,0,1 -job_sword1,91,171,1 duplicate(green) 2green_4 139,0,1 -job_sword1,84,173,1 duplicate(green) 2green_5 139,1,0 -job_sword1,90,173,1 duplicate(green) 2green_6 139,1,0 -job_sword1,83,166,1 duplicate(green) 2green_7 139,0,1 -job_sword1,82,166,1 duplicate(green) 2green_8 139,0,1 -job_sword1,90,166,1 duplicate(green) 2green_9 139,0,1 -job_sword1,91,166,1 duplicate(green) 2green_10 139,0,1 -job_sword1,84,164,1 duplicate(green) 2green_11 139,1,0 -job_sword1,90,164,1 duplicate(green) 2green_12 139,1,0 -job_sword1,102,168,1 duplicate(green) 2green_13 139,0,0 -job_sword1,102,169,1 duplicate(green) 2green_14 139,0,0 -// - Right - -job_sword1,102,172,1 duplicate(green) 2green_15 139,0,0 -job_sword1,102,173,1 duplicate(green) 2green_16 139,0,0 -job_sword1,103,172,1 duplicate(green) 2green_17 139,0,0 -job_sword1,103,173,1 duplicate(green) 2green_18 139,0,0 -job_sword1,106,172,1 duplicate(green) 2green_19 139,0,0 -job_sword1,106,173,1 duplicate(green) 2green_20 139,0,0 -job_sword1,107,172,1 duplicate(green) 2green_21 139,0,0 -job_sword1,107,173,1 duplicate(green) 2green_22 139,0,0 -job_sword1,110,172,1 duplicate(green) 2green_23 139,0,0 -job_sword1,110,173,1 duplicate(green) 2green_24 139,0,0 -job_sword1,111,172,1 duplicate(green) 2green_25 139,0,0 -job_sword1,111,173,1 duplicate(green) 2green_26 139,0,0 -// - Center - -job_sword1,102,164,1 duplicate(green) 2green_27 139,0,0 -job_sword1,102,165,1 duplicate(green) 2green_28 139,0,0 -job_sword1,103,164,1 duplicate(green) 2green_29 139,0,0 -job_sword1,103,165,1 duplicate(green) 2green_30 139,0,0 -job_sword1,106,164,1 duplicate(green) 2green_31 139,0,0 -job_sword1,106,165,1 duplicate(green) 2green_32 139,0,0 -job_sword1,107,164,1 duplicate(green) 2green_33 139,0,0 -job_sword1,107,165,1 duplicate(green) 2green_34 139,0,0 -job_sword1,110,164,1 duplicate(green) 2green_35 139,0,0 -job_sword1,110,165,1 duplicate(green) 2green_36 139,0,0 -job_sword1,111,164,1 duplicate(green) 2green_37 139,0,0 -job_sword1,111,165,1 duplicate(green) 2green_38 139,0,0 - - -// -- Third Section -- -job_sword1,121,172,1 duplicate(green) 3green_1 139,2,0 -job_sword1,121,173,1 duplicate(green) 3green_2 139,2,0 -job_sword1,121,164,1 duplicate(green) 3green_3 139,2,0 -job_sword1,121,165,1 duplicate(green) 3green_4 139,2,0 -job_sword1,121,168,1 duplicate(green) 3green_5 139,2,0 -job_sword1,121,169,1 duplicate(green) 3green_6 139,2,0 - -// -- Fourth Section -- -job_sword1,130,169,1 duplicate(green) 4green_1 139,0,4 -job_sword1,131,169,1 duplicate(green) 4green_2 139,0,4 -job_sword1,135,164,1 duplicate(green) 4green_3 139,5,0 -job_sword1,136,165,1 duplicate(green) 4green_4 139,4,0 -job_sword1,140,169,1 duplicate(green) 4green_5 139,0,3 -job_sword1,141,168,1 duplicate(green) 4green_6 139,0,4 -job_sword1,137,172,1 duplicate(green) 4green_7 139,2,0 -job_sword1,138,173,1 duplicate(green) 4green_8 139,3,0 -job_sword1,134,171,1 duplicate(green) 4green_9 139,0,2 -job_sword1,135,168,1 duplicate(green) 4green_10 139,0,1 -job_sword1,135,170,1 duplicate(green) 4green_11 139,1,0 - -// -- Fifth Section -- -job_sword1,144,169,1 duplicate(green) 5green_1 139,0,4 -job_sword1,145,169,1 duplicate(green) 5green_2 139,0,4 -job_sword1,148,164,1 duplicate(green) 5green_3 139,4,0 -job_sword1,149,165,1 duplicate(green) 5green_4 139,3,0 -job_sword1,156,166,1 duplicate(green) 5green_5 139,0,2 -job_sword1,157,166,1 duplicate(green) 5green_6 139,0,2 -job_sword1,153,169,1 duplicate(green) 5green_7 139,4,0 -job_sword1,152,168,1 duplicate(green) 5green_8 139,3,0 -job_sword1,149,171,1 duplicate(green) 5green_9 139,0,1 -job_sword1,148,171,1 duplicate(green) 5green_10 139,0,2 -job_sword1,154,173,1 duplicate(green) 5green_11 139,2,0 -job_sword1,154,172,1 duplicate(green) 5green_12 139,2,0 - -// -- Last Section -- -job_sword1,164,172,1 duplicate(green) 6green_1 139,0,0 -job_sword1,164,173,1 duplicate(green) 6green_2 139,0,0 -job_sword1,165,172,1 duplicate(green) 6green_3 139,0,0 -job_sword1,165,173,1 duplicate(green) 6green_4 139,0,0 -job_sword1,172,172,1 duplicate(green) 6green_5 139,0,0 -job_sword1,172,173,1 duplicate(green) 6green_6 139,0,0 -job_sword1,173,172,1 duplicate(green) 6green_7 139,0,0 -job_sword1,173,173,1 duplicate(green) 6green_8 139,0,0 - -job_sword1,164,168,1 duplicate(green) 6green_9 139,0,0 -job_sword1,164,169,1 duplicate(green) 6green_10 139,0,0 -job_sword1,165,168,1 duplicate(green) 6green_11 139,0,0 -job_sword1,165,169,1 duplicate(green) 6green_12 139,0,0 -job_sword1,172,168,1 duplicate(green) 6green_13 139,0,0 -job_sword1,172,169,1 duplicate(green) 6green_14 139,0,0 -job_sword1,173,168,1 duplicate(green) 6green_15 139,0,0 -job_sword1,173,169,1 duplicate(green) 6green_16 139,0,0 - -job_sword1,164,164,1 duplicate(green) 6green_17 139,0,0 -job_sword1,164,165,1 duplicate(green) 6green_18 139,0,0 -job_sword1,165,164,1 duplicate(green) 6green_19 139,0,0 -job_sword1,165,165,1 duplicate(green) 6green_20 139,0,0 -job_sword1,172,164,1 duplicate(green) 6green_21 139,0,0 -job_sword1,172,165,1 duplicate(green) 6green_22 139,0,0 -job_sword1,173,164,1 duplicate(green) 6green_23 139,0,0 -job_sword1,173,165,1 duplicate(green) 6green_24 139,0,0 - - - -// == Fall Warps == - -job_sword1,16,251,4 script 1_blank_1a#1::1_blank 139,0,1,{ - set @TEMP,rand(5); - if (@TEMP==0) warp "job_sword1",65,56; - if (@TEMP==1) warp "job_sword1",29,26; - if (@TEMP==2) warp "job_sword1",43,16; - if (@TEMP==3) warp "job_sword1",23,112; - if (@TEMP==4) warp "job_sword1",58,83; - end; +sword_1-1,193,207,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff2","2nd",1,215,205; + warp "sword_1-1",215,205; } -// -- Duplicates -- -job_sword1,19,251,4 duplicate(1_blank) 1_blank_1b 139,0,1 -job_sword1,17,250,4 duplicate(1_blank) 1_blank_1c 139,1,0 -job_sword1,17,251,4 duplicate(1_blank) 1_blank_1d 139,1,1 -job_sword1,18,251,4 duplicate(1_blank) 1_blank_1e 139,1,1 -job_sword1,17,251,4 duplicate(1_blank) 1_blank_1f 139,1,1 -job_sword1,16,238,4 duplicate(1_blank) 1_blank_2a 139,0,1 -job_sword1,19,238,4 duplicate(1_blank) 1_blank_2b 139,0,1 -job_sword1,17,239,4 duplicate(1_blank) 1_blank_2c 139,0,1 -job_sword1,28,246,4 duplicate(1_blank) 1_blank_3a 139,4,1 -job_sword1,33,245,4 duplicate(1_blank) 1_blank_3b 139,0,2 -job_sword1,29,242,4 duplicate(1_blank) 1_blank_3c 139,4,0 -job_sword1,24,244,4 duplicate(1_blank) 1_blank_3d 139,0,2 -job_sword1,38,251,4 duplicate(1_blank) 1_blank_4a 139,0,1 -job_sword1,41,251,4 duplicate(1_blank) 1_blank_4b 139,0,1 -job_sword1,39,250,4 duplicate(1_blank) 1_blank_4c 139,1,0 -job_sword1,38,238,4 duplicate(1_blank) 1_blank_5a 139,0,1 -job_sword1,41,238,4 duplicate(1_blank) 1_blank_5_b 139,0,1 -job_sword1,39,239,4 duplicate(1_blank) 1_blank_5_c 139,1,0 -job_sword1,54,251,4 duplicate(1_blank) 1_blank_6_a 139,0,1 -job_sword1,71,251,4 duplicate(1_blank) 1_blank_6_b 139,0,1 -job_sword1,62,250,4 duplicate(1_blank) 1_blank_6_c 139,9,0 -job_sword1,62,247,4 duplicate(1_blank) 1_blank_7_a 139,8,0 -job_sword1,71,244,4 duplicate(1_blank) 1_blank_7_b 139,0,2 -job_sword1,63,242,4 duplicate(1_blank) 1_blank_7_c 139,8,0 -job_sword1,54,244,4 duplicate(1_blank) 1_blank_7_d 139,0,2 -job_sword1,54,238,4 duplicate(1_blank) 1_blank_8_a 139,0,1 -job_sword1,71,238,4 duplicate(1_blank) 1_blank_8_b 139,0,1 -job_sword1,62,239,4 duplicate(1_blank) 1_blank_8_c 139,9,0 -job_sword1,102,247,4 duplicate(1_blank) 1_blank_9_a 139,2,0 -job_sword1,105,245,4 duplicate(1_blank) 1_blank_9_b 139,0,2 -job_sword1,103,242,4 duplicate(1_blank) 1_blank_9_c 139,2,0 -job_sword1,100,244,4 duplicate(1_blank) 1_blank_9_d 139,0,2 -job_sword1,156,249,4 duplicate(1_blank) 1_blank_10_a 139,14,0 -job_sword1,156,248,4 duplicate(1_blank) 1_blank_10_b 139,14,0 -job_sword1,170,249,4 duplicate(1_blank) 1_blank_10_c 139,1,0 -job_sword1,170,248,4 duplicate(1_blank) 1_blank_10_d 139,1,0 -job_sword1,156,245,4 duplicate(1_blank) 1_blank_11_a 139,14,0 -job_sword1,156,244,4 duplicate(1_blank) 1_blank_11_b 139,14,0 -job_sword1,170,245,4 duplicate(1_blank) 1_blank_11_c 139,1,0 -job_sword1,170,244,4 duplicate(1_blank) 1_blank_11_d 139,1,0 -job_sword1,156,241,4 duplicate(1_blank) 1_blank_12_a 139,14,0 -job_sword1,156,240,4 duplicate(1_blank) 1_blank_12_b 139,14,0 -job_sword1,170,241,4 duplicate(1_blank) 1_blank_12_c 139,1,0 -job_sword1,170,240,4 duplicate(1_blank) 1_blank_12_d 139,1,0 -job_sword1,180,251,4 duplicate(1_blank) 1_blank_13_a 139,0,1 -job_sword1,183,251,4 duplicate(1_blank) 1_blank_13_b 139,0,1 -job_sword1,181,250,4 duplicate(1_blank) 1_blank_13_c 139,1,0 -job_sword1,180,238,4 duplicate(1_blank) 1_blank_14_a 139,0,1 -job_sword1,183,238,4 duplicate(1_blank) 1_blank_14_b 139,0,1 -job_sword1,181,239,4 duplicate(1_blank) 1_blank_14_c 139,1,0 - - -job_sword1,56,212,4 script 2_blank_1_a::2_blank 139,40,0,{ - set @TEMP,rand(5); - if (@TEMP==0) warp "job_sword1",162,120; - if (@TEMP==1) warp "job_sword1",94,120; - if (@TEMP==2) warp "job_sword1",94,85; - if (@TEMP==3) warp "job_sword1",162,85; - if (@TEMP==4) warp "job_sword1",130,47; - end; +sword_1-1,193,168,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff2","3rd",1,215,167; } -// -- Duplicates -- -job_sword1,95,212,4 duplicate(2_blank) 2_blank_1_b 139,2,0 -job_sword1,56,210,4 duplicate(2_blank) 2_blank_2_a 139,40,0 -job_sword1,95,210,4 duplicate(2_blank) 2_blank_2_b 139,2,0 -job_sword1,16,206,4 duplicate(2_blank) 2_blank_2_c 139,0,3 -job_sword1,97,206,4 duplicate(2_blank) 2_blank_2_d 139,0,3 -job_sword1,56,203,4 duplicate(2_blank) 2_blank_2_e 139,40,0 -job_sword1,95,203,4 duplicate(2_blank) 2_blank_2_f 139,2,0 -job_sword1,56,201,4 duplicate(2_blank) 2_blank_3_a 139,40,0 -job_sword1,95,201,4 duplicate(2_blank) 2_blank_3_b 139,2,0 - -// - part 2 - -job_sword1,113,212,4 duplicate(2_blank) 2_blank_4_a 139,14,0 -job_sword1,125,212,4 duplicate(2_blank) 2_blank_4_b 139,2,0 -job_sword1,113,210,4 duplicate(2_blank) 2_blank_5_a 139,14,0 -job_sword1,125,210,4 duplicate(2_blank) 2_blank_5_b 139,2,0 -job_sword1,100,206,4 duplicate(2_blank) 2_blank_5_c 139,0,3 -job_sword1,127,206,4 duplicate(2_blank) 2_blank_5_d 139,0,3 -job_sword1,113,203,4 duplicate(2_blank) 2_blank_5_e 139,14,0 -job_sword1,125,210,4 duplicate(2_blank) 2_blank_5_f 139,2,0 -job_sword1,113,201,4 duplicate(2_blank) 2_blank_6_a 139,14,0 -job_sword1,113,201,4 duplicate(2_blank) 2_blank_6_b 139,2,0 - -// - part 3 - -job_sword1,155,212,4 duplicate(2_blank) 2_blank_7_a 139,21,0 -job_sword1,181,212,4 duplicate(2_blank) 2_blank_7_b 139,2,0 -job_sword1,155,210,4 duplicate(2_blank) 2_blank_8_a 139,21,0 -job_sword1,181,210,4 duplicate(2_blank) 2_blank_8_b 139,2,0 -job_sword1,130,206,4 duplicate(2_blank) 2_blank_8_c 139,0,3 -job_sword1,183,206,4 duplicate(2_blank) 2_blank_8_d 139,0,3 -job_sword1,155,203,4 duplicate(2_blank) 2_blank_8_e 139,21,0 -job_sword1,181,203,4 duplicate(2_blank) 2_blank_8_f 139,2,0 -job_sword1,155,201,4 duplicate(2_blank) 2_blank_9_a 139,40,0 -job_sword1,181,201,4 duplicate(2_blank) 2_blank_9_b 139,2,0 - -job_sword1,17,174,4 script 3_blank_1_a::3_blank 139,2,0,{ - set @TEMP,rand(5); - if (@TEMP==0) warp "job_sword1",195,15; - if (@TEMP==1) warp "job_sword1",195,38; - if (@TEMP==2) warp "job_sword1",231,30; - if (@TEMP==3) warp "job_sword1",198,65; - if (@TEMP==4) warp "job_sword1",196,116; - end; +// Pitfalls (Set 1) +//============================================================ +sword_1-1,65,117,0 warp ����01-01 1,1,sword_1-1,10,245; +sword_1-1,98,27,0 warp ����02-01 1,1,sword_1-1,11,207; +sword_1-1,161,27,0 warp ����02-02 1,1,sword_1-1,11,207; +sword_1-1,239,117,0 warp ����03-01 1,1,sword_1-1,11,169; + +sword_1-1,16,251,0 script 1_blank_1_a::SwdTrap1 -1,0,1,{ +OnTouch: + switch(rand(1,5)) { + case 1: warp "sword_1-1",65,56; end; + case 2: warp "sword_1-1",29,26; end; + case 3: warp "sword_1-1",43,16; end; + case 4: warp "sword_1-1",23,112; end; + case 5: warp "sword_1-1",58,83; end; + } +} +sword_1-1,19,251,0 duplicate(SwdTrap1) 1_blank_1_b -1,0,1 +sword_1-1,17,250,0 duplicate(SwdTrap1) 1_blank_1_c -1,1,0 +sword_1-1,16,238,0 duplicate(SwdTrap1) 1_blank_2_a -1,0,1 +sword_1-1,19,238,0 duplicate(SwdTrap1) 1_blank_2_b -1,0,1 +sword_1-1,17,239,0 duplicate(SwdTrap1) 1_blank_2_c -1,0,1 +sword_1-1,28,247,0 duplicate(SwdTrap1) 1_blank_3_a -1,4,0 +sword_1-1,33,245,0 duplicate(SwdTrap1) 1_blank_3_b -1,0,2 +sword_1-1,29,242,0 duplicate(SwdTrap1) 1_blank_3_c -1,4,0 +sword_1-1,24,244,0 duplicate(SwdTrap1) 1_blank_3_d -1,0,2 +sword_1-1,38,251,0 duplicate(SwdTrap1) 1_blank_4_a -1,0,1 +sword_1-1,41,251,0 duplicate(SwdTrap1) 1_blank_4_b -1,0,1 +sword_1-1,39,250,0 duplicate(SwdTrap1) 1_blank_4_c -1,1,0 +sword_1-1,38,238,0 duplicate(SwdTrap1) 1_blank_5_a -1,0,1 +sword_1-1,41,238,0 duplicate(SwdTrap1) 1_blank_5_b -1,0,1 +sword_1-1,39,239,0 duplicate(SwdTrap1) 1_blank_5_c -1,1,0 +sword_1-1,54,251,0 duplicate(SwdTrap1) 1_blank_6_a -1,0,1 +sword_1-1,71,251,0 duplicate(SwdTrap1) 1_blank_6_b -1,0,1 +sword_1-1,62,250,0 duplicate(SwdTrap1) 1_blank_6_c -1,9,0 +sword_1-1,62,247,0 duplicate(SwdTrap1) 1_blank_7_a -1,8,0 +sword_1-1,71,244,0 duplicate(SwdTrap1) 1_blank_7_b -1,0,2 +sword_1-1,63,242,0 duplicate(SwdTrap1) 1_blank_7_c -1,8,0 +sword_1-1,54,244,0 duplicate(SwdTrap1) 1_blank_7_d -1,0,2 +sword_1-1,54,238,0 duplicate(SwdTrap1) 1_blank_8_a -1,0,1 +sword_1-1,71,238,0 duplicate(SwdTrap1) 1_blank_8_b -1,0,1 +sword_1-1,62,239,0 duplicate(SwdTrap1) 1_blank_8_c -1,9,0 +sword_1-1,102,247,0 duplicate(SwdTrap1) 1_blank_9_a -1,2,0 +sword_1-1,105,245,0 duplicate(SwdTrap1) 1_blank_9_b -1,0,2 +sword_1-1,103,242,0 duplicate(SwdTrap1) 1_blank_9_c -1,2,0 +sword_1-1,100,244,0 duplicate(SwdTrap1) 1_blank_9_d -1,0,2 +sword_1-1,156,249,0 duplicate(SwdTrap1) 1_blank_10_a -1,14,0 +sword_1-1,156,248,0 duplicate(SwdTrap1) 1_blank_10_b -1,14,0 +sword_1-1,170,249,0 duplicate(SwdTrap1) 1_blank_10_c -1,1,0 +sword_1-1,170,248,0 duplicate(SwdTrap1) 1_blank_10_d -1,1,0 +sword_1-1,156,245,0 duplicate(SwdTrap1) 1_blank_11_a -1,14,0 +sword_1-1,156,244,0 duplicate(SwdTrap1) 1_blank_11_b -1,14,0 +sword_1-1,170,245,0 duplicate(SwdTrap1) 1_blank_11_c -1,1,0 +sword_1-1,170,244,0 duplicate(SwdTrap1) 1_blank_11_d -1,1,0 +sword_1-1,156,241,0 duplicate(SwdTrap1) 1_blank_12_a -1,14,0 +sword_1-1,156,240,0 duplicate(SwdTrap1) 1_blank_12_b -1,14,0 +sword_1-1,170,241,0 duplicate(SwdTrap1) 1_blank_12_c -1,1,0 +sword_1-1,170,240,0 duplicate(SwdTrap1) 1_blank_12_d -1,1,0 +sword_1-1,180,251,0 duplicate(SwdTrap1) 1_blank_13_a -1,0,1 +sword_1-1,183,251,0 duplicate(SwdTrap1) 1_blank_13_b -1,0,1 +sword_1-1,181,250,0 duplicate(SwdTrap1) 1_blank_13_c -1,1,0 +sword_1-1,180,238,0 duplicate(SwdTrap1) 1_blank_14_a -1,0,1 +sword_1-1,183,238,0 duplicate(SwdTrap1) 1_blank_14_b -1,0,1 +sword_1-1,181,239,0 duplicate(SwdTrap1) 1_blank_14_c -1,1,0 + +sword_1-1,193,245,0 warp 1_rest 1,3,sword_1-1,215,244; + +// Pitfalls (Set 2) +//============================================================ +sword_1-1,56,212,0 script 2_blank_1_a::SwdTrap2 -1,40,0,{ +OnTouch: + switch(rand(1,5)) { + case 1: warp "sword_1-1",162,120; end; + case 2: warp "sword_1-1",94,120; end; + case 3: warp "sword_1-1",94,85; end; + case 4: warp "sword_1-1",162,85; end; + case 5: warp "sword_1-1",130,47; end; + } +} + +sword_1-1,95,212,0 duplicate(SwdTrap2) 2_blank_1_b -1,2,0 +sword_1-1,56,210,0 duplicate(SwdTrap2) 2_blank_2_a -1,40,0 +sword_1-1,95,210,0 duplicate(SwdTrap2) 2_blank_2_b -1,2,0 +sword_1-1,16,206,0 duplicate(SwdTrap2) 2_blank_2_c -1,0,3 +sword_1-1,97,206,0 duplicate(SwdTrap2) 2_blank_2_d -1,0,3 +sword_1-1,56,203,0 duplicate(SwdTrap2) 2_blank_2_e -1,40,0 +sword_1-1,95,203,0 duplicate(SwdTrap2) 2_blank_2_f -1,2,0 +sword_1-1,56,201,0 duplicate(SwdTrap2) 2_blank_3_a -1,40,0 +sword_1-1,95,201,0 duplicate(SwdTrap2) 2_blank_3_b -1,2,0 + +sword_1-1,113,212,0 duplicate(SwdTrap2) 2_blank_4_a -1,14,0 +sword_1-1,125,212,0 duplicate(SwdTrap2) 2_blank_4_b -1,2,0 +sword_1-1,113,210,0 duplicate(SwdTrap2) 2_blank_5_a -1,14,0 +sword_1-1,125,210,0 duplicate(SwdTrap2) 2_blank_5_b -1,2,0 +sword_1-1,100,206,0 duplicate(SwdTrap2) 2_blank_5_c -1,0,3 +sword_1-1,127,206,0 duplicate(SwdTrap2) 2_blank_5_d -1,0,3 +sword_1-1,113,203,0 duplicate(SwdTrap2) 2_blank_5_e -1,14,0 +sword_1-1,125,210,0 duplicate(SwdTrap2) 2_blank_5_f -1,2,0 +sword_1-1,113,201,0 duplicate(SwdTrap2) 2_blank_6_a -1,14,0 +sword_1-1,113,201,0 duplicate(SwdTrap2) 2_blank_6_b -1,2,0 + +sword_1-1,155,212,0 duplicate(SwdTrap2) 2_blank_7_a -1,21,0 +sword_1-1,181,212,0 duplicate(SwdTrap2) 2_blank_7_b -1,2,0 +sword_1-1,155,210,0 duplicate(SwdTrap2) 2_blank_8_a -1,21,0 +sword_1-1,181,210,0 duplicate(SwdTrap2) 2_blank_8_b -1,2,0 +sword_1-1,130,206,0 duplicate(SwdTrap2) 2_blank_8_c -1,0,3 +sword_1-1,183,206,0 duplicate(SwdTrap2) 2_blank_8_d -1,0,3 +sword_1-1,155,203,0 duplicate(SwdTrap2) 2_blank_8_e -1,21,0 +sword_1-1,181,203,0 duplicate(SwdTrap2) 2_blank_8_f -1,2,0 +sword_1-1,155,201,0 duplicate(SwdTrap2) 2_blank_9_a -1,40,0 +sword_1-1,181,201,0 duplicate(SwdTrap2) 2_blank_9_b -1,2,0 + +// Pitfalls (Set 3) +//============================================================ +sword_1-1,17,174,0 script 3_blank_1_a::SwdTrap3 -1,2,0,{ +OnTouch: + switch(rand(1,5)) { + case 1: warp "sword_1-1",195,15; end; + case 2: warp "sword_1-1",195,38; end; + case 3: warp "sword_1-1",231,30; end; + case 4: warp "sword_1-1",198,65; end; + case 5: warp "sword_1-1",196,116; end; + } +} + +sword_1-1,17,163,0 duplicate(SwdTrap3) 3_blank_2_a -1,2,0 +sword_1-1,29,171,0 duplicate(SwdTrap3) 3_blank_3_a -1,2,0 +sword_1-1,31,168,0 duplicate(SwdTrap3) 3_blank_3_b -1,0,2 +sword_1-1,28,166,0 duplicate(SwdTrap3) 3_blank_3_c -1,2,0 +sword_1-1,26,168,0 duplicate(SwdTrap3) 3_blank_3_d -1,0,2 +sword_1-1,36,169,0 duplicate(SwdTrap3) 3_blank_4_a -1,0,0 +sword_1-1,37,169,0 duplicate(SwdTrap3) 3_blank_4_b -1,0,0 +sword_1-1,37,168,0 duplicate(SwdTrap3) 3_blank_4_c -1,0,0 +sword_1-1,36,168,0 duplicate(SwdTrap3) 3_blank_4_c -1,0,0 +sword_1-1,40,175,0 duplicate(SwdTrap3) 3_blank_5_a -1,0,1 +sword_1-1,41,175,0 duplicate(SwdTrap3) 3_blank_5_b -1,0,1 +sword_1-1,41,171,0 duplicate(SwdTrap3) 3_blank_6_a -1,1,0 +sword_1-1,41,170,0 duplicate(SwdTrap3) 3_blank_6_b -1,1,0 +sword_1-1,41,167,0 duplicate(SwdTrap3) 3_blank_6_c -1,1,0 +sword_1-1,41,166,0 duplicate(SwdTrap3) 3_blank_6_d -1,1,0 +sword_1-1,42,169,0 duplicate(SwdTrap3) 3_blank_6_e -1,0,1 +sword_1-1,43,170,0 duplicate(SwdTrap3) 3_blank_6_f -1,0,1 +sword_1-1,43,167,0 duplicate(SwdTrap3) 3_blank_6_g -1,0,1 +sword_1-1,40,162,0 duplicate(SwdTrap3) 3_blank_7_a -1,0,1 +sword_1-1,41,162,0 duplicate(SwdTrap3) 3_blank_7_b -1,0,1 +sword_1-1,46,175,0 duplicate(SwdTrap3) 3_blank_8_a -1,0,1 +sword_1-1,51,175,0 duplicate(SwdTrap3) 3_blank_8_b -1,0,1 +sword_1-1,47,174,0 duplicate(SwdTrap3) 3_blank_8_c -1,1,0 +sword_1-1,50,174,0 duplicate(SwdTrap3) 3_blank_8_d -1,1,0 +sword_1-1,48,173,0 duplicate(SwdTrap3) 3_blank_8_e -1,0,1 +sword_1-1,49,173,0 duplicate(SwdTrap3) 3_blank_8_f -1,0,1 +sword_1-1,46,162,0 duplicate(SwdTrap3) 3_blank_9_a -1,0,1 +sword_1-1,51,162,0 duplicate(SwdTrap3) 3_blank_9_b -1,0,1 +sword_1-1,47,163,0 duplicate(SwdTrap3) 3_blank_9_c -1,1,0 +sword_1-1,50,163,0 duplicate(SwdTrap3) 3_blank_9_d -1,1,0 +sword_1-1,48,164,0 duplicate(SwdTrap3) 3_blank_9_e -1,0,1 +sword_1-1,49,164,0 duplicate(SwdTrap3) 3_blank_9_f -1,0,1 +sword_1-1,54,170,0 duplicate(SwdTrap3) 3_blank_10_a -1,0,1 +sword_1-1,55,170,0 duplicate(SwdTrap3) 3_blank_10_b -1,0,1 +sword_1-1,54,167,0 duplicate(SwdTrap3) 3_blank_10_c -1,0,1 +sword_1-1,55,167,0 duplicate(SwdTrap3) 3_blank_10_d -1,0,1 +sword_1-1,53,169,0 duplicate(SwdTrap3) 3_blank_10_e -1,1,0 +sword_1-1,53,168,0 duplicate(SwdTrap3) 3_blank_10_f -1,1,0 +sword_1-1,56,169,0 duplicate(SwdTrap3) 3_blank_10_g -1,1,0 +sword_1-1,56,168,0 duplicate(SwdTrap3) 3_blank_10_h -1,1,0 +sword_1-1,58,175,0 duplicate(SwdTrap3) 3_blank_11_a -1,0,1 +sword_1-1,59,174,0 duplicate(SwdTrap3) 3_blank_11_b -1,1,0 +sword_1-1,60,173,0 duplicate(SwdTrap3) 3_blank_11_c -1,0,1 +sword_1-1,61,172,0 duplicate(SwdTrap3) 3_blank_11_d -1,1,0 +sword_1-1,58,162,0 duplicate(SwdTrap3) 3_blank_12_a -1,0,1 +sword_1-1,59,163,0 duplicate(SwdTrap3) 3_blank_12_b -1,1,0 +sword_1-1,60,164,0 duplicate(SwdTrap3) 3_blank_12_c -1,0,1 +sword_1-1,61,165,0 duplicate(SwdTrap3) 3_blank_12_d -1,1,0 +sword_1-1,76,172,0 duplicate(SwdTrap3) 3_blank_13_a -1,1,0 +sword_1-1,77,173,0 duplicate(SwdTrap3) 3_blank_13_b -1,0,1 +sword_1-1,78,174,0 duplicate(SwdTrap3) 3_blank_13_c -1,1,0 +sword_1-1,79,175,0 duplicate(SwdTrap3) 3_blank_13_d -1,0,1 +sword_1-1,76,165,0 duplicate(SwdTrap3) 3_blank_14_a -1,1,0 +sword_1-1,77,164,0 duplicate(SwdTrap3) 3_blank_14_b -1,0,1 +sword_1-1,78,163,0 duplicate(SwdTrap3) 3_blank_14_c -1,1,0 +sword_1-1,79,162,0 duplicate(SwdTrap3) 3_blank_14_d -1,0,1 +sword_1-1,94,175,0 duplicate(SwdTrap3) 3_blank_15_a -1,0,1 +sword_1-1,95,174,0 duplicate(SwdTrap3) 3_blank_15_b -1,1,0 +sword_1-1,98,174,0 duplicate(SwdTrap3) 3_blank_15_c -1,1,0 +sword_1-1,99,175,0 duplicate(SwdTrap3) 3_blank_16_d -1,0,1 +sword_1-1,96,169,0 duplicate(SwdTrap3) 3_blank_17_a -1,0,0 +sword_1-1,97,169,0 duplicate(SwdTrap3) 3_blank_17_b -1,0,0 +sword_1-1,97,168,0 duplicate(SwdTrap3) 3_blank_17_c -1,0,0 +sword_1-1,96,168,0 duplicate(SwdTrap3) 3_blank_17_d -1,0,0 +sword_1-1,94,162,0 duplicate(SwdTrap3) 3_blank_18_a -1,0,1 +sword_1-1,95,163,0 duplicate(SwdTrap3) 3_blank_18_b -1,1,0 +sword_1-1,98,163,0 duplicate(SwdTrap3) 3_blank_18_c -1,1,0 +sword_1-1,99,162,0 duplicate(SwdTrap3) 3_blank_18_d -1,0,1 +sword_1-1,114,175,0 duplicate(SwdTrap3) 3_blank_19_a -1,0,1 +sword_1-1,115,175,0 duplicate(SwdTrap3) 3_blank_19_b -1,0,1 +sword_1-1,114,162,0 duplicate(SwdTrap3) 3_blank_20_a -1,0,1 +sword_1-1,115,162,0 duplicate(SwdTrap3) 3_blank_20_b -1,0,1 +sword_1-1,126,175,0 duplicate(SwdTrap3) 3_blank_21_a -1,0,1 +sword_1-1,127,175,0 duplicate(SwdTrap3) 3_blank_21_b -1,0,1 +sword_1-1,126,162,0 duplicate(SwdTrap3) 3_blank_23_a -1,0,1 +sword_1-1,127,162,0 duplicate(SwdTrap3) 3_blank_23_b -1,0,1 +sword_1-1,160,174,0 duplicate(SwdTrap3) 3_blank_24_a -1,0,2 +sword_1-1,161,174,0 duplicate(SwdTrap3) 3_blank_24_b -1,0,2 +sword_1-1,160,163,0 duplicate(SwdTrap3) 3_blank_25_a -1,0,2 +sword_1-1,161,163,0 duplicate(SwdTrap3) 3_blank_25_b -1,0,2 +sword_1-1,168,175,0 duplicate(SwdTrap3) 3_blank_26_a -1,0,2 +sword_1-1,169,175,0 duplicate(SwdTrap3) 3_blank_26_b -1,0,2 +sword_1-1,168,162,0 duplicate(SwdTrap3) 3_blank_27_a -1,0,2 +sword_1-1,169,162,0 duplicate(SwdTrap3) 3_blank_27_b -1,0,2 +sword_1-1,176,174,0 duplicate(SwdTrap3) 3_blank_28_a -1,0,2 +sword_1-1,177,174,0 duplicate(SwdTrap3) 3_blank_28_b -1,0,2 +sword_1-1,178,173,0 duplicate(SwdTrap3) 3_blank_28_c -1,1,0 +sword_1-1,178,172,0 duplicate(SwdTrap3) 3_blank_28_d -1,1,0 +sword_1-1,181,174,0 duplicate(SwdTrap3) 3_blank_28_e -1,2,0 +sword_1-1,179,169,0 duplicate(SwdTrap3) 3_blank_29_a -1,3,0 +sword_1-1,179,168,0 duplicate(SwdTrap3) 3_blank_29_b -1,3,0 +sword_1-1,182,169,0 duplicate(SwdTrap3) 3_blank_29_c -1,0,2 +sword_1-1,183,169,0 duplicate(SwdTrap3) 3_blank_29_d -1,0,2 +sword_1-1,181,167,0 duplicate(SwdTrap3) 3_blank_29_e -1,1,0 +sword_1-1,181,166,0 duplicate(SwdTrap3) 3_blank_29_f -1,1,0 +sword_1-1,183,167,0 duplicate(SwdTrap3) 3_blank_29_g -1,0,1 +sword_1-1,176,163,0 duplicate(SwdTrap3) 3_blank_30_a -1,0,2 +sword_1-1,177,163,0 duplicate(SwdTrap3) 3_blank_30_b -1,0,2 +sword_1-1,181,163,0 duplicate(SwdTrap3) 3_blank_30_c -1,2,0 + +// Examination Course 2 +//============================================================ +sword_2-1,223,243,0 warp checkp1-2 1,1,sword_2-1,11,206; +sword_2-1,223,205,0 warp checkp2-3 1,1,sword_2-1,11,168; + +sword_2-1,7,245,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff",2,10,245; +} + +sword_2-1,8,207,0 script Test Hall Staff 45,1,6,{ + callfunc "F_JobSwdTestStaff",2,11,207; +} + +sword_2-1,8,169,0 script Test Hall Staff 45,1,6,{ + callfunc "F_JobSwdTestStaff",2,11,169; +} + +sword_2-1,192,244,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff2","1st",2,215,244; +} + +sword_2-1,193,207,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff2","2nd",2,215,205; + warp "sword_2-1",215,205; +} + +sword_2-1,193,168,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff2","3rd",2,215,167; +} + +// Pitfalls (Set 1) +//============================================================ +sword_2-1,65,117,0 warp ����01-01 1,1,sword_2-1,10,245; +sword_2-1,98,27,0 warp ����02-01 1,1,sword_2-1,11,207; +sword_2-1,161,27,0 warp ����02-02 1,1,sword_2-1,11,207; +sword_2-1,239,117,0 warp ����03-01 1,1,sword_2-1,11,169; + +sword_2-1,16,251,0 script 1_blank_1_a::SwdTrap1 -1,0,1,{ +OnTouch: + switch(rand(1,5)) { + case 1: warp "sword_2-1",65,56; end; + case 2: warp "sword_2-1",29,26; end; + case 3: warp "sword_2-1",43,16; end; + case 4: warp "sword_2-1",23,112; end; + case 5: warp "sword_2-1",58,83; end; + } +} +sword_2-1,19,251,0 duplicate(SwdTrap1) 1_blank_1_b -1,0,1 +sword_2-1,17,250,0 duplicate(SwdTrap1) 1_blank_1_c -1,1,0 +sword_2-1,16,238,0 duplicate(SwdTrap1) 1_blank_2_a -1,0,1 +sword_2-1,19,238,0 duplicate(SwdTrap1) 1_blank_2_b -1,0,1 +sword_2-1,17,239,0 duplicate(SwdTrap1) 1_blank_2_c -1,0,1 +sword_2-1,28,247,0 duplicate(SwdTrap1) 1_blank_3_a -1,4,0 +sword_2-1,33,245,0 duplicate(SwdTrap1) 1_blank_3_b -1,0,2 +sword_2-1,29,242,0 duplicate(SwdTrap1) 1_blank_3_c -1,4,0 +sword_2-1,24,244,0 duplicate(SwdTrap1) 1_blank_3_d -1,0,2 +sword_2-1,38,251,0 duplicate(SwdTrap1) 1_blank_4_a -1,0,1 +sword_2-1,41,251,0 duplicate(SwdTrap1) 1_blank_4_b -1,0,1 +sword_2-1,39,250,0 duplicate(SwdTrap1) 1_blank_4_c -1,1,0 +sword_2-1,38,238,0 duplicate(SwdTrap1) 1_blank_5_a -1,0,1 +sword_2-1,41,238,0 duplicate(SwdTrap1) 1_blank_5_b -1,0,1 +sword_2-1,39,239,0 duplicate(SwdTrap1) 1_blank_5_c -1,1,0 +sword_2-1,54,251,0 duplicate(SwdTrap1) 1_blank_6_a -1,0,1 +sword_2-1,71,251,0 duplicate(SwdTrap1) 1_blank_6_b -1,0,1 +sword_2-1,62,250,0 duplicate(SwdTrap1) 1_blank_6_c -1,9,0 +sword_2-1,62,247,0 duplicate(SwdTrap1) 1_blank_7_a -1,8,0 +sword_2-1,71,244,0 duplicate(SwdTrap1) 1_blank_7_b -1,0,2 +sword_2-1,63,242,0 duplicate(SwdTrap1) 1_blank_7_c -1,8,0 +sword_2-1,54,244,0 duplicate(SwdTrap1) 1_blank_7_d -1,0,2 +sword_2-1,54,238,0 duplicate(SwdTrap1) 1_blank_8_a -1,0,1 +sword_2-1,71,238,0 duplicate(SwdTrap1) 1_blank_8_b -1,0,1 +sword_2-1,62,239,0 duplicate(SwdTrap1) 1_blank_8_c -1,9,0 +sword_2-1,102,247,0 duplicate(SwdTrap1) 1_blank_9_a -1,2,0 +sword_2-1,105,245,0 duplicate(SwdTrap1) 1_blank_9_b -1,0,2 +sword_2-1,103,242,0 duplicate(SwdTrap1) 1_blank_9_c -1,2,0 +sword_2-1,100,244,0 duplicate(SwdTrap1) 1_blank_9_d -1,0,2 +sword_2-1,156,249,0 duplicate(SwdTrap1) 1_blank_10_a -1,14,0 +sword_2-1,156,248,0 duplicate(SwdTrap1) 1_blank_10_b -1,14,0 +sword_2-1,170,249,0 duplicate(SwdTrap1) 1_blank_10_c -1,1,0 +sword_2-1,170,248,0 duplicate(SwdTrap1) 1_blank_10_d -1,1,0 +sword_2-1,156,245,0 duplicate(SwdTrap1) 1_blank_11_a -1,14,0 +sword_2-1,156,244,0 duplicate(SwdTrap1) 1_blank_11_b -1,14,0 +sword_2-1,170,245,0 duplicate(SwdTrap1) 1_blank_11_c -1,1,0 +sword_2-1,170,244,0 duplicate(SwdTrap1) 1_blank_11_d -1,1,0 +sword_2-1,156,241,0 duplicate(SwdTrap1) 1_blank_12_a -1,14,0 +sword_2-1,156,240,0 duplicate(SwdTrap1) 1_blank_12_b -1,14,0 +sword_2-1,170,241,0 duplicate(SwdTrap1) 1_blank_12_c -1,1,0 +sword_2-1,170,240,0 duplicate(SwdTrap1) 1_blank_12_d -1,1,0 +sword_2-1,180,251,0 duplicate(SwdTrap1) 1_blank_13_a -1,0,1 +sword_2-1,183,251,0 duplicate(SwdTrap1) 1_blank_13_b -1,0,1 +sword_2-1,181,250,0 duplicate(SwdTrap1) 1_blank_13_c -1,1,0 +sword_2-1,180,238,0 duplicate(SwdTrap1) 1_blank_14_a -1,0,1 +sword_2-1,183,238,0 duplicate(SwdTrap1) 1_blank_14_b -1,0,1 +sword_2-1,181,239,0 duplicate(SwdTrap1) 1_blank_14_c -1,1,0 + +sword_2-1,193,245,0 warp 1_rest 1,3,sword_2-1,215,244; + +// Pitfalls (Set 2) +//============================================================ +sword_2-1,56,212,0 script 2_blank_1_a::SwdTrap2 -1,40,0,{ +OnTouch: + switch(rand(1,5)) { + case 1: warp "sword_2-1",162,120; end; + case 2: warp "sword_2-1",94,120; end; + case 3: warp "sword_2-1",94,85; end; + case 4: warp "sword_2-1",162,85; end; + case 5: warp "sword_2-1",130,47; end; + } +} + +sword_2-1,95,212,0 duplicate(SwdTrap2) 2_blank_1_b -1,2,0 +sword_2-1,56,210,0 duplicate(SwdTrap2) 2_blank_2_a -1,40,0 +sword_2-1,95,210,0 duplicate(SwdTrap2) 2_blank_2_b -1,2,0 +sword_2-1,16,206,0 duplicate(SwdTrap2) 2_blank_2_c -1,0,3 +sword_2-1,97,206,0 duplicate(SwdTrap2) 2_blank_2_d -1,0,3 +sword_2-1,56,203,0 duplicate(SwdTrap2) 2_blank_2_e -1,40,0 +sword_2-1,95,203,0 duplicate(SwdTrap2) 2_blank_2_f -1,2,0 +sword_2-1,56,201,0 duplicate(SwdTrap2) 2_blank_3_a -1,40,0 +sword_2-1,95,201,0 duplicate(SwdTrap2) 2_blank_3_b -1,2,0 + +sword_2-1,113,212,0 duplicate(SwdTrap2) 2_blank_4_a -1,14,0 +sword_2-1,125,212,0 duplicate(SwdTrap2) 2_blank_4_b -1,2,0 +sword_2-1,113,210,0 duplicate(SwdTrap2) 2_blank_5_a -1,14,0 +sword_2-1,125,210,0 duplicate(SwdTrap2) 2_blank_5_b -1,2,0 +sword_2-1,100,206,0 duplicate(SwdTrap2) 2_blank_5_c -1,0,3 +sword_2-1,127,206,0 duplicate(SwdTrap2) 2_blank_5_d -1,0,3 +sword_2-1,113,203,0 duplicate(SwdTrap2) 2_blank_5_e -1,14,0 +sword_2-1,125,210,0 duplicate(SwdTrap2) 2_blank_5_f -1,2,0 +sword_2-1,113,201,0 duplicate(SwdTrap2) 2_blank_6_a -1,14,0 +sword_2-1,113,201,0 duplicate(SwdTrap2) 2_blank_6_b -1,2,0 + +sword_2-1,155,212,0 duplicate(SwdTrap2) 2_blank_7_a -1,21,0 +sword_2-1,181,212,0 duplicate(SwdTrap2) 2_blank_7_b -1,2,0 +sword_2-1,155,210,0 duplicate(SwdTrap2) 2_blank_8_a -1,21,0 +sword_2-1,181,210,0 duplicate(SwdTrap2) 2_blank_8_b -1,2,0 +sword_2-1,130,206,0 duplicate(SwdTrap2) 2_blank_8_c -1,0,3 +sword_2-1,183,206,0 duplicate(SwdTrap2) 2_blank_8_d -1,0,3 +sword_2-1,155,203,0 duplicate(SwdTrap2) 2_blank_8_e -1,21,0 +sword_2-1,181,203,0 duplicate(SwdTrap2) 2_blank_8_f -1,2,0 +sword_2-1,155,201,0 duplicate(SwdTrap2) 2_blank_9_a -1,40,0 +sword_2-1,181,201,0 duplicate(SwdTrap2) 2_blank_9_b -1,2,0 + +// Pitfalls (Set 3) +//============================================================ +sword_2-1,17,174,0 script 3_blank_1_a::SwdTrap3 -1,2,0,{ +OnTouch: + switch(rand(1,5)) { + case 1: warp "sword_2-1",195,15; end; + case 2: warp "sword_2-1",195,38; end; + case 3: warp "sword_2-1",231,30; end; + case 4: warp "sword_2-1",198,65; end; + case 5: warp "sword_2-1",196,116; end; + } +} + +sword_2-1,17,163,0 duplicate(SwdTrap3) 3_blank_2_a -1,2,0 +sword_2-1,29,171,0 duplicate(SwdTrap3) 3_blank_3_a -1,2,0 +sword_2-1,31,168,0 duplicate(SwdTrap3) 3_blank_3_b -1,0,2 +sword_2-1,28,166,0 duplicate(SwdTrap3) 3_blank_3_c -1,2,0 +sword_2-1,26,168,0 duplicate(SwdTrap3) 3_blank_3_d -1,0,2 +sword_2-1,36,169,0 duplicate(SwdTrap3) 3_blank_4_a -1,0,0 +sword_2-1,37,169,0 duplicate(SwdTrap3) 3_blank_4_b -1,0,0 +sword_2-1,37,168,0 duplicate(SwdTrap3) 3_blank_4_c -1,0,0 +sword_2-1,36,168,0 duplicate(SwdTrap3) 3_blank_4_c -1,0,0 +sword_2-1,40,175,0 duplicate(SwdTrap3) 3_blank_5_a -1,0,1 +sword_2-1,41,175,0 duplicate(SwdTrap3) 3_blank_5_b -1,0,1 +sword_2-1,41,171,0 duplicate(SwdTrap3) 3_blank_6_a -1,1,0 +sword_2-1,41,170,0 duplicate(SwdTrap3) 3_blank_6_b -1,1,0 +sword_2-1,41,167,0 duplicate(SwdTrap3) 3_blank_6_c -1,1,0 +sword_2-1,41,166,0 duplicate(SwdTrap3) 3_blank_6_d -1,1,0 +sword_2-1,42,169,0 duplicate(SwdTrap3) 3_blank_6_e -1,0,1 +sword_2-1,43,170,0 duplicate(SwdTrap3) 3_blank_6_f -1,0,1 +sword_2-1,43,167,0 duplicate(SwdTrap3) 3_blank_6_g -1,0,1 +sword_2-1,40,162,0 duplicate(SwdTrap3) 3_blank_7_a -1,0,1 +sword_2-1,41,162,0 duplicate(SwdTrap3) 3_blank_7_b -1,0,1 +sword_2-1,46,175,0 duplicate(SwdTrap3) 3_blank_8_a -1,0,1 +sword_2-1,51,175,0 duplicate(SwdTrap3) 3_blank_8_b -1,0,1 +sword_2-1,47,174,0 duplicate(SwdTrap3) 3_blank_8_c -1,1,0 +sword_2-1,50,174,0 duplicate(SwdTrap3) 3_blank_8_d -1,1,0 +sword_2-1,48,173,0 duplicate(SwdTrap3) 3_blank_8_e -1,0,1 +sword_2-1,49,173,0 duplicate(SwdTrap3) 3_blank_8_f -1,0,1 +sword_2-1,46,162,0 duplicate(SwdTrap3) 3_blank_9_a -1,0,1 +sword_2-1,51,162,0 duplicate(SwdTrap3) 3_blank_9_b -1,0,1 +sword_2-1,47,163,0 duplicate(SwdTrap3) 3_blank_9_c -1,1,0 +sword_2-1,50,163,0 duplicate(SwdTrap3) 3_blank_9_d -1,1,0 +sword_2-1,48,164,0 duplicate(SwdTrap3) 3_blank_9_e -1,0,1 +sword_2-1,49,164,0 duplicate(SwdTrap3) 3_blank_9_f -1,0,1 +sword_2-1,54,170,0 duplicate(SwdTrap3) 3_blank_10_a -1,0,1 +sword_2-1,55,170,0 duplicate(SwdTrap3) 3_blank_10_b -1,0,1 +sword_2-1,54,167,0 duplicate(SwdTrap3) 3_blank_10_c -1,0,1 +sword_2-1,55,167,0 duplicate(SwdTrap3) 3_blank_10_d -1,0,1 +sword_2-1,53,169,0 duplicate(SwdTrap3) 3_blank_10_e -1,1,0 +sword_2-1,53,168,0 duplicate(SwdTrap3) 3_blank_10_f -1,1,0 +sword_2-1,56,169,0 duplicate(SwdTrap3) 3_blank_10_g -1,1,0 +sword_2-1,56,168,0 duplicate(SwdTrap3) 3_blank_10_h -1,1,0 +sword_2-1,58,175,0 duplicate(SwdTrap3) 3_blank_11_a -1,0,1 +sword_2-1,59,174,0 duplicate(SwdTrap3) 3_blank_11_b -1,1,0 +sword_2-1,60,173,0 duplicate(SwdTrap3) 3_blank_11_c -1,0,1 +sword_2-1,61,172,0 duplicate(SwdTrap3) 3_blank_11_d -1,1,0 +sword_2-1,58,162,0 duplicate(SwdTrap3) 3_blank_12_a -1,0,1 +sword_2-1,59,163,0 duplicate(SwdTrap3) 3_blank_12_b -1,1,0 +sword_2-1,60,164,0 duplicate(SwdTrap3) 3_blank_12_c -1,0,1 +sword_2-1,61,165,0 duplicate(SwdTrap3) 3_blank_12_d -1,1,0 +sword_2-1,76,172,0 duplicate(SwdTrap3) 3_blank_13_a -1,1,0 +sword_2-1,77,173,0 duplicate(SwdTrap3) 3_blank_13_b -1,0,1 +sword_2-1,78,174,0 duplicate(SwdTrap3) 3_blank_13_c -1,1,0 +sword_2-1,79,175,0 duplicate(SwdTrap3) 3_blank_13_d -1,0,1 +sword_2-1,76,165,0 duplicate(SwdTrap3) 3_blank_14_a -1,1,0 +sword_2-1,77,164,0 duplicate(SwdTrap3) 3_blank_14_b -1,0,1 +sword_2-1,78,163,0 duplicate(SwdTrap3) 3_blank_14_c -1,1,0 +sword_2-1,79,162,0 duplicate(SwdTrap3) 3_blank_14_d -1,0,1 +sword_2-1,94,175,0 duplicate(SwdTrap3) 3_blank_15_a -1,0,1 +sword_2-1,95,174,0 duplicate(SwdTrap3) 3_blank_15_b -1,1,0 +sword_2-1,98,174,0 duplicate(SwdTrap3) 3_blank_15_c -1,1,0 +sword_2-1,99,175,0 duplicate(SwdTrap3) 3_blank_16_d -1,0,1 +sword_2-1,96,169,0 duplicate(SwdTrap3) 3_blank_17_a -1,0,0 +sword_2-1,97,169,0 duplicate(SwdTrap3) 3_blank_17_b -1,0,0 +sword_2-1,97,168,0 duplicate(SwdTrap3) 3_blank_17_c -1,0,0 +sword_2-1,96,168,0 duplicate(SwdTrap3) 3_blank_17_d -1,0,0 +sword_2-1,94,162,0 duplicate(SwdTrap3) 3_blank_18_a -1,0,1 +sword_2-1,95,163,0 duplicate(SwdTrap3) 3_blank_18_b -1,1,0 +sword_2-1,98,163,0 duplicate(SwdTrap3) 3_blank_18_c -1,1,0 +sword_2-1,99,162,0 duplicate(SwdTrap3) 3_blank_18_d -1,0,1 +sword_2-1,114,175,0 duplicate(SwdTrap3) 3_blank_19_a -1,0,1 +sword_2-1,115,175,0 duplicate(SwdTrap3) 3_blank_19_b -1,0,1 +sword_2-1,114,162,0 duplicate(SwdTrap3) 3_blank_20_a -1,0,1 +sword_2-1,115,162,0 duplicate(SwdTrap3) 3_blank_20_b -1,0,1 +sword_2-1,126,175,0 duplicate(SwdTrap3) 3_blank_21_a -1,0,1 +sword_2-1,127,175,0 duplicate(SwdTrap3) 3_blank_21_b -1,0,1 +sword_2-1,126,162,0 duplicate(SwdTrap3) 3_blank_23_a -1,0,1 +sword_2-1,127,162,0 duplicate(SwdTrap3) 3_blank_23_b -1,0,1 +sword_2-1,160,174,0 duplicate(SwdTrap3) 3_blank_24_a -1,0,2 +sword_2-1,161,174,0 duplicate(SwdTrap3) 3_blank_24_b -1,0,2 +sword_2-1,160,163,0 duplicate(SwdTrap3) 3_blank_25_a -1,0,2 +sword_2-1,161,163,0 duplicate(SwdTrap3) 3_blank_25_b -1,0,2 +sword_2-1,168,175,0 duplicate(SwdTrap3) 3_blank_26_a -1,0,2 +sword_2-1,169,175,0 duplicate(SwdTrap3) 3_blank_26_b -1,0,2 +sword_2-1,168,162,0 duplicate(SwdTrap3) 3_blank_27_a -1,0,2 +sword_2-1,169,162,0 duplicate(SwdTrap3) 3_blank_27_b -1,0,2 +sword_2-1,176,174,0 duplicate(SwdTrap3) 3_blank_28_a -1,0,2 +sword_2-1,177,174,0 duplicate(SwdTrap3) 3_blank_28_b -1,0,2 +sword_2-1,178,173,0 duplicate(SwdTrap3) 3_blank_28_c -1,1,0 +sword_2-1,178,172,0 duplicate(SwdTrap3) 3_blank_28_d -1,1,0 +sword_2-1,181,174,0 duplicate(SwdTrap3) 3_blank_28_e -1,2,0 +sword_2-1,179,169,0 duplicate(SwdTrap3) 3_blank_29_a -1,3,0 +sword_2-1,179,168,0 duplicate(SwdTrap3) 3_blank_29_b -1,3,0 +sword_2-1,182,169,0 duplicate(SwdTrap3) 3_blank_29_c -1,0,2 +sword_2-1,183,169,0 duplicate(SwdTrap3) 3_blank_29_d -1,0,2 +sword_2-1,181,167,0 duplicate(SwdTrap3) 3_blank_29_e -1,1,0 +sword_2-1,181,166,0 duplicate(SwdTrap3) 3_blank_29_f -1,1,0 +sword_2-1,183,167,0 duplicate(SwdTrap3) 3_blank_29_g -1,0,1 +sword_2-1,176,163,0 duplicate(SwdTrap3) 3_blank_30_a -1,0,2 +sword_2-1,177,163,0 duplicate(SwdTrap3) 3_blank_30_b -1,0,2 +sword_2-1,181,163,0 duplicate(SwdTrap3) 3_blank_30_c -1,2,0 + +// Examination Course 3 +//============================================================ +sword_3-1,223,243,0 warp checkp1-2 1,1,sword_3-1,11,206; +sword_3-1,223,205,0 warp checkp2-3 1,1,sword_3-1,11,168; + +sword_3-1,7,245,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff",3,10,245; } -// -- Duplicates -- -job_sword1,17,163,4 duplicate(3_blank) 3_blank_2_a 139,2,0 -job_sword1,29,171,4 duplicate(3_blank) 3_blank_3_a 139,2,0 -job_sword1,31,168,4 duplicate(3_blank) 3_blank_3_b 139,0,2 -job_sword1,28,166,4 duplicate(3_blank) 3_blank_3_c 139,2,0 -job_sword1,26,168,4 duplicate(3_blank) 3_blank_3_d 139,0,2 -job_sword1,36,169,4 duplicate(3_blank) 3_blank_4_a 139,0,0 -job_sword1,37,169,4 duplicate(3_blank) 3_blank_4_b 139,0,0 -job_sword1,37,168,4 duplicate(3_blank) 3_blank_4_c 139,0,0 -job_sword1,36,168,4 duplicate(3_blank) 3_blank_4_d 139,0,0 -job_sword1,40,175,4 duplicate(3_blank) 3_blank_5_a 139,0,1 -job_sword1,41,175,4 duplicate(3_blank) 3_blank_5_b 139,0,1 -job_sword1,41,171,4 duplicate(3_blank) 3_blank_6_a 139,1,0 -job_sword1,41,170,4 duplicate(3_blank) 3_blank_6_b 139,1,0 -job_sword1,41,167,4 duplicate(3_blank) 3_blank_6_c 139,1,0 -job_sword1,41,166,4 duplicate(3_blank) 3_blank_6_d 139,1,0 -job_sword1,42,169,4 duplicate(3_blank) 3_blank_6_e 139,0,1 -job_sword1,43,170,4 duplicate(3_blank) 3_blank_6_f 139,0,1 -job_sword1,43,167,4 duplicate(3_blank) 3_blank_6_g 139,0,1 -job_sword1,40,162,4 duplicate(3_blank) 3_blank_7_a 139,0,1 -job_sword1,41,162,4 duplicate(3_blank) 3_blank_7_b 139,0,1 -job_sword1,46,175,4 duplicate(3_blank) 3_blank_8_a 139,0,1 -job_sword1,51,175,4 duplicate(3_blank) 3_blank_8_b 139,0,1 -job_sword1,47,174,4 duplicate(3_blank) 3_blank_8_c 139,1,0 -job_sword1,50,174,4 duplicate(3_blank) 3_blank_8_d 139,1,0 -job_sword1,48,173,4 duplicate(3_blank) 3_blank_8_e 139,0,1 -job_sword1,49,173,4 duplicate(3_blank) 3_blank_8_f 139,0,1 -job_sword1,46,162,4 duplicate(3_blank) 3_blank_9_a 139,0,1 -job_sword1,51,162,4 duplicate(3_blank) 3_blank_9_b 139,0,1 -job_sword1,47,163,4 duplicate(3_blank) 3_blank_9_c 139,1,0 -job_sword1,50,163,4 duplicate(3_blank) 3_blank_9_d 139,1,0 -job_sword1,48,164,4 duplicate(3_blank) 3_blank_9_e 139,0,1 -job_sword1,49,164,4 duplicate(3_blank) 3_blank_9_f 139,0,1 -job_sword1,54,170,4 duplicate(3_blank) 3_blank_10_a 139,0,1 -job_sword1,55,170,4 duplicate(3_blank) 3_blank_10_b 139,0,1 -job_sword1,54,167,4 duplicate(3_blank) 3_blank_10_c 139,0,1 -job_sword1,55,167,4 duplicate(3_blank) 3_blank_10_d 139,0,1 -job_sword1,53,169,4 duplicate(3_blank) 3_blank_10_e 139,1,0 -job_sword1,53,168,4 duplicate(3_blank) 3_blank_10_f 139,1,0 -job_sword1,56,169,4 duplicate(3_blank) 3_blank_10_g 139,1,0 -job_sword1,56,168,4 duplicate(3_blank) 3_blank_10_h 139,1,0 -job_sword1,58,175,4 duplicate(3_blank) 3_blank_11_a 139,0,1 -job_sword1,59,174,4 duplicate(3_blank) 3_blank_11_b 139,1,0 -job_sword1,60,173,4 duplicate(3_blank) 3_blank_11_c 139,0,1 -job_sword1,61,172,4 duplicate(3_blank) 3_blank_11_d 139,1,0 -job_sword1,58,162,4 duplicate(3_blank) 3_blank_12_a 139,0,1 -job_sword1,59,163,4 duplicate(3_blank) 3_blank_12_b 139,1,0 -job_sword1,60,164,4 duplicate(3_blank) 3_blank_12_c 139,0,1 -job_sword1,61,165,4 duplicate(3_blank) 3_blank_12_d 139,1,0 -job_sword1,76,172,4 duplicate(3_blank) 3_blank_13_a 139,1,0 -job_sword1,77,173,4 duplicate(3_blank) 3_blank_13_b 139,0,1 -job_sword1,78,174,4 duplicate(3_blank) 3_blank_13_c 139,1,0 -job_sword1,79,175,4 duplicate(3_blank) 3_blank_13_d 139,0,1 -job_sword1,76,165,4 duplicate(3_blank) 3_blank_14_a 139,1,0 -job_sword1,77,164,4 duplicate(3_blank) 3_blank_14_b 139,0,1 -job_sword1,78,163,4 duplicate(3_blank) 3_blank_14_c 139,1,0 -job_sword1,79,162,4 duplicate(3_blank) 3_blank_14_d 139,0,1 -job_sword1,94,175,4 duplicate(3_blank) 3_blank_15_a 139,0,1 -job_sword1,95,174,4 duplicate(3_blank) 3_blank_15_b 139,1,0 -job_sword1,98,174,4 duplicate(3_blank) 3_blank_15_c 139,1,0 -job_sword1,99,175,4 duplicate(3_blank) 3_blank_16_d 139,0,1 -job_sword1,96,169,4 duplicate(3_blank) 3_blank_17_a 139,0,0 -job_sword1,97,169,4 duplicate(3_blank) 3_blank_17_b 139,0,0 -job_sword1,97,168,4 duplicate(3_blank) 3_blank_17_c 139,0,0 -job_sword1,96,168,4 duplicate(3_blank) 3_blank_17_d 139,0,0 -job_sword1,94,162,4 duplicate(3_blank) 3_blank_18_a 139,0,1 -job_sword1,95,163,4 duplicate(3_blank) 3_blank_18_b 139,1,0 -job_sword1,98,163,4 duplicate(3_blank) 3_blank_18_c 139,1,0 -job_sword1,99,162,4 duplicate(3_blank) 3_blank_18_d 139,0,1 -job_sword1,114,175,4 duplicate(3_blank) 3_blank_19_a 139,0,1 -job_sword1,115,175,4 duplicate(3_blank) 3_blank_19_b 139,0,1 -job_sword1,114,162,4 duplicate(3_blank) 3_blank_20_a 139,0,1 -job_sword1,115,162,4 duplicate(3_blank) 3_blank_20_b 139,0,1 -job_sword1,126,175,4 duplicate(3_blank) 3_blank_21_a 139,0,1 -job_sword1,127,175,4 duplicate(3_blank) 3_blank_21_b 139,0,1 -job_sword1,126,162,4 duplicate(3_blank) 3_blank_23_a 139,0,1 -job_sword1,127,162,4 duplicate(3_blank) 3_blank_23_b 139,0,1 -job_sword1,160,174,4 duplicate(3_blank) 3_blank_24_a 139,0,2 -job_sword1,161,174,4 duplicate(3_blank) 3_blank_24_b 139,0,2 -job_sword1,160,163,4 duplicate(3_blank) 3_blank_25_a 139,0,2 -job_sword1,161,163,4 duplicate(3_blank) 3_blank_25_b 139,0,2 -job_sword1,168,175,4 duplicate(3_blank) 3_blank_26_a 139,0,2 -job_sword1,169,175,4 duplicate(3_blank) 3_blank_26_b 139,0,2 -job_sword1,168,162,4 duplicate(3_blank) 3_blank_27_a 139,0,2 -job_sword1,169,162,4 duplicate(3_blank) 3_blank_27_b 139,0,2 -job_sword1,176,174,4 duplicate(3_blank) 3_blank_28_a 139,0,2 -job_sword1,177,174,4 duplicate(3_blank) 3_blank_28_b 139,0,2 -job_sword1,178,173,4 duplicate(3_blank) 3_blank_28_c 139,1,0 -job_sword1,178,172,4 duplicate(3_blank) 3_blank_28_d 139,1,0 -job_sword1,181,174,4 duplicate(3_blank) 3_blank_28_e 139,2,0 -job_sword1,179,169,4 duplicate(3_blank) 3_blank_29_a 139,3,0 -job_sword1,179,168,4 duplicate(3_blank) 3_blank_29_b 139,3,0 -job_sword1,182,169,4 duplicate(3_blank) 3_blank_29_c 139,0,2 -job_sword1,183,169,4 duplicate(3_blank) 3_blank_29_d 139,0,2 -job_sword1,181,167,4 duplicate(3_blank) 3_blank_29_e 139,1,0 -job_sword1,181,166,4 duplicate(3_blank) 3_blank_29_f 139,1,0 -job_sword1,183,167,4 duplicate(3_blank) 3_blank_29_g 139,0,1 -job_sword1,176,163,4 duplicate(3_blank) 3_blank_30_a 139,0,2 -job_sword1,177,163,4 duplicate(3_blank) 3_blank_30_b 139,0,2 -job_sword1,181,163,4 duplicate(3_blank) 3_blank_30_c 139,2,0 - -// == Monsters == -//Spawn is included in this file so make shure its not elsewhere to! -job_sword1,35,78,0,0 monster Fabre 1184,4,0,0,0 -job_sword1,50,108,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,61,28,0,0 monster Fabre 1184,4,0,0,0 -job_sword1,61,92,0,0 monster Fabre 1184,2,0,0,0 -// -job_sword1,110,112,0,0 monster Fabre 1184,3,0,0,0 -job_sword1,161,94,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,130,76,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,103,58,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,130,24,0,0 monster Fabre 1184,3,0,0,0 -// -job_sword1,201,36,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,201,16,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,239,44,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,239,76,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,231,101,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,234,117,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,198,91,0,0 monster Fabre 1184,2,0,0,0 -job_sword1,200,63,0,0 monster Fabre 1184,2,0,0,0 - -//============================================================================== +sword_3-1,8,207,0 script Test Hall Staff 45,1,6,{ + callfunc "F_JobSwdTestStaff",3,11,207; +} + +sword_3-1,8,169,0 script Test Hall Staff 45,1,6,{ + callfunc "F_JobSwdTestStaff",3,11,169; +} + +sword_3-1,192,244,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff2","1st",3,215,244; +} + +sword_3-1,193,207,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff2","2nd",3,215,205; + warp "sword_3-1",215,205; +} + +sword_3-1,193,168,0 script Test Hall Staff 45,1,3,{ + callfunc "F_JobSwdTestStaff2","3rd",3,215,167; +} + +// Pitfalls (Set 1) +//============================================================ +sword_3-1,65,117,0 warp ����01-01 1,1,sword_3-1,10,245; +sword_3-1,98,27,0 warp ����02-01 1,1,sword_3-1,11,207; +sword_3-1,161,27,0 warp ����02-02 1,1,sword_3-1,11,207; +sword_3-1,239,117,0 warp ����03-01 1,1,sword_3-1,11,169; + +sword_3-1,16,251,0 script 1_blank_1_a::SwdTrap1 -1,0,1,{ +OnTouch: + switch(rand(1,5)) { + case 1: warp "sword_3-1",65,56; end; + case 2: warp "sword_3-1",29,26; end; + case 3: warp "sword_3-1",43,16; end; + case 4: warp "sword_3-1",23,112; end; + case 5: warp "sword_3-1",58,83; end; + } +} +sword_3-1,19,251,0 duplicate(SwdTrap1) 1_blank_1_b -1,0,1 +sword_3-1,17,250,0 duplicate(SwdTrap1) 1_blank_1_c -1,1,0 +sword_3-1,16,238,0 duplicate(SwdTrap1) 1_blank_2_a -1,0,1 +sword_3-1,19,238,0 duplicate(SwdTrap1) 1_blank_2_b -1,0,1 +sword_3-1,17,239,0 duplicate(SwdTrap1) 1_blank_2_c -1,0,1 +sword_3-1,28,247,0 duplicate(SwdTrap1) 1_blank_3_a -1,4,0 +sword_3-1,33,245,0 duplicate(SwdTrap1) 1_blank_3_b -1,0,2 +sword_3-1,29,242,0 duplicate(SwdTrap1) 1_blank_3_c -1,4,0 +sword_3-1,24,244,0 duplicate(SwdTrap1) 1_blank_3_d -1,0,2 +sword_3-1,38,251,0 duplicate(SwdTrap1) 1_blank_4_a -1,0,1 +sword_3-1,41,251,0 duplicate(SwdTrap1) 1_blank_4_b -1,0,1 +sword_3-1,39,250,0 duplicate(SwdTrap1) 1_blank_4_c -1,1,0 +sword_3-1,38,238,0 duplicate(SwdTrap1) 1_blank_5_a -1,0,1 +sword_3-1,41,238,0 duplicate(SwdTrap1) 1_blank_5_b -1,0,1 +sword_3-1,39,239,0 duplicate(SwdTrap1) 1_blank_5_c -1,1,0 +sword_3-1,54,251,0 duplicate(SwdTrap1) 1_blank_6_a -1,0,1 +sword_3-1,71,251,0 duplicate(SwdTrap1) 1_blank_6_b -1,0,1 +sword_3-1,62,250,0 duplicate(SwdTrap1) 1_blank_6_c -1,9,0 +sword_3-1,62,247,0 duplicate(SwdTrap1) 1_blank_7_a -1,8,0 +sword_3-1,71,244,0 duplicate(SwdTrap1) 1_blank_7_b -1,0,2 +sword_3-1,63,242,0 duplicate(SwdTrap1) 1_blank_7_c -1,8,0 +sword_3-1,54,244,0 duplicate(SwdTrap1) 1_blank_7_d -1,0,2 +sword_3-1,54,238,0 duplicate(SwdTrap1) 1_blank_8_a -1,0,1 +sword_3-1,71,238,0 duplicate(SwdTrap1) 1_blank_8_b -1,0,1 +sword_3-1,62,239,0 duplicate(SwdTrap1) 1_blank_8_c -1,9,0 +sword_3-1,102,247,0 duplicate(SwdTrap1) 1_blank_9_a -1,2,0 +sword_3-1,105,245,0 duplicate(SwdTrap1) 1_blank_9_b -1,0,2 +sword_3-1,103,242,0 duplicate(SwdTrap1) 1_blank_9_c -1,2,0 +sword_3-1,100,244,0 duplicate(SwdTrap1) 1_blank_9_d -1,0,2 +sword_3-1,156,249,0 duplicate(SwdTrap1) 1_blank_10_a -1,14,0 +sword_3-1,156,248,0 duplicate(SwdTrap1) 1_blank_10_b -1,14,0 +sword_3-1,170,249,0 duplicate(SwdTrap1) 1_blank_10_c -1,1,0 +sword_3-1,170,248,0 duplicate(SwdTrap1) 1_blank_10_d -1,1,0 +sword_3-1,156,245,0 duplicate(SwdTrap1) 1_blank_11_a -1,14,0 +sword_3-1,156,244,0 duplicate(SwdTrap1) 1_blank_11_b -1,14,0 +sword_3-1,170,245,0 duplicate(SwdTrap1) 1_blank_11_c -1,1,0 +sword_3-1,170,244,0 duplicate(SwdTrap1) 1_blank_11_d -1,1,0 +sword_3-1,156,241,0 duplicate(SwdTrap1) 1_blank_12_a -1,14,0 +sword_3-1,156,240,0 duplicate(SwdTrap1) 1_blank_12_b -1,14,0 +sword_3-1,170,241,0 duplicate(SwdTrap1) 1_blank_12_c -1,1,0 +sword_3-1,170,240,0 duplicate(SwdTrap1) 1_blank_12_d -1,1,0 +sword_3-1,180,251,0 duplicate(SwdTrap1) 1_blank_13_a -1,0,1 +sword_3-1,183,251,0 duplicate(SwdTrap1) 1_blank_13_b -1,0,1 +sword_3-1,181,250,0 duplicate(SwdTrap1) 1_blank_13_c -1,1,0 +sword_3-1,180,238,0 duplicate(SwdTrap1) 1_blank_14_a -1,0,1 +sword_3-1,183,238,0 duplicate(SwdTrap1) 1_blank_14_b -1,0,1 +sword_3-1,181,239,0 duplicate(SwdTrap1) 1_blank_14_c -1,1,0 + +sword_3-1,193,245,0 warp 1_rest 1,3,sword_3-1,215,244; + +// Pitfalls (Set 2) +//============================================================ +sword_3-1,56,212,0 script 2_blank_1_a::SwdTrap2 -1,40,0,{ +OnTouch: + switch(rand(1,5)) { + case 1: warp "sword_3-1",162,120; end; + case 2: warp "sword_3-1",94,120; end; + case 3: warp "sword_3-1",94,85; end; + case 4: warp "sword_3-1",162,85; end; + case 5: warp "sword_3-1",130,47; end; + } +} + +sword_3-1,95,212,0 duplicate(SwdTrap2) 2_blank_1_b -1,2,0 +sword_3-1,56,210,0 duplicate(SwdTrap2) 2_blank_2_a -1,40,0 +sword_3-1,95,210,0 duplicate(SwdTrap2) 2_blank_2_b -1,2,0 +sword_3-1,16,206,0 duplicate(SwdTrap2) 2_blank_2_c -1,0,3 +sword_3-1,97,206,0 duplicate(SwdTrap2) 2_blank_2_d -1,0,3 +sword_3-1,56,203,0 duplicate(SwdTrap2) 2_blank_2_e -1,40,0 +sword_3-1,95,203,0 duplicate(SwdTrap2) 2_blank_2_f -1,2,0 +sword_3-1,56,201,0 duplicate(SwdTrap2) 2_blank_3_a -1,40,0 +sword_3-1,95,201,0 duplicate(SwdTrap2) 2_blank_3_b -1,2,0 + +sword_3-1,113,212,0 duplicate(SwdTrap2) 2_blank_4_a -1,14,0 +sword_3-1,125,212,0 duplicate(SwdTrap2) 2_blank_4_b -1,2,0 +sword_3-1,113,210,0 duplicate(SwdTrap2) 2_blank_5_a -1,14,0 +sword_3-1,125,210,0 duplicate(SwdTrap2) 2_blank_5_b -1,2,0 +sword_3-1,100,206,0 duplicate(SwdTrap2) 2_blank_5_c -1,0,3 +sword_3-1,127,206,0 duplicate(SwdTrap2) 2_blank_5_d -1,0,3 +sword_3-1,113,203,0 duplicate(SwdTrap2) 2_blank_5_e -1,14,0 +sword_3-1,125,210,0 duplicate(SwdTrap2) 2_blank_5_f -1,2,0 +sword_3-1,113,201,0 duplicate(SwdTrap2) 2_blank_6_a -1,14,0 +sword_3-1,113,201,0 duplicate(SwdTrap2) 2_blank_6_b -1,2,0 + +sword_3-1,155,212,0 duplicate(SwdTrap2) 2_blank_7_a -1,21,0 +sword_3-1,181,212,0 duplicate(SwdTrap2) 2_blank_7_b -1,2,0 +sword_3-1,155,210,0 duplicate(SwdTrap2) 2_blank_8_a -1,21,0 +sword_3-1,181,210,0 duplicate(SwdTrap2) 2_blank_8_b -1,2,0 +sword_3-1,130,206,0 duplicate(SwdTrap2) 2_blank_8_c -1,0,3 +sword_3-1,183,206,0 duplicate(SwdTrap2) 2_blank_8_d -1,0,3 +sword_3-1,155,203,0 duplicate(SwdTrap2) 2_blank_8_e -1,21,0 +sword_3-1,181,203,0 duplicate(SwdTrap2) 2_blank_8_f -1,2,0 +sword_3-1,155,201,0 duplicate(SwdTrap2) 2_blank_9_a -1,40,0 +sword_3-1,181,201,0 duplicate(SwdTrap2) 2_blank_9_b -1,2,0 + +// Pitfalls (Set 3) +//============================================================ +sword_3-1,17,174,0 script 3_blank_1_a::SwdTrap3 -1,2,0,{ +OnTouch: + switch(rand(1,5)) { + case 1: warp "sword_3-1",195,15; end; + case 2: warp "sword_3-1",195,38; end; + case 3: warp "sword_3-1",231,30; end; + case 4: warp "sword_3-1",198,65; end; + case 5: warp "sword_3-1",196,116; end; + } +} + +sword_3-1,17,163,0 duplicate(SwdTrap3) 3_blank_2_a -1,2,0 +sword_3-1,29,171,0 duplicate(SwdTrap3) 3_blank_3_a -1,2,0 +sword_3-1,31,168,0 duplicate(SwdTrap3) 3_blank_3_b -1,0,2 +sword_3-1,28,166,0 duplicate(SwdTrap3) 3_blank_3_c -1,2,0 +sword_3-1,26,168,0 duplicate(SwdTrap3) 3_blank_3_d -1,0,2 +sword_3-1,36,169,0 duplicate(SwdTrap3) 3_blank_4_a -1,0,0 +sword_3-1,37,169,0 duplicate(SwdTrap3) 3_blank_4_b -1,0,0 +sword_3-1,37,168,0 duplicate(SwdTrap3) 3_blank_4_c -1,0,0 +sword_3-1,36,168,0 duplicate(SwdTrap3) 3_blank_4_c -1,0,0 +sword_3-1,40,175,0 duplicate(SwdTrap3) 3_blank_5_a -1,0,1 +sword_3-1,41,175,0 duplicate(SwdTrap3) 3_blank_5_b -1,0,1 +sword_3-1,41,171,0 duplicate(SwdTrap3) 3_blank_6_a -1,1,0 +sword_3-1,41,170,0 duplicate(SwdTrap3) 3_blank_6_b -1,1,0 +sword_3-1,41,167,0 duplicate(SwdTrap3) 3_blank_6_c -1,1,0 +sword_3-1,41,166,0 duplicate(SwdTrap3) 3_blank_6_d -1,1,0 +sword_3-1,42,169,0 duplicate(SwdTrap3) 3_blank_6_e -1,0,1 +sword_3-1,43,170,0 duplicate(SwdTrap3) 3_blank_6_f -1,0,1 +sword_3-1,43,167,0 duplicate(SwdTrap3) 3_blank_6_g -1,0,1 +sword_3-1,40,162,0 duplicate(SwdTrap3) 3_blank_7_a -1,0,1 +sword_3-1,41,162,0 duplicate(SwdTrap3) 3_blank_7_b -1,0,1 +sword_3-1,46,175,0 duplicate(SwdTrap3) 3_blank_8_a -1,0,1 +sword_3-1,51,175,0 duplicate(SwdTrap3) 3_blank_8_b -1,0,1 +sword_3-1,47,174,0 duplicate(SwdTrap3) 3_blank_8_c -1,1,0 +sword_3-1,50,174,0 duplicate(SwdTrap3) 3_blank_8_d -1,1,0 +sword_3-1,48,173,0 duplicate(SwdTrap3) 3_blank_8_e -1,0,1 +sword_3-1,49,173,0 duplicate(SwdTrap3) 3_blank_8_f -1,0,1 +sword_3-1,46,162,0 duplicate(SwdTrap3) 3_blank_9_a -1,0,1 +sword_3-1,51,162,0 duplicate(SwdTrap3) 3_blank_9_b -1,0,1 +sword_3-1,47,163,0 duplicate(SwdTrap3) 3_blank_9_c -1,1,0 +sword_3-1,50,163,0 duplicate(SwdTrap3) 3_blank_9_d -1,1,0 +sword_3-1,48,164,0 duplicate(SwdTrap3) 3_blank_9_e -1,0,1 +sword_3-1,49,164,0 duplicate(SwdTrap3) 3_blank_9_f -1,0,1 +sword_3-1,54,170,0 duplicate(SwdTrap3) 3_blank_10_a -1,0,1 +sword_3-1,55,170,0 duplicate(SwdTrap3) 3_blank_10_b -1,0,1 +sword_3-1,54,167,0 duplicate(SwdTrap3) 3_blank_10_c -1,0,1 +sword_3-1,55,167,0 duplicate(SwdTrap3) 3_blank_10_d -1,0,1 +sword_3-1,53,169,0 duplicate(SwdTrap3) 3_blank_10_e -1,1,0 +sword_3-1,53,168,0 duplicate(SwdTrap3) 3_blank_10_f -1,1,0 +sword_3-1,56,169,0 duplicate(SwdTrap3) 3_blank_10_g -1,1,0 +sword_3-1,56,168,0 duplicate(SwdTrap3) 3_blank_10_h -1,1,0 +sword_3-1,58,175,0 duplicate(SwdTrap3) 3_blank_11_a -1,0,1 +sword_3-1,59,174,0 duplicate(SwdTrap3) 3_blank_11_b -1,1,0 +sword_3-1,60,173,0 duplicate(SwdTrap3) 3_blank_11_c -1,0,1 +sword_3-1,61,172,0 duplicate(SwdTrap3) 3_blank_11_d -1,1,0 +sword_3-1,58,162,0 duplicate(SwdTrap3) 3_blank_12_a -1,0,1 +sword_3-1,59,163,0 duplicate(SwdTrap3) 3_blank_12_b -1,1,0 +sword_3-1,60,164,0 duplicate(SwdTrap3) 3_blank_12_c -1,0,1 +sword_3-1,61,165,0 duplicate(SwdTrap3) 3_blank_12_d -1,1,0 +sword_3-1,76,172,0 duplicate(SwdTrap3) 3_blank_13_a -1,1,0 +sword_3-1,77,173,0 duplicate(SwdTrap3) 3_blank_13_b -1,0,1 +sword_3-1,78,174,0 duplicate(SwdTrap3) 3_blank_13_c -1,1,0 +sword_3-1,79,175,0 duplicate(SwdTrap3) 3_blank_13_d -1,0,1 +sword_3-1,76,165,0 duplicate(SwdTrap3) 3_blank_14_a -1,1,0 +sword_3-1,77,164,0 duplicate(SwdTrap3) 3_blank_14_b -1,0,1 +sword_3-1,78,163,0 duplicate(SwdTrap3) 3_blank_14_c -1,1,0 +sword_3-1,79,162,0 duplicate(SwdTrap3) 3_blank_14_d -1,0,1 +sword_3-1,94,175,0 duplicate(SwdTrap3) 3_blank_15_a -1,0,1 +sword_3-1,95,174,0 duplicate(SwdTrap3) 3_blank_15_b -1,1,0 +sword_3-1,98,174,0 duplicate(SwdTrap3) 3_blank_15_c -1,1,0 +sword_3-1,99,175,0 duplicate(SwdTrap3) 3_blank_16_d -1,0,1 +sword_3-1,96,169,0 duplicate(SwdTrap3) 3_blank_17_a -1,0,0 +sword_3-1,97,169,0 duplicate(SwdTrap3) 3_blank_17_b -1,0,0 +sword_3-1,97,168,0 duplicate(SwdTrap3) 3_blank_17_c -1,0,0 +sword_3-1,96,168,0 duplicate(SwdTrap3) 3_blank_17_d -1,0,0 +sword_3-1,94,162,0 duplicate(SwdTrap3) 3_blank_18_a -1,0,1 +sword_3-1,95,163,0 duplicate(SwdTrap3) 3_blank_18_b -1,1,0 +sword_3-1,98,163,0 duplicate(SwdTrap3) 3_blank_18_c -1,1,0 +sword_3-1,99,162,0 duplicate(SwdTrap3) 3_blank_18_d -1,0,1 +sword_3-1,114,175,0 duplicate(SwdTrap3) 3_blank_19_a -1,0,1 +sword_3-1,115,175,0 duplicate(SwdTrap3) 3_blank_19_b -1,0,1 +sword_3-1,114,162,0 duplicate(SwdTrap3) 3_blank_20_a -1,0,1 +sword_3-1,115,162,0 duplicate(SwdTrap3) 3_blank_20_b -1,0,1 +sword_3-1,126,175,0 duplicate(SwdTrap3) 3_blank_21_a -1,0,1 +sword_3-1,127,175,0 duplicate(SwdTrap3) 3_blank_21_b -1,0,1 +sword_3-1,126,162,0 duplicate(SwdTrap3) 3_blank_23_a -1,0,1 +sword_3-1,127,162,0 duplicate(SwdTrap3) 3_blank_23_b -1,0,1 +sword_3-1,160,174,0 duplicate(SwdTrap3) 3_blank_24_a -1,0,2 +sword_3-1,161,174,0 duplicate(SwdTrap3) 3_blank_24_b -1,0,2 +sword_3-1,160,163,0 duplicate(SwdTrap3) 3_blank_25_a -1,0,2 +sword_3-1,161,163,0 duplicate(SwdTrap3) 3_blank_25_b -1,0,2 +sword_3-1,168,175,0 duplicate(SwdTrap3) 3_blank_26_a -1,0,2 +sword_3-1,169,175,0 duplicate(SwdTrap3) 3_blank_26_b -1,0,2 +sword_3-1,168,162,0 duplicate(SwdTrap3) 3_blank_27_a -1,0,2 +sword_3-1,169,162,0 duplicate(SwdTrap3) 3_blank_27_b -1,0,2 +sword_3-1,176,174,0 duplicate(SwdTrap3) 3_blank_28_a -1,0,2 +sword_3-1,177,174,0 duplicate(SwdTrap3) 3_blank_28_b -1,0,2 +sword_3-1,178,173,0 duplicate(SwdTrap3) 3_blank_28_c -1,1,0 +sword_3-1,178,172,0 duplicate(SwdTrap3) 3_blank_28_d -1,1,0 +sword_3-1,181,174,0 duplicate(SwdTrap3) 3_blank_28_e -1,2,0 +sword_3-1,179,169,0 duplicate(SwdTrap3) 3_blank_29_a -1,3,0 +sword_3-1,179,168,0 duplicate(SwdTrap3) 3_blank_29_b -1,3,0 +sword_3-1,182,169,0 duplicate(SwdTrap3) 3_blank_29_c -1,0,2 +sword_3-1,183,169,0 duplicate(SwdTrap3) 3_blank_29_d -1,0,2 +sword_3-1,181,167,0 duplicate(SwdTrap3) 3_blank_29_e -1,1,0 +sword_3-1,181,166,0 duplicate(SwdTrap3) 3_blank_29_f -1,1,0 +sword_3-1,183,167,0 duplicate(SwdTrap3) 3_blank_29_g -1,0,1 +sword_3-1,176,163,0 duplicate(SwdTrap3) 3_blank_30_a -1,0,2 +sword_3-1,177,163,0 duplicate(SwdTrap3) 3_blank_30_b -1,0,2 +sword_3-1,181,163,0 duplicate(SwdTrap3) 3_blank_30_c -1,2,0 + +// Monsters (all three courses) +//============================================================ +sword_1-1,0,0,0,0 monster Chonchon 1183,20,0,0,0 +sword_1-1,35,79,0,0 monster Fabre 1184,3,60000,30000,0 +sword_1-1,50,108,0,0 monster Fabre 1184,3,60000,30000,0 +sword_1-1,61,28,0,0 monster Fabre 1184,3,60000,30000,0 +sword_1-1,61,92,0,0 monster Fabre 1184,3,60000,30000,0 +sword_1-1,110,112,0,0 monster Fabre 1184,2,60000,30000,0 +sword_1-1,161,94,0,0 monster Fabre 1184,2,60000,30000,0 +sword_1-1,130,76,0,0 monster Fabre 1184,2,60000,30000,0 +sword_1-1,103,58,0,0 monster Fabre 1184,2,60000,30000,0 +sword_1-1,130,24,0,0 monster Fabre 1184,5,60000,30000,0 +sword_1-1,201,36,0,0 monster Fabre 1184,2,60000,30000,0 +sword_1-1,201,16,0,0 monster Fabre 1184,2,60000,30000,0 +sword_1-1,239,44,0,0 monster Fabre 1184,3,60000,30000,0 +sword_1-1,239,76,0,0 monster Fabre 1184,2,60000,30000,0 +sword_1-1,231,101,0,0 monster Fabre 1184,2,60000,30000,0 +sword_1-1,234,117,0,0 monster Fabre 1184,2,60000,30000,0 +sword_1-1,198,91,0,0 monster Fabre 1184,2,60000,30000,0 +sword_1-1,200,63,0,0 monster Fabre 1184,2,60000,30000,0 + +sword_2-1,0,0,0,0 monster Chonchon 1183,20,0,0,0 +sword_2-1,35,79,0,0 monster Fabre 1184,3,60000,30000,0 +sword_2-1,50,108,0,0 monster Fabre 1184,3,60000,30000,0 +sword_2-1,61,28,0,0 monster Fabre 1184,3,60000,30000,0 +sword_2-1,61,92,0,0 monster Fabre 1184,3,60000,30000,0 +sword_2-1,110,112,0,0 monster Fabre 1184,2,60000,30000,0 +sword_2-1,161,94,0,0 monster Fabre 1184,2,60000,30000,0 +sword_2-1,130,76,0,0 monster Fabre 1184,2,60000,30000,0 +sword_2-1,103,58,0,0 monster Fabre 1184,2,60000,30000,0 +sword_2-1,130,24,0,0 monster Fabre 1184,5,60000,30000,0 +sword_2-1,201,36,0,0 monster Fabre 1184,2,60000,30000,0 +sword_2-1,201,16,0,0 monster Fabre 1184,2,60000,30000,0 +sword_2-1,239,44,0,0 monster Fabre 1184,3,60000,30000,0 +sword_2-1,239,76,0,0 monster Fabre 1184,2,60000,30000,0 +sword_2-1,231,101,0,0 monster Fabre 1184,2,60000,30000,0 +sword_2-1,234,117,0,0 monster Fabre 1184,2,60000,30000,0 +sword_2-1,198,91,0,0 monster Fabre 1184,2,60000,30000,0 +sword_2-1,200,63,0,0 monster Fabre 1184,2,60000,30000,0 + +sword_3-1,0,0,0,0 monster Chonchon 1183,20,0,0,0 +sword_3-1,35,79,0,0 monster Fabre 1184,3,60000,30000,0 +sword_3-1,50,108,0,0 monster Fabre 1184,3,60000,30000,0 +sword_3-1,61,28,0,0 monster Fabre 1184,3,60000,30000,0 +sword_3-1,61,92,0,0 monster Fabre 1184,3,60000,30000,0 +sword_3-1,110,112,0,0 monster Fabre 1184,2,60000,30000,0 +sword_3-1,161,94,0,0 monster Fabre 1184,2,60000,30000,0 +sword_3-1,130,76,0,0 monster Fabre 1184,2,60000,30000,0 +sword_3-1,103,58,0,0 monster Fabre 1184,2,60000,30000,0 +sword_3-1,130,24,0,0 monster Fabre 1184,5,60000,30000,0 +sword_3-1,201,36,0,0 monster Fabre 1184,2,60000,30000,0 +sword_3-1,201,16,0,0 monster Fabre 1184,2,60000,30000,0 +sword_3-1,239,44,0,0 monster Fabre 1184,3,60000,30000,0 +sword_3-1,239,76,0,0 monster Fabre 1184,2,60000,30000,0 +sword_3-1,231,101,0,0 monster Fabre 1184,2,60000,30000,0 +sword_3-1,234,117,0,0 monster Fabre 1184,2,60000,30000,0 +sword_3-1,198,91,0,0 monster Fabre 1184,2,60000,30000,0 +sword_3-1,200,63,0,0 monster Fabre 1184,2,60000,30000,0 + +//============================================================ // mapflag -//============================================================================== -job_sword1 mapflag nomemo -job_sword1 mapflag noteleport -job_sword1 mapflag nosave SavePoint -job_sword1 mapflag nopenalty -job_sword1 mapflag nobranch -job_sword1 mapflag noexp -job_sword1 mapflag noloot +//============================================================ +sword_1-1 mapflag nomemo +sword_1-1 mapflag noteleport +sword_1-1 mapflag nosave SavePoint +sword_1-1 mapflag nopenalty +sword_1-1 mapflag nobranch + +sword_2-1 mapflag nomemo +sword_2-1 mapflag noteleport +sword_2-1 mapflag nosave SavePoint +sword_2-1 mapflag nopenalty +sword_2-1 mapflag nobranch + +sword_3-1 mapflag nomemo +sword_3-1 mapflag noteleport +sword_3-1 mapflag nosave SavePoint +sword_3-1 mapflag nopenalty +sword_3-1 mapflag nobranch + diff --git a/npc/jobs/1-1/thief.txt b/npc/jobs/1-1/thief.txt index a6ed2f28a..8a70598cd 100644 --- a/npc/jobs/1-1/thief.txt +++ b/npc/jobs/1-1/thief.txt @@ -3,11 +3,12 @@ //===== By: ================================================== //= eAthena dev team //===== Current Version: ===================================== -//= 1.6a +//= 1.7 //===== Compatible With: ===================================== -//= eAthena 1.0 + +//= eAthena SVN //===== Description: ========================================= -//= <Description> +//= [Aegis Conversion] +//= Job quest for Thief classes //===== Additional Comments: ================================= //= Fully working //= v1.1 Added instant job change for High Novice [Lupus] @@ -16,445 +17,525 @@ //= Fixed possible EXP abuse [Lupus] //= 1.5 Now saves/restores all quest skills [Lupus] //= 1.6 Merged back JFunc [Lupus] 1.6a typos +//= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf] +//= No longer uses function "F_ToHigh" //============================================================ - -// == Monsters == -//Spawn is included in this file so make shure its not elsewhere to! -job_thief1,0,0,0,0 monster Orange Mushroom 1182,180,0,0,0 -job_thief1,0,0,0,0 monster Fabre 1184,50,0,0,0 -job_thief1,0,0,0,0 monster Chonchon 1183,50,0,0,0 -job_thief1,0,0,0,0 monster Spore 1014,30,0,0,0 - - -// == NPCs == -// -- Interviewer -- -moc_prydb1,39,129,5 script Thief Guide 69,{ - - mes "[Thief Guide]"; - if(BaseJob == Job_Thief) { - mes "You're already a thief..... What do you want from me... go away!"; - emotion e_swt; - close; - } - if(BaseClass == Job_Swordman) { - mes "What the heck...? Meh!~Here's another 'Bash' head. Do me a favor... why don't you go 'BASH', yourself in the head. Ha!"; - emotion e_gg; - close; - } - if(BaseClass == Job_Mage) { - mes "What the heck...? Ehhh??? A Circus Sideshow? Make a fire without a Matchstick, will ya?"; - emotion e_swt2; - close; - } - if(BaseClass == Job_Archer) { - mes "What the heck...? Hahahaha~are you a 'Kill Stealing' Archer...?"; - emotion e_heh; - close; - } - if(BaseClass == Job_Acolyte) { - mes "What the heck...? Ohhhhhh~GOD... PORING's worshipper, Acolyte..."; - mes "So why aren't you in church praying, instead of wandering about here, huh?"; - close; - } - if(BaseClass == Job_Merchant) { - mes "What the heck...? Eeeeeek~Merchant Scammer here...!!!! I am gonna report you to the GM!!!"; - emotion e_gasp; - close; +moc_prydb1,39,129,2 script Thief Guide 69,{ + if (Upper == 1) { + if (ADVJOB == Job_Assassin_Cross || ADVJOB == Job_Stalker) { + if (BaseJob == Job_Novice_High) { + mes "[Thief Guide]"; + mes "Huh? Do I know you? It's creepy that you seem so familiar. You don't have a twin, do you?"; + next; + if (getskilllv(1) < 9) { + mes "[Thief Guide]"; + mes "What, do you want to be a Thief? I'm sorry, but you look like you need more training."; + next; + mes "[Thief Guide]"; + mes "Take your time and learn all the Basic Skills, will you? Well then, see you later~!"; + close; + } + mes "[Thief Guide]"; + mes "Well, I got this feeling like you've been through a lifetime of fighting, so I'm promoting you to a Thief right this minute. I better give you tough guys what you want..."; + next; + skill 143,0,0; + jobchange Job_Thief_High; + skill 149,1,0; + skill 150,1,0; + skill 151,1,0; + skill 152,1,0; + mes "[Thief Guide]"; + mes "Since you've become a Thief, live as a Thief. Now, go for it! Next~"; + close; + } + else { + mes "[Thief Guide]"; + if (sex) + mes "Hey, dude."; + else + mes "Hey, baby~"; + close; + } + } + else { + mes "[Thief Guide]"; + if (sex) + mes "Hey, dude."; + else + mes "Hey, baby."; + mes "...Hey! You look too goody-goody to want to be a Thief!! Now scram, I'm busy. Next!"; + close; + } } - if(BaseClass != Job_Novice) { - mes "You already have a job. Stop bothering me and go help out some newbies or something."; - emotion e_no1; + if (BaseJob == Job_Thief) { + mes "[Thief Guide]"; + mes "If you have a problem, feel free to speak to me anytime, alright?"; close; } - - if(job_thief_q==2) goto L_1; - if(job_thief_q==1) goto L_Back; - - if(Sex) { - mes "Heh... You look like a well to do boy... what brought you down to this rat hole?"; - }else{ - mes "Heh... You look like a well to do girl... what brought you down to this rat hole?"; - } - next; -M_Menu: - menu "'I didn't come here for the atmosphere.....",M_0,"Me? I'm just looking around...",M_End,"Just looking for the one truth",M_Truth; - - M_0: + else if (BaseJob != Job_Novice && BaseJob != Job_Thief) { mes "[Thief Guide]"; - mes "Hmph... you sound a little cocky.... Yah know, being a Thief isn't all it's cracked up to be...."; - mes "That reminds me.... I must have been at lvl 9 or 10 when I did my first robbery...."; - next; - mes "[Thief Guide]"; - mes "Hahahaha... I can still remember the look on that guy's face..."; - emotion e_heh; - next; - mes "[Thief Guide]"; - mes "But anyways... I assume you're here to become a thief..."; - next; - menu "You got it.",sM_0a, "Nope. Just wasting your time. ^ ^",sM_0b, "Why did you steal from that man?",sM_0c; - - sM_0a: - goto L_Test; - sM_0b: + mes "What the heck...?"; + switch(Class) { + case 1: + mes "Huh."; + mes "Now, that's"; + mes "a big sword."; + next; mes "[Thief Guide]"; - mes "Wow... thanks... now get the HELL OUTA HERE!!"; - emotion e_an; - close; - sM_0c: + mes "So..."; + mes "Trying to make"; + mes "up for something"; + mes "...Buddy?"; + break; + case 2: + mes "What's a Mage doin' here? Shouldn't you be doing card tricks elsewhere? Oh well, it's a free country..."; + next; + mes "[Thief Guide]"; + mes "Oh wait,"; + mes "it's not..."; + mes "Get outta here!"; + break; + case 3: + mes "Man, shouldn't you"; + mes "Archers be playing"; + mes "in the forest"; + mes "or something?"; + break; + case 4: + mes "You know we all steal for a living, right? What are you doing in this kinda place, Acolyte?"; + break; + case 5: + mes "You're a Merchant,"; + mes "right? Why are you"; + mes "walking into a den"; + mes "of Thieves?!"; + next; mes "[Thief Guide]"; - mes "Eh? Me?... Well... I really had no other choice at the time.... It was either I stole or I starved."; - mes "I really couldn't go hungry another day."; + mes "It's like you're begging"; + mes "us to steal from you!"; + mes "Come on, hurry and"; + mes "get outta here~"; + break; + case 8: + mes "Oh my God..."; + mes "Am I dying?"; + next; + mes "[Thief Guide]"; + mes "Why else would a Priest come here? I guess I better start confessing all of my misdeeds."; close; - - M_Truth: - mes "[Thief Guide]"; - mes "To see one's light, you need to be under the magic of the book where the royalty looms."; - close; - - M_End: + case 12: + mes "Didn't you use to be one of us?! Man, you changed. You seem real dangerous now..."; + close; + case 17: + mes "Man, you got real cool all of a sudden! You must have some skills I can only dream of!"; + close; + } + next; mes "[Thief Guide]"; - mes "Must you people keep wasting my time!!?"; - emotion e_pif; + mes "*Sigh* Look, there's really no need for you to be in this kind of place. You oughta go where you ought to go."; close; - - L_Test: - mes "[Thief Guide]"; - mes "Okay then; first, fill out this application form."; - next; - mes "^0000FF(You fill out the form and hand it back)^000000"; - next; - if(JobLevel < 10) goto sL_JobLvl; - + } + if (job_thief_q == 3 && countitem(1069) > 0 || countitem(1070) > 0) { mes "[Thief Guide]"; - mes "Alrighty ^FF0000"+ strcharinfo(0) + "^000000, if that IS your real name..... looks like you've got quite a 'record' here."; - mes "Let's see.... aggravated assualt... felony larson..... hmm...."; + mes "Hmmm?"; + mes "You gathered Mushrooms for"; + mes "the Thief test, right?"; next; mes "[Thief Guide]"; - mes "Ah, here we go...... you've got the job and skill requirements to become a Thief. Now all you've got to do is pass the ^FF0000Morroc Thief Test^000000."; - next; - - L_Explain: + mes "Here, talk to the other guy right next to me. He's the one in charge of checking your Mushrooms."; + close; + } + else if (job_thief_q == 3) { mes "[Thief Guide]"; - mes " The test will require you to ^FF0000'sneak'^000000 into ^FF0000'Shibu's Farm'^000000, and ^FF0000'borrow'^000000 some ^AAAA00'Mushrooms'^000000."; - mes " There are ^ff00002^000000 kinds of ^AAAA00Mushrooms^000000 on the farm, ^FFBB00Orange Net Mushrooms^000000 and ^FFBB00Orange Gooey Mushrooms^000000."; + mes "So how was the"; + mes "Mushroom Farm?"; + mes "Have any fun?"; next; + if (select("Yeah, kinda Cool.:It was horrible.") == 1) { + mes "[Thief Guide]"; + mes "Heh heh! That's a good attitude. In our line of work, you gotta enjoy getting your hands dirty, one way or another."; + close; + } mes "[Thief Guide]"; - mes "'Shibu just happens to be the worst merchant scammer in Morroc, in case you're wondering why he's our target."; - next; + mes "Yeah? I've been there too, so I can see why that place isn't everyone's cup of tea. Still, being a Thief isn't all glamour and trendy night life."; + close; + } + if (job_thief_q == 2) { mes "[Thief Guide]"; - mes " Bring the Mushrooms back here and someone will give you a score based on the type and the amount of mushrooms you get."; - mes " 1 Orange Net Mushroom = ^0000FF3 points^000000 while 1 Orange Gooey Mushroom = ^0000FF1 point^000000. You need ^FF000025^000000 points to pass the test."; + mes "Hey, whaddya doin' here? Aren't you supposed to be gathering Mushrooms? Or did you need it explained to you again?"; next; + if (select("Yes.:No, that's okay.") == 1) { + mes "[Thief Guide]"; + mes "*Sigh* Well, there's always one in the bunch. Alright, listen carefully."; + next; + mes "[Thief Guide]"; + mes "Alright, for your test, you gotta steal Mushrooms from a farm. Don't worry, the guy who owns the farm deserves to be robbed."; + next; + mes "[Thief Guide]"; + mes "Anyway, you gotta gather two kinds of Mushrooms: ^0000FFOrange Net Mushrooms^000000 and ^0000FFOrange Gooey Mushrooms^000000."; + next; + mes "[Thief Guide]"; + mes "Be careful, since there are monsters are the farm that are there to protect the Mushrooms. So this will be no walk in the park."; + next; + mes "[Thief Guide]"; + mes "When you come back here after gathering Mushrooms, you'll be graded on the Mushrooms you've collected."; + next; + mes "[Thief Guide]"; + mes "Each Orange Net Mushroom gets you 3 points, and you get 1 point for each Orange Gooey Mushroom. You need a total of 25 points to pass the test."; + next; + mes "[Thief Guide]"; + mes "Go outside and keep going ahead toward the Eastern Field of the Pyramids. Then you will see one of our comrades between two columns."; + next; + mes "[Thief Guide]"; + mes "Speak to that guy, and he'll take you to the farm through the backdoor."; + next; + mes "[Thief Guide]"; + mes "On that field, I think his coordinates are '^FF0000141, 125^000000.' Just type ^3355FF/where^000000 in the right side of your chat box to check your present coordinates."; + close; + } mes "[Thief Guide]"; - mes " In order to get into Shibu's Farm you'll need to talk to one of our 'associates'. You can find him just ouside of this pyramid standing near some columns."; - mes " He goes by the name ^DDCC00'Irrelevant Man'^000000."; - next; + mes "Huh. For a second there, I thought you had something really important to tell me."; + close; + } + mes "[Thief Guide]"; + if (job_thief_q == 0) { + mes "What brings you down"; + mes "here to this rathole?"; + } + else { + mes "Ah..."; + mes "You came back."; + mes "Are you sure you're"; + mes "ready to try again?"; + } + next; + if (select("Hey, I came here to be a Thief!:Nah, I'm just looking around.") == 1) { + if (job_thief_q == 0) { + mes "[Thief Guide]"; + mes "Heh, I like your confidence. Still, you know being a Thief isn't all what it's cracked up to be."; + next; + mes "[Thief Guide]"; + mes "Still..."; + mes "Do you really"; + mes "want to be"; + mes "a Thief?"; + next; + switch(select("Yeah.:No, just wasting your time.:Why did you become a Thief?")) { + case 1: + mes "[Thief Guide]"; + mes "Really..."; + break; + case 2: + mes "[Thief Guide]"; + mes "Yeah..."; + mes "I can see that."; + break; + case 3: + mes "[Thief Guide]"; + mes "Me...?"; + mes "I had no choice at the time. It was either steal or starve. But it's not like I need to give you my life story."; + break; + } + next; + mes "[Thief Guide]"; + mes "So do you want to"; + mes "apply to become"; + mes "a Thief or not?"; + next; + switch(select("Yes, I will.:I'm too scared to be a Thief!")) { + case 1: + mes "[Thief Guide]"; + mes "Alright, tell"; + mes "me your name."; + next; + mes "[Thief Guide]"; + mes "" + strcharinfo(0) + "?"; + mes "What kind of name is " + strcharinfo(0) + "? Anyway, give me a second."; + set job_thief_q,1; + next; + mes "[Thief Guide]"; + mes "Alright, your registration has been processed. Okay, you can begin your test if you're ready."; + next; + switch(select("Yeah, I'm ready.:No, I'm not ready yet.")) { + case 1: + break; + case 2: + mes "[Thief Guide]"; + mes "Not ready?"; + mes "How can you"; + mes "not be ready?!"; + close; + } + break; + case 2: + mes "[Thief Guide]"; + mes "Too scared?!?"; + mes "Hahahahahahah!"; + mes "Oh, please...!"; + mes "That's hilarious!"; + close; + } + } + else { + mes "[Thief Guide]"; + mes "Okay..."; + mes "Give me"; + mes "one second."; + next; + } mes "[Thief Guide]"; - mes " Here are his exact coordinates just in case you are 'directionaly challenged': '^FF0000141, 125^000000'."; - mes " Find him and he'll show you a secrect way into the Farm."; + mes "Your name is..."; + mes strcharinfo(0) + "? Um, where is it? Ah, here it is. Let's see..."; next; mes "[Thief Guide]"; - mes " This sounds easy but ^009900do know, there are Monsters who guard Mushrooms^000000?"; - mes " Stop reading Fairy Tales and ^FF0000brace up your nerves; this will be the toughest experience ever^000000."; + if (getskilllv(1) < 9) { + mes "Isn't that cute? I can see you're ambitious, but you gotta learn all of the Basic Skills before you can become a Thief."; + close; + } + mes "Alright. I looked at your Felony Record, and you seem to have a very interesting history. You might have what it takes to be a Thief."; next; mes "[Thief Guide]"; - mes " So, I will give you one tip. ^FF0000Elaborate the Strategy^000000 before you going inside the Farm."; + mes "Because I feel like it, I now decree that you have passed this interview. Good work!"; + set job_thief_q,2; next; mes "[Thief Guide]"; - mes " Try to steal the mushrooms as quickly as you can. You may even have to ^0000FFunequip some weapons or armor to attack faster^000000."; - mes " Try not to get killed while doing this... at the very least try to give me the mushrooms first.... then you can go get yourself killed... HA!"; + mes "Now, your actual abilities will need to be tested. Do you know anything about the test?"; next; - mes "[Thief Guide]"; - mes " If you don't have any questions... then GET moving!"; - emotion e_go; - set job_thief_q,1; - close; - - sL_JobLvl: + switch(select("Yes, I do.:Sorry, I don't.")) { + case 1: mes "[Thief Guide]"; - mes "Err... I can see how ambitious you are, but we can't hand a gun to a baby only for that. Come back when you learn all Basic Skills."; - close; - - L_Back: - if(countitem(1069)>0 || countitem(1070)>0) goto sL_1;//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_, - - mes "..... What are you doing here? You're supposed to be gathering mushrooms remember??"; - mes "Don't tell me you forget what to do??? Jeeze... do you want me to explain it to you one more time?......"; - emotion e_hmm; + mes "Oh yeah? Well, this makes things a lot easier."; + break; + case 2: + mes "[Thief Guide]"; + mes "Alright, let me inform you then. Listen carefully. This test decides if you are worthy of becoming a Thief."; next; - menu "Heh.. yeah I guess..",sM_1a, "Nope.",sM_1b; - - sM_1a: - mes "[Thief Guide]"; - mes "(~sigh~) There's always someone who gets left behind.... This is the last time so listen CAREFULLY!!...."; - emotion e_pif; - next; - goto L_Explain; - sM_1b: - mes "[Thief Guide]"; - mes ".... Then what is it??? Do you have something to tell me? YOUR the one who came TO ME..."; - mes "What... you wanna a piece of me?? HUH!!??"; - emotion e_ag; - close; - - sL_1: - mes "What? You actually went and stole some mushrooms?? Are you some kinda idiot?"; - mes "Haha... I can't believe you listened to me..... "; - emotion e_what; + mes "[Thief Guide]"; + mes "You will be sneaking to Shibu's Farm. He is the worst Merchant, in terms of character, in Morroc."; next; mes "[Thief Guide]"; - mes ".... Psych!! Just kidding... heheheh! Speak with the guy next to me about rating the mushrooms you swiped."; - emotion e_heh; - close; - - L_1: - mes "So how was the Mushroom Farm? Did yah have much fun?"; - next; - menu "Yeah, kinda Cool.",M_Cool,"It was horrible.",M_Not; - - M_Cool: + mes "Alright, for your test, you gotta steal Mushrooms from his farm. Don't worry, that guy deserves to be robbed."; + next; mes "[Thief Guide]"; - mes " Wow! I like you! Fabulous! Everyone before you was #&$@ bloody As#$%^&s#!"; + mes "Anyway, you gotta gather two kinds of Mushrooms: ^0000FFOrange Net Mushrooms^000000 and ^0000FFOrange Gooey Mushrooms^000000."; next; mes "[Thief Guide]"; - mes "...... You won't take my place, will you? If you have any ambition like that, I'll ^ff0000DESTROY YOU^000000!"; - // mes "...... You won't take my place, will you? If you have any ambition like that, I will kick your ^ff0000'ASS OUT OF YOUR BUTT'^000000!"; - // this is just too much lol. - // That line before was just too precious to delete. [KillerBox] - emotion e_gasp; + mes "Be careful, since there are monsters are the farm that are there to protect the Mushrooms. So this will be no walk in the park."; next; mes "[Thief Guide]"; - mes " Still, in order to pass the test you need to go get some mushrooms."; - close; - M_Not: + mes "When you come back here after gathering Mushrooms, you'll be graded on the Mushrooms you've collected."; + next; mes "[Thief Guide]"; - mes " I know what yah mean. I was there before and it was awful: all those smelly mushrooms and aggressive monsters."; + mes "Each Orange Net Mushroom gets you 3 points, and you get 1 point for each Orange Gooey Mushroom. You need a total of 25 points to pass the test."; next; mes "[Thief Guide]"; - mes " Eeewww! Yuuuckk! Still, in order to pass the test you need to go get some mushrooms."; - emotion e_wah; - close; -} - - -// -- Test Grader -- -moc_prydb1,42,133,2 script Comrade Brad 118,{ - callfunc "F_ToHigh",Job_Thief_High,"Thief High",Job_Assassin_Cross,"Brad"; - if(BaseJob == Job_Novice) goto L_Novice; - if(BaseJob == Job_Thief) goto L_Thief; - -L_Other: - mes "[Brad]"; - mes "Hey~ Hey~!! You don't look like a Thief. What the heck? You'd BETTER NOT be trying to start someting on THIEF TERRITORY!!"; - emotion e_omg; - close; -L_Thief: - mes "[Brad]"; - mes "We don't have any Special events for Thieves yet. Come back some other time, alright?"; - close; - -L_Novice: - mes "[Comrade Brad]"; - if((job_thief_q == 2) && ((countitem(1069) > 0) || (countitem(1070) > 0))) goto L_4;//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_, - if(job_thief_q >= 1) goto L_3; - - mes "Errr? What's matter newbie? If you want to be a thief, speak to the girl beside me."; - close; -L_3: - mes "Go get some mushrooms so that I can grade them ok."; + mes "Go outside and keep going ahead toward the Eastern Field of the Pyramids. Then you will see one of our comrades between two columns."; + next; + mes "[Thief Guide]"; + mes "Speak to that guy, and he'll take you to the farm through the backdoor."; + next; + mes "[Thief Guide]"; + mes "On that field, I think his coordinates are '^FF0000141, 125^000000.' Just type ^3355FF/where^000000 in the right side of your chat box to check your present coordinates."; + } + next; + mes "[Thief Guide]"; + mes "Don't forget to make plans and prepare yourself before you go inside the Mushroom Farm. Move as quickly as you can and try not to get killed, alright?"; + close; + } close; -L_4: - mes "Good. You got some mushrooms from that crooked merchant Shibu"; - next; - - set @mushrm1,countitem(1069)*3;//Items: Orange_Net_Mushroom, - set @mushrm2,countitem(1070);//Items: Orange_Gooey_Mushroom_, - set @TotMush,@mushrm1 + @mushrm2; - set @money_thief,((countitem(1069) * 5) + (countitem(1070)* 2)) + 200;//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_, - - mes "[Comrade Brad]"; - mes "Let's see you got:"; - mes "^0000ff"+countitem(1069)+"^000000 Orange Net Mushrooms for ^ffbb00"+@mushrm1+"^000000 points,";//Items: Orange_Net_Mushroom, - mes "^0000ff"+countitem(1070)+"^000000 Orange Gooey Mushrooms for ^ffbb00"+@mushrm2+"^000000 points,";//Items: Orange_Gooey_Mushroom_, - mes "Giving you a total score of ^ff0000"+@TotMush+"^000000."; - next; - if (@TotMush > 25) goto L_High; - if (@TotMush == 25) goto L_Medium; +} - mes "[Comrade Brad]"; - mes "Meh!.... looks like you failed. C'mon! You can do better than that! Go get some more mushrooms!!!"; +moc_prydb1,42,133,2 script Comrade 118,{ + if (BaseJob == Job_Thief) { + mes "[Brad]"; + mes "We don't have any special events yet. Come some other time when there's news, alright?"; close; - - L_Medium: - mes "[Comrade Brad]"; - mes "Good. You passed the Test."; + } + else if (BaseJob != Job_Novice && BaseJob != Job_Thief) { + mes "[Comrade]"; + mes "Um..."; + mes "You don't look"; + mes "like a Thief."; next; - goto L_Final; - - L_High: - mes "[Comrade Brad]"; - mes "Ooooh. Above 25, you will make an excellent thief."; + mes "[Comrade]"; + mes "What the heck are"; + mes "you doing here anyway?"; + close; + } + if (job_thief_q == 0 || job_thief_q == 1) { + mes "[Comrade]"; + mes "What's the matter? If you want to be a Thief, speak to the girl beside me."; + close; + } + else if (job_thief_q == 2) { + mes "[Comrade]"; + mes "Did you pass the interview?"; + mes "Then what are you waiting for?"; + close; + } + else if (job_thief_q == 3) { + mes "[Comrade]"; + mes "Ah, the guide told me about you. So, let me check your mushrooms..."; + if (countitem(1069) == 0 && countitem(1070) == 0) { + next; + mes "[Comrade]"; + mes "What the hell..."; + mes "You don't have any Mushrooms at all! Go back and get them. Otherwise, you won't pass the test and become a Thief!"; + close; + } next; - L_Final: - mes "[Comrade Brad]"; - mes "Congratulations ^ff0000"+strcharinfo(0)+"^000000, you passed the official Thief Test! You can now become a Thief!!"; - emotion e_no1; + set .@thief_item1,countitem(1069) * 3; + set .@thief_item2,countitem(1070); + set .@total_thief,.@thief_item1 + .@thief_item2; + set .@money_thief,((.@thief_item1 * 5) + (.@thief_item2 * 2)) + 200; + mes "[Comrade]"; + if (countitem(1069) != 0) { + mes "First, let me check the Orange Net Mushrooms you got."; + mes "Huh, " + countitem(1069) + " of them."; + } + if (countitem(1070) != 0) + mes "Now I'll just check your Orange Gooey Mushrooms. That's " + countitem(1070) + " you gathered."; next; - if(SkillPoint > 0) goto sL_SkPoint; - delitem 1069, countitem(1069);//Items: Orange_Net_Mushroom, - delitem 1070, countitem(1070);//Items: Orange_Gooey_Mushroom_, - + mes "[Comrade]"; + mes "So that would"; + mes "bring your total to..."; + next; + mes "[Comrade]"; + mes "Hmmm. " + .@total_thief + " degrees, multiplied by the speed of light, divided by the integral of pi times height plus the absolute value of politics..."; + next; + mes "[Comrade]"; + mes "Okay!"; + mes "I got it."; + next; + mes "[Comrade]"; + if (.@total_thief > 25) { + mes "You got more"; + mes "than 25 points!"; + mes "Awesome!"; + } + else if (.@total_thief == 25) { + mes "Exactly 25 points!"; + mes "You did it! Badass!"; + } + else { + mes "Definitely less than the 25 points you need to pass. Go out there and get me more Mushrooms!"; + close; + } + next; + mes "[Comrade]"; + mes strcharinfo(0) + "..."; + mes "You have passed the official Thief Test. You are now one of us."; + if (countitem(1069) != 0) delitem 1069,countitem(1069); //Mushroom_Of_Thief_1 + if (countitem(1070) != 0) delitem 1070,countitem(1070); //Mushroom_Of_Thief_2 callfunc "Job_Change",Job_Thief; - callfunc "F_ClearJobVar"; // clears all job variables for the current player - - mes "[Comrade Brad]"; - mes "Here's a small reward for your hard work. Spend it any way you want to."; + callfunc "F_ClearJobVar"; next; - set Zeny,Zeny+@money_thief; - mes "[Comrade Brad]"; - mes "From now on you must act, think, and even smell like a Thief."; - mes "You are one of us now, which means you have the trust and freindship of Thieves all over Rune Midgard"; + mes "[Comrade]"; + mes "Congratulations on becoming a Thief! From now, be an honorable representative of the Thief's Guild."; next; - mes "[Comrade Brad]"; - mes "However, If you bring disgrace to our Guild, or ever betray us, we will not hesitate to have you......"; - mes "How shall I say, ^ff0000'REMOVED'^000000 from the Thief Guild."; - emotion e_gg; + mes "[Comrade]"; + mes "If you bring disgrace to our guild, you will be killed. I expect you to bring our comrades pride."; next; - mes "[Comrade Brad]"; - mes "Good luck and always remeber the ^0000cc'Thief Motto'^000000: ^ff0000DON'T Get Caught^000000l!"; + mes "[Brad]"; + mes "*Ahem* Welcome to the Guild, comrade! I'm Brad, and I'm in charge of human resources here."; + next; + mes "[Brad]"; + mes "Here is a small subsidy for a Newbie like you. Spend it whereever you want. Alright then, I'll see you around~"; + set zeny,zeny+.@money_thief; close; - - sL_SkPoint: - mes "[Comrade Brad]"; - mes "But before that happens please use up all of your skill points, okay?"; - close; - + } } - -// -- Irrelevant Man -- -moc_ruins,141,125,3 script Irrelevant Man 118,{ - if(BaseJob == Job_Thief) goto L_Thief; - if(BaseJob == Job_Novice) goto L_Novice; - -L_Other: - if(@s_flag==1) goto L_1b; - if(@s_flag==2) goto L_1c; - if(@s_flag==3) goto L_1d; - if(@s_flag==4) goto L_1e; - set @s_flag, 0; - - L_1a: - mes "[Irrelevant Man]"; - mes "Howdy~ Howdy. What a Wonderful day today,isn't it?"; - mes "I feel like going on a 'Picnic' in the Pyramids with a couple freinds of mine today."; - set @s_flag, @s_flag+1; - close; - L_1b: - mes "[Irrelevant Man]"; - mes "'Lalalala, Home sweet Home.'"; - mes "I like this saying. Home Sweet Home...."; - set @s_flag, @s_flag+1; - close; - L_1c: - mes "[Irrelevant Man]"; - mes "...... I could fly if I fell off............ "; - set @s_flag, @s_flag+1; - close; - L_1d: - mes "[Irrelevant Man]"; - mes ".......Hmm?....."; +moc_ruins,141,125,3 script Mr. Irrelevant 83,{ + if (BaseJob == Job_Thief) { + mes "[Mr. Irrelevant]"; + mes "Ah, I see that you are now a Thief. I always knew you'd join us."; next; - mes "[Irrelevent Man]"; - mes "Hey!! DON'T LOOK AT ME like that! I'M NOT some WACKO okay!!!"; - set @s_flag, @s_flag+1; - emotion e_an; + mes "[Mr. Irrelevant]"; + mes "Stealing from a Mushroom farm is too easy for you now. You should build up your skills and master our craft."; close; - L_1e: - mes "[Irrelevant Man]"; - mes "Dude! I got nothin to say with you! Mind your own business! Sheesh!!"; - emotion e_pif; + } + else if (BaseJob != Job_Novice && BaseJob != Job_Thief) { + mes "[Mr. Irrelevant]"; + switch(rand(4)) { + case 1: + mes "I could use a good, hard drink."; + close; + case 2: + mes "Gimme your money."; + next; + mes "[Mr. Irrelevant]"; + mes "Kidding, I'm off the clock."; + close; + case 3: + mes "WHO YOU CALLING A PSYCHO?!?!"; + close; + case 4: + mes "I've got nothing to say to you. Would you mind leaving me alone?"; + close; + default: + mes "Today looks like a good day to go to the pyramids and hunt with some of my friends."; + close; + } + } + if (job_thief_q == 3) { + mes "[Mr. Irrelevant]"; + mes "Hahahahaha~!"; + mes "You haven't"; + mes "passed the test yet?"; + mes "Alright, I'll let you in..."; + close2; + switch(rand(5)) { + case 1: warp "job_thief1",228,106; end; + case 2: warp "job_thief1",38,50; end; + case 3: warp "job_thief1",66,331; end; + case 4: warp "job_thief1",196,331; end; + default: warp "job_thief1",309,234; end; + } + } + else if (job_thief_q == 2) { + mes "[Mr. Irrelevant]"; + mes "Hmm..."; + mes "You've come to take the test, right? I can see in your eyes that you know something."; + next; + mes "[Mr. Irrelevant]"; + mes "Your name is " + strcharinfo(0) + "? Ah, it's on the list. Alright, I'll let you into the Mushroom Farm , but I can't guarantee your safety..."; + close2; + set job_thief_q,3; + switch(rand(5)) { + case 1: warp "job_thief1",228,106; end; + case 2: warp "job_thief1",38,50; end; + case 3: warp "job_thief1",66,331; end; + case 4: warp "job_thief1",196,331; end; + default: warp "job_thief1",309,234; end; + } + } + else if (job_thief_q == 1) { + mes "[Mr. Irrelevant]"; + mes "There is this strange smell coming from... You. Now why would that be?"; close; - -L_Thief: - mes "[Irrelevant Man]"; - mes "Yah Hoo! Look at you! You became a Kool Thief!"; - emotion e_no1; - next; - mes "[Irrelevant Man]"; - mes "Don't worry about Shibu's Farm. Let the newbies handle that. Why don't yah go out and kill some stronger monsters?"; - close; - -L_Novice: - if(job_thief_q==2) goto L_3; - if(job_thief_q==1) goto L_2; - mes "[Irrelevant Man]"; - mes "Hey!! Novice! Want to be Stronger and more Powerful!? Do you like hiding and sneeking around?"; - mes "If so, Join the Thief Guild! You are always welcome! Join now!"; + } + mes "[Mr. Irrelevant]"; + mes "Hey Novice! Why don't you join the ranks of the Thief Guild? You newbies are always welcome to join us and our selfish cause."; next; - mes "[Irrelevant Man]"; - mes "You can get more information in the 1st floor basement of the Pyramid!"; + mes "[Mr. Irrelevant]"; + mes "You can get more information in the Underground Room in the Pyramid 1 BF."; close; -L_2: - mes "[Irrelevant Man]"; - mes "Pssst......Pssst......hey you! You look like your gonna take the ^ff0000'Test'^000000. Am I right?"; - next; - mes "[Irrelevant Man]"; - mes "Lets see here.....(checks his list).... you're ^ff0000"+ strcharinfo(0) +"^000000 right? Good."; - next; - mes "[Irrelevant Man]"; - mes "Okay! I'm gonna show you the way in but keep quite. I can't guarantee your safety so watch your back."; - next; - - L_Warp: - set @TEMP,rand(5); - set job_thief_q,2; - if(@TEMP != 0) goto warpL03a; - warp "job_thief1",228,106; - close; - warpL03a: - if(@TEMP != 1) goto warpL03b; - warp "job_thief1",38,50; - close; - warpL03b: - if(@TEMP != 2) goto warpL03c; - warp "job_thief1",66,331; - close; - warpL03c: - if(@TEMP != 3) goto warpL03d; - warp "job_thief1",196,331; - close; - warpL03d: - warp "job_thief1",309,234; - close; - -L_3: - mes "[Irrelevant Man]"; - mes "Muhahahaha~~ WHAT???~~ You HAVEN'T PASSED the Test yet? Are you some sort of Idiot!! Kakakaka!!"; - emotion e_heh; - next; - mes "[Irrelevant Man]"; - mes "Just kidding..... NOT!!. Anywho I'll let yah back in!"; - next; - menu "Ready",M_Yes,"Not yet",M_No; - - M_Yes: - goto L_Warp; - - M_No: - mes "[Irrelevant Man]"; - mes "Okay, let me know when you are."; - close; - } -//============================================================================== +// Monsters +//============================================================ +job_thief1,0,0,0,0 monster Orange Mushroom 1182,180,0,0,0 +job_thief1,0,0,0,0 monster Fabre 1184,50,0,0,0 +job_thief1,0,0,0,0 monster Chonchon 1183,50,0,0,0 +job_thief1,0,0,0,0 monster Spore 1014,30,0,0,0 + +//============================================================ // mapflag -//============================================================================== +//============================================================ job_thief1 mapflag nomemo job_thief1 mapflag noteleport job_thief1 mapflag nosave SavePoint job_thief1 mapflag nopenalty job_thief1 mapflag nobranch -job_thief1 mapflag noexp diff --git a/npc/jobs/2-1a/AssassinCross.txt b/npc/jobs/2-1a/AssassinCross.txt index fc5340fed..efdddf103 100644 --- a/npc/jobs/2-1a/AssassinCross.txt +++ b/npc/jobs/2-1a/AssassinCross.txt @@ -15,7 +15,86 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== Assassin Cross ==- -valkyrie,44,58,6 script Assassin Cross 725,{ - callfunc "F_Rebirth",Job_Thief_High,"Thief High",Job_Assassin_Cross,"Assassin Cross"; +valkyrie,44,58,5 script Assassin Cross#Valkyrie 725,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Assassin Cross]"; + mes "Congratulations..."; + next; + mes "[Assassin Cross]"; + mes "..."; + next; + mes "[Assassin Cross]"; + mes "..."; + mes "......"; + next; + mes "[Assassin Cross]"; + mes "..."; + mes "......"; + mes "Honor to"; + mes "the warriors."; + close; + } + mes "[Assassin Cross]"; + mes "We are the warriors"; + mes "of the desert. Nobody"; + mes "looks down upon us."; + mes "Nobody..."; + close; + } + else if (ADVJOB == Job_Assassin_Cross && Class == Job_Thief_High && JobLevel > 39) { + mes "[Assassin Cross]"; + mes "The time has come."; + mes "The world needs you..."; + mes "More than ever."; + next; + mes "[Assassin Cross]"; + mes "I ask that you continue to live in the shadows, but as an even greater Assassin with a new appearance."; + next; + mes "[Assassin Cross]"; + mes "Will you become"; + mes "an Assassin Cross?"; + next; + if (select("No.:Yes.") == 1) { + mes "[Assassin Cross]"; + mes "When you are"; + mes "ready, come back."; + next; + mes "[Assassin Cross]"; + mes "Honor to"; + mes "the warriors."; + close; + } + if (SkillPoint) { + mes "[Assassin Cross]"; + mes "You still haven't"; + mes "learned everything"; + mes "that you can."; + next; + mes "[Assassin Cross]"; + mes "Use all your"; + mes "Skill Points"; + mes "and then come back."; + close; + } + jobchange Job_Assassin_Cross; + set ADVJOB,0; + mes "[Assassin Cross]"; + mes "Congratulations."; + mes "As an Assassin Cross,"; + mes "I hope that you fight for a brighter future within the darkness."; + close; + } + mes "[Assassin Cross]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Assassin Cross]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors."; + close; } diff --git a/npc/jobs/2-1a/HighPriest.txt b/npc/jobs/2-1a/HighPriest.txt index 448ac1fdc..4460a2c0f 100644 --- a/npc/jobs/2-1a/HighPriest.txt +++ b/npc/jobs/2-1a/HighPriest.txt @@ -15,7 +15,68 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== High Priest ==- -valkyrie,44,42,6 script High Priest 60,{ - callfunc "F_Rebirth",Job_Acolyte_High,"Acolyte High",Job_High_Priest,"High Priest"; +valkyrie,44,42,5 script High Priest#Valkyrie 60,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[High Priest]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[High Priest]"; + mes "Through the power"; + mes "of holiness, may we"; + mes "find peace, strength"; + mes "and protection. Deliver"; + mes "us from the forces of evil..."; + close; + } + else if (ADVJOB == Job_High_Priest && Class == Job_Acolyte_High && JobLevel > 39) { + mes "[High Priest]"; + mes "Our world is in"; + mes "need of people of"; + mes "talent and conviction."; + mes "Please continue your"; + mes "good works as an even"; + mes "greater hero of holiness..."; + next; + mes "[High Priest]"; + mes "Would you like"; + mes "to become a High Priest?"; + next; + if (select("No.:Yes.") == 1) { + mes "[High Priest]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[High Priest]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_High_Priest; + set ADVJOB,0; + mes "[High Priest]"; + mes "Congratulations."; + mes "As a High Priest,"; + mes "I hope you will guide"; + mes "others upon the path"; + mes "to holiness..."; + close; + } + mes "[High Priest]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[High Priest]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } diff --git a/npc/jobs/2-1a/HighWizard.txt b/npc/jobs/2-1a/HighWizard.txt index 1189c4891..1977999c3 100644 --- a/npc/jobs/2-1a/HighWizard.txt +++ b/npc/jobs/2-1a/HighWizard.txt @@ -15,7 +15,72 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== High Wizard ==- -valkyrie,44,47,6 script High Wizard 735,{ - callfunc "F_Rebirth",Job_Mage_High,"High Mage",Job_High_Wizard,"High Wizard"; +valkyrie,44,47,5 script High Wizard#Valkyrie 735,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[High Wizard]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[High Wizard]"; + mes "We High Wizards have"; + mes "the responsibility of"; + mes "using our destructive magic"; + mes "for the right purposes."; + next; + mes "[High Wizard]"; + mes "A lifetime of training"; + mes "is required before becoming"; + mes "a High Wizard. Can you imagine"; + mes "what would happen if our power"; + mes "was placed in the wrong hands?!"; + close; + } + else if (ADVJOB == Job_High_Wizard && Class == Job_Mage_High && JobLevel > 39) { + mes "[High Wizard]"; + mes "It is time."; + mes "And Rune-Midgard has"; + mes "need of those who can"; + mes "wield the strongest of magic..."; + next; + mes "[High Wizard]"; + mes "Would you like to"; + mes "become a High Wizard?"; + next; + if (select("No.:Yes.") == 1) { + mes "[High Wizard]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honors to the warriors!"; + close; + } + if (SkillPoint) { + mes "[High Wizard]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_high_Wizard; + set ADVJOB,0; + mes "[High Wizard]"; + mes "Congratulations."; + mes "As a High Wizard,"; + mes "I hope use you use"; + mes "your powers to bring"; + mes "peace to the oppressed."; + close; + } + mes "[High Wizard]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[High Wizard]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } diff --git a/npc/jobs/2-1a/LordKnight.txt b/npc/jobs/2-1a/LordKnight.txt index 02cd31ed1..37542da57 100644 --- a/npc/jobs/2-1a/LordKnight.txt +++ b/npc/jobs/2-1a/LordKnight.txt @@ -15,7 +15,70 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== Lord Knight ==- -valkyrie,44,39,6 script Lord Knight 56,{ - callfunc "F_Rebirth",Job_Swordman_High,"Swordman High",Job_Lord_Knight,"Lord Knight"; +valkyrie,44,39,5 script Lord Knight#Valkyrie 56,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Lord Knight]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[Lord Knight]"; + mes "We Knights have an"; + mes "awesome responsibility..."; + mes "To serve and protect."; + next; + mes "[Lord Knight]"; + mes "Even at the cost"; + mes "of our own lives,"; + mes "we must safeguard the"; + mes "well being of our comrades."; + close; + } + else if (ADVJOB == Job_Lord_Knight && Class == Job_Swordman_High && JobLevel > 39) { + mes "[Lord Knight]"; + mes "Your time has come!"; + mes "The world still needs you."; + mes "Please continue your life"; + mes "as a hero with a new appearance."; + next; + mes "[Lord Knight]"; + mes "Would you like"; + mes "to become a Lord Knight?"; + next; + if (select("No.:Yes.") == 1) { + mes "[Lord Knight]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[Lord Knight]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_Lord_Knight; + set ADVJOB,0; + mes "[Lord Knight]"; + mes "Congratulations!"; + mes "As a Lord Knight,"; + mes "I hope that you will be"; + mes "at the forefront of battle,"; + mes "and lead your allies to victory!"; + close; + } + mes "[Lord Knight]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Lord Knight]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } diff --git a/npc/jobs/2-1a/Sniper.txt b/npc/jobs/2-1a/Sniper.txt index e99885cbb..96e579294 100644 --- a/npc/jobs/2-1a/Sniper.txt +++ b/npc/jobs/2-1a/Sniper.txt @@ -15,7 +15,69 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== Sniper ==- -valkyrie,44,55,6 script Sniper 727,{ - callfunc "F_Rebirth",Job_Archer_High,"High Archer",Job_Sniper,"Sniper"; +valkyrie,44,55,5 script Sniper#Valkyrie 727,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Sniper]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[Sniper]"; + mes "One shot."; + mes "One kill."; + mes "It's not so hard"; + mes "once you develop the"; + mes "vision for that style"; + mes "of battling."; + close; + } + else if (ADVJOB == Job_Sniper && Class == Job_Archer_High && JobLevel > 39) { + mes "[Sniper]"; + mes "The world is in"; + mes "need of mighty Bowmen"; + mes "like you. Are you ready for"; + mes "the awesome responsibility?"; + next; + mes "[Sniper]"; + mes "Are you willing to"; + mes "take the next step and"; + mes "become a Sniper?"; + next; + if (select("No.:Yes.") == 1) { + mes "[Sniper]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[Sniper]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_Sniper; + set ADVJOB,0; + mes "[Sniper]"; + mes "Congratulations!"; + mes "As a Sniper, I hope"; + mes "that the minions of evil"; + mes "will never be safe so"; + mes "long as they are in"; + mes "your sight!"; + close; + } + mes "[Sniper]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Sniper]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } diff --git a/npc/jobs/2-1a/WhiteSmith.txt b/npc/jobs/2-1a/WhiteSmith.txt index 233e9e5b6..ef01673c2 100644 --- a/npc/jobs/2-1a/WhiteSmith.txt +++ b/npc/jobs/2-1a/WhiteSmith.txt @@ -15,7 +15,74 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== White Smith ==- -valkyrie,44,51,6 script White Smith 726,{ - callfunc "F_Rebirth",Job_Merchant_High,"Merchant High",Job_Whitesmith,"White Smith"; +valkyrie,44,50,5 script MasterSmith#Valkyrie 731,{ + if (ADVO == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[MasterSmith]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[MasterSmith]"; + mes "Ah..."; + mes "The pinnacle"; + mes "of craftsmanship."; + mes "That's the work of"; + mes "a MasterSmith."; + next; + mes "[MasterSmith]"; + mes "Once you're the"; + mes "the best of the best,"; + mes "you begin forging with"; + mes "the goal of discovering"; + mes "new and better ways of"; + mes "crafting..."; + close; + } + else if (ADVJOB == Job_WhiteSmith && Class == Job_Merchant_High && JobLevel > 39) { + mes "[MasterSmith]"; + mes "The time has come!"; + mes "Our world needs brave,"; + mes "hard-working adventurers"; + mes "like you..."; + next; + mes "[MasterSmith]"; + mes "Would you like to"; + mes "become a MasterSmith?"; + next; + if (select("No.:Yes.") == 1) { + mes "[MasterSmith]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[MasterSmith]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_Whitesmith; + set ADVJOB,0; + mes "[MasterSmith]"; + mes "Congratulations!"; + mes "As a MasterSmith,"; + mes "I hope you will forge"; + mes "a path towards a brighter"; + mes "future for Rune-Midgard."; + close; + } + mes "[MasterSmith]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[MasterSmith]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } diff --git a/npc/jobs/2-2a/Champion.txt b/npc/jobs/2-2a/Champion.txt index b11b2f53f..7e7ec6373 100644 --- a/npc/jobs/2-2a/Champion.txt +++ b/npc/jobs/2-2a/Champion.txt @@ -15,7 +15,73 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== Champion ==- -valkyrie,53,42,4 script Champion 52,{ - callfunc "F_Rebirth",Job_Acolyte_High,"Acolyte High",Job_Champion,"Champion"; +valkyrie,53,42,3 script Champion#Valkyrie 52,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Champion]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[Champion]"; + mes "Skill."; + mes "Speed."; + mes "Strength."; + mes "Agility."; + next; + mes "[Champion]"; + mes "A Champion can"; + mes "benefit from all"; + mes "these things. But"; + mes "one can only master"; + mes "so much in life..."; + close; + } + else if (ADVJOB == Job_Champion && Class == Job_Acolyte_High && JobLevel > 39) { + mes "[Champion]"; + mes "It's time."; + mes "Time for great heroes"; + mes "to stand up against the"; + mes "forces of evil which plague"; + mes "the world of Rune-Midgard!"; + next; + mes "[Champion]"; + mes "Would you like"; + mes "to become a Champion?"; + next; + if (select("No.:Yes.") == 1) { + mes "[Champion]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[Champion]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_Champion; + set ADVJOB,0; + mes "[Champion]"; + mes "Congratulations!"; + mes "Live as a Champion,"; + mes "and bring light into"; + mes "the world through the"; + mes "strength of your fists."; + close; + } + mes "[Champion]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Champion]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } diff --git a/npc/jobs/2-2a/Clown.txt b/npc/jobs/2-2a/Clown.txt index f92c92244..f0274ef29 100644 --- a/npc/jobs/2-2a/Clown.txt +++ b/npc/jobs/2-2a/Clown.txt @@ -15,7 +15,67 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== Clown ==- -valkyrie,53,54,4 script Clown 741,{ - callfunc "F_Rebirth",Job_Archer_High,"High Archer",Job_Clown,"Clown"; +valkyrie,53,54,3 script Minstrel#Valkyrie 741,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Minstrel]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[Minstrel]"; + mes "Do you want to"; + mes "sing a song with me?"; + mes "Sha la la la la~"; + close; + } + else if (ADVJOB == Job_Clown && Class == Job_Archer_Hight && JobLevel > 39) { + mes "[Minstrel]"; + mes "The dreary world"; + mes "of mortals is in need"; + mes "of more cheerful song."; + mes "Will you bring it to them"; + mes "and turn the tide in the"; + mes "battle against evil?"; + next; + mes "[Minstrel]"; + mes "Will you do this"; + mes "for Rune-Midgard..."; + mes "As a Minstrel?"; + next; + if (select("No.:Yes.") == 1) { + mes "[Minstrel]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[Minstrel]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_Clown; + set ADVJOB,0; + mes "[Minstrel]"; + mes "Congratulations!"; + mes "As a Minstrel, your"; + mes "your songs will bring"; + mes "hope to your allies, and"; + mes "desperation to your foes."; + close; + } + mes "[Minstrel]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Minstrel]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } diff --git a/npc/jobs/2-2a/Creator.txt b/npc/jobs/2-2a/Creator.txt index 135c896ac..07c462aa2 100644 --- a/npc/jobs/2-2a/Creator.txt +++ b/npc/jobs/2-2a/Creator.txt @@ -15,7 +15,122 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== Creator ==- -valkyrie,53,50,6 script Creator 122,{ - callfunc "F_Rebirth",Job_Merchant_High,"Merchant High",Job_Creator,"Creator"; +valkyrie,53,50,3 script Biochemist#Valkyrie 122,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Biochemist]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[Biochemist]"; + mes "It's strange that"; + mes "someone like me is here."; + mes "But even someone skilled"; + mes "in the ways of science"; + mes "can manage to be a hero."; + next; + mes "[Biochemist]"; + mes "In this instance,"; + mes "it's not necessarily"; + mes "the means I've used, but"; + mes "the ends for which I've"; + mes "fought that earned me"; + mes "a place in Valhalla..."; + close; + } + else if (ADVJOB == Job_Creator && Class == Job_Merchant_High && JobLevel > 39) { + mes "[Biochemist]"; + mes "Yes..."; + mes "It's about time."; + mes "We need more geniuses"; + mes "like you on Rune-Midgard."; + next; + mes "[Biochemist]"; + mes "Would you like to"; + mes "become a Biochemist?"; + next; + if (select("No.:Yes.") == 1) { + mes "[Biochemist]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[Biochemist]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_Creator; + set ADVJOB,0; + mes "[Biochemist]"; + mes "Congratulations!"; + mes "As a Biochemist,"; + mes "I hope you use your"; + mes "vast knowledge for the"; + mes "right purposes."; + close; + } + else { + if (Class == Job_Creator && MISC_QUEST & 64 && getskilllv(238) == 0) { + mes "[Biochemist]"; + mes "Ah, have you come to"; + mes "retrieve the memories"; + mes "lost to you? Yes, you"; + mes "must be here for the"; + mes "secrets of life that"; + mes "were once yours..."; + next; + if (select("Yes:No") == 1) { + mes "[Biochemist]"; + mes "Close your eyes and"; + mes "put your mind at rest."; + mes "We will return to your"; + mes "past to recollect the"; + mes "fragments of your lost"; + mes "memories."; + next; + mes "[Biochemist]"; + mes "When you open your eyes,"; + mes "you will clearly remember"; + mes "the secret of life. You will"; + mes "also remember the weight of"; + mes "responsibility in using these"; + mes "secrets for the right ends..."; + next; + skill 238,1,0; + mes "[Biochemist]"; + mes "Open your eyes..."; + mes "Now that you have"; + mes "remembered how to"; + mes "create artificial life, I only"; + mes "ask that you treat all of your"; + mes "creations with respect."; + close; + } + mes "[Biochemist]"; + mes "If you wish to"; + mes "retrieve your lost"; + mes "memories, please"; + mes "come back to me."; + mes "The secret to creating"; + mes "life is no trifling thing..."; + close; + } + mes "[Biochemist]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Biochemist]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; + } } + diff --git a/npc/jobs/2-2a/Gypsy.txt b/npc/jobs/2-2a/Gypsy.txt index 769845fac..016cdb447 100644 --- a/npc/jobs/2-2a/Gypsy.txt +++ b/npc/jobs/2-2a/Gypsy.txt @@ -15,7 +15,69 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== Gypsy ==- -valkyrie,53,56,4 script Gypsy 101,{ - callfunc "F_Rebirth",Job_Archer_High,"High Archer",Job_Gypsy,"Gypsy"; +valkyrie,53,56,3 script Gypsy#Valkyrie 101,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Gypsy]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[Gypsy]"; + mes "Move left,"; + mes "move right~!"; + mes "And step...!"; + mes "Dancing can be"; + mes "more than a hobby."; + mes "For me, it's a way of life~"; + close; + } + else if (ADVJOB == Job_Gypsy && Class == Job_Archer_High && JobLevel > 39) { + mes "[Gypsy]"; + mes "The land of Rune-Midgard"; + mes "is in need of talented women"; + mes "to subtly change the balances"; + mes "in the battle between good"; + mes "and evil."; + next; + mes "[Gypsy]"; + mes "Are you ready"; + mes "to take up this role,"; + mes "and become a Gypsy?"; + next; + if (select("No.:Yes.") == 1) { + mes "[Gypsy]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[Gypsy]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_Gypsy; + set ADVJOB,0; + mes "[Gypsy]"; + mes "Congratulations!"; + mes "As a Gypsy, I know"; + mes "that your performances"; + mes "sway the hearts of all"; + mes "those who will be watching..."; + close; + } + mes "[Gypsy]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Gypsy]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } diff --git a/npc/jobs/2-2a/Paladin.txt b/npc/jobs/2-2a/Paladin.txt index 429b535c4..abff9a7ef 100644 --- a/npc/jobs/2-2a/Paladin.txt +++ b/npc/jobs/2-2a/Paladin.txt @@ -15,7 +15,71 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== Paladin ==- -valkyrie,53,39,4 script Paladin 752,{ - callfunc "F_Rebirth",Job_Swordman_High,"Swordman High",Job_Paladin,"Paladin"; +valkyrie,53,39,3 script Paladin#Valkyrie 752,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Paladin]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[Paladin]"; + mes "Do not forget"; + mes "that the Holy War"; + mes "is fast approaching!"; + mes "We must ready ourselves!"; + mes "May the light of justice"; + mes "always brighten our path!"; + close; + } + else if (ADVJOB == Job_Paladin && Class == Job_Swordman_High && JobLevel > 39) { + mes "[Paladin]"; + mes "The Holy War will"; + mes "be upon us before we"; + mes "know it. More than ever,"; + mes "we have need of strong men"; + mes "and women to fight for what"; + mes "is good and right."; + next; + mes "[Paladin]"; + mes "Will you fight on"; + mes "the side of righteousness"; + mes "as a Paladin?"; + next; + if (select("No.:Yes.") == 1) { + mes "[Paladin]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[Paladin]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_Paladin; + set ADVJOB,0; + mes "[Paladin]"; + mes "Congratulations."; + mes "As a Paladin, I hope"; + mes "you will protect those"; + mes "weaker than you, and bring"; + mes "us victory in the upcoming"; + mes "war between good and evil."; + close; + } + mes "[Paladin]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Paladin]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } diff --git a/npc/jobs/2-2a/Professor.txt b/npc/jobs/2-2a/Professor.txt index b513044fd..6cb4eb27a 100644 --- a/npc/jobs/2-2a/Professor.txt +++ b/npc/jobs/2-2a/Professor.txt @@ -15,7 +15,79 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== Professor ==- -valkyrie,53,47,4 script Professor 743,{ - callfunc "F_Rebirth",Job_Mage_High,"High Mage",Job_Professor,"Professor"; +valkyrie,53,47,3 script Scholar#Valkyrie 743,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Scholar]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[Scholar]"; + mes "It takes a lifetime..."; + mes "Literally a lifetime"; + mes "to amass the knowledge"; + mes "necessary to become"; + mes "a Scholar..."; + next; + mes "[Scholar]"; + mes "It's overwhelming."; + mes "The more you learn, the"; + mes "more you discover what"; + mes "else you don't know."; + mes "There's no end to the"; + mes "process of learning..."; + close; + } + else if (ADVJOB == Job_Professer && Class == Job_Mage_High && JobLevel > 39) { + mes "[Scholar]"; + mes "Rune-Midgard doesn't"; + mes "have enough Scholars to"; + mes "help usher in a new age"; + mes "of prosperity. The"; + mes "world needs you..."; + next; + mes "[Scholar]"; + mes "Will you take this"; + mes "awesome responsibility?"; + mes "Will you serve Rune-Midgard"; + mes "as a Scholar?"; + next; + if (select("No.:Yes.") == 1) { + mes "[Scholar]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[Scholar]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_Professor; + set ADVJOB,0; + mes "[Scholar]"; + mes "Congratulations!"; + mes "As a Professor, I hope"; + mes "that you will take an"; + mes "active part in bringing"; + mes "the light of knowledge"; + mes "where there is darkness."; + close; + } + mes "[Scholar]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Scholar]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } + diff --git a/npc/jobs/2-2a/Stalker.txt b/npc/jobs/2-2a/Stalker.txt index cb347e817..861d54b2c 100644 --- a/npc/jobs/2-2a/Stalker.txt +++ b/npc/jobs/2-2a/Stalker.txt @@ -15,7 +15,79 @@ //= 1.3 Now saves/restores all the quest skills [Lupus] //============================================================ -// -== Stalker ==- -valkyrie,53,58,4 script Stalker 747,{ - callfunc "F_Rebirth",Job_Thief_High,"Thief High",Job_Stalker,"Stalker"; +valkyrie,53,58,3 script Stalker#Valkyrie 747,{ + if (ADVJOB == 0 || Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Stalker]"; + mes "Congratulations."; + mes "Honor to the warriors!"; + close; + } + mes "[Stalker]"; + mes "Heh..."; + mes "It's tough"; + mes "being a hero"; + mes "and being shady,"; + mes "untrustworthy,"; + mes "sneaky..."; + next; + mes "[Stalker]"; + mes "But when the"; + mes "going gets rough"; + mes "my pals know they"; + mes "can count on me."; + mes "I need them and"; + mes "they need me."; + close; + } + else if (ADVJOB == Job_Stalker && Class == Job_Thief_High && JobLevel > 39) { + mes "[Stalker]"; + mes "This world needs"; + mes "more heroes who are"; + mes "willing to walk the line"; + mes "between order and lawlessness."; + next; + mes "[Stalker]"; + mes "Are you ready"; + mes "to join the ranks"; + mes "of the sneakiest of"; + mes "warriors? Are you ready"; + mes "to become a Stalker?"; + next; + if (select("No.:Yes.") == 1) { + mes "[Stalker]"; + mes "When you're ready,"; + mes "feel free to come back."; + mes "Honor to the warriors!"; + close; + } + if (SkillPoint) { + mes "[Stalker]"; + mes "It is still possible for you to learn more skills. Please use"; + mes "all of your remaining Skill Points before returning to me."; + close; + } + jobchange Job_Stalker; + set ADVJOB,0; + mes "[Stalker]"; + mes "Congratulations!"; + mes "As a Stalker, I hope"; + mes "you stab the right people"; + mes "in the back. Banish the"; + mes "wicked using their own"; + mes "dastardly methods!"; + close; + } + mes "[Stalker]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Stalker]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; } diff --git a/npc/jobs/valkyrie.txt b/npc/jobs/valkyrie.txt new file mode 100644 index 000000000..ace481cf6 --- /dev/null +++ b/npc/jobs/valkyrie.txt @@ -0,0 +1,388 @@ +//===== eAthena Script ======================================= +//= Valkyrie Realm +//===== By: ================================================== +//= Nana, fixes by Poki +//= finished, optimized and tested by Lupus +//= L0ne_W0lf +//===== Current Version: ===================================== +//= 2.7 +//===== Compatible With: ===================================== +//= eAthena SVN +//===== Description: ========================================= +//= [Aegis Conversion] +//= Quest to become a Tranceded Class. (Advanced/Rebirthed) +//===== Additional Comments: ================================= +//= 1.1 Made all into functions,additional checks,quest skills,now Valhallana can return you back. She also makes reborn process only when you got no Zeny/items (as in kRO) [Lupus] +//= 1.2 now alternative classes can use their 1-1 job NPC to become Advanced 1st Class [Lupus] +//= 1.4 added Baby Class support [Lupus] +//= 1.5 Fixed loads of gramatical errors. [Mass Zero] +//= 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 On reborn reset some Job Quest Vars and Reset Girls Counter [Lupus] +//= 1.8 Added Taekwondo classes check [Lupus] +//= 1.9 Added support for Job NPC Fase pics, sorrected one dialogue stuff [Lupus] +//= 2.0 Removed callfunc Is_####_Class in favor of baseClass [Silentdragon] +//= 2.1 Changed all numbers into constants. [Vicious] +//= 2.2 Now ALL quests skills are saved/restored [Lupus] +//= 2.3 Removed Duplicates [Silent] +//= 2.4 Fixed typos, optimized [Lupus] +//= 2.5 Fixed a stuck bug [Lupus] +//= 2.6a Adding proper dialogues [Lupus] +//= 2.7 Rescripted to Aegis 10.3 standards. [L0ne_W0;f] +//= Removed all functions as they are no longer required. +//= Correct job level requirements for 1-1 -> 2-x. +//============================================================ + +valkyrie,48,86,4 script Valkyrie# 811,{ + if (ADVJOB != 0 || Upper == 1) { + mes "[Valkyrie]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Valkyrie]"; + mes "Please make"; + mes "yourself comfortable"; + mes "while you are here."; + mes "Honor to the warriors!"; + close; + } + else if (Baselevel > 98 && JobLevel > 49 && Class >= Job_Knight && Class <= Job_Crusader2) { + mes "[Valkyrie]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Valkyrie]"; + mes "You will now end"; + mes "your present life and"; + mes "begin an entirely new life."; + mes "Honor to the warriors!"; + next; + if (Weight > 0 || Zeny > 0 || checkcart() != 0 || checkfalcon() != 0 || checkriding() != 0) { + mes "[Valkyrie]"; + mes "There are a few things you must"; + mes "do before we start. You must"; + mes "first empty your mind and body."; + mes "Honor comes when you abandon"; + mes "all your selfish desires..."; + next; + mes "[Valkyrie]"; + mes "You cannot take anything with you to the next life. Your items, zeny, pets and Pushcart all have to be left behind."; + next; + mes "[Valkyrie]"; + mes "When you are ready"; + mes "please return to me,"; + mes "brave adventurer."; + close2; + warp "yuno_in02",93,205; + end; + } + else { + mes "[Valkyrie]"; + mes "I see you've already"; + mes "released yourself from"; + mes "all worldy attachments,"; + mes ""+ strcharinfo(0) +"."; + next; + mes "[Valkyrie]"; + mes "That's an admirable attitude for an adventurer such as yourself. Honor comes when you abandon all personal desires for the sake of mankind."; + next; + if (SkillPoint) { + mes "[Valkyrie]"; + mes "Hmm... I sense that you have"; + mes "some lingering attachment or"; + mes "unfinished business in your"; + mes "current life. Take care of that,"; + mes "and bring closure to your present life."; + close2; + warp "yuno_in02",93,205; + end; + } + mes "[Valkyrie]"; + mes "Now, let me remove all"; + mes "of your present memories..."; + mes "However, you will be able to"; + mes "remember the most honorable"; + mes "moments of this life."; + next; + mes "[Valkyrie]"; + mes "With one,"; + mes "I will ask the"; + mes "goddess Urd to remove"; + mes "all of your present"; + mes "memories."; + next; + mes "[Valkyrie]"; + mes "With two,"; + mes "I will ask the"; + mes "goddess Verdani to keep"; + mes "and record the most honorable moments of your present life."; + next; + mes "[Valkyrie]"; + mes "With three,"; + mes "I will ask the"; + mes "goddess Skuld to"; + mes "guide you to your"; + mes "next life."; + next; + mes "[Valkyrie]"; + mes "One..."; + callfunc "F_ClearJobVar"; + next; + mes "[Valkyrie]"; + mes "One..."; + mes "Two......"; + callfunc("F_SaveQuestSkills"); + next; + mes "[Valkyrie]"; + mes "One..."; + mes "Two......"; + mes "And Three."; + set ADVJOB, Class+Job_Novice_High; //memo the target 3rd Job ID + if(ADVJOB == Job_Lord_Knight2) set ADVJOB,Job_Lord_Knight; + if(ADVJOB == Job_Paladin2) set ADVJOB,Job_Paladin; + jobchange Job_Novice_High; + resetlvl(1); + set RES_SKILL,0; + skill 142,1,0; + skill 143,1,0; + next; + mes "[Valkyrie]"; + mes "Congratulations."; + mes "You are now reborn"; + mes "into a brand new life."; + mes "Please take these small gifts"; + mes "in preparation for your new adventures."; + getitem 1202,1; //Knife_ + getitem 2302,1; //Cotton_Shirt_ + next; + mes "[Valkyrie]"; + mes "I wish that the release the goddess Urd has granted you proves to be a blessing. I hope that the memories Verdandi has recorded will always honor you."; + next; + mes "[Valkyrie]"; + mes "And I pray that the new life to which the goddess Skuld will guide you will be even more honorable than your last."; + close2; + switch (ADVJOB) { + case 4001: + case 4007: + warp "izlude",94,103; break; + case 4002: + case 4008: + warp "prontera",273,354; break; + case 4003: + case 4009: + warp "geffen",120,60; break; + case 4004: + case 4010: + warp "alberta",116,57; break; + case 4005: + case 4012: + case 4013: + warp "payon",69,100; break; + case 4006: + case 4011: + warp "morocc",154,50; break; + default: + warp "yuno_in02",93,205; break; + } + end; + } + } + else { + mes "[Valkyrie]"; + mes "Welcome"; + mes "to Valhalla,"; + mes "the Hall of Honor."; + next; + mes "[Valkyrie]"; + mes "Unfortunately, you have not yet been invited here. I ask you to leave immediately. Honor to the warriors!"; + close2; + warp "yuno_in02",93,205; + end; + } +} + +yuno_in02,88,164,5 script Metheus Sylphe#Library 742,{ + if (Baselevel > 98 && JobLevel > 49 && Class >= Job_Knight && Class <= Job_Crusader2) { + if (valkyrie_Q == 0) { + mes "[Metheus Sylphe]"; + mes "Welcome to the Library of the Schweicherbil Magic Academy."; + mes "I assume you have come here"; + mes "to read the 'Book of Ymir.'"; + next; + mes "[Metheus Sylphe]"; + mes "Unfortunately, the original copy of the book has been damaged over time. We currently only allow the public to view a copy of the book."; + next; + mes "[Metheus Sylphe]"; + mes "Also, in order to preserve the original 'Book of Ymir,' we have decided to accept donations from people who wish to read the copy we have provided."; + next; + mes "[Metheus Sylphe]"; + mes "The suggested"; + mes "donation amount is"; + mes "1,285,000 zeny."; + next; + if (select("Donate.:Cancel.") == 1) { + if (Zeny > 1284449) { + set zeny,zeny-1285000; + set valkyrie_Q,1; + mes "[Metheus Sylphe]"; + mes "Thank you, your donation will be used for a good cause. You may"; + mes "now go in and read the book."; + close; + } + mes "[Metheus Sylphe]"; + mes "Unfortunately, you don't seem to possess enough zeny at the moment. Please check your funds and come back again."; + close; + } + mes "[Metheus Sylphe]"; + mes "Take your time, and"; + mes "enjoy your travels."; + close; + } + mes "[Metheus Sylphe]"; + mes "Once again, thank you for your generous donation. Feel free to read a carbon copy of the 'Book of Ymir' at your leisure."; + close; + } + mes "[Metheus Sylphe]"; + mes "Welcome to the Library of the Schweicherbil Magic Academy."; + mes "Here, we have a countless number of books. Please take your time and look around."; + close; +} + +yuno_in02,93,207,1 script Book of Ymir 111,{ + if (ADVJOB != 0 || Upper == 1) { + mes "[The Book of Ymir]"; + mes "...The entrance to the Hall of Honor is open to anyone who has moved forward into their next life. It is there to help heroes decide what they want to do, and can lead them to anywhere in this world."; + next; + mes "[The Book of Ymir]"; + mes "In the Hall of Honor, everything is prepared for heroes. It is rumored that any wish that cannot be fulfilled in our reality can be realized in the Hall of Honor."; + next; + if (select("Stop reading.:Continue reading.") == 1) { + mes "[The Book of Ymir]"; + mes "....."; + close; + } + mes "[The Book of Ymir]"; + mes "There is a forgotten path which leads to the Hall of Honor, the closest place to the heavens. The ordinary will never discover this place..."; + close2; + warp "valkyrie",48,8; + end; + } + else if (Baselevel > 98 && JobLevel > 49 && Class >= Job_Knight && Class <= Job_Crusader2) { + if (valkyrie_Q != 0) { + mes "[The Book of Ymir]"; + mes "...Therefore, ancient heroes were"; + mes "always in anguish, knowing that"; + mes "eventually, they were mortal and"; + mes "would pass from this realm..."; + next; + mes "[The Book of Ymir]"; + mes "There were no documents,"; + mes "songs, or remaining folklore that had any information on life after death. However, I recently uncovered an old scroll"; + mes "about Valkyrie..."; + next; + mes "[The Book of Ymir]"; + mes "Valkyrie..."; + mes "The legendary"; + mes "guardian angel."; + mes "Angel of Ragnarok."; + next; + mes "[The Book of Ymir]"; + mes "Adventurers of great strength"; + mes "and bravery will be lead by"; + mes "Valkyrie to Valhalla, the Hall"; + mes "of Honor. There, they will be"; + mes "given a new life."; + next; + mes "[The Book of Ymir]"; + mes "Reborn, they will live again as"; + mes "even greater heroes that will"; + mes "brighten the world. Bodies that"; + mes "were exhausted will be filled"; + mes "with energy..."; + next; + mes "[The Book of Ymir]"; + mes "And their souls will be given abilities with the heart of Ymir. However, the heart of Ymir was totally destroyed and scattered all over the world after the battle for Rune-Midgarts."; + next; + mes "[The Book of Ymir]"; + mes "I have found a small amount of"; + mes "Ymir heart pieces over a long"; + mes "long period of time. But I can't"; + mes "confirm if the story of Valkyrie"; + mes "and Valhalla is true just"; + mes "through scientific tests."; + next; + mes "[The Book of Ymir]"; + mes "So, I am leaving this record in hope that someone in the future"; + mes "can confirm that Valkyrie and Valhalla actually exist..."; + next; + set valkyrie_Q,2; + mes "[The book of Ymir]"; + mes "Let the heroes live new lives"; + mes "so they can protect the world"; + mes "from danger. And then..."; + close; + } + mes "[The Book of Ymir]"; + mes "..."; + close; + } + mes "[The Book of Ymir]"; + mes "..."; + close; +} + +yuno_in05,49,43,1 script Heart of Ymir 111,{ + if (Baselevel > 98 && JobLevel > 49 && Class >= Job_Knight && Class <= Job_Crusader2) { + if (valkyrie_Q == 2) warp "valkyrie",48,8; + } + end; +} + +valkyrie,44,33,5 script Teleporter 124,{ + if (Upper != 1) { + set .@karma_d,rand(1,10); + if (.@karma_d > 4) { + mes "[Teleporter]"; + mes "Congratulations."; + mes "Honors to the warriors!"; + close; + } + mes "[Teleporter]"; + mes "Please refrain"; + mes "from touching any"; + mes "of the exhibitions."; + mes ".........."; + close; + } + else { + mes "[Teleporter]"; + mes "Honorable one,"; + mes "which place do you wish to go?"; + next; + switch(select("Prontera:Morroc:Payon:Geffen:Alberta:Izlude:Al De Baran:Comodo:Juno")) { + case 1: callsub S_Warpchar,"prontera",116,72; + case 2: callsub S_Warpchar,"morocc",156,46; + case 3: callsub S_Warpchar,"payon",69,100; + case 4: callsub S_Warpchar,"geffen",120,39; + case 5: callsub S_Warpchar,"alberta",117,56; + case 6: callsub S_Warpchar,"izlude",94,103; + case 7: callsub S_Warpchar,"aldebaran",91,105; + case 8: callsub S_Warpchar,"comodo",209,143; + case 9: callsub S_Warpchar,"yuno",328,101; + } + } +S_WarpChar: + mes "[Teleporter]"; + mes "Have a nice trip."; + close2; + savepoint getarg(0),getarg(1),getarg(2); + warp getarg(0),getarg(1),getarg(2); + end; +} + +// Warps +//============================================================ +valkyrie,48,73,0 warp valk01 1,1,valkyrie,48,64 +valkyrie,48,66,0 warp valk01 1,1,valkyrie,48,75 + diff --git a/npc/scripts_athena.conf b/npc/scripts_athena.conf index dfc35f9c9..c7d4ecb30 100644 --- a/npc/scripts_athena.conf +++ b/npc/scripts_athena.conf @@ -34,7 +34,6 @@ npc: npc/cities/payon.txt npc: npc/cities/prontera.txt npc: npc/cities/rachel.txt npc: npc/cities/umbala.txt -npc: npc/cities/valkyrie.txt npc: npc/cities/yuno.txt // -------------------------------------------------------------- // -------------------------- Merchant -------------------------- diff --git a/npc/scripts_jobs.conf b/npc/scripts_jobs.conf index b8609590b..857cc1d56 100644 --- a/npc/scripts_jobs.conf +++ b/npc/scripts_jobs.conf @@ -42,14 +42,16 @@ npc: npc/jobs/2-2/crusader.txt npc: npc/jobs/2-2/monk.txt npc: npc/jobs/2-2/dancer.txt npc: npc/jobs/2-2/bard.txt -// -- 2-1A (Without Quest) +// -- Trancended Quest (2-x -> High Novice) +npc: npc/jobs/valkyrie.txt +// -- Trancended (2-1a) npc: npc/jobs/2-1a/AssassinCross.txt npc: npc/jobs/2-1a/LordKnight.txt npc: npc/jobs/2-1a/HighPriest.txt npc: npc/jobs/2-1a/HighWizard.txt npc: npc/jobs/2-1a/WhiteSmith.txt npc: npc/jobs/2-1a/Sniper.txt -// -- 2-2A (Without Quest) +// -- Trancended (2-2a) npc: npc/jobs/2-2a/Champion.txt npc: npc/jobs/2-2a/Clown.txt npc: npc/jobs/2-2a/Creator.txt |