找回密码
 点一下
查看: 2162|回复: 5

求助如何把训练单位的ability command转化为所训练单位的单位类型

[复制链接]
发表于 2011-7-18 10:09:33 | 显示全部楼层 |阅读模式
就是比如兵营的BarracksTrain技能的某个command是生产枪兵,
这个abilcmd怎么才能得到枪兵的单位类型"Marine" ?
 楼主| 发表于 2011-7-18 10:20:07 | 显示全部楼层
是不是这样。。。。

CatalogFieldValueGet (
c_gameCatalogAbil,
AbilityCommandGetAbility(abilCmd),
"InfoArray[Train"+IntToString(AbilityCommandGetCommand(abilCmd) + 1)+"].Unit",
0)
回复

使用道具 举报

 楼主| 发表于 2011-7-18 11:19:51 | 显示全部楼层
诡异了
CatalogFieldValueCount(c_gameCatalogAbil, "BarracksTrain", "InfoArray", c_playerAny) 会得到30

如果用 CatalogFieldValueGet (
        c_gameCatalogAbil,
        "BarracksTrain",
        "InfoArray[Train1].Unit",
        c_playerAny
    )

会出错误

更新 数组index用数字也不行
00:00:02.69 Trigger Error in 'AdvanceQueueAutoBalance': Catalog field 'InfoArray[0].Unit' could not be read (Core: a required object could not be found)

但是输出count却表示InfoArray确实有30个——这说明entry是没错的,xml里看到确实有
-<CAbilTrain id="BarracksTrain">
&#160;&#160; <EditorCategories value="Race:Terran,AbilityorEffectType:Structures"/>
&#160;&#160; -<InfoArray index="Train1" Time="25">
   &#160;&#160; <Button State="Restricted" DefaultButtonFace="Marine"/>
&#160;&#160;&#160;  &#160;<Unit value="Marine"/>
   </InfoArray>
...
回复

使用道具 举报

发表于 2011-7-18 12:17:33 | 显示全部楼层
为什么要用命令来捕捉?

明明有个训练单位的事件。
回复

使用道具 举报

 楼主| 发表于 2011-7-18 20:02:16 | 显示全部楼层
引用第3楼麦德三世于2011-07-18 12:17发表的  :
为什么要用命令来捕捉?

明明有个训练单位的事件。
现在已经不是那个问题了。。是catalog取不到...
我的目的是:
给定任一个单位,求该单位可训练的单位类型。
回复

使用道具 举报

 楼主| 发表于 2011-7-18 21:08:21 | 显示全部楼层
原来我看的是老的abildata.xml。新版里Unit已经改成了array...
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 00:05 , Processed in 0.038722 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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