K/D Ratio Anzeigefrage

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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 eine K/D Ratio anzeige eingebaut, jetzt ist meine Frage wenn einer sich Registriert und keinen Kill oder Tod macht, steht in der K/D Ratio "NAN" kann man das nicht ändern das da 0 steht wenn er noch keine Kills&Deaths hat?
    So habe ich es drin


    (Float:PlayerInfo[playerid][kills] / Float:PlayerInfo[playerid][deaths])
    `ratio` = '%f'

  • und wie baut man das hier ein:


    public OnPlayerDisconnect(playerid,reason)
    {
    if(GetPVarInt(playerid, "Logged") == 1)
    {
    format(Query, sizeof(Query), "UPDATE `playerinfo` SET `score` = '%d',`money` = '%d', `kills` = '%d', `deaths` = '%d',`kdratio` = '%f' WHERE `user` = '%s'", GetPlayerScore(playerid), GetPlayerMoney(playerid), GetPVarInt(playerid, "killss"), GetPVarInt(playerid, "Deaths"),(Float:PlayerInfo[playerid][kills] / Float:PlayerInfo[playerid][deaths]), escpname(playerid));
    mysql_query(Query);
    }

  • Mach dir eine extra Variable für die KD, vielleicht auch eine extra Funktion dafür die dir das Zurückgibt.



    stock Float:ReturnKD(playerid)
    {
    if (PlayerInfo[playerid][kills] == 0 && PlayerInfo[playerid][deaths] == 0) return 0.0;


    return PlayerInfo[playerid][kills] / PlayerInfo[playerid][deaths];
    }


    Und dann nutzt du:



    public OnPlayerDisconnect(playerid,reason)
    {
    if(GetPVarInt(playerid, "Logged") == 1)
    {
    format(Query, sizeof(Query), "UPDATE `playerinfo` SET `score` = '%d',`money` = '%d', `kills` = '%d', `deaths` = '%d',`kdratio` = '%f' WHERE `user` = '%s'", GetPlayerScore(playerid), GetPlayerMoney(playerid), GetPVarInt(playerid, "killss"), GetPVarInt(playerid, "Deaths"), ReturnKD(playerid), escpname(playerid));
    mysql_query(Query);
    }


    Ungetestet.

  • Wieso hast du Kills und Deaths als Float?
    Brauchst nur in der Anzeige einen Float.


    new Float:KD;
    KD = Kills / Deaths;