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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 4-04-2012, 12:20 Просмотров: 4427

    get_pdata_int Функция получает pvPrivateData данные ( OFFSET_*)

    pvPrivateData - это свойство, описанное в структуре edict_s (см. HLSDK, файл edict.h). Содержит блок памяти, в котором находятся дополнительные свойства объекта, относящиеся к конкретному моду (mod-related). Доступ к нему осуществляется посредством модификации памяти - по смещению. Чтобы узнать структуру этого блока памяти, необходимы исходники мода. А так как у вас их нет и вряд ли будут (речь о CS/CZ), то информацию о типе и назначении групп ячеек памяти можно получить исследовательским методом (а-ля хакинг). Т.е. вы определяете для себя область данных, которую будете исследовать, запоминаете значения, потом выполняете действия, смотрите - изменилось ли что - и т.о. делаете вывод (если повезет) о назначении этого участка памяти.
    Автор: slogic

    Функция get_pdata_int получает эти данные по конкретному оффсету ( целочисленные значения)

    Инфо из fakemeta.inc:
    /* Returns an integer from private data.  _linuxdiff is added into the _Offset if it's used on a linux server. */
    native get_pdata_int(_index,_Offset,_linuxdiff=5);


    Синтаксис:
    get_pdata_int(_index,_Offset,_linuxdiff=5)

    • _index - id entity ( игрок тоже entity)
    • _Offset - Интересующие данные (Пример OFFSET_ARMORTYPE или 112)
    • _linuxdiff=5 - Смещение для linux


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

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

    #include <amxmodx>
    #include <amxmisc>
    #include <fakemeta>

    #define OFFSET_MONEY            115

    #define PLUGIN "[fakemeta.inc] get_pdata_int"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_clcmd("say /money","get_money")
    }
    public get_money(id){

        new money
        money = get_pdata_int(id,OFFSET_MONEY)
        
        client_print(id,print_chat,"You have %d money",money)
        
    }


    Описание:
    Для наглядности работы функции я выбрал оффест который отвечает за сумму денег игрока.
    Как видно в коде, в заранее созданную переменную получаем данные выводим их в чат. Все наглядно и как мне кажется просто.

    Список с известными мне оффсетами я подготовлю немного позднее.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    get_pdata_int Функция получает pvPrivateData данные ( OFFSET_*)
    SpIxE

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

    А можно ли, создать цикл для хука офсетов(не упадёт ли сервер?)?
    Admin

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

    Прочитай внимательно:
    http://amxxmodx.ru/fakemeta/366-spisok-pvprivatedata-offsetov-offset_.html
    --------------------

    Информация

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

Реклама