Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Информационная доска

Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Score DHUD

, Не правильное отображение
technique88
сообщение 21.6.2019, 17:28
Сообщение #1
Стаж: 8 лет 7 месяцев

Сообщений: 17
Благодарностей: 4
Полезность: 0

Приветствую всех, ребят помогите, плагин Score DHUD отображает показатели не правильно
Практически не чего не менял в исходнике кроме цвета hud и убрал несколько пунктов


Код
#include <amxmodx>
#include <dhudmessage>

#define PLUGIN        "Score HUD"
#define VERSION        "1.0"
#define AUTHOR         "AndrewZ"
    
enum _:SCORE_DATA
{
    DISABLE,
    KILLS,
    HEADSHOTS,
    KNIFEKILLS,
    GRENADEKILLS,
    DEATHS
}

new g_user_score[ 33 ][ SCORE_DATA + 1 ]
new g_maxplayers
    
new bool:g_reset_data

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, AUTHOR )
    
    g_maxplayers = get_maxplayers()
    
    register_clcmd( "say /score", "cmd_score" )
    
    register_event( "DeathMsg", "event_death", "a" )
    register_event( "TextMsg", "event_textmsg_restart", "a", "2=#Game_will_restart_in" )
    
    register_logevent( "logevent_game_commencing", 2, "1=Game_Commencing" )
    register_logevent( "logevent_round_start", 2, "1=Round_Start" )
    
    set_task( 1.0, "rtask_show_hud", _, _, _, "b" )
}

public cmd_score( id )
{
    if( g_user_score[ id ][ DISABLE ] )
    {
        g_user_score[ id ][ DISABLE ] = 0
        client_print( id, print_chat, "HUD информер статистики включен." )
    }
    else
    {
        g_user_score[ id ][ DISABLE ] = 1
        client_print( id, print_chat, "HUD информер статистики выключен." )
    }
    
    return PLUGIN_HANDLED
}    

public clear_data( id )
{
    if( !id )
    {
        for( new i = 1; i <= g_maxplayers; i ++ )
        {
            for( new data; data <= SCORE_DATA; data ++ )
                g_user_score[ i ][ data ] = 0
        }
    }
    else
    {
        for( new data; data <= SCORE_DATA; data ++ )
            g_user_score[ id ][ data ] = 0
    }
}


public client_connect( id )         clear_data( id )
public client_disconnect( id )         clear_data( id )
public logevent_game_commencing()    clear_data( 0 )
public event_textmsg_restart()         g_reset_data = true
public logevent_round_start()
{
    if( g_reset_data )
    {
        clear_data( 0 )
        g_reset_data = false
    }
}

public event_death()
{
    new killer = read_data( 1 )
    new victim = read_data( 2 )
    new headshot = read_data( 3 )
    new weapon[ 12 ]; read_data( 4, weapon, 11 )
    
    if( !is_user_connected( killer ) && !is_user_connected( victim ) )
        return
        
    if( killer == victim )
    {
        g_user_score[ victim ][ DEATHS ] ++
        return
    }
        
    g_user_score[ killer ][ KILLS ] ++
    
    if( headshot )
        g_user_score[ killer ][ HEADSHOTS ] ++
        
    if( equal( weapon, "knife" ) )
        g_user_score[ killer ][ KNIFEKILLS ] ++
    else if( equal( weapon, "grenade" ) )
        g_user_score[ killer ][ GRENADEKILLS ] ++
    
    g_user_score[ victim ][ DEATHS ] ++
}
    

public rtask_show_hud()
{
    for( new id = 1; id <= g_maxplayers; id ++ )
    {
        if( !is_user_alive( id ) || g_user_score[ id ][ DISABLE ] )
            continue
        
        new Float:kd,
            Float:k = float( g_user_score[ id ][ KILLS ] ),
            Float:d = float( g_user_score[ id ][ DEATHS ] )
        
        if( k && d )
            kd = k / d
            
        else kd = 0.0
        
        
        set_dhudmessage( 255, 255, 255, -1.0, 0.01, 0, 0.0, 1.0, 0.1, 0.1, true )
        show_dhudmessage
        (
            id, "Убийств: %d | Смертей: %d | К/Д: %.2f",
            g_user_score[ id ][ KILLS ],
            g_user_score[ id ][ HEADSHOTS ],
            g_user_score[ id ][ KNIFEKILLS ],
            g_user_score[ id ][ GRENADEKILLS],
            g_user_score[ id ][ DEATHS ],
            kd
        )
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
technique88
сообщение 26.6.2019, 8:19
Сообщение #2
Стаж: 8 лет 7 месяцев

Сообщений: 17
Благодарностей: 4
Полезность: 0

Может надо кому, исправил сам

Код:
Код
#include <amxmodx>
#include <dhudmessage>

#define PLUGIN        "Score HUD"
#define VERSION        "1.0"
#define AUTHOR         "AndrewZ"
    
enum _:SCORE_DATA
{
    DISABLE,
    KILLS,
    HEADSHOTS,
    KNIFEKILLS,
    GRENADEKILLS,
    DEATHS
}

new g_user_score[ 33 ][ SCORE_DATA + 1 ]
new g_maxplayers
    
new bool:g_reset_data

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, AUTHOR )
    
    g_maxplayers = get_maxplayers()
    
    register_clcmd( "say /score", "cmd_score" )
    
    register_event( "DeathMsg", "event_death", "a" )
    register_event( "TextMsg", "event_textmsg_restart", "a", "2=#Game_will_restart_in" )
    
    register_logevent( "logevent_game_commencing", 2, "1=Game_Commencing" )
    register_logevent( "logevent_round_start", 2, "1=Round_Start" )
    
    set_task( 1.0, "rtask_show_hud", _, _, _, "b" )
}

public cmd_score( id )
{
    if( g_user_score[ id ][ DISABLE ] )
    {
        g_user_score[ id ][ DISABLE ] = 0
        client_print( id, print_chat, "HUD информер статистики включен." )
    }
    else
    {
        g_user_score[ id ][ DISABLE ] = 1
        client_print( id, print_chat, "HUD информер статистики выключен." )
    }
    
    return PLUGIN_HANDLED
}    

public clear_data( id )
{
    if( !id )
    {
        for( new i = 1; i <= g_maxplayers; i ++ )
        {
            for( new data; data <= SCORE_DATA; data ++ )
                g_user_score[ i ][ data ] = 0
        }
    }
    else
    {
        for( new data; data <= SCORE_DATA; data ++ )
            g_user_score[ id ][ data ] = 0
    }
}


public client_connect( id )         clear_data( id )
public client_disconnect( id )         clear_data( id )
public logevent_game_commencing()    clear_data( 0 )
public event_textmsg_restart()         g_reset_data = true
public logevent_round_start()
{
    if( g_reset_data )
    {
        clear_data( 0 )
        g_reset_data = false
    }
}

public event_death()
{
    new killer = read_data( 1 )
    new victim = read_data( 2 )
    new headshot = read_data( 3 )
    new weapon[ 12 ]; read_data( 4, weapon, 11 )
    
    if( !is_user_connected( killer ) && !is_user_connected( victim ) )
        return
        
    if( killer == victim )
    {
        g_user_score[ victim ][ DEATHS ] ++
        return
    }
        
    g_user_score[ killer ][ KILLS ] ++
    
    if( headshot )
        g_user_score[ killer ][ HEADSHOTS ] ++
        
    if( equal( weapon, "knife" ) )
        g_user_score[ killer ][ KNIFEKILLS ] ++
    else if( equal( weapon, "grenade" ) )
        g_user_score[ killer ][ GRENADEKILLS ] ++
    
    g_user_score[ victim ][ DEATHS ] ++
}
    

public rtask_show_hud()
{
    for( new id = 1; id <= g_maxplayers; id ++ )
    {
        if( !is_user_alive( id ) || g_user_score[ id ][ DISABLE ] )
            continue
        
        new Float:kd,
            Float:k = float( g_user_score[ id ][ KILLS ] ),
            Float:d = float( g_user_score[ id ][ DEATHS ] )
        
        if( k && d )
            kd = k / d
            
        else kd = 0.0
        
        
        set_dhudmessage( 255, 255, 255, -1.0, 0.01, 0, 0.0, 1.0, 0.1, 0.1, true )
        show_dhudmessage
        (
            id, "Убийств: %d | Смертей: %d | К/Д: %.2f",
            g_user_score[ id ][ KILLS ],
            g_user_score[ id ][ DEATHS ],
            kd
        )
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: