注册 | 登录

游侠NETSHOW论坛





查看: 6000|回复: 14
打印 上一主题 下一主题

[分享] 对MOD翻译篇的补充以及一些总结和心得 [复制链接]

帖子
43
精华
0
积分
32
金钱
136
荣誉
1
人气
0
评议
0
跳转到指定楼层
楼主
发表于 2009-6-7 21:54:10 |只看该作者 |倒序浏览
Hallo大家好,我是为大家提供“全能鬼王”的作者。其实我也只是一位MOD的初学者。由于本人身在德国留学马上进入头痛的考试期,便没有多余的时间研究如何制作MOD。所以觉得有必要把我这几天总结的一些东西分享出来,能让许多有意制作MOD的人有个参考,少走弯路、提高水平制作更完美的作品给我们大家分享。


言归正传进入第一部分:  对woshifyf翻译的RA3MOD初级翻译教程的一些补充
1.根据自己理解,MOD中的语言其实也是属于高级语言,只要根据字面意思来理解,还是能够判断出程序是实现那段功能的。当然需要一些基本的英文功底。(有时候可以看!号后面的内容它的功能就是告诉程序不要执行此命令,所以编程人员通常会用它来提醒自己做些简单的注释。)
2.编译语言和C语言其实也是比较相近的,无非是函数的定义,调用,判断。区别是无循环,不能重复定义两次,所以这就是为什么第一部分所说的
<GameObject
  id=”AlliedAntiVehicleVehicleTech1”以下省略,中要改成id=”mytank”。因为初级篇里讲的是如何加入新单位,而这个新单位必须在不影响原有单位的同时。调用的函数、,模型都是以前的单位,换句话说,如果不改名字修改数据就是变成了修改原有单位的数据。

而LogicCommand 和 LogicCommandSet,这两个文件就是在添加新单位中起了至关重要的作用。它们的作用就是在于逻辑判断,规定什么东西是可以被制造的,在那里制造,可以做哪些基本指令等。

举例1:<LogicCommandSet
  id=”AlliedWarFactoryCommandSet”>
  <Cmd>Command_ConstructAlliedMiner</Cmd>
  <Cmd>Command_ConstructAlliedAntiInfantryVehicle_Ground</Cmd>
  <Cmd>Command_ConstructAlliedAntiAirVehicleTech1</Cmd>
  <Cmd>Command_ConstructAlliedAntiVehicleVehicleTech1</Cmd>
  <Cmd>Command_Constructmytank</Cmd>
  <Cmd>Command_ConstructAlliedAntiStructureVehicle</Cmd>
  <Cmd>Command_ConstructAlliedAntiVehicleVehicleTech3</Cmd>
  <Cmd>Command_ConstructAlliedMCV</Cmd>  
如字面意思,alliedwarfactorycommandset就是盟军战争工厂设定,即美国车库能制造的单位,一种看见mytank没,这条命令就是告诉工厂能制造单位的目录里加入mytank.

重点:  我觉得初级篇里最重要的就是mod.xml文件。它是制作MOD不可缺的,它的功能就有点类似C语言中的main()一样。是告诉程序需要调用那些文件。换句话说,你修改了那些内容就要告诉mod.xml文件。就如同原篇里的最后3行划线的部分。因为作者该了这三个文件.(注意文件路径)。

举例2: 如果我想修改武器,那我该做的就是把原来的weapon.xml文件复制到mymod\data下,然后修改完保存后,最后添加一句
<Include type=”all” source=”DATA:mymod/Data/weapon.xml”/>

原文:<?xml version=”1.0″ encoding=”UTF-8″?>
<AssetDeclaration xmlns=”uri:ea.com:eala:asset” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“>
<Tags></Tags>
<Includes>
  <!–
   mod.xml is the central include for mod setup data.  
  –>
  <!– These includes need to be in all mod.xml files –>
  <Include type=”reference” source=”DATA:static.xml” />
  <Include type=”reference” source=”DATA:global.xml” />   
  <Include type=”reference” source=”DATA:audio.xml” />
                <Include type=”all” source=”DATA:mymod/Data/LogicCommand.xml”/>
                <Include type=”all” source=”DATA:mymod/Data/LogicCommandSet.xml”/>
                <Include type=”all” source=”DATA:mymod/Data/mytank.xml”/>
  
</Includes>
</AssetDeclaration>


所以说如果你只改了武器,划线的3句全部不要,只要加一句<Include type=”all” source=”DATA:mymod/Data/weapon.xml”/>就行了。还是那句话,你改了什么就告诉mod.xml哪些文件要另外加载一片,如果不加程序会加载默认的数据。


我想第一部分应该就这些,稍后还会陆续更新一些技巧与心得等。

进阶MOD翻译教程的一些补充:
首先冲单位修改来说起。它也是修改的主干部分,很多其他的小细节都是从这里分出去的。
下面就是根据翻译篇里个人觉得重要的一些细节。(其实只要你仔细阅读程序很多部分都能独立完成,不需要看什么教程类的。还是那句话,英语很重要)
1.More info on editing units 关于修改单位的更多信息

Kindof的定义:一个制约环境来过滤这个单位可以做什么,不可以做什么。 这其实正确,它只是起到一个定义的作用。比如一个单位是陆地单位,即便你给它加了两栖属性,它依旧不能下水。kindof只是起了一个定义的作用,让其他程序执行判断,所以定义功能用处不大。
那么如何制作两栖单位呢?
    用我的鬼王举例:打开JapanAntiVehicleVehicleTech3.xml
  1。)你可以在kindof上加上AMPHIBIOUS,它的作用只不过是起到一个说明。你在建造单位表里看见他是两栖,作用不大。
  2.) 我们要修改的是Locomotor.xml即行动文件。复制它到你的文件里,然后用查找功能查到
<LocomotorTemplate
  id="JapanAntiVehicleVehicleTech3Locomotor"
  Surfaces="GROUND CRUSHABLE_OBSTACLE WATER DEEP_WATER"
      红色部分便是要加上去的部分。告诉表面包括水域和深水。
修改完成后保存,记得我前面说过什么吗?对,便是在mod.xml里加上调用语句,当然文件名就是Locomotor.xml.
这样单位就能下水了。

接下来draw 的部分都是对模型的描述与判断大可不去理会。但是对追求视觉效果的朋友来说也是值得一试,那我的鬼王激光为例。
<LaserDraw
    id="ModuleTag_LaserDraw1"
    Texture1_UTile="1"
    Texture1_VTile=".2"
    Texture1_UScrollRate="0"
    Texture1_VScrollRate="1"
    Texture1_NumFrames="1"
    Texture1_FrameRate="30"
    Texture2_UTile="1"
    Texture2_VTile=".8"
    Texture2_UScrollRate="0"
    Texture2_VScrollRate="1"
    Texture2_NumFrames="1"
    Texture2_FrameRate="30"
    LaserWidth="15"
    LaserStateID="101">
看见红色部分了么?不错,那就是激光宽度,我故意加了5,让激光看起来更粗一些,当然下面的一些LaserDraw2等都需要一起修改。 上面的螺旋参数之类的各位朋友可以自己琢磨。

想要给你的单位添加新的能力吗? 比如我鬼王上面的隐形技能。
隐性技能来自盟军的迷彩坦克,好吧,我们去看迷彩坦克的原版文件AlliedAntiVehicleVehicleTech3。怎么找技能呢?尽量发挥你的英语技能吧,迷彩是什么,啊是mirage.好我们搜索mirage,真的有啊。(或者隐性也行,Invis....)
<!-- mirage special power -->                                                      这行就是典型的程序员标识。“!”
   <InvisibilityBroadcastUpdate                                                    隐性程序开始啦
    id="ModuleTag_BroadcastInvisibility"
    BroadcastRange="175"                                                          作用半径,改大改小随便
    UpdatePeriod="0.2s"
    AffectsSelf="true"                                                                    是否自己也能也行,原来是false,我想鬼王自己也隐形就改了        
    InvisibilityTemplate="AlliedAntiVehicleVehicleTech3InvisibilityBroadcastTemplate">
    <BroadcastObjectFilter                                                            明显的过滤器,定义那些单位能被作用
     Rule="ANY"                                                                            规则
     Relati                                                             ALLIES标识所有方
     Include="INFANTRY VEHICLE"                                                包括=“步兵,载具
     StatusBitFlagsExclude="AIRBORNE_TARGET BROADCASTING_INVISIBILITY IGNORING_STEALTH">   
     <ExcludeThing>SovietAntiGroundAircraft</ExcludeThing>      排除的事情即不允许的判定
    </BroadcastObjectFilter>
       </InvisibilityBroadcastUpdate>

好了,既然找到它了就把整个程序段复制到你自己的修改鬼王的修改文件吧JapanAntiVehicleVehicleTech3.xml(注意不是原文件)保存后记得别忘了在MOD.xml里执行JapanAntiVehicleVehicleTech3的调用命令。


为什么鬼王可驻兵
其实如果你看懂上面一段后就明白这是同一个道理。驻兵想想那些东西能驻兵又能攻击?没错,苏联的碉堡么。去苏联的建筑里找到SovietBunker.xml
好了发挥你英语的时候有到了,驻兵是什么?Garrison,快速用查找吧。
<GarrisonContain
    id="ModuleTag_Garrison"
    ObjectStatusOfC   能够攻击的定义而已                                                
C                                 能带多少人数      
  EnterSound="GenericBuilding_Garrison"            
    AllowEnemiesInside="false"                                                         允许敌人进入吗,当然不
    AllowAlliesInside="true"                                                              盟友允许进入
    AllowNeutralInside="true"                                                            同意自然单位进入
    AllowOwnPlayerInsideOverride="false"                                        允许撤出吗?为了防止程序错误我选择不
    ShowPips="true"
    PassDisabilityToRiders="true"
    KillPassengers>                                                单位死后驻兵也死吗?
    <PassengerFilter                                                                         驻入乘客的过滤程序
     Rule="ANY"
     Include="INFANTRY AIRCRAFT">
     <ExcludeThing>AlliedScoutInfantry</ExcludeThing>                3条不允许进入的特例
     <ExcludeThing>SovietScoutInfantry</ExcludeThing>
     <ExcludeThing>SovietScoutVehicle</ExcludeThing>
    </PassengerFilter>
    <DieMuxData
     DeathTypes="ALL" />
    <PassengerData
     B>
     <Filter
      Rule="ANY"
      Include="INFANTRY"/>     
    </PassengerData>     
   </GarrisonContain>

好了,就是它了,把这段程序段也复制到你单位的主文件里吧,然后保存,加载。  



待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。



大家好,今天带给大家的是如何让鬼王变大,这也是论坛的朋友教我的。同样适用其他单位。希望给大家有帮助。
打开JapanAntiVehicleVehicleTech3.xml(mymod中的)
代码如下在</AssetDeclaration>上面添加
<AttributeModifier
id="AttributeMod_SizeCorrectionCC3">
<Modifier Type="COLLISION_GEOMETRY_SIZE_MULT" Value="125%"/>
</AttributeModifier>
在</Behaviors>上面添加
<AttributeModifierAuraUpdate
id="ModuleTag_AttributeModifierSizeCorrectionCC3"
AttributeModifierName="AttributeMod_SizeCorrectionCC3"
AllowSelf="true"
InitiallyActive="true" />

注意以后如果要改其他单位大小 cc3 要换成其他名字不要重复。。。


待续。。。。。。。。。。。。。。。。。。

[ 本帖最后由 bluefrank88 于 2009-6-8 21:16 编辑 ]
已有 1 人评分金钱 收起 理由
kb1999 + 20 + 1 追加奖励

总评分: 金钱 + 20  + 1   查看全部评分

使用道具 举报

帖子
232
精华
0
积分
146
金钱
2377
荣誉
3
人气
0
评议
0
沙发
发表于 2009-6-7 22:13:16 |只看该作者
谢谢补充 辛苦了 请再接再厉

使用道具 举报

帖子
43
精华
0
积分
32
金钱
136
荣誉
1
人气
0
评议
0
板凳
发表于 2009-6-7 23:08:29 |只看该作者
累了,还有一些以后再写,同时希望MOD 高手们多多补充。 希望对大家有用。

感谢一些论坛上的朋友,woshifyf,  qiuyuewu1987,stevenchu 等等,他们在我学习是给予了很多帮助。

使用道具 举报

帖子
220
精华
0
积分
121
金钱
239
荣誉
1
人气
0
评议
0
地板
发表于 2009-6-8 03:21:15 |只看该作者
楼主: 这儿是不是复制出了点错

id="ModuleTag_Garrison"
    ObjectStatusOfC              能够攻击的定义而已
    C                                                                        能带多少人数
    EnterSound="GenericBuilding_Garrison"      

原句是:

id="ModuleTag_Garrison"
ObjectStatusOfContained="ENCLOSED UNSELECTABLE CAN_ATTACK"
ContainMax="5"
EnterSound="GenericBuilding_Garrison"

[ 本帖最后由 xyhsky 于 2009-6-8 03:27 编辑 ]
已有 1 人评分 收起 理由
kb1999 + 1 助人为乐,品格高尚!

总评分:  + 1   查看全部评分

使用道具 举报

帖子
43
精华
0
积分
32
金钱
136
荣誉
1
人气
0
评议
0
5#
发表于 2009-6-8 04:36:41 |只看该作者
是的,点错了,谢谢。已纠正

使用道具 举报

帖子
64
精华
0
积分
32
金钱
602
荣誉
0
人气
0
评议
0
6#
发表于 2009-6-8 21:16:09 |只看该作者
感谢啊,还是大陆的朋友比较亲切,我的中文没有白学了

使用道具 举报

帖子
43
精华
0
积分
32
金钱
136
荣誉
1
人气
0
评议
0
7#
发表于 2009-6-8 21:20:04 |只看该作者
原帖由 remychan 于 2009-6-8 21:16 发表
感谢啊,还是大陆的朋友比较亲切,我的中文没有白学了


你是? 台湾人?

使用道具 举报

帖子
64
精华
0
积分
32
金钱
602
荣誉
0
人气
0
评议
0
8#
发表于 2009-6-8 23:33:58 |只看该作者
lz 复制有点问题

        <BroadcastObjectFilter
                                        Rule="ANY"
                                        Relationship="ALLIES"
                                        Include="INFANTRY VEHICLE"
                                        StatusBitFlagsExclude="AIRBORNE_TARGET BROADCASTING_INVISIBILITY IGNORING_STEALTH">
                                        <ExcludeThing>SovietAntiGroundAircraft</ExcludeThing>
        </BroadcastObjectFilter>

使用道具 举报

帖子
64
精华
0
积分
32
金钱
602
荣誉
0
人气
0
评议
0
9#
发表于 2009-6-9 14:15:21 |只看该作者
我是马来西亚人:)
目前我遇到最大难题是 如和将鬼王行刑者 改出来,好像很不简单哦...

使用道具 举报

帖子
43
精华
0
积分
32
金钱
136
荣誉
1
人气
0
评议
0
10#
发表于 2009-6-9 16:30:19 |只看该作者
原帖由 remychan 于 2009-6-9 14:15 发表
我是马来西亚人:)
目前我遇到最大难题是 如和将鬼王行刑者 改出来,好像很不简单哦...



这个其实不难,你可以参考初级篇里的如何添加新单位,然后随便打开个日本单位,仔细观察它的object描述部分 到 DRAW的部分。 当中会有一些建造程序,你可以参考后添加到Japanmechaking.xml中,然后接下来就和初级篇基本是一样的。

使用道具 举报

帖子
43
精华
0
积分
32
金钱
136
荣誉
1
人气
0
评议
0
11#
发表于 2009-6-9 16:31:46 |只看该作者
顺带问下,马来西亚不是讲马来西亚语和英语的么?我德国认识的同学就是马来西亚人,你中文哪学的?很棒哦

使用道具 举报

帖子
163
精华
0
积分
92
金钱
559
荣誉
1
人气
0
评议
0
12#
发表于 2009-6-9 21:29:11 |只看该作者
只想知道怎么让单位变形,现在都没搞清楚。

使用道具 举报

帖子
162
精华
1
积分
281
金钱
1043
荣誉
0
人气
0
评议
0
13#
发表于 2009-10-25 11:51:49 |只看该作者
改完了,mod.xml也弄了,build成功了,进入游戏还是一样,请问怎么回事?
包头巾的才猛

使用道具 举报

帖子
321
精华
0
积分
161
金钱
1016
荣誉
0
人气
0
评议
0
14#
发表于 2009-12-24 20:00:55 |只看该作者
LZ,不是我想打击你,而是你做的3个鬼王MOD,我一个都用不了,全是出错!

使用道具 举报

帖子
5
精华
0
积分
3
金钱
41
荣誉
0
人气
0
评议
0
15#
发表于 2010-8-25 19:46:37 |只看该作者

楼主的鬼王很不错哦!

楼主的鬼王很不错哦!!!!!!!!!!!!!

使用道具 举报

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

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-5-7 13:40 , Processed in 0.353172 second(s), 12 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到