Атака союзника по таргету [РЕШЕНО]

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
Есть концепция скилла агр врагов как у акса(переделал в таргет), только хочу чтобы при использовании на вражеского героя скилла, вражеский герой начинал бить своих союзников в опред. радиусе, как мне записать, нужно ли делать кастомную тиму и перекидывать героев на время в кастомную тиму там их бить потом) или как то можно это реализовать :?
Код:
function BerserkersCall( keys )
	local caster = keys.caster
	local target = keys.target

	target:SetForceAttackTarget(nil)
	
	if caster:IsAlive() then
		local order = 
		{
			UnitIndex = target:entindex(),
			OrderType = DOTA_UNIT_ORDER_ATTACK_TARGET,
			TargetIndex = caster:entindex()
		}

		ExecuteOrderFromTable(order)
	else
		target:Stop()
	end
	
	local units = FindUnitsInRadius( caster:GetTeam(), caster:GetOrigin(), nil, 99999, DOTA_UNIT_TARGET_TEAM_FRIENDLY, DOTA_UNIT_TARGET_HERO, DOTA_UNIT_TARGET_FLAG_NOT_CREEP_HERO, FIND_FARTHEST, false )
	for _,unit in pairs(units) do
		if unit:IsHero() == true then
			target:SetForceAttackTarget(unit)
		end
	end
	
end

function BerserkersCallEnd(keys)
	local target = keys.target

	target:SetForceAttackTarget(nil)
end
 
Re: Атака союзника по таргету

Как мне заставить вражеского героя бить принуждённо своих союзников :) ?
 
Re: Атака союзника по таргету

Если ты уже можешь сагрить юнита на другого юнита то просто дай юниту которого нужно бить модификатор позволяющий денаить (Такой в "зомби в деревне" например есть) p.s. сори все запятые растерял( ,,,,,,.,,,,
 
Последнее редактирование модератором:
Re: Атака союзника по таргету

Лол, забыл отписать что сделал через модификатор с state - deniable
 
  • Нравится
Реакции: Sannin
Re: Атака союзника по таргету

Кстати может кто подсказать как выбрать 1 юнита из списка а то получается если через FindUnitsInRadius я ищю героя, определяю тиму, вектор и т.д после этого пишу оредер на DOTA_UNIT_ORDER_ATTACK_TARGET. Получается так если есть на герое модификатор который всё это чекает происходит поиск игрока и если рядом есть несколько героев он будет бежать из одной стороны в другую для совершения SetForceAttackTarget и каждую секунду меняет выбор на другого игрока, но мне надо чтобы он выбирал одного героя и только на него это использовал

Код:
local units = FindUnitsInRadius(....)
for _,unit in pairs(units) do
...
target:SetForceAttackTarget(unit)
end
 
Re: Атака союзника по таргету

den4iccc, юзай форсатак на unit[1], тогда юнит всегда будет первым, либо, если все равно меняться будет ищи юнита по флагу ближний и записывай в переменную target, пока этот юнит не умрет
 
Re: Атака союзника по таргету

порядковый номер unit[1] не пашет почему то игрок просто на месте стоит, а по флагу прописываю за место FIND_FARTHEST на FIND_CLOSEST(от ближнего до дальнего) также пробовал для всех ордеров никаких реакций и пробовал просто обнулять тож самое
 
Re: Атака союзника по таргету

Лол, я кароч забыл что когда тестил убрать OnIntervalThink и заменить на обычный ран по этому у меня юнит каждый раз перераспределял таргет
 
Реклама: