当前位置:网站首页 > Java教程 > 正文

红警制作教程java



       1.在SDK根目录里面的Mods文件夹里面新建一个文件夹,并使用英文命名,这个名字就是编译后的MOD名字。       

       2.在你新建的这个文件夹里面再新建一个文件夹,命名为Data,并在Data里面放入Mod.xml这个文件(直接从SDK自带的mymod文件夹里面复制)。

       3.复制你需要修改的代码文件,跟Mod.xml放在同一目录下,并在Mod.xml里面进行注册,以这样的语句格式进行注册:

<Include type="all" source="你要注册的文件名称.xml"/>

      4.对代码文件进行修改

      5.保存,退出,启动SDK根目录里面的EALAModStudio.exe,勾选相关的选项,点击下方的Build Mod按钮,等待出现如下提示,即完成了编译:

       6.最后启动红警3万能工具,载入MOD,进入游戏,进行测试。

       上一期的入门教程有些小伙伴可能没有看懂,我承认,我的表述确实是有一些问题,毕竟文笔不佳,在这里先向大家道个歉。不过我还是要说一句,看再多的教程,永远不如自己亲自去做一次学得多,当你做成功后,你会觉得自己就像打开了任督二脉,才能更深入地明白SDK语言的逻辑关系和运用规则,你才会有勇气有动力去尝试你大脑里的创新模板,你才会在SDK红字报错的时候懂得如何去根据错误提示进行修正。不管是做RA3的MOD,还是去修改RA2的INI,一定要有耐心,而且细心。电脑不是人,只会死板地遵守自己的语言规则,不会灵活变通地去理解你的想法。接下来,我主要讲述代码文件的语言结构和单位的一些基本属性修改。   

       我们打开守护者坦克的单位文件,可以看到开头和结尾是这样的:

      可以注意到,开头有一个“<AssetDeclaration”和结尾最下方的一个“<AssetDeclaration/>”标签,这个标签基本上用不着,不用管,但是内部语法的格式基本上都遵从这个规范,模块型的代码区段(多个相同定位代码串的集合,一个也可以)大多数都是用这种格式的标签,大家要了解的模块标签主要有以下几个:

     1.<Includes和</Includes>

       这个标签组表示要载入的文件,素材,有心的朋友会发现Mod.xml里面也有这个。实际上这个标签组和Mod.xml一样是对相关文件进行注册,载入,区别在于系统永远优先读取Mod.xml,然后Mod.xml会指引系统读取其他代码文件,这些代码文件再通过这个标签组里面的内容指引系统读取其他的代码文件和素材文件。必须要说明,Mod.xml和其他代码文件不能重复注册一个文件,需要注册的文件让Mod.xml和代码文件中的其中一个进行注册就行了,否则编译会报错,请各位看官务必注意

      2.<GameObject和</GameObject>

       这个标签就表示了单位的基本信息了,里面有一行一行的独立的代码,也有相似标签括起来的模块代码。

       这部分独立的代码记录了单位的建造属性、ID、定位、F技能,以及其各种按钮标签,也包括单位简介,拥有的基本功能等等,后面会详细介绍。<GameObject和<GameObject/>标签组包含以下两个重要标签

       <Draw和</Draw>标签

        这个标签组包含于<GameObject和<GameObject/>里面,是对单位模型进行控制的模块。包括坦克模型哪个位置是炮管,哪个是炮台,炮台的ID,开火的位置,哪些是履带、螺旋桨,什么条件下触发什么动画、特效,单位通过协议加强或者严重损坏时贴图的变化。这些内容都是在<Draw和<Draw/>里面控制的,但是这一期就不介绍了,后面再讲。

       <Behaviors和</Behaviors>标签

       这个标签组主要控制单位的行动规律,比如炮台无聊时转动的角度,武器的使用,回血的速率,最大生命值,系统认定的单位体积(这个涉及到部队集合时候的阵型间隔),F技能的部分数据(例如黑洞装甲的半径,雅典娜光盾的最大生命值和缩小速率等等)

       在这两个小标签里面,还有包含了其他各种标签,比如<WeaponSetUpdate和                 </WeaponSetUpdate>,这个控制单位的武器系统;<LaserState和</LaserState>控制激光类武器的开火特效等等。

       代码文件使用的标签不光是<%¥#%¥@和</%¥#%¥@>这种格式的,也有<......https://www.bilibili.com/read/>这种格式的,或者是单纯以“>”结尾的。不光是单位文件,其他文件(例如武器文件,AI文件)也有相同格式的标签组。

       之所以花这么大篇幅来讲代码格式,就是要提醒各位在移植代码的时候不能把属于Behaviors区段的代码复制到Draw里面去,也不能倒着来,修改后的,千万不能复制了前标签忘了后标签,新手很容易犯这种错误,在这种错误上浪费太多时间不值得!!

       讲了这么多,我们就来尝试一些简单而实用的基本修改吧。包括以下内容:建造新单位,单位射程,单位最大生命值,单位造价和建造时间,单位自动回生命值,碾压能力,水路两栖。

1.建造新单位

       相信大家都听说过苏联磁暴坦克的威名,也应该去网上下载过有磁暴坦克的MOD享受电疗的**,但是我想真正在遭遇战玩过原汁原味的磁暴坦克的玩家应该是很少的,我现在就教大家怎样建造磁暴坦克,并且后续项目的修改,就以磁暴坦克为对象吧。

       第一步,我们把mymod里面的CommandData.xml文件和磁暴坦克单位文件复制到自己的MOD文件夹里面去,和Mod.xml放在同一目录下,并在Mod.xml里进行注册,如图所示:

第二步:打开CommandData.xml,并将里面的代码清理一下(清理掉的代码是盟军战车工厂的生产序列代码和幻影坦克的F技能代码,这里用不着,所以删掉),如图所示:

第三步:我们将剩余的这段代码中的"mytank"字段,全部换成磁暴坦克的ID名SovietAntiVehicleVehicleTech2,结果如图所示:

这段代码翻译过来就是新建一个类型为单位建造的生产序列,序列ID名称是“Command_ConstructSovietAntiVehicleVehicleTech2”,生产对象是"SovietAntiVehicleVehicleTech2"

第四步:我们打开sagexml文件夹里面的文件LogicCommandSet.xml(在GlobalData文件夹里),找到这样的代码,并将其复制到CommandData.xml里面去,然后关闭LogicCommandSet.xml:

小技巧:这是苏联战车工厂的生产序列,这里可以通过查找SovietAntiVehicleVehicleTech1(铁锤坦克)来直接找到,在游戏中能够生产磁暴坦克的战车工厂只有苏联倒数第二关敌方的车厂了,偏偏敌方的车场又不能生产铁锤坦克,这样就不会查找错误的战车工厂生产序列了。

第五步,我们仿照这段生产序列的代码,添加磁暴坦克的生产序列,结果如图所示:

然后保存,编译,进游戏测试,效果如下:

       这时细心的小伙伴们会发现战车工厂无法生产MCV了,这时因为磁暴坦克的添加把MCV顶掉了,生产序列的上限为9,然而现在有十个单位,对于这种我们怎么修改?一种方法是我们可以在战车工厂生产序列代码里面删除掉不必要的单位,比如采矿车;还有一种方法就是增加生产序列上限,我们可以把它变成3*4的,但是这个会涉及到其他各种文件的添加,修改,比较复杂(大佬给我的3*5的源码包含了7、8个文件,还有一些不是SDK自带的源码)。怕麻烦的小伙伴可以使用RA3MODSDK_X进行打包,能直接做出3*4的列表,只是这个版本的SDK需要调整一下里面文件夹的顺序才可以使用,上一期有提到过。RA3MODSDK_X_1.3删除了相关的文件,搞得改动起来很麻烦(实际上我用RA3MODSDK_X_1.3的源码也无法作出这种效果,希望会这个的大佬能在评论区指点一下,或者提供一下相应的源码)

2.单位射程修改

       RA3单位的射程修改不同于RA2,RA2只需要修改武器射程就完事了,但是RA3不仅要修改武器射程,还必须修改单位的视野范围。。比如,铁锤坦克武器射程是150,但是其视野范围却是200.如果单位的武器射程大于了其视野范围,单位就无法正常攻击,下达攻击目标的指令后就会走到视野范围内攻击,只有强A地板才会攻击到视野范围外。说道这里,也许有人已经明白了为什么将军铁锤老是要走到别人脸上去用自己的主炮A人了,吸取到的将军炮仿佛是个摆设,这就是武器射程大于视野范围导致的。在原版中,铁锤坦克吸取到V4,雅典娜,波动炮后,其视野也会被修正到500,但是将军锤就没有这个视野修正代码,吸取武器后依然是200的视野,要修正这个BUG会涉及到其他文件,我会专门讲一期的铁锤坦克的代码问题,同时也会讲如何修正这个BUG。

       磁暴坦克的射程修改涉及到两个文件,一个是自身的单位文件,还有一个就是武器文件,所以请把武器文件复制到你的MOD文件夹里并进行注册,前面有了充分的注册例子,这里就不截图示意了。

第一步:打开磁暴坦克代码文件,拉到最下方这个位置:

       VisionRange="200"就表示磁暴坦克的视野范围,我们可以把它修改到300,然后打开武器文件,搜索磁暴坦克的武器:

       然后我们把AttackRange="150"改成AttackRange="250",然后保存,关闭,编译,再进游戏测试,就OK了。

3.单位碾压能力

       其中CrusherLevel表示碾压能力,CrushableLevel表示碾压抗性,前者应该小于等于后者,否则你会看到磁暴坦克碾压磁暴坦克的唯美画面了。

4.单位建造时间、建造价格,单位生命值

这里我只给出代码,大家自己一眼就能看明白的

建造时间:BuildTime="      "

建造价格:Amount="       "

最大生命值:MaxHealth="       "

5.单位自动修复

       这里我们可以参考天启坦克的代码:

       这是天启坦克Behaviors区段下的属性,把它复制到磁暴坦克Behaviors区段里就行了,可以自己改其中的数值来调整回血速率。

6.水陆两栖

我们打开牛蛙的单位文件,找到这里:

       大家应该都能看出来,第一段LocomotorSet是指牛蛙在陆地上的运动规则,第二段 LocomotorSet是牛蛙在水面上的运动规则,我们把第二段整段复制到磁暴坦克的代码里面,并把速度改为62.5,然后保存,编译,最后效果如图所示:

       由于手速有限,没能截取到开火那一瞬间的图,不然大家就能明白射程的变化了。好了,这一期就到此为止了,内容也比较简单,有改RA2基础的朋友应该都没问题,下一期我会讲一些进阶的代码,会涉及其它的代码文件,主要内容包括:单位炮台的讲解,机枪、射线类武器的添加,潜艇潜水开火,让两栖单位可以同时被船厂和车厂建造。

版权声明


相关文章:

  • 小米java使用教程2025-03-13 21:18:04
  • 鸿蒙开发教程 java2025-03-13 21:18:04
  • java swing开发教程2025-03-13 21:18:04
  • java json使用教程2025-03-13 21:18:04
  • java教程张冰视频2025-03-13 21:18:04
  • 在线java菜鸟教程2025-03-13 21:18:04
  • java视频教程知乎2025-03-13 21:18:04
  • java协议教程2025-03-13 21:18:04
  • java web 面试教程2025-03-13 21:18:04
  • java教程知识点2025-03-13 21:18:04