Guten Abend, liebe Brotfischer.
Habe ein Problem mit SSCANF
Hier mal einer meiner Befehle:
cmd(pmoney,playerid,params[])
{
new player,betrag;
if(!sscanf(params,"ui",player,betrag))
{
if(IsPlayerConnected(player))
{
if(betrag > 0)
{
GivePlayerMoney(playerid,betrag);
SendClientMessage(playerid,0xFF0000FF,"");
SendClientMessage(player,0xFF0000FF,"");
SendFormatText(playerid,0xFF0000FF,"Du hast %s %d$ gegeben.",Name(player),betrag);
SendFormatText(player,0xFF0000FF,"%s hat dir %d$ gegeben.",Name(playerid),betrag);
}
else SendClientMessage(playerid,0xFF0000FF,"Betrag darf nicht unter 0 sein!");
}
else SendClientMessage(playerid,0xFF0000FF,"Dieser Spieler ist nicht online!");
}
else SendClientMessage(playerid,0xFF0000FF,"NUTZUNG: /pmoney [playerid/PartOfName] [Betrag]");
return 1;
}
Mein Problem ist jetzt, wenn ich /pmoney ohne etwas eingebe, kommt auch "NUTZUNG: /pmoney [playerid/PartOfName] [Betrag]".
Wenn ich jedoch /pmoney Deadmau5 (Beispiel) eintippe, kommt wieder "NUTZUNG: /pmoney [playerid/PartOfName] [Betrag]".
Soweit, so gut, wenn ich aber /pmoney Hans (Beispiel) eintippe und diese User NICHT online ist, kommt WIEDER "NUTZUNG: /pmoney [playerid/PartOfName] [Betrag]" obwohl nun "Dieser Spieler ist nicht online!" kommen sollte O.o
Frage: Was mache ich falsch?
Zum Vergleich hier auch noch der /money Befehl
cmd(money,playerid,params[])
{
new betrag;
if(sscanf(params,"i",betrag)) SendClientMessage(playerid,0xFF0000FF,"NUTZUNG: /money [Betrag]");
else
{
if(betrag < 0) SendClientMessage(playerid,0xFF0000FF,"Betrag darf nicht unter 0 sein!");
else
{
GivePlayerMoney(playerid,betrag);
SendClientMessage(playerid,0xFF0000FF,"");
SendFormatText(playerid,0xFF0000FF,"Du hast dir %d$ gegeben.",betrag);
}
}
return 1;
}