/pay befehl weiterhin 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
  • habe nun hier meinen /pay befehl:


    ocmd:pay(playerid,params[])
    {
    new pID, gID, string[128];
    if(gID > 0 && GetPlayerMoney(playerid) >= gID)
    {
    SendClientMessage(playerid,0xffffff,"Du hast nicht genügend Geld auf der Hand!");
    return 1;
    }
    if(gID < 0 || gID > 100000) return SendClientMessage(playerid,ROT,"Du kannst nur maximal 100.000$ übergeben!");
    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!");
    if (ProxDetectorS(5.0, playerid, pID))
    {
    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);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du musst näher ran!");
    }
    return 1;
    }



    alles funktioniert, nur 1 nicht...
    wenn ich 10k auf der hand hab, und einem anderen 20k gebe, komme ich ins minus..
    kann mir wer helfen?
    ansonsten einfach befehl aus euerm script schicken, wo es funktioniert, wäre auch nett, danke schonmal

    Pessimisten sind Optimisten mit Erfahrung!

  • also habe den gerade mal gemacht aber nicht getestet aber zu 99,9% müsste er funzen :ocmd_pay(playerid,params[])
    {
    new p1[MAX_PLAYER_NAME];
    new p2[MAX_PLAYER_NAME];
    new pID, gmoney, string[128];
    new pmoney = GetPlayerMoney(playerid);
    if(sscanf(params, "ud",pID,gmoney))return SendClientMessage(playerid,0xFF0000FF,"/pay [ID/Name] [money]");
    if(IsPlayerConnected(pID)==1)
    {
    if (pID == playerid)
    {
    SendClientMessage(playerid,0xFF0000FF,"Du kannst dir selber kein Geld geben.");
    }
    else
    {
    if(pmoney == gmoney || pmoney > gmoney)
    {
    if(gmoney < 100000)
    {
    if(gmoney > 0)
    {
    new Float:mx,Float:my,Float:mz;
    GetPlayerPos(pID,mx,my,mz);
    if(IsPlayerInRangeOfPoint(playerid,3.0,mx,my,mz))
    {
    GetPlayerName(playerid,p1,sizeof(p1));
    GetPlayerName(pID,p2,sizeof(p2));
    format(string,sizeof(string), "%s hat dir %d$ gegeben",p1, gmoney);
    format(string,sizeof(string), "Du hast %s %d$ gegeben",p2,gmoney);
    SendClientMessage(pID,0xFFA100FF, string);
    SendClientMessage(playerid,0xFFA100FF,string);
    GivePlayerMoney(pID,gmoney);
    GivePlayerMoney(playerid,-gmoney);
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du musst näher ran!");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du kannst nur maximal 100.000$ übergeben!");
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"So viel Geld hast du nicht in deiner Brieftasche.");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Dieser Spieler ist nicht online");
    }
    return 1;
    }


    MFG janpplayer

  • ocmd:pay(playerid,params[])
    {
    new pID,Money;
    if(!sscanf(params,"ud",pID,Money))
    {
    if(Money < 0 || Money > 2000)
    {
    SendClientMessage(playerid,ROT,"Nur von $0 bis $2000");
    return 1;
    }
    if(Money > GetPlayerMoney(playerid))
    {
    SendClientMessage(playerid,ROT,"Du hast nicht so viel Geld!");
    return 1;
    }
    if(IsPlayerConnected(pID))
    {
    if(ProxDetectorS(5.0,playerid,pID))
    {
    GivePlayerMoney(playerid,-Money);
    GivePlayerMoney(pID,Money);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Spieler zu weit weg!");
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"gewählter spieler nicht verbunden.");
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Fehler! '/Pay [Playerid/Name] [Geld]'");
    }
    return 1;
    }


    Edit: Fehler entdeckt :D