123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- //===== 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;
- }
|