XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Zahanc

offline
Опыт: 23,017
Активность:
Отловить игрушечный замок
Собственно, нужно заносить создаваемого с помощью способности "Игрушечный замок" юнита в переменную. Вернее, нужно установить связь между кастером и вызываемым юнитом. Долго объяснять зачем. Есть идеи?
Старый 19.04.2014, 04:37
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
юнит заходит в игровой рект
Старый 19.04.2014, 07:46
Extremator

offline
Опыт: 39,428
Активность:
На всякий случай попробуй стандартные ивенты "юнит начинает стройку" и прочие...
Далее проверь ивент "юнит вызывает юнита"...
и "юнит приводит умение в действие" и прочие
Где-то там должна отлавливаться связь...
Старый 19.04.2014, 09:43
nvc123
new status
offline
Опыт: 59,284
Активность:
игрушечный замок это скил
чего тут думать
Старый 19.04.2014, 11:46
Zahanc

offline
Опыт: 23,017
Активность:
Наверно всё-таки придется объяснять в чем задумка.
Герой использует способность-канал на точке. На отрезке от позиции героя до цели дамми кастуют игрушечные замки (это нужно для корректной проверки проходимости). Созданным таким образом замкам должны быть доступны параметры, заданные во время каста канальной способности (в частности угол поворота).
Я могу отдельно отловить героя через каст способности и отдельно замок через событие постройки. Но мне нужно чтобы они могли обращатся друг к другу.
Сейчас стоит невообразимый костыль: во время каста канала нужные параметры заносятся в глобальные переменные, а потом к ним обращаются игрушечные замки, которых я отлавливаю через событие постройки.
Старый 19.04.2014, 12:56
DioD

offline
Опыт: 45,134
Активность:
ктото не читал ни одной книжки про OOP
Старый 19.04.2014, 12:58
Zahanc

offline
Опыт: 23,017
Активность:
Не правда! Одну...
Старый 19.04.2014, 13:11
nvc123
new status
offline
Опыт: 59,284
Активность:
атачим структуру к дамику который и строит эти замки
при событие постройка можно определить какой юнит строит
так как строит дамик то мы получаем структуру в которой наш герой и всё что нужно
nvc123 добавил:
атачить можно через юсердату
Старый 20.04.2014, 13:46
Zahanc

offline
Опыт: 23,017
Активность:
Если прикреплять через UserData это ведь исключает совместимость с системами, также использующими UserData?
Старый 20.04.2014, 13:58
Buulichkaa
Делаю спеллы за еду
offline
Опыт: 20,146
Активность:
bladget, хэш-таблица
Старый 20.04.2014, 16:23
nvc123
new status
offline
Опыт: 59,284
Активность:
bladget, системы для дамика который проживёт меньше секунды?
Старый 20.04.2014, 16:33
Zahanc

offline
Опыт: 23,017
Активность:
Ну, могут же существовать алгоритмы, которые присваивают своё значение UserData каждому юниту. Вот я и подумал, что они могут конфликтовать.
Старый 20.04.2014, 17:25
Extremator

offline
Опыт: 39,428
Активность:
мне кажется... или...

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

* - вход на карту / призыв юнита
** - при наличии даммика в переменной / вызывающий юнит = даммик
Старый 20.04.2014, 20:53
Zahanc

offline
Опыт: 23,017
Активность:
У меня сейчас всё так и сделано, только глобалки у меня другие, соответствующие нуждам.
Старый 20.04.2014, 21:57
Melissa
Я всегда хочу как лучше!
offline
Опыт: 31,696
Активность:
custom value
Старый 20.04.2014, 22:16
Zahanc

offline
Опыт: 23,017
Активность:
Хорошо, я понял, есть два выхода:
  1. Глобальные переменные.
  2. UnitUserData a. k. a. Unit Custom Value.
Вопрос на счет второго: что на счет совместимости? Не будет ли второй подход слишком... спряженным?
Старый 20.04.2014, 22:32
nvc123
new status
offline
Опыт: 59,284
Активность:
можно атачить на хендл дамика
тогда получается муи и юсердата не юзается
Старый 21.04.2014, 12:07
Zahanc

offline
Опыт: 23,017
Активность:
Нашел вот такой способ прикрепления структуры к хэндлу юнита. На сколько я понял, все экземпляры структуры заносятся в массив, а их индексы — хэндлы юнитов. Будет ли это быстрее, чем хэш таблица? И будет ли это безопаснее?
Старый 21.04.2014, 16:17
nvc123
new status
offline
Опыт: 59,284
Активность:
bladget, индекс это хендл юнита - хендл первого юнита(хендлы юнитов расположены по порядку)
быстрее будет
не понял что ты имеешь ввиду под безопаснее
Старый 21.04.2014, 16:36
Zahanc

offline
Опыт: 23,017
Активность:
Известно что размер массива ограничен 8192 элементами. Выход за границы — краш. Может есть ещё подобные подводные камни?
Старый 21.04.2014, 16:46
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 10:32.