Добавлен
Чё-то у меня алгоритмическая затупа. Второй день сообразить не могу. Вроде бы не тупой, но алгоритм не создаётся. Что я хочу сделать: прибавка хп герою в зависимости от его интеллекта. Проблема в том, что интеллект меняется на протяжении всей игры, поэтому на это нужно динамическое условие. Моя мысль: каждую 1.00 прибавлять нужное количество здоровья и создавать таймер, который через секунду это всё удалит. Но в таком случае здоровье остаётся неизменным, что довольно-таки логично. Есть идеи?

Принятый ответ

N раз в секунду смотреть текущий интеллект и сравнивать со старым. Если есть разница, то уменьшить или увеличить здоровье. После этого записать текущий интеллект в переменную для "старого".
Моя мысль: каждую 1.00 прибавлять нужное количество здоровья и создавать таймер, который через секунду это всё удалит. Но в таком случае здоровье остаётся неизменным, что довольно-таки логично.
Не уловил, звучит как ерунда.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
2
28
5 лет назад
2
N раз в секунду смотреть текущий интеллект и сравнивать со старым. Если есть разница, то уменьшить или увеличить здоровье. После этого записать текущий интеллект в переменную для "старого".
Моя мысль: каждую 1.00 прибавлять нужное количество здоровья и создавать таймер, который через секунду это всё удалит. Но в таком случае здоровье остаётся неизменным, что довольно-таки логично.
Не уловил, звучит как ерунда.
Принятый ответ
2
32
5 лет назад
2
Эмм, баг спредметами на хп и банальное добавление хп по ходу игры, т.к интелект у стандартных героев будет только расти, для достаточно события на повышение уровня и подбор \ потерю предметов, чтобы пересчитывать хп.
0
16
5 лет назад
Отредактирован Naadir
0
quq_CCCP, ну вот, крч, он будет не только расти. :D
PT153, да, я думал над твоей идеей, но реализовывать её не было большой охоты, т.к. нужно каким-то образом ещё и начальный скачок отловить, а не только дельту думал, мб что-то проще будет. Ладушки, сделаю так.

Осуществил, всё работает.
0
28
5 лет назад
0
достаточно события на повышение уровня и подбор \ потерю предметов, чтобы пересчитывать хп
Вот кстати да, если интеллект модифицируется только предметами, то можно сделать всего 2 события, и в них пересчитывать.
0
16
5 лет назад
0
PT153, нет, у меня не только предметами, но и перераспределением статов может модифицироваться.
0
32
5 лет назад
0
Naadir:
PT153, нет, у меня не только предметами, но и перераспределением статов может модифицироваться.
При перераспределении статов, вызывать триггер который следит за бонусом хп, передавая в него юнита через глобальную переменную, ну или вручать руну пустышку чтобы инициировать событие - юнит получил предмет.
0
16
5 лет назад
0
quq_CCCP, тоже вариант.
2
23
5 лет назад
2
Я же кидал наработки чтобы ловили (Если герой апнул уровень чекаем его статы и старого статы если разницу есть то вычесляем от 0 до нового и прибавку нужного или отнять...
То есть чтобы следить состояние ловим событие это тех
(Получает уровень, Получает/Теряет предмет, Кастомный вызов если такого события нет)
К примеру абилку события сработал и я вызываю кастомный слепка героя прошлого и настояшего.
PS Скучно вот и ответил чтобы понять алгоритм!
Вот пример 1.26 с мемхак (Можно не брат а узнать алгоритм)
А если не ясно то пример:
Со старта карты сохранаем слепки юнита.
То есть хп,мп,сила,атака все сохраняем в базу
Игрок получил 100 хп за апнутый уровень или предметный как удобно это чистый варкрафт.
Ловим события что игрок апнул или получил или любой способ.
Узнать есть ли у юнита слепки фотографии то есть старый состояние.
Если да то сравниваем у кого новые
if(MaxHP(Текуший герой) != старый слепки с типом здоровья
вычесляем и результат прибавка или отрицание и делаете по своему...
А потом удаляете слепки и создаете новый слепка фотографии (Или обновить слепки)
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.