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