Поиск Плагин "Бонус граната" =)

Сообщения
113
Реакции
1
Доброго Всем.

не могу найти плагин ..после того как убиваешь противника.. (неважно чем) ты получаешь в бонус гранату.
 
Сообщения
1,193
Реакции
90
Помог
15 раз(а)
Mizer,
Код:
#include <amxmodx>
#include <reapi>

#define IsPlayer(%1)    (1 <= %1 <= MaxClients)

public plugin_init()
{
    register_plugin("Bonus Kill", "1.0", "Dev.cs")

    RegisterHookChain(RG_CSGameRules_PlayerKilled, "@CSGameRules_PlayerKilledPost", true)
}

@CSGameRules_PlayerKilledPost(const victim, const killer)
{
    if(IsPlayer(killer) && victim != killer)
        rg_give_item(killer, "weapon_hegrenade")
}
 
Сообщения
54
Реакции
8
Код:
#include <amxmodx>
#include <reapi>


#define IsPlayer(%1) ((%1) >= 1 && (%1) <= MaxClients)

new g_HeLimit[MAX_PLAYERS + 1];

public PluginInit()
{
    register_plugin("HЕ Bonus", "0.1", "GPT");
    RegisterHookChain(RG_CBasePlayer_Killed, "OnPlayerKill", true);
    RegisterHookChain(RG_CBasePlayer_Spawn, "OnPlayerSpawn", true);
    RegisterHookChain(RG_Round_End, "OnRoundEnd", true); // Хук на конец раунда
}

public OnPlayerSpawn(id)
{
    if (IsPlayer(id))
        g_HeLimit[id] = 3; // Лимит гранат за раунд (можно изменить)
}

public OnPlayerKill(victim, attacker)
{
    if (!IsPlayer(attacker) || attacker == victim || g_HeLimit[attacker] <= 0)
        return;
    
    rg_give_item(attacker, "weapon_hegrenade");
    g_HeLimit[attacker]--; // Уменьшаем лимит гранат
}

// Функция, которая вызывается в конце раунда
public OnRoundEnd()
{
    for (new i = 1; i <= MaxClients; i++)
    {
        if (IsPlayer(i))
            g_HeLimit[i] = 3; // Сброс лимита гранат для всех игроков
    }
}
С добавлением ограничений выдачи за раунд, работает или нет хз, GPT чирикал )
 
Сообщения
723
Реакции
610
Предупреждения
8
Помог
13 раз(а)
Довольно не плохо. Но есть пару моментов.

RG_RoundEnd

if (IsPlayer(id)) g_HeLimit[id] = 3;
IsPlayer тут явно лишнее (хотя никакого вреда нет по производительности)

Непонятно зачем он нужен если мы устанавливаем при спавне.

Плюс там почему-то в цикле IsPlayer тоже запихнул хотя диапазон от 1 до MaxClients.
15 Фев 2025
rg_give_item(attacker, "weapon_hegrenade"); g_HeLimit[attacker]--; // Уменьшаем лимит гранат
Лучше конечно уменьшить после успешной выдачи
Код:
if (rg_give_item(attacker, "weapon_hegrenade") > 0)
   g_HeLimit[attacker]--;
Так же дополнительно можно проверять изменения аммо (увеличился ли после выдачи)

Это надёжнее.
 

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

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