Русское сообщество по скриптингу

Помогите упростить код плагина  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Помогите упростить код плагина  [Решено]

Сообщение navigator » 26 янв 2018, 16:56

Код: Выделить всё
#include <amxmodx>
#include <fakemeta>

new gMaxPlayers

public plugin_init
()
{
    register_plugin("client_cvar", "1.0", "NAV")
    gMaxPlayers = get_maxplayers()
}

public client_putinserver(id){
  set_task(10.0, "query_client", id, _, _, "b")
}

public client_disconnect(id)
    remove_task(id)

public query_client()
{
    for( new alive = 1; alive <= gMaxPlayers; alive++ ){
        if( !is_user_alive(alive) ) continue;
        
        for
( new dead = 1; dead <= gMaxPlayers; dead++ ){
            
            if
( is_user_alive(dead) || is_user_bot(dead)  || is_user_bot(alive) ) continue
            query_client_cvar
(alive, "rate", "cvar_query_rate")
            query_client_cvar(alive, "ex_interp", "cvar_query_interp")
        }
    }
    return PLUGIN_CONTINUE;
}


public cvar_query_rate(id, const cvar[], const value[])
{
    for( new alive = 1; alive <= gMaxPlayers; alive++ ){
    
        for
( new dead = 1; dead <= gMaxPlayers; dead++ ){
            
            if
( pev(dead, pev_iuser2) == alive ){
                set_hudmessage(255, 255, 0, -1.0, 0.15, 0, 0.0, 1.0, 0.0, 0.0, -1)                    
                show_hudmessage
(dead, "rate %s", value)
            }
        }
    }
}

public cvar_query_interp(id, const cvar[], const value[])
{
    for( new alive = 1; alive <= gMaxPlayers; alive++ ){
    
        for
( new dead = 1; dead <= gMaxPlayers; dead++ ){
            
            if
( pev(dead, pev_iuser2) == alive ){
                set_hudmessage(255, 255, 0, -1.0, 0.21, 0, 0.0, 1.0, 0.0, 0.0, -1)                    
                show_hudmessage
(dead, "ex_interp %s", value)
            }
        }
    }
}



Набросал плагин из разных исходников суть плагина когда игрок мертвый и за кем то наблюдает на экран выводится HUD сообщения с рейтами, ФПС, интерполяцией за кем он наблюдает, помогите его упростить чтобы было поменьше циклов да и с отображением HUD тоже не все так гладко постоянно моргает.
Как можно сохранить в массиве callback от cvar_query_callback?
Как вывести результат cvar_query_callback без callback функции?
Как сохранить результат cvar_query_callback в переменную?
Аватара пользователя
navigator
 
Сообщения: 65
Зарегистрирован: 03 фев 2011, 21:35
Откуда: Уфа.
Благодарил (а): 18 раз.
Поблагодарили: 3 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8