HLFX.Ru Forum
Показать все 11 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Регенерация здоровья (https://hlfx.ru/forum/showthread.php?threadid=3275)


Отправлено ONeiLL 25-02-2012 в 14:44:

Регенерация здоровья

Ну сам код лёгкий
if (здоровье > 0 && здоровье < 0)
здоровье++;

Но куда его пихать?

Добавлено 25-02-2012 в 18:44:

И как получить значение здоровья?


Отправлено PLut 25-02-2012 в 15:08:

ONeiLL Если здоровье больше нуля и если здоровье меньше нуля?

__________________
Base Defense on Steam, ModDB


Отправлено ONeiLL 25-02-2012 в 15:23:

ага

Добавлено 25-02-2012 в 19:15:

C++ Source Code:
1
if (m_iClientHealth < 100 && m_iClientHealth > 0)
2
{
3
  int iHealth = m_iClientHealth + 1;
4
  MESSAGE_BEGIN( MSG_ONE, gmsgHealth, NULL, pev );
5
  WRITE_BYTE( iHealth );
6
  MESSAGE_END();
7
}


Только как сделать чтобы оно раз в пять секунд отправлялось?

Добавлено 25-02-2012 в 19:23:

Что затихли все?


Отправлено XaeroX 25-02-2012 в 15:41:

ONeiLL
Этот код - ерунда какая-то. Во-первых, надо работать с pev->health, а не с m_iClientHealth. Во-вторых, мессага отправится в этом случае без твоего участия. В-третьих, надо завести переменную m_flNextHealthUpdate и сверять ее с gpGlobals->time (когда она меньше gpGlobals->time на 5 или более, то приравнивать к gpGlobals->time и увеличивать здоровье). Всё это можно пихать в PlayerPreThink, например.

__________________

xaerox on Vivino


Отправлено ONeiLL 25-02-2012 в 15:45:

Спасибо


Отправлено PomanoB 25-02-2012 в 16:03:

Тут где-то был тутор в разделе соответствующем про регенерацию здоровья


Отправлено ONeiLL 25-02-2012 в 16:09:

Блин, а я только что хотел выложить этот тутор

Добавлено 25-02-2012 в 20:09:

XaeroX , писать тутор или нет?


Отправлено KiQ 25-02-2012 в 16:35:

Я не сторонник саморекламы, но в разделе туторов есть мой вариант, хотя он заточен под аптечку, адаптировать его несложно.

__________________
-Brain is dead-


Отправлено ONeiLL 25-02-2012 в 16:44:

Лан выкладывать не буду, раз уже такой есть

У меня другой вопрос, почему регенерация предложинна Ксероксо после смены уровня не пашет?

Добавлено 25-02-2012 в 20:44:

А, я понял, почему


Отправлено Дядя Миша 25-02-2012 в 18:50:

Цитата:
ONeiLL писал:
А, я понял, почему

пушо время надо обнулять в ForceUpdateClientDll

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ONeiLL 25-02-2012 в 19:32:

А может ForceClientDllUpdate?

Добавлено 25-02-2012 в 23:32:

А я вот не знал, где обнулить NextHealthUpdate, поэтому написал проверку

C++ Source Code:
if (NextHealthUpdate > gpGlobals->time)
  NextHealthUpdate = gpGlobals->time;


Хоть и бредовое, но работает


Временная зона GMT. Текущее время 15:34.
Показать все 11 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024