/pay Problem

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
  • ocmd:pay(playerid,params[])
    {
    new pID, pay, string[128], string2[128];
    if(sscanf(params,"ui",pID,pay)) return SendClientMessage(playerid,Grey,"Nutze: /pay [Spieler/ID][Betrag]");
    if(pay<1||pay>50000) return SendClientMessage(playerid,Grey,"Du kannst nur bis 1 Million $ zahlen!");
    {
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Grey,"Dieser Spieler ist nicht Online.");
    {
    if(GetPlayerMoney(playerid)<pay) return SendClientMessage(playerid,Grey,"Du hast nicht genügend Geld vorhanden.");
    {
    if(pID==playerid) return SendClientMessage(playerid,Grey,"Du kannst dir nicht selber Geld zahlen.");
    {
    GivePlayerMoney(pID,pay);
    GivePlayerMoney(playerid,-pay);
    format(string,sizeof(string),"Spieler %s hat dir %i$ bezahlt.",pName(playerid),pay);
    SendClientMessage(pID,LightYellow,string);
    format(string2,sizeof(string2),"Du hast dem Spieler %s %i$ gezahlt.",pName(pID),pay);
    SendClientMessage(playerid,LightYellow,string2);
    }
    }
    }
    }
    return 1;
    }


    Wo ist der Fehler? Ich kann trotzdem zahlen wenn ich im Minus bin und an mich selbst.


    LG

  • Du musst auch überprüfen ob du genug Geld hast,
    deine Variable die du dort erstellst, wurde ja zu keiner 'Funktion' zugewiesen.

    ehm. Administration StateV ~ Domi

  • if(gID < 1 || gID > 99999)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Der Betrag muss zwischen $1 und $99999 sein!");
    return 1;
    }


    Kleines Beispiel.. musste halt anpassen

    ehm. Administration StateV ~ Domi


  • ocmd:pay(playerid,params[])
    {
    new pID, pay, string[128], string2[128];
    if(sscanf(params,"ui",pID,pay)) return SendClientMessage(playerid,Grey,"Nutze: /pay [Spieler/ID][Betrag]");
    if(pay<1||pay>50000) return SendClientMessage(playerid,Grey,"Du kannst nur bis 500 Tausend $ zahlen!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Grey,"Dieser Spieler ist nicht Online.");
    if(GetPlayerMoney(playerid)<pay) return SendClientMessage(playerid,grey,"du="" hast="" nicht="" genügend="" geld="" vorhanden.");
    if(pID==playerid) return SendClientMessage(playerid,Grey,"Du kannst dir nicht selber Geld zahlen.");
    GivePlayerMoney(pID,pay);
    GivePlayerMoney(playerid,-pay);
    format(string,sizeof(string),"Spieler %s hat dir %i$ bezahlt.",pName(playerid),pay);
    SendClientMessage(pID,LightYellow,string);
    format(string2,sizeof(string2),"Du hast dem Spieler %s %i$ gezahlt.",pName(pID),pay);
    SendClientMessage(playerid,LightYellow,string2);
    return 1;
    }

    Du fragst dauernd ab, wenn er zu wenig Geld hat, bekommt er den Fehler UND der Befehl geht weiter.
    Hier hast du die richtige Variante

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • Moment, das will ich jetzt genauer wissen.
    Für die Nutzer, die das Problem nicht beheben konnten.
    Es lag doch wohl kaum am return. Wenn ja, an welchem?


    Jap, dieser Meinung bin ich auch.
    Erläutere uns doch bitte, was genau du abgeändert hast
    und welches Return du meinst.


    Mit freundlichen Grüßen
    #else von PC-Rat.


    Du hast Probleme beim Programmieren oder mit deinem PC?
    Registriere Dich doch auf PC-Rat-Hilfeforum.de.
    Nach dem Registrieren musst du nur deine E-Mail-Adresse bestätigen,
    dann kann es auch schon losgehen. Also worauf wartest du?


    Erreichbar unter folgender E-Mail-Adresse
    support@pc-rat-hilfeforum.de

  • ocmd:pay(playerid,params[])
    {
    new pID, pay, string[128], string2[128];
    if(sscanf(params,"ui",pID,pay)) return SendClientMessage(playerid,Grey,"Nutze: /pay [Spieler/ID][Betrag]");
    if(pay<1||pay>50000) return SendClientMessage(playerid,Grey,"Du kannst nur bis 1 Million $ zahlen!");
    {
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Grey,"Dieser Spieler ist nicht Online.");
    {
    if(GetPlayerMoney(playerid)<pay) return SendClientMessage(playerid,Grey,"Du hast nicht genügend Geld vorhanden.");
    {
    if(pID==playerid) return SendClientMessage(playerid,Grey,"Du kannst dir nicht selber Geld zahlen.");
    {
    GivePlayerMoney(pID,pay);
    GivePlayerMoney(playerid,-pay);
    format(string,sizeof(string),"Spieler %s hat dir %i$ bezahlt.",pName(playerid),pay);
    SendClientMessage(pID,LightYellow,string);
    format(string2,sizeof(string2),"Du hast dem Spieler %s %i$ gezahlt.",pName(pID),pay);
    SendClientMessage(playerid,LightYellow,string2);
    return 1; // hier hin was vorher unten war
    }
    }
    }
    }
    return 1; // <- dieses return nach oben
    }Danach hat es geklappt