Добавлен Shuex
Сделал кастомную атаку для юнитов дальнего боя.
Вопрос в том как влиять на этот снаряд извне?
Вопрос в том как влиять на этот снаряд извне?
Например, я хочу чтобы если рядом со снарядом находился юнит с определенным баффом, то снаряд замедлялся.
И чтобы все эти проверки происходили не в самой системе движения снаряда, а чтобы вокруг юнита с баффом выбирались снаряды и изменялись их значения переменных скорости.
И чтобы все эти проверки происходили не в самой системе движения снаряда, а чтобы вокруг юнита с баффом выбирались снаряды и изменялись их значения переменных скорости.
Такое возможно или придется все проверки в снаряд запихивать?
P.S. пишу на cJass, снаряд - структура со всякими переменными.
Принятый ответ
на сколько я понял снаряд является юнитом
тогда надо к юниту-снаряду атачить структуру-снаряд (через хеш/хендл/юзердата)
делаешь проверку у юнита цели на наличие рядом юнита-снаряда
если юнит-снаряд есть то берёшь приатаченный к нему экземпляр структуры-снаряда и меняешь в нём значение полей
короткий пример атача через юзердату
тогда надо к юниту-снаряду атачить структуру-снаряд (через хеш/хендл/юзердата)
делаешь проверку у юнита цели на наличие рядом юнита-снаряда
если юнит-снаряд есть то берёшь приатаченный к нему экземпляр структуры-снаряда и меняешь в нём значение полей
короткий пример атача через юзердату
Missile a=Missile.new(); // создаёт снаряд и юнита для него
a.ms=200; // устанавливаем скорость на 200
SetUnitUserData(a.myUnit, a); // сохраняем в юзердату юнита a.myUnit экземпляр структуры a
...
...
Missile a=GetUnitUserData(u); // извлекаем экземпляр структуры из юзердаты юнита u
a.ms=100; // устанавливаем скорость на 100
подробнее есть в статьях xgm.guru/p/wc3/articles
читай всё что связано с ооп/атачи/хеш-таблицы
читай всё что связано с ооп/атачи/хеш-таблицы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Вопрос в том можно ли менять значения переменных созданного снаряда из другого триггера грубо говоря
соответственно с ее помощью пикаешь свой снаряд и замедляешь.
тогда надо к юниту-снаряду атачить структуру-снаряд (через хеш/хендл/юзердата)
делаешь проверку у юнита цели на наличие рядом юнита-снаряда
если юнит-снаряд есть то берёшь приатаченный к нему экземпляр структуры-снаряда и меняешь в нём значение полей
короткий пример атача через юзердату
читай всё что связано с ооп/атачи/хеш-таблицы