SetPlayerCheckpoint(playerid, POSITION 1, POSITION 2, POSITION 3, SIZE); // ex.: (playerid, 3000.0, -200.0, -300.0, 5.0);
By the SA:MP limits, server never show more than 1 checkpoint per time. So, checkpoints have a STREAM value, when you get closer, it's appear for player.
Check your checkpoint stream value to appear only when player get closer in a range, as 3.0 or 10.0.. PHP код:
|
Compare your self.
Normal: https://sampwiki.blast.hk/wiki/SetPlayerCheckpoint Race: https://sampwiki.blast.hk/wiki/SetPlayerRaceCheckpoint |
if(PetrolJob[playerid] == 1){ PetrolJob[playerid] = 2; SetPlayerCheckpoint(playerid,1342.4460,464.8088,19 .8828,277.6536); return 1; } if(PetrolJob[playerid] == 2){ PetrolJob[playerid] = 3; SetPlayerCheckpoint(playerid,1003.4263,-941.8485,41.8079,10); return 1; } if(PetrolJob[playerid] == 3){ PetrolJob[playerid] = 1; SetPlayerCheckpoint(playerid,-97.8173,-1166.7585,2.2650,10); return 1; } return 1; } |
if(PetrolJob[playerid] == 1){
PetrolJob[playerid] = 2;
return SetPlayerRaceCheckpoint(playerid,0,1342.4460, 464.8088, 19.8828,1003.4263,-941.8485,41.8079,10);
if(PetrolJob[playerid] == 2){
PetrolJob[playerid] = 3;
return SetPlayerRaceCheckpoint(playerid,0,1003.4263,-941.8485,41.8079,-97.8173,-1166.7585,2.2650,10);
if(PetrolJob[playerid] == 3){
PetrolJob[playerid] = 1;
return SetPlayerRaceCheckpoint(playerid,1,-97.8173,-1166.7585,2.2650,0.0,0.0,0.0,10);}
return 1;
}
Check your first coords, you have 4 coords and it will be 3.
Try that code: PHP код:
|
#include <a_samp> #define COLOR_DARKGOLD 0x808000AA #define COLOR_RED 0xFF0000AA #define COLOR_YELLOW 0xFFFF00AA new PetrolJob[256]; public OnFilterScriptInit() { AddStaticVehicle(403,2057.3081,-1939.9397,13.9432,270.4501,0,0); // Petrol Trucker (Spawn Front) AddStaticVehicle(584,2045.2939,-1939.9041,13.0633,268.2366,0,0); // Petrol Trucker (Spawn Back) AddStaticVehicle(403,2032.4635,-1939.7537,13.9389,271.0817,0,0); // Petrol Trucker (Spawn Front) AddStaticVehicle(584,2020.9797,-1940.1196,13.9476,270.5276,0,0); // Petrol Trucker (Spawn Back) } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/petrol", cmdtext, true, 10) == 0) { if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 403) { if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID( playerid))){ SendClientMessage(playerid,COLOR_RED,"* You don't have a trailer attached to the vehicle!"); return 1; } if(PetrolJob[playerid] != 1 && PetrolJob[playerid] != 2 && PetrolJob[playerid] != 3){ PetrolJob[playerid] = 1; } new name[MAX_PLAYER_NAME], string[48]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string), "* %s is now a Petrol Trucker.", name ); SendClientMessageToAll(COLOR_YELLOW, string); if(PetrolJob[playerid] == 1){ PetrolJob[playerid] = 2; SetPlayerCheckpoint(playerid,1944.7424,-1771.1267,13.1157,10); return 1; } if(PetrolJob[playerid] == 2){ PetrolJob[playerid] = 3; SetPlayerCheckpoint(playerid,1003.4263,-941.8485,41.8079,10); return 1; } if(PetrolJob[playerid] == 3){ PetrolJob[playerid] = 1; SetPlayerCheckpoint(playerid,-97.8173,-1166.7585,2.2650,10); return 1; } return 1; } SendClientMessage(playerid, COLOR_RED,"You have to be in a courier truck to start the job"); } return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 403) { SendClientMessage(playerid, COLOR_RED, "* You can start the Petrol Trucking by typing /petrol"); } return 0; } public OnPlayerEnterCheckpoint(playerid) { if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 403) { if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID( playerid))){ SendClientMessage(playerid,COLOR_RED,"* You don't have a trailer attached to the vehicle!"); DisablePlayerCheckpoint(playerid); return 1; } GivePlayerMoney(playerid,500); SendClientMessage(playerid,COLOR_YELLOW,"* You have earned $500!"); DisablePlayerCheckpoint(playerid); } return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { if(PetrolJob[playerid] > 0) { SendClientMessage(playerid, COLOR_RED, "* You have left your job, you won't be payed."); DisablePlayerCheckpoint(playerid); } } |