View Single Post
Nutu_
AlliedModders Donor
Join Date: Mar 2016
Location: Germany
Old 01-14-2019 , 16:17   Re: VIP plugin modification
Reply With Quote #5

okey, i havent just edited the one you gave, but i made it better, i changed almost everything, i hope it will work for you, there only one bug, and i dont know how to solve, the menu dissapear after 10 seconds, but sometimes it disappear when you leave spawn, so there is it
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <engine>
#define CC_COLORS_TYPE CC_COLORS_SHORT
#include <cromchat>  
#define VIP_FLAG ADMIN_LEVEL_H

static const COLOR[] = "^x04"
static const CONTACT[] = ""
new maxplayers
new gmsgSayText
new mpdmkbmhb
new health_add
new health_hs_add
new health_max
new nKiller
new nKiller_hp
new nHp_add
new nHp_max
new g_awp_active
new g_menu_active
new CurrentRound
new bool:HasC4[33]
new 
jumpnum[33] = 0
new bool:dojump[33] = false
new cvar_vip_jumps

public plugin_init()
{
    
register_plugin("VIP Menu""3.1""nutu.")
    
mpd register_cvar("money_per_damage","3")
    
mkb register_cvar("money_kill_bonus","200")
    
mhb register_cvar("money_hs_bonus","500")
    
cvar_vip_jumps register_cvar("vip_max_jumps""1")
    
health_add register_cvar("amx_vip_hp""15")
    
health_hs_add register_cvar("amx_vip_hp_hs""30")
    
health_max register_cvar("amx_vip_max_hp""100")
    
g_awp_active register_cvar("awp_active""1")
    
g_menu_active register_cvar("menu_active""1")
    
register_event("Damage","Damage","b")
    
register_event("DeathMsg","death_msg","a")
    
register_clcmd("awp","HandleCmd")
    
register_clcmd("sg550","HandleCmd")
    
register_clcmd("g3sg1","HandleCmd")
    
register_clcmd("say /wantvip","ShowMotd")
    
maxplayers get_maxplayers()
    
gmsgSayText get_user_msgid("SayText")
    
register_clcmd("say""handle_say")
    
register_cvar("amx_contactinfo"CONTACTFCVAR_SERVER)
    
register_logevent("LogEvent_RoundStart"2"1=Round_Start" );
    
register_event("HLTV""new_round""a""1=0""2=0");
    
register_event("TextMsg","Event_RoundRestart","a","2&#Game_w")
    
register_event("TextMsg","Event_RoundRestart","a","2&#Game_C");
    
register_event("DeathMsg""hook_death""a""1>0")
}

public 
Damage(id)
{
    new 
weaponhitpointattacker get_user_attacker(id,weapon,hitpoint)
    if(
attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
        if (
get_user_flags(attacker) & ADMIN_LEVEL_H
    {
        new 
money read_data(2) * get_pcvar_num(mpd)
        if(
hitpoint==1money += get_pcvar_num(mhb)
        
cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
    }
}

public 
death_msg()
{
    if(
read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
}

public 
LogEvent_RoundStart()
{
    
CurrentRound++;
    new 
players[32], playerpnum;
    
get_players(playerspnum"a");
    for(new 
0pnumi++)
    {
        
player players[i];
        if(
is_user_alive(player) && get_user_flags(player) & ADMIN_LEVEL_H)
        {
            
give_item(player"item_assaultsuit")
            
give_item(player"item_thighpack")
            
            if (!
get_pcvar_num(g_menu_active))
                return 
PLUGIN_CONTINUE
            
if(CurrentRound <= 2)
            {
                
CromChat(player"!g[VIP] !wYou will get only the equipment in the first two rounds.")
            }
            
            if(
CurrentRound >= 3)
            {
                
showvipmenu(player);
            }
        }
    }
    return 
PLUGIN_HANDLED
}

public 
Event_RoundRestart()
{
    
CurrentRound=0;
}

public 
hook_death()
{
    
nKiller read_data(1)
    
    if ( (
read_data(3) == 1) && (read_data(5) == 0) )
    {
        
nHp_add get_pcvar_num (health_hs_add)
    }
    else
        
nHp_add get_pcvar_num (health_add)
    
nHp_max get_pcvar_num (health_max)
    if(!(
get_user_flags(nKiller) & ADMIN_LEVEL_H))
        return;
    
    
nKiller_hp get_user_health(nKiller)
    
nKiller_hp += nHp_add
    
if (nKiller_hp nHp_maxnKiller_hp nHp_max
    set_user_health
(nKillernKiller_hp)
    
set_hudmessage(02550, -1.00.1501.01.00.10.1, -1)
    
show_hudmessage(nKiller"+%d HP"nHp_add)
    
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, nKiller)
    
write_short(1<<10)
    
write_short(1<<10)
    
write_short(0x0000)
    
write_byte(0)
    
write_byte(0)
    
write_byte(200)
    
write_byte(75)
    
message_end()
    
}

public 
client_PreThink(id)
{
    if(!
is_user_alive(id))
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
nbut get_user_button(id)
    new 
obut get_user_oldbutton(id)
    
    if((
nbut IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut IN_JUMP))
    {
        if(
get_user_flags(id) & VIP_FLAG)
        {
            if(
jumpnum[id] < get_pcvar_num(cvar_vip_jumps))
            {
                
dojump[id] = true
                jumpnum
[id]++
                return 
PLUGIN_CONTINUE;
            }
        }
    }
    
    if((
nbut IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
    {
        
jumpnum[id] = 0
        
return PLUGIN_CONTINUE;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
client_PostThink(id)
{
    if(!
is_user_alive(id))
    {
        return 
PLUGIN_CONTINUE;
    }
    
    if(
get_user_flags(id) & VIP_FLAG)
    {
        if(
dojump[id] == true)
        {
            new 
Float:velocity[3]
            
entity_get_vector(id,EV_VEC_velocityvelocity)
            
velocity[2] = random_float(265.0,285.0)
            
entity_set_vector(id,EV_VEC_velocityvelocity)
            
dojump[id] = false
            
return PLUGIN_CONTINUE;
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
showvipmenu(id) {
    new 
menu menu_create ("\yFREE \rVIP \yGUNS MENU""vipmenuheadler");
    
menu_additem(menu"\wGet M4A1+DEAGLE+EQUIPMENT \r[GRENADES/ARRMOR]""1");
    
menu_additem(menu"\wGet AK47+DEAGLE+EQUIPMENT \r[GRENADES/ARRMOR]""2");
    
menu_additem(menu"\wGet GALIL+DEAGLE+EQUIPMENT \r[GRENADES/ARRMOR]""3");
    
menu_additem(menu"\wGet FAMAS+DEAGLE+EQUIPMENT \r[GRENADES/ARRMOR]""4");
    
menu_additem(menu"\wGet XM1014+DEAGLE+EQUIPMENT \r[GRENADES/ARRMOR]""5");
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
menu_display(idmenu);
    
set_task(0.1,"task",id)
}
public 
closemenuid 

    
client_cmd(id,"slot10"

public 
task(id

    
set_task(10.0,"closemenu",id

public 
vipmenuheadler(idmenuitem) {
    if(
item == MENU_EXIT || !is_user_alive(id)) {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
data [6], szName [64];
    new 
accesscallback;
    
menu_item_getinfo (menuitemaccessdata,charsmax (data), szName,charsmax (szName), callback);
    new 
key str_to_num (data);
    
    switch (
key) {
        case 
1: { 
            if (
user_has_weapon(idCSW_C4) && get_user_team(id) == 1)
                
HasC4[id] = true;
            else
                
HasC4[id] = false;
            
            
strip_user_weapons (id)
            
give_item(id,"weapon_m4a1")
            
give_item(id,"weapon_deagle")
            
give_item(id,"weapon_knife")
            
give_item(id,"weapon_hegrenade")
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_smokegrenade");
            
give_item(id"item_assaultsuit");
            
give_item(id"item_thighpack");
            
cs_set_user_bpammo(idCSW_M4A1,90);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
CromChat(id"!g[VIP] !wYou have taken free !gM4A1+DEAGLE+EQUIPMENT")
            
            if (
HasC4[id])
            {
                
give_item(id"weapon_c4");
                
cs_set_user_plantid );
            }
        }
        case 
2: { 
            if (
user_has_weapon(idCSW_C4) && get_user_team(id) == 1)
                
HasC4[id] = true;
            else
                
HasC4[id] = false;
            
            
strip_user_weapons (id)
            
give_item(id,"weapon_ak47")
            
give_item(id,"weapon_deagle")
            
give_item(id,"weapon_knife")
            
give_item(id,"weapon_hegrenade")
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_smokegrenade");
            
give_item(id"item_assaultsuit");
            
give_item(id"item_thighpack");
            
cs_set_user_bpammo(idCSW_AK47,90);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
CromChat(id"!g[VIP] !wYou have taken free !gAK47+DEAGLE+EQUIPMENT")
            
            if (
HasC4[id])
            {
                
give_item(id"weapon_c4");
                
cs_set_user_plantid );
            }
        }
        case 
3: { 
            if (
user_has_weapon(idCSW_C4) && get_user_team(id) == 1)
                
HasC4[id] = true;
            else
                
HasC4[id] = false;
            
            
strip_user_weapons (id)
            
give_item(id,"weapon_galil")
            
give_item(id,"weapon_deagle")
            
give_item(id,"weapon_knife")
            
give_item(id,"weapon_hegrenade")
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_smokegrenade");
            
give_item(id"item_assaultsuit");
            
give_item(id"item_thighpack");
            
cs_set_user_bpammo(idCSW_GALIL,90);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
CromChat(id"!g[VIP] !wYou have taken free !gGALIL+DEAGLE+EQUIPMENT")
            
            if (
HasC4[id])
            {
                
give_item(id"weapon_c4");
                
cs_set_user_plantid );
            }
        }
        case 
4: { 
            if (
user_has_weapon(idCSW_C4) && get_user_team(id) == 1)
                
HasC4[id] = true;
            else
                
HasC4[id] = false;
            
            
strip_user_weapons (id)
            
give_item(id,"weapon_famas")
            
give_item(id,"weapon_deagle")
            
give_item(id,"weapon_knife")
            
give_item(id,"weapon_hegrenade")
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_smokegrenade");
            
give_item(id"item_assaultsuit");
            
give_item(id"item_thighpack");
            
cs_set_user_bpammo(idCSW_FAMAS90);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
CromChat(id"!g[VIP] !wYou have taken free !gFAMAS+DEAGLE+EQUIPMENT")
            
            if (
HasC4[id])
            {
                
give_item(id"weapon_c4");
                
cs_set_user_plantid );
            }
        }
        case 
5: { 
            if (
user_has_weapon(idCSW_C4) && get_user_team(id) == 1)
                
HasC4[id] = true;
            else
                
HasC4[id] = false;
            
            
strip_user_weapons (id)
            
give_item(id,"weapon_xm1014")
            
give_item(id,"weapon_deagle")
            
give_item(id,"weapon_knife")
            
give_item(id,"weapon_hegrenade")
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_flashbang");
            
give_item(id"weapon_smokegrenade");
            
give_item(id"item_assaultsuit");
            
give_item(id"item_thighpack");
            
cs_set_user_bpammo(idCSW_XM1014,32);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
CromChat(id"!g[VIP] !wYou have taken free !gXM1014+DEAGLE+EQUIPMENT")
            
            if (
HasC4[id])
            {
                
give_item(id"weapon_c4");
                
cs_set_user_plantid );
            }
        }
        case 
9: {             
        }
    }
    
menu_destroy (menu);
    return 
PLUGIN_HANDLED;
}

public 
HandleCmd(id){
    if (!
get_pcvar_num(g_awp_active))
        return 
PLUGIN_CONTINUE
    
if(get_user_flags(id) & ADMIN_LEVEL_H
        return 
PLUGIN_CONTINUE
    CromChat
(id"!g[VIP] !wFor buying Snipers !g(AWP, SG550, G3SG1)!w you must be a !gVIP Player.")
    return 
PLUGIN_HANDLED
}

public 
new_round()
{
    
CromChat(0"!g[VIP] !wIf you want to see what a !gVIP Player!w gets, type !g/wantvip !w| !g(c) nutu.");
}

public 
ShowMotd(id)
{
    
show_motd(id"vip.txt")
}

public 
handle_say(id) {
    new 
said[192]
    
read_args(said,192)
    if( ( 
containi(said"who") != -&& containi(said"admin") != -) || contain(said"/vips") != -)
        
set_task(0.1,"print_adminlist",id)
    return 
PLUGIN_CONTINUE
}

public 
print_adminlist(user
{
    new 
adminnames[33][32]
    new 
message[256]
    new 
contactinfo[256], contact[112]
    new 
idcountxlen
    
    
for(id id <= maxplayers id++)
        if(
is_user_connected(id))
        if(
get_user_flags(id) & ADMIN_LEVEL_H)
        
get_user_name(idadminnames[count++], 31)
    
    
len format(message255"%sONLINE VIPS: ",COLOR)
    if(
count 0) {
        for(
count x++) {
            
len += format(message[len], 255-len"%s%s "adminnames[x], < (count-1) ? ", ":"")
            if(
len 96 ) {
                
print_message(usermessage)
                
len format(message255"%s ",COLOR)
            }
        }
        
print_message(usermessage)
    }
    else {
        
len += format(message[len], 255-len"There's no online VIP.")
        
print_message(usermessage)
    }
    
    
get_cvar_string("amx_contactinfo"contact63)
    if(
contact[0])  {
        
format(contactinfo111"%s Contact Server Admin -- %s"COLORcontact)
        
print_message(usercontactinfo)
    }
}

print_message(idmsg[]) {
    
message_begin(MSG_ONEgmsgSayText, {0,0,0}, id)
    
write_byte(id)
    
write_string(msg)
    
message_end()
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1063\\ f0\\ fs16 \n\\ par }
*/ 
1. solved
2. added
3. deleted
4. added
5. added

Any donations will be warm welcomed Click Here
__________________
a simple act of caring creates an endless ripple.
Nutu_ is offline