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

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

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

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

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

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