Eigenes Geldsystem spinnt

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
  • Hallo Community,


    wenn ich z.B 500SA$ habe also meine Währung in samp, und dann was für 600SA$ kaufe dann hab ich eine rießige lange Minus zahl, wo liegt das Problem?


    Damit update ich mein Geld:


    public Geldupdate(playerid)
    {
    format(str,sizeof(str),"~g~SA$ %.2f",SInfo[playerid][pGeld]);
    TextDrawSetString(Gelddraw[playerid], str);
    return 1;
    }


    Weiss einfach nicht wo das problem liegt :/
    Mfg


    McGarrett

  • Dann vergiss das andere und mach das:
    SInfo[playerid][pGeld] -= 400; Geldupdate(playerid);


    zu:
    SInfo[playerid][pGeld] -= 400.0; Geldupdate(playerid);


    wenn's nicht klappt:
    SInfo[playerid][pGeld] = SInfo[playerid][pGeld] - 400.0; Geldupdate(playerid);

  • Was wird geprintet, wenn du es so einfügst?
    public Geldupdate(playerid)
    {
    printf("Geldupdate für %d -> $%0.2f", playerid, SInfo[playerid][pGeld]);
    format(str,sizeof(str),"~g~SA$ %.2f",SInfo[playerid][pGeld]);
    printf("str = %s", str);
    TextDrawSetString(Gelddraw[playerid], str);
    return 1;
    }


    Nutzt du das Textdraw oder die Geldvariable noch woanders, oder passiert der Fehler immer nur an dieser Stelle?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Gelddraw[playerid] = TextDrawCreate(499.000000,82.000000," ");
    TextDrawAlignment(Gelddraw[playerid],0);
    TextDrawBackgroundColor(Gelddraw[playerid],0x000000ff);
    TextDrawFont(Gelddraw[playerid],1);
    TextDrawLetterSize(Gelddraw[playerid],0.380000,1.400000);
    TextDrawColor(Gelddraw[playerid],0xffffffff);
    TextDrawSetOutline(Gelddraw[playerid],1);
    TextDrawSetProportional(Gelddraw[playerid],1);
    TextDrawSetShadow(Gelddraw[playerid],1);


    Hier wird es erstellt mehr nicht...
    Hab jetzt mal ein Befehl gemacht,


    also hier hab ich keine probleme:


    dcmd_geld(playerid,params[])
    {
    #pragma unused params
    SInfo[playerid][pGeld] -= 9000.24; Geldupdate(playerid);
    return 1;
    }


    geht an dem befehl alles wunderbar

  • Kannst du mir mal den Code zeigen, wo es nicht funktioniert?
    Du hast oben ja nur die eine Zeile gezeigt.

  • if(dialogid == DIALOG_HKAUF)
    {
    if(response)
    {
    switch(listitem)
    {
    case 9:{SInfo[playerid][pHandyart] = 1; SCM(playerid,COLOR_GRUN,"Du hast dir das HTC One M8 gekauft."); SInfo[playerid][pGeld] -= 600.00; Geldupdate(playerid);}
    case 8:{SInfo[playerid][pHandyart] = 2; SCM(playerid,COLOR_GRUN,"Du hast dir das HTC One XL gekauft.");SInfo[playerid][pGeld] -= 480.00; Geldupdate(playerid);}
    case 7:{SInfo[playerid][pHandyart] = 3; SCM(playerid,COLOR_GRUN,"Du hast dir das HTC One gekauft.");SInfo[playerid][pGeld] -= 430.00; Geldupdate(playerid);}
    case 6:{SInfo[playerid][pHandyart] = 4; SCM(playerid,COLOR_GRUN,"Du hast dir das Note 3 gekauft.");SInfo[playerid][pGeld] -= 400.00; Geldupdate(playerid);}
    case 5:{SInfo[playerid][pHandyart] = 5; SCM(playerid,COLOR_GRUN,"Du hast dir das Samung S5 gekauft.");SInfo[playerid][pGeld] -= 550.00; Geldupdate(playerid);}
    case 4:{SInfo[playerid][pHandyart] = 6; SCM(playerid,COLOR_GRUN,"Du hast dir das Samung S4 gekauft.");SInfo[playerid][pGeld] -= 400.00; Geldupdate(playerid);}
    case 3:{SInfo[playerid][pHandyart] = 7; SCM(playerid,COLOR_GRUN,"Du hast dir das iPhone 6+ gekauft.");SInfo[playerid][pGeld] -= 799.00; Geldupdate(playerid);}
    case 2:{SInfo[playerid][pHandyart] = 8; SCM(playerid,COLOR_GRUN,"Du hast dir das iPhone 6 gekauft.");SInfo[playerid][pGeld] -= 600.00; Geldupdate(playerid);}
    case 1:{SInfo[playerid][pHandyart] = 9; SCM(playerid,COLOR_GRUN,"Du hast dir das iPhone 5s gekauft.");SInfo[playerid][pGeld] -= 460.00; Geldupdate(playerid);}
    case 0:{SInfo[playerid][pHandyart] = 10; SCM(playerid,COLOR_GRUN,"Du hast dir das iPhone 5 gekauft.");SInfo[playerid][pGeld] -= 400.00; Geldupdate(playerid);}


    }
    }
    }

  • if(dialogid == DIALOG_HKAUF)
    {
    if(response)
    {
    switch(listitem)
    {
    case 9:SInfo[playerid][pHandyart] = 1,SCM(playerid,COLOR_GRUN,"Du hast dir das HTC One M8 gekauft."),SInfo[playerid][pGeld] -= 600.0,Geldupdate(playerid);
    case 8:SInfo[playerid][pHandyart] = 2,SCM(playerid,COLOR_GRUN,"Du hast dir das HTC One XL gekauft."),SInfo[playerid][pGeld] -= 480.0,Geldupdate(playerid);
    case 7:SInfo[playerid][pHandyart] = 3,SCM(playerid,COLOR_GRUN,"Du hast dir das HTC One gekauft."),SInfo[playerid][pGeld] -= 430.0,Geldupdate(playerid);
    case 6:SInfo[playerid][pHandyart] = 4,SCM(playerid,COLOR_GRUN,"Du hast dir das Note 3 gekauft."),SInfo[playerid][pGeld] -= 400.0,Geldupdate(playerid);
    case 5:SInfo[playerid][pHandyart] = 5,SCM(playerid,COLOR_GRUN,"Du hast dir das Samsung S5 gekauft."),SInfo[playerid][pGeld] -= 550.0,Geldupdate(playerid);
    case 4:SInfo[playerid][pHandyart] = 6,SCM(playerid,COLOR_GRUN,"Du hast dir das Samsung S4 gekauft."),SInfo[playerid][pGeld] -= 400.0,Geldupdate(playerid);
    case 3:SInfo[playerid][pHandyart] = 7,SCM(playerid,COLOR_GRUN,"Du hast dir das IPhone 6+ gekauft."),SInfo[playerid][pGeld] -= 799.0,Geldupdate(playerid);
    case 2:SInfo[playerid][pHandyart] = 8,SCM(playerid,COLOR_GRUN,"Du hast dir das IPhone 6 gekauft."),SInfo[playerid][pGeld] -= 600.0,Geldupdate(playerid);
    case 1:SInfo[playerid][pHandyart] = 9,SCM(playerid,COLOR_GRUN,"Du hast dir das IPhone 5s gekauft."),SInfo[playerid][pGeld] -= 460.0,Geldupdate(playerid);
    case 0:SInfo[playerid][pHandyart] = 10,SCM(playerid,COLOR_GRUN,"Du hast dir das IPhone 5 gekauft."),SInfo[playerid][pGeld] -= 400.0,Geldupdate(playerid);
    }
    }
    return 1;
    }
    Funktioniert das so?
    M_McGarrett:

    Einmal editiert, zuletzt von AirM4X ()