找回密码
 点一下
查看: 1726|回复: 24

救命,感应塔小地图的白圈范围怎么改

[复制链接]
发表于 2017-7-18 15:09:40 | 显示全部楼层 |阅读模式
RT
做了个升级更改感应塔的范围
但是小地图上白圈的范围并没有变动
    <CUpgrade id="CUpgrTerranSensorTowerRange">
        <Icon value="Assets\Textures\btn-status-radar.dds"/>
        <EffectArray Reference="Behavior,SensorTowerRadar,Modification.Radar" Value="30"/>
        <EffectArray Reference="Actor,SensorTowerRadar,Range" Value="30.000000"/>
        <EditorCategories value="Race:Terran,UpgradeType:Talents"/>
    </CUpgrade>


找吐了也没找到在哪里更改小地图显示的白圈范围,有dalao指教一下吗?
发表于 2017-7-18 16:41:49 | 显示全部楼层
创建一个别的范围演算体替代原来的。这个升级范围好像有点问题我都没发现暴雪用过这个。

点评

非常感谢,确实是范围演算体在用升级修改范围的时候,只能影响大地图,无法改变小地图的白圈大小。 我现在想在升级应用后用新的范围演算体代替原来的,但是升级完毕后只有新建造的感应塔才会生成新的演算体,旧的感  详情 回复 发表于 2017-7-20 15:07
回复

使用道具 举报

发表于 2017-7-18 22:05:16 | 显示全部楼层
小白圈是个演算体,在“范围”类别,你翻一下,不难找。

点评

只找到了这个Sensor Tower Radar的演算体啊,这个貌似是更改大地图白圈的,我的这个升级里面也有。但是更改了后小地图的白圈并不会有变化  详情 回复 发表于 2017-7-19 00:33
回复

使用道具 举报

 楼主| 发表于 2017-7-19 00:32:58 | 显示全部楼层
yxxiaobin 发表于 2017-7-18 22:05
小白圈是个演算体,在“范围”类别,你翻一下,不难找。

只找到了这个Sensor Tower Radar的演算体啊,这个貌似是更改大地图白圈的,我的这个升级里面也有。但是更改了后小地图的白圈并不会有变化
回复

使用道具 举报

 楼主| 发表于 2017-7-19 00:33:12 | 显示全部楼层
yxxiaobin 发表于 2017-7-18 22:05
小白圈是个演算体,在“范围”类别,你翻一下,不难找。

只找到了这个Sensor Tower Radar的演算体啊,这个貌似是更改大地图白圈的,我的这个升级里面也有。但是更改了后小地图的白圈并不会有变化
回复

使用道具 举报

发表于 2017-7-19 12:52:39 | 显示全部楼层
演算体Sensor Tower Radar
范围30那个,你想在小地图里改成多大就换成多大数字
回复

使用道具 举报

发表于 2017-7-19 18:34:46 | 显示全部楼层
如果你是指小地图上的范围显示,这个确实无法被升级影响。可以考虑使用两个不同的范围演算体,升级后摧毁原有的,显示新的。另外,视情况,也可以去掉“微缩地图”选项,这样就不会在小地图上显示范围了。

点评

十分感谢,原来是这样的。但是我是新手,对于演算体里面各种参数一头雾水,暂时我按你说的方式这么做了,但是新的60范围的演算体只有在研究升级后,再建造感应塔才会在小地图正确显示。而之前已建造的感应塔小地图白  详情 回复 发表于 2017-7-20 15:01
回复

使用道具 举报

 楼主| 发表于 2017-7-20 15:01:03 | 显示全部楼层
yxxiaobin 发表于 2017-7-19 18:34
如果你是指小地图上的范围显示,这个确实无法被升级影响。可以考虑使用两个不同的范围演算体,升级后摧毁原 ...

十分感谢,原来是这样的。但是我是新手,对于演算体里面各种参数一头雾水,暂时我按你说的方式这么做了,但是新的60范围的演算体只有在研究升级后,再建造感应塔才会在小地图正确显示。而之前已建造的感应塔小地图白圈并不会有影响,请问是我哪里写错了吗?
    <CActorRange id="SensorTowerRadar">
        <On index="1" Terms="UnitBirth.SensorTower.EditorPlaced; !ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On index="2" Terms="Behavior.SensorTowerRadar.On; !ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On Terms="UpgradeFinalized.CUpgrTerranSensorTowerRange" Send="Destroy"/>
        <On Terms="Upgrade.CUpgrTerranSensorTowerRange.Add" Send="Destroy"/>
    </CActorRange>
    <CActorRange id="SensorTowerRadar60" parent="SensorTowerRadar">
        <On index="1" Terms="UnitBirth.SensorTower.EditorPlaced; ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On index="2" Terms="Behavior.SensorTowerRadar.On; ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On index="4" Terms="UpgradeFinalized.CUpgrTerranSensorTowerRange" Send="Create"/>
        <On index="5" Terms="Upgrade.CUpgrTerranSensorTowerRange.Add" Send="Create"/>
        <Range value="60.000000"/>
    </CActorRange>

点评

目前来说,升级事件只会发送给单位的主演算体,附加的其他演算体需要在主演算体发送信号。 比如你在主演算体定义一个消息:事件 某升级完成,消息 给某范围演算体发送信号ABC。 在范围演算体定义一个消息:事件 信  详情 回复 发表于 2017-7-21 12:42
回复

使用道具 举报

 楼主| 发表于 2017-7-20 15:07:32 | 显示全部楼层
priceles 发表于 2017-7-18 16:41
创建一个别的范围演算体替代原来的。这个升级范围好像有点问题我都没发现暴雪用过这个。

非常感谢,确实是范围演算体在用升级修改范围的时候,只能影响大地图,无法改变小地图的白圈大小。
我现在想在升级应用后用新的范围演算体代替原来的,但是升级完毕后只有新建造的感应塔才会生成新的演算体,旧的感应塔并不会改变,XML贴在下面了,我是个新手,麻烦帮忙看看哪里除了问题,万分感谢!
    <CActorRange id="SensorTowerRadar">
        <On index="1" Terms="UnitBirth.SensorTower.EditorPlaced; !ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On index="2" Terms="Behavior.SensorTowerRadar.On; !ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On Terms="UpgradeFinalized.CUpgrTerranSensorTowerRange" Send="Destroy"/>
        <On Terms="Upgrade.CUpgrTerranSensorTowerRange.Add" Send="Destroy"/>
    </CActorRange>
    <CActorRange id="SensorTowerRadar60" parent="SensorTowerRadar">
        <On index="1" Terms="UnitBirth.SensorTower.EditorPlaced; ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On index="2" Terms="Behavior.SensorTowerRadar.On; ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On index="4" Terms="UpgradeFinalized.CUpgrTerranSensorTowerRange" Send="Create"/>
        <On index="5" Terms="Upgrade.CUpgrTerranSensorTowerRange.Add" Send="Create"/>
        <Range value="60.000000"/>
    </CActorRange>

点评

这个升级完成事件创建的主体不明,你可以试试用信号事件。旧的演算体添加个发送信号事件。  详情 回复 发表于 2017-7-20 23:36
回复

使用道具 举报

发表于 2017-7-20 23:36:32 | 显示全部楼层
天翼玄雨 发表于 2017-7-20 15:07
非常感谢,确实是范围演算体在用升级修改范围的时候,只能影响大地图,无法改变小地图的白圈大小。
我现 ...

这个升级完成事件创建的主体不明,你可以试试用信号事件。旧的演算体添加个发送信号事件。
回复

使用道具 举报

发表于 2017-7-21 12:42:21 | 显示全部楼层
本帖最后由 yxxiaobin 于 2017-7-21 12:44 编辑
天翼玄雨 发表于 2017-7-20 15:01
十分感谢,原来是这样的。但是我是新手,对于演算体里面各种参数一头雾水,暂时我按你说的方式这么做了, ...

目前来说,升级事件只会发送给单位的主演算体,附加的其他演算体需要在主演算体发送信号。
比如你在主演算体定义一个消息:事件 某升级完成,消息 给某范围演算体发送信号ABC。
在范围演算体定义一个消息:事件 信号abc,消息 摧毁自己。或者直接在主演算体发送摧毁消息,目标是某某范围演算体。
这样旧演算体就能自毁了。同理,新演算体也可以在主演算体定义一个消息,某某升级完成,创建某某范围演算体。

点评

非常感谢,你说的我看明白了,但是我这么做了还是无法在升级后摧毁旧的创建新的,麻烦看看是哪里有问题吗?两种我都试了。。  详情 回复 发表于 2017-7-22 01:07
回复

使用道具 举报

 楼主| 发表于 2017-7-22 01:07:20 | 显示全部楼层
yxxiaobin 发表于 2017-7-21 12:42
目前来说,升级事件只会发送给单位的主演算体,附加的其他演算体需要在主演算体发送信号。
比如你在主演 ...

非常感谢,你说的我看明白了,但是我这么做了还是无法在升级后摧毁旧的创建新的,麻烦看看是哪里有问题吗?两种我都试了。。
    <CActorUnit id="SensorTower">
        <On Terms="UpgradeFinalized.CUpgrTerranSensorTowerRange" Target="SensorTowerRadar" Send="Signal UpgrTSTR1"/>
        <On Terms="UpgradeFinalized.CUpgrTerranSensorTowerRange" Target="SensorTowerRadar60" Send="Signal UpgrTSTR2"/>
        <On Terms="Upgrade.CUpgrTerranSensorTowerRange.Add" Target="SensorTowerRadar" Send="Signal UpgrTSTR1"/>
        <On Terms="Upgrade.CUpgrTerranSensorTowerRange.Add" Target="SensorTowerRadar" Send="Destroy"/>
        <On Terms="UpgradeFinalized.CUpgrTerranSensorTowerRange" Target="SensorTowerRadar" Send="Destroy"/>
    </CActorUnit>
    <CActorRange id="SensorTowerRadar">
        <On index="1" Terms="UnitBirth.SensorTower.EditorPlaced; !ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On index="2" Terms="Behavior.SensorTowerRadar.On; !ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On Terms="Signal.SensorTower.UpgrTSTR1" Send="Destroy"/>
    </CActorRange>
    <CActorRange id="SensorTowerRadar60" parent="SensorTowerRadar">
        <On index="1" Terms="UnitBirth.SensorTower.EditorPlaced; ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On index="2" Terms="Behavior.SensorTowerRadar.On; ValidatePlayer CValiTerranSensorTowerRangeEnabled" Send="Create"/>
        <On index="4" Terms="Signal.SensorTower.UpgrTSTR2" Send="Create"/>
        <Range value="60.000000"/>
    </CActorRange>

点评

给你个演示吧。  详情 回复 发表于 2017-7-22 15:57
我刚才看了一下感应塔的雷达,你可以复制这个行为和演算体,然后用所需条件限制一下就可以了。  详情 回复 发表于 2017-7-22 13:16
回复

使用道具 举报

发表于 2017-7-22 13:16:57 | 显示全部楼层
天翼玄雨 发表于 2017-7-22 01:07
非常感谢,你说的我看明白了,但是我这么做了还是无法在升级后摧毁旧的创建新的,麻烦看看是哪里有问题吗 ...

我刚才看了一下感应塔的雷达,你可以复制这个行为和演算体,然后用所需条件限制一下就可以了。
回复

使用道具 举报

发表于 2017-7-22 15:57:31 | 显示全部楼层
天翼玄雨 发表于 2017-7-22 01:07
非常感谢,你说的我看明白了,但是我这么做了还是无法在升级后摧毁旧的创建新的,麻烦看看是哪里有问题吗 ...

给你个演示吧。
演示范围更新.SC2Map (18.85 KB, 下载次数: 11)

点评

太感谢了,我研究了好久终于发现问题所在并解决了,是我的升级里面没有把 这个受影响的单位数组中加入感应塔,导致升级能正常使用,但是演算体里面就无法捕捉到升级事件了 请问这个参数还有哪些作用。。  详情 回复 发表于 2017-7-23 11:37
回复

使用道具 举报

 楼主| 发表于 2017-7-23 11:37:36 | 显示全部楼层

太感谢了,我研究了好久终于发现问题所在并解决了,是我的升级里面没有把        
<AffectedUnitArray value="SensorTower"/>
这个受影响的单位数组中加入感应塔,导致升级能正常使用,但是演算体里面就无法捕捉到升级事件了
请问这个参数还有哪些作用。。?

点评

就是通知单位的主演算体,有这个升级事件,没有别的作用。不如不需要这一事件,可以不填写。  发表于 2017-7-23 12:29
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-22 16:14 , Processed in 0.140757 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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