23.06.2017, 13:30
I would be thankful if someone could tell me how to disable all the checkpoints(Red markers) around me except one (Job checkpoint).Im new in scripting so i've got no idea how to do that.Thanks in advance.
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); } } |