Функция pev проста в использовании, но необходимо знать значение получаемых параметров, вернее название их переменных.
Инфо из fakemeta.inc:
/**
* Returns entvar data from an entity. Use the pev_* enum (in fakemeta_const.inc) to specify which data you want retrieved.
*
* @note This function uses "read_data" style data syntax. It returns integer values,
* by-references float data, and sets a buffer for string data.
*
* @note If retrieving strings, you may optionally get a pointer into the global string table. Depending on
* your situation, there are two ways to do this.
* 1: This simply gets the pointer.
* new ptr = pev(entid, pev_classname)
* 2: The pointer will be stored in ptr AND the actual string is retrieved.
* new ptr, classname[32]
* pev(entid, pev_classname, ptr, classname, 31)
*
* @param _index The entity index to lookup.
* @param _value The pev field to lookup (look in fakemeta_const.inc)
*/
native pev(_index,_value,any:...);
Синтаксис:
pev ( index, value, [ ... ] )
- index - id объекта ( игрока или предмета в игровом мире)
- value - Получаемое значение ( константы Pev_*)
О константах и как с ними работать, буду писать отдельные уроки и примеры. - [ ... ] - Другие значения/переменные - например массив для получения координат объекта.
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define PLUGIN "[fakemeta.inc] pev"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /get_hp","get_hp")
}
public get_hp(id){
new hp = pev(id,pev_health)
client_print(0,print_chat,"Player hp: %d",hp)
new hp2 = get_user_health(id)
client_print(0,print_chat,"Player hp: %d",hp2)
}
Описание:
В данном примере показано как с помощью функции pev получить Hp игрока.
Для убедительности данных приведен пример как получить здоровье игрока другой, ранее описанной функцией get_user_health.
Как вы уже поняли, вся работа функции заключается в одной строчке:
new hp = pev(id,pev_health)
Объявление новой переменной и записи результата функции, в которой указанно что получаем количество здоровья игрока.
Как уже говорилось ранее, в место pev_health можно поставить другие значения pev_* констант, например pev_maxspeed - максимальная скорость объекта ( в данном случае игрока)