Добро пожаловать

Для полноценного пользования форумом и общения с его участниками, пройдите регистрацию ниже
Регистрация

Закрыто VIP меню: дополнительное условие

Тема в разделе "Свалка", создана пользователем lolik, 10 дек 2016.

Статус темы:
Закрыта.
  1. lolik

    lolik Пользователь

    8
    0
    5
    Всем привет [​IMG]
    Имеется в наличии плагин випки помогите доработать его пожалуйста.
    Надо сделать еще одно условие описываю подробно:
    когда обычный игрок пишет команду /vipmenu
    ему в ответ пишет - Вы не VIP игрок либо вы мертвы!
    тоже самое пишет в ответ когда вип игрок мертв и прописывает команду /vipmenu
    надо сделать что бы обычный игрок когда писал команду ему в ответ (Вы не VIP игрок)
    а когда вип мертвый то вот это в ответ (Вы мертвы!)
    ----------------------------------------------------------------
    Еще помогите исправить проблему в этом плагине описываю подробно:
    Когда играешь за Т то при нажатии на TAB не видно значок VIP
    А когда играешь за CT то видно
    если возможно помогите исправить.

    Код:
    #include <amxmodx>
    #include <cstrike>
    #include <fun>
    #include <hamsandwich>
    #if AMXX_VERSION_NUM < 183
        #include <colorchat>
    #endif   
    
    #define KEYS (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<9)
    
    #define    get_bit(%1,%2)    (%1 & (1 << (%2 & 31)))
    #define    set_bit(%1,%2)    %1 |= (1 << (%2 & 31))
    #define    clr_bit(%1,%2)    %1 &= ~(1 << (%2 & 31))
    
    new receivedPrimaryWeapons = 0,
        receivedSecWeapons = 0
    
    new const VIP_ACCESS = ADMIN_LEVEL_H
    new g_roundCount
    
    new bool:isWarmupRound = true,
        bool:isFirstRound = true
    
    new const PRIMARY_WEAPONS_BITSUM = (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)
    new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
    
    public plugin_init()
    {
        register_plugin("VIP", "1.0", "neygomon")
       
        register_event("TextMsg","eventRoundRestart","a","2&#Game_w")
        register_event("TextMsg","eventCommencingRestart","a","2&#Game_C")
        register_event("HLTV", "eventRoundStartHLTV", "a","1=0","2=0")
        register_event("ResetHUD","Event_reset_hud","be")
        RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1);
       
        register_clcmd( "say /vipmenu", "CmdMenu" );
        register_clcmd( "vipmenu", "CmdMenu" );
       
        register_menucmd(register_menuid("VIP_MENU"), KEYS, "menu_handler");
    }
    public client_putinserver(id)
    {
        clr_bit(receivedPrimaryWeapons,id)
        clr_bit(receivedSecWeapons,id)
    }
    
    public eventCommencingRestart()
        isFirstRound = isWarmupRound = true
       
    public eventRoundRestart()
        g_roundCount = 0
    
    public eventRoundStartHLTV()
    {
        if(isFirstRound){
            isFirstRound = false
            g_roundCount = 0
        }
        g_roundCount++
        if(isWarmupRound){
            isWarmupRound = false
            g_roundCount = 0
        }
        receivedPrimaryWeapons = receivedSecWeapons = 0
    }
    
    public Event_reset_hud(id)
        if(get_user_flags(id) & VIP_ACCESS) setVipScoreAttrib(id)
    
    public Player_Spawn(id)
    {
        if(g_roundCount >= 3){
            if(is_user_alive (id) && get_user_flags(id) & VIP_ACCESS){
                give_item(id, "weapon_hegrenade");
                give_item(id, "weapon_flashbang");
                give_item(id, "weapon_smokegrenade");
                give_item_ex(id,"weapon_deagle",35,1)
       
                cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
                cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
                if(get_user_team(id) == 2)
                    cs_set_user_defuse(id, 1)
            }
        }   
    }
    
    public CmdMenu(id)
    {
        if(is_user_alive (id) && get_user_flags(id) & VIP_ACCESS){
            if(g_roundCount != 0){
                if(g_roundCount >= 3){
                    if(!get_bit(receivedPrimaryWeapons,id)){
                        show_menu(id, KEYS, "\rVIP \yМЕНЮ\w^n^n\y1\w. \wВзять \rAK-47^n\y2\w. \wВзять \rM4A1^n\y3\w. \wВзять \rAWP^n\y4\w. \wВзять \rFamas^n^n\y0\w. \rВыход", -1, "VIP_MENU");
       
                        return PLUGIN_HANDLED;
                    }
                    else{
                        client_print_color(id, 0, "^1[^4VIP^1]: ^3Вы уже пользовались этой командой!")
                    }   
                }
                else {
                    client_print_color(id, 0, "^1[^4VIP^1]: ^3Меню доступно только с^4 3 ^3раунда!")
                }
                return PLUGIN_HANDLED
            }
            client_print_color(id, 0, "^1[^4VIP^1]: Разминочный раунд. ^3Запрещено пользоваться командой!")
            return PLUGIN_HANDLED
        }
        else{
            client_print_color(id, 0, "^1[^4VIP^1]: ^3Вы не ^4VIP ^3игрок либо вы мертвы!")
            return PLUGIN_HANDLED
        }
        return PLUGIN_HANDLED;   
    }
    
    public menu_handler(id, key)
    {
        switch(key)
        {
            case 0: {
                    give_item_ex(id,"weapon_ak47",90,1)
                    set_bit(receivedPrimaryWeapons,id)
                }   
                   
            case 1: {
                    give_item_ex(id,"weapon_m4a1",90,1)
                    set_bit(receivedPrimaryWeapons,id)
                }
               
            case 2: {
                    give_item_ex(id,"weapon_awp",30,1)
                    set_bit(receivedPrimaryWeapons,id)
                }
    
            case 3: {
                    give_item_ex(id,"weapon_famas",90,1)
                    set_bit(receivedPrimaryWeapons,id)
                }   
        }
    }
    stock give_item_ex(id,currWeaponName[],ammoAmount,dropFlag=0)
    {
        static    weaponsList[32],
            weaponName[32],
            weaponsNum,
            currWeaponID
                   
        currWeaponID = get_weaponid(currWeaponName)
        if(dropFlag){   
            weaponsNum = 0
            get_user_weapons(id,weaponsList,weaponsNum)
            for (new i = 0;i < weaponsNum;i++){
                if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM)){
                    get_weaponname(weaponsList[i],weaponName,charsmax(weaponName))
                    engclient_cmd(id,"drop",weaponName)
                }
            }
        }
        give_item(id,currWeaponName)
        cs_set_user_bpammo(id,currWeaponID,ammoAmount)
    }
    
    stock setVipScoreAttrib(id)
    {
        if(is_user_alive(id)){
            message_begin(MSG_ALL,84,{0,0,0},id)
            write_byte(id)
            write_byte(4)
            message_end()
        }
    }
     
  2. wantip22

    wantip22 Проверенный

    1.888
    445
    525
    Это не исправить. Всё видно. Если Вы сами у себя посмотрите, то не будет видно, если у кого другого посмотрите, то будет видно.
     
Статус темы:
Закрыта.