#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <engine>
#define PLUGIN "Vip Hns"
#define VERSION "1.1"
#define AUTHOR "C0sm1N"
#define nr_maxim 3 // de aici modifici de cate ori sa poata folosii /vipmenu pe runda !
new g_iRunda[ 33 ];
new gmsgSayText
new iTask = 112112
static const COLOR[] = "^x04"
public plugin_init () {
register_plugin ("PLUGIN", "VERSION", "AUTHOR");
register_clcmd ("say /vipmenu","HnsVip");
register_event("HLTV", "roundstart", "a", "1=0", "2=0")
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
register_clcmd("say /vips","showvips")
gmsgSayText = get_user_msgid("SayText");
register_event("ResetHUD", "ev_resethud", "be")
}
public HnsVip ( id )
{
if (Vip(id))
{
ShowMenu(id);
}
else
{
chat_color(id, "!g[VIP] !yNu ai acces la /vipmenu,cumpara vip !")
}
}
public roundstart( )
{
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum, "c" );
for( new i = 0; i < iNum; i++ )
{
g_iRunda[ iPlayers[ i ] ] = 0;
}
}
public ShowMenu ( id )
{
if(g_iRunda[id] >= nr_maxim)
{
chat_color(id,"!g[VIP] !yAi folosit de %i ori aceasta comanda, !teamasteapta pana runda urmatoare.",nr_maxim);
return 1;
}
if (!is_user_alive ( id ) || is_user_bot ( id ))
return 1;
static menu;
menu = menu_create ("\ Meniu vip","meniu_vip");
menu_additem ( menu,"\g Deagle \r[2Gloante]","1", 0 );
menu_additem ( menu,"\g Invizibilitate \r[15 Secunde]","2", 0 );
menu_additem ( menu,"\g Gravitatie \r[10 Secunde]","3", 0 );
menu_additem ( menu,"\g GodMode \r[10 Secunde]","4", 0 );
menu_setprop ( menu, MPROP_NUMBER_COLOR,"\y");
menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
g_iRunda[id]++
menu_display ( id, menu, 0 );
return 0;
}
public meniu_vip ( id, menu, item )
{
if ( item == MENU_EXIT )
{
menu_destroy ( menu );
return 1;
}
new data [ 6 ], szName [ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data, charsmax ( data ), szName, charsmax ( szName ), callback );
new key = str_to_num ( data );
switch ( key )
{
case 1:
{
chat_color(id,"!g[MeniuVip] !yTi-ai ales !teamdeagle cu !y2 gloante.")
cs_set_weapon_ammo(give_item(id, "weapon_deagle"), 3)
cs_set_user_bpammo(id, CSW_DEAGLE, 0);
}
case 2:
{
chat_color(id,"!g[MeniuVip] !yTi-ai ales !teaminvizibilitate !y10 secunde.")
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0);
set_task(15.0, "remove_invizibility",id);
}
case 3:
{
chat_color(id,"!g[MeniuVip] !yTi-ai ales !teamgravitatie !y10 secunde.")
set_user_gravity( id, 0.6 );
set_task(10.0, "remove_gravity",id);
}
case 4:
{
chat_color(id,"!g[MeniuVip] !yTi-ai ales !teamGodMode !y10 secunde.")
set_user_godmode ( id, 1 );
set_task ( 10.0,"remove_godmode", id );
}
}
menu_destroy ( menu );
return 1;
}
public remove_invizibility(id){
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
chat_color(id, "!g[MeniuVip] !yTi-a expirat !teaminvizibilitatea.")
}
public remove_gravity(id){
set_user_gravity( id, 1.0 );
chat_color(id, "!g[MeniuVip] !yTi-a expirat !teamgravitatia.")
}
public remove_godmode(id){
set_user_godmode ( id, 0 );
chat_color(id, "!g[MeniuVip] !yTi-a expirat !teamgodmode-ul.")
}
public fwHamPlayerSpawnPost(id) {
if (Vip(id) && is_user_alive(id))
{
set_user_health(id, get_user_health(id) + 25)
give_item ( id,"weapon_hegrenade" );
give_item ( id,"weapon_flashbang" );
give_item ( id,"weapon_flashbang" );
give_item ( id,"weapon_smokegrenade" );
g_iRunda[ id ] = false
}
}
stock bool:Vip(id)
{
if(get_user_flags(id) & read_flags("t"))
return true
return false;
}
public client_putinserver( id )
{
if(Vip(id))
{
new name[32]
get_user_name(id,name,31)
chat_color(0, "!team[VIP]!g%s !yse conecteaza !",name)
}
}
public client_disconnect(id)
{
if(Vip(id))
{
new name[32]
get_user_name(id,name,31)
chat_color(0,"!team[VIP]!g%s a iesit dupa server",name)
}
}
public ev_resethud(id)
{
set_task(1.0,"tabscore1",id + iTask)
}
public tabscore1( taskid )
{
new id = taskid - iTask
if(Vip(id) && is_user_connected(id))
{
message_begin( MSG_ALL, get_user_msgid("ScoreAttrib") )
write_byte( id )
write_byte( 4 )
message_end( )
}
}
public showvips(user)
{
new adminnames[33][32]
new message[256]
new id, count, x, len
new maxplayers = get_maxplayers()
for(id = 1 ; id <= maxplayers ; id++)
if(is_user_connected(id))
if(Vip(id))
get_user_name(id, adminnames[count++], 31)
len = format(message, 255, "%s VIP ONLINE: ",COLOR)
if(count > 0) {
for(x = 0 ; x < count ; x++) {
len += format(message[len], 255-len, "%s%s ", adminnames[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, "No VIP online.")
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()
}
stock chat_color(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!team", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players)
write_byte(players);
write_string(msg);
message_end();
}
}
}
}