K/D Ratio Anzeigefrage

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;