#include <amxmodx>
#include <hamsandwich>
new g_bCantShoot[33];
new iMaxPlayers;
public plugin_init()
{
register_plugin("Block Damage for Player", "0.1", "asiap");
register_clcmd("amx_block_damage", "Clcmd_Admin", ADMIN_BAN);
RegisterHam(Ham_TraceAttack, "player", "TraceAttack");
iMaxPlayers = get_maxplayers();
}
public Clcmd_Admin(id, iBitFlag)
{
if(~get_user_flags(id) & iBitFlag)
{
client_print(id, print_chat, "Nie masz dostepu do tej komendy.");
return PLUGIN_HANDLED;
}
new szNum[3], szName[48];
new menu = menu_create("\yWybierz gracza", "Handle_Admin");
for(new i = 1; i <= iMaxPlayers; i++)
{
if(!is_user_connected(i) || is_user_hltv(i) || i == id || g_bCantShoot[i])
{
continue;
}
get_user_name(i, szName, 31);
if(g_bCantShoot[i])
{
add(szName, 47, "\R[ODBLOKUJ]");
}
num_to_str(i, szNum, 2);
menu_additem(menu, szName, szNum);
}
menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
return menu_display(id, menu);
}
public Handle_Admin(id, menu, item)
{
new iBitAccess, iCallback, szData[2], szName[32], iPid;
menu_item_getinfo(menu, item, iBitAccess, szData, 1, szName, 31, iCallback);
iPid = str_to_num(szData);
g_bCantShoot[iPid] = !g_bCantShoot[iPid];
client_print(id, print_chat, "%sblokowales mozliwosc zadawania obrazen graczowi ^"%s^"", g_bCantShoot[iPid] ? "Za" : "Od", szName);
}
public TraceAttack(id, iAttacker, Float:fDamage)
{
if(!is_user_connected(iAttacker) || !is_user_connected(id) || !g_bCantShoot[iAttacker]) return HAM_IGNORED;
SetHamParamFloat(3, 0.0);
return HAM_SUPERCEDE;
}