Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 5
    Гостей: 1
    Пользователи: - отсутствуют
    Роботы: crawl Bot, Yandex Bot, Yandex Bot, Yandex Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 28-08-2011, 22:59 Просмотров: 7658

    register_cvar Функция регистрирует новый квар.

    Квары нужны для тонкой настройки работы плагина на конкретном сервере, без изменения исходного кода.
    Это удобно, так как менять их можно прямо во время игры, а так же не надо пере компилировать каждый раз исходный код, тем более что далеко не все разбираются в скриптинге. Что бы зарегистрировать новый квар, необходимо воспользоваться функцией register_cvar.

    Инфо из amxmodx.inc:
    /* Registers new cvar for HL engine.
    * Returns the cvar pointer for get/set_pcvar functions.
    */
    native register_cvar(const name[],const string[],flags = 0,Float:fvalue = 0.0);


    Синтаксис:
    register_cvar ( const name[],const string[],flags = 0,Float:fvalue = 0.0 )

    • const name[] - Имя квара, например amx_my_super_cvar
    • const string[] - Значение квара по умолчанию "777" или "mega_zna4enie"
    • flags = 0 и Float:fvalue = 0.0 - Честно говоря ни когда не приходилось иметь дело.
    Функция вернет id зарегистрированного квара

    Пример:

    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>
    #include <cstrike>

    #define PLUGIN "Register cvars"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        //Регистрируем новый квар и устанавливаем значение по умолчанию
        register_cvar("cvar_money_start", "7777")
        
    }
    //Вызывается когда клиент входит в игру
    public client_putinserver(id){

        //Условие что наш квар больше нуля
        if (get_cvar_num("cvar_money_start") > 0){
            
            //Если больше то устанавливаем деньги при входе равные квару
            cs_set_user_money(id, get_cvar_num("cvar_money_start"))
            
        } else {
            //Если квар равен 0, то выставляем значение равное mp_startmoney
            cs_set_user_money(id, get_cvar_num("mp_startmoney"))
        }
    }


    Описание:
    Что бы показать как это работает, мы изменим сумму денег выдающуюся при заходе игрока на сервере.
    Для этого зарегистрируем квар и присвоим ему любое значение больше 0.

    Далее у нас вступает Форвард функция( форвард - вызывается при каком то событии игры) когда игрок зашел на сервере.
    Затем следует условие в котором с помощью функции get_cvar_num, мы получаем значение нашего квара cvar_money_start.
    И если значение больше нуля устанавливаем ему сумму денег равную квару, если нет, то устанавливем значение его валюты равные квару mp_startmoney.

    Для получения значений кваров, существуют 5 функций:
    1. get_cvar_flags
    2. get_cvar_float
    3. get_cvar_num
    4. get_cvar_pointer
    5. get_cvar_string

    О них в другой раз.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    register_cvar Функция регистрирует новый квар.
    hummer

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    client_putinserver Функция звучит пугающее))) путин сервер))))
    rahimyanov

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    hummer,
    Put In Server :)
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  59  +

    Долго кэпа ждали wink
    --------------------
    LordNAO

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Для получения значений кваров, существуют 5 функций:
    get_cvar_flags
    get_cvar_float
    get_cvar_num
    get_cvar_pointer
    get_cvar_string
    О них в другой раз.

    Admin, уже больше 2-х лет прошло smile, хотелось бы почитать про эти функции, заранее спасибо.
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  59  +

    LordNAO, у меня нет времени на данный сайт.

    А еще очень рекомендую научиться юзать поиск.
    --------------------
    артист

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    hummer, client_medvedevserver

    #include <amxmodx>

    new cvar_num, cvar_str

    public plugin_init()
    {
        register_clcmd("say /1", "func")
        
        cvar_num = register_cvar("num_cvar", "10")
        cvar_str = register_cvar("str_cvar", "text")
        register_cvar("cvar", "0", FCVAR_ARCHIVE)
    }
    public func(id)
    {
        // cvar = 10
        client_print(id, print_chat, "cvar = %d", get_cvar_num(cvar_num))
        // cvar = 10.0
        client_print(id, print_chat, "cvar = %f", get_cvar_float(cvar_num))
        // cvar = text
        new buf[33]; get_cvar_string(cvar_str, buf, 32)
        client_print(id, print_chat, "cvar = %s", get_cvar_float(cvar_num))
        // cvar id = 31
        client_print(id, print_chat, "cvar id = %d", get_cvar_pointer("cvar"))
        // cvar flag = 1
        client_print(id, print_chat, "cvar flag = %d", get_cvar_flags("cvar"))    
    }


    флаги
    FCVAR_ARCHIVE 1 / * установить, чтобы сохранить его в vars.rc * /
    FCVAR_USERINFO 2 / * меняет информация строку клиента * /
    FCVAR_SERVER 4 / * уведомляет игроков, когда изменилось * /
    FCVAR_EXTDLL 8 / * определяется внешней dll * /
    FCVAR_CLIENTDLL 16 / * определяется dll клиент * /
    FCVAR_PROTECTED 32 / * Это сервер квар, но мы не посылаем данные, так как это пароль и т.д. Посылает 1, если это не мягкий / ноль, 0 в противном случае в качестве значения * /
    FCVAR_SPONLY 64 / * Это квар не может быть изменен по клиентам, подключенным к многопользовательской сервере. * /
    FCVAR_PRINTABLEONLY 128 / * строка этой настройки не может содержать непечатных символов (например, используемые для имени игрока и т.д.). * /
    FCVAR_UNLOGGED 256 / * Если это FCVAR_SERVER, не войти изменений в лог-файл / консоли, если мы создаем журнал * /

    Float:fvalue = 0.0 незнай для чего...

    https://wiki.alliedmods.net/Scripting_Cvars_(AMX_Mod_X)#Flags

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама