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)
}
Описание:
Для наглядности работы функции я выбрал оффест который отвечает за сумму денег игрока.
Как видно в коде, в заранее созданную переменную получаем данные выводим их в чат. Все наглядно и как мне кажется просто.
Список с известными мне оффсетами я подготовлю немного позднее.