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

    Всего на сайте: 6
    Гостей: 6
    Пользователи: - отсутствуют
    Роботы: - отсутствуют

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 4-07-2012, 10:15 Просмотров: 2956

    nvault_get Функция получает значение по ключу в integer, float или string

    После того как вы поместили данные в файл, например с помощью функции nvault_set, справедливо предположить, что вы захотите их когда то извлечь. Извлеч данные можно несколькими способами, один из них с помощью функции nvault_get

    Инфо из nvault.inc:
    /* Gets a vault value by returning an int
    * setting a byref float or setting a string + maxlength
    */
    native nvault_get(vault, const key[], {Float,_}:...);


    Синтаксис:
    nvault_get ( vault, const key[], ... )

    • vault - Идентификатор файла
    • const key[] - Значение Ключа для поиска нужных данных
    • ... - Дополнительные данные.
    Функция может возвращать результат в трех видах:
        // Для получения данных в integer типе
        new i_integer
        i_integer = nvault_get(hvault, s_ID)

        // Для получения данных в float типе
        new Float:f_Value
        nvault_get(hvault, s_ID, f_Value)

        // Для получения данных в string типе
        new text[64]
        nvault_get(hvault,s_ID,text,charsmax(text))
    Но не забывайте о том, что данная функция не способна возвращать данные timestamp.

    Тип функции:
    Native

    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <nvault>

    #define PLUGIN "[nvault.inc] nvault_get"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        new hvault = nvault_open("mega_file")
        new s_ID[] = "zero"
        nvault_set(hvault, s_ID, "hello world")


        new text[64]
        nvault_get(hvault,s_ID,text,charsmax(text))
        
        server_print("[nVault] %s",text)
        
    }


    Описание:
    В данном примере на всякий случай создается новый файл (или открывается если уже такой есть) и заносятся данные.
    После чего по известному идентификатору hvault файла, начинается поиск ключа s_ID, с помощью функции nvault_get, и как только находится, получаем данные в строковом виде и выводим в консоль сервера.
    [nVault] hello amxxmodx.ru
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Valer4

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

    В plugin_init получаю с помощью данной функции номер, вывожу его в сообщении и начинаю с этого номера цикл, в цикле читаю названия карт из файла, вывожу их в сообщениях и с помощью nvault_pset перезаписываю номер. Из-за того что всё это происходит при старте сервера, каким-то образом в сообщении, в котором должен быть полученный номер, перезаписанный, а сообщения с названиями карт в такой последовательности, в которой они были бы, если цикл начинался с перезаписанного номера.
    Главное, что это происходит только если ключом является 0 в строковом виде, как мой дед говорит ужось))))
    Valer4

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

    Насчёт нуля ошибся, вместо переменной подставляю цифры в кавычках)
    Valer4

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

    Возвращает длину значения кстати.
    Radius

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

    Valer4, если данные получаются ввиде строки, то возвращается число записанных в массив ячеек. Для получения целого значения возвращает целое, для Float возвращает просто 1.

    Информация

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

Реклама