K/D ausgeben hat nicht hin

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
  • Guten Tag,
    wollte die K/D berechen und ausgeben doch es passiert nichts. Also er berechnet es falsch.



    COMMAND:stats(playerid,params[])
    {
    new str[500];
    new Float:KD = User[playerid][Kills] / User[playerid][Tode];
    format(str,500,"{FF9600}Allgemeine Information:\n\nName: %s\nLevel: %d\nGeld: %d\nCoins: %d\nStatus: %s\nSkin: %d\nKills: %d\nTode: %d\nK/D: %.2f",PlayerName(playerid),User[playerid][Level],User[playerid][Geld],User[playerid][Coins],Adminrang[User[playerid][Admin]],User[playerid][Skin],User[playerid][Kills],User[playerid][Tode],KD);
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"LucareLLi DM || Statistik",str,"OK","");
    return 1;
    }

  • COMMAND:stats(playerid,params[])
    {
    new str[512];
    new tode = User[playerid][Tode];
    if(tode == 0) tode = 1;
    new Float:KD = float(User[playerid][Kills]) / float(tode);
    format(str,sizeof(str),"{FF9600}Allgemeine Information:\n\nName: %s\nLevel: %d\nGeld: %d\nCoins: %d\nStatus: %s\nSkin: %d\nKills: %d\nTode: %d\nK/D: %.2f",PlayerName(playerid),User[playerid][Level],User[playerid][Geld],User[playerid][Coins],Adminrang[User[playerid][Admin]],User[playerid][Skin],User[playerid][Kills],User[playerid][Tode],KD);
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"LucareLLi DM || Statistik",str,"OK","");
    return 1;
    }
    So dürfte es passen.


    Warum die Abfrage ob Tode 0 sind? Weil du nicht durch 0 teilen kannst.
    Man kann es auch anders schreiben, aber ich denke so ist es für dich am verständlichsten.

  • Ich stimme Jeffry zu.
    Du solltest noch eine Ausnahme Behandlung hinzufügen, falls Tode null sind. Bei spielen wird dein einfach statt 0 eine 1 genommen also im Prinzip (WAS MATHEMATISCH TOTAL INKORREKT IST)
    5/0 = 5/1