Поиск Плагин Damager+combo

Сообщения
7
Реакции
-15
Добрый день, помогите найти такой плагин, если конечно есть
Суть плагина: Показывает нанесенный урон по врагу + общую серию или комбо урона, нанесенного по врагам
 

Вложения

Сообщения
73
Реакции
8
Krikkk, в любой плагин для отображения урона добавляете переменную для каждого игрока и суммируете в неё каждый урон.
Вместе с обычным уроном также выводите значение этой переменной

ps Ну или у Виталия попросите плагин (владельца этого сервера)
 
Сообщения
7
Реакции
-15
Krikkk, в любой плагин для отображения урона добавляете переменную для каждого игрока и суммируете в неё каждый урон.
Вместе с обычным уроном также выводите значение этой переменной

ps Ну или у Виталия попросите плагин (владельца этого сервера)
если не сложно, можете сделать?) Заранее спасибо
 

Вложения

Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)
Krikkk,
Код:
#include <amxmodx>
#include <reapi>

new const PLUGIN_NAME[] = "[ReAPI] Combo Damager";
new const PLUGIN_VERSION[] = "0.0.0";

#if !defined MAX_PLAYERS
    const MAX_PLAYERS = 32;
#endif

new Float: g_fTotalDamage[MAX_PLAYERS+1];
new g_HudSyncMessage;

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, "AddAnyAuthor");

    RegisterHookChain(RG_CBasePlayer_TakeDamage, "CPlayer_TakeDamage_Post", .post = true);
    RegisterHookChain(RG_CSGameRules_PlayerKilled, "CPlayer_Killed_Post", .post = true);

    g_HudSyncMessage = CreateHudSyncObj();
}

public client_disconnected(iPlayer)
{
    g_fTotalDamage[iPlayer] = 0.0;
}

public CPlayer_Killed_Post(iVictim, iKiller, iInflictor)
{
    g_fTotalDamage[iVictim] = 0.0;
}

public CPlayer_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:flDamage, iBitsDamageType)
{
    if(!is_user_connected(iAttacker) || flDamage <= 0.0 || !rg_is_player_can_takedamage(iVictim, iAttacker) || iVictim == iAttacker)
    {
        return;
    }

    if(iBitsDamageType & DMG_BLAST)
    {
        return;
    }

    g_fTotalDamage[iAttacker] += flDamage;
    
    set_hudmessage(30, 114, 255, -1.0, 0.55, 0, 0.1, 2.5, 0.02, 0.02, -1);
    ShowSyncHudMsg(iAttacker, g_HudSyncMessage, "%.0f [Комбо: %.0f]", flDamage, g_fTotalDamage[iAttacker]);
}
Я не скриптер, но работать должно
 
Сообщения
1,420
Реакции
2,511
Помог
58 раз(а)
steelzzz, почти. Комбо-то не сбрасывается если не стрелять. Но в принципе автор не говорил об этом но скорее всего ему именно это и нужно, если учесть что скрин сделан на сервере где так и сделано.
 
Сообщения
7
Реакции
-15
steelzzz, почти. Комбо-то не сбрасывается если не стрелять. Но в принципе автор не говорил об этом но скорее всего ему именно это и нужно, если учесть что скрин сделан на сервере где так и сделано.
Я это как раз забыл упомянуть(((( Надо чтобы сбрасывалось, а так все работает
 
Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)
Krikkk,
Код:
#include <amxmodx>
#include <reapi>

new const PLUGIN_NAME[] = "[ReAPI] Combo Damager";
new const PLUGIN_VERSION[] = "0.0.1";

#if !defined MAX_PLAYERS
    const MAX_PLAYERS = 32;
#endif

#define COMBO_TIME 5.0

new Float: g_fTotalDamage[MAX_PLAYERS+1];
#if defined COMBO_TIME
    new Float: g_fDelayTime[MAX_PLAYERS+1];
#endif
new g_HudSyncMessage;

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, "AddAnyAuthor");

    RegisterHookChain(RG_CBasePlayer_TakeDamage, "CPlayer_TakeDamage_Post", .post = true);
    RegisterHookChain(RG_CSGameRules_PlayerKilled, "CPlayer_Killed_Post", .post = true);

    g_HudSyncMessage = CreateHudSyncObj();
}

public client_disconnected(iPlayer)
{
    g_fTotalDamage[iPlayer] = 0.0;
#if defined COMBO_TIME  
    g_fDelayTime[iPlayer] = 0.0;
#endif
}

public CPlayer_Killed_Post(iVictim, iKiller, iInflictor)
{
    g_fTotalDamage[iVictim] = 0.0;
#if defined COMBO_TIME
    g_fDelayTime[iVictim] = 0.0; // ?
#endif
}

public CPlayer_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:flDamage, iBitsDamageType)
{
    if(!is_user_connected(iAttacker) || flDamage <= 0.0 || !rg_is_player_can_takedamage(iVictim, iAttacker) || iVictim == iAttacker)
    {
        return;
    }

    if(iBitsDamageType & DMG_BLAST)
    {
        return;
    }

#if defined COMBO_TIME
    if(g_fDelayTime[iAttacker] <= get_gametime())
    {
        g_fDelayTime[iAttacker] = 0.0;
        g_fTotalDamage[iAttacker] = 0.0;
    }
#endif
    g_fTotalDamage[iAttacker] += flDamage;
   
    set_hudmessage(30, 114, 255, -1.0, 0.55, 0, 0.1, 2.5, 0.02, 0.02, -1);
    ShowSyncHudMsg(iAttacker, g_HudSyncMessage, "%.0f [Комбо: %.0f]", flDamage, g_fTotalDamage[iAttacker]);
#if defined COMBO_TIME
    g_fDelayTime[iAttacker] = get_gametime() + COMBO_TIME;
#endif
}
#define COMBO_TIME 5.0 - закомментируйте (//), если хотите выкл автообнуление через n-сек.
Насчет этого, я точно не уверен.
 
Последнее редактирование:
Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу