//===== eAthena Script =======================================
//= Dancer Job Quest
//===== By: ==================================================
//= Kalen - Original jAthena
//= Fredzilla - Converted, Lupus
//===== Current Version: =====================================
//= 3.1
//===== Compatible With: =====================================
//= eAthena 9880+
//===== Description: =========================================
//= Dancer job quest based off a jAthena script and other sources for clarity
//===== Additional Comments: =================================
//= 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]
//= 3.1 Implemented JOBLVL as in other quests [Lupus]
//============================================================
//= Warning Warp to escape the quest if need to
job_duncer,69,165,1 script DQWWarp 45,1,1,{
mes "[Warning]";
mes "This is the way out, this will cancel your quest if you leave.";
next;
menu "Leave the quest",-,"Cancel",L_Can;
warp "comodo",193,149;
end;
L_Can:
close;
}
//= Warp man, takes you to the quest map (Comodo Theater)
comodo,193,151,4 script Bor Robin 86,{
callfunc "F_BlockHigh",Job_Archer_High,"High Archer",Job_Gypsy,"Gypsy","Bor Robin";
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 "I've seen right before my eyes, more than I could count.";
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.";
next;
mes "[Bor Robin]";
mes "I can take you to the Comodo Theater if you want.";
mes " ";
mes "What have you got to say?";
next;
menu "Can you take me to the Theater?",L1,"I want to Leave",-;
mes "[Bor Robin]";
mes "Come back when you feel ready.";
close;
L1:
mes "[Bor Robin]";
mes "I will take you now.";
close2;
warp "job_duncer",70,49;
end;
}
//= 1st quest NPC, asks for Items and/or money, then passes you onto the next NPC
job_duncer,43,93,4 script Aire 724,{
mes "[Aire]";
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 "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;
}
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;
mes "......";
next;
mes "......Filling in information......";
next;
mes "......";
next;
mes "[Aire]";
mes "Your name......";
mes strcharinfo(0)+"......";
mes "That is a cute name!";
next;
mes "[Aire]";
mes "You will need to do a little waiting.";
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.";
set JBLVL, JobLevel; // used to determine what item to get at the end
set DANC_Q,1;
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;
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;
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]";
return;
}
//= 2nd "Quest" and Job changer for after the 3rd Quest
job_duncer,95,93,4 script Bijou 101,{
mes "[Bijou]";
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 @gift,JBLVL;
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(@gift==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.";
mes "First you need to fill in an application, and be accepted.";
mes "Once accepted you will need to give the payment, which can be all items, or some items and zeny.";
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;
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;
set @dcpoint,0;
if(rand(2)) goto L_QUIZ2;
//-------
mes "[Bijou]";
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;
set @dcpoint,@dcpoint+10;
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. ^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",-;
set @dcpoint,@dcpoint+10;
L1_3:
// *
mes "[Bijou]";
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. ^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. ^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. ^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. ^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. ^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. ^00FF00Subject:^000000 General Knowledge.";
mes "What is my name?";
next;
menu "Gijou",L1_10,"Bijon",L1_10,"Bijou",-,"Bojou",L1_10;
set @dcpoint,@dcpoint+10;
// *
L1_10:
mes "[Bijou]";
mes "10. ^00FF00Subject:^000000 Dancer + Bard combination playing skill.";
mes "What is the effect of ^777777'Lullaby'^000000 ?";
next;
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 L_ENDQ;
//-------
L_QUIZ2:
mes "[Bijou]";
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. ^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. ^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. ^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. ^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;
set @dcpoint,@dcpoint+10;
goto L2_6;
L2_5a:
set @dcpoint,@dcpoint-100;
emotion e_dots;
mes ".........";
next;
L2_6:
mes "[Bijou]";
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. ^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. ^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. ^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. ^00FF00Subject:^000000 Places around Comodo.";
mes "How many lighthouses exist on Comodo Island?";
next;
menu "1",-,"2",L_ENDQ,"3",L_ENDQ;
set @dcpoint,@dcpoint+10;
//-------
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 || (@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;
}
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",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.";
next;
mes "[Bijou]";
mes "There can only be ^0000FFone person^000000 at a time dancing on the stage.";
next;
mes "[Bijou]";
mes "If there are people are infront of you stay in the ^0000FFwaiting room^000000 untill you hear the person infront of you passes or fails their test.";
next;
mes "[Bijou]";
mes "Click in the window above the waiting room guide to get sent to the dance stage, if there is someone already on the stage it will not allow you to enter, you will need to wait.";
next;
mes "[Bijou]";
mes "When you get put onto the stage get into a ^0000FFposition which can look around the whole stage^000000.";
next;
mes "[Bijou]";
mes "Once you get onto the stage I will annouce that the time has started.";
mes "Then I will start calling out directions for you to take.";
next;
mes "[Bijou]";
mes "You then need to follow them directions as quickly as possible.";
mes "^FF0000[ < ]^000000 = Move to the left";
mes "^FF0000[ > ]^000000 = Move to the right";
mes "^FF0000[ * ]^000000 = Go back to the center of the stage";
mes "^FF0000[ \\/ ]^000000 = Move down towards the front of the stage";
mes "^FF0000[ /\\ ]^000000 = Move up towards the back of the stage";
next;
mes "[Bijou]";
mes "There are some other things you will need to do, so just be ready with your skills and bow just incase.";
next;
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;
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",104,109;
end;
}
//=Start of the 3rd quest is here, once complete you go back to Bijou to change job
job_duncer,32,152,6 script Guide::dancew 69,{
end;
OnWarp:
warpwaitingpc "job_duncer",70,112,1;
set $@DQRID,$@warpwaitingpc[0];
if( attachrid($@DQRID)==0 ) goto OnInit;
disablewaitingroomevent;
initnpctimer "jobDq",1;
end;
OnInit:
set $@DQRID,0;
waitingroom "Dance lesson waiting room",20,"dancew::OnWarp",1;
end;
}
job_duncer,0,0,0 script jobDq -1,{
end;
OnStart:
OnTimer1000:
mapannounce "job_duncer","Bijou: The test begins. Total time allowed is 1 minute.",8;
end;
OnTimer3000:
mapannounce "job_duncer","Bijou: Step Up! [ /\\ ]",8;
callsub L_SUB1,2000;
end;
OnTimer7000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: To the bottom. [ \\/ ]",8;
callsub L_SUB5,2000;
end;
OnTimer11000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: To the left. [ < ]",8;
callsub L_SUB2,2000;
end;
OnTimer15000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: Go to the right. [ > ]",8;
callsub L_SUB4,2000;
end;
OnTimer19000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: Return to the middle. [ * ]",8;
callsub L_SUB3,3000;
end;
OnTimer21000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: Stay still!",8;
end;
OnTimer26000:
set $@DQSP,SP;
mapannounce "job_duncer","Bijou: Use 'Attention Concentrate'!",8;
end;
OnTimer29000:
if($@DQSP==SP) goto OnTimer80000;
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: To the left. [ < ]",8;
callsub L_SUB2,2000;
end;
OnTimer33000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: To the bottom. [ \\/ ]",8;
end;
OnTimer35000:
mapannounce "job_duncer","Bijou: Directly the right! [ > ]",8;
callsub L_SUB4,3000;
end;
OnTimer38000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: Stay still!",8;
end;
OnTimer41000:
mapannounce "job_duncer","Bijou: The left * center * right * top [ < ] [ * ] [ > ] [ /\\ ]",8;
callsub L_SUB1,0;
end;
OnTimer47000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: To the right. [ > ] ",8;
callsub L_SUB4,3000;
end;
OnTimer50000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: The left * center * down * up: [ < ] [ * ] [ \\/ ] [ /\\ ] ",8;
callsub L_SUB1,0;
end;
OnTimer56000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: Once again, the left * center * down * up: [ < ] [ * ] [ \\/ ] [ /\\ ]",8;
callsub L_SUB1,0;
end;
OnTimer62000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: Down! [ \\/ ]",8;
callsub L_SUB5,2500;
end;
OnTimer65000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: To the left! [ < ]",8;
callsub L_SUB2,2500;
end;
OnTimer68000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: Return to the middle. [ * ]",8;
callsub L_SUB3,2500;
end;
OnTimer71000:
donpcevent "::OnDE1";
mapannounce "job_duncer","Bijou: Kill the monster using Arrow Shower!",8;
set $@DQSP,SP;
monster "job_duncer",69,106,"Poring",1002,1,"jddie::OnDie";
end;
OnTimer76000:
killmonsterall "job_duncer";
end;
OnTimer80000:
mapannounce "job_duncer","Dancer: You were a bit too slow, sorry but you have failed.",8;
disablenpc "uppertile";
disablenpc "lefttile";
disablenpc "righttile";
disablenpc "lowertile";
disablenpc "middletile";
if(getareausers("job_duncer",68,106,70,114)) areawarp "job_duncer",68,106,70,114,"job_duncer",69,102;
if(getareausers("job_duncer",65,109,73,111)) areawarp "job_duncer",65,109,73,111,"job_duncer",69,102;
stopnpctimer;
enablewaitingroomevent "dancew";
end;
L_SUB1:
disablenpc "lefttile";
disablenpc "middletile";
disablenpc "righttile";
disablenpc "lowertile";
setnpctimer getarg(0),"jdt1";
startnpctimer "jdt1";
return;
L_SUB2:
disablenpc "uppertile";
disablenpc "middletile";
disablenpc "righttile";
disablenpc "lowertile";
setnpctimer getarg(0),"jdt2";
startnpctimer "jdt2";
return;
L_SUB3:
disablenpc "uppertile";
disablenpc "lefttile";
disablenpc "righttile";
disablenpc "lowertile";
setnpctimer getarg(0),"jdt3";
startnpctimer "jdt3";
return;
L_SUB4:
disablenpc "lefttile";
disablenpc "middletile";
disablenpc "uppertile";
disablenpc "lowertile";
setnpctimer getarg(0),"jdt4";
startnpctimer "jdt4";
return;
L_SUB5:
disablenpc "lefttile";
disablenpc "middletile";
disablenpc "righttile";
disablenpc "uppertile";
setnpctimer getarg(0),"jdt5";
startnpctimer "jdt5";
return;
}
job_duncer,0,0,0 script jddie -1,{
OnDie:
if($@DQRID && isloggedin($@DQRID)) {
attachrid($@DQRID);
if($@DQSP==SP)
mapannounce "job_duncer","Dancer: Sorry "+strcharinfo(0)+", but you failed to use arrow shower to kill the monster",8;
else {
mapannounce "job_duncer","Dancer: Well done, you were very skillful, and have passed the test.",8;
set DANC_Q,9;
}
}
disablenpc "uppertile";
disablenpc "lefttile";
disablenpc "righttile";
disablenpc "lowertile";
disablenpc "middletile";
stopnpctimer "jobDq";
enablewaitingroomevent "dancew";
if($@DQRID && isloggedin($@DQRID))
warp "job_duncer",69,102;
set $@DQRID,0;
set $@DQSP,0;
end;
}
job_duncer,63,110,4 script Back Dancer#1::jdt1 724,{
end;
OnTimer5000:
enablenpc "lefttile";
enablenpc "middletile";
enablenpc "righttile";
enablenpc "lowertile";
stopnpctimer;
end;
OnDE1:
emotion 21;
end;
OnDE2:
emotion e_omg;
end;
}
job_duncer,66,113,4 script Back Dancer#2::jdt2 724,{
end;
OnTimer5000:
enablenpc "uppertile";
enablenpc "middletile";
enablenpc "righttile";
enablenpc "lowertile";
stopnpctimer;
end;
OnDE1:
emotion e_no1;
end;
OnDE2:
emotion e_omg;
end;
}
job_duncer,72,113,4 script Back Dancer#3::jdt3 724,{
end;
OnTimer5000:
enablenpc "lefttile";
enablenpc "uppertile";
enablenpc "righttile";
enablenpc "lowertile";
stopnpctimer;
end;
OnDE1:
emotion 21;
end;
OnDE2:
emotion e_omg;
end;
}
job_duncer,75,110,4 script Back Dancer#4::jdt4 724,{
end;
OnTimer5000:
enablenpc "lefttile";
enablenpc "middletile";
enablenpc "uppertile";
enablenpc "lowertile";
stopnpctimer;
end;
OnDE1:
emotion 21;
end;
OnDE2:
emotion e_omg;
end;
}
job_duncer,75,110,4 script jdt5 139,{
end;
OnTimer5000:
enablenpc "lefttile";
enablenpc "middletile";
enablenpc "righttile";
enablenpc "uppertile";
stopnpctimer;
end;
}
job_duncer,69,113,4 script uppertile 139,1,1,{
end;
OnTouch:
mapannounce "job_duncer","Dancer: Sorry "+strcharinfo(0)+", but you failed to make it in time.",8;
disablenpc "uppertile";
disablenpc "lefttile";
disablenpc "righttile";
disablenpc "lowertile";
disablenpc "middletile";
enablewaitingroomevent "dancew";
stopnpctimer "jobDq";
areawarp "job_duncer",68,112,70,114,"job_duncer",69,102;
donpcevent "::OnDE2";
end;
OnDE1:
OnInit:
disablenpc "uppertile";
end;
}
job_duncer,66,110,4 script lefttile 139,1,1,{
end;
OnTouch:
mapannounce "job_duncer","Dancer: Sorry "+strcharinfo(0)+", but you failed to make it in time.",8;
disablenpc "uppertile";
disablenpc "lefttile";
disablenpc "righttile";
disablenpc "lowertile";
disablenpc "middletile";
enablewaitingroomevent "dancew";
stopnpctimer "jobDq";
areawarp "job_duncer",65,109,67,111,"job_duncer",69,102;
donpcevent "::OnDE2";
end;
OnDE1:
OnInit:
disablenpc "lefttile";
end;
}
job_duncer,69,110,4 script middletile 139,1,1,{
end;
OnTouch:
mapannounce "job_duncer","Dancer: Sorry "+strcharinfo(0)+", but you failed to make it in time.",8;
disablenpc "uppertile";
disablenpc "lefttile";
disablenpc "righttile";
disablenpc "lowertile";
disablenpc "middletile";
enablewaitingroomevent "dancew";
stopnpctimer "jobDq";
areawarp "job_duncer",68,109,70,111,"job_duncer",69,102;
donpcevent "::OnDE2";
end;
OnDE1:
OnInit:
disablenpc "middletile";
end;
}
job_duncer,72,110,4 script righttile 139,1,1,{
end;
OnTouch:
mapannounce "job_duncer","Dancer: Sorry "+strcharinfo(0)+", but you failed to make it in time.",8;
disablenpc "uppertile";
disablenpc "lefttile";
disablenpc "righttile";
disablenpc "lowertile";
disablenpc "middletile";
enablewaitingroomevent "dancew";
stopnpctimer "jobDq";
areawarp "job_duncer",71,109,73,111,"job_duncer",69,102;
donpcevent "::OnDE2";
end;
OnDE1:
OnInit:
disablenpc "righttile";
end;
}
job_duncer,69,107,4 script lowertile 139,1,1,{
end;
OnTouch:
mapannounce "job_duncer","Dancer: Sorry "+strcharinfo(0)+", but you failed to make it in time.",8;
disablenpc "uppertile";
disablenpc "lefttile";
disablenpc "righttile";
disablenpc "lowertile";
disablenpc "middletile";
enablewaitingroomevent "dancew";
stopnpctimer "jobDq";
areawarp "job_duncer",68,106,70,108,"job_duncer",69,102;
donpcevent "::OnDE2";
end;
OnDE1:
OnInit:
disablenpc "lowertile";
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]