начал изучать x y и заметил что он автоматический двигает хоть через что, как мне делать проверку что бы он не заходил в недоступные места?

native IsTerrainPathable takes real x, real y, pathingtype t returns boolean
Это именно оно, но нужно проверять не текущую точку где уже юнит есть, а где она будет при следующем тике таймера, иначе юнит застрянет в текстуре и закончит движение в итоге ни туда ни сюда
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
писал через точки
Через точки точно также выходит.
7
PT153:
писал через точки
Через точки точно также выходит.
ну я имел ввиду я проверял в каждом способности проходимость через гуй а незнаю ка это сделать на джасс)

нашел вроде это function IsTerrainPathableBJ takes location where, pathingtype t returns boolean
return IsTerrainPathable(GetLocationX(where), GetLocationY(where), t)
endfunction
а что туда ставить вместо точек)) их юзать не хочу

native IsTerrainPathable takes real x, real y, pathingtype t returns boolean вроде это, рабюоает?
33
native IsTerrainPathable takes real x, real y, pathingtype t returns boolean
Это именно оно, но нужно проверять не текущую точку где уже юнит есть, а где она будет при следующем тике таймера, иначе юнит застрянет в текстуре и закончит движение в итоге ни туда ни сюда
Принятый ответ
7
а что делать дальше что делать чтобы триггер был оффнут( т.к он уменя муй) не могу ниче хорошого придумать)

Bergi_Bear:
native IsTerrainPathable takes real x, real y, pathingtype t returns boolean
Это именно оно, но нужно проверять не текущую точку где уже юнит есть, а где она будет при следующем тике таймера, иначе юнит застрянет в текстуре и закончит движение в итоге ни туда ни сюда
блин я не юзаю переменных для реальных интегер и буеланов

а можно просто написать GetWidgetX(T[Acindex[3]])+30*Cos(Atan2(GetUnitY(C[Acindex[3]])-GetUnitY(T[Acindex[3]]),GetUnitX(C[Acindex[3]])-GetUnitX(T[Acindex[3]])*(180/3.14159)*(3.14159/180))))?

но там запятые стоят если без переменных юзать и получается много запятых и редактор выдает ошибку

то есть после одной запятой он считает что x уже закончено и пишется y но это продолжение x-a))

решено если его двинет в закрытую точку то буду двигать всех в одну точку где есть портал этот портал тпшит в любую зону игрвоой карты
28
Hate, так с помощью неё всё равно можно проскочить сквозь блокираторы.
26
PT153:
Hate, так с помощью неё всё равно можно проскочить сквозь блокираторы.
можно, но подход несколько разный
33
Можно после SetUnitXY отдавать приказ "stop"

и получиться эффект SetUnitPosition
26
Bergi_Bear:
Можно после SetUnitXY отдавать приказ "stop"

и получиться эффект SetUnitPosition
нет
26
если бы SetUnitPosition только останавливала приказы юнита, то это бы не работало
---@param source unit
	---@param x real
	---@param y real
	function SetUnitPositionSmooth(source, x, y)
		local last_x = GetUnitX(source)
		local last_y = GetUnitY(source)
		local bx
		local by

		SetUnitPosition(source, x, y)

		if (RAbsBJ(GetUnitX(source) - x) > 0.5) or (RAbsBJ(GetUnitY(source) - y) > 0.5) then

			SetUnitPosition(source, x, last_y)
			bx = RAbsBJ(GetUnitX(source) - x) <= 0.5
			SetUnitPosition(source, last_x, y)
			by = RAbsBJ(GetUnitY(source) - y) <= 0.5

			if bx then
				SetUnitPosition(source, x, last_y)
			elseif by then
				SetUnitPosition(source, last_x, y)
			else
				SetUnitPosition(source, last_x, last_y)
			end

		end
	end
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.