Делаю карту, где нужно играть за чена. Нужно, чтобы триггер реагировал только на одного определённого крипа, приручённого ченом. Как так сделать?
unit.hero = caster
if unit.hero and unit.hero:GetUnitName()=="npc_dota_hero_chen" then
...
end
А если у меня приручено пять крипов, и нужно, чтобы каждый отдельный триггер реагировал только на одного крипа?)Если захват кастомный, то при захвате крипа
А когда юнит встаёт на триггер, то делаешь проверкуКод:unit.hero = caster
Код:if unit.hero and unit.hero:GetUnitName()=="npc_dota_hero_chen" then ... end
Я в скриптинге только второй день копаюсь) Если у тебя есть время, то можно немного подробней?)Либо делай переключатель для триггера, либо для юнита
trigger.activated = true
unit.activated = true
Нет, копайся дальшеЯ в скриптинге только второй день копаюсь) Если у тебя есть время, то можно немного подробней?)
Окей, тогда может подскажешь, как сделать проверку, касается ли определённый entity хитбокса другого entity?Нет, копайся дальше![]()
Всё-таки докопался.Нет, копайся дальше![]()
if math.abs(point.x - point1.x) <= 128 and math.abs(point.y - point1.y) <= 128 then -- 128 - размер хитбокса триггера, point - положение крипа, point1 - положение триггера
-- Used to find if a position is insde the trigger entity bounds
function BuildingHelper:IsInsideEntityBounds(entity, location) -- entity = trigger | location = UnitPos
local origin = entity:GetAbsOrigin()
local bounds = entity:GetBounds()
local min = bounds.Mins
local max = bounds.Maxs
local X = location.x
local Y = location.y
local minX = min.x + origin.x
local minY = min.y + origin.y
local maxX = max.x + origin.x
local maxY = max.y + origin.y
local betweenX = X >= minX and X <= maxX
local betweenY = Y >= minY and Y <= maxY
return betweenX and betweenY
end
О, круто, спасибо! А то уже устал кастылить)Взял из билдинг хелпера как раз подойдет под твои нужды чтобы не выставлять в ручную размер триггера.
Lua:-- Used to find if a position is insde the trigger entity bounds function BuildingHelper:IsInsideEntityBounds(entity, location) -- entity = trigger | location = UnitPos local origin = entity:GetAbsOrigin() local bounds = entity:GetBounds() local min = bounds.Mins local max = bounds.Maxs local X = location.x local Y = location.y local minX = min.x + origin.x local minY = min.y + origin.y local maxX = max.x + origin.x local maxY = max.y + origin.y local betweenX = X >= minX and X <= maxX local betweenY = Y >= minY and Y <= maxY return betweenX and betweenY end