Hi folgendes Probelm:
wenn ich /search eingebe und die playerid dann wird der jenige auf der Karte angezeigt - das geht ja noch.
Wenn ich dann aber /cancelsearch eingebe, dann löscht er den Punkt, der Punkt kommt nach 1sek dann aber wieder...
Hier meine Zeilen:
new searchpoint;
forward searchtimer(playerid,pID);
//onplayercommand:
if(strcmp(cmdtext, "/cancelsearch",true)==0)
{
DisablePlayerCheckpoint(playerid);
GameTextForPlayer(playerid,"~y~Ziel entfernt",3000,1);
KillTimer(playerid);
SpielerSpeichern(playerid);
return 1;
}
//onplayerentercheckpoint:
else if(checkpointid==searchpoint)
{
DisablePlayerCheckpoint(playerid);
GameTextForPlayer(playerid,"~y~Ziel erreicht.",3000,1);
return 1;
}
ocmd:search(playerid,params[])
{
if(GetPVarInt(playerid,"Fraktion")==3 || GetPVarInt(playerid,"Fraktion")==5 || GetPVarInt(playerid,"Fraktion")==13 || GetPVarInt(playerid,"Adminduty")==1)
{
new pID;
if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /search [playerid]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, ROT, "Dieser Spieler ist nicht online!");
new Float:X,Float:Y,Float:Z;
GetPlayerPos(pID, X,Y,Z);
SetVehicleParamsForPlayer(pID,playerid,1,0);
searchpoint=SetPlayerCheckpoint(playerid, X,Y,Z, 2);
SetTimerEx("searchtimer",1000,1,"dd",playerid,pID);
}
else if (GetPVarInt(playerid,"Fraktion")==10 || GetPVarInt(playerid,"Adminduty")==1)
{
new pID;
if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /search [playerid]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, ROT, "Dieser Spieler ist nicht online!");
new Float:X,Float:Y,Float:Z;
GetPlayerPos(pID, X,Y,Z);
searchpoint=SetPlayerCheckpoint(playerid, X,Y,Z, 2);
SetTimerEx("searchtimer",1000,1,"dd",playerid,pID);
}
else
{
return SendClientMessage(playerid,ROT,"Du bist nicht berechtigt diesen Befehl zu benutzen.");
}
return 1;
}
public searchtimer(playerid,pID)
{
new Float:X,Float:Y,Float:Z;
GetPlayerPos(pID,X,Y,Z);
SetPlayerCheckpoint(playerid,X,Y,Z,3);
}