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

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


- В зависимости от текущего хп, полоса будет окрашиваться в различные цвета(Я бы конечно добавил партиклы для экрана но хз как. Никто не хочет помогать.)

- Сокращение больших чисел

- Тоже самое с регенерацией(лимит 64 бита).
Ну тут все просто и понятно.
Далее Lua:


ну и поясню почему 2 файла а не 1 или 8
первый файл custom_health_system это как бы костяк всей системы
в ней реализована функция выдачи здоровья и регена за силу(через постоянный модиффикатор)
так же самое геморное это дэмэдж фильтр.(Поскольку дотовское здоровье скрыто визуально оно по прежнему у нас есть. Нужно блокировать урон)
там же я расписал отправку всей информации в панораму(сколько у нас здоровья, регенерации, и т.д.) и сама механика регенерации. Я ее сделал плавной каждые 0.1 сек.
ну и само собой смерть когда здоровье достигает 0(через флаг в дэмэдж фильтре)
Теперь самый интересный файл
custom_health_api
Для упрощения разработки и дальнейшего усовершенствования я решил написать аналоги дотовских модификаторов и различных методов для управления кастомным здоровьем.
В данном файле есть комментарии что бы вы смогли понять что тут есть и для чего он.
Я постарался объединить методы с дотовскими то бишь к примеру в одном коде мы хотим взять кастомное хп но у какого то юнита его нет, тогда апи будет использовать дотовские методы.
Ну и давайте добавим NET TABLES для проекта. Без него ничего не будет.
Добавляем нашу строку "custom_health" в файле custom_net_tables:

Теперь как я реализовал выдачу кастомного хп.
Как бы то небыло банално но через модификатор
modifier_custom_health_user который принимает в себя 2 параметра, начальное здоровье и регенерация:
Я же в своем случае просто выдаю всем героям модификатор в начале игры.
Если хочу выдать к примеру крипу который возрождается после смерти, то просто выдаю этот модификатор. Все просто.
А теперь перейдем к минусам.
- В сводке смерти не будет отображаться нанесенный урон так как мы его блокируем все время.
А из плюсов:
- Черт! Это же круто) квадриллион хп!!!
Ну и по классике ссылка на скачивание архива в самом низу:
drive.google.com
черт гугл диск пишет что файлов в архиве нет но они есть...ааа
Ладно вот еще ГитХаб:
github.com
Lua
xml
ccs
js
Сразу скажу я не спец в кодинге, использовал нейронку. Но на моем проекте все вроде бы как стабильно.
Все файлы будут находится в rar архиве.
Начнем с панорамы. Проект состоит из всего лишь 3-х файлов. Просто подключить и все будет чики пуки:
Имена всех файлов для панорамы "custom_hp":

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


- В зависимости от текущего хп, полоса будет окрашиваться в различные цвета(Я бы конечно добавил партиклы для экрана но хз как. Никто не хочет помогать.)

- Сокращение больших чисел

- Тоже самое с регенерацией(лимит 64 бита).
Ну тут все просто и понятно.
Далее Lua:

- из rar архива вытаскиваем эти 2 файла и закидывает туда где addon_game_mode (вроде просто)
- В addon_game_mode в обязательном порядке делаем рекваер нашей системы, нужно добавить только файл
ну и поясню почему 2 файла а не 1 или 8
первый файл custom_health_system это как бы костяк всей системы
в ней реализована функция выдачи здоровья и регена за силу(через постоянный модиффикатор)
так же самое геморное это дэмэдж фильтр.(Поскольку дотовское здоровье скрыто визуально оно по прежнему у нас есть. Нужно блокировать урон)
там же я расписал отправку всей информации в панораму(сколько у нас здоровья, регенерации, и т.д.) и сама механика регенерации. Я ее сделал плавной каждые 0.1 сек.
ну и само собой смерть когда здоровье достигает 0(через флаг в дэмэдж фильтре)
Теперь самый интересный файл
custom_health_api
Для упрощения разработки и дальнейшего усовершенствования я решил написать аналоги дотовских модификаторов и различных методов для управления кастомным здоровьем.
В данном файле есть комментарии что бы вы смогли понять что тут есть и для чего он.
Я постарался объединить методы с дотовскими то бишь к примеру в одном коде мы хотим взять кастомное хп но у какого то юнита его нет, тогда апи будет использовать дотовские методы.Ну и давайте добавим NET TABLES для проекта. Без него ничего не будет.
Добавляем нашу строку "custom_health" в файле custom_net_tables:

Теперь как я реализовал выдачу кастомного хп.
Как бы то небыло банално но через модификатор
modifier_custom_health_user который принимает в себя 2 параметра, начальное здоровье и регенерация:
Lua:
hero:AddNewModifier(hero, nil, "modifier_custom_health_user", {
health = 10,
health_regen = 0
})
Я же в своем случае просто выдаю всем героям модификатор в начале игры.
Если хочу выдать к примеру крипу который возрождается после смерти, то просто выдаю этот модификатор. Все просто.
А теперь перейдем к минусам.
- Первое как я уже писал выше. нет визуального оповещения по краям экрана о критически малом здоровье.
- Из за кастомной системы хп пришлось скрыть полоску здоровья над головой юнита.
- Я не знаю что будет с игрой если у миллиардов юнитов и игроков будет данная система (при максимальном количестве игроков 4 и пару десятков боссов, система сбоев не дает).
- В сводке смерти не будет отображаться нанесенный урон так как мы его блокируем все время.
А из плюсов:
- Черт! Это же круто) квадриллион хп!!!
Ну и по классике ссылка на скачивание архива в самом низу:
Кастомное хп Дота 2.rar
drive.google.com
Ладно вот еще ГитХаб:
GitHub - aniprem/dota_custom_hp: гайд по кастомному хп
гайд по кастомному хп. Contribute to aniprem/dota_custom_hp development by creating an account on GitHub.
Последнее редактирование: