Кастомное хп

Novichek

Активный
18 Фев 2020
123
14
Проект
Evo Land
И так дамы и господа. Я наконец справился со своей задачей сделать свое кастомное хп. Максимальный лимит хп составляет 16 квадриллионов или 64 бита. Гайд состоит из следующих файлов:
Lua
xml
ccs
js
Сразу скажу я не спец в кодинге, использовал нейронку. Но на моем проекте все вроде бы как стабильно.
Все файлы будут находится в rar архиве.
Начнем с панорамы. Проект состоит из всего лишь 3-х файлов. Просто подключить и все будет чики пуки:
Имена всех файлов для панорамы "custom_hp":
1763077113699.png
Подключать custom_hp.xml нужно в манифесте.

Что я сделал в панораме (забыл упомянуть. Кастомная система хп будет работать только на тех существах на которых вы захотите. Не затронутые вами существа будут иметь дотовское здоровье.):
- Динамичное отображение стандартной полоски хп на кастомное. Когда игрок выделяет юнита и у него есть кастомное. хп, то оно и будет вам отображатся, ну и наоборот, если нет то не будет.
1763077834475.png

1763077562887.png

- В зависимости от текущего хп, полоса будет окрашиваться в различные цвета(Я бы конечно добавил партиклы для экрана но хз как. Никто не хочет помогать.)
1763077668328.png
- Сокращение больших чисел
1763077722274.png
- Тоже самое с регенерацией(лимит 64 бита).
Ну тут все просто и понятно.
Далее Lua:
1763077274039.png
  • из rar архива вытаскиваем эти 2 файла и закидывает туда где addon_game_mode (вроде просто)
  • В addon_game_mode в обязательном порядке делаем рекваер нашей системы, нужно добавить только файл
custom_health_system:
1763077947916.png
ну и поясню почему 2 файла а не 1 или 8
первый файл custom_health_system это как бы костяк всей системы
в ней реализована функция выдачи здоровья и регена за силу(через постоянный модиффикатор)
так же самое геморное это дэмэдж фильтр.(Поскольку дотовское здоровье скрыто визуально оно по прежнему у нас есть. Нужно блокировать урон)
там же я расписал отправку всей информации в панораму(сколько у нас здоровья, регенерации, и т.д.) и сама механика регенерации. Я ее сделал плавной каждые 0.1 сек.
ну и само собой смерть когда здоровье достигает 0(через флаг в дэмэдж фильтре)

Теперь самый интересный файл
custom_health_api
Для упрощения разработки и дальнейшего усовершенствования я решил написать аналоги дотовских модификаторов и различных методов для управления кастомным здоровьем.
В данном файле есть комментарии что бы вы смогли понять что тут есть и для чего он.
1763079281834.pngЯ постарался объединить методы с дотовскими то бишь к примеру в одном коде мы хотим взять кастомное хп но у какого то юнита его нет, тогда апи будет использовать дотовские методы.
Ну и давайте добавим NET TABLES для проекта. Без него ничего не будет.
Добавляем нашу строку "custom_health" в файле custom_net_tables:
1763078892522.png


Теперь как я реализовал выдачу кастомного хп.
Как бы то небыло банално но через модификатор
modifier_custom_health_user который принимает в себя 2 параметра, начальное здоровье и регенерация:

Lua:
hero:AddNewModifier(hero, nil, "modifier_custom_health_user", {
    health = 10,
    health_regen = 0
})

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

А теперь перейдем к минусам.
  • Первое как я уже писал выше. нет визуального оповещения по краям экрана о критически малом здоровье.
  • Из за кастомной системы хп пришлось скрыть полоску здоровья над головой юнита.
  • Я не знаю что будет с игрой если у миллиардов юнитов и игроков будет данная система (при максимальном количестве игроков 4 и пару десятков боссов, система сбоев не дает).
-Жирный такой минус. Проверка здоровья (если меньше 0 то убиваем владельца) происходит в том же интервале где и регенерация, поэтому вы можете визуально наблюдать у своего героя 0 здоровья а он не будет умирать... Делать интервал 0.03 мне страшно.
- В сводке смерти не будет отображаться нанесенный урон так как мы его блокируем все время.

А из плюсов:
- Черт! Это же круто) квадриллион хп!!!

Ну и по классике ссылка на скачивание архива в самом низу:
черт гугл диск пишет что файлов в архиве нет но они есть...ааа

Ладно вот еще ГитХаб:
 
Последнее редактирование:
  • Нравится
Реакции: vulkantsk
Реклама: