Пользователи, просматривающие тему (Пользователей: 0, Гостей: 0)

Статус темы:
Закрыта.
  1. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    832
    Симпатии:
    226
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    Описание плагина (может кому сгодится и такой):
    Никаких меню оружия и прочей дряни.
    В 1-ом раунде VIP-игроку ничего не выдается, чтоб не было ещё на 1-ом раунде дисбаланса, ведь простые игроки тоже имеют право на сбалансированную игру, т.е. в 1 раунде должны быть все равны.
    Со 2-го раунда начинаются выдаваться VIP-игроку (флаг t) шлем и броня.
    С 3-го раунда и т.д. выдаются шлем, броня, все гранаты, дигл (с патронами) + бонусные $500 (настраивается в исходнике). При этом предусмотрено, чтоб не было дисбаланса из-за VIP-игроков в раскидывании оружия знакомым, VIP-игроку не будут начисляться бонусные $500 до тех пор, если у него больше $8000 (настраивается в исходнике).
    В TAB-таблице VIP не отображается (видимо для снижения нагрузки).
    Предусмотрено, что когда на сервере произойдёт рестарт раунда, то отсчет раундов начнется с этого момента.

    А теперь вопрос:
    Можно ли как-то сделать, чтобы дигл выдавался не дополнительно, а вместо основного пистолета?

    Код:
    #include <amxmodx>
    #include <fakemeta>
    #include <hamsandwich>
    
    #pragma semicolon 1
    
    #define MONEY_NUM_ADD 500 // Сколько выдавать денег при спавне.
    #define MONEY_MIN_ADD 8000 // Если у игрока на счету больше чем значение данного макроса, то ему выдаваться деньги не будут.
    
    #define PDATA_SAFE 2
    #define MSG_SAY_TEXT 76
    #define m_iAccount 115
    
    new g_iRoundNum, g_iMaxPlayers;
    
    public plugin_init()
    {
        register_plugin("Vip public", "v0.1", "Freedo.m");
        register_logevent("LogEvent_Restart", 2, "1=Game_Commencing", "1&Restart_Round_");
        register_event("HLTV", "Event_HLTV", "a", "1=0", "2=0");
        RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
        register_clcmd("say /vips", "ClCmd_Vips");
        register_clcmd("say_team /vips", "ClCmd_Vips");
        g_iMaxPlayers = get_maxplayers();
    }
    
    public LogEvent_Restart() g_iRoundNum = 0;
    public Event_HLTV() g_iRoundNum++;
    
    public Ham_PlayerSpawn_Post(id)
    {
        if(is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H)
        {
            switch(g_iRoundNum)
            {
                case 0: return;
                case 1: return;
                case 2:
                {
                    fm_give_item(id, "item_assaultsuit");
                }
                default:
                {
                    new iMoney = fm_get_user_money(id);
                    if(iMoney < MONEY_MIN_ADD) fm_set_user_money(id, iMoney + MONEY_NUM_ADD);
                    fm_give_item(id, "item_assaultsuit");
                    fm_give_item(id, "weapon_hegrenade");
                    fm_give_item(id, "weapon_flashbang");
                    fm_give_item(id, "weapon_flashbang");
                    fm_give_item(id, "weapon_smokegrenade");
                    fm_give_item(id, "weapon_deagle");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                }
            }
        }
    }
    
    public ClCmd_Vips(id)
    {
        new szMessage[256], szName[32], iNum;
        formatex(szMessage, charsmax(szMessage), "!gVIP Online:!y");
        for(new i = 1; i <= g_iMaxPlayers; i++)
        {
            if(is_user_connected(i) && (get_user_flags(i) & ADMIN_LEVEL_H))
            {
                iNum++;
                get_user_name(i, szName, charsmax(szName));
                formatex(szMessage, charsmax(szMessage), "%s %s,", szMessage, szName);
            }
        }
        PrintChat(id, "%s", szMessage);
        return PLUGIN_HANDLED;
    }
    
    fm_get_user_money(id)
    {
        if(pev_valid(id) != PDATA_SAFE) return -1;
        return get_pdata_int(id, m_iAccount);
    }
    
    fm_set_user_money(id, iNum)
    {
        if(pev_valid(id) != PDATA_SAFE) return 0;
        set_pdata_int(id, m_iAccount, iNum);
        return 1;
    }
    
    fm_give_item(id, const szItem[])
    {
        if(!equal(szItem, "weapon_", 7) && !equal(szItem, "ammo_", 5) && !equal(szItem, "item_", 5) && !equal(szItem, "tf_weapon_", 10)) return 0;
        new iEntity = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szItem));
        if(!pev_valid(iEntity)) return 0;
        new Float:fOrigin[3];
        pev(id, pev_origin, fOrigin);
        set_pev(iEntity, pev_origin, fOrigin);
        set_pev(iEntity, pev_spawnflags, pev(iEntity, pev_spawnflags) | SF_NORESPAWN);
        dllfunc(DLLFunc_Spawn, iEntity);
        new iSolid = pev(iEntity, pev_solid);
        dllfunc(DLLFunc_Touch, iEntity, id);
        if(pev(iEntity, pev_solid) == iSolid)
        {
            engfunc(EngFunc_RemoveEntity, iEntity);
            return -1;
        }
        return iEntity;
    }
    
    PrintChat(const id, const szMessage[], any:...)
    {
        if(!is_user_connected(id)) return;
        new szBuffer[190];
        vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
        while(replace(szBuffer, charsmax(szBuffer), "!y", "^1")) {}
        while(replace(szBuffer, charsmax(szBuffer), "!t", "^3")) {}
        while(replace(szBuffer, charsmax(szBuffer), "!g", "^4")) {}
        message_begin(MSG_ONE, MSG_SAY_TEXT, _, id);
        write_byte(id);
        write_string(szBuffer);
        message_end();
    }
     
  2. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.979
    Симпатии:
    944
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Код:
    plugin_init
    {
        register_message(get_user_msgid("ScoreAttrib"), "msgScoreAttrib");
    }
    
    public msgScoreAttrib(msg_id, msg_dest, receiver)
    {
        if(get_user_flags(get_msg_arg_int(1)) & ADMIN_IMMUNITY)
        set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2) | (1 << 2))
    }
    
     
    Le$hiy нравится это.
  3. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    832
    Симпатии:
    226
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    Phantom, это код для отображения "VIP" в меню Tab?
     
  4. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.979
    Симпатии:
    944
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Да
    --- добавлено 02.07.15 ---
     
    Le$hiy нравится это.
  5. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    832
    Симпатии:
    226
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    Phantom, это конечно хорошо, но отображение VIP в TAB меня не интересует. Хочется, чтобы у випа не было 2х пистолетов? Может кто-то видел такой плагин, чтобы юсп (глок) заменялся на дигл? Может быть можно просто в код вставить, чтобы у випа сначала пистолет дропался при респавне, а потом давался дигл?
     
  6. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.979
    Симпатии:
    944
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Код:
    #include <amxmodx>
    #include <fakemeta>
    #include <hamsandwich>
    
    #pragma semicolon 1
    
    #define MONEY_NUM_ADD 500 // Сколько выдавать денег при спавне.
    #define MONEY_MIN_ADD 8000 // Если у игрока на счету больше чем значение данного макроса, то ему выдаваться деньги не будут.
    
    #define PDATA_SAFE 2
    #define MSG_SAY_TEXT 76
    #define m_iAccount 115
    
    new g_iRoundNum, g_iMaxPlayers;
    
    public plugin_init()
    {
        register_plugin("Vip public", "v0.1", "Freedo.m");
        register_logevent("LogEvent_Restart", 2, "1=Game_Commencing", "1&Restart_Round_");
        register_event("HLTV", "Event_HLTV", "a", "1=0", "2=0");
        RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
        register_clcmd("say /vips", "ClCmd_Vips");
        register_clcmd("say_team /vips", "ClCmd_Vips");
        g_iMaxPlayers = get_maxplayers();
    }
    
    public LogEvent_Restart() g_iRoundNum = 0;
    public Event_HLTV() g_iRoundNum++;
    
    public Ham_PlayerSpawn_Post(id)
    {
        if(is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H)
        {
            switch(g_iRoundNum)
            {
                case 0: return;
                case 1: return;
                case 2:
                {
                    fm_give_item(id, "item_assaultsuit");
                }
                default:
                {
                    new iMoney = fm_get_user_money(id);
                    if(iMoney < MONEY_MIN_ADD) fm_set_user_money(id, iMoney + MONEY_NUM_ADD);
                    if(user_has_weapon(id, CSW_USP)) engclient_cmd(id, "drop", "weapon_usp");
                    else if(user_has_weapon(id, CSW_GLOCK18)) engclient_cmd(id, "drop", "weapon_glock18");
                    fm_give_item(id, "weapon_deagle");
                    fm_give_item(id, "item_assaultsuit");
                    fm_give_item(id, "weapon_hegrenade");
                    fm_give_item(id, "weapon_flashbang");
                    fm_give_item(id, "weapon_flashbang");
                    fm_give_item(id, "weapon_smokegrenade");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                }
            }
        }
    }
    
    public ClCmd_Vips(id)
    {
        new szMessage[256], szName[32], iNum;
        formatex(szMessage, charsmax(szMessage), "!gVIP Online:!y");
        for(new i = 1; i <= g_iMaxPlayers; i++)
        {
            if(is_user_connected(i) && (get_user_flags(i) & ADMIN_LEVEL_H))
            {
                iNum++;
                get_user_name(i, szName, charsmax(szName));
                formatex(szMessage, charsmax(szMessage), "%s %s,", szMessage, szName);
            }
        }
        PrintChat(id, "%s", szMessage);
        return PLUGIN_HANDLED;
    }
    
    fm_get_user_money(id)
    {
        if(pev_valid(id) != PDATA_SAFE) return -1;
        return get_pdata_int(id, m_iAccount);
    }
    
    fm_set_user_money(id, iNum)
    {
        if(pev_valid(id) != PDATA_SAFE) return 0;
        set_pdata_int(id, m_iAccount, iNum);
        return 1;
    }
    
    fm_give_item(id, const szItem[])
    {
        if(!equal(szItem, "weapon_", 7) && !equal(szItem, "ammo_", 5) && !equal(szItem, "item_", 5) && !equal(szItem, "tf_weapon_", 10)) return 0;
        new iEntity = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szItem));
        if(!pev_valid(iEntity)) return 0;
        new Float:fOrigin[3];
        pev(id, pev_origin, fOrigin);
        set_pev(iEntity, pev_origin, fOrigin);
        set_pev(iEntity, pev_spawnflags, pev(iEntity, pev_spawnflags) | SF_NORESPAWN);
        dllfunc(DLLFunc_Spawn, iEntity);
        new iSolid = pev(iEntity, pev_solid);
        dllfunc(DLLFunc_Touch, iEntity, id);
        if(pev(iEntity, pev_solid) == iSolid)
        {
            engfunc(EngFunc_RemoveEntity, iEntity);
            return -1;
        }
        return iEntity;
    }
    
    PrintChat(const id, const szMessage[], any:...)
    {
        if(!is_user_connected(id)) return;
        new szBuffer[190];
        vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
        while(replace(szBuffer, charsmax(szBuffer), "!y", "^1")) {}
        while(replace(szBuffer, charsmax(szBuffer), "!t", "^3")) {}
        while(replace(szBuffer, charsmax(szBuffer), "!g", "^4")) {}
        message_begin(MSG_ONE, MSG_SAY_TEXT, _, id);
        write_byte(id);
        write_string(szBuffer);
        message_end();
    }
     
    Le$hiy нравится это.
  7. ex3m777

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    347
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    использовать fm_get_user_money не лучшая затея, потому что hud денег не обновляется.. тут либо cs_set_user_money
    либо
    PHP:
    fm_get_user_money(id)
    {
        if(
    pev_valid(id) != PDATA_SAFE) return -1;
        return 
    get_pdata_int(idm_iAccount);
    }

    fm_set_user_money(idiNum)
    {
        if(
    pev_valid(id) != PDATA_SAFE) return 0;
        
    set_pdata_int(idm_iAccountiNum);
        return 
    1;
    }
    PHP:
    if(iMoney MONEY_MIN_ADDfm_set_user_money(idiMoney MONEY_NUM_ADD);
    заменить этим

    PHP:
    fm_get_user_money(id)
    {
        if(
    pev_valid(id) != PDATA_SAFE) return -1;
        return 
    get_pdata_int(idm_iAccount);
    }

    fm_set_user_money(idiNumiFlash)
    {
        if(
    pev_valid(id) != PDATA_SAFE) return 0;
        
    set_pdata_int(idm_iAccountiNum);
        
    message_begin(MSG_ONEMsgId_Money_id);
        
    write_long(iNum);
        
    write_byte(iFlash);
        
    message_end();
        return 
    1;
    }
    PHP:
    if(iMoney MONEY_MIN_ADDfm_set_user_money(idiMoney MONEY_NUM_ADD1);
    добавить ко всем define
    PHP:
    #define MsgId_Money 102
    по нагрузке не знаю что лучше будет, fm_get_user_money или cs_set_user_money, тут наверное вопрос знатокам...
     
    Последнее редактирование: 02.07.15
    Le$hiy нравится это.
  8. neygomon Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    8.568
    Симпатии:
    4.651
    Пол:
    Мужской
    причем тут HUD и GET?
     
  9. ex3m777

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    347
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    HUD денег не обновляется, обновлялся только после покупки чего-то
     
  10. neygomon Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    8.568
    Симпатии:
    4.651
    Пол:
    Мужской
    ex3m777, ска...
    GET причем?!
     
  11. ex3m777

    Регистрация:
    27.02.15
    Сообщения:
    761
    Симпатии:
    347
    Пол:
    Мужской
    VKcom:
    ex3m777
    Skype:
    ex3m777
    чё приебался? Перепутал там вверху
    не обратил внимание
     
  12. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    832
    Симпатии:
    226
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    Phantom, Большое спасибо, работает! Возникла мысль. Нужно, наверное, прописать, чтобы и остальные пистолеты дропались. Иначе вип может взять (поднять или купить) какой-то другой пистолет (кроме дигла, юспа и глока), а в следующем раунде у него снова станет 2 пистолета. И тут встает вопрос: вписывать все пистолеты или это можно заменить какой-то одной фразой типа secondary_weapon или pistols? Не пинайте, в скриптинге я полный 0.
    ex3m777, спасибо за идею, как-то не замечал... Полезная вещь!
    Есть еще попутное предложение. Худ гранат и дигла тоже не появляется. В принципе, это не критично и возможно даже снижает нагрузку. Но стоял старый плагин випа - там было видно, что тебе в начале раунда даются вип-привилегии. А сейчас я просто знаю, что у меня это есть, но на экране в начале раунда не отображается.
    P.S. Раньше стоял такой плагин
    Код:
        #include <amxmodx>
        #include <amxmisc>
        #include <cstrike>
        #include <fun>
        #include <hamsandwich>
    
    static const COLOR[] = "^x04" //green
    static const CONTACT[] = ""
    new maxplayers
    new gmsgSayText
    
        public plugin_init()
        {
            register_plugin("Admins VIP", "1.0", "UNREAL")
            register_event("ResetHUD", "ResetHUD", "be")
       
        //
        maxplayers = get_maxplayers()
        gmsgSayText = get_user_msgid("SayText")
        register_clcmd("say", "handle_say")
        register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
       
        //
        }
    
        public ResetHUD(id)
        {
            set_task(0.5, "VIP", id + 6910)
            return PLUGIN_CONTINUE
        }
    
        //
        public handle_say(id) {
        new said[192]
        read_args(said,192)
        if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vip") != -1 )
            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 id, count, x, len
       
        for(id = 1 ; id <= maxplayers ; id++)
            if(is_user_connected(id))
                if(get_user_flags(id) & ADMIN_LEVEL_H)
                    get_user_name(id, adminnames[count++], 31)
    
        len = format(message, 255, "%s 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, "НЕТ V.I.P ОНЛАЙН")
            print_message(user, message)
        }
       
        get_cvar_string("amx_contactinfo", contact, 63)
        if(contact[0])  {
            format(contactinfo, 111, "%s Контакт администратора -- %s", COLOR, contact)
            print_message(user, contactinfo)
        }
    }
    
    print_message(id, msg[]) {
        message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
        write_byte(id)
        write_string(msg)
        message_end()
    }
    
        //
       
        public VIP(id)
        {
            id -= 6910
           
    
        if (get_user_flags(id) & ADMIN_LEVEL_H)
            {
                message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
                write_byte(id)
                write_byte(4)
                message_end()
                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, "weapon_deagle")
                give_item(id, "ammo_50ae")
                give_item(id, "ammo_50ae")
                give_item(id, "ammo_50ae")
                give_item(id, "ammo_50ae")
                give_item(id, "ammo_50ae")
                cs_set_user_money(id, min(cs_get_user_money(id) + 500, 16000))
            }
            return PLUGIN_HANDLED
        }
    
     
    Последнее редактирование: 03.07.15
  13. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.979
    Симпатии:
    944
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Le$hiy, проверки на наличие запасного оружия вроде нет. Ну я попробую сейчас что-нибудь сделать
     
  14. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.979
    Симпатии:
    944
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    За данный участок кода спасибо Gudaus, который был взят с его плагина
    Код:
    #include <amxmodx>
    #include <fakemeta>
    #include <fun>
    #include <cstrike>
    #include <hamsandwich>
    
    #pragma semicolon 1
    
    #define MONEY_NUM_ADD 500 // Сколько выдавать денег при спавне.
    #define MONEY_MIN_ADD 8000 // Если у игрока на счету больше чем значение данного макроса, то ему выдаваться деньги не будут.
    
    #define PDATA_SAFE 2
    #define MSG_SAY_TEXT 76
    #define m_iAccount 115
    
    new g_iRoundNum, g_iMaxPlayers;
    
    public plugin_init()
    {
        register_plugin("Vip public", "v0.1", "Freedo.m");
        register_logevent("LogEvent_Restart", 2, "1=Game_Commencing", "1&Restart_Round_");
        register_event("HLTV", "Event_HLTV", "a", "1=0", "2=0");
        RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
        register_clcmd("say /vips", "ClCmd_Vips");
        register_clcmd("say_team /vips", "ClCmd_Vips");
        g_iMaxPlayers = get_maxplayers();
    }
    
    public LogEvent_Restart() g_iRoundNum = 0;
    public Event_HLTV() g_iRoundNum++;
    
    public Ham_PlayerSpawn_Post(id)
    {
        if(is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H)
        {
            switch(g_iRoundNum)
            {
                case 0: return;
                case 1: return;
                case 2: fm_give_item(id, "item_assaultsuit");
                default:
                {
                    new iMoney = fm_get_user_money(id);
                    if(iMoney < MONEY_MIN_ADD) fm_set_user_money(id, iMoney + MONEY_NUM_ADD);
                    get_player_deagle(id);
                    fm_give_item(id, "item_assaultsuit");
                    fm_give_item(id, "weapon_hegrenade");
                    fm_give_item(id, "weapon_flashbang");
                    fm_give_item(id, "weapon_flashbang");
                    fm_give_item(id, "weapon_smokegrenade");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                }
            }
        }
    }
    
    public get_player_deagle(id)
    {
        const dropped_weapons = (1 << CSW_USP)|(1 << CSW_GLOCK18);
        static iWeapons[32], iNum, i;
        iNum = 0;
        get_user_weapons(id, iWeapons, iNum);
        for(i = 0; i < iNum; i++)
        {
            if((1 << iWeapons[i]) & dropped_weapons)
            {
                switch(iWeapons[i])   
                {
                    case CSW_GLOCK18:
                    {
                        engclient_cmd(id, "drop", "weapon_glock18");
                        give_item(id, "weapon_deagle");
                        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                    }
                    case CSW_USP: 
                    {
                        engclient_cmd(id, "drop", "weapon_usp");
                        give_item(id, "weapon_deagle");
                        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                    }
                    case CSW_P228: 
                    {
                        engclient_cmd(id, "drop", "weapon_p228");
                        give_item(id, "weapon_deagle");
                        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                    }
                    case CSW_ELITE:
                    {
                        engclient_cmd(id, "drop", "weapon_elite");
                        give_item(id, "weapon_deagle");
                        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                    }
                    case CSW_FIVESEVEN:
                    {
                        engclient_cmd(id, "drop", "weapon_fiveseven");
                        give_item(id, "weapon_deagle");
                        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                    }
                }
            }
        }
    }
    
    public ClCmd_Vips(id)
    {
        new szMessage[256], szName[32], iNum;
        formatex(szMessage, charsmax(szMessage), "^4VIP Online:^1");
        for(new i = 1; i <= g_iMaxPlayers; i++)
        {
            if(is_user_connected(i) && (get_user_flags(i) & ADMIN_LEVEL_H))
            {
                iNum++;
                get_user_name(i, szName, charsmax(szName));
                formatex(szMessage, charsmax(szMessage), "%s %s,", szMessage, szName);
            }
        }
        PrintChat(id, "%s", szMessage);
        return PLUGIN_HANDLED;
    }
    
    fm_get_user_money(id)
    {
        if(pev_valid(id) != PDATA_SAFE) return -1;
        return get_pdata_int(id, m_iAccount);
    }
    
    fm_set_user_money(id, iNum)
    {
        if(pev_valid(id) != PDATA_SAFE) return 0;
        set_pdata_int(id, m_iAccount, iNum);
        return 1;
    }
    
    fm_give_item(id, const szItem[])
    {
        if(!equal(szItem, "weapon_", 7) && !equal(szItem, "ammo_", 5) && !equal(szItem, "item_", 5) && !equal(szItem, "tf_weapon_", 10)) return 0;
        new iEntity = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szItem));
        if(!pev_valid(iEntity)) return 0;
        new Float:fOrigin[3];
        pev(id, pev_origin, fOrigin);
        set_pev(iEntity, pev_origin, fOrigin);
        set_pev(iEntity, pev_spawnflags, pev(iEntity, pev_spawnflags) | SF_NORESPAWN);
        dllfunc(DLLFunc_Spawn, iEntity);
        new iSolid = pev(iEntity, pev_solid);
        dllfunc(DLLFunc_Touch, iEntity, id);
        if(pev(iEntity, pev_solid) == iSolid)
        {
            engfunc(EngFunc_RemoveEntity, iEntity);
            return -1;
        }
        return iEntity;
    }
    
    PrintChat(const id, const szMessage[], any:...)
    {
        if(!is_user_connected(id)) return;
        new szBuffer[190];
        vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
    
        message_begin(MSG_ONE, MSG_SAY_TEXT, _, id);
        write_byte(id);
        write_string(szBuffer);
        message_end();
    }
    
    Если ты применил поправки ex3m777'а, примени их еще раз
     
    Le$hiy нравится это.
  15. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    832
    Симпатии:
    226
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    Phantom, При таком коде юсп и глок меняются на дигл, а вот остальные пистолеты - нет. Т.е. дигл не дается, если в руках другой пистолет (кроме юспа и глока).
     
  16. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.979
    Симпатии:
    944
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Ой блин, забыл деталь одну, сейчас поправлю
    --- добавлено 03.07.15 ---
    Код:
    #include <amxmodx>
    #include <fakemeta>
    #include <fun>
    #include <cstrike>
    #include <hamsandwich>
    
    #pragma semicolon 1
    
    #define MONEY_NUM_ADD 500 // Сколько выдавать денег при спавне.
    #define MONEY_MIN_ADD 8000 // Если у игрока на счету больше чем значение данного макроса, то ему выдаваться деньги не будут.
    
    #define PDATA_SAFE 2
    #define MSG_SAY_TEXT 76
    #define m_iAccount 115
    
    new g_iRoundNum, g_iMaxPlayers;
    
    public plugin_init()
    {
        register_plugin("Vip public", "v0.1", "Freedo.m");
        register_logevent("LogEvent_Restart", 2, "1=Game_Commencing", "1&Restart_Round_");
        register_event("HLTV", "Event_HLTV", "a", "1=0", "2=0");
        RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
        register_clcmd("say /vips", "ClCmd_Vips");
        register_clcmd("say_team /vips", "ClCmd_Vips");
        g_iMaxPlayers = get_maxplayers();
    }
    
    public LogEvent_Restart() g_iRoundNum = 0;
    public Event_HLTV() g_iRoundNum++;
    
    public Ham_PlayerSpawn_Post(id)
    {
        if(is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H)
        {
            switch(g_iRoundNum)
            {
                case 0: return;
                case 1: return;
                case 2: fm_give_item(id, "item_assaultsuit");
                default:
                {
                    new iMoney = fm_get_user_money(id);
                    if(iMoney < MONEY_MIN_ADD) fm_set_user_money(id, iMoney + MONEY_NUM_ADD);
                    get_player_deagle(id);
                    fm_give_item(id, "item_assaultsuit");
                    fm_give_item(id, "weapon_hegrenade");
                    fm_give_item(id, "weapon_flashbang");
                    fm_give_item(id, "weapon_flashbang");
                    fm_give_item(id, "weapon_smokegrenade");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                    fm_give_item(id, "ammo_50ae");
                }
            }
        }
    }
    
    public get_player_deagle(id)
    {
        const dropped_weapons = (1 << CSW_GLOCK18)|(1 << CSW_USP)|(1 << CSW_P228)|(1 << CSW_ELITE)|(1 << CSW_FIVESEVEN);
        static iWeapons[32], iNum, i;
        iNum = 0;
        get_user_weapons(id, iWeapons, iNum);
        for(i = 0; i < iNum; i++)
        {
            if((1 << iWeapons[i]) & dropped_weapons)
            {
                switch(iWeapons[i]) 
                {
                    case CSW_GLOCK18:
                    {
                        engclient_cmd(id, "drop", "weapon_glock18");
                        give_item(id, "weapon_deagle");
                        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                    }
                    case CSW_USP:
                    {
                        engclient_cmd(id, "drop", "weapon_usp");
                        give_item(id, "weapon_deagle");
                        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                    }
                    case CSW_P228:
                    {
                        engclient_cmd(id, "drop", "weapon_p228");
                        give_item(id, "weapon_deagle");
                        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                    }
                    case CSW_ELITE:
                    {
                        engclient_cmd(id, "drop", "weapon_elite");
                        give_item(id, "weapon_deagle");
                        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                    }
                    case CSW_FIVESEVEN:
                    {
                        engclient_cmd(id, "drop", "weapon_fiveseven");
                        give_item(id, "weapon_deagle");
                        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
                    }
                }
            }
        }
    }
    
    public ClCmd_Vips(id)
    {
        new szMessage[256], szName[32], iNum;
        formatex(szMessage, charsmax(szMessage), "^4VIP Online:^1");
        for(new i = 1; i <= g_iMaxPlayers; i++)
        {
            if(is_user_connected(i) && (get_user_flags(i) & ADMIN_LEVEL_H))
            {
                iNum++;
                get_user_name(i, szName, charsmax(szName));
                formatex(szMessage, charsmax(szMessage), "%s %s,", szMessage, szName);
            }
        }
        PrintChat(id, "%s", szMessage);
        return PLUGIN_HANDLED;
    }
    
    fm_get_user_money(id)
    {
        if(pev_valid(id) != PDATA_SAFE) return -1;
        return get_pdata_int(id, m_iAccount);
    }
    
    fm_set_user_money(id, iNum)
    {
        if(pev_valid(id) != PDATA_SAFE) return 0;
        set_pdata_int(id, m_iAccount, iNum);
        return 1;
    }
    
    fm_give_item(id, const szItem[])
    {
        if(!equal(szItem, "weapon_", 7) && !equal(szItem, "ammo_", 5) && !equal(szItem, "item_", 5) && !equal(szItem, "tf_weapon_", 10)) return 0;
        new iEntity = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szItem));
        if(!pev_valid(iEntity)) return 0;
        new Float:fOrigin[3];
        pev(id, pev_origin, fOrigin);
        set_pev(iEntity, pev_origin, fOrigin);
        set_pev(iEntity, pev_spawnflags, pev(iEntity, pev_spawnflags) | SF_NORESPAWN);
        dllfunc(DLLFunc_Spawn, iEntity);
        new iSolid = pev(iEntity, pev_solid);
        dllfunc(DLLFunc_Touch, iEntity, id);
        if(pev(iEntity, pev_solid) == iSolid)
        {
            engfunc(EngFunc_RemoveEntity, iEntity);
            return -1;
        }
        return iEntity;
    }
    
    PrintChat(const id, const szMessage[], any:...)
    {
        if(!is_user_connected(id)) return;
        new szBuffer[190];
        vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
    
        message_begin(MSG_ONE, MSG_SAY_TEXT, _, id);
        write_byte(id);
        write_string(szBuffer);
        message_end();
    }
    
     
    Le$hiy нравится это.
  17. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    832
    Симпатии:
    226
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    Phantom, все тип-топ. Огромное спасибо!!!
     
  18. neygomon Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    8.568
    Симпатии:
    4.651
    Пол:
    Мужской
    PHP:
    public get_player_deagle(id)
    {
        const 
    dropped_weapons = (<< CSW_GLOCK18)|(<< CSW_USP)|(<< CSW_P228)|(<< CSW_ELITE)|(<< CSW_FIVESEVEN);
        static 
    iWeapons[32], iNumi;
        
    iNum 0;
        
    get_user_weapons(idiWeaponsiNum);
        for(
    0iNumi++)
        {
            if((
    << iWeapons[i]) & dropped_weapons)
            {
                switch(
    iWeapons[i]) 
                {
                    case 
    CSW_GLOCK18:
                    {
                        
    engclient_cmd(id"drop""weapon_glock18");
                        
    give_item(id"weapon_deagle");
                        
    cs_set_user_bpammo(idCSW_DEAGLE35);
                    }
                    case 
    CSW_USP:
                    {
                        
    engclient_cmd(id"drop""weapon_usp");
                        
    give_item(id"weapon_deagle");
                        
    cs_set_user_bpammo(idCSW_DEAGLE35);
                    }
                    case 
    CSW_P228:
                    {
                        
    engclient_cmd(id"drop""weapon_p228");
                        
    give_item(id"weapon_deagle");
                        
    cs_set_user_bpammo(idCSW_DEAGLE35);
                    }
                    case 
    CSW_ELITE:
                    {
                        
    engclient_cmd(id"drop""weapon_elite");
                        
    give_item(id"weapon_deagle");
                        
    cs_set_user_bpammo(idCSW_DEAGLE35);
                    }
                    case 
    CSW_FIVESEVEN:
                    {
                        
    engclient_cmd(id"drop""weapon_fiveseven");
                        
    give_item(id"weapon_deagle");
                        
    cs_set_user_bpammo(idCSW_DEAGLE35);
                    }
                }
            }
        }
    }
    ---->
    PHP:
    public get_player_deagle(id)
    {
        const 
    dropped_weapons = (<< CSW_GLOCK18)|(<< CSW_USP)|(<< CSW_P228)|(<< CSW_ELITE)|(<< CSW_FIVESEVEN);
        static 
    sWpName[32], iWeapons[32], iNumi;
        
    get_user_weapons(idiWeaponsiNum);
        for(
    0iNumi++)
        {
            if((
    << iWeapons[i]) & dropped_weapons)
            {
                
    get_weaponname(iWeapons[i], sWpNamecharsmax(sWpName));
                
    engclient_cmd(id"drop"sWpName);
            }
        }
        
    give_item(id"weapon_deagle");
        
    cs_set_user_bpammo(idCSW_DEAGLE35);
    }   
     
    Le$hiy и Phantom нравится это.
  19. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.979
    Симпатии:
    944
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Спасибо за корректировку
     
  20. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    832
    Симпатии:
    226
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    Спасибо всем, кто помог. Тему можно закрыть.
     
Статус темы:
Закрыта.