diff options
Diffstat (limited to 'npc/custom/morroc_raceway.txt')
-rw-r--r-- | npc/custom/morroc_raceway.txt | 245 |
1 files changed, 245 insertions, 0 deletions
diff --git a/npc/custom/morroc_raceway.txt b/npc/custom/morroc_raceway.txt new file mode 100644 index 000000000..910cdc592 --- /dev/null +++ b/npc/custom/morroc_raceway.txt @@ -0,0 +1,245 @@ +//===== eAthena Script =======================================
+//= Morroc Raceway Script
+//===== By: ==================================================
+//= acky (god@acky.com)
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= Any eAthena Version
+//===== Description: =========================================
+//= Lets players race around Morroc (pvp_y_1-5.gat)
+//===== Additional Comments: =================================
+//= If there are more than 3 players, at least 3 people
+//= must finish before a new race can be started.
+//=
+//= If there are less than 3 players, at least 1 person
+//= must finish before a new race can be started.
+//=
+//= Removed permanent global variables
+//============================================================
+
+//Warps you into race way
+morocc.gat,166,105,6 script Race Girl 116,{
+mes "[Race Girl]";
+mes "Would you like to visit ^0000FFMorroc Raceway^000000?";
+next;
+menu "Yes",L_Warp,"No",-;
+mes "[Race Girl]";
+mes "Alright, talk to me again when you want to go.";
+close;
+
+L_Warp:
+warp "pvp_y_1-5.gat",165,256;
+close;
+}
+
+//Warps you out of raceway
+pvp_y_1-5.gat,169,265,5 script Race Girl 116,{
+mes "[Race Girl]";
+mes "Welcome to Morroc Raceway!";
+next;
+menu "Information",-,"Leave",L_Warp,"Cancel",L_Cancel;
+mes "[Race Girl]";
+mes "Someone must click on the Starter NPC to start the race.";
+next;
+mes "[Race Girl]";
+mes "Once the race is started, run around Morroc anti-clockwise.";
+next;
+mes "[Race Girl]";
+mes "You must reach all the checkpoints - No cheating!";
+close;
+
+L_Warp:
+warp "morocc.gat",165,101;
+
+L_Cancel:
+mes "[Race Girl]";
+mes "Come again soon!";
+close;
+}
+
+//Counts down and starts race
+pvp_y_1-5.gat,145,269,5 script Starter 733,{
+if ($@race != 0) goto L_Started;
+if ($@counting != 0) goto L_Started;
+if ($@racecount == 1) goto L_Started;
+L_Menu:
+mes "[Race Starter]";
+mes "Please stay on the Eastern side of me.";
+menu "Start Race",L_Count,"Cancel",-;
+close;
+
+ L_Count:
+ set $@counting,1;
+ mes "Counting down...";
+ addtimer 1000, "Starter::OnCount1000";
+ addtimer 2000, "Starter::OnCount2000";
+ addtimer 3000, "Starter::OnCount3000";
+ addtimer 4000, "Starter::OnCount4000";
+ announce strcharinfo(0) + "Started a countdown",1;
+ announce "Get ready to race!",1;
+ close;
+
+
+ OnCount1000:
+ announce "[3]",1;
+ end;
+
+ OnCount2000:
+ announce "[2]",1;
+ end;
+
+ OnCount3000:
+ announce "[1]",1;
+ end;
+
+ OnCount4000:
+ emotion 27;
+ specialeffect 267;
+ announce "[GO!]",1;
+ set $@race,1;
+ set $@position,0;
+ set $@counting,0;
+ set $@raceid,rand(100000,999999);
+ end;
+
+
+L_Started:
+if ((getmapusers("pvp_y_1-5.gat") < 3) && ($@position > 0)) goto L_Menu;
+if ($@position > 2) goto L_Menu;
+mes "[Starter]";
+mes "Race in progress";
+close;
+
+OnInit:
+set $@race,0;
+set $@position,0;
+set $@racecount,0;
+end;
+}
+
+//Checkpoint 1
+pvp_y_1-5.gat,144,262,5 script Check Point 1 111,0,5,{
+end;
+OnTouch:
+if (@raceid != $@raceid) goto L_Started;
+if (@race == 6) goto L_Finished;
+if ($@race == 1) goto L_Started;
+mes "The race has not started, please move back.";
+close;
+L_Started:
+set @race,1;
+set @raceid,$@raceid;
+end;
+L_Finished:
+mes "You have already completed the race.";
+close;
+}
+
+//Checkpoint 2
+pvp_y_1-5.gat,73,247,5 script Check Point 2 111,6,6,{
+end;
+OnTouch:
+if (@race != 1) goto L_Miss;
+set @race,2;
+announce "[" + strcharinfo(0) +"] has reached Checkpoint [1]",1;
+end;
+L_Miss:
+mes "You have missed a Checkpoint. Please go back.";
+close;
+}
+
+//Checkpoint 3
+pvp_y_1-5.gat,77,44,5 script Check Point 3 111,6,6,{
+end;
+OnTouch:
+if (@race != 2) goto L_Miss;
+set @race,3;
+announce "[" + strcharinfo(0) +"] has reached Checkpoint [2]",1;
+end;
+L_Miss:
+mes "You have missed a Checkpoint. Please go back.";
+close;
+}
+
+//Checkpoint 3
+pvp_y_1-5.gat,249,60,5 script Check Point 4 111,6,6,{
+end;
+OnTouch:
+if (@race != 3) goto L_Miss;
+set @race,4;
+announce "[" + strcharinfo(0) +"] has reached Checkpoint [3]",1;
+end;
+L_Miss:
+mes "You have missed a Checkpoint. Please go back.";
+close;
+}
+
+//Checkpoint 4
+pvp_y_1-5.gat,255,256,5 script Check Point 5 111,6,6,{
+end;
+OnTouch:
+if (@race != 4) goto L_Miss;
+set @race,5;
+announce "[" + strcharinfo(0) +"] has reached Checkpoint [4]",1;
+end;
+L_Miss:
+mes "You have missed a Checkpoint. Please go back.";
+close;
+}
+
+//Finish Line
+pvp_y_1-5.gat,174,244,5 script Finish Line 111,6,6,{
+end;
+OnTouch:
+if (@raceid != $@raceid) goto L_WrongRace;
+if (@race != 5) goto L_Miss;
+set @race,6;
+set $@position,$@position+1;
+announce "[" + strcharinfo(0) +"] has reached The Finish line! [Position: " + $@position + "]",1;
+end;
+L_Miss:
+mes "You have missed a Checkpoint. Please go back.";
+close;
+L_WrongRace:
+mes "You are not in this race.";
+close;
+}
+
+//Check Point Marker Flags
+pvp_y_1-5.gat,144,267,4 script Check Point 1 722,{
+end;
+}
+pvp_y_1-5.gat,144,257,4 script Check Point 1 722,{
+end;
+}
+pvp_y_1-5.gat,70,252,3 script Check Point 2 722,{
+end;
+}
+pvp_y_1-5.gat,77,243,3 script Check Point 2 722,{
+end;
+}
+pvp_y_1-5.gat,81,48,1 script Check Point 3 722,{
+end;
+}
+pvp_y_1-5.gat,72,40,1 script Check Point 3 722,{
+end;
+}
+pvp_y_1-5.gat,244,65,7 script Check Point 4 722,{
+end;
+}
+pvp_y_1-5.gat,252,57,7 script Check Point 4 722,{
+end;
+}
+pvp_y_1-5.gat,259,260,5 script Check Point 5 722,{
+end;
+}
+pvp_y_1-5.gat,251,252,5 script Check Point 5 722,{
+end;
+}
+pvp_y_1-5.gat,174,249,4 script Finish Line 722,{
+end;
+}
+pvp_y_1-5.gat,174,238,4 script Finish Line 722,{
+end;
+}
\ No newline at end of file |