Hallo,
geht um folgendes und zwar hab ich mein /orten so gemacht, dass es sich selbstständig aktualisiert. Nur gibt es ein kleies Problem, die ID 1 kann man nicht orten 
 und mancham geht der Checkpoint einfach nicht mehr weg ... 
Ich hoff ihr könnt mir da weiterhelfe.
Mein /orten Befehl:
if(strcmp(cmd, "/orten", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
			if(!IsACop(playerid))
			{
				SendClientMessage(playerid, COLOR_GREY, "Du bist kein Polizist!");
				return 1;
			}
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /orten [Spieler ID]");
				return 1;
			}
			giveplayerid = ReturnUser(tmp);
			if(IsPlayerConnected(giveplayerid))
			{
				if(giveplayerid != INVALID_PLAYER_ID)
				{
					//new Float:X,Float:Y,Float:Z;  <-- Das orginal /orten
					//GetPlayerPos(giveplayerid, X,Y,Z); <--	-"-
					//SetPlayerCheckpoint(playerid, X,Y,Z, 6); <--   -"-
					new pID;
					Orter[playerid] = SetTimerEx("OrtenTimer",100,1,"ii",playerid,pID);
			    	Orten[playerid]=1;
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_GREY, "Falsche ID!");
			}
		}
		return 1;
	}
Der Befehl, um Checkpoints zu löschen (Nicht nur den /orten-Checkpoint, sondern alle ...):
if(strcmp(cmd,"/dc",true)==0)
	{
		if(IsPlayerConnected(playerid))
		{
			DisablePlayerCheckpoint(playerid);
			Orten[playerid]=0;
			KillTimer(Orter[playerid]);
			SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Checkpoint gelöscht!");
		}
		return 1;
	}
Dazu noch das hier:
new Orter[MAX_PLAYERS];
forward OrtenTimer(playerid,ortid);
new Orten[MAX_PLAYERS]=0;
Und das:
Function OrtenTimer(playerid,ortid)
{
	new Float:X,Float:Y,Float:Z;
	new giveplayerid;
	GetPlayerPos(giveplayerid, X,Y,Z);
	SetPlayerCheckpoint(playerid, X,Y,Z, 6);
	return 1;
}
MfG Zilla
		
		
		
	