/createrampe /deleterampe Aber wie?
- ElektroFreak
- Geschlossen
- Erledigt
-
-
Kannst du beide Befehle mal komplett posten, der der geht und der der nicht geht?
-
geht
if(strcmp(cmdtext, "/rampeweg", true, 9) == 0)
{
if(strlen(cmdtext) == 9) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: {FAFAFA}/rampeweg [Slot]");
else if(cmdtext[9] == ' ')
{
new i;
tmp = strtok(cmdtext, idx);
moneys = strval(tmp);
new Float:x, Float:y, Float:z;
GetObjectPos(rampe[moneys], x, y, z);
for(new j = 0; j < sizeof(rampe); j++)
{
if(rampeID[j] == -1) continue;
GetObjectPos(rampeID[moneys], x, y, z);
}
if(sscanf(cmdtext[10], "d", i)) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: {FAFAFA}/rampeweg [Slot]");
if(i < 0 || i >= sizeof(rampeID)) return SendClientMessage(playerid, 0xFF0000FF, "Es gibt nur rampen 0-150!");
if(rampeID[i] == -1) return SendClientMessage(playerid, 0xFF0000FF, "Diese rampe existiert nicht!");
if(!IsPlayerInRangeOfPoint(playerid, 4, x, y, z)) return SendClientMessage(playerid, 0xFF0000FF, "Du bist nicht in der Nähe der rampe!");DestroyObject(rampeID[i]);
rampeID[i] = -1;
rampeTime[i] = 0;
new str[380];
Delete3DTextLabel(rampeLabel[i]);
format(str, sizeof(str), "{FAFAFA}Du hast rampe {FF6400}%d{FAFAFA} entfernt!)",i);
SendClientMessage(playerid, 0xFF0000FF,str);
}
}geht nicht
if(strcmp(cmdtext, "/lrampe", true, 7) == 0)
{
if(strlen(cmdtext) == 7) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: {FAFAFA}/rampeweg [Slot]");
else if(cmdtext[7] == ' ')
{
new i;
tmp = strtok(cmdtext, idx);
moneys = strval(tmp);
new Float:x, Float:y, Float:z;
GetObjectPos(rampe[moneys], x, y, z);
for(new j = 0; j < sizeof(rampe); j++)
{
if(rampeID[j] == -1) continue;
GetObjectPos(rampeID[moneys], x, y, z);
}
if(sscanf(cmdtext[10], "d", i)) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: {FAFAFA}/rampeweg [Slot]");
if(i < 0 || i >= sizeof(rampeID)) return SendClientMessage(playerid, 0xFF0000FF, "Es gibt nur rampen 0-150!");
if(rampeID[i] == -1) return SendClientMessage(playerid, 0xFF0000FF, "Diese rampe existiert nicht!");
if(!IsPlayerInRangeOfPoint(playerid, 4, x, y, z)) return SendClientMessage(playerid, 0xFF0000FF, "Du bist nicht in der Nähe der rampe!");DestroyObject(rampeID[i]);
rampeID[i] = -1;
rampeTime[i] = 0;
new str[380];
Delete3DTextLabel(rampeLabel[i]);
format(str, sizeof(str), "{FAFAFA}Du hast rampe {FF6400}%d{FAFAFA} entfernt!)",i);
SendClientMessage(playerid, 0xFF0000FF,str);
}
} -
Das Problem war, dass du bei sscanf bei cmdtext eine 10 hattest, anstatt einer 8.
Das ganze mit strtok kannst du weg lassen, das bringt nichts.
Mache es so:
if(strcmp(cmdtext, "/lrampe", true, 7) == 0)
{
if(strlen(cmdtext) == 7) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: {FAFAFA}/rampeweg [Slot]");
else if(cmdtext[7] == ' ')
{
new i;
if(sscanf(cmdtext[8], "d", i)) return SendClientMessage(playerid, 0xFF0000FF, "Benutze: {FAFAFA}/rampeweg [Slot]");
if(i < 0 || i >= sizeof(rampeID)) return SendClientMessage(playerid, 0xFF0000FF, "Es gibt nur rampen 0-150!");
if(rampeID[i] == -1) return SendClientMessage(playerid, 0xFF0000FF, "Diese rampe existiert nicht!");
new Float:x, Float:y, Float:z;
GetObjectPos(rampeID[moneys], x, y, z);
if(!IsPlayerInRangeOfPoint(playerid, 4, x, y, z)) return SendClientMessage(playerid, 0xFF0000FF, "Du bist nicht in der Nähe der rampe!");
DestroyObject(rampeID[i]);
rampeID[i] = -1;
rampeTime[i] = 0;
new str[145];
Delete3DTextLabel(rampeLabel[i]);
format(str, sizeof(str), "{FAFAFA}Du hast rampe {FF6400}%d{FAFAFA} entfernt!)",i);
SendClientMessage(playerid, 0xFF0000FF,str);
return 1;
}
}Das ergibt eh kein Sinn, wenn 9 Zeichen vorhanden sind soll die Meldungkommen /rampeweg Slot ?
Wenn man nur den Befehl eingibt, ohne Parameter, dann soll die Info-Nachricht kommen. Das ist korrekt so.
-
breadfish.de
Hat das Thema geschlossen.