Инфо из amxmodx.inc:
/* Returns player health. */
native get_user_health(index);
Синтаксис:
get_user_health ( id )
- id - id игрока чье здоровье требуется получить.
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "[amxmodx.inc] get_user_health"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /my_hp","f_my_hp")
}
public f_my_hp(id){
//объявление новой переменной и получение hp игрока
new my_health = get_user_health(id)
//Вывод сообщения в чат
client_print(id,print_chat,"You hp:%d",my_health)
}
Описание:
Данный пример особенно бесполезный, так как результатом его работы является текстовое сообщение с количеством здоровья игрока, выполнившего команду, а вы все помните, что здоровье игрока и так постоянно показывается на экране у игрока. Но мы не о полезности примера тут собрались поговорить, а о работе функции.
И так, в функции f_my_hp выполняется очень простое действо, объявление переменной и запись в нее количество жизней игрока выполнившего команду, которая вызывает данную функцию. Следом идет вывод в чат того, что получили в прошлой функции. Все просто и бесполезно.
Что бы немного поднять интерес к функции, давайте попробуем получить здоровье всех игроков на сервере.
Для этого в тело функции f_my_hp необходимо добавить цикл в котором будут проверяться все игроки и суммироваться их здоровье.
new maxplayers = get_maxplayers()
new all_health
for(new i = 1; i <= maxplayers; i++){
all_health = all_health + get_user_health(i)
}
client_print(0,print_chat,"All health:%d",all_health)
В итоге вы получите количество здоровья всех игроков на сервере.
Задачка для самоконтроля:
Получите здоровья только своей команды и как оптимизировать работы цикла.