AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Suggestions / Requests (https://forums.alliedmods.net/forumdisplay.php?f=12)
-   -   [Problem] VIP (https://forums.alliedmods.net/showthread.php?t=317939)

VenomMix 08-05-2019 08:40

[Problem] VIP
 
I have a problem and I don't know how to solve it.
the plugin works fine, but it's a problem with armor.
if I set 10ap (example), at first I have 110, as is normal, but then, the second round increases by 110 and so on.
Do you know what the problem might be?
Hp working fine.
HTML 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_mode, cvar_vip_maxmoney, cvar_vip_maxap, cvar_vip_maxhp, cvar_vip_showC, cvar_vip_showH, cvar_vip_in_out, cvar_tag, cvar_start_hp, cvar_start_ap, cvar_start_money, cvar_vip_jump, cvar_hp_kill, cvar_ap_kill, jumpnum[33], bool: dojump[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(id, menu, 0);
        return 1;
}

public menu_ammunition (id, menu, item){
        if(item == MENU_EXIT)
                return 1;

        new access, callback, data[6], szName[64], tag[32];
        menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
        get_pcvar_string(cvar_tag, tag, charsmax(tag));
        new key = str_to_num(data);
               
        if(cs_get_user_team(id) == CS_TEAM_T)
                switch(key){
                        case 1:{
                                drop_weapons(id, 1);
                                drop_weapons(id, 2);
                                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(id, CSW_HEGRENADE, 1);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
                                cs_set_user_bpammo(id, CSW_AK47, 90);
                                cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                                ColorChat(id, GREEN, "^4%s ^1Ai ales ^4Ak47^1+^4Deagle^1+^4Set grenazi^1.", tag);
                        }     
                        case 2:{
                                drop_weapons(id, 1);
                                drop_weapons(id, 2);
                                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(id, CSW_HEGRENADE, 1);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
                                cs_set_user_bpammo(id, CSW_GALIL, 90);
                                cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                                ColorChat(id, GREEN, "^4%s ^1Ai ales ^4Galil^1+^4Deagle^1+^4Set grenazi^1.", tag);
                        }
                        case 3:{
                                drop_weapons(id, 1);
                                drop_weapons(id, 2);
                                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(id, CSW_FLASHBANG, 2);
                                cs_set_user_bpammo(id, CSW_AWP, 30);
                                cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                                ColorChat(id, GREEN, "^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(id, 1);
                                drop_weapons(id, 2);
                                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(id, CSW_HEGRENADE, 1);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
                                cs_set_user_bpammo(id, CSW_M4A1, 90);
                                cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                                ColorChat(id, GREEN, "^4%s ^1Ai ales ^4M4a1^1+^4Deagle^1+^4Set grenazi^1.", tag);
                        }
                        case 2:{
                                drop_weapons(id, 1);
                                drop_weapons(id, 2);
                                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(id, CSW_HEGRENADE, 1);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
                                cs_set_user_bpammo(id, CSW_FAMAS, 90);
                                cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                                ColorChat(id, GREEN, "^4%s ^1Ai ales ^4Famas^1+^4Deagle^1+^4Set grenazi^1.", tag);
                        }
                        case 3:{
                                drop_weapons(id, 1);
                                drop_weapons(id, 2);
                                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(id, CSW_HEGRENADE, 1);
                                cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
                                cs_set_user_bpammo(id, CSW_AWP, 30);
                                cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                                ColorChat(id, GREEN, "^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(id, get_user_health(id) + get_pcvar_num(cvar_start_hp));
        set_user_armor(id, get_user_armor(id) + get_pcvar_num(cvar_start_ap));
        cs_set_user_money(id, cs_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(id, get_pcvar_num(cvar_vip_maxmoney));
        }       
       
        new MapName[32];
        get_mapname(MapName, sizeof(MapName));
        for (new i = 0; i < sizeof (RMaps); i ++){
                if(equali (MapName, RMaps[i])){
                        remove_user_flags (id, read_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 Float: velocity[3];
                entity_get_vector(id, EV_VEC_velocity, velocity)
                velocity[2] = random_float(265.0, 285.0);
                entity_set_vector(id, EV_VEC_velocity, velocity)
                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_Killer, get_user_health(id_Killer) + get_pcvar_num(cvar_hp_kill));
        set_user_armor(id_Killer, get_user_armor(id_Killer) + get_pcvar_num(cvar_ap_kill));

        if(VIP_HP >
= VIP_MAXHP) set_user_health(id_Killer, get_pcvar_num(cvar_vip_maxhp));       
        if(VIP_AP >= VIP_MAXAP) set_user_armor(id_Killer, get_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_tag, tag, charsmax(tag));
                get_user_name(id, name, charsmax(name));

                ColorChat(0, GREEN, "^4%s ^1VIP: ^4%s ^1s-a conectat.", tag, name);
                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_tag, tag, charsmax(tag));
                get_user_name(id, name, charsmax(name));
               
                ColorChat(0, GREEN, "^4%s ^1VIP: ^4%s ^1s-a deconectat.", tag, name);

                return 1;
        }
       
        return 1;
}

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

public mesaj_info(){
        new tag[32];
        get_pcvar_string(cvar_tag, tag, charsmax(tag));
       
        ColorChat(0, GREEN, "^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(iPlayers, iPlayersNum, "ch");
                if(!iPlayersNum)
                        return 1;
       
                static iVipsConnected, szVipsNames[128], szName[32];
                formatex(szVipsNames, sizeof (szVipsNames) -1, "");
                iVipsConnected = 0;
       
                static id, i;
                for(i = 0; i < iPlayersNum; i++){
                        id = iPlayers[i];
                        if(get_user_flags(id) & VIP_LEVEL_ACCES){
                                get_user_name(id, szName, sizeof(szName) -1);
                               
                                add(szVipsNames, sizeof(szVipsNames) -1, szName);
                                add(szVipsNames, sizeof(szVipsNames) -1, "^n");
                               
                                iVipsConnected++;
                        }       
                }
       
                formatex(g_szMessage, sizeof(g_szMessage) -1, "%s (%i)^n%s", g_szBeginning, iVipsConnected, szVipsNames);
               
                set_hudmessage(25, 255, 25, 0.01, 0.25, 0, 0.0, 1.0, 0.1, 0.1, -1);
                ShowSyncHudMsg(0, SyncHudMessage, g_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_tag, tag, charsmax(tag));
       
                new adminnames[33][32];
                new message[256];
                new id, count, x, len;

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

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

public MessageScoreAttrib(iMsgID, iDest, iReceiver){
    new iPlayer = get_msg_arg_int(1);
    if(is_user_connected(iPlayer) && (get_user_flags(iPlayer) & VIP_LEVEL_ACCES)){
        set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
    }
}

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

stock drop_weapons(id, dropwhat){
        static Weapons[32], Num, i, WeaponID;
        Num = 0;
        get_user_weapons(id, Weapons, Num);
        for(i = 0; i < Num; i ++){
                WeaponID = Weapons[i];
                if((dropwhat == 1 && ((1 << WeaponID) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1 << WeaponID) & SECONDARY_WEAPONS_BIT_SUM ))){
                        static DropName[32], WeaponEntity;
                        get_weaponname(WeaponID, DropName, charsmax(DropName));
                        WeaponEntity = fm_find_ent_by_owner(-1, DropName, id);
                        set_pev(WeaponEntity, pev_iuser1, cs_get_user_bpammo (id, WeaponID));
                        engclient_cmd(id, "drop", DropName);
                        cs_set_user_bpammo(id, WeaponID, 0);
                }
        }
}


bad_boy 08-05-2019 21:37

Re: [Problem] VIP
 
Quote:

Originally Posted by VenomMix (Post 2662014)
I have a problem and I don't know how to solve it.
the plugin works fine, but it's a problem with armor.
if I set 10ap (example), at first I have 110, as is normal, but then, the second round increases by 110 and so on.

I think it happens because a player armor doesn't reset like the health does. So the armor will actually accumulate.
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(idclamp(get_user_armor(id) + get_pcvar_num(cvar_start_ap0200 );
    
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);
        }
    }




All times are GMT -4. The time now is 10:56.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.