Promillenwert berechnen

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,


    ich habe mich heute an die Berechnung eines möglichst realistischen Promillenwertes gewagt. Ich teile praktisch den DrunkLevel der durch GetPlayerDrunkLevel zurück gegeben wird durc 15000. So kann der Wert nicht höher als 3,33 sein. Ich habe mir dann einen Befehl für das FBI, das SAPD und das Ordnungsamt gemacht, womit man letztendlich den Promillenwert, den der Spieler hat, bekommt.



    new Float:alctest;


    alctest = float(GetPlayerDrunkLevel(playerid) / 15000);

    if (alctest == 0)
    {
    SendClientMessage(playerid, white, ""red_i"negativ");
    }
    else
    {
    format(string, sizeof(string), ""green_i"positiv "white_i"- %.2f Promille", alctest);
    SendClientMessage(playerid, white, string);
    }


    Allerdings bekomme ich, wenn der Promillenwert bei 0,22 (Beispiel) liegt, nur ein "negativ" zurück. Auch wenn ich 1,32 oder 2,48 (Ebenfalls nur Beispielwerte) zurück bekomme, kommt immer nur 1,00 oder 2,00 zurück. Ich vermute, dass durch
    alctest = float(GetPlayerDrunkLevel(playerid) / 15000);
    die Werte nach dem Komma durch 00 ersetzt werden. Deswegen bekomme ich auch "negativ" zurück, wenn der Wert unter 1,00 liegt.


    Meine Frage ist also, welche Funktion muss ich nutzen, damit die Werte nach dem Komma nicht "verspeißt" werden.

  • Der Klammerfehler ist unbeabsichtigt, oder?

    alctest = float(GetPlayerDrunkLevel(playerid) / 15000);


    Mach es doch einmal so:

    alctest = GetPlayerDrunkLevel(playerid) / 15000);

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Hallo,


    welchen Klammerfehler meinst du ? Ich habe nun mehrmals darüber geschaut. Beim Kompilieren kommen auch keine Fehler. Ich habe es auch bereits ohne Float versucht, es kommt trotzdem kein vernünftiger Wert raus. Alles ist ohne Nachkommastellen.