Использование способностей/предметов с подконтрольных юнитов

Dovakin

Subscriber: DotA 2
16
1
Итак, возник вопрос, как реализовать использование способностей и предметов для подконтрольных юнитов.
Способности/предметы для подконтрольных определяю в отдельные переменные.
Пытаюсь запустить что либо Ability.CastTarget(шмот с юнита, таргет)
Подконтрольный юнит определяется корректно, цель для атаки так же определяется.
Ошибок или еще что либо не появляется, кроме того, что иногда пишет, что не найдена шмотка.

P.S. После этого закончу написание скриптов на мипо и арквардена.
Для главных героев все работает корректно.
 
  • Like
Реакции: Pribalt
107
65
должно работать
player - игрок
npc - твой юнит
 
  • Like
Реакции: Grifon903

Dovakin

Subscriber: DotA 2
16
1
должно работать
player - игрок
npc - твой юнит
Не помогло :(
На противнике висит, что он объект выделения, ошибки того, что предмет не найдет не показывает, но и шмот не юзает.
 
Последнее редактирование:
107
65
Что значит на противнике висит, без кода помогать больше не буду. Показывай как поулчаешь нпц, героя и вызываешь функцию. надеюсь поставил на кнопку или еще чего, проверяй на простых ордерах типо атаки\передвижения\использования способностей (скилов).
Ну и наконец загляни в старые скрпиты на подобных героев - есть стак фуриона ентами.
 

Dovakin

Subscriber: DotA 2
16
1
if arcward.clone == nil then
for i= 1, NPCs.Count() do
local entity = NPCs.Get(i)
if entity and NPC.IsEntityInRange(myHero, entity, 200) then
local name = NPC.GetUnitName(entity)
if name == "npc_dota_hero_arc_warden" and myHero~= entity then
arcward.clone = entity
end
end
end
return
end
Определение клона
-------------------------------------
arcward.cloneAttackingTarget = Input.GetNearestHeroToCursor(Entity.GetTeamNum(myHero), Enum.TeamType.TEAM_ENEMY)
Определение врага
-------------------------------------
допустим с диффузами раньше (как не работает)
difus = NPC.GetItem(arcward.clone, "item_diffusal_blade", true)
Ability.CastTarget(difus, arcward.cloneAttackingTarget)
-------------------------------------
Теперь сделал
difus = NPC.GetItem(arcward.clone, "item_diffusal_blade", true)
Player.PrepareUnitOrders(Players.GetLocal(), Enum.UnitOrder.DOTA_UNIT_ORDER_ATTACK_TARGET, arcward.cloneAttackingTarget, Vector(), difus, Enum.PlayerOrderIssuer.DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY, arcward.clone, queue, true)

IqBs88SKaVE.jpg

вот такое выделение получается
 
107
65
Код:
if arcward.clone == nil then
        for i= 1, NPCs.Count() do
            local entity = NPCs.Get(i)
            if entity and NPC.IsEntityInRange(myHero, entity, 200) then
                local name = NPC.GetUnitName(entity)
                if name == "npc_dota_hero_arc_warden" and myHero~= entity  then
                    arcward.clone = entity
                end
            end
        end
        return
    end
Определение клона
-------------------------------------
arcward.cloneAttackingTarget = Input.GetNearestHeroToCursor(Entity.GetTeamNum(myHero), Enum.TeamType.TEAM_ENEMY)
Определение врага
-------------------------------------
допустим с диффузами раньше (как не работает)
difus = NPC.GetItem(arcward.clone, "item_diffusal_blade", true)
Ability.CastTarget(difus, arcward.cloneAttackingTarget)
-------------------------------------
Теперь сделал
difus = NPC.GetItem(arcward.clone, "item_diffusal_blade", true)
Player.PrepareUnitOrders(Players.GetLocal(), Enum.UnitOrder.DOTA_UNIT_ORDER_ATTACK_TARGET, arcward.cloneAttackingTarget, Vector(), difus, Enum.PlayerOrderIssuer.DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY, arcward.clone, queue, true)

IqBs88SKaVE.jpg

вот такое выделение получается
тег код используй пожалуйста, второе при чем тут DOTA_UNIT_ORDER_ATTACK_TARGET к difus, атака цели это атака цели, если хочешь что-то кастовать то это
DOTA_UNIT_ORDER_CAST_TARGET иди ка ты апи почитай и посмотри скрипты подобные с PrepareUnitOrders
А еще одно, если хочешь получать юнитов в радиусе - есть функция, цикл по всем нпц лишний.
 
75
6
Вчера только хотел создать темку про мипаря) Возможно ли сделать скриптягу , с функциями как: пуф всех , кроме настоящего ; пуф всех ; артефакты + сетки + пуф ; авто фарм нейтралов ( как на наге было в прошлйо версии) Ну и тд )
Будет топчик ^_^