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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
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
28
Hate, а если заменить на SetUnitXY, скольжения не будет?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.