13.03.2009, 08:09
well I am scripting a GPS locator system for the PD, now everything works as planned, (checkpoint appears and updates to player position every second) but for some reason when I do the command to kill the locator the checkpoint disappears for one second then just comes back
I used..... KillTimer(GPStimer); but it just seems to repeat.....and its starting to tick me off ( no pun intended )
code:
I used..... KillTimer(GPStimer); but it just seems to repeat.....and its starting to tick me off ( no pun intended )code:
Код:
forward pdGPSt(giveplayerid, playerid);
public pdGPSt(giveplayerid, playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(giveplayerid, x, y, z);
SetPlayerCheckpoint(playerid, x,y,z, 0);
}
return 1;
}
new GPStimer;
if(strcmp(cmd, "/find", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /find [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
//if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "You cannot Find yourself!"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new Float:X,Float:Y,Float:Z;
GetPlayerPos(giveplayerid, X,Y,Z);
SetPlayerCheckpoint(playerid, X,Y,Z, 0);
GPStimer = SetTimer("pdGPSt", 1000, 1);
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Invalid Name/ID !");
}
return 1;
}
if(strcmp(cmd, "/endfind", true) == 0)
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, COLOR_LIGHTGREEN, "The PD Tracking System is now Disabled.");
KillTimer(GPStimer);
DisablePlayerCheckpoint(playerid);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "You need to be logged in first.");
}
return 1;
}


and set that to 1 when you are searching and only allow the search function to show the location when it is 1, and when you disable it, make it 0 and make it so the function doesnt display checkpoints when it is 0.