/pay befehl funktioiniert nicht richtig

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
  • alles funktioinert sehr gut... bis auf das, das ich so viel geld geben kann, das ich auch ins minus gehe...
    wie umgehe ich das, da


    if(GetPlayerMoney(playerid) <= gID)return SendClientMessage(playerid,ROT,"Du hast nicht so viel Geld auf der Hand!");
    nicht geht...


    ocmd:pay(playerid,params[])
    {
    new pID, gID, string[128];
    if(GetPlayerMoney(playerid) <= gID)return SendClientMessage(playerid,ROT,"Du hast nicht so viel Geld auf der Hand!");
    if(sscanf(params, "ud",pID,gID))return SendClientMessage(playerid,ROT,"/pay [ID/Name] [money]");
    if (!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht online");
    if (pID == playerid)return SendClientMessage(playerid,ROT,"Du kannst dir selber kein Geld geben!");
    format(string,sizeof(string), "%s hat dir %d$ gegeben",Spielername(playerid), gID);
    format(string,sizeof(string), "Du hast %s %d$ gegeben",Spielername(pID),gID);
    SendClientMessage(pID,ORANGE, string);
    SendClientMessage(playerid,ORANGE,string);
    GivePlayerMoney(pID,gID);
    GivePlayerMoney(playerid,-gID);
    return 1;
    }

    Pessimisten sind Optimisten mit Erfahrung!

  • if(GetPlayerMoney(playerid) >= gID)return SendClientMessage(playerid,ROT,"Du hast nicht so viel Geld auf der Hand!");


    Wenn dann, weil es kann ja auch sein das der Spieler das gesamte verfügbare Geld abgeben möchte :)


    Aber da stimt die Abfrage ja nicht, weil wenn der Spieler mehr Geld hat als das was er abgeben möchte bekommt er die Nachricht das er nicht soviel Geld auf der Hand hat ? Das stimmt nicht :/

  • if(GetPlayerMoney(playerid) < gID)
    {
    SendClientMessage(playerid,0xffffff,"Bla du hast nicht genügend geld bla ....");
    return 1;
    }


    Naja das muss vor dem geben des geldes und abziehen xD


    MfG Kevin


    achja die abfrage nicht vergessen:

    if(gID < 0 || gID > 2000) return SendClientMessage(playerid,0xffffff,"nur von 1 - 2000");