Atideva
offline
Опыт:
1,361Активность: |
Условие unit = нет боевой единицы
Есть Крестьянин
Set Unit = Крестьянин
Remove Крестьянин from game
Проверка:
Если Unit = Нет боевой единицы -тогда "я победил" -иначе "что за дела" Выдает ответ "что за дела".
Хотя за переменной Unit теперь не закрепленно никакой видимой боевой единицы.
Карта приложена.
P.S. Суть проблемы: летит самонаводящаяся ракета, и если её "цель" исчезает из игры, мне необходимо отключить самонаведение, чтобы ракета полетела прямо. Как сделать проверку: существует ли в игре её цель. |
02.09.2014, 01:21 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,598Активность: |
Atideva, проверить хп цели, GetUnitState( u, UNIT_STATE_LIFE) < 0.405 (если меньше 0.405 хп то цель сдохла, или не существует)
То что цель удалена не значит что ссылка на цель будет удалена из переменной, нужно приравнять переменную null после удаления юнита... GetUnitX() \ GetUnitY() вернут 0.00 (координаты центра карты) если попробовать получить координаты от сдохшего юнита. quq_CCCP добавил:
вот еще 1 вариант ((код jass
function IsUnitDead takes unit u returns boolean return IsUnitType(u, UNIT_TYPE_DEAD) or GetUnitTypeId(u) < 1 endfunction )) Проверка на то что юнит сдох или не существует. |
02.09.2014, 07:55 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
потому что надо делать килл и время разложения 0 |
02.09.2014, 17:05 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Atideva
offline
Опыт:
1,361Активность: |
БлагодарЮ, можно закрыть. |
02.09.2014, 20:44 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|