Counter-Strike 1.6
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1
45.144.155.113:27015
de_dust2
Играчи: 30/32
de_dust2
Counter-Strike 1.6
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_aztec Играчи: 0/16

Best player

Въведение в PAWN скриптинга и поддръжка за същия.
Аватар
JonasM
Извън линия
Потребител
Потребител
Мнения: 3
Регистриран на: 30 Авг 2023, 10:19

Best player

Мнение от JonasM » 02 Сеп 2023, 18:46

Maybe some else can add accuracy in roundstats? Thanks :)

Код за потвърждение: Избери целия код

#include <amxmodx>  
#include <amxmisc>  
#include <hamsandwich>
#include <cstrike>

new g_iKills[33],
    g_iHS[33],
    Float:g_fDmg[33]  

public plugin_init()  
{  
    register_plugin("Player of the Round", "1.0", "OciXCrom @ forum.iPlay.bg")  
    RegisterHam(Ham_TakeDamage, "player", "OnTakeDamage")  
    register_event("DeathMsg", "OnPlayerKilled", "a")  
    register_logevent("OnRoundEnd", 2, "1=Round_End")  
}  

public client_disconnect(id)  
{  
    g_iKills[id] = 0 
    g_iHS[id] = 0
    g_fDmg[id] = 0.0
}

public OnTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)  
{  
    if(is_user_connected(iAttacker) && iAttacker != iVictim && is_user_connected(iVictim))
    {
        if(cs_get_user_team(iAttacker) != cs_get_user_team(iVictim))  
            g_fDmg[iAttacker] += fDamage
        else  
            g_fDmg[iAttacker] -= fDamage
    }
}

public OnPlayerKilled()
{  
    new iAttacker = read_data(1), iVictim = read_data(2)  
      
    if(is_user_connected(iAttacker) && iAttacker != iVictim && is_user_connected(iVictim))
    {
        if(cs_get_user_team(iAttacker) != cs_get_user_team(iVictim))
        {
            g_iKills[iAttacker]++
            
            if(read_data(3))
                g_iHS[iAttacker]++
        }
        else
        {
            g_iKills[iAttacker]--
            
            if(read_data(3))
                g_iHS[iAttacker]--
        }
    }
}

public OnRoundEnd()
{
    new id = get_best_player()
    
    if(id == -1)
        return
        
    new szName[32]  
    get_user_name(id, szName, charsmax(szName)) 

    set_hudmessage(.holdtime = 5.0)
    show_hudmessage(0, "The best player of the round is %s with %i kills (%i HS | %.1f Damage)", szName, g_iKills[id], g_iHS[id], g_fDmg[id])
    
    arrayset(g_iKills, 0, sizeof(g_iKills))
    arrayset(g_iHS, 0, sizeof(g_iHS))
    
    for(new i; i < sizeof(g_fDmg); i++)
        g_fDmg[i] = 0.0
}

get_best_player()
{
    new iPlayers[32], iPnum, id
    get_players(iPlayers, iPnum)
    
    for(new i, iPlayer; i < iPnum; i++)
    {
        iPlayer = iPlayers[i]
        
        if(g_iKills[iPlayer] > g_iKills[id])
            id = iPlayer
        else if(g_iKills[iPlayer] == g_iKills[id])
        {
            if(g_fDmg[iPlayer] > g_fDmg[id])
                id = iPlayer
        }
    }
    
    return g_iKills[id] ? id : -1
} 

  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Скриптиране”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 гост