Создание героя, который волею судеб не был создан до завершения конкурса героев для Dota2.
WIP-0.
Тема
8 2.1K
15
Я думаю что набор способностей героя которые между собою связаны является показателем специализации героя в каком-то русле. Ну кто назовет нормальным то что маг огня использует ледяную магию?
29
Героя посмотрю как вернусь с ТИ, но сразу скажу: придумать героя у которого все способности связаны-перевязаны проще всего, и я считаю что лион будет интереснее 99% героев завязанных на одной сущности и к тому же не могущих без нее существовать. Но это так, прелюдия. Интересный ли герой еще предстоит увидеть. То что я описал выше - не предвзятость, а скорее исходит из персонального опыта.
30
нынче мне он кажется удобным :)
Это до тех пор, пока ты не пишешь вне варкрафта =)

Попробуй подход, который тут описан, не пожалеешь =Р
20
Чтож, я привык к описанному способу и нынче мне он кажется удобным :)
30
Diaboliko, спасибо за коммент, сейчас отвечу по частям.

выдели константное число элементов под сущности
Оно так и есть, в Config выведена константа (через define).
unitiserdata...вместо двусвязного списка
Двусвязный список в данном случае ничуть не хуже, и даже лучше, так как не использует внешних игровых сущностей.
Для хранения иных значений можно использовать оффсеты номера ячейки или иные массивы с параллельным выделением номеров
Это по своей сути будет просто огромным костылём и существенно усложнит архитектуру кода в целом без каких-либо реальных улучшений.

Как-то так =)
20
Привяжи переменную, содержащую номер ячейки, являющейся началом части целочисленного массива, выделенного для героя к герою через unitiserdata и выдели константное число элементов под сущности этого героя и прогоняйся по ним циклом. Это вместо двусвязного списка. Для хранения иных значений можно использовать оффсеты номера ячейки или иные массивы с параллельным выделением номеров
Карта, демонстрирующая реализацию кастомного управления для варкрафта.
Тема
20 4.6K
30
prog, так нет же. Если глянуть на мой код, то там из нативных типов используются только int, float, bool, string, timer, trigger, причём таймер единожды для всей карты, а триггеры только для чтения инпата юзеров. Всё взаимодействие с UI, где невозможно обойтись без хендлов, инкапсулировано в максимально компактные библиотеки, которые работают через абсолютно адекватное API.

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

Ну а так да, конкретно этот кусок - велосипед.
24
В свободное время учусь прогать таким изощрённым образом =)
Сверлильщик зубов дракона через задний проход, третьего разряда.
30
Вот это версия, которую я заливал. Она хорошо инкапсулирована и, хотя и рассчитана на строго определённую архитектуру карты (глобальный таймер, запускающий поток обработки игры N раз в секунду), показала себя достойно.
Сейчас сильно перепилил, всё красиво делаю, без костылей и с максимально адекватной логикой внутри самой системы. В свободное время учусь прогать таким изощрённым образом =)
Загруженные файлы
24
а гора комментов потому что наработка в аду с точки зрения навигации
Ну я вот почитал, посмотрел, файла не увидел, кода не увидел, подумал "о, да я же делал такое в своей недоделаной карте, только дамы легкого поведения иначе одеты были" и прошел мимо т.к. мне это уже давно не интересно, максимум любопытно было глянуть насколько отличается от моей давней реализации. А сколько нибудь интересного срача диалога здесь не предвидится т.к. школоте это не нужно в виду сложности сабжа, а все остальные и сами в состоянии свою альтернативу сварганить, если бы им это было нужно.