Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #include <streamer>
- new bool:IsPlayerInAnyRace[MAX_PLAYERS] = false;
- new bool:IsRaceReady = false;
- new RaceID = 0;
- new LVAtoLSARCP[MAX_PLAYERS];
- enum eLVAtoLSA
- {
- Race_Name[128],
- Float:Spawn1X,
- Float:Spawn1Y,
- Float:Spawn1Z,
- Float:Spawn1Rot,
- Float:Spawn2X,
- Float:Spawn2Y,
- Float:Spawn2Z,
- Float:Spawn2Rot,
- Float:Spawn3X,
- Float:Spawn3Y,
- Float:Spawn3Z,
- Float:Spawn3Rot,
- Float:Spawn4X,
- Float:Spawn4Y,
- Float:Spawn4Z,
- Float:Spawn4Rot,
- Float:CheckPointOneX,
- Float:CheckPointOneY,
- Float:CheckPointOneZ,
- };
- new aLVAtoLSA[][eLVAtoLSA] =
- {
- {"LV Airport to LS Airport", 1488.6746, 1772.4385, 10.4721, 179.4206, 1485.4292, 1772.4133, 10.4712, 180.8636, 1481.7975, 1772.2255, 10.4715, 181.3873, 1478.2819, 1772.1654, 10.4711, 180.8334, 1477.5648, 1573.8988, 10.4702}
- };
- forward UnfreezePlayerWhenRaceStarts(playerid);
- public OnPlayerEnterDynamicRaceCP(playerid, checkpointid)
- {
- new cpid = 45;
- if(checkpointid == LVAtoLSARCP[playerid])
- {
- switch(cpid)
- {
- case 0:
- {
- DestroyDynamicRaceCP(LVAtoLSARCP[playerid]);
- LVAtoLSARCP[playerid] = CreateDynamicRaceCP(0, 1477.4507, 1350.2292, 10.4852, 1434.1123, 1261.1077, 10.4770, 10, -1, -1, playerid, 500.0, -1, 0);
- cpid = 1;
- }
- case 1:
- {
- DestroyDynamicRaceCP(LVAtoLSARCP[playerid]);
- LVAtoLSARCP[playerid] = CreateDynamicRaceCP(0, 1388.6649, 1339.0302, 10.4805, 1388.9872, 1639.1466, 10.4733, 10, -1, -1, playerid, 500.0, -1, 0);
- cpid = 2;
- }
- case 2:
- {
- DestroyDynamicRaceCP(LVAtoLSARCP[playerid]);
- LVAtoLSARCP[playerid] = CreateDynamicRaceCP(0, 1388.9872, 1639.1466, 10.4733, 1432.1963, 1732.1799, 10.4765, 10, -1, -1, playerid, 500.0, -1, 0);
- cpid = 3;
- }
- case 3:
- {
- DestroyDynamicRaceCP(LVAtoLSARCP[playerid]);
- LVAtoLSARCP[playerid] = CreateDynamicRaceCP(0, 1432.1963, 1732.1799, 10.4765, 0.0, 0.0, 0.0, 10, -1, -1, playerid, 500.0, -1, 0);
- cpid = 4;
- }
- }
- }
- return 1;
- }
- public UnfreezePlayerWhenRaceStarts(playerid)
- {
- TogglePlayerControllable(playerid, 1);
- }
- CMD:startrace(playerid, params[])
- {
- new string[144], rid;
- if(sscanf(params, "d", rid)) return SendMessage(playerid, -1, "USAGE: /startrace (RaceID: 0 - 1)");
- if(!IsRaceReady)
- {
- RaceID = rid;
- if(RaceID == 1)
- {
- IsRaceReady = true;
- format(string, sizeof(string), "The race %s is now ready. Use /joinrace to take part, race starts in 45 seconds.", aLVAtoLSA[0][Race_Name]);
- SendMessageToAll(-1, string);
- }
- }
- return 1;
- }
- CMD:joinrace(playerid, params[])
- {
- new vehid;
- if(IsPlayerInAnyRace[playerid]) return SendMessage(playerid, -1, "You are already in an active race.");
- if(!IsRaceReady) return SendMessage(playerid, -1, "There is no race currently active.");
- else if(IsRaceReady)
- {
- if(RaceID == 1)
- {
- IsPlayerInAnyRace[playerid] = true;
- if(IsPlayerInAnyVehicle(playerid))
- {
- vehid = GetPlayerVehicleID(playerid);
- SetPlayerPos(playerid, aLVAtoLSA[0][Spawn1X], aLVAtoLSA[0][Spawn1Y], aLVAtoLSA[0][Spawn1Z]);
- SetVehiclePos(vehid, aLVAtoLSA[0][Spawn1X], aLVAtoLSA[0][Spawn1Y], aLVAtoLSA[0][Spawn1Z]);
- SetVehicleZAngle(vehid, aLVAtoLSA[0][Spawn1Rot]);
- PutPlayerInVehicle(playerid, vehid, 0);
- TogglePlayerControllable(playerid, 0);
- SetTimerEx("UnfreezePlayerWhenRaceStarts", 45000, false, "i", playerid);
- LVAtoLSARCP[playerid] = CreateDynamicRaceCP(0, aLVAtoLSA[0][CheckPointOneX], aLVAtoLSA[0][CheckPointOneY], aLVAtoLSA[0][CheckPointOneZ], 1477.4507, 1350.2292, 10.4852, 10, -1, -1, pla, 500.0, -1, 0);
- }
- }
- }
- return 1;
- }
- stock PlayerName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, MAX_PLAYER_NAME);
- return name;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement