#pragma semicolon 1
#include <amxmodx>
#include <reapi>
new bool:freezed[MAX_CLIENTS+1],killer[MAX_CLIENTS+1];
new const tag[] = "webailesi";
public plugin_init()
{
register_plugin("BombaKillFreeze", "0.1", "KayraLynch");
RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", .post = true);
RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage_Pre", .post = false);
RegisterHookChain(RG_CSGameRules_RestartRound, "CSGameRules_RestartRound_Pre", .post = false);
}
public CBasePlayer_Killed_Post(const pVictim, pAttacker, iGib)
{
if(!is_user_connected(pAttacker) || pVictim == pAttacker)
{
return;
}
if(get_member(pAttacker, m_iTeam) == get_member(pVictim, m_iTeam) && get_member(pVictim, m_bKilledByGrenade))
{
killer[pVictim] = pAttacker;
cevapla(pVictim);
}
}
public cevapla(id)
{
new menu = menu_create(fmt("\y%s \d- \wTakim Arkadasin Seni Bilerek Mi Oldurdu ?", tag), "cevapla2");
menu_additem(menu, fmt("\y%s \d- \wEvet Bilerek Oldurdu", tag));
menu_additem(menu, fmt("\y%s \d- \wHayir Bilerek Oldurmedi", tag));
menu_setprop(menu, MPROP_EXITNAME,fmt( "\y%s \d- \wCikis", tag));
menu_setprop(menu,MPROP_NUMBER_COLOR,"\d");
menu_display(id, menu);
}
public cevapla2(const id, const menu, const item) {
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item)
{
case 0:
{
new flags = get_entvar(killer[id], var_flags);
if(~flags & FL_FROZEN)
{
set_entvar(killer[id], var_flags, flags | FL_FROZEN);
client_print_color(0,0,"^1[^3%s^1] ^1%n ^4Adli Oyuncu Takim Arkadasini Bombayla Oldurdugu Icin Donduruldu ^1!",tag,killer[id]);
}
}
case 1:
{
menu_destroy(menu);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public CBasePlayer_TakeDamage_Pre(const pVictim, pInflictor, pAttacker, Float:flDamage, bitsDamageType)
{
if(!is_user_connected(pAttacker) || !rg_is_player_can_takedamage(pVictim, pAttacker) || pVictim == pAttacker)
{
return;
}
if(get_member(pAttacker, m_iTeam) == get_member(pVictim, m_iTeam) && bitsDamageType != DMG_GRENADE)
{
SetHookChainArg(4, ATYPE_FLOAT, 0.0);
}
}
public CSGameRules_RestartRound_Pre()
{
for(new i = 1; i <= MaxClients; i++)
{
new flags = get_entvar(i, var_flags);
if(flags & FL_FROZEN)
{
set_entvar(i, var_flags, flags & ~FL_FROZEN);
freezed[i] = false;
}
}
}