unendlich viel geld überweisen

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
  • Guten Morgen,
    Ich habe ein kleines Problem.
    Das System an sich klappt, nur leider kann mir ein Spieler so viel Geld überweisen wie er will. zB hat er 0$ auf dem Konto, er kann mir aber 500$ Überweisen. Wie behebe ich dies?
    Hier der Code:

    ocmd:ueberweisung(playerid,params[])
    {
    new string[128],pID,uberweisunggeld;
    if(sscanf(params,"ui",pID,uberweisunggeld))return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Nutze /uberweisung [ID/NAME] [GELD]");
    if(pID == playerid)return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Du kannst dir nicht selber Geld überweisen!");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Der Spieler ist nicht Online!");
    if(GetPlayerMoney(playerid) < strval(sInfo[playerid][sBankgeld]))return SendClientMessage(playerid,-1,"nicht genug Geld auf dein Konto");
    format(string,sizeof(string),"Du hast %s %i$ überwiesen! Kontostand: %i$",SpielerName(pID),uberweisunggeld,sInfo[playerid][sBankgeld]);
    SendClientMessage(playerid,FARBE_ORANGE,string);
    format(string,sizeof(string),"Du hast von %s %i$ Überwiesen bekommen! Kontostand: %i$",SpielerName(playerid),uberweisunggeld,sInfo[pID][sBankgeld]);
    SendClientMessage(pID,FARBE_ORANGE,string);
    sInfo[playerid][sBankgeld] -= uberweisunggeld;
    sInfo[pID][sBankgeld] += uberweisunggeld;
    SpielerSpeichern(pID);
    SpielerSpeichern(playerid);
    return 1;
    }


    MfG.

  • Was ist den sInfo[playerid][sBankgeld] für ein Typ? ein String,Integer,Float ?


    if(uberweisunggeld > strval(sInfo[playerid][sBankgeld]))return SendClientMessage(playerid,-1,"nicht genug Geld auf dein Konto");

  • Was ist den sInfo[playerid][sBankgeld] für ein Typ? ein String,Integer,Float ?


    if(uberweisunggeld > strval(sInfo[playerid][sBankgeld]))return SendClientMessage(playerid,-1,"nicht genug Geld auf dein Konto");


    Dein ernst? ..
    Mit " > " fragt er ob, ob GRÖßER ist als die Summe, nicht kleiner ..


    MfG.

  • Wie sonst? Nur, dass das strval da nicht hingehört.


    ocmd:ueberweisung(playerid,params[])
    {
    new string[128],pID,uberweisunggeld;
    if(sscanf(params,"ui",pID,uberweisunggeld))return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Nutze /uberweisung [ID/NAME] [GELD]");
    if(pID == playerid)return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Du kannst dir nicht selber Geld überweisen!");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Der Spieler ist nicht Online!");
    if(uberweisunggeld > sInfo[playerid][sBankgeld])return SendClientMessage(playerid,-1,"nicht genug Geld auf dein Konto");
    format(string,sizeof(string),"Du hast %s %i$ überwiesen! Kontostand: %i$",SpielerName(pID),uberweisunggeld,sInfo[playerid][sBankgeld]);
    SendClientMessage(playerid,FARBE_ORANGE,string);
    format(string,sizeof(string),"Du hast von %s %i$ Überwiesen bekommen! Kontostand: %i$",SpielerName(playerid),uberweisunggeld,sInfo[pID][sBankgeld]);
    SendClientMessage(pID,FARBE_ORANGE,string);
    sInfo[playerid][sBankgeld] -= uberweisunggeld;
    sInfo[pID][sBankgeld] += uberweisunggeld;
    SpielerSpeichern(pID);
    SpielerSpeichern(playerid);
    return 1;
    }


    Probiere es aus.

  • ocmd:ueberweisung(playerid,params[]) { new string[128],pID,uberweisunggeld; if(sscanf(params,"ui",pID,uberweisunggeld))return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Nutze /uberweisung [ID/NAME] [GELD]"); if(pID == playerid)return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Du kannst dir nicht selber Geld überweisen!"); if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Der Spieler ist nicht Online!"); if(uberweisunggeld > sInfo[playerid][sBankgeld])return SendClientMessage(playerid,-1,"nicht genug Geld auf dein Konto"); format(string,sizeof(string),"Du hast %s %i$ überwiesen! Kontostand: %i$",SpielerName(pID),uberweisunggeld,sInfo[playerid][sBankgeld]); SendClientMessage(playerid,FARBE_ORANGE,string); format(string,sizeof(string),"Du hast von %s %i$ Überwiesen bekommen! Kontostand: %i$",SpielerName(playerid),uberweisunggeld,sInfo[pID][sBankgeld]); SendClientMessage(pID,FARBE_ORANGE,string); sInfo[playerid][sBankgeld] -= uberweisunggeld; sInfo[pID][sBankgeld] += uberweisunggeld; SpielerSpeichern(pID); SpielerSpeichern(playerid); return 1; }


    Dank jetzt klappt es.
    Habe leider noch das Problem das mir das Geld dann Falsch Angezeigt wird, Sprich man hat 5$ auf dem Konto, Überweist Geld 5$ und dann steht dort das man noch 5$ auf dem Konto hat obwohl man nichts hat.
    Vielleicht auch da eine Lösung für? :/


    MFG.