1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  1. gesk1995

    gesk1995 Новичок

    Регистрация:
    8 июн 2017
    Сообщения:
    27
    Симпатии:
    1
    Пол:
    Мужской
    VKcom:
    csnvrs
    Привет всем , ребята помогите Проставить проверку на Админа, и дописать строчку, Когда у игрока 16000$
    и когда он берёт Деньги что бы писало " У вас уже \r16000$^n"
    и что бы Работали Бонусы с 3 раунда
    Help pliz
     

    Вложения:

  2. пазлик~

    пазлик~ Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    82
    Симпатии:
    67
    Пол:
    Мужской
    gesk1995,
    PHP:
    #include <amxmodx>
    #include <amxmisc>
    #include <cstrike>
    #include <fun>
    #include <hamsandwich>

    const KEYSMENU MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4;

    new 
    bool:g_bSteamBonus[33], g_iRoundCounterg_iRandomNum;

    public 
    plugin_init()
    {
        
    register_plugin("Steam Bonus""1.3.1""DUKKHAZ0R");    // by pUzzlik for gesk1995
        
    register_event("HLTV""eRoundStart""a""1=0""2=0");
        
    RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1);
        
    register_menucmd(register_menuid("BonusMenu"), KEYSMENU"BonusMenuHandler");
    }

    public 
    client_putinserver(id)
        
    g_bSteamBonus[id] = (is_user_steam(id) && !is_user_admin(id)) ? true false;

    public 
    fwHamPlayerSpawnPost(id)
        if(
    g_bSteamBonus[id] && is_user_alive(id) && g_iRoundCounter >= 3ShowBonusMenu(id);

    public 
    eRoundStart()
        
    g_iRoundCounter++;

    public 
    ShowBonusMenu(id)
    {
        static 
    lenmenu[256];
        new 
    iKey MENU_KEY_0|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4;
        new 
    iMoney cs_get_user_money(id);

        
    len formatex(menucharsmax(menu), "\r[\ySteam Bonus\r] \yВыберите бонус^n^n");
     
        
    len += formatex(menu[len], charsmax(menu) - len"\r1. %s^n", (iMoney 16000) ? "\wДеньги" "У вас уже \r16000$");
        if (
    iMoney 16000iKey |= MENU_KEY_1;
        
    len += formatex(menu[len], charsmax(menu) - len"\r2. \wЧутка HP \r[\yДо 20\r]^n");
        
    len += formatex(menu[len], charsmax(menu) - len"\r3. \wНабор гранат^n");
        
    len += formatex(menu[len], charsmax(menu) - len"\r4. \wБроня и шлем^n^n");
        
    len += formatex(menu[len], charsmax(menu) - len"\r0. \wОтказаться от приза");
     
        return 
    show_menu(idiKeymenu, -1"BonusMenu");
    }

    public 
    BonusMenuHandler(idiKey)
    {
        switch(
    iKey)
        {
            case 
    0:
            {
                
    g_iRandomNum random_num(11000);
                
    cs_set_user_money(idmin(cs_get_user_money(id) + g_iRandomNum16000));
                
    ChatColor(id"^1[^4Steam Bonus^1] Вы получили бонус за ^4Steam CS^1 - Деньги в размере ^4%d$"g_iRandomNum);
            }
            case 
    1:
            {
                
    g_iRandomNum random_num(110);
                
    set_user_health(idget_user_health(id) + g_iRandomNum);
                
    ChatColor(id"^1[^4Steam Bonus^1] Вы получили бонус за ^4Steam CS^1 - Дополнительно ^4%d HP"g_iRandomNum);
            }
            case 
    2:
            {
                
    give_item(id"weapon_hegrenade");
                
    give_item(id"weapon_flashbang");
                
    give_item(id"weapon_flashbang");
                
    give_item(id"weapon_smokegrenade");
                
    ChatColor(id"^1[^4Steam Bonus^1] Вы получили бонус за ^4Steam CS^1 - ^4Комплект гранат");
            }
            case 
    3:
            {
                
    cs_set_user_armor(id50CS_ARMOR_VESTHELM);
                
    ChatColor(id"^1[^4Steam Bonus^1] Вы получили бонус за ^4Steam CS^1 - ^4Армор и шлем");
            }
        }
    }

    stock bool:is_user_steam(const id)
    {
        static 
    dp_pointer; if(!dp_pointerdp_pointer get_cvar_pointer("dp_r_id_provider");
        
    server_cmd("dp_clientinfo %d"id);
        
    server_exec();
        return 
    get_pcvar_num(dp_pointer) == true false;
    }

    stock ChatColor(const id, const szRawMessage[], any:...)
    {
        if(!
    is_user_connected(id)) return;
        static 
    szMessage[191]; vformat(szMessagecharsmax(szMessage), szRawMessage3);
        
    message_begin(MSG_ONE_UNRELIABLE76, .player id);
        
    write_byte(id);
        
    write_string(szMessage);
        
    message_end();
    }
    --- Сообщения объединены 21 июн 2017 ---
    Раунды считает итак, и призы с 3, нет от проверки на рестарт или подключения игроков, а в ост. все гуд, ну и проблема с проверкой на админа может быть если admin_loder юзать(может не успевать загрузить админов на стадии подключения), методы решения либо редачить сам admin_loder либо переходить на users.ini либо переносить проверку в Ham_Spawn, последнее придаст нагрузки на сервер.
     
    Последнее редактирование: 21 июн 2017
    gesk1995, kasperch1k и To be or not to be нравится это.
  3. To be or not to be

    To be or not to be Новичок

    Регистрация:
    9 июн 2017
    Сообщения:
    20
    Симпатии:
    2
    пазлик~,
    Побольше бы таких 'умников' как ты :D (в хорошем смысле)
     
  4. gesk1995

    gesk1995 Новичок

    Регистрация:
    8 июн 2017
    Сообщения:
    27
    Симпатии:
    1
    Пол:
    Мужской
    VKcom:
    csnvrs
    пазлик~, на users.ini не перейду никогда !
    admin_loder тоже не юзаю , Что так сложно сделать Проверку на Админа (Флаг a ) ? ну у меня Бонусы выдаются с 1 раунда !
     
  5. Inline

    Inline Команда форума Модератор

    Регистрация:
    8 июн 2017
    Сообщения:
    235
    Симпатии:
    80
    Пол:
    Мужской
    пазлик~, с 1000 фпс упало на 500 после того, как добавил проверку в спавне (сарказм)
     
  6. пазлик~

    пазлик~ Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    82
    Симпатии:
    67
    Пол:
    Мужской
    Ваше право! Орать то не надо -_-
    Возможно потому что я выше описал? Нет проверки на Game_Commencing и Game_will_restart_in? мозгами шевелить не учимся хотим все на на блюдечке?
    О великий гуру отвечу вам на ваш ну пожалуй самый "глупый" - умный вопрос, если вы не добавили то видимо да :) А я вам альтернативу предложил, проверку на флаги, а не один флаг, будто вип будто админ или еще кто то у кого есть хоть какие то флаги, например если вип за топ выдают.
    И мой вам совет на последок, будьте проще, люди вам ничего не должны, топик назвали же помощь... 1 мин. работы! Так дерзайте вам подсказывают, а вы вместо благодарности с**а плюетесь, пена из рта типа я что то вам должен, я дал направления это не означает что я вам работу выложить должен это не ТЗ, плагин не мой обратитесь к автору!
    Inline, Да я так ляпнул, одна проверка лучше чем каждый раунд, как бы молвить оптимизация хули :)
     
    Последнее редактирование модератором: 22 июн 2017
    Le$hiy, Damir4ik и Inline нравится это.
  7. gesk1995

    gesk1995 Новичок

    Регистрация:
    8 июн 2017
    Сообщения:
    27
    Симпатии:
    1
    Пол:
    Мужской
    VKcom:
    csnvrs
    пазлик~, Спасибо Большое!
    --- Сообщения объединены 22 июн 2017 ---
    пазлик~,
    public SteamBonusMenu(id)
    {
    if(!is_user_steam(id) || (get_user_flags(id) & ADMIN_IMMUNITY)) return 0;
    Поставь такую проверку на Админа
     
  8. пазлик~

    пазлик~ Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    82
    Симпатии:
    67
    Пол:
    Мужской
    Не за что, но как правило на форумах спасибо выражают нажатием кнопки мне нравится.

    На, не благодари. Уже более готовый вариант.
    PHP:
    #include <amxmodx>
    #include <amxmisc>
    #include <cstrike>
    #include <fun>
    #include <hamsandwich>

    #define ROUND_BONUS        3                    // С какого раунда выдавать бонусы
    //#define FLAG_IMMUNITY    ADMIN_IMMUNITY        // Если раскоментировать строку будет только на один флаг который вы укажите из amxconst.inc

    const KEYSMENU MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4;
    new 
    bool:g_bSteamBonus[33], g_iRoundCounterg_iRandomNum;

    public 
    plugin_init()
    {
        
    register_plugin("Steam Bonus""1.3.2""DUKKHAZ0R");    // by pUzzlik for gesk1995

        
    register_event("TextMsg""eGameCommencing""a""2=#Game_will_restart_in""2=#Game_Commencing");
        
    register_event("HLTV""eRoundStart""a""1=0""2=0");

        
    RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1);
        
    register_menucmd(register_menuid("BonusMenu"), KEYSMENU"BonusMenuHandler");
    }

    public 
    eGameCommencing()
        
    g_iRoundCounter 0;

    public 
    eRoundStart()
        
    g_iRoundCounter++;

    public 
    client_putinserver(id)
        
    g_bSteamBonus[id] = is_user_steam(id) ? true false;

    public 
    fwHamPlayerSpawnPost(id)
        if(
    is_user_alive(id) && g_bSteamBonus[id] && g_iRoundCounter >= ROUND_BONUSShowBonusMenu(id);

    public 
    ShowBonusMenu(id)
    {
        
    #if defined FLAG_IMMUNITY
            
    if(get_user_flags(id) & FLAG_IMMUNITY) return PLUGIN_CONTINUE;
        
    #else
            
    if(!is_user_admin(id)) return PLUGIN_CONTINUE;
        
    #endif
      
        
    static lenmenu[256];
        new 
    iKey MENU_KEY_0|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4;
        new 
    iMoney cs_get_user_money(id);

        
    len formatex(menucharsmax(menu), "\r[\ySteam Bonus\r] \yВыберите бонус^n^n");

        
    len += formatex(menu[len], charsmax(menu) - len"\r1. %s^n", (iMoney 16000) ? "\wДеньги" "У вас уже \r16000$");
        if (
    iMoney 16000iKey |= MENU_KEY_1;
        
    len += formatex(menu[len], charsmax(menu) - len"\r2. \wЧутка HP \r[\yДо 20\r]^n");
        
    len += formatex(menu[len], charsmax(menu) - len"\r3. \wНабор гранат^n");
        
    len += formatex(menu[len], charsmax(menu) - len"\r4. \wБроня и шлем^n^n");
        
    len += formatex(menu[len], charsmax(menu) - len"\r0. \wОтказаться от приза");

        return 
    show_menu(idiKeymenu, -1"BonusMenu");
    }

    public 
    BonusMenuHandler(idiKey)
    {
        switch(
    iKey)
        {
            case 
    0:
            {
                
    g_iRandomNum random_num(11000);
                
    cs_set_user_money(idmin(cs_get_user_money(id) + g_iRandomNum16000));
                
    ChatColor(id"^1[^4Steam Bonus^1] Вы получили бонус за ^4Steam CS^1 - Деньги в размере ^4%d$"g_iRandomNum);
            }
            case 
    1:
            {
                
    g_iRandomNum random_num(110);
                
    set_user_health(idget_user_health(id) + g_iRandomNum);
                
    ChatColor(id"^1[^4Steam Bonus^1] Вы получили бонус за ^4Steam CS^1 - Дополнительно ^4%d HP"g_iRandomNum);
            }
            case 
    2:
            {
                
    give_item(id"weapon_hegrenade");
                
    give_item(id"weapon_flashbang");
                
    give_item(id"weapon_flashbang");
                
    give_item(id"weapon_smokegrenade");
                
    ChatColor(id"^1[^4Steam Bonus^1] Вы получили бонус за ^4Steam CS^1 - ^4Комплект гранат");
            }
            case 
    3:
            {
                
    cs_set_user_armor(id50CS_ARMOR_VESTHELM);
                
    ChatColor(id"^1[^4Steam Bonus^1] Вы получили бонус за ^4Steam CS^1 - ^4Армор и шлем");
            }
        }
    }

    stock bool:is_user_steam(const id)
    {
        static 
    dp_pointer; if(!dp_pointerdp_pointer get_cvar_pointer("dp_r_id_provider");
        
    server_cmd("dp_clientinfo %d"id);
        
    server_exec();
        return 
    get_pcvar_num(dp_pointer) == true false;
    }

    stock ChatColor(const id, const szRawMessage[], any:...)
    {
        if(!
    is_user_connected(id)) return;
        static 
    szMessage[191]; vformat(szMessagecharsmax(szMessage), szRawMessage3);
        
    message_begin(MSG_ONE_UNRELIABLE76, .player id);
        
    write_byte(id);
        
    write_string(szMessage);
        
    message_end();
    }
     
    Последнее редактирование: 22 июн 2017
    gesk1995 и kasperch1k нравится это.
  9. gesk1995

    gesk1995 Новичок

    Регистрация:
    8 июн 2017
    Сообщения:
    27
    Симпатии:
    1
    Пол:
    Мужской
    VKcom:
    csnvrs
    пазлик~, Слушай , А вот по дефолту "Флаг А" Если не раcкоментировать строку ( Админ Скикими флагами будет получать Стим Бонусы,)(abcdfijmnrtu)
    //#define FLAG_IMMUNITY ADMIN_IMMUNITY // Если раскоментировать строку будет только на один флаг который вы укажите из amxconst.inc
    --- Сообщения объединены 23 июн 2017 ---
    пазлик~, Тестил Без Админки Бонусы не работают вообще , До 5 раунда Поиграл !
     
  10. sonyx

    sonyx Постоялец

    Регистрация:
    8 июн 2017
    Сообщения:
    247
    Симпатии:
    155
    Пол:
    Мужской
    Telegram:
    @sonyx008
    вот не пойму я, зачем держать свой сервер, если вы даже не имеете представления что на него ставите? Хрен с ним не уметь написать плагин, но прочитать код, учитывая что pawn по сути один из самых легких языков.....
    Это ж блин как купить авто и не уметь на нем ездить... Один только вопрос: "Нахера козе баян?"
     
    REVO нравится это.
  11. пазлик~

    пазлик~ Разработчик

    Регистрация:
    8 июн 2017
    Сообщения:
    82
    Симпатии:
    67
    Пол:
    Мужской
    gesk1995, Тю блэат
    PHP:
    if(!is_user_admin(id)) return PLUGIN_CONTINUE;
    >>>
    PHP:
    if(is_user_admin(id)) return PLUGIN_CONTINUE;