#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")
}
#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; // Сброс лимита гранат для всех игроков
}
}
RG_RoundEndRG_Round_End
IsPlayer тут явно лишнее (хотя никакого вреда нет по производительности)if (IsPlayer(id)) g_HeLimit[id] = 3;
Непонятно зачем он нужен если мы устанавливаем при спавне.OnRoundEnd()
Лучше конечно уменьшить после успешной выдачиrg_give_item(attacker, "weapon_hegrenade"); g_HeLimit[attacker]--; // Уменьшаем лимит гранат
if (rg_give_item(attacker, "weapon_hegrenade") > 0)
g_HeLimit[attacker]--;