Code: Select all
#include <amxmodx>
#include <newmenus>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>
#define ADMIN_VIP ADMIN_KICK
#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD ( 1 << 0 )
#define SCOREATTRIB_BOMB ( 1 << 1 )
#define SCOREATTRIB_VIP ( 1 << 2 )
#define VERSION "v2"
#define is_valid_player(%1) (1 <= %1 <= 32)
const Wep_deagle = ((1<<CSW_DEAGLE))
static const COLOR[] = "^x04" //green
new bool:g_HasDg[33]
new bool:used_menu[33]
new g_hasZoom[ 33 ]
new bullets[ 33 ]
new m_spriteTexture
new gmsgSayText
public plugin_init ()
{
register_plugin ("GOLD Menu", VERSION,"Legendaru");
register_clcmd ("say /gmenu","Options");
register_clcmd ("say /buyvip","buy_vip");
register_clcmd ("say /gvips","showvips");
gmsgSayText = get_user_msgid("SayText");
register_event("DeathMsg", "Death", "a");
register_event("ResetHUD", "resetModel", "b");
register_forward( FM_CmdStart, "fw_CmdStart" );
register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
}
public Death()
{
g_HasDg[read_data(2)] = false
}
public MessageScoreAttrib( iMsgID, iDest, iReceiver ) {
new iPlayer = get_msg_arg_int( 1 );
if( is_user_connected( iPlayer )
&& ( get_user_flags( iPlayer ) & ADMIN_VIP ) ) {
set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD );
}
}
public plugin_precache()
{
precache_model("models/player/vip/t_vip.mdl")
precache_model("models/player/vip/g_vip.mdl")
}
public resetModel(id, level, cid) {
if (get_user_flags(id) & ADMIN_VIP) {
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T) {
cs_set_user_model(id, "t_vip")
}
else if(userTeam == CS_TEAM_CT) {
cs_set_user_model(id, "g_vip")
}
else {
cs_reset_user_model(id)
}
}
return PLUGIN_CONTINUE
}
public fw_CmdStart( id, uc_handle, seed )
{
if( !is_user_alive( id ) )
return PLUGIN_HANDLED
if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
{
new szClip, szAmmo
new szWeapID = get_user_weapon( id, szClip, szAmmo )
if( szWeapID == CSW_DEAGLE && g_HasDg[id] == true && !g_hasZoom[id] == true)
{
g_hasZoom[id] = true
cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
}
else if ( szWeapID == CSW_DEAGLE && g_HasDg[id] == true && g_hasZoom[id])
{
g_hasZoom[ id ] = false
cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
}
}
return PLUGIN_HANDLED
}
public make_tracer(id)
{
new clip,ammo
new wpnid = get_user_weapon(id,clip,ammo)
new pteam[16]
get_user_team(id, pteam, 0)
if ((bullets[id] > clip) && (wpnid == CSW_DEAGLE) && g_HasDg[id])
{
new vec1[3], vec2[3]
get_user_origin(id, vec1, 1) // origin; your camera point.
get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
//BEAMENTPOINTS
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (0) //TE_BEAMENTPOINTS 0
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_coord(vec2[0])
write_coord(vec2[1])
write_coord(vec2[2])
write_short( m_spriteTexture )
write_byte(1) // framestart
write_byte(5) // framerate
write_byte(2) // life
write_byte(10) // width
write_byte(0) // noise
write_byte( 255 ) // r, g, b
write_byte( 215 ) // r, g, b
write_byte( 0 ) // r, g, b
write_byte(200) // brightness
write_byte(150) // speed
message_end()
}
bullets[id] = clip
}
public Options ( id )
{
if(get_user_flags(id) & ADMIN_VIP)
{
if(!used_menu[id]){
used_menu[id] = true;
ShowMenu(id);
}else{
ColorChat(id, GREEN,"[^01VIP^x04] ^x01Poti folosi aceasta comanda doar ^x04o data pe runda!");
}
}else{
ColorChat(id, GREEN,"[^x01VIP^x04] ^x04Nu esti ^x01V.I.P ^x04nu ai acces la meniu ^x01 scrie ^x04 /buyvip");
return 1;
}
return 0;
}
public ShowMenu ( id )
{
if (!is_user_alive ( id )|| is_user_bot ( id )||!is_user_connected ( id ))
return 1;
if(cs_get_user_team(id) == CS_TEAM_T)
{
new menu = menu_create("\r[HNS \wGOLD MENU\r]\wVIP \r Terrorist \wMenu", "Cmd_VipHandlerT")
menu_additem(menu, "\w 2x \r All Grenades","1", 0 );
menu_additem(menu, "\w 255HP + \r255AP","2", 0 );
menu_additem(menu,"\r [2] \wGloante Deagle + \r2 x \w flashbang'uri","3", 0 );
menu_additem(menu, "\r [1] \wGlont AWP \r + 50 \w HP","4", 0 );
menu_additem (menu,"\w Godmode \r[10] \w secunde","5", 0 );
menu_additem (menu,"\w 500$ \r Bani \w medic","5", 0 );
menu_setprop (menu, MPROP_NUMBER_COLOR,"\y");
menu_setprop (menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
return 1;
}
else if(cs_get_user_team(id) == CS_TEAM_CT)
{
new menu = menu_create("\r[HNS \wGOLD MENU\r]\wVIP \r Counter-Strike \wMenu ", "Cmd_VipHandlerCT")
menu_additem(menu, "\r 500 $ \w Bani \r Medic","1", 0 );
menu_additem(menu, "\w 355HP + \r 355AP","2", 0 );
menu_additem(menu,"\r [2] \wGloante Deagle + \w un flashbang \r + un \w [G] \r AWP","3", 0 );
menu_additem(menu, "\r + 150 \w MaxSpeed","4", 0 );
menu_additem (menu,"\w Godmode \r[10] \w secunde","5", 0 );
menu_setprop (menu, MPROP_NUMBER_COLOR,"\y");
menu_setprop (menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
return 0;
}
}
public Cmd_VipHandlerT(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:
{
give_item ( id,"weapon_hegrenade" );
give_item ( id,"weapon_hegrenade" );
give_item ( id,"weapon_flashbang" );
give_item ( id,"weapon_flashbang" );
give_item ( id,"weapon_smokegrenade" )
give_item ( id,"weapon_smokegrenade" )
ColorChat(id, RED, "Ai primit ^x01 2x ^x04 toate ^x01 grenazile");
}
case 2:
{
set_user_health ( id, get_user_health ( id )+ 255 );
set_user_armor ( id, get_user_armor ( id )+ 255 );
}
case 3:
{
cs_set_weapon_ammo ( give_item( id, "weapon_deagle" ), 2 )
give_item ( id,"weapon_flashbang" );
give_item ( id,"weapon_flashbang" );
ColorChat(id, RED, "Ai primit ^x01 DEAGLE^x04[^x01 2 ^x04]^x01 G ^x04 si ^x01 2x ^x04 Flashbang'uri!");
}
case 4:
{
new wID = give_item(id, "weapon_awp");
cs_set_weapon_ammo(wID, 1);
set_user_health ( id, get_user_health ( id )+ 50 );
ColorChat(id, RED, " Ai primit ^x01 AWP ^x04 [1] ^x03 G si ^x01 50 ^x04 HP!");
}
case 5:
{
set_user_godmode(id,1)
set_task(10.0,"remove_god_mode",id)
ColorChat(id,RED,"Ai primit ^x04 GodMode ^x01[^x04 10 SEC ^x01] !");
}
case 6:
{
cs_set_user_money(id, cs_get_user_money(id) + 500);
ColorChat(id,RED,"Ai primit ^x04 500 $ ^x01[^x04 Bani medic ^x01] !");
}
}
menu_destroy ( menu );
return 1;
}
public remove_god_mode(id)
{
if (get_user_flags(id) & ADMIN_VIP)
{
set_user_godmode(id,0)
ColorChat(id,RED," GodMode ^x04 a fost ^x01 DEZACTIVAT !")
}
}
stock drop_prim(id)
{
new weapons[32], num
get_user_weapons(id, weapons, num)
for (new i = 0; i < num; i++) {
if (Wep_deagle & (1<<weapons[i]))
{
static wname[32]
get_weaponname(weapons[i], wname, sizeof wname - 1)
engclient_cmd(id, "drop", wname)
}
}
}
public Cmd_VipHandlerCT(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:
{
cs_set_user_money(id, cs_get_user_money(id) + 500);
ColorChat(id,RED,"Ai primit ^x04 500 $ ^x01[^x04 Bani medic ^x01] !");
}
case 2:
{
set_user_health ( id, get_user_health ( id )+ 355 );
set_user_armor ( id, get_user_armor ( id )+ 355 );
}
case 3:
{
cs_set_weapon_ammo ( give_item( id, "weapon_deagle" ), 2 )
give_item ( id,"weapon_flashbang" );
new wID = give_item(id, "weapon_awp");
cs_set_weapon_ammo(wID, 1);
ColorChat(id, GREEN, "Ai primit ^x01 DEAGLE^x04[^x01 2 ^x04]^x01 G ^x04 un ^x01 Flash ^x03 si AWP ^x01 1 ^x04 [G] ");
}
case 4:
{
set_user_maxspeed( id , get_user_maxspeed( id ) + 150.0 );
ColorChat(id, GREEN, "Ai primit ^x01 + ^x04 150 MaxSpeed!");
}
case 5:
{
set_user_godmode(id,1)
set_task(10.0,"remove_god_mode",id)
ColorChat(id,RED,"Ai primit ^x04 GodMode ^x01[^x04 10 SEC ^x01] !");
}
}
menu_destroy ( menu );
return 1;
}
public buy_vip(id)
{
show_motd(id,"/addons/amxmodx/configs/buyvip.html","Buyvip")
return PLUGIN_HANDLED
}
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 (get_user_flags(id) & ADMIN_VIP)
get_user_name(id, adminnames[count++], 31)
len = format(message, 255, "%s GOLD V.I.P : ",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, "Nu este niciun gold vip pe server.")
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, "!n", "^1")
replace_all(msg, 190, "!t", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}