红警DIY论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1789|回复: 8

关于RA3新增特殊能力的困惑

[复制链接]
发表于 2013-2-18 00:26:12 | 显示全部楼层 |阅读模式
现在来问命令与征服3的MOD问题,确实是过时了。不过就当做学习xml文件吧。

我想新增一项特殊技能,具体说就是能够像召唤母舰一样,召唤出一辆车子来。按理说要求不高,但是怎么都搞不定。
修改原先的文件,把召唤对象改一下非常容易实现;但是我想在不动原先设定基础上,新增一项,却怎么也实现不了。

事实上,现在连增加一个新的特殊能力的按钮都没实现。要让重工厂造这种车辆,很容易就实现了。但是如果想凭空招,无论我怎么修改代码,按钮都看不见。
难道RA3不能新增加特殊能力?!
 楼主| 发表于 2013-2-18 00:28:41 | 显示全部楼层
话说让这种车辆就像采矿车一样附属在某个建筑中倒是很容易,但是正经地想实验一下,怎么这么难?
发表于 2013-2-18 09:29:03 | 显示全部楼层
本帖最后由 yangqs 于 2013-2-18 10:06 编辑

先说的跑偏的话题
ra3有个实际的问题,已经有一个技能按钮,想要第二个技能按钮相当蛋疼。
就是每个单位只有一个技能,要想新加技能,必须要先F成建筑出现九宫格,或者在某种状态下出现九宫格(还是变成建筑,因为ra3只有建筑有九宫格。移动单位只有一个技能,修改UI将会相当痛苦,目前还没人看见成功过)
当然还有一种方式我也成功过,拿英雄而言,就是给英雄添加超武,只要英雄存在,她的超武就存在,只是使用这超武是全屏幕型的,不是在英雄附近的
第三种方式,还是拿英雄举例,可以给她一个产卵单位,这个产卵是可以选中的那种,来扩展技能按钮。
发表于 2013-2-18 09:36:01 | 显示全部楼层
本帖最后由 yangqs 于 2013-2-18 10:08 编辑

不考虑两个技能按钮问题
召唤对象自身不过是OCL产生方式是最简单的,用某个武器,携带OCL弹头,然后产生某个物体;一般而言你操作的单位不是建筑类型,所以不能用产生矿车那个模式:代码可以参考熊的吼叫,产生武器,再参考雅典娜的武器,来OCL新的物体,如果新的物体是建筑的话,可以直接参考苏联的战斗工兵代码。
cc3的话东西是原理类似的,个别代码会有不同
 楼主| 发表于 2013-2-18 21:09:47 | 显示全部楼层
yangqs 发表于 2013-2-18 09:29
先说的跑偏的话题
ra3有个实际的问题,已经有一个技能按钮,想要第二个技能按钮相当蛋疼。
就是每个单位只 ...

看来是真的搞不定了,我曾经把母舰的所有代码都copy了,xml的各个文件都翻过。
  1.         
  2.                 <Include type="all" source="ART:Images/PackedImages1.xml" />

  3.                 <Include type="all" source="DATA:Sa/Data/ExperienceLevels1.xml" />
  4.                 <Include type="all" source="DATA:Sa/Data/Armor1.xml" />               
  5.                 <Include type="all" source="DATA:Sa/Data/Weapon1.xml" />
  6.                
  7.                 <Include type="all" source="DATA:Sa/Data/LogicCommand1.xml" />               
  8.                 <Include type="all" source="DATA:Sa/Data/LogicCommandSet1.xml" />
  9.                 <Include type="all" source="DATA:Sa/Data/SpecialPowerTemplate1.xml" />                                

  10.                 <Include type="all" source="DATA:Sa/Data/ObjectCreationList1.xml" />
  11.                 <Include type="all" source="DATA:Sa/Data/PlayerPowerButtonTemplates1.xml" />        

  12.                 <Include type="all" source="DATA:Sa/Data/AlienDronePlatform1.xml" />                                                        
复制代码
应该只有这些文件吧。今天从最简单的实验一下,搞不定就算啦。
 楼主| 发表于 2013-2-18 21:14:58 | 显示全部楼层
直接把特殊技能赋给总厂了
 楼主| 发表于 2013-2-18 23:23:46 | 显示全部楼层
要实现新增加一个建造按钮,非常简单。比如下面两段代码,是给GDI的重工厂增加了一个建造核弹运输车的功能,当然这辆车本身要实现自爆,还需要另行修改代码的。但一点不改,造出来的车已经可以开了,被击毁就会产生核爆效果,但是原来的代码实现下去,会看见一枚核弹从空中落下,这个不好,我们先不说它。
  1.         <LogicCommand
  2.                 Type="UNIT_BUILD"
  3.                 id="Command_ConstructGDINukeTransport">
  4.                 <Object>NukeTransport</Object>
  5.         </LogicCommand>
复制代码
  1.         <LogicCommandSet
  2.                 id="GDIWarFactoryCommandSet">
  3.                 <Cmd>Command_ConstructGDIPitbull</Cmd>
  4.                 <Cmd>Command_ConstructGDIPredator</Cmd>
  5.                 <Cmd>Command_ConstructGDIAPC</Cmd>
  6.                 <Cmd>Command_ConstructGDIHarvester</Cmd>
  7.                 <Cmd>Command_ConstructGDIMCV</Cmd>
  8.                 <Cmd>Command_ConstructGDIRig</Cmd>
  9.                 <Cmd>Command_ConstructGDIMammoth</Cmd>
  10.                 <Cmd>Command_ConstructGDIJuggernaught</Cmd>
  11.                 <Cmd>Command_ConstructGDINukeTransport</Cmd>
  12.                 <Cmd>Command_RepairVehicle</Cmd>
  13.                 <Cmd>Command_TogglePower</Cmd>
  14.                 <Cmd>Command_SelfRepair</Cmd>
  15.                 <Cmd>Command_Sell</Cmd>
  16.                 <Cmd>Command_SetDefaultBuilding</Cmd>
  17.                 <Cmd>Command_SetRallyPoint_Vehicle</Cmd>
  18.         </LogicCommandSet>
  19.        
复制代码
从教程看,RA3与C&C3是类似的,而且这些代码其实可以用1个xml文件实现的。

 楼主| 发表于 2013-2-18 23:57:17 | 显示全部楼层
让一个单位获得游戏中已经存在的特殊技能,不困难;修改已经存在的特殊技能,也不难。

比如我想把召唤母舰改为召唤其他的车辆,只需修改下面这段关键代码中的一句:
  1.         <ObjectCreationList
  2.                 id="OCL_SummonMothership">
  3.                 <CreateObject
  4.                         Options="IGNORE_ALL_OBJECTS DONT_SET_PRODUCER FADE_IN"                       
  5.                         FadeTime="15s"
  6.                         StartingBusyTime="8s"
  7.                         DisabledWhileBusy="true"                        
  8.                         Disposition="LIKE_EXISTING">
  9.                         <Offset
  10.                                 x="0"
  11.                                 y="0"
  12.                                 z="130"></Offset>
  13.                         <CreateObject>AlienMothership</CreateObject>
  14.                 </CreateObject>
  15.         </ObjectCreationList>       
复制代码
<CreateObject>AlienMothership</CreateObject>中改为其他车辆或者飞行器的id,就可以了。

 楼主| 发表于 2013-2-19 00:07:04 | 显示全部楼层
下面的代码,能给外星人的移动基地平台(会飞的总厂,不是那个停在地上搞建设的建筑)增加两个按钮,它们是行星突击舰的闪电风暴和GDIAPC的布雷功能。
  1.         <LogicCommandSet
  2.                 id="AlienMCVCommandSet">
  3.                 <Cmd>Command_UnPackALIENMCV</Cmd>  // 原先就有的展开功能
  4.                 <Cmd>Command_AlienAssaultCarrierDeployIonStormStart</Cmd>
  5.              <Cmd>Command_APCMinefield</Cmd>
  6.                 <Cmd>Command_AttackMove</Cmd>                //原先就有的移动功能
  7.         </LogicCommandSet>
复制代码
当然,真正让按钮可用,需要copy相应的特殊功能代码给AlienMCV.xml,否则按钮会显示,但是按不下去。


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

本版积分规则

Archiver|小黑屋|手机版|管理员邮箱|红警DIY官方论坛  

GMT+8, 2017-2-24 22:46 , Processed in 0.076734 second(s), 20 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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