#include <amxmodx>
#include <reapi>
#pragma semicolon 1
new szPluginInfo[][] = { "Admin Invis", "1.0", "ApXuTekToR" };
/* ==== Настройки ==== */
new const szFlags[] = "d"; // Флаг доступа
new const szInvis = 50; // Прозрачность игрока, где '0' - полная нивидимость, '255' - игрока полностью видно.
/* ==== Настройки ==== */
new bool:g_isUserInvis[MAX_PLAYERS+1];
public plugin_init() {
register_plugin(szPluginInfo[0], szPluginInfo[1], szPluginInfo[2]);
RegisterHookChain(RG_CBasePlayer_Spawn, "@uSpawn", true);
register_clcmd("admin_invis", "SetRendering");
}
public SetRendering(const Id)
{
if(!checkAccess(Id, szFlags))
{
client_print_color(Id, 0, "^3[^4INFO^3] ^3У Вас нет прав для использования данной команды.");
return PLUGIN_HANDLED;
}
if(!g_isUserInvis[Id])
{
rg_set_rendering(Id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, szInvis);
g_isUserInvis[Id] = true;
client_print_color(Id, 0, "^3[^4INFO^3] ^1Вы ^4включили ^1невидимость.");
}
else
{
rg_set_rendering(Id);
g_isUserInvis[Id] = false;
client_print_color(Id, 0, "^3[^4INFO^3] ^1Вы ^4выключили ^1невидимость.");
}
return PLUGIN_HANDLED;
}
@uSpawn(const Id)
{
if(checkAccess(Id, szFlags))
{
if(g_isUserInvis[Id])
rg_set_rendering(Id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, szInvis);
}
}
public client_connect(Id)
{
g_isUserInvis[Id] = false;
}
public client_disconected(Id)
{
g_isUserInvis[Id] = false;
}
stock rg_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
new Float:renderColor[3];
renderColor[0] = float(r);
renderColor[1] = float(g);
renderColor[2] = float(b);
set_entvar(entity, var_renderfx, fx);
set_entvar(entity, var_rendercolor, renderColor);
set_entvar(entity, var_rendermode, render);
set_entvar(entity, var_renderamt, float(amount));
}
checkAccess(id, const flags[]) {
return (get_user_flags(id) & read_flags(flags));
}