找回密码
 点一下
查看: 11398|回复: 8

XML数据文件分析八 ***物品栏系统解析*** By寒心

[复制链接]
发表于 2010-4-12 17:35:14 | 显示全部楼层 |阅读模式
原帖:http://www.sc2mod.net/read.php?tid=37

三世那边已经全面把物品栏系统全面破解了,我们也公开一下我们的分析成果吧。
中間還有不完善的地方,歡迎指導~

首先,明确几个概念:
1 物品栏实际是个技能,有了此技能的单位,才可以持有物品。
2 物品内在属性的定义在ItemData数据文件中定义,但是他的实体却在Unit中定义的。也就是说,Unit可以是某个Item的实例。之后分析时候详细说。

接下來,我們依照以下的流程,為大家展示一下物品欄是如何產生以及應用的。

目次
一 定義物品類別:CItemClass
二 定義物品箱:CItemContainer
三 定義物品:CItem
四 定義物品單位:CUnit:ITEM
五 定義物品庫存技能:CAbilInventory

六 效果展示
七 物品相关XML构造





(一)定義物品類別
[codes=xml]
<CItemClass id="TestItemClass">
   <Name value="TestItemClassName"/>
</CItemClass>
[/codes]



(二)定義物品箱

以下定义的是1行4列物品箱。0偏移,可自己定义N*N的
[codes=xml]
<CItemContainer id="TestContainer1">
   <Model value="Zealot"/>
   <ModelHeight value="500"/>
   <ModelWidth value="500"/>
   <Slots>
      <Equip value="1"/>
      <Row value="8"/>
      <Column value="0"/>
   </Slots>
   <Slots>
      <Equip value="1"/>
      <Row value="8"/>
      <Column value="1"/>
   </Slots>
   <Slots>
      <Equip value="1"/>
      <Row value="8"/>
      <Column value="2"/>
   </Slots>
   <Slots>
      <Equip value="1"/>
      <Row value="8"/>
      <Column value="3"/>
   </Slots>
</CItemContainer>[/codes]



(三)定義物品

[codes=xml]
<CItem id="TestItem">
   <Face value="SCV"/>
   <Flags index="CanDrop" value="1"/>
   <Class value="TestItemClass"/>
   <Container value="TestContainer"/>
</CItem>
[/codes]



(四)定義物品單位

这里我们用Probe为例。
[codes=xml]
<CUnit id="Probe" parent="ITEM">
   <Item value="TestItem"/>
</CUnit>[/codes]



(五)定義物品庫存技能

自己把技能追加到Unit上哦。
[codes=xml]
  <CAbilInventory id="TestItemAbil">
    <CmdButtonArray index="Drop" DefaultButtonFace="Move">
            <Flags index="ToSelection" value="1"/>
        </CmdButtonArray>
        <CmdButtonArray index="Move" DefaultButtonFace="MovePatrol">
            <Flags index="ToSelection" value="1"/>
        </CmdButtonArray>
        <CmdButtonArray index="Take" DefaultButtonFace="MoveHoldPosition">
            <Flags index="ToSelection" value="1"/>
        </CmdButtonArray>
        <CmdButtonArray index="ItemInstant" DefaultButtonFace="AcquireMove">
            <Flags index="ToSelection" value="1"/>
        </CmdButtonArray>
        <CmdButtonArray index="ItemTarget" DefaultButtonFace="Turn">
            <Flags index="ToSelection" value="1"/>
        </CmdButtonArray>
        
    <Range value="2"/>
    <MaxDropRange value="5"/>
   
    <InfoArray>
      <EmptyFace value="Move"/>
      <Classes value="TestItemClass"/>
      <Alignment value="Left"/>
      <Container value="TestContainer1"/>
      <Item value="TestItem"/>
      <Hotkey value="Move"/>
    </InfoArray>
</CAbilInventory>

[/codes]




(六)效果展示

物品栏系统.jpg



(七)物品相关XML构造

物品栏系统 结构.jpg   



之后在为大家讲解物品的Effect定义,以及掉落相关设置的知识。

评分

参与人数 1威望 +3 收起 理由
Renee + 3 很不错

查看全部评分

发表于 2010-4-12 17:44:49 | 显示全部楼层
实际上我原本打算自己写的~~不过既然你写了那也很好的说~~

话说你一直用“我们”这个词,难道你其实是多人一号?还是你们一圈人研究然后你负责出面发表?

xml代码请用
[codes=xml]
[ /codes]
回复

使用道具 举报

 楼主| 发表于 2010-4-12 17:48:11 | 显示全部楼层
大家互相协作,可以腾出时间继续调查其他的东西。
现在还有复活系统,物品使用系统,键盘方向响应等~都没完全弄清楚。
晚上我把我们整理的复活系统的结构图发上来一起研究一下。
回复

使用道具 举报

发表于 2010-4-12 18:05:28 | 显示全部楼层
支持楼主~~~
回复

使用道具 举报

发表于 2010-4-12 18:07:24 | 显示全部楼层
感谢~
感谢~
回复

使用道具 举报

 楼主| 发表于 2010-4-12 18:12:22 | 显示全部楼层
引用第1楼Renee于2010-04-12 17:44发表的 :

话说你一直用“我们”这个词,难道你其实是多人一号?还是你们一圈人研究然后你负责出面发表?

xml代码请用
.......

嗯 我们几个人一起的,可以去我们的论坛上看看。
我只负责XML部分的研究,还有负责脚本和UI的,他的资料还在整理中过段时间会给大家讲解。
回复

使用道具 举报

发表于 2010-4-12 18:13:30 | 显示全部楼层
差不多了,地图编辑器也快出了!
回复

使用道具 举报

发表于 2010-4-13 09:35:09 | 显示全部楼层
[s:180][s:180][s:180]编辑器快出吧期待中
回复

使用道具 举报

发表于 2010-4-14 14:14:26 | 显示全部楼层
神秘的组织 ‘晓’--------------------------------------     成员名字都是一个很古怪的格式 X XX XX
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 19:39 , Processed in 0.099752 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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