Hitrate ausrechnen in Prozent

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

  • Wie sieht die Rechnung aus mit den Variabeln? also Getroffen/Schüsse *100 aber wie runde ich das z.b noch auf

  • Wenn du Integers miteinander teilst musst du, bzw kannst du, nicht mehr runden, die Nachkommastellen werden abgeschnitten.


    Du musst playerid verwenden, das ist die ID des Spielers der schießt.


    Müsste es so gehen?



    public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
    {
    if(hitid != BULLET_HIT_TYPE_PLAYER){
    User[playerid][Shots] ++;
    }
    else if(hitid == BULLET_HIT_TYPE_PLAYER){
    User[playerid][Hits] ++;
    }
    return 1;
    }



    public InfoUpdate()
    {
    new lvlpunkte[34],kills[24],tode[24],hitrate[24];
    for(new i=0; i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(User[i][TextDrawAktiv] == 1)
    {
    User[i][Hitrate] = User[i][Hits] / User[i][Shots] * 100;
    format(lvlpunkte,34,"Level Up %d/3",User[i][LevelPunkte]);
    format(kills,24,"Kills: %d",User[i][Kills]);
    format(tode,24,"Tode: %d",User[i][Tode]);
    format(hitrate,24,"Hitrate: %d%",User[i][Hitrate]);
    PlayerTextDrawSetString(i,LevelUpDraw[i],lvlpunkte);
    PlayerTextDrawSetString(i,StatsDraw[1][i],kills);
    PlayerTextDrawSetString(i,StatsDraw[3][i],tode);
    PlayerTextDrawSetString(i,StatsDraw[5][i],hitrate);
    }


    }
    return 1;
    }

  • Nein, es muss hittype sein.


    public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
    {
    User[playerid][Shots] ++;
    if(hittype == BULLET_HIT_TYPE_PLAYER){
    User[playerid][Hits] ++;
    }
    return 1;
    }
    So musst es machen.



    Und bei dem Textdraw solltest du beachten, dass die Shots nicht 0 sind, du darfst nicht durch 0 teilen. Am besten du setzt es dem Spieler schon auf 1 wenn er sich registriert, eben bevor er das erste mal das Textdraw sieht.