Thread: VIP on tabscore
View Single Post
cosminvl
Member
Join Date: Mar 2013
Location: Romania
Old 02-10-2019 , 10:23   Re: VIP on tabscore
Reply With Quote #12

PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <engine>
#include <fakemeta>
#include <cc_colorchat>

#define p. "Classic VIP-FIROGINAL.RO"
#define v. "6.0"
#define a. "Jică Măcelaru' aKa. four., Devil, StefaN@CSX"

#define VIP_LEVEL_ACCES ADMIN_LEVEL_F

#define SCOREATTRIB_NONE    0
#define SCOREATTRIB_DEAD    ( 1 << 0 )
#define SCOREATTRIB_BOMB    ( 1 << 1 )
#define SCOREATTRIB_VIP     ( 1 << 2 )

#define REMOVE_FLAGS "r"

new const RMaps[][] = {
    
"35hp",
    
"35hp_2",
    
"31hp",
    
"1hp",
    
"100hp"
};

new const 
g_szBeginning[ ] = "Membrii VIP";

const 
PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

new 
round[33] = 0;
new 
g_szMessage[256], cvar_vip_modecvar_vip_maxmoneycvar_vip_maxapcvar_vip_maxhpcvar_vip_showCcvar_vip_showHcvar_vip_in_outcvar_tagcvar_start_hpcvar_start_apcvar_start_moneycvar_vip_jumpcvar_hp_killcvar_ap_killjumpnum[33], booldojump[33], SyncHudMessage;

public 
plugin_init(){
    
register_plugin(p., v., a.);
    
    
register_clcmd("say /vip""vip_info");
    
register_clcmd("say""say_vmenu");
    
register_clcmd("say""handle_say");
    
register_clcmd("say_team""handle_say");

    
cvar_vip_mode register_cvar("amx_vip_mode""1");    
    
cvar_tag register_cvar("amx_vip_tag""[VIP]");
    
cvar_start_hp register_cvar("amx_start_hp""50");
    
cvar_start_ap register_cvar("amx_start_ap""80");
    
cvar_start_money register_cvar("amx_start_money""8000");
    
cvar_vip_jump register_cvar("amx_vip_jump""1" );
    
cvar_hp_kill register_cvar("amx_vip_addhp""10");    
    
cvar_ap_kill register_cvar("amx_vip_addap""10");
    
cvar_vip_in_out register_cvar("amx_vip_in_out""1");
    
cvar_vip_showC register_cvar("amx_vip_show_chat""1");
    
cvar_vip_showH register_cvar("amx_vip_show_hud""1");
    
cvar_vip_maxhp register_cvar("amx_vip_maxhp""180");
    
cvar_vip_maxap register_cvar("amx_vip_maxap""200");
    
cvar_vip_maxmoney register_cvar("amx_vip_maxmoney""16000");

    
register_event("DeathMsg""eDeathMsg""a");
    
register_message(get_user_msgid"ScoreAttrib" ), "MessageScoreAttrib");    
    
RegisterHam(Ham_Spawn"player""Spawn"1);    

    
set_task(120.0"mesaj_info"___"b");
    
set_task(1.0"TaskDisplayVips"___"b"0);
    
SyncHudMessage CreateHudSyncObj();        
}

public 
vip_menu(id){
    if(!
is_user_alive(id) || !(get_user_flags(id) & VIP_LEVEL_ACCES))
        return 
1;    
    
    new 
menu;
    switch(
cs_get_user_team(id)){
        case 
CS_TEAM_T:{
            
menu menu_create("\y[\rVIP Classic\y] \wMeniu \yVIP""menu_ammunition");
            
menu_additem(menu"Ak47+Deagle+Set grenăzi""1");
            
menu_additem(menu"Galil+Deagle+Set grenăzi""2");
            
menu_additem(menu"Awp+Deagle+Set grenăzi""3");
        }
        
        case 
CS_TEAM_CT:{
            
menu menu_create("\y[\rVIP Classic\y] \wMeniu \yVIP""menu_ammunition");
            
menu_additem(menu"M4a1+Deagle+Set grenăzi""1");
            
menu_additem(menu"Famas+Deagle+Set grenăzi""2");
            
menu_additem(menu"Awp+Deagle+Set grenăzi""3");
        }
    }
    
menu_display(idmenu0);
    return 
1;
}

public 
menu_ammunition (idmenuitem){
    if(
item == MENU_EXIT)
        return 
1;

    new 
accesscallbackdata[6], szName[64], tag[32];
    
menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);
    
get_pcvar_string(cvar_tagtagcharsmax(tag));
    new 
key str_to_num(data);
        
    if(
cs_get_user_team(id) == CS_TEAM_T)
        switch(
key){
            case 
1:{
                
drop_weapons(id1);
                
drop_weapons(id2);
                
give_item(id"weapon_knife");
                
give_item(id"weapon_ak47");
                
give_item(id"weapon_deagle");
                
give_item(id"weapon_hegrenade");
                
give_item(id"weapon_flashbang");
                
cs_set_user_bpammo(idCSW_HEGRENADE1);
                
cs_set_user_bpammo(idCSW_FLASHBANG2);
                
cs_set_user_bpammo(idCSW_AK4790);
                
cs_set_user_bpammo(idCSW_DEAGLE35);
                
ColorChat(idGREEN"^4%s ^1Ai ales ^4Ak47^1+^4Deagle^1+^4Set grenazi^1."tag);
            }      
            case 
2:{
                
drop_weapons(id1);
                
drop_weapons(id2);
                
give_item(id"weapon_knife");
                
give_item(id"weapon_galil");
                
give_item(id"weapon_deagle");
                
give_item(id"weapon_hegrenade");
                
give_item(id"weapon_flashbang");
                
cs_set_user_bpammo(idCSW_HEGRENADE1);
                
cs_set_user_bpammo(idCSW_FLASHBANG2);
                
cs_set_user_bpammo(idCSW_GALIL90);
                
cs_set_user_bpammo(idCSW_DEAGLE35);
                
ColorChat(idGREEN"^4%s ^1Ai ales ^4Galil^1+^4Deagle^1+^4Set grenazi^1."tag);
            }
            case 
3:{
                
drop_weapons(id1);
                
drop_weapons(id2);
                
give_item(id"weapon_knife");
                
give_item(id"weapon_awp");
                
give_item(id"weapon_deagle");
                
give_item(id"weapon_hegrenade");
                
give_item(id"weapon_flashbang");
                
give_item(id"weapon_smokegrenade");
                
cs_set_user_bpammo(idCSW_FLASHBANG2);
                
cs_set_user_bpammo(idCSW_AWP30);
                
cs_set_user_bpammo(idCSW_DEAGLE35);
                
ColorChat(idGREEN"^4%s ^1Ai ales ^4Awp^1+^4Deagle^1+^4Set grenazi^1."tag);
            }      
    }
    
    if(
cs_get_user_team(id) == CS_TEAM_CT)
        switch(
key){
            case 
1:{
                
drop_weapons(id1);
                
drop_weapons(id2);
                
give_item(id"weapon_knife");    
                
give_item(id"weapon_m4a1");
                
give_item(id"weapon_deagle");
                
give_item(id"weapon_hegrenade");
                
give_item(id"weapon_flashbang");
                
cs_set_user_bpammo(idCSW_HEGRENADE1);
                
cs_set_user_bpammo(idCSW_FLASHBANG2);
                
cs_set_user_bpammo(idCSW_M4A190);
                
cs_set_user_bpammo(idCSW_DEAGLE35);
                
ColorChat(idGREEN"^4%s ^1Ai ales ^4M4a1^1+^4Deagle^1+^4Set grenazi^1."tag);
            }
            case 
2:{
                
drop_weapons(id1);
                
drop_weapons(id2);
                
give_item(id"weapon_knife");
                
give_item(id"weapon_famas");
                
give_item(id"weapon_deagle");
                
give_item(id"weapon_hegrenade");
                
give_item(id"weapon_flashbang");
                
cs_set_user_bpammo(idCSW_HEGRENADE1);
                
cs_set_user_bpammo(idCSW_FLASHBANG2);
                
cs_set_user_bpammo(idCSW_FAMAS90);
                
cs_set_user_bpammo(idCSW_DEAGLE35);
                
ColorChat(idGREEN"^4%s ^1Ai ales ^4Famas^1+^4Deagle^1+^4Set grenazi^1."tag);
            }
            case 
3:{
                
drop_weapons(id1);
                
drop_weapons(id2);
                
give_item(id"weapon_knife");
                
give_item(id"weapon_awp");
                
give_item(id"weapon_deagle");
                
give_item(id"weapon_hegrenade");
                
give_item(id"weapon_flashbang");
                
cs_set_user_bpammo(idCSW_HEGRENADE1);
                
cs_set_user_bpammo(idCSW_FLASHBANG2);
                
cs_set_user_bpammo(idCSW_AWP30);
                
cs_set_user_bpammo(idCSW_DEAGLE35);
                
ColorChat(idGREEN"^4%s ^1Ai ales ^4Awp^1+^4Deagle^1+^4Set grenazi^1."tag);
            }      
        }
    
menu_destroy(menu);
    return 
1;  
}

public 
Spawn(id) { 
    if(!
is_user_alive(id) || !(get_user_flags(id) & VIP_LEVEL_ACCES))
        return 
1;
        
    if(
get_pcvar_num(cvar_vip_mode) == 2){
        if(
round[id] >= 4
            
vip_menu(id);
        
        
round[id]++;    
    }

    
set_user_health(idget_user_health(id) + get_pcvar_num(cvar_start_hp));
    
set_user_armor(idget_user_armor(id) + get_pcvar_num(cvar_start_ap));
    
cs_set_user_money(idcs_get_user_money(id) + get_pcvar_num(cvar_start_money));
    
    new 
VIP_MAXMONEY get_pcvar_num(cvar_vip_maxmoney);
    new 
VIP_MONEY cs_get_user_money(id);
    
    if(
VIP_MONEY >= VIP_MAXMONEY){
        
cs_set_user_money(idget_pcvar_num(cvar_vip_maxmoney));
    }    
    
    new 
MapName[32]; 
    
get_mapname(MapNamesizeof(MapName));
    for (new 
0sizeof (RMaps); ++){
        if(
equali (MapNameRMaps[i])){
            
remove_user_flags (idread_flags(REMOVE_FLAGS));
        }
    }
    return 
1;
}

public 
client_putinserver(id){
    if(!(
get_user_flags(id) & VIP_LEVEL_ACCES))
        return 
1;
        
    
set_task(2.0"in"id);
    
    
jumpnum[id] = 0;
    
dojump[id] = false;
    
round[id] = 0;    
    
    return 
1;
}

public 
client_disconnected(id){
    if(!(
get_user_flags(id) & VIP_LEVEL_ACCES))
        return 
1;
        
    
set_task(2.0"out"id);
    
    
jumpnum[id] = 0;
    
dojump[id] = false;
    
round[id] = 0;
    
    return 
1;
}

public 
client_PreThink(id){
    if(!
is_user_alive(id) || !(get_user_flags(id) & VIP_LEVEL_ACCES)) 
        return 
1;

    new 
BUTON get_user_button(id);
    new 
OLDBUTON get_user_oldbutton(id);
    new 
JUMP_VIP get_pcvar_num(cvar_vip_jump);

    if((
BUTON IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(OLDBUTON IN_JUMP)){
        if(
jumpnum[id] < JUMP_VIP){
            
dojump[id] = true;
            
jumpnum[id]++
        }
    }

    if((
BUTON IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND)){
        
jumpnum[id] = 0;
    }
    
    return 
0;
}

public 
client_PostThink(id) {
    if(!
is_user_alive(id)) 
        return 
1;
        
    if(
dojump[id] == true){
        new 
Floatvelocity[3];
        
entity_get_vector(idEV_VEC_velocityvelocity)
        
velocity[2] = random_float(265.0285.0);
        
entity_set_vector(idEV_VEC_velocityvelocity)
        
dojump[id] = false;
    }

    return 
0;
}

public 
eDeathMsg(){
    new 
id_Killer read_data(1);
        
    if(!
is_user_alive(id_Killer) || !(get_user_flags(id_Killer) & VIP_LEVEL_ACCES)) 
        return 
1;

    new 
VIP_MAXHP get_pcvar_num(cvar_vip_maxhp);
    new 
VIP_HP get_user_health(id_Killer);
    new 
VIP_MAXAP get_pcvar_num(cvar_vip_maxap);
    new 
VIP_AP get_user_armor(id_Killer);
    
    
set_user_health(id_Killerget_user_health(id_Killer) + get_pcvar_num(cvar_hp_kill));
    
set_user_armor(id_Killerget_user_armor(id_Killer) + get_pcvar_num(cvar_ap_kill));

    if(
VIP_HP >= VIP_MAXHPset_user_health(id_Killerget_pcvar_num(cvar_vip_maxhp));    
    if(
VIP_AP >= VIP_MAXAPset_user_armor(id_Killerget_pcvar_num(cvar_vip_maxap));

    return 
1;
}

public 
in(id){
    if(!(
get_user_flags(id) & VIP_LEVEL_ACCES))
        return 
1;
        
    if(
get_pcvar_num(cvar_vip_in_out)){
        new 
tag[32], name[32];

        
get_pcvar_string(cvar_tagtagcharsmax(tag)); 
        
get_user_name(idnamecharsmax(name)); 

        
ColorChat(0GREEN"^4%s ^1VIP: ^4%s ^1s-a conectat."tagname); 
        return 
1;
    }
    
    return 
1;
}    

public 
out(id){
    if(!(
get_user_flags(id) & VIP_LEVEL_ACCES))
        return 
1;
        
    if(
get_pcvar_num(cvar_vip_in_out)){
        new 
tag[32], name[32];

        
get_pcvar_string(cvar_tagtagcharsmax(tag)); 
        
get_user_name(idnamecharsmax(name)); 
        
        
ColorChat(0GREEN"^4%s ^1VIP: ^4%s ^1s-a deconectat."tagname); 

        return 
1;
    }
    
    return 
1;
}

public 
vip_info(idshow_motd(id"/addons/amxmodx/configs/vip_info.html");

public 
mesaj_info(){
    new 
tag[32];
    
get_pcvar_string(cvar_tagtagcharsmax(tag));
    
    
ColorChat(0GREEN"^4%s ^1Tastati in chat ^4/vip ^1pentru a vedea beneficiile si pretul vip-ului."tag);
}

public 
TaskDisplayVips(){
    if(
get_pcvar_num(cvar_vip_showH)){
        static 
iPlayers[32];
        static 
iPlayersNum;
    
        
get_players(iPlayersiPlayersNum"ch");
        if(!
iPlayersNum)
            return 
1;
    
        static 
iVipsConnectedszVipsNames[128], szName[32];
        
formatex(szVipsNamessizeof (szVipsNames) -1"");
        
iVipsConnected 0;
    
        static 
idi;
        for(
0iPlayersNumi++){
            
id iPlayers[i];
            if(
get_user_flags(id) & VIP_LEVEL_ACCES){
                
get_user_name(idszNamesizeof(szName) -1);
                
                
add(szVipsNamessizeof(szVipsNames) -1szName);
                
add(szVipsNamessizeof(szVipsNames) -1"^n");
                
                
iVipsConnected++;
            }    
        }
    
        
formatex(g_szMessagesizeof(g_szMessage) -1"%s (%i)^n%s"g_szBeginningiVipsConnectedszVipsNames);
        
        
set_hudmessage(25255250.010.2500.01.00.10.1, -1);
        
ShowSyncHudMsg(0SyncHudMessageg_szMessage);
    }
    return 
0;    
}

public 
handle_say(id) {
    new 
said[192];
    
read_args(said,192);
    if(
contain(said"/vips") != -1)
    
    
set_task(0.1,"print_adminlist",id);
    
    return 
0;
}

public 
say_vmenu(id) {
    new 
said[192];
    
read_args(said,192);
    if(
get_pcvar_num(cvar_vip_mode) == 1){
        if(
contain(said"/vmenu") != -1)    
            
set_task(0.1"vip_menu"id);
    }
    return 
0;
}

public 
print_adminlist(user){
    if(
get_pcvar_num(cvar_vip_showC)){
        new 
tag[32];
        
get_pcvar_string(cvar_tagtagcharsmax(tag));
    
        new 
adminnames[33][32];
        new 
message[256];
        new 
idcountxlen;

        for(
id id <= get_maxplayers() ; id++)
            if(
is_user_connected(id))
                if(
get_user_flags(id) & VIP_LEVEL_ACCES)
                    
get_user_name(idadminnames[count++], charsmax(adminnames[ ]));
    
        
len format(message255"^4%s ^1VIP-ii online sunt:^4 " ,tag);
        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" ");
                }
            }
            
            
print_message(usermessage);
        }
        
        else{ 
            
ColorChat(0GREEN"^4%s ^1Nu sunt ^4VIP^1-i online."tag);
        }            
    }
    return 
0;  
}

print_message(idmsg[]) {
    
message_begin(MSG_ONEget_user_msgid("SayText"), {0,0,0}, id);
    
write_byte(id);
    
write_string(msg);
    
message_end();
}

public 
MessageScoreAttrib(iMsgIDiDestiReceiver){
    new 
iPlayer get_msg_arg_int(1);
    if(
is_user_connected(iPlayer) && (get_user_flags(iPlayer) & VIP_LEVEL_ACCES)){
        
set_msg_arg_int(2ARG_BYTEis_user_alive(iPlayer) ? SCOREATTRIB_VIP SCOREATTRIB_DEAD);
    }
}

stock fm_find_ent_by_owner(entity, const classname[], owner){
    while((
entity engfunc(EngFunc_FindEntityByStringentity"classname"classname)) && pev(entitypev_owner) != owner) {  }
    return 
entity;
}

stock drop_weapons(iddropwhat){
    static 
Weapons[32], NumiWeaponID;
    
Num 0;
    
get_user_weapons(idWeaponsNum);
    for(
0Num++){
        
WeaponID Weapons[i];
        if((
dropwhat == && ((<< WeaponID) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == && ((<< WeaponID) & SECONDARY_WEAPONS_BIT_SUM ))){
            static 
DropName[32], WeaponEntity;
            
get_weaponname(WeaponIDDropNamecharsmax(DropName));
            
WeaponEntity fm_find_ent_by_owner(-1DropNameid);
            
set_pev(WeaponEntitypev_iuser1cs_get_user_bpammo (idWeaponID));
            
engclient_cmd(id"drop"DropName);
            
cs_set_user_bpammo(idWeaponID0);
        }
    }

Code:
/vmenu - deschide meniul vipului oricui tasteaza comanda, dar poate fi folosit doar de cei care au flagul 'R' si este disponibila doar in versiunea 5.0
/vip - deschide motd-ul ce ofera informatii despre vip
/vips - arata vipii online in chat
Cvar-uri:
amx_vip_mode "valoare" -> Seteaza modul de aparitie al meniului: 1 - comanda /vmenu | 2 - apare din a 3-a runda. (default "1")
amx_vip_tag "TAG" -> Pune tag-ul din fata tuturor mesajelor. (default "VIP")
amx_start_hp "valoare" -> Seteaza cu cat HP sa inceapa VIP-ul. (default "150")
amx_start_ap "valoare" -> Seteaza cu cat AP sa inceapa VIP-ul. (default "180")
amx_start_money "valoare" -> Seteaza cu cati BANI sa inceapa VIP-ul. (default "8000")
amx_vip_jump "valoare" -> Seteaza de cate ori sa sara VIP-ul. (default "1") || EX: 1 = 2 sarituri / 2 = 3sarituri / etc..
amx_vip_addhp "valoare" -> Seteaza cat HP sa primeasca VIP-ul pe kill. (default "10")
amx_vip_addap "valoare" -> Seteaza cat AP sa primeasca VIP-ul pe kill (default "10")
amx_vip_in_out "valoare" -> 0 - dezactiveaza / 1 - activeaza apartita mesajului la conectare/deconectare pe server (default "1")
amx_vip_show_chat "valoare" -> 0 - dezactiveaza / 1 - activeaza comanda /vips (default "1")
amx_vip_show_hud "valoare" -> 0 - dezactiveaza / 1 - activeaza aparitia hudului ce arata vipii online (default "1")
amx_vip_maxhp "valoare" -> Seteaza hp-ul maxim pe care il poate avea VIP-ul (default "180")
amx_vip_maxap "valoare" -> Seteaza ap-ul maxim pe care il poate avea VIP-ul (default "200")
amx_vip_maxmoney "valoare" -> Seteaza valoarea maxima a banilor pe care il poate avea VIP-ul (default "16000")
__________________


cosminvl is offline
Send a message via Yahoo to cosminvl