搜索
热搜: 活动 交友 discuz
查看: 4298|回复: 3

[讨论] 关于关闭/移除防御塔建筑的高塔保护buff

[复制链接]

4

主题

34

帖子

420

积分

Lv:3 空明术士

UID
10871
金币
540
精华
0
节操
0
发表于 2016-9-27 00:59:52 | 显示全部楼层 |阅读模式

前方高能预警!非战斗人员请尽快登录!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
本帖最后由 herobrine 于 2016-10-23 22:26 编辑

是甘的,在一次dota2更新中,防御塔建筑除了有真视buff之外,还多了个"高塔保护"buff

高塔保护buff

高塔保护buff

我并不能找到类似于
GetTowerBackdoorProtectionEnabled 或 SetTower Backdoor Protection Enabled 的api关闭/移除 它

只好透過 1.png
[mw_shl_code=applescript,true]--[[ time for 27/9/2016
這個function作用:
1.造一個表,讓我記下我預先在地圖中放置的实體類為tower的名字
2.然後撿查它們身上是否有那個"加附近友方英雄護甲"的buff
3.如果有就移除它

ps:如果名字設得好,不用像我一樣
ex:
http://www.dota2rpg.com/forum.php?mod=viewthread&tid=2212

]]
function FindTowerAndDelItBuffNow()
        --建立一個叫TowerNameTable的表
        local TowerNameTable =
        {
        "goodgayhome1",
        "goodgayhome2",
        "tower_good_top_1",
        "tower_good_top_2",
        "tower_good_top_3",
        "tower_good_mid_1",
        "tower_good_mid_2",
        "tower_good_mid_3",
        "tower_good_bot_1",
        "tower_good_bot_2",
        "tower_good_bot_3",
        "badgayhome1",
        "badgayhome2",
        "tower_bad_top_1",
        "tower_bad_top_2",
        "tower_bad_top_3",
        "tower_bad_mid_1",
        "tower_bad_mid_2",
        "tower_bad_mid_3",
        "tower_bad_bot_1",
        "tower_bad_bot_2",
        "tower_bad_bot_3"
        }
        --由1循环到22
        for i=1,22 do
        --[[
        获取TowerNameTable这个实体,
        當i=1時,TowerNameTable[1]="goodgayhome1"
        當i=2時,TowerNameTable[2]="goodgayhome2"
        ...
        當i=22時,TowerNameTable[22]="tower_bad_bot_3"
        ]]
        local tower = Entities:FindByName(nil,TowerNameTable)
        --[[
        --在控制台 打印出 單位的名字 is find
        print(tower:GetUnitName() .." is find")
        --在控制台 打印出 單位是否有該modifier 有=ture 沒有=false
        print(tower:HasModifier("modifier_tower_truesight_aura"))
        --在控制台 打印出 單位擁有Modifier的數量
        print(tower:GetModifierCount())
        --在控制台 打印出 單位擁有第1個的Modifier名字
        print(tower:GetModifierNameByIndex(1))
        --在控制台 打印出 單位擁有第2個的Modifier名字
        print(tower:GetModifierNameByIndex(2))
        --在控制台 打印出 單位擁有第3個的Modifier名字
        print(tower:GetModifierNameByIndex(3))
        --移除 單位擁有名字是"modifier_tower_truesight_aura"的modifier
        tower:RemoveModifierByName("modifier_tower_truesight_aura")
        --移除 單位擁有名字是"modifier_tower_aura"的modifier
        tower:RemoveModifierByName("modifier_tower_aura")
        ]]
        
        if tower:HasModifier("modifier_tower_aura") then
            tower:RemoveModifierByName("modifier_tower_aura")
            --print(tower:GetUnitName() .." is find the modifier_tower_aura buff del it now")        
        else
            --print(tower:GetUnitName() .." isn't find the modifier_tower_aura buff")
        end

    end

end[/mw_shl_code]的方式移除,请问有没有其他更好的方法?

另外,我在print(tower:GetModifierCount())中得出单位身上有3个Modifier,
但我在print(tower:GetModifierNameByIndex(3))中,并不能得出名字,原因是什么呢?
QQ截图20160926001717.png






回复

使用道具 举报

55

主题

356

帖子

3939

积分

大摸导师

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

UID
12
金币
3939
精华
4
节操
-233

黑科技玩的6扛把子我是鸽手隐修议员教程大师创世者开拓者幸运儿!

发表于 2016-10-19 10:38:59 | 显示全部楼层
我想,这个应该是因为下标从0开始的缘故……
回复 支持 反对

使用道具 举报

4

主题

34

帖子

420

积分

Lv:3 空明术士

UID
10871
金币
540
精华
0
节操
0
 楼主| 发表于 2016-10-19 19:31:51 | 显示全部楼层
Xavier 发表于 2016-10-19 10:38
我想,这个应该是因为下标从0开始的缘故……

好吧,我忽略了0
QQ截图20161019192936.png

回复 支持 反对

使用道具 举报

2

主题

20

帖子

1688

积分

Lv:5 紫苑魔导士

UID
12360
金币
663
精华
0
节操
0
发表于 2017-11-12 10:19:11 | 显示全部楼层
这里如果只是需要移除无敌效果的话,Tower:RemoveModifierByName("modifier_invulnerable")就可以了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|Archiver|手机版|小黑屋|AMHC!dota2rpg~ ( 闽ICP备14009209 )

GMT+8, 2020-2-25 21:09 , Processed in 0.074136 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc. Theme.Yeei

快速回复 返回顶部 返回列表