找回密码
 点一下
查看: 4668|回复: 19

尝试分析技能XML数据定义文件

[复制链接]
发表于 2010-2-18 20:28:43 | 显示全部楼层 |阅读模式
临时性分析,需要等待弄到号以后验证。

以第一个技能TerranAddOns为例。


[codes=xml]
    <CAbilBuild default="1" id="TerranAddOns">
        <EditorCategories value="Race:Terran,AbilityorEffectType:Units"/>
        <Alert value="AddOnComplete"/>
        <Type value="AddOn"/>
        <FlagArray index="InstantPlacement" value="1"/>
        <FlagArray index="PeonDisableAbils" value="1"/>
        <FlagArray index="ShowProgress" value="1"/>
        <InfoArray index="Build1" Unit="TechLab" Time="30">
            <Resource index="Minerals" value="50"/>
            <Resource index="Vespene" value="50"/>
            <Button DefaultButtonFace="TechLabBarracks" State="Suppressed"/>
        </InfoArray>
        <InfoArray index="Build2" Unit="NuclearReactor" Time="40">
            <Resource index="Minerals" value="50"/>
            <Resource index="Vespene" value="50"/>
            <Button DefaultButtonFace="NuclearReactor" State="Restricted"/>
        </InfoArray>
    </CAbilBuild>
[/codes]

<CAbilBuild>应该表示了它的技能类型为建造类技能。
它的属性default为1,表示是建造类技能中的默认技能?
id属性为"TerranAddOns",应该就相当于技能ID,从名字来看,是建造Terran附属建筑的技能。
  
  
<EditorCategories>应是它在数据编辑器中树视图所处的位置。
其中有几个小项Race和AbilityorEffectType等等。这里Race是Terran,AbilityorEffectType是Units。表示改技能被分类到Terran的单位类技能/效果文件夹里。

因此编辑器中的技能分类应该是这样的树视图:

-Terran
   +单位
   +建筑
   +变形和潜地
+Zerg
   +单位
   +建筑
   +变形和潜地
+Protoss
   +单位
   +建筑
   +变形和潜地


<Alert>标签估计是说发出警告的时机。这里是值是AddOnComplete,应是指在附属建筑完成后提示玩家。


<Type>应该是技能类型,这里的类型为附属建筑。


<FlagArray>是一组标签,应该是用来定义这个技能的特性的(比如无法打断,显示进度,禁用其余技能,等等)。
在这个技能里加入了3组特性,InstantPlacement、PeonDisableAbils、ShowProgress。
第一个和第三个好理解,InstantPlacement表示立即放下附属建筑,ShowProgress表示显示进度,在这个技能里自然是建造进度,估计也可以用于制作有进度条的技能哈。第二个特性PeonDisableAbils就不清楚了,暂且望文生义地理解为使用这个技能的时候禁用其他建造技能?(需要测试才知道了)

<InfoArray>也是一组标签,这里定义的应是按下建造附属技能按钮后显示的可建造的附属建筑。
这里显示该技能可以建造两种建筑:
Build1是TechLab,科技实验室
Build2是NuclearReactor,核反应堆
每个按钮都分别拥有自己的属性标签,可以定义建造他们花费的资源和技能图标
比如科技实验室需要50晶体,50气体,核反应堆也是50晶体50气体。要注意的是显然这里还可以增加自定义资源的花费要求。
<Button>标签那应该定义的按钮的默认图标和状态。比如科技实验室用的默认图标为TechLabBarracks,核反应堆默认图标为NuclearReactor
比较奇怪的是该标签的State属性,可以看到有两种值,Suppressed和Restricted,好像都是受限的意思,暂时不明白意义。需要测试。


暂且是第一个技能,然后我找找其他类型技能。
发表于 2010-2-18 20:31:37 | 显示全部楼层
无条件支持
回复

使用道具 举报

发表于 2010-2-18 20:37:14 | 显示全部楼层
有条件支持
回复

使用道具 举报

发表于 2010-2-18 20:42:29 | 显示全部楼层
支持??有?无?不支持?
回复

使用道具 举报

发表于 2010-2-18 20:42:47 | 显示全部楼层
默默支持
回复

使用道具 举报

发表于 2010-2-18 21:32:47 | 显示全部楼层
sc2居然是用xml来描述技能,这个很好
回复

使用道具 举报

发表于 2010-2-18 21:59:46 | 显示全部楼层
这个格式可以用来做弹幕吧…………………………
回复

使用道具 举报

发表于 2010-2-18 22:01:44 | 显示全部楼层
我露骨地支持
回复

使用道具 举报

发表于 2010-2-18 22:27:47 | 显示全部楼层
膜拜!
回复

使用道具 举报

发表于 2010-2-18 22:43:39 | 显示全部楼层
奇怪……找不到单位伤害在哪个文件里。。。
回复

使用道具 举报

发表于 2010-2-19 07:28:11 | 显示全部楼层
主要看了一下AbilData.xml里的Cost部分。

Cost中的能量(相当于魔法了吧……)和生命的声明:
<Cost>
  <Vital index="Energy" value="100" />
  </Cost>

<Vital index="Life" value="20" />
value应该就是具体数值,很简单。

资源的声明:
<Cost Category="Technology">
  <Resource index="Minerals" value="150" />
  <Resource index="Vespene" value="100" />
  </Cost>

<Cost Category="Army">
  <Resource index="Minerals" value="25" />
  <Resource index="Vespene" value="25" />
  </Cost>

这个和生命、能量的声明是基本一样的。这些资源的Cost貌似都需要分类
<Cost Category="Army">士兵
<Cost Category="Technology">科技

不过找了个比较奇怪的特例。
<CAbilEffectInstant id="SalvageBunkerRefund" parent="Refund">
- <Cost>
  <Resource index="Minerals" value="-100" />
  </Cost>
  </CAbilEffectInstant>
↑负数哦,而且也没声明分类。在往上找了一下它的parent父技能,但也完全看不明白啊……

资源和其他两个部分在Cost里面没有找到交错的地方。
Cost要不只有资源,要不就是生命、能量和CoolDown。

不过在RavenBuild里找到了CoolDown和资源在一起的东西
<InfoArray index="Build4" Category="Army" Unit="SensorTower">
  <Resource index="Minerals" value="125" />
  <Resource index="Vespene" value="100" />
  <Cooldown Link="Raven Build Link" Location="Unit" TimeUse="30" />
  <Button DefaultButtonFace="SensorTower" />
  </InfoArray>

顺便提醒一下,从头目的推论来看,貌似包括life和energy这样的单位属性貌似也是可以自定义的。

冷却时间的部分。
<Cooldown Link="SupplyDrop" />
<Cooldown Link="Blink" TimeUse="10" />
<Cooldown Link="Charge" Location="Unit" TimeUse="10" />
<Cooldown TimeUse="2.5" />

<Cost>
  <Vital index="Life" value="20" />
  <Charge Link="Abil/StimPack" />
  <Cooldown Link="Abil/StimPack" />
  </Cost>
Link一般写的都是那个技能自己的Id,不过应该就是写谁谁就冷却了吧……, TimerUse应该就是具体的时间了。
但是Location="Unit"看不明白……也许是让单位所有的此类技能全部冷却,而如果不写的话,就是单位有N个此类技能,但是冷却时间完全不影响?←不可能的吧……

还有最后一个Charge……目前看不太明白是什么意思。声明的和CoolDown很相似。
回复

使用道具 举报

发表于 2010-2-19 08:10:57 | 显示全部楼层
表示精神支持
回复

使用道具 举报

 楼主| 发表于 2010-2-19 11:20:39 | 显示全部楼层
Refund是拆掉建筑回收资源,所以花掉的钱自然是负数了.
回复

使用道具 举报

发表于 2010-2-19 11:26:08 | 显示全部楼层
引用第12楼Renee于2010-02-19 11:20发表的  :
Refund是拆掉建筑回收资源,所以花掉的钱自然是负数了.
谢谢头目的解答~
回复

使用道具 举报

 楼主| 发表于 2010-2-19 12:41:48 | 显示全部楼层
引用第9楼lightitan于2010-02-18 22:43发表的  :
奇怪……找不到单位伤害在哪个文件里。。。

伤害在weapon里。
回复

使用道具 举报

发表于 2010-2-19 17:30:06 | 显示全部楼层
精神上支持.
回复

使用道具 举报

发表于 2010-2-19 18:33:08 | 显示全部楼层
引用第14楼Renee于2010-02-19 12:41发表的  :


伤害在weapon里。
。。。weapondata.xml?。。第一个看的就是这个……
所以才奇怪……
后来找到在EffectData.xml里面。。
回复

使用道具 举报

发表于 2010-2-19 18:49:55 | 显示全部楼层
  [s:166]
回复

使用道具 举报

发表于 2010-2-19 19:41:05 | 显示全部楼层
和War3完全不一樣的表達方式。
我喜歡XML超過SLK。
回复

使用道具 举报

发表于 2010-2-19 23:20:06 | 显示全部楼层
XML大爱啊
SC2的方向很明确, 完全是面向脚本了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 02:28 , Processed in 0.084348 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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