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

    Molodoi Новичок

    Регистрация:
    14 июн 2017
    Сообщения:
    108
    Симпатии:
    12
    Пол:
    Мужской
    И так если не затруднит нужно в данный плагин вот этот
    PHP:
    /*
    * Обновление 28.09.2014
    * v1.1 -     
        Исправлены ошибки
        Оптимизирован код
        Выдавание бонусов теперь по очереди
        Добавлено приветственное DHUD сообщение
    *
    * Обновление 06.03.2015
    * v1.2 -
        Исправлено предупреждение при компиляции на AMXX ниже 1.8.3
        Добавлен вывод второго DHUD сообщения, чтобы помещался ник
    */

    #include <amxmodx>
    #include <fun>
    #include <cstrike>
    #include <hamsandwich>
    #include <dhudmessage>

    #if AMXX_VERSION_NUM < 183
        #include <colorchat>
        
        #define client_print_color    ColorChat
        #define print_team_red    RED
    #endif

    #pragma semicolon    1

    #define PLUGIN    "Steam Bonus"
    #define VERSION    "1.2"
    #define AUTHOR    "Stimul"
    #define PREFIX    "[Steam бонус]"

    #define get_bit(%1,%2)    (%1 & (1 << (%2 & 31)))
    #define set_bit(%1,%2)    (%1 |= (1 << (%2 & 31)))
    #define reset_bit(%1,%2)    (%1 &= ~(1 << (%2 & 31)))

    // Цвет DHUD сообщения
    #define COLOR_RED    random(255)    // Количество красного цвета
    #define COLOR_GREEN    random(255) // Количество зелёного цвета
    #define COLOR_BLUE    random(255)    // Количество синего цвета

    #define TIME    8.0    // Время показа

    new g_bIsConnected;
    new 
    g_bIsSteam;
    new 
    g_bProcedure;

    public 
    plugin_init()
    {
        
    register_plugin(PLUGINVERSIONAUTHOR);
        
        
    RegisterHam(Ham_CS_RoundRespawn"player""fw_CS_RoundRespawn_Post"true);
    }

    public 
    client_putinserver(id)
    {
        
    set_bit(g_bIsConnectedid);
        
        if(
    is_user_steam(id))
        {
            
    set_bit(g_bIsSteamid);
            
    reset_bit(g_bProcedureid);
            
    set_task(3.0"WelcomeMessage"id);
        }
        else
            
    reset_bit(g_bIsSteamid);
    }

    public 
    client_disconnect(id)
        
    reset_bit(g_bIsConnectedid);

    public 
    WelcomeMessage(id)
    {
        if(
    get_bit(g_bIsConnectedid))
        {
            static 
    szName[32];
            
    get_user_name(idszNamecharsmax(szName));
            
            
    set_dhudmessage(COLOR_REDCOLOR_GREENCOLOR_BLUE, -1.00.1200.0TIME);
            
    show_dhudmessage(id"Привет, %s!"szName);
            
    set_dhudmessage(COLOR_REDCOLOR_GREENCOLOR_BLUE, -1.00.1500.0TIME);
            
    show_dhudmessage(id"У тебя Steam, поэтому каждый раунд ты будешь получать бонусы");
        }
    }

    public 
    fw_CS_RoundRespawn_Post(id)
    {
        if(
    get_bit(g_bIsConnectedid) && get_bit(g_bIsSteamid))
        {
            if(!
    get_bit(g_bProcedureid))
            {
                
    give_item(id"weapon_hegrenade");
                
    give_item(id"weapon_flashbang");
                
    cs_set_user_bpammo(idCSW_FLASHBANG2);
                
    give_item(id"weapon_smokegrenade");
                
    cs_set_user_armor(id100CS_ARMOR_VESTHELM);
                if(
    cs_get_user_team(id) == CS_TEAM_CT)
                   
    cs_set_user_defuse(id,1,0,160,0,_,0);
                
    client_print_color(idprint_team_red"^3%s ^1Ты получаешь бонус: ^4все гранаты и броню"PREFIX);
                
    reset_bit(g_bProcedureid);
            }
            else
            {
                
    give_item(id"weapon_hegrenade");
                
    give_item(id"weapon_flashbang");
                
    cs_set_user_bpammo(idCSW_FLASHBANG2);
                
    give_item(id"weapon_smokegrenade");
                
    cs_set_user_armor(id100CS_ARMOR_VESTHELM);
                if(
    cs_get_user_team(id) == CS_TEAM_CT)
                    
    cs_set_user_defuse(id,1,0,160,0,_,0);
                
    client_print_color(idprint_team_red"^3%s ^1Ты получаешь бонус: ^4все гранаты и броню"PREFIX);
                
    reset_bit(g_bProcedureid);
            }
        }
    }

    stock bool:is_user_steam(id)
    {
        static 
    dp_pointer;
        
        if(
    dp_pointer || (dp_pointer get_cvar_pointer("dp_r_id_provider")))
        {
            
    server_cmd("dp_clientinfo %d"id);
            
    server_exec();
            return (
    get_pcvar_num(dp_pointer) == 2) ? true false;
        }
        
        new 
    szAuthid[34];
        
    get_user_authid(idszAuthidcharsmax(szAuthid));
        
        return (
    containi(szAuthid"LAN") < 0);
    }
    каким то образом вставить этот плагин
    #include <amxmodx>
    #include <hamsandwich>

    #define PLUGIN "Steam VIP"
    #define VERSION "0.1"
    #define AUTHOR "nakazatel"
    #define PREFIX "[Steam Immunity]"

    #define VIP_FLAG ADMIN_LEVEL_F

    #define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
    #define set_bit(%1,%2) (%1 |= (1 << (%2 & 31)))
    #define reset_bit(%1,%2) (%1 &= ~(1 << (%2 & 31)))

    new g_bIsSteam;

    new round_number;

    public plugin_init()
    {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
    register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
    RegisterHam(Ham_Spawn, "player", "fw_CS_RoundRespawn_Post", true);
    }

    public eRestart()
    round_number = 0;

    public RoundStart()
    round_number++;

    public client_putinserver(id)
    {
    if(is_user_steam(id)) set_bit(g_bIsSteam, id);
    else reset_bit(g_bIsSteam, id);
    }

    public fw_CS_RoundRespawn_Post(id)
    {
    if(round_number < 2) return; // Где 2, это с какого раунда выдается флаг
    if(!get_bit(g_bIsSteam, id)) return;
    if(!is_user_alive(id)) return;

    set_user_flags(id, get_user_flags(id)|VIP_FLAG);
    ChatColor(id, "^3%s ^1Вы получаете имунитет от ^4voteban :)", PREFIX);
    }

    bool:is_user_steam(id)
    {
    static dp_pointer;
    if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
    {
    server_cmd("dp_clientinfo %d", id);
    server_exec();
    return (get_pcvar_num(dp_pointer) == 2) ? true : false;
    }
    return false;
    }

    stock ChatColor(const id, const szMessage[], any:...)
    {
    static pnum, players[32], szMsg[190], IdMsg;
    vformat(szMsg, charsmax(szMsg), szMessage, 3);

    if(!IdMsg) IdMsg = get_user_msgid("SayText");

    if(id)
    {
    if(!is_user_connected(id)) return 0;
    players[0] = id;
    pnum = 1;
    }
    else get_players(players, pnum, "ch");

    for(new i; i < pnum; i++)
    {
    message_begin(MSG_ONE, IdMsg, .player = players);
    write_byte(players);
    write_string(szMsg);
    message_end();
    }
    return 1;
    }


    ну по типу один плагин работает как два тоесть выдаёт флаги и бонусы сразу но з сообщением как у steam_bonus
     
  2. Le$hiy

    Le$hiy Новичок

    Регистрация:
    10 июн 2017
    Сообщения:
    120
    Симпатии:
    39
    Пол:
    Мужской
    Molodoi, объединением двух плагинов в 1 ты не добьешься никакой оптимизации. Нет смысла их соединять.
     
    Inline и shram47 нравится это.
  3. shram47

    shram47 Новичок

    Регистрация:
    22 июн 2017
    Сообщения:
    120
    Симпатии:
    33
    Пол:
    Мужской
    Странные люди нынче
    --- Сообщения объединены 4 июл 2017 ---
    Le$hiy, ну тут конечно спорный вопрос, ибо 3 плагина делают почти одно и тоже... (в данном случае!)
    --- Сообщения объединены 4 июл 2017 ---
    ой, два плагина *
     
  4. Molodoi

    Molodoi Новичок

    Регистрация:
    14 июн 2017
    Сообщения:
    108
    Симпатии:
    12
    Пол:
    Мужской
    Ну просто что б он ещё выдавал флаг и всё
     
  5. PPP

    PPP Новичок

    Регистрация:
    8 июн 2017
    Сообщения:
    7
    Симпатии:
    1
    Да неужели? :)
     
  6. wizardD

    wizardD Новичок

    Регистрация:
    1 июл 2017
    Сообщения:
    35
    Симпатии:
    5
    Пол:
    Мужской
    Автор я пошел дальше чем объеденять два плагина в один а в итоге не изменится ничего.
    Я решил опитимизировать сборку на приватной ветке ядра не вызывать в каждом плагине по функции типа как init(){} и т.п сервер определяте сборку на 1 плагине это GameServer 1.0 wizardD;
    Пример как у меня:
    scripting/
    src/ <-- Исходники .inl
    Config.sma <-- Грузит инфу в консоль о успешном запуске каждой функции и ее работе и необходимую мне инфы из бд
    GameServer.sma <-- Ядро сборки оно же грузит инклуды из папки src формата .inl (#include "src/AMXX_PingContolManager.inl") и т.д
    AMXX_PingContolManager <-- Содержит всего 1 функцию PingCheckConnectClient(){}; подгружаемое в ядро GameServer.sma
    Примеры:
    Пример Config.sma: // вывод инфы в консоли при запуске сервера или смене карты
    []===========================================================================[Map Manager]
    Map Manager is successfully loaded..
    Map List:
    de_dust2;
    de_aztec; и т.д
    []====================================================================================[]
    []=======================================================================[Ping Contol Manager]
    Ping Contol Manager is successfully loaded..
    []====================================================================================[]
    и т.д
    ---
    P.S Рассказал свою идеи приватной ветки сборки amxx ,я могу с увереность ходить что ее никто не реализует а если и реализуют то только единицы из тысяч ,и то для приватного использования ))
    Ибо кто шарит тот знает что каждый плагин который нужно подключать надо подгонять сперва под ядро переносить функции переписывать и т.п а 99% из вас не знают даже как изменить настройки перменной в исходнике!
     
    Последнее редактирование модератором: 5 июл 2017
  7. nakazatel

    nakazatel Новичок

    Регистрация:
    10 июн 2017
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Орнул, это скок надо перепить и переколоться, чтоб такую дичь нам втиреть?
     
  8. wizardD

    wizardD Новичок

    Регистрация:
    1 июл 2017
    Сообщения:
    35
    Симпатии:
    5
    Пол:
    Мужской
    Дичь, ну да?!
    Ты же в php возьмем не на каждой странице вызываешь $db = new mysqli(); ты создаешь файл заносишь функцию и инклудишь для удобства или в яве ты же не пилишь на каждой странице тоже соединение с бд ты же используешь импорт к примеру import java.sql.Connection; в итоге одна функция на весь проект а не на кажду страницу вот и дичь выходит!
    --- Сообщения объединены 5 июл 2017 ---
    Ори дальше или ты пишешь в php
    index.php
    $dbhost = '';
    $dbuser = '';
    $dbpass = '';
    $dbname = '';
    $db = new mysqli();
    <header>
    и т.д
    а потом в reg.php
    $db = new mysqli();
    <header>
    а так все вызывается через include_once к примеру в MySQL.php класс к подключеие к БД и
    на index.php
    вызывается парсер страниц движка чтобы визьде не инклудить
    --- Сообщения объединены 5 июл 2017 ---
    ибо если не парсе так include_once чтобы было понятно
    --- Сообщения объединены 5 июл 2017 ---
    а потом создается switch чтобы и опять же инклудятся страницы чтобы на каждой шляпу не вызывать
     
    Последнее редактирование модератором: 5 июл 2017
  9. wizardD

    wizardD Новичок

    Регистрация:
    1 июл 2017
    Сообщения:
    35
    Симпатии:
    5
    Пол:
    Мужской
    Здесь ничего изобретать не надо и переносить тоже кроме 1 сообщения и то пожеланию!!!
    set_dhudmessage(COLOR_RED, COLOR_GREEN, COLOR_BLUE, -1.0, 0.15, 0, 0.0, TIME);
    show_dhudmessage(id, "У тебя Steam, поэтому каждый раунд ты будешь получать бонусы");
    +
    + client_print_color(id, print_team_red, "^3%s ^1Вы получаете имунитет от ^4/voteban :)", PREFIX);
    }
    }
    И в вотебане настроить на флаг который стоит у вас для стим игроков
    Ибо плагин от наказателя быдлокод который определяет стим игрока не при конекте функцией client_putinserver(){}; а при втором раунде после его убийства и всего выдает ему флаг F.
    Просто добавть в вотебан ADMIN_LEVEL_F
    --- Сообщения объединены 5 июл 2017 ---
    Еще и проверяет или игрок живой if(!is_user_alive(id)) return;
    ---
    P.S Орнул, это скок надо перепить и переколоться, чтоб такую дичь нам втиреть как твой плагин по спавнам выдающий флаги а не при конекте и выдавать живым игрока флаг?
     
    Последнее редактирование модератором: 5 июл 2017
  10. Molodoi

    Molodoi Новичок

    Регистрация:
    14 июн 2017
    Сообщения:
    108
    Симпатии:
    12
    Пол:
    Мужской
    wizardD, я так понял что луче пользоваться 2-мя разними плагинами )
     
  11. nakazatel

    nakazatel Новичок

    Регистрация:
    10 июн 2017
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
    Ты наверное темой ошибся, плагину 100 лет в обед, бралось что-то за основу, в последующих версиях это все было исправлено, биты красиво работают что при коннекте что и при дисконнекте. Так что угомони таланты, и дичь сюда не пищи.
    --- Сообщения объединены 5 июл 2017 ---
    тогда пруфы сюда, или ты очередной хейтер.
     
  12. Molodoi

    Molodoi Новичок

    Регистрация:
    14 июн 2017
    Сообщения:
    108
    Симпатии:
    12
    Пол:
    Мужской
    Админ закрой тему пока тут не розгорелась война скриптеров )
     
  13. пазлик~

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

    Регистрация:
    8 июн 2017
    Сообщения:
    82
    Симпатии:
    68
    Пол:
    Мужской
    Molodoi, Привет, тебе что трудно set_user_flags в функцию впихнуть? :)
     
  14. Molodoi

    Molodoi Новичок

    Регистрация:
    14 июн 2017
    Сообщения:
    108
    Симпатии:
    12
    Пол:
    Мужской
    пазлик~, Привет я понял что за функция но если бы я знал куда :D
     
  15. steelzzz

    steelzzz Новичок

    Регистрация:
    9 июн 2017
    Сообщения:
    6
    Симпатии:
    0
    Пол:
    Мужской
    Ты не можешь писать плагины)) лишь c+p. Биты это микро оптимизация
     
  16. _Vastern_

    _Vastern_ Новичок

    Регистрация:
    4 июл 2017
    Сообщения:
    2
    Симпатии:
    1
    Пол:
    Мужской
    public fw_CS_RoundRespawn_Post(id)
    {
    if(get_bit(g_bIsConnected, id) && get_bit(g_bIsSteam, id))
    {
    if(!get_bit(g_bProcedure, id))
    {
    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_flashbang");
    cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
    give_item(id, "weapon_smokegrenade");
    cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
    if(cs_get_user_team(id) == CS_TEAM_CT)
    cs_set_user_defuse(id,1,0,160,0,_,0);
    client_print_color(id, print_team_red, "^3%s ^1Ты получаешь бонус: ^4все гранаты и броню", PREFIX);
    reset_bit(g_bProcedure, id);
    }
    else
    {
    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_flashbang");
    cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
    give_item(id, "weapon_smokegrenade");
    cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
    if(cs_get_user_team(id) == CS_TEAM_CT)
    cs_set_user_defuse(id,1,0,160,0,_,0);
    client_print_color(id, print_team_red, "^3%s ^1Ты получаешь бонус: ^4все гранаты и броню", PREFIX);
    reset_bit(g_bProcedure, id);
    }
    }
    }
    в эту функцию пихаешь свой set_user_flags
     
    Molodoi нравится это.
  17. пазлик~

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

    Регистрация:
    8 июн 2017
    Сообщения:
    82
    Симпатии:
    68
    Пол:
    Мужской
    Molodoi,
    PHP:
    public client_putinserver(id)
    {
        
    set_bit(g_bIsConnectedid);
        
        if(
    is_user_steam(id))
        {
            
    set_bit(g_bIsSteamid);
            
    reset_bit(g_bProcedureid);
            
    set_task(3.0"WelcomeMessage"id);
        }
        else
            
    reset_bit(g_bIsSteamid);
    }
    Ищи условие где идет проверка на стим туда и пиши, я в тебя верю... :)
     
    Inline и Molodoi нравится это.
  18. Molodoi

    Molodoi Новичок

    Регистрация:
    14 июн 2017
    Сообщения:
    108
    Симпатии:
    12
    Пол:
    Мужской
    пазлик~, пасибки щя буду включать мозг на 101%
    --- Сообщения объединены 5 июл 2017 ---
    пазлик~, вот так посотри или правельно
    PHP:
    /*
    * Обновление 28.09.2014
    * v1.1 -     
        Исправлены ошибки
        Оптимизирован код
        Выдавание бонусов теперь по очереди
        Добавлено приветственное DHUD сообщение
    *
    * Обновление 06.03.2015
    * v1.2 -
        Исправлено предупреждение при компиляции на AMXX ниже 1.8.3
        Добавлен вывод второго DHUD сообщения, чтобы помещался ник
    */

    #include <amxmodx>
    #include <fun>
    #include <cstrike>
    #include <hamsandwich>
    #include <dhudmessage>

    #if AMXX_VERSION_NUM < 183
        #include <colorchat>
        
        #define client_print_color    ColorChat
        #define print_team_red    RED
    #endif

    #pragma semicolon    1

    #define PLUGIN    "Steam Bonus"
    #define VERSION    "1.2"
    #define AUTHOR    "Stimul"
    #define PREFIX    "[Steam бонус]"

    #define get_bit(%1,%2)    (%1 & (1 << (%2 & 31)))
    #define set_bit(%1,%2)    (%1 |= (1 << (%2 & 31)))
    #define reset_bit(%1,%2)    (%1 &= ~(1 << (%2 & 31)))

    // Цвет DHUD сообщения
    #define COLOR_RED    random(255)    // Количество красного цвета
    #define COLOR_GREEN    random(255) // Количество зелёного цвета
    #define COLOR_BLUE    random(255)    // Количество синего цвета

    #define TIME    8.0    // Время показа

    new g_bIsConnected;
    new 
    g_bIsSteam;
    new 
    g_bProcedure;

    public 
    plugin_init()
    {
        
    register_plugin(PLUGINVERSIONAUTHOR);
        
        
    RegisterHam(Ham_CS_RoundRespawn"player""fw_CS_RoundRespawn_Post"true);
    }

    public 
    client_putinserver(id)
    {
        
    set_bit(g_bIsConnectedid);
        
        if(
    is_user_steam(id))
        {
            
    set_bit(g_bIsSteamid);
            
    reset_bit(g_bProcedureid);
            
    set_task(3.0"WelcomeMessage"id);
        }
        else
            
    reset_bit(g_bIsSteamid);
    }

    public 
    client_disconnect(id)
        
    reset_bit(g_bIsConnectedid);

    public 
    WelcomeMessage(id)
    {
        if(
    get_bit(g_bIsConnectedid))
        {
            static 
    szName[32];
            
    get_user_name(idszNamecharsmax(szName));
            
            
    set_dhudmessage(COLOR_REDCOLOR_GREENCOLOR_BLUE, -1.00.1200.0TIME);
            
    show_dhudmessage(id"Привет, %s!"szName);
            
    set_dhudmessage(COLOR_REDCOLOR_GREENCOLOR_BLUE, -1.00.1500.0TIME);
            
    show_dhudmessage(id"У тебя Steam, поэтому каждый раунд ты будешь получать бонусы");
        }
    }

    public 
    fw_CS_RoundRespawn_Post(id)
    {
        if(
    get_bit(g_bIsConnectedid) && get_bit(g_bIsSteamid))
        {
            if(!
    get_bit(g_bProcedureid))
            {
                
    give_item(id"weapon_hegrenade");
                
    give_item(id"weapon_flashbang");
                
    cs_set_user_bpammo(idCSW_FLASHBANG2);
                
    give_item(id"weapon_smokegrenade");
                
    cs_set_user_armor(id100CS_ARMOR_VESTHELM);
                if(
    cs_get_user_team(id) == CS_TEAM_CT)
                    
    cs_set_user_defuse(id,1,0,160,0,_,0);
                
    set_user_flagsidread_flags("r"))
                
    client_print_color(idprint_team_red"^3%s ^1Ты получаешь бонус: ^4все гранаты и броню"PREFIX);
                
    reset_bit(g_bProcedureid);
            }
            else
            {
                
    give_item(id"weapon_hegrenade");
                
    give_item(id"weapon_flashbang");
                
    cs_set_user_bpammo(idCSW_FLASHBANG2);
                
    give_item(id"weapon_smokegrenade");
                
    cs_set_user_armor(id100CS_ARMOR_VESTHELM);
                if(
    cs_get_user_team(id) == CS_TEAM_CT)
                    
    cs_set_user_defuse(id,1,0,160,0,_,0);
                
    set_user_flagsidread_flags("r"))
                
    client_print_color(idprint_team_red"^3%s ^1Ты получаешь бонус: ^4все гранаты и броню"PREFIX);
                
    reset_bit(g_bProcedureid);
            }
        }
    }

    stock bool:is_user_steam(id)
    {
        static 
    dp_pointer;
        
        if(
    dp_pointer || (dp_pointer get_cvar_pointer("dp_r_id_provider")))
        {
            
    server_cmd("dp_clientinfo %d"id);
            
    server_exec();
            return (
    get_pcvar_num(dp_pointer) == 2) ? true false;
        }
        
        new 
    szAuthid[34];
        
    get_user_authid(idszAuthidcharsmax(szAuthid));
        
        return (
    containi(szAuthid"LAN") < 0);
    }
    --- Сообщения объединены 5 июл 2017 ---
    Не ругайте если чот не так)
     
  19. пазлик~

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

    Регистрация:
    8 июн 2017
    Сообщения:
    82
    Симпатии:
    68
    Пол:
    Мужской
  20. Molodoi

    Molodoi Новичок

    Регистрация:
    14 июн 2017
    Сообщения:
    108
    Симпатии:
    12
    Пол:
    Мужской