Hey,
ich habe ein kleines Problem.
Ich möchte den Befehl /notruf programmieren. Dieser soll folgerndermaßen funktioneren: wird /notruf mit einer ID benutzt, dann soll zu dieser person ein Checkpoint führen. Wird der Befehl jedoch ohne ID verwendet, dann soll eine Liste angezeigt werden, wo alle aufgelistet sind.
Das Problem welches ich habe ist, dass ich nicht weiß, wie man ausließt ob der Paramter leer ist oder ob eine ID angegeben wurde.
#if !defined isnull
#define isnull(%1) \
((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
ocmd:notruf(playerid,params[])
{
new pID,str2[500],name[MAX_PLAYER_NAME];
if(sInfo[playerid][pFraktion] != 6) return SendClientMessage(playerid,COLOR_HINWEIS,"Du bist kein Sanitäter!");
//if(sscanf(params,"{u}",pID)) return SendClientMessage(playerid,COLOR_HINWEIS,"INFO: /wiederbeleben [ID]");
//if(sInfo[playerid][pDuty] != 1) return SendClientMessage(playerid,COLOR_HINWEIS,"Du bist nicht im Dienst!");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_HINWEIS,"Der Spieler ist nicht online!");
if(isnull(params))
{
format(str2,sizeof(str2),"Verbleibende Notrufe: \n");
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(sInfo[i][pTot] == 1)
{
format(str2, sizeof(str2),"%s [%i] %s Ort: %s, %i Sekunden verbleibend. \n",str2,i,GetPlayerName(i,name,sizeof(name)),GetPlayerArea(i),sInfo[i][pTotZeit]);
}
}
SendClientMessage(playerid,COLOR_RETTUNG,str2);
return 1;
}
else
{
SetPlayerCheckpoint(playerid,sInfo[pID][pTotX],sInfo[pID][pTotY],sInfo[pID][pTotZ],5);
return 1;
}
}
Weiß jemand wie ich bei OCMD prüfe, ob der Paramter gefüllt ist oder nicht ?? (Siehe Zeile 11 & 14)
Danke