#include <amxmodx>
#include <fakemeta_util>
new niewidzialnosc, maxplayers, gmsgSayText;
new n[32], g_lastwpn[33];
new vip[] = "t";
static const COLOR[] = "^x04";
new bool:g_invis[33];
public plugin_init()
{
register_plugin("V.I.P", "1.0", "MisieQ")
register_event("CurWeapon", "Event_CurWeapon", "be", "1=1");
maxplayers = get_maxplayers()
register_clcmd("say", "vip_say")
niewidzialnosc = register_cvar("amx_vip_niewidzialnosc", "100")
gmsgSayText = get_user_msgid("SayText");
}
/* Funkcja od Sprawdzania Uprawnien(Flag) */
public has_flags(id,string[])
{
new ret=1
new byte
new len = strlen(string)
new p_flag = get_user_flags(id)
for(new i=0;i<=len;i++)
{
if(string[i]>='a' && string[i]<='z') byte = (1<<(string[i]-'a'))
else if(string[i]>='A' && string[i]<='Z') byte = (1<<(string[i]-'A'))
else if(string[i]==',' && ret==1) return 1
else if(string[i]==',') ret=1
if(byte!=0 && !(p_flag & byte)) ret=0
byte=0
}
return ret
}
/* Info HUD */
public client_authorized(id)
{
if(has_flags(id,vip))
{
get_user_name(id, n, 31);
set_hudmessage(255, 255, 0, 0.04, 0.76, 0, 6.0, 6.0)
show_hudmessage(0, "V.I.P %s^nWbija na Serwer", n)
}
}
public client_putinserver(id)
{
if(has_flags(id,vip))
{
get_user_name(id, n, 31);
set_hudmessage(255, 255, 0, 0.04, 0.76, 0, 6.0, 6.0)
show_hudmessage(0, "V.I.P %s^n Dolaczyl do Gry!^nGL & HF", n)
}
}
/* Informacje kto ma VIPA */
public vip_say(id)
{
new said[192]
read_args(said,192)
if( ( containi(said, "vip") != -1 && containi(said, "/vip") != -1 ) )
set_task(0.1,"print_vip",id)
return PLUGIN_CONTINUE
}
public print_vip(user)
{
new vipnames[33][32]
new message[256]
new id, count, x, len
for(id = 1 ; id <= maxplayers ; id++)
if(is_user_connected(id))
if(has_flags(id,vip))
get_user_name(id, vipnames[count++], 31)
len = format(message, 255, "%s V.I.P: ",COLOR)
if(count > 0)
{
for(x = 0 ; x < count ; x++)
{
len += format(message[len], 255-len, "%s%s ", vipnames[x], x < (count-1) ? ", ":"")
if(len > 96 )
{
print_message(user, message)
len = format(message, 255, "%s ",COLOR)
}
}
print_message(user, message)
}
else
{
len += format(message[len], 255-len, "Brak grajacych V.I.P.")
print_message(user, message)
}
}
print_message(id, msg[])
{
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
write_byte(id)
write_string(msg)
message_end()
}
/* Niewidzialnosc & Sprawdzanie czy ma niewidzialnosc */
public Event_CurWeapon(id)
{
if (!is_user_alive(id)) return;
if(has_flags(id,vip)) return;
new weapon_id = read_data(2);
g_invis[id] = false;
if ( g_lastwpn[id] != weapon_id )
{
set_invis(id);
}
g_lastwpn[id] = weapon_id;
}
public set_invis(id)
{
new wartosc;
wartosc = get_pcvar_num(niewidzialnosc);
if (!is_user_alive(id)) return;
if(has_flags(id,vip))
{
fm_set_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransTexture, wartosc);
g_invis[id] = true;
}
else
{
fm_set_rendering(id);
g_invis[id] = false;
}
}