/zahlen befehl zeigt Betrag nicht an

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey leute,
    wenn ich /zahlen 0 1000 mache krieg ich die Meldung "Du hast von name
    Ø € bekommen"



    Problem nr. 2
    Wenn ich /zahlen 110 1000 mache, verschenkt er sozusagen das geld. Den es gibt keine ID mit der nr. 110



    Wie mach ich, das wenn der Spieler das angegebene Geld nicht hat, dass er eine Meldung kriegt und der Befehl nicht ausgeführt wird ?



    dcmd_zahlen(playerid,params[])
    {
    new i, betrag;
    new name[MAX_PLAYER_NAME], string[64];
    new aname[MAX_PLAYER_NAME], string1[64];
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(i,name,sizeof(name));
    if(!IsPlayerConnected(i))return SendClientMessage(playerid,Rot,"Fehler: Der Spieler ist nicht online!");
    {
    if(sscanf(params,"ui",i,betrag))return SendClientMessage(playerid,Rot,"Fehler: Benutze /zahlen [ID/Name] [Betrag]");
    format(string,sizeof(string),"Du hast %s Geld gegeben.(%s).",name,betrag);
    SendClientMessage(playerid,Pink,string);
    format(string1,sizeof(string1),"%s hat dir %s€ gegeben.",aname,betrag);
    SendClientMessage(playerid,Pink,string1);
    GivePlayerMoney(playerid,-betrag);
    GivePlayerMoney(i,betrag);

    }
    return 1;
    }


    Script by xbluehazzex
    Server-Start : -
    Forum : In Bearbeitung...
    TS3: In Bearbeitung...
    Standt 10.03.2013


  • Bitteschööön. ;)



    dcmd_zahlen(playerid,params[])
    {
    new i, betrag;
    new name[MAX_PLAYER_NAME], string[64];
    new aname[MAX_PLAYER_NAME], string1[64];
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(i,name,sizeof(name));
    if(sscanf(params,"ud",i,betrag))return SendClientMessage(playerid,Rot,"Fehler: Benutze /zahlen [ID/Name] [Betrag]");
    if(!IsPlayerConnected(i))return SendClientMessage(playerid,Rot,"Fehler: Der Spieler ist nicht online!");
    format(string,sizeof(string),"Du hast %s Geld gegeben.(%d).",name,betrag);
    SendClientMessage(playerid,Pink,string);
    format(string1,sizeof(string1),"%s hat dir %d€ gegeben.",aname,betrag);
    SendClientMessage(playerid,Pink,string1);
    GivePlayerMoney(playerid,-betrag);
    GivePlayerMoney(i,betrag);
    return 1;
    }


    //Edit: Noch den Fehler Nr. 2 behoben. ;)
    //Edit2: Fehler Nr. 2 erneuert/behoben

  • Edit : Geht alles :) Danke dir und wie mache ich das wenn der spieler zuwenig geld auf der hand hat, er eine Message kriegt ?


    Script by xbluehazzex
    Server-Start : -
    Forum : In Bearbeitung...
    TS3: In Bearbeitung...
    Standt 10.03.2013


  • Moin, damit man nicht ins Minus kommt, sieht der Code wie folgt aus:



    dcmd_zahlen(playerid,params[])
    {
    new i, betrag;
    new name[MAX_PLAYER_NAME], string[64];
    new aname[MAX_PLAYER_NAME], string1[64];
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(i,name,sizeof(name));
    if(sscanf(params,"ud",i,betrag))return SendClientMessage(playerid,Rot,"Fehler: Benutze /zahlen [ID/Name] [Betrag]");
    if(!IsPlayerConnected(i))return SendClientMessage(playerid,Rot,"Fehler: Der Spieler ist nicht online!");
    if(GetPlayerMoney(playerid) < betrag)) return SendClientMessage(playerid,COLOR_GREY,"Du hast nicht genug Geld auf der Hand!");
    format(string,sizeof(string),"Du hast %s Geld gegeben.(%d).",name,betrag);
    SendClientMessage(playerid,Pink,string);
    format(string1,sizeof(string1),"%s hat dir %d€ gegeben.",aname,betrag);
    SendClientMessage(playerid,Pink,string1);
    GivePlayerMoney(playerid,-betrag);
    GivePlayerMoney(i,betrag);
    return 1;
    }


    Liebe Grüße
    Hardcore