dota2ai吧 关注:2,082贴子:31,191
  • 3回复贴,共1

有谁知道法球攻击开关怎么“一直保持”激活么?

只看楼主收藏回复

比如黑鸟,我想让他的法球攻击“一直保持”激活状态,我试了以下几种方法:
1. 直接使用ToggleAutoCast()---------他在“激活”与“未激活”间无限反复切换;
2. 加了一个判断not IsActivated()后,再执行ToggleAutoCast()---------无效!
3. 换了一个判断not GetToggleState()后,再执行ToggleAutoCast()-------效果同1;
4. 改用npcBot:Action_UseAbility( abilityAO )--------效果同1。
ps:
1. abilityAO就是法球攻击技能;
2. 我并不想用npcBot:Action_UseAbilityOnEntity( abilityAO, npcTarget )这个方法去让他主动使用,因为由于desire值的浮动性会出现各种问题,哪怕desire = absolute;
3. 经观察测试默认的小黑机器人可以让冰箭法球攻击保持常开状态,说明“可用且正确的”API应该没问题。
那么是我的API有问题,还是其他原因,哪位大神能给个建议?


IP属地:广东1楼2016-12-31 12:06回复
    此问题已经解决:
    mode_attack_obsidian_destroyer.lua脚本中“只用”重写OnStart()函数即可,没重写的默认继续调原C++函数:
    function OnStart()
    local npcBot = GetBot();
    abilityAO = npcBot:GetAbilityByName( "obsidian_destroyer_arcane_orb" );
    if ( npcBot:GetMaxMana() > 1000 and not abilityAO:GetToggleState() ) then
    abilityAO:ToggleAutoCast();
    end
    end


    IP属地:广东3楼2017-01-02 14:19
    收起回复
      虽然不是特别懂,还是支持一下!


      IP属地:内蒙古4楼2017-01-02 16:36
      回复