#include <amxmodx>
#include <reapi>
#include <zombieplague>
#define iPermission ADMIN_RCON
#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD (1<<0)
#define SCOREATTRIB_BOMB (1<<1)
#define SCOREATTRIB_VIP (1<<2)
new const g_szTag[] = "Webailesi";
new const g_szSpriteModel[] = "sprites/xxx.spr";
new iSpriteIndex, bool:g_blActive[MAX_CLIENTS+1];
public plugin_init()
{
register_plugin("Vip Sec", "0.1", "LyNcH");
register_clcmd("say /vipsec", "SelectPlayer");
RegisterHookChain(RG_CBasePlayer_Spawn, "PlayerSpawn", .post = true);
register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib");
}
public plugin_precache()
{
iSpriteIndex = precache_model(g_szSpriteModel);
}
public client_putinserver(id)
{
g_blActive[id] = false;
}
public zp_user_infected_post(id, infector, nemesis)
{
if(g_blActive[id])
{
set_entvar(id, var_renderfx, kRenderFxNone);
g_blActive[id] = false;
}
}
public SelectPlayer(const id)
{
if(~get_user_flags(id) & iPermission)
{
client_print_color(id,id, "^1[^3%s^1] ^4Yetkiniz yeterli degil.", g_szTag);
return;
}
new menu = menu_create("Vip Yapmak Istedigin Oyuncuyu Sec", "_SelectPlayer");
for(new i = 1; i <= MaxClients; i++)
{
if(is_user_connected(i) && is_user_alive(i))
{
menu_additem(menu, fmt("\y%n \r%s", i, g_blActive[i] ? "Aktif":"Devre Disi"), fmt("%i", i));
}
}
menu_setprop(menu, MPROP_EXITNAME, "\dCikis");
menu_setprop(menu, MPROP_NUMBER_COLOR, "\d");
menu_display(id, menu);
return;
}
public _SelectPlayer(const id, const menu, const item)
{
if(item == MENU_EXIT || ~get_user_flags(id) & iPermission)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new access,data[6];
menu_item_getinfo(menu,item,access,data,charsmax(data));
new key = str_to_num(data);
if(!is_user_connected(key))
{
return PLUGIN_HANDLED;
}
g_blActive[key] = !g_blActive[key];
if(g_blActive[key])
{
SpriteOnTop(key);
set_task(1.0, "SpriteOnTop", key, .flags = "b");
rg_set_user_rendering(key, kRenderFxGlowShell, { 255.0, 0.0, 0.0 }, kRenderNormal, 10.0);
}
SelectPlayer(id);
client_print_color(0,0, "^1[^3%s^1] ^4%n adli admin %n oyuncunun vipligini %s.", g_szTag, g_blActive[key] ? "acti":"kapatti");
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public MessageScoreAttrib(id, Dest, Receiver)
{
new Player = get_msg_arg_int(1);
if(is_user_connected(Player) && g_blActive[Player])
{
set_msg_arg_int(2, ARG_BYTE, is_user_alive(Player) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
}
public PlayerSpawn(const id)
{
if(!is_user_alive(id))
{
return;
}
g_blActive[id] = false;
}
public SpriteOnTop(const id)
{
if(!is_user_alive(id) || !g_blActive[id])
{
remove_task(id);
return;
}
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_PLAYERATTACHMENT);
write_byte(id);
write_coord(36);
write_short(iSpriteIndex);
write_short(10);
message_end();
}
rg_set_user_rendering(const index, const fx = kRenderFxNone, const {Float,_}:color[3] = {0.0,0.0,0.0}, const render = kRenderNormal, const Float:amount = 0.0) {
set_entvar(index, var_renderfx, fx);
set_entvar(index, var_rendercolor, color);
set_entvar(index, var_rendermode, render);
set_entvar(index, var_renderamt, amount);
}