Мне нужно проверить, выставлена ли у здания точка сбора. В чем суть - после определенного улучшения юниты должны сразу телепортироваться в точку сбора (с соответствующим спецэффектом). Если она выставлена на местности - все работает. Если на юните - тоже все работает. А вот если на самом здании, где юнит нанимается (т.е. точка сбора не выставлена) - то юнит телепортируется, но ровно в центр карты (по-хорошему, мне надо, чтобы он в этом случае никуда не телепортировался вообще и спецэффект чтобы тоже не появлялся). В общем, нужно проверить в условии, выставлена ли точка сбора. Как это сделать?

Принятый ответ

делается это через проверку на существование точки сбора
то есть
boolean IsRally(unit u){
	location a=GetUnitRallyPoint(u);
	bool b=a!=null;
	RemoveLocation(a)
	return b;	
}
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
25
9 лет назад
0
Может просто сделать область вокруг здания где нанимается юнит, потом "Отряд вошёл в зону" указать её и "Боевая единица двигать и куда надо" там же сделать спецэффект.
0
12
9 лет назад
0
Maxsavin:
Может просто сделать область вокруг здания где нанимается юнит, потом "Отряд вошёл в зону" указать её и "Боевая единица двигать и куда надо" там же сделать спецэффект.
Скорее всего имеется ввиду что зданий может быть построено хоть 100 штук, то есть это не одно здание поставленное сразу.
Этот комментарий удален
0
15
9 лет назад
0
constant native GetUnitRallyPoint takes unit whichUnit returns location вернёт точку, куда указывает раллипойнт здания.
0
28
9 лет назад
Отредактирован nvc123
0
делается это через проверку на существование точки сбора
то есть
boolean IsRally(unit u){
	location a=GetUnitRallyPoint(u);
	bool b=a!=null;
	RemoveLocation(a)
	return b;	
}
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.