1. pUzzlik Пользователь

    Регистрация:
    06.05.15
    Сообщения:
    848
    Симпатии:
    287
    Пол:
    Мужской
    Автор: pUzzlik
    Текущая версия: 1.1

    Всем привет.
    Snow - это новогодний плагин, добавляющий снег на сервер. Итак основные отличия от аналогов, простая настройка, нет тумана, и откр. исходный код, по просьбе своих игроков сделал удобное меню с возможностью отключить снег или изменить интенсивность.
    Настройки:
    Внутри исходника:
    Код:
    #define CHAT_INFO        //  Закомментируйте если не нужно оповещение в чат об открытии меню
    #define INTERVAL 180.0   //  Интервал времени с которым происходит оповещение в чат
    
    Доступные команды:
    PHP:
    say /snow меню упрснегом
    say_team 
    /snow меню упрснегом

    Установка:
    • Скачиваем исходник. Настраиваем на свой вкус (Также в исходнике можно настроить дефолтную интенсивность снега cl_weather 1/2/3 | слабо/средне/сильно) ищем функцию которая указана ниже:
    PHP:
    public client_authorized(id)

    • Компилируем. Рекомендация под 1.8.3 но добавил поддержку 1.8.2 но не проверял инклуд внутри архива.
    • snow.amxx кидаете в /addons/amxmodx/plugins
    • Впишите в plugins.ini
    • После меняем карту или перезагружаем сервер и радуемся новогодней обстановке xD
    1.jpg 2.jpg

     

    Вложения:

    • snow.zip
      Размер файла:
      5,2 КБ
      Просмотров:
      46
    Последнее редактирование: 15.11.16
    AmDmKo, Fenix, Cloud и 4 другим нравится это.
  2. xopoIIIuu Пользователь

    Регистрация:
    22.04.15
    Сообщения:
    234
    Симпатии:
    51
    Пол:
    Мужской
    Почти бесполезный плагин, ибо на клиентах где есть протектор - отправку команд через client_cmd будет блокировать, но за старание 'Спасибку' нажал.
     
  3. mforce Пользователь

    Регистрация:
    24.08.15
    Сообщения:
    145
    Симпатии:
    94
    Пол:
    Мужской
    here is mine with save for steamid
    PHP:
    #include <amxmodx>
    #include <engine>
    #include <nvault>

    #define PLUGIN "Snowfall"
    #define VERSION "1.0.1"
    #define AUTHOR "mforce"


    new havazas[33] = 1;
    new 
    vault;

    public 
    plugin_init() {
        
    register_plugin(PLUGINVERSIONAUTHOR);
        
    register_clcmd("say /snowfall""snow_menu");
        
    set_task(183.0"esikahoocsem", .flags "b");
        
    vault nvault_open("havazas");
    }

    public 
    plugin_precache() {
        
    create_entity("env_snow");
    }

    public 
    esikahoocsem() {
        
    ChatColor(0"^4[%s]^1 To switch off or set the intensity, type: ^3/snowfall"PLUGIN);
    }

    public 
    snow_menu(id) {
        new 
    temp[128], temp2[32];
        
    formatex(tempcharsmax(temp), "\r[\y%s\r] \wby \y%s"PLUGINAUTHOR);
        new 
    menu menu_create(temp"snow_menu_h");
      
        
    formatex(tempcharsmax(temp), "\wSnowfall: \r[%s]"havazas[id] == "OFF":"ON");
        
    menu_additem(menu,temp"0"0);
        switch(
    havazas[id]) {
            case 
    0formatex(temp2charsmax(temp2), "No");
            case 
    1formatex(temp2charsmax(temp2), "Low");
            case 
    2formatex(temp2charsmax(temp2), "Mid");
            case 
    3formatex(temp2charsmax(temp2), "High");
        }
        
    formatex(tempcharsmax(temp), "%sIntensity: \r[%s]"havazas[id] == "\d":"\w"temp2);
        
    menu_additem(menu,temp"1"0);
      
        
    menu_setprop(menuMPROP_EXITMEXIT_ALL);
        
    menu_setprop(menuMPROP_EXITNAME"Exit");
        
    menu_display(idmenu0);
    }

    public 
    snow_menu_h(idmenuitem) {
        switch(
    item) {
            case 
    0: {
                if(
    havazas[id] == 0) {
                    
    havazas[id] = 1;
                    
    client_cmd(id"cl_weather 1");
                }
                else {
                    
    havazas[id] = 0;
                    
    client_cmd(id"cl_weather 0");
                }
                
    mentes(id);
                
    snow_menu(id);
            }
            case 
    1: {
                switch(
    havazas[id]) {
                    case 
    1: {
                        
    havazas[id] = 2;
                        
    client_cmd(id"cl_weather 2");
                    }
                    case 
    2: {
                        
    havazas[id] = 3;
                        
    client_cmd(id"cl_weather 3");
                    }
                    case 
    3: {
                        
    havazas[id] = 1;
                        
    client_cmd(id"cl_weather 1");
                    }
                }
                
    mentes(id);
                
    snow_menu(id);
            }
        }
      
        
    menu_destroy(menu);
        return 
    PLUGIN_HANDLED;
    }

    public 
    client_authorized(id) {
        if(!
    is_user_bot(id) && !is_user_hltv(id)) {
            
    betoltes(id);
        }
    }

    public 
    client_disconnect(id) {
        
    havazas[id] = 1;
    }

    mentes(id) {
        new 
    vaultkey[32], vaultdata[128];
        
    get_user_authid(idvaultkeycharsmax(vaultkey));
        
    formatex(vaultdatacharsmax(vaultdata), "%i"havazas[id]);
        
    nvault_set(vaultvaultkeyvaultdata);
    }

    betoltes(id) {
        new 
    vaultkey[32], vaultdata[128];
        
    get_user_authid(idvaultkeycharsmax(vaultkey));
        
    formatex(vaultdatacharsmax(vaultdata), "%i"havazas[id]);
        if(
    nvault_get(vaultvaultkeyvaultdatacharsmax(vaultdata))) {
            new 
    ho[8];
            
    parse(vaultdatahocharsmax(ho));
            
    havazas[id] = str_to_num(ho);
            switch(
    havazas[id]) {
                case 
    0client_cmd(id"cl_weather 0");
                case 
    1client_cmd(id"cl_weather 1");
                case 
    2client_cmd(id"cl_weather 2");
                case 
    3client_cmd(id"cl_weather 3");
            }
        }
        else {
            
    havazas[id] = 1;
            
    client_cmd(id"cl_weather 1");
        }
    }

    public 
    plugin_end() {
        
    nvault_close(vault);
    }

    stock ChatColor(const id, const szMessage[], any:...) {
        static 
    pnumplayers[32], szMsg[190], IdMsg;
        
    vformat(szMsgcharsmax(szMsg), szMessage3);
      
        if(!
    IdMsgIdMsg get_user_msgid("SayText");
      
        if(
    id) {
            if(!
    is_user_connected(id)) return;
            
    players[0] = id;
            
    pnum 1;
        }
        else 
    get_players(playerspnum"ch");
      
        for(new 
    ipnumi++) {
            
    message_begin(MSG_ONEIdMsg, .player players[i]);
            
    write_byte(players[i]);
            
    write_string(szMsg);
            
    message_end();
        }
    }
     
    Последнее редактирование: 16.12.15
    xopoIIIuu нравится это.
  4. Angerfist Пользователь

    Регистрация:
    02.12.15
    Сообщения:
    152
    Симпатии:
    16
    Пол:
    Мужской
    @pUzzlik, а за это не банят на раскрутке?
    public client_connect(id) client_cmd(id, "cl_weather 2");
     
  5. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.600
    Симпатии:
    4.173
    Пол:
    Мужской
    Angerfist нравится это.
  6. Morfik_59RUS Пользователь

    Регистрация:
    01.07.16
    Сообщения:
    229
    Симпатии:
    16
    Пол:
    Мужской
    @Angerfist, на сборках с протектором не будет отправляться данная команда.
     
    pUzzlik нравится это.
  7. pUzzlik Пользователь

    Регистрация:
    06.05.15
    Сообщения:
    848
    Симпатии:
    287
    Пол:
    Мужской
    ### Обновлен первый пост ###
    • Версия: 1.1
    • Рефакторинг
    • Добавлена возможность сохранять выбор игрока через get_user_info, вообщем решил расширить функционал но только для включения и выключения снега чтобы не нагружать особо (Итак купа лишнего там :)).
    • Добавил ланг файл
    Вкратце скажу от себя плагин сам по себе почти бесполезен, но может кому то пригодиться, на сборках с протекторами вы снега не увидите если же сами не пропишете команду cl_weather, и для тех кто хоть как то шарит в защите клиента отвалиться часть функционала если не весь, ну а так то для серверов онли стим в самый раз, сам играю со стима и новогодняя обстановка как раз все больше радует. Плагин решил обновить т.к. у меня в городе завалило снегом до полу метра, ну и плюс там был ну оч. ужасен код т.к. я был тогда еще новатор. Для опытных скажу сразу ничего сверх истественного вы там не найдете так что можете хаять, если будут предложения я их рассмотрю :)
     
  8. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.600
    Симпатии:
    4.173
    Пол:
    Мужской
    @pUzzlik,
    LANG_SERVER
    >
    LANG_PLAYER

    так будет правильнее
     
  9. pUzzlik Пользователь

    Регистрация:
    06.05.15
    Сообщения:
    848
    Симпатии:
    287
    Пол:
    Мужской
    @neygomon, Не критически, но верно, поправил, спасибо :)