From 15db031c546b43fcc1e5fab4271871d49026ceb5 Mon Sep 17 00:00:00 2001 From: Lupus Date: Wed, 21 Feb 2007 10:48:57 +0000 Subject: updated Dance Job Quest. Optimized, Fixed typos, added missing text git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9883 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/jobs/2-2/dancer.txt | 789 +++++++++++++++++++++--------------------------- 1 file changed, 349 insertions(+), 440 deletions(-) (limited to 'npc/jobs/2-2/dancer.txt') diff --git a/npc/jobs/2-2/dancer.txt b/npc/jobs/2-2/dancer.txt index a7ec8c666..7a4e41201 100644 --- a/npc/jobs/2-2/dancer.txt +++ b/npc/jobs/2-2/dancer.txt @@ -4,36 +4,21 @@ //= Kalen - Original jAthena //= Fredzilla - Converted, Lupus //===== Current Version: ===================================== -//= 2.5 +//= 3.0 //===== Compatible With: ===================================== //= eAthena 9880+ //===== Description: ========================================= //= Dancer job quest based off a jAthena script and other sources for clarity //===== Additional Comments: ================================= -//= 1.5 Added Baby Class Support [Fredzilla] -//= 1.1 Removed the warp I left here my accident, added a check for using -//= Improved Concentration and arrow shower, people could get away with it -//= [Fredzilla] -//= 1.0 I tried to keep as much the same from the Jap version as possible -//= this turned out to be quite hard, but on the whole it is the same script -//= I have added some new things, and changed some of the used commands, -//= along with some optimization. [Fredzilla] -//= 1.6 Added a func which prevent advanced classes passing -//= 2nd Job Quests again. It also guides adv classes where -//= to go. [Lupus] -//= 2.0 Changed numbers to constants. [Vicious] -//= 2.1 Script check #1. [Lance] -//= 2.2 Fixed unpassable part, thx2 Alis [Lupus] -//= 2.3 Updated initnpctimer to attach player to jobDq script [Skotlex] -//= 2.4 Attached chrid to be able obtain player's SP on mobs death, optimized a bit [Lupus] -//= 2.5 Final fix of obtaining chrid. Now works, no warnings [Lupus] -//= changed 'Improved Concentration' to 'Attention Concentrate' +//= 2.5 Final fix of chrid issues, changed 'Improved +//= Concentration' to 'Attention Concentrate' [Lupus] +//= 3.0 Some optimization, typos, added missing dialogues (4Kb lighter) [Lupus] //============================================================ -//= Warning Warp to escape the quest if need be -job_duncer.gat,69,165,1 script wwarp 45,1,1,{ +//= Warning Warp to escape the quest if need to +job_duncer.gat,69,165,1 script DQWWarp 45,1,1,{ mes "[Warning]"; - mes "This is the way out, this will cancel your quest if you leave"; + mes "This is the way out, this will cancel your quest if you leave."; next; menu "Leave the quest",-,"Cancel",L_Can; warp "comodo.gat",193,149; @@ -48,15 +33,16 @@ comodo.gat,193,151,4 script Bor Robin 86,{ mes "[Bor Robin]"; mes "Well...... alot of people seem to be coming here lately."; + emotion e_hmm; next; mes "[Bor Robin]"; - mes "They used to become dancers instantaneously."; + mes "They used to become Dancers instantaneously."; mes "I've seen right before my eyes, more than I could count."; - mes "Now only people who are worthy can become dancers."; + mes "Now only people who are worthy can become Dancers."; next; mes "[Bor Robin]"; - mes "Becoming a dancer in these times would bring you true happiness."; - mes "It would be great to see more dancers around."; + mes "Becoming a Dancer in these times would bring you true happiness."; + mes "It would be great to see more Dancers around."; next; mes "[Bor Robin]"; mes "I can take you to the Comodo Theater if you want."; @@ -74,61 +60,71 @@ L1: warp "job_duncer.gat",70,49; end; } + //= 1st quest NPC, asks for Items and/or money, then passes you onto the next NPC job_duncer.gat,43,93,4 script Aire 724,{ - if (BaseJob == Job_Archer && Sex == 0) goto Larcher; - if (BaseJob == Job_Dancer) goto Ldancer; - if (Upper==1) goto LUpper1; - mes "[Aire]"; - mes "Hi "+strcharinfo(0)+", you are only allowed to stay in this room any where else is off limits to you."; - next; - mes "[Aire]"; - mes "We can't just let anyone become a dancer, there is no reason other than this for people to be here."; - next; - mes "[Aire]"; - mes "You can stay and watch the dance stage if you want to, there might be an audition going on."; - mes "See you later."; - close; -Ldancer: - mes "[Aire]"; - mes "Nice to see you return."; - mes "How have you been recently?"; - mes "Have you been bringing many people joy?"; - close; -Larcher: - if (Upper == 1) goto LUpper1; - if (DANC_Q == 1) goto LStart2; - if (DANC_Q == 2) goto LItem1; - if (DANC_Q == 3) goto LItem2; - if (DANC_Q == 4) goto LItem3; - if ((DANC_Q == 5) || (DANC_Q == 6)) goto LStart3; - if (DANC_Q >= 7) goto LStart4; - mes "[Aire]"; - mes "Welcome to our Theater."; - mes "This is where various dances are taught."; - next; - mes "[Aire]"; - mes "Sightseers visit from all other the place, to watch the dancers."; - next; - mes "[Aire]"; - mes "We can also train new dancers here, obviously for a price, we don't want to go out of business."; - next; mes "[Aire]"; - mes "You must first fill in the application form."; - mes "All you have to do is write in your details."; - next; - mes "[Aire]"; - mes "So what do you say?"; - mes "Are you proposing you become a dancer? or will you be leaving like many before you."; - next; - menu "Fill in the form",L1,"Leave",-; + if(BaseJob == Job_Dancer) { + mes "Nice to see you return."; + mes "How have you been recently?"; + mes "Have you been bringing many people joy?"; + close; + } + if(Upper == 1){ + mes "It's such a big honor to salute envoys of Valhalla."; + mes "Come again."; + emotion e_ho; + close; + } + if(BaseJob != Job_Archer || Sex){ + mes "Hi "+strcharinfo(0)+", you are only allowed to stay in this room any where else is off limits to you."; + next; mes "[Aire]"; - mes "If you do reconsider please return to me."; + mes "We can't just let anyone become a Dancer, there is no reason other than this for people to be here."; + next; + mes "[Aire]"; + mes "You can stay and watch the dance stage if you want to, there might be an audition going on."; mes "See you later."; close; -L1: - if (JobLevel < 40) goto Llowlv; + } + + switch(DANC_Q){ + case 0: + mes "Welcome to our Theater."; + mes "This is where various dances are taught."; + next; + mes "[Aire]"; + mes "Sightseers visit from all other the place, to watch the Dancers."; + next; mes "[Aire]"; + mes "We can also train new Dancers here, obviously for a price, we don't want to go out of business."; + next; + mes "[Aire]"; + mes "You must first fill in the application form."; + mes "All you have to do is write in your details."; + next; + mes "[Aire]"; + mes "So what do you say?"; + mes "Are you proposing you become a Dancer? or will you be leaving like many before you."; + next; + if(select("Fill in the form:Leave")!=1){ + mes "[Aire]"; + mes "If you do reconsider please return to me."; + mes "See you later."; + close; + } + mes "[Aire]"; + if(JobLevel < 40){ + mes "Huh......"; + mes "I am very sorry, but you have not met our minimun job level requirements."; + next; + mes "[Aire]"; + mes "You need to be at least above Job Level 40."; + mes "Please return when you are Job Level 40 or higher."; + mes "Don't tell anyone I told you this, but if you complete the training for Dancer and you are Job Level 50 you get an extra gift from us."; + mes "Enjoy your day."; + close; + } mes "So you are ready to start you journey!"; mes "Please enter in the application form which is there."; next; @@ -148,217 +144,184 @@ L1: mes "The form is being read by the dancing school teacher."; next; mes "[Aire]"; - mes "When you have time for the next part of your journey talk to me again"; + mes "When you have time for the next part of your journey talk to me again."; set DANC_Q,1; close; -LStart2: - mes "[Aire]"; - mes "Your proposal has been accepted, but you still need to bring some items, and maybe zeny to cover the bill of our school."; - next; - mes "[Aire]"; - mes "Lets see what items you will need to bring to cover your bill."; - mes " "; - mes "Ok..."; - next; -//3 Random sets - mes "[Aire]"; - set @itemset, rand(1,3); - if (@itemset == 2) goto ItemSet2; - if (@itemset == 3) goto ItemSet3; - mes "The cost for the lesson will be :-"; - mes "^0000FF10,000 Zeny^000000"; - mes "A pair of ^0000FFUnslotted Shoes^000000"; - mes "^0000FF20 Sticky Mucus^000000"; - mes "^0000FF5 Red Potions^000000"; - mes "^0000FF3 Jellopy^000000"; - next; - mes "[Aire]"; - mes "When you have all these, I can prepare the lesson for you."; - mes " "; - mes "Come and speak to me again when you are ready."; - set DANC_Q,2; - close; -ItemSet2: - mes "The cost for the lesson will be :-"; - mes "^0000FF10,000 Zeny^000000"; - mes "A pair of ^0000FFUnslotted Boots^000000"; - mes "^0000FF5 earthworm skins^000000"; - next; - mes "[Aire]"; - mes "When you have all these, I can prepare the lesson for you."; - mes " "; - mes "Come and speak to me again when you are ready."; - set DANC_Q,3; - close; -ItemSet3: - mes "The cost for the lesson will be :-"; - mes "A pair of ^0000FFUnslotted Sandals^000000"; - mes "^0000FF2 Clam Shells^000000"; - mes "^0000FF5 Yellow Potions^000000"; - mes "^0000FF20 Jellopy^000000"; - mes "^0000FF10 Black Hair^000000"; - next; - mes "[Aire]"; - mes "When you have all these, I can prepare the lesson for you."; - mes "Come and speak to me again when you are ready."; - set DANC_Q,4; - close; + case 1: + mes "Your proposal has been accepted, but you still need to bring some items, and maybe zeny to cover the bill of our school."; + next; + mes "[Aire]"; + mes "Lets see what items you will need to bring to cover your bill."; + mes " "; + mes "Ok..."; + next; + mes "[Aire]"; + mes "The cost for the lesson will be:"; + set DANC_Q,rand(2,4); + callsub S_SHOWITEMS; + mes "When you have all these, I can prepare the lesson for you."; + mes "Come and speak to me again when you are ready."; + close; -LItem1: - if ((countitem(938) >= 20) && (countitem(501) >= 5) && (countitem(909) >= 3) && (countitem(2403) >= 1) && (Zeny >= 10000)) goto LItem1OK; - mes "[Aire]"; - mes "Something is wrong here."; - mes "Seems you don't have enough items, we need everything that was asked for."; - mes "They are all necessary for you to be taught."; - mes "In case you have forgotten, please bring."; - next; - mes "[Aire]"; - mes "^0000FF10000 Zeny^000000"; - mes "A pair of ^0000FFUnslotted Shoes^000000"; - mes "^0000FF20 Sticky Mucus^000000"; - mes "^0000FF5 Red Potions^000000"; - mes "^0000FF3 Jellopy^000000"; - next; - mes "[Aire]"; - mes "Don't forget to get everything."; - mes "What are you waiting for?"; - mes "see you back here soon"; - close; -LItem2: - if ((countitem(1055) >= 5) && (countitem(2405) >= 1) && (Zeny >= 10000)) goto LItem2OK; - mes "Something is wrong here."; - mes "Seems you don't have enough items, we need everything that was asked for."; - mes "They are all necessary for you to be taught."; - mes "In case you have forgotten, please bring."; - next; - mes "[Aire]"; - mes "^0000FF10000 Zeny^000000"; - mes "A pair of ^0000FFUnslotted Boots^000000"; - mes "^0000FF5 earthworm skins^000000"; - next; - mes "[Aire]"; - mes "Don't forget to get everything."; - mes "What are you waiting for?"; - mes "see you back here soon"; - close; -LItem3: - if ((countitem(965) >= 2) && (countitem(503) >= 5) && (countitem(909) >= 20) && (countitem(1020) >= 10) && (countitem(2401) >= 1)) goto LItem3OK; - mes "Something is wrong here."; - mes "Seems you don't have enough items, we need everything that was asked for."; - mes "They are all necessary for you to be taught."; - mes "In case you have forgotten, please bring."; - next; - mes "[Aire]"; - mes "A pair of ^0000FFUnslotted Sandals^000000"; - mes "^0000FF2 Clam Shells^000000"; - mes "^0000FF5 Yellow Potions^000000"; - mes "^0000FF20 Jellopy^000000"; - mes "^0000FF10 Black Hair^000000"; - next; - mes "[Aire]"; - mes "Don't forget to get everything."; - mes "What are you waiting for?"; - mes "see you back here soon"; - close; -LItem1OK: - mes "[Aire]"; - mes "Lets see here, oh you brought everything."; - mes "I accept your payment!"; - set Zeny,Zeny-10000; - delitem 938,20; - delitem 501,5; - delitem 909,3; - delitem 2403,1; - next; - goto LStart3; -LItem2OK: - mes "[Aire]"; - mes "Lets see here, oh you brought everything."; - mes "I accept your payment!"; - set Zeny,Zeny-10000; - delitem 1055,5; - delitem 2405,1; - next; - goto LStart3; -LItem3OK: - mes "[Aire]"; - mes "Lets see here, oh you brought everything."; - mes "I accept your payment!"; - delitem 965,2; - delitem 503,5; - delitem 909,20; - delitem 1020,10; - delitem 2401,1; - next; -LStart3: - mes "[Aire]"; - mes "Now that the cost of the training is out of that way, we need you to participate in an interview, and pass a small test to be worthy of becoming a dancer."; - next; - mes "[Aire]"; - mes "Your interview and test will be performed by ^0000FF'Bijou'^000000."; - mes "Please go and see her as soon as posible."; - if (DANC_Q < 5) set DANC_Q,5; - close; -LStart4: - mes "[Aire]"; + case 2: + case 3: + case 4: + if(DANC_Q==2 && (countitem(938) >= 20) && (countitem(501) >= 5) && (countitem(909) >= 3) + && (countitem(2403) >= 1) && (Zeny >= 10000)){ + + set Zeny,Zeny-10000; + delitem 938,20; + delitem 501,5; + delitem 909,3; + delitem 2403,1; + goto L_DONE; + } + if(DANC_Q==3 && countitem(1055) >= 5) && (countitem(2405) >= 1) && (Zeny >= 10000)){ + + set Zeny,Zeny-10000; + delitem 1055,5; + delitem 2405,1; + goto L_DONE; + } + if(DANC_Q==4 && countitem(965) >= 2 && countitem(503) >= 5 && countitem(909) >= 20 + && countitem(1020) >= 10 && countitem(2401) >= 1){ + + delitem 965,2; + delitem 503,5; + delitem 909,20; + delitem 1020,10; + delitem 2401,1; + goto L_DONE; + + } + mes "Something is wrong here."; + mes "Seems you don't have enough items, we need everything that was asked for."; + mes "They are all necessary for you to be taught."; + mes "In case you have forgotten, please bring."; + next; + mes "[Aire]"; + callsub S_SHOWITEMS; + mes "Don't forget to get everything."; + mes "What are you waiting for?"; + mes "See you back here soon."; + close; + +L_DONE: + mes "Lets see here, oh you brought everything."; + mes "I accept your payment!"; + next; + mes "[Aire]"; + case 5: + case 6: + mes "Now that the cost of the training is out of that way, we need you to participate in an interview, and pass a small test to be worthy of becoming a Dancer."; + next; + mes "[Aire]"; + mes "Your interview and test will be performed by ^0000FF'Bijou'^000000."; + mes "Please go and see her as soon as possible."; + if(DANC_Q < 5) set DANC_Q,5; + close; + } mes "Practice enthusiastically that cute dance."; mes "When you have completed your training please show me!"; close; -Llowlv: - mes "[Aire]"; - mes "Huh......"; - mes "I am very sorry, but you have not met our minimun job level requirements."; + +S_SHOWITEMS: + switch(DANC_Q){ + case 2: + mes "^0000FF10,000 Zeny^000000, "; + mes "A pair of ^0000FFUnslotted Shoes^000000, "; + mes "^0000FF20 Sticky Mucus^000000, "; + mes "^0000FF5 Red Potions^000000 and"; + mes "^0000FF3 Jellopy^000000."; + break; + case 3: + mes "^0000FF10,000 Zeny^000000,"; + mes "A pair of ^0000FFUnslotted Boots^000000 and"; + mes "^0000FF5 Earthworm skins^000000."; + break; + case 4: + mes "A pair of ^0000FFUnslotted Sandals^000000,"; + mes "^0000FF2 Clam Shells^000000,"; + mes "^0000FF5 Yellow Potions^000000,"; + mes "^0000FF20 Jellopy^000000 and"; + mes "^0000FF10 Black Hair^000000."; + break; + } next; mes "[Aire]"; - mes "You need to be at least above Job Lvl 40."; - mes "Please return when you are Job Lvl 40 or higher."; - mes "Don't tell anyone I told you this, but if you complete the training for dancer and you are Job Lvl 50 you get an extra gift from us."; - mes "Enjoy your day."; - close; -LUpper1: - mes "[Aire]"; - mes "It's such a big honor to salute envoys of Valhalla."; - mes "Come again."; - emotion e_ho; - close; - + return; } + //= 2nd "Quest" and Job changer for after the 3rd Quest job_duncer.gat,95,93,4 script Bijou 101,{ - if (BaseJob == Job_Archer && Sex == 0) goto LArcher; - if (BaseJob == Job_Dancer) goto LDancer; - mes "[Bijou]"; - mes "Welcome to our Dance Theater, there are many dancers around here."; - next; - mes "[Bijou]"; - mes "Unfortunately for you I have already retired from being a dancer, but I stay here to train new dancers."; - next; - mes "[Bijou]"; - mes "The hardest part of becoming a dancer is the physical test of timing and speed, which is done at the stage."; - mes ""; - mes "I will call out directions to the trainee, and they need to follow them to the letter."; - mes "If they complete that test they come back to me for the final part of their training, and they leave as a dancer."; - close; -LDancer: - mes "[Bijou]"; - mes "What will you be doing today?"; - next; - mes "[Bijou]"; - mes "Go and bring joy to all the others that you see."; - mes "Making impression on the many people."; - mes "Help other as much as possible."; - mes "Don't forget your training."; - mes "See you again soon!"; - close; -LArcher: - if (Skillpoint != 0) goto LErrorA; - if (DANC_Q == 5) goto Ltest1; - if (DANC_Q == 6) goto Ltest2; - if ((DANC_Q == 7) || (DANC_Q == 8)) goto LStart2; - if (DANC_Q == 10) goto Ljobchange; mes "[Bijou]"; - mes "So you want to become a dancer, eh?"; + if(BaseJob == Job_Dancer){ + mes "What will you be doing today?"; + next; + mes "[Bijou]"; + mes "Go and bring joy to all the others that you see."; + mes "Making impression on the many people."; + mes "Help other as much as possible."; + mes "Don't forget your training."; + mes "See you again soon!"; + close; + } + if(BaseJob != Job_Archer || Sex){ + mes "Welcome to our Dance Theater, there are many Dancers around here."; + next; + mes "[Bijou]"; + mes "Unfortunately for you I have already retired from being a Dancer, but I stay here to train new Dancers."; + next; + mes "[Bijou]"; + mes "The hardest part of becoming a Dancer is the physical test of timing and speed, which is done at the stage."; + next; + mes "[Bijou]"; + mes "I will call out directions to the trainee, and they need to follow them to the letter."; + mes "If they complete that test they come back to me for the final part of their training, and they leave as a Dancer."; + close; + } + if(SkillPoint){ + mes "You still seem to have skill points."; + mes "Until you use all of your points you cannot change jobs."; + close; + } + if(DANC_Q == 5 || DANC_Q == 6) goto L_QUIZ; + if(DANC_Q == 7 || DANC_Q == 8) goto L_DANCETEST; + if(DANC_Q == 9){ + mes "You have done great, you have passed all the tests we have set out for you."; + next; + mes "[Bijou]"; + mes "I now think you have sufficient knowledge to become a Dancer now!"; + next; + mes "[Bijou]"; + mes "Now...... please relax as we finish our training here."; + next; + mes "[Bijou]"; + mes "It will be your job to bring joy to all the people in Rune Midgard."; + next; + set @JobLevel,JobLevel; + mes "[Bijou]"; + mes "Watch each time you dance from now on."; + next; + callfunc "Job_Change",Job_Dancer; + callfunc "F_ClearJobVar"; + mes "[Bijou]"; + mes "The enjoyment of the people watching you perform......"; + next; + mes "[Bijou]"; + mes "This present is from me!"; + if(@JobLevel==50) { + getitem 1953,1; + mes "Since you are very experienced I have given you a Line, instead of a simple Rope that normal people would get."; + mes "Now take you Line, and be the best Dancer you can be!"; + } else { + getitem 1950,1; + mes "Now take this Rope, and be the best Dancer you can be!"; + } + close; + } + mes "So you want to become a Dancer, eh?"; next; mes "[Bijou]"; mes "Well, it seems you haven't paid anything towards it yet."; @@ -367,42 +330,33 @@ LArcher: mes "The person you need to go and talk to about this is 'Aire', she is the other side of the stage."; mes "When everything is ok with her come back to me."; close; -LErrorA: - mes "[Bijou]"; - mes "You still seem to have skill points."; - mes "Until you use all of your points you cannot change jobs."; - close; -Ltest1: - mes "[Bijou]"; - mes "So you want to become a dancer, eh?"; - next; - mes "[Bijou]"; - mes "......You have already paid I see, so we can now continue."; - next; - mes "[Bijou]"; - mes "Before I can let you become a Dancer I need to test you mental attitude, this is done through a simple test."; - mes "It is multiple choice and alot of them are common sense, well common for someone that has the mental attitude to become a dancer."; - next; - mes "[Bijou]"; - mes "There is a total of 10 questions, for each one you get correct you are awarded 10 points."; - mes " "; - mes "There are some answers that will reduce your final score, try and avoid answering them wrong."; - next; - goto LsetQ; -Ltest2: - mes "[Bijou]"; - if(DANC_Q == 6) mes "Back for another try?"; +L_QUIZ: + if(DANC_Q == 6) + mes "Back for another try?"; + else { + mes "So you want to become a Dancer, eh?"; + next; + mes "[Bijou]"; + mes "......You have already paid I see, so we can now continue."; + next; + mes "[Bijou]"; + mes "Before I can let you become a Dancer I need to test you mental attitude, this is done through a simple test."; + mes "It is multiple choice and alot of them are common sense, well common for someone that has the mental attitude to become a Dancer."; + next; + mes "[Bijou]"; + mes "There is a total of 10 questions, for each one you get correct you are awarded 10 points."; + mes " "; + mes "There are some answers that will reduce your final score, try and avoid answering them wrong."; + next; + } mes "Good luck to you, now let the test begin."; next; -LsetQ: - set @rand,rand(2); set @dcpoint,0; - if (@rand == 1) goto LQuestion2; + if(rand(2)) goto L_QUIZ2; + //------- -LQuestion1: mes "[Bijou]"; - mes "1."; - mes "^00FF00Subject:^000000 Dancer + bard combination playing skill."; + mes "1. ^00FF00Subject:^000000 Dancer + Bard combination playing skill."; mes "What is the effect of ^777777'Classical Pluck/Loki's Veil'^000000 ?"; next; menu "Attack power of the level 4 weapon improves",L1_2,"Double the damage that is done",L1_2,"Makes skills and magic unusable",-,"Attack speed rises",L1_2; @@ -411,8 +365,7 @@ L1_2: //I am unsure about the translated meaning on Question 2, I tried to adapt it with my own question, //I will put a asterisk (*) next to all I have done this for, I done this so other people who might understand it better can correct it. mes "[Bijou]"; - mes "2."; - mes "^00FF00Subject:^000000 After Dancing."; + mes "2. ^00FF00Subject:^000000 After Dancing."; mes "After you have finished using an Ensemble skill with a partner what should you never do?"; next; menu "Use words of appreciation towards the partner",L1_3,"The dance is praised",L1_3,"Invite the partner to dance again",L1_3,"You tell the partner they did an insufficient job",-; @@ -420,62 +373,56 @@ L1_2: L1_3: // * mes "[Bijou]"; - mes "3."; - mes "^00FF00Subject:^000000 Before Dancing"; + mes "3. ^00FF00Subject:^000000 Before Dancing."; mes "When a partner activates the incorrect dance what should you do?"; next; menu "Smile and just continue to dance",L1_4,"Point out the mistake",-,"Cancel the dance and walk away",L1_4,"Hide your smirk",L1_4; set @dcpoint,@dcpoint+10; L1_4: mes "[Bijou]"; - mes "4."; - mes "^00FF00Subject:^000000 General Knowledge."; - mes "What is the name of the village where you can designate the change of your occupation to that of a dancer?"; + mes "4. ^00FF00Subject:^000000 General Knowledge."; + mes "What is the name of the village where you can designate the change of your occupation to that of a Dancer?"; next; menu "Prontera",L1_5,"Morroc",L1_5,"Al De Baran",L1_5,"Comodo",-; set @dcpoint,@dcpoint+10; L1_5: mes "[Bijou]"; - mes "5."; - mes "^00FF00Subject:^000000 Places around Comodo."; + mes "5. ^00FF00Subject:^000000 Places around Comodo."; mes "How many caves are directly connect to Comodo Village?"; next; menu "1",L1_6,"2",L1_6,"3",-,"4",L1_6; set @dcpoint,@dcpoint+10; L1_6: mes "[Bijou]"; - mes "6."; - mes "^00FF00Subject:^000000 Pet's."; + mes "6. ^00FF00Subject:^000000 Pets."; mes "Which of the following is not able to be tamed?"; next; menu "Isis",L1_7,"Argiope",-,"Dokebi",L1_7,"Deviruchi",L1_7; set @dcpoint,@dcpoint+10; L1_7: mes "[Bijou]"; - mes "7."; - mes "^00FF00Subject:^000000 General Knowledge."; - mes "Who is the best dancer?"; + mes "7. ^00FF00Subject:^000000 General Knowledge."; + mes "Who is the best Dancer?"; next; menu strcharinfo(0),L1_7a,"Bijou",-,"Isis",L1_8,"Flora",L1_8; set @dcpoint,@dcpoint+10; goto L1_8; L1_7a: set @dcpoint,@dcpoint-100; + emotion e_dots; mes "........."; next; L1_8: // * mes "[Bijou]"; - mes "8."; - mes "^00FF00Subject:^000000 Places around Comodo."; + mes "8. ^00FF00Subject:^000000 Places around Comodo."; mes "What is one of the main attractions of Comodo?"; next; menu "A Church",L1_9,"Exceptionally good shops",L1_9,"The best chicken you can get anywhere",L1_9,"The Casino",-; set @dcpoint,@dcpoint+10; L1_9: mes "[...]"; - mes "9."; - mes "^00FF00Subject:^000000 General Knowledge."; + mes "9. ^00FF00Subject:^000000 General Knowledge."; mes "What is my name?"; next; menu "Gijou",L1_10,"Bijon",L1_10,"Bijou",-,"Bojou",L1_10; @@ -483,51 +430,45 @@ L1_9: // * L1_10: mes "[Bijou]"; - mes "10."; - mes "^00FF00Subject:^000000 Dancer + bard combination playing skill."; + mes "10. ^00FF00Subject:^000000 Dancer + Bard combination playing skill."; mes "What is the effect of ^777777'Lullaby'^000000 ?"; next; - menu "Put enemy to sleep, in a 5x5 area",Lcheckpt,"Put enemy to sleep, in a 9x9 area",-,"Stun the enemy, in a 5x5 area",Lcheckpt,"Stun the enemy, in a 9x9 area",Lcheckpt; + menu "Make enemy asleep, in a 5x5 area",L_ENDQ,"Make enemy asleep, in a 9x9 area",-,"Stun the enemy, in a 5x5 area",L_ENDQ,"Stun the enemy, in a 9x9 area",L_ENDQ; set @dcpoint,@dcpoint+10; - goto Lcheckpt; + goto L_ENDQ; //------- -LQuestion2: +L_QUIZ2: mes "[Bijou]"; - mes "1."; - mes "^00FF00Subject:^000000 Dancer skill."; + mes "1. ^00FF00Subject:^000000 Dancer skill."; mes "What is the effect of ^777777'Dancing Lessons'^000000? "; next; menu "Your INT is increased",L2_2,"The damage of whip type attacks are raised",-,"The damage of rod type attacks are raised",L2_2,"The damage of ranged type attacks are raised",L2_2; set @dcpoint,@dcpoint+10; L2_2: mes "[Bijou]"; - mes "2."; - mes "^00FF00Subject:^000000 Dance Type."; - mes "While doing this type of dance, you wear special shoes that make loud sounds"; + mes "2. ^00FF00Subject:^000000 Dance Type."; + mes "While doing this type of dance, you wear special shoes that make loud sounds."; mes "What is this type of dancing called?"; next; menu "Tap dance",-,"Attention Concentrate",L2_3,"Tango",L2_3,"Salsa",L2_3; set @dcpoint,@dcpoint+10; L2_3: mes "[Bijou]"; - mes "3."; - mes "^00FF00Subject:^000000 Dancer feature."; - mes "Choose the thing a dancer cannot do"; + mes "3. ^00FF00Subject:^000000 Dancer feature."; + mes "Choose the thing a Dancer cannot do"; next; menu "Perform Dances",L2_4,"Attack at a long range",L2_4,"Use a Whip",L2_4,"Use a 2-Handed Sword",-; set @dcpoint,@dcpoint+10; L2_4: mes "[Bijou]"; - mes "4."; - mes "^00FF00Subject:^000000 General Knowledge."; - mes "What is the town where dancers stay the most?"; + mes "4. ^00FF00Subject:^000000 General Knowledge."; + mes "What is the town where Dancers stay the most?"; next; menu "Al De Baran",L2_5,"Yuno",L2_5,"Morroc",L2_5,"Comodo",-; set @dcpoint,@dcpoint+10; L2_5: mes "[Bijou]"; - mes "5."; - mes "^00FF00Subject:^000000 General Knowledge."; + mes "5. ^00FF00Subject:^000000 General Knowledge."; mes "What person can perfrom the most beautiful dances?"; next; menu strcharinfo(0),L2_5a,"Bijou",-,"Isis",L2_6,"Emralhandas",L2_6; @@ -535,78 +476,76 @@ L2_5: goto L2_6; L2_5a: set @dcpoint,@dcpoint-100; + emotion e_dots; + mes "........."; + next; L2_6: mes "[Bijou]"; - mes "6."; - mes "^00FF00Subject:^000000 Dancer feature."; - mes "The dancer, in comparison with other occupations, has what advantage?"; + mes "6. ^00FF00Subject:^000000 Dancer feature."; + mes "The Dancer, in comparison with other occupations, has what advantage?"; next; menu "Physical strength",L2_7,"Performing skill power",L2_7,"Dance Capability",-,"Magic Capability",L2_7; set @dcpoint,@dcpoint+10; L2_7: mes "[Bijou]"; - mes "7."; - mes "^00FF00Subject:^000000 Places around Comodo."; + mes "7. ^00FF00Subject:^000000 Places around Comodo."; mes "What is the Casino managers name?"; next; menu "Martine",L2_8,"Roberto",L2_8,"Moo",-,"Deniroz",L2_8; set @dcpoint,@dcpoint+10; L2_8: mes "[Bijou]"; - mes "8."; - mes "^00FF00Subject:^000000 Dancer feature."; - mes "As for the item which the dancer cannot equip?"; + mes "8. ^00FF00Subject:^000000 Dancer feature."; + mes "As for the item which the Dancer cannot equip?"; next; menu "Hair band of cat",L2_9,"Two-handed Sword",-,"Sandals",L2_9,"Earring",L2_9; set @dcpoint,@dcpoint+10; L2_9: mes "[Bijou]"; - mes "9."; - mes "^00FF00Subject:^000000 Opinion."; + mes "9. ^00FF00Subject:^000000 Opinion."; mes "Do you think this test is boring?"; next; menu "It is",L2_10,"Give me more questions",-; set @dcpoint,@dcpoint+10; L2_10: mes "[Bijou]"; - mes "10."; - mes "^00FF00Subject:^000000 Places around Comodo."; + mes "10. ^00FF00Subject:^000000 Places around Comodo."; mes "How many lighthouses exist on Comodo Island?"; next; - menu "1",-,"2",Lcheckpt,"3",Lcheckpt; + menu "1",-,"2",L_ENDQ,"3",L_ENDQ; set @dcpoint,@dcpoint+10; - goto Lcheckpt; //------- -Lcheckpt: +L_ENDQ: mes "[Bijou]"; mes "You have now completed the test, lets see how you did......"; next; - mes "[Bijou]"; - mes "You got a total of "+@dcpoint+" points......"; - if ((@dcpoint >= 80) && (DANC_Q == 5)) goto LpointOK; - if ((@dcpoint >= 70) && (DANC_Q == 6)) goto LpointOK; - mes "I am going to need to disqualify you, because you didn't reach the required ammount."; - next; - mes "[Bijou]"; - mes "You are allowed to take the test again if you like, for no extra charge."; - if (DANC_Q==5) mes "Next time you take the test I will lower the amount of points you need to pass, to make it easier for you."; - mes "Better luck next time, see you around!"; - set DANC_Q,6; - close; - LpointOK: - if (@dcpoint == 100) mes "That is amazing, 100% correct."; - if (@dcpoint != 100) mes "Even though you didn't get all the questions right, you have still passed."; + mes "[Bijou]"; + mes "You got a total of "+@dcpoint+" points......"; + if(@dcpoint >= 80 || (@dcpoint >= 70 && DANC_Q == 6)){ + if(@dcpoint == 100) + mes "That is amazing, 100% correct."; + else + mes "Even though you didn't get all the questions right, you have still passed."; next; mes "[Bijou]"; mes "The next thing you need to do is pass a physical test of speed and timing"; mes "when you are ready for this test talk to me again, I can also tell you more about the test before you take it."; set DANC_Q,7; close; -LStart2: + } + mes "I am going to need to disqualify you, because you didn't reach the required ammount."; + next; mes "[Bijou]"; + mes "You are allowed to take the test again if you like, for no extra charge."; + if(DANC_Q==5) mes "Next time you take the test I will lower the amount of points you need to pass, to make it easier for you."; + mes "Better luck next time, see you around!"; + set DANC_Q,6; + close; + +L_DANCETEST: mes "Are you ready for this test? or do you want me to talk you through it first?"; next; - menu "Please Explain it to me",-,"Take me to the test area",Lwarp; + menu "Please Explain it to me",-,"Take me to the test area",L_WARP; mes "[Bijou]"; mes "Think of this more as an audition than a test."; mes "We give you ^0000FF1 minute^000000 to impress us."; @@ -641,50 +580,13 @@ LStart2: mes "[Bijou]"; mes "Don't worry if you have no experience of dance, that is what this is for, so you don't need to worry."; close; - Lwarp: + L_WARP: mes "[Bijou]"; mes "I will take you back stage so you can take you test!"; set DANC_Q,8; close2; warp "job_duncer.gat",104,109; end; -Ljobchange: - mes "[Bijou]"; - mes "You have done great, you have passed all the tests we have set out for you."; - next; - mes "[Bijou]"; - mes "I now think you have sufficient knowledge to become a dancer now!"; - next; - mes "[Bijou]"; - mes "Now...... please relax as we finish our training here."; - next; - mes "[Bijou]"; - mes "It will be your job to bring joy to all the people in Rune Midgard."; - next; - if (JobLevel == 50) set @item,1; - if (JobLevel != 50) set @item,0; - mes "[Bijou]"; - mes "Watch each time you dance from now on."; - next; - callfunc "Job_Change",Job_Dancer; - callfunc "F_ClearJobVar"; - mes "[Bijou]"; - mes "The enjoyment of the people watching you perform......"; - next; - mes "[Bijou]"; - mes "This present is from me!"; - if (@item == 0){ - getitem 1950,1; - mes "Now take this Rope, and be the best dancer you can be!"; - } else { - if (@item == 1) { - getitem 1953,1; - mes "Since you are very experienced I have given you a Line, instead of a simple Rope that normal people would get."; - mes "Now take you Line, and be the best dancer you can be!"; - } - } - close; - } //=Start of the 3rd quest is here, once complete you go back to Bijou to change job @@ -709,7 +611,7 @@ job_duncer.gat,0,0,0 script jobDq -1,{ OnStart: OnTimer1000: - mapannounce "job_duncer.gat","Bijou: The test begins, Total time allowed is 1 minute.",8; + mapannounce "job_duncer.gat","Bijou: The test begins. Total time allowed is 1 minute.",8; end; OnTimer3000: mapannounce "job_duncer.gat","Bijou: Step Up! [ /\\ ]",8; @@ -744,7 +646,7 @@ OnTimer26000: mapannounce "job_duncer.gat","Bijou: Use 'Attention Concentrate'!",8; end; OnTimer29000: - if ($@DQSP==SP) goto OnTimer80000; + if($@DQSP==SP) goto OnTimer80000; donpcevent "::OnDE1"; mapannounce "job_duncer.gat","Bijou: To the left. [ < ]",8; callsub L_SUB2,2000; @@ -811,8 +713,8 @@ OnTimer80000: disablenpc "righttile"; disablenpc "lowertile"; disablenpc "middletile"; - if (getareausers("job_duncer.gat",68,106,70,114) != 0) areawarp "job_duncer.gat",68,106,70,114,"job_duncer.gat",69,102; - if (getareausers("job_duncer.gat",65,109,73,111) != 0) areawarp "job_duncer.gat",65,109,73,111,"job_duncer.gat",69,102; + if(getareausers("job_duncer.gat",68,106,70,114)) areawarp "job_duncer.gat",68,106,70,114,"job_duncer.gat",69,102; + if(getareausers("job_duncer.gat",65,109,73,111)) areawarp "job_duncer.gat",65,109,73,111,"job_duncer.gat",69,102; stopnpctimer; enablewaitingroomevent "dancew"; end; @@ -857,16 +759,17 @@ L_SUB5: startnpctimer "jdt5"; return; } + job_duncer.gat,0,0,0 script jddie -1,{ OnDie: - if ($@DQRID && isloggedin($@DQRID)) { + if($@DQRID && isloggedin($@DQRID)) { attachrid($@DQRID); - if ($@DQSP==SP) + if($@DQSP==SP) mapannounce "job_duncer.gat","Dancer: Sorry "+strcharinfo(0)+", but you failed to use arrow shower to kill the monster",8; else { mapannounce "job_duncer.gat","Dancer: Well done, you were very skillful, and have passed the test.",8; - set DANC_Q,10; + set DANC_Q,9; } } disablenpc "uppertile"; @@ -878,14 +781,14 @@ OnDie: stopnpctimer "jobDq"; enablewaitingroomevent "dancew"; - if ($@DQRID && isloggedin($@DQRID)) + if($@DQRID && isloggedin($@DQRID)) warp "job_duncer.gat",69,102; set $@DQRID,0; set $@DQSP,0; end; } -job_duncer.gat,63,110,4 script Back dancer #1::jdt1 724,{ +job_duncer.gat,63,110,4 script Back Dancer#1::jdt1 724,{ end; OnTimer5000: enablenpc "lefttile"; @@ -901,7 +804,7 @@ OnDE2: emotion e_omg; end; } -job_duncer.gat,66,113,4 script Back dancer #2::jdt2 724,{ +job_duncer.gat,66,113,4 script Back Dancer#2::jdt2 724,{ end; OnTimer5000: enablenpc "uppertile"; @@ -917,7 +820,7 @@ OnDE2: emotion e_omg; end; } -job_duncer.gat,72,113,4 script Back dancer #3::jdt3 724,{ +job_duncer.gat,72,113,4 script Back Dancer#3::jdt3 724,{ end; OnTimer5000: enablenpc "lefttile"; @@ -933,7 +836,7 @@ OnDE2: emotion e_omg; end; } -job_duncer.gat,75,110,4 script Back dancer #4::jdt4 724,{ +job_duncer.gat,75,110,4 script Back Dancer#4::jdt4 724,{ end; OnTimer5000: enablenpc "lefttile"; @@ -949,6 +852,7 @@ OnDE2: emotion e_omg; end; } + job_duncer.gat,75,110,4 script jdt5 139,{ end; OnTimer5000: @@ -959,10 +863,11 @@ OnTimer5000: stopnpctimer; end; } + job_duncer.gat,69,113,4 script uppertile 139,1,1,{ end; OnTouch: - mapannounce "job_duncer.gat","Dancer: Sorry "+strcharinfo(0)+" but you failed to make it in time.",8; + mapannounce "job_duncer.gat","Dancer: Sorry "+strcharinfo(0)+", but you failed to make it in time.",8; disablenpc "uppertile"; disablenpc "lefttile"; disablenpc "righttile"; @@ -997,6 +902,7 @@ OnInit: disablenpc "lefttile"; end; } + job_duncer.gat,69,110,4 script middletile 139,1,1,{ end; OnTouch: @@ -1016,6 +922,7 @@ OnInit: disablenpc "middletile"; end; } + job_duncer.gat,72,110,4 script righttile 139,1,1,{ end; OnTouch: @@ -1035,6 +942,7 @@ OnInit: disablenpc "righttile"; end; } + job_duncer.gat,69,107,4 script lowertile 139,1,1,{ end; OnTouch: @@ -1054,21 +962,22 @@ OnInit: disablenpc "lowertile"; end; } -//= Some test NPC, activate these if you wanna try out the dance portion of the quest -//================================================================== -//job_duncer.gat,69,105,4 script TestDE1 98,{donpcevent "::OnDE1"; close;} -//job_duncer.gat,69,110,4 script TestDE2 98,{donpcevent "::OnDE2"; close;} -//job_duncer.gat,66,100,4 script WarpTilesON 98,{disablenpc "uppertile";disablenpc "lefttile";disablenpc "middletile";disablenpc "righttile";disablenpc "lowertile";close;} -//job_duncer.gat,72,100,4 script WarpTilesOFF 98,{enablenpc "uppertile";enablenpc "lefttile";enablenpc "middletile";enablenpc "righttile";enablenpc "lowertile";close;} -//================================================================== -//job_duncer.gat,69,102,4 script Tester NPC 100,{ -// mes "[TEST]"; -// mes "want to take the dancing test?"; -// next; -// menu "Yes",Lgo,"No",-; -// close; -//Lgo: -// warp "job_duncer.gat",70,112; -// initnpctimer "jobDq",1; -// end; -//} + + +//= old changelog +//= 1.1 Removed the warp I left here my accident, added a check for using +//= Improved Concentration and arrow shower, people could get away with it +//= [Fredzilla] +//= 1.0 I tried to keep as much the same from the Jap version as possible +//= this turned out to be quite hard, but on the whole it is the same script +//= I have added some new things, and changed some of the used commands, +//= along with some optimization. [Fredzilla] +//= 1.5 Added Baby Class Support [Fredzilla] +//= 1.6 Added a func which prevent advanced classes passing +//= 2nd Job Quests again. It also guides adv classes where +//= to go. [Lupus] +//= 2.0 Changed numbers to constants. [Vicious] +//= 2.1 Script check #1. [Lance] +//= 2.2 Fixed unpassable part, thx2 Alis [Lupus] +//= 2.3 Updated initnpctimer to attach player to jobDq script [Skotlex] +//= 2.4 Attached chrid to be able obtain player's SP on mobs death, optimized a bit [Lupus] -- cgit v1.2.3-60-g2f50