Also, eigentlich is das Problem ziemlich simpel. EIgentlich schreibe ich meine CMD's immer mit DCMD. Der Befehl lautet aber leider /nachfüllen, und aufgrund des Umlauts musste ich auf Strtok zurückgreifen. Das ganze klappt auch schon, nur kann ich den CMD ( /nachfüllen [playerid] [Preis]) nur mit der Playerid benutzen. Ich hätte das ganze aber gerne, wie im Datentyp "u", zusätzlich mit Namen, also beispielsweise wie bei mit "lol". Wie stelle ich dass an?
Danke schonmal für antworten!
edit: Hier der Befehl:
if(strcmp(cmd, "/nachfüllen", true) == 0)
{
if(sSpieler[playerid][Fraktion] == 6)
{
new tmp[30], tmp2[30];
tmp = strtok(cmdtext, idx);
tmp2 = strtok(cmdtext, idx);
if(strlen(tmp) == 0)
{
SendClientMessage(playerid, WHITE, "Verwendung: /nachfüllen [ID] [Preis]");
return 1;
}
if(strlen(tmp2) == 0)
{
SendClientMessage(playerid, WHITE, "Verwendung: /nachfüllen [ID] [Preis]");
return 1;
}
new pid, preis, string[128];
pid = strval(tmp);
preis = strval(tmp2);
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid, ROT, "Spieler wurde nicht gefunden.");
if(preis < 1 || preis > 20000) return SendClientMessage(playerid, ROT, "Der Preis darf nicht kleiner als 1€ oder größer als 20.000€ sein!");
if(IsPlayerInRangeOfPoint(pid, 5.0, X, Y, Z))
{
if(IsPlayerInAnyVehicle(pid))
{
if(GetPlayerMoney(pid) < preis)
{
SendClientMessage(playerid, GRAU, "Der Spieler hat leider nicht genug Geld.");
SendClientMessage(pid, GRAU, "Du hast zu wenig Geld, um das Tankangebot anzunehmen.");
return 1;
}
new mechaniker[MAX_PLAYER_NAME], su[MAX_PLAYER_NAME];
GetPlayerName(playerid, mechaniker, sizeof(mechaniker));
GetPlayerName(pid, su, sizeof(su));
HatTankAngebot[pid] = 1;
TankAngebotVon[pid] = playerid;
TankPreis[pid] = preis;
format(string, sizeof(string), "Mechaniker %s möchte deinen Tank für %d€ auffüllen.", mechaniker, preis);
ShowPlayerDialog(pid, TANKANGEBOT, DIALOG_STYLE_MSGBOX, "Allgemeiner Deutscher Automobilclub", string, "Akzeptieren", "Ablehnen");
format(string, sizeof(string), "Du hast %s ein Tankangebot gemacht.", su);
SendClientMessage(playerid, TÜRKIS, string);
}
else SendClientMessage(playerid, GRAU, "Der Spieler muss in einem Fahrzeug sitzen.");
}
else SendClientMessage(playerid, GRAU, "Der Spieler befindet sich nicht in deine Nähe.");
}
return 1;
}
EDIT
wenn ein Kumpel den CMD benutzt geht er?! Nochmal genaueres zum Problem. Wenn ich mit ID mache klappt es. Wenn ich mit Namen schreib kommt "Der Spieler muss in einem Fahrzeug sitzen". Wenn es ein Kumpel Probiert geht alles?!
Woran liegt das?
Ich bin ID 0, wenn ich es teste