1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
|
//===== eAthena Script =======================================
//= Dancer Job Quest
//===== By: ==================================================
//= Kalen - Original jAthena
//= Fredzilla - Converted, Lupus
//===== Current Version: =====================================
//= 3.0
//===== 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]
//============================================================
//= 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.";
next;
menu "Leave the quest",-,"Cancel",L_Can;
warp "comodo.gat",193,149;
end;
L_Can:
close;
}
//= Warp man, takes you to the quest map (Comodo Theater)
comodo.gat,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.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,{
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 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.gat,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 @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.";
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.gat",104,109;
end;
}
//=Start of the 3rd quest is here, once complete you go back to Bijou to change job
job_duncer.gat,32,152,6 script Guide::dancew 69,{
end;
OnWarp:
warpwaitingpc "job_duncer.gat",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.gat,0,0,0 script jobDq -1,{
end;
OnStart:
OnTimer1000:
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;
callsub L_SUB1,2000;
end;
OnTimer7000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: To the bottom. [ \\/ ]",8;
callsub L_SUB5,2000;
end;
OnTimer11000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: To the left. [ < ]",8;
callsub L_SUB2,2000;
end;
OnTimer15000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: Go to the right. [ > ]",8;
callsub L_SUB4,2000;
end;
OnTimer19000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: Return to the middle. [ * ]",8;
callsub L_SUB3,3000;
end;
OnTimer21000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: Stay still!",8;
end;
OnTimer26000:
set $@DQSP,SP;
mapannounce "job_duncer.gat","Bijou: Use 'Attention Concentrate'!",8;
end;
OnTimer29000:
if($@DQSP==SP) goto OnTimer80000;
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: To the left. [ < ]",8;
callsub L_SUB2,2000;
end;
OnTimer33000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: To the bottom. [ \\/ ]",8;
end;
OnTimer35000:
mapannounce "job_duncer.gat","Bijou: Directly the right! [ > ]",8;
callsub L_SUB4,3000;
end;
OnTimer38000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: Stay still!",8;
end;
OnTimer41000:
mapannounce "job_duncer.gat","Bijou: The left * center * right * top [ < ] [ * ] [ > ] [ /\\ ]",8;
callsub L_SUB1,0;
end;
OnTimer47000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: To the right. [ > ] ",8;
callsub L_SUB4,3000;
end;
OnTimer50000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: The left * center * down * up: [ < ] [ * ] [ \\/ ] [ /\\ ] ",8;
callsub L_SUB1,0;
end;
OnTimer56000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: Once again, the left * center * down * up: [ < ] [ * ] [ \\/ ] [ /\\ ]",8;
callsub L_SUB1,0;
end;
OnTimer62000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: Down! [ \\/ ]",8;
callsub L_SUB5,2500;
end;
OnTimer65000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: To the left! [ < ]",8;
callsub L_SUB2,2500;
end;
OnTimer68000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: Return to the middle. [ * ]",8;
callsub L_SUB3,2500;
end;
OnTimer71000:
donpcevent "::OnDE1";
mapannounce "job_duncer.gat","Bijou: Kill the monster using Arrow Shower!",8;
set $@DQSP,SP;
monster "job_duncer.gat",69,106,"Poring",1002,1,"jddie::OnDie";
end;
OnTimer76000:
killmonsterall "job_duncer.gat";
end;
OnTimer80000:
mapannounce "job_duncer.gat","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.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;
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.gat,0,0,0 script jddie -1,{
OnDie:
if($@DQRID && isloggedin($@DQRID)) {
attachrid($@DQRID);
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,9;
}
}
disablenpc "uppertile";
disablenpc "lefttile";
disablenpc "righttile";
disablenpc "lowertile";
disablenpc "middletile";
stopnpctimer "jobDq";
enablewaitingroomevent "dancew";
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,{
end;
OnTimer5000:
enablenpc "lefttile";
enablenpc "middletile";
enablenpc "righttile";
enablenpc "lowertile";
stopnpctimer;
end;
OnDE1:
emotion 21;
end;
OnDE2:
emotion e_omg;
end;
}
job_duncer.gat,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.gat,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.gat,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.gat,75,110,4 script jdt5 139,{
end;
OnTimer5000:
enablenpc "lefttile";
enablenpc "middletile";
enablenpc "righttile";
enablenpc "uppertile";
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;
disablenpc "uppertile";
disablenpc "lefttile";
disablenpc "righttile";
disablenpc "lowertile";
disablenpc "middletile";
enablewaitingroomevent "dancew";
stopnpctimer "jobDq";
areawarp "job_duncer.gat",68,112,70,114,"job_duncer.gat",69,102;
donpcevent "::OnDE2";
end;
OnDE1:
OnInit:
disablenpc "uppertile";
end;
}
job_duncer.gat,66,110,4 script lefttile 139,1,1,{
end;
OnTouch:
mapannounce "job_duncer.gat","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.gat",65,109,67,111,"job_duncer.gat",69,102;
donpcevent "::OnDE2";
end;
OnDE1:
OnInit:
disablenpc "lefttile";
end;
}
job_duncer.gat,69,110,4 script middletile 139,1,1,{
end;
OnTouch:
mapannounce "job_duncer.gat","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.gat",68,109,70,111,"job_duncer.gat",69,102;
donpcevent "::OnDE2";
end;
OnDE1:
OnInit:
disablenpc "middletile";
end;
}
job_duncer.gat,72,110,4 script righttile 139,1,1,{
end;
OnTouch:
mapannounce "job_duncer.gat","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.gat",71,109,73,111,"job_duncer.gat",69,102;
donpcevent "::OnDE2";
end;
OnDE1:
OnInit:
disablenpc "righttile";
end;
}
job_duncer.gat,69,107,4 script lowertile 139,1,1,{
end;
OnTouch:
mapannounce "job_duncer.gat","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.gat",68,106,70,108,"job_duncer.gat",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]
|