123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- //===== rAthena Script =======================================
- //= Morocc Raceway
- //===== By: ==================================================
- //= acky
- //===== Current Version: =====================================
- //= 1.3
- //===== Compatible With: =====================================
- //= rAthena Project
- //===== Description: =========================================
- //= Lets players race around Morocc (pvp_y_1-5)
- //===== 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
- //= 1.2 Removed Duplicates [Silent]
- //= 1.3 Replaced effect numerics with constants. [Samuray22]
- //============================================================
- //Warps you into race way
- morocc,166,105,6 script Race Girl#01 116,{
- mes "[Race Girl]";
- mes "Would you like to visit ^0000FFMorocc 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",165,256;
- close;
- }
- //Warps you out of raceway
- pvp_y_1-5,169,265,5 script Race Girl#02 116,{
- mes "[Race Girl]";
- mes "Welcome to Morocc 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 Morocc anti-clockwise.";
- next;
- mes "[Race Girl]";
- mes "You must reach all the checkpoints - No cheating!";
- close;
- L_Warp:
- warp "morocc",165,101;
- L_Cancel:
- mes "[Race Girl]";
- mes "Come again soon!";
- close;
- }
- //Counts down and starts race
- pvp_y_1-5,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 ET_GO;
- specialeffect EF_CHIMTO;
- 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") < 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,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,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,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,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,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,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,144,267,4 script Check Point 1#01 722,{
- end;
- }
- pvp_y_1-5,144,257,4 script Check Point 1#02 722,{
- end;
- }
- pvp_y_1-5,70,252,3 script Check Point 2#01 722,{
- end;
- }
- pvp_y_1-5,77,243,3 script Check Point 2#02 722,{
- end;
- }
- pvp_y_1-5,81,48,1 script Check Point 3#01 722,{
- end;
- }
- pvp_y_1-5,72,40,1 script Check Point 3#02 722,{
- end;
- }
- pvp_y_1-5,244,65,7 script Check Point 4#01 722,{
- end;
- }
- pvp_y_1-5,252,57,7 script Check Point 4#02 722,{
- end;
- }
- pvp_y_1-5,259,260,5 script Check Point 5#01 722,{
- end;
- }
- pvp_y_1-5,251,252,5 script Check Point 5#02 722,{
- end;
- }
- pvp_y_1-5,174,249,4 script Finish Line#01 722,{
- end;
- }
- pvp_y_1-5,174,238,4 script Finish Line#02 722,{
- end;
- }
|