|
|
| 第1行: |
第1行: |
| {{欢迎编辑|}} | | {{欢迎编辑|}} |
| 本页面将介绍游戏mod使用的代码方面的细节。
| |
|
| |
|
| ==RW的世界==
| |
| Rusted Warfare(以下均简称“铁锈”)的世界是由单位和地图两部分组成,地图是一个有限的二维空间,地图上的每个坐标点理论上都可到达,目前铁锈地图没有做地形高度相关的设定,地形不会阻挡发射的弹丸(炮弹),建造的纳米光线,单位能否通过某个区域是通过单纯地设置不同的地块类型实现的。地图本身都是静物,没有使用帧动画。铁锈为地图设有触发层,可以根据玩家行为做出反馈,丰富游戏性。铁锈的单位在空间概念上是一个个圆形区域,可以理解为身体,无论单位贴图形状大小,玩家的选中,单位之间的碰撞,弹丸在命中前提下爆炸的位置等都根据这个圆形判定,但如目标的坐标位置,路径和范围伤害命中等判定是根据中心点的。铁锈的单位有自身高度的属性,会影响弹丸生成的位置,单位间的距离等。
| |
|
| |
| 每个单位的具体属性至少有名称,最大生命值,重量和半径,建造价格和速度,雾中视野,运输需槽位,主体图像,可以攻击与否,移动类型,自身高度,移动转向速度。单位能够被建造修复回收和建造修复回收,能够设置若干炮台,炮台能发射弹丸,弹丸能对其他单位造成伤害,单位能够生成使用资源,包括建造用的资金,激光防御所需的能量,抵挡伤害用的护盾值等以及自行设定的自定义的资源,单位还有原版未使用的护甲值等。单位分为可移动的和建筑物,区别在于建筑不能接受移动指令,体积不是圆形而是矩形,建造必须使用纳米等。单位身上可以加腿和臂起到装饰作用,身上加附属的单位实现移动城堡的效果,加贴花更丰富视觉效果,加特效和帧动画使战场更加生动, 使用自定义资源自定义建筑放置规则配合逻辑参数和触发动作,能够控制单位的部分主要属性,使单位自动完成一系列动作,增强单位玩家间的互动等。
| |
|
| |
| 游戏规则方面,铁锈主要提供了战役(mission),波次生存(survival),遭遇战(skirmish)三种玩法,这些都可以通过设置具体地图的属性实现。铁锈一个玩家控制一个队伍(team),队伍可以是ai玩家控制的,队伍正常的最多有十个,按其在地图上的出生点编号,还有无人控制的编号为-1的中立队伍和编号为-2的敌意中立队伍,队伍间可以在游戏开始前设置结盟,显示为Team-A,B...(编者不知道team name和team id怎么用中文区分)。铁锈有战争迷雾(fog of war)的设定,单位可以设置雾中可视范围。铁锈遭遇战结束游戏的条件是战场只剩一个队伍或联盟,当自己队伍失去所有能建造单位或声明自己是建造者的单位时,游戏判负,地图属性可以设置其他胜败条件。铁锈的每个单位有自己的资源(resource),包括生命值,能量值,弹药等都划为资源,也可以有全队伍共用资源,像原版的资金。
| |
|
| |
| ==要求==
| |
| 能将图片音频和代码整合到一起,能在游戏中正常使用,且符合自己的计划。<br />
| |
| 具体:<br />
| |
| *你需要找到适合你构想单位的贴图,可能是本体的炮台的弹丸的特效的多帧动画的腿和胳膊的贴花的,因而你可能需要使用绘画软件自己画出来。图片要使用png格式的。
| |
| *音频一般是,背景音乐,开火音效,爆炸音效,选中音效,动作执行音效等,这些可能需要你在网上寻找。音频通常使用ogg格式,也可以使用wav格式。
| |
| *代码方面,知道了单位代码的执行逻辑,需要某个功能时查询公认的代码表,再之后习惯写稍复杂的逻辑判断就可以了,虽然要接触全英文,但并不涉及专业复杂问题。单位代码一般是一个单位一个ini文件,当然代码还涉及固定用途的all-units.template文件和mod-info.txt文件,都是utf-8编码的纯文本文件。
| |
| *不得不提的是游戏还在更新本身并不完善,现有的可能真的难以实现某些功能,还有小部分游戏bug存在,因而制作过程中要与人交流及时反馈问题,进而加深了解,做出更多有趣的内容。
| |
|
| |
| <div style="text-align:center;width:100%;border:1px solid #eaecf0;border-bottom:none;background-color:#f8f9fa;">Windows/Android目录<span class="mw-customtoggle-winc mw-customtoggle-anc" style="color:#3366cc;float:inline-end;">[切换]</span></div>
| |
| <pre class="mw-collapsible" id="mw-customcollapsible-winc" style="white-space:pre;overflow:auto;margin:0;padding:0;width:100%;">
| |
| #windows版本-v1.15
| |
| /assets
| |
| /builtin_mods -- 内置mod文件夹,可以放入加载mod文件,但我们不使用
| |
| /builtin_mods_enabled -- 内置mod文件夹,可以放入加载mod文件,游戏会自动启用该文件夹的mod,但我们不使用
| |
| /gui
| |
| /maps
| |
| /challenge -- 挑战地图
| |
| /menu_background -- 主界面背景地图
| |
| /normal -- 任务地图
| |
| /skirmish -- 遭遇战地图
| |
| /survival -- 生存地图
| |
| /testing -- 测试地图
| |
| /music -- 背景音乐
| |
| /shaders
| |
| /tilesets -- 内置地图地块集(.tsx)
| |
| /translataions -- 本地化,使用记事本打开修改
| |
| /units -- 原版单位,与mod制作的单位的内容格式一致,是很好的参考,不过部分单位数据并不在其中
| |
| /cache
| |
| /mods-info.cachedata -- mod的mod-info.txt文件缓存
| |
| /font -- 游戏使用的字体
| |
| /jvm
| |
| /jvm64
| |
| /libs
| |
| /mods
| |
| /maps -- 地图文件夹,放入地图文件(.tmx)和地图封面文件(.png)
| |
| /units -- 单位文件夹,放入mod文件(.rwmod),或直接使用符合mod规则的文件夹
| |
| /res
| |
| /anim
| |
| /drawable -- 部分游戏使用的图片文件
| |
| /layout
| |
| /raw -- 部分游戏使用的音效文件
| |
| /values
| |
| /xml
| |
| /saves -- 保存的游戏
| |
| /crashes.txt -- 崩溃日志
| |
| /fallback.bat
| |
| /fallback_lowmem.bat
| |
| /fallback64.bat
| |
| ...
| |
| /game-lib.jar -- 游戏的主代码部分,一些原版单位从其中加载
| |
| ...
| |
| /preferences.ini -- 用户偏好设置文件,较游戏内设置更丰富
| |
| ...
| |
| /Rusted Warfare - 64.exe -- 64位游戏客户端
| |
| /Rusted Warfare.exe -- 32位游戏客户端
| |
| ...
| |
| </pre>
| |
| <pre class="mw-collapsible mw-collapsed" id="mw-customcollapsible-anc" style="white-space:pre;overflow:auto;margin:0;padding:0;width:100%;">
| |
| #android版本-v1.15
| |
| #路径:"{玩家自定文件夹}/rustedWarfare"或"Android/data/com.corrodinggames.rts/files"
| |
| |-maps tmx地图文件和png地图封面文件放这里,可以里面再套文件夹
| |
| |
| |
| |-replays replay录像回放文件放这里
| |
| |
| |
| |-saves rwsave存档文件放这里
| |
| |
| |
| |-units rwmod模组文件放这里,或者新建文件夹让游戏去加载里面的地图单位mod-info.txt等文件
| |
| |
| |
| |-.nomedia 安卓用来控制不让图库音乐等媒体应用扫描该文件夹的文件
| |
| |
| |
| |-.rwinfo 未知
| |
| |
| |
| |-crashes.txt 游戏运行出错日志
| |
| </pre>
| |
| 一般我们在"mods/units"目录下新建一个文件夹就可以开始工作了,游戏会像读取<code>.rwmod</code>mod文件一样读取文件夹的内容。接下来我们认识mod文件夹内的结构。以游戏自带的"mega_builders"为例。
| |
| <pre style="white-space:pre;overflow:auto;margin:0;padding:0;width:100%;">
| |
| mega_builders -- 该mod的文件夹,游戏认定"units"目录下一个文件夹是一个mod
| |
| │ mod-info.txt -- 提供给游戏的mod的信息,可以设置mod的标题和描述,最低版本要求,背景音乐
| |
| │ mod-thumbnail.png -- 认为是mod的概念宣传图,但无法在游戏中展示
| |
| │
| |
| └─mega_builder -- 游戏不会识别mod文件夹一级目录的.ini单位配置文件,所以需为单位创建文件夹
| |
| builder.png -- 单位的主体贴图
| |
| builder_dead.png -- 单位的死亡贴图
| |
| mega_builder.ini -- 单位的ini配置文件,一个单位的一个.ini文件
| |
| </pre>
| |
| 除此以为你可能还会在mod文件夹的一级目录见到<code>all-units.template</code>文件,它是全单位模板,里面的内容会自动应用到它所有次级目录的.ini文件中,用法常见于定义mod在游戏中的资金资源。
| |
|
| |
|
| |
|
| |
| <!----
| |
| <br /><br /><br />
| |
| ----
| |
| ini文件是一种配置文件,由节(Section)、键(Key)、值(Value)组成。一个节中通常包含多个键,每个键对应一个值,键和值通过<code>:</code>进行连接。<ref>一般ini通过<code>=</code>连接,但在铁锈中使用<code>:</code>连接</ref>在铁锈中,ini文件用于存储单位的信息,对单位的各种数值进行设置。 | | ini文件是一种配置文件,由节(Section)、键(Key)、值(Value)组成。一个节中通常包含多个键,每个键对应一个值,键和值通过<code>:</code>进行连接。<ref>一般ini通过<code>=</code>连接,但在铁锈中使用<code>:</code>连接</ref>在铁锈中,ini文件用于存储单位的信息,对单位的各种数值进行设置。 |
|
| |
|
| 第146行: |
第46行: |
|
| |
|
| [[分类:模组制作]] | | [[分类:模组制作]] |
| -->
| |
 |
Rusted Wiki欢迎您参与完善本条目
欢迎正在阅读这个条目的您协助编辑本条目。编辑前请阅读Wiki入门,并查找相关资料。
Rusted Wiki祝您在本站度过愉快的时光。
|
ini文件是一种配置文件,由节(Section)、键(Key)、值(Value)组成。一个节中通常包含多个键,每个键对应一个值,键和值通过:进行连接。[1]在铁锈中,ini文件用于存储单位的信息,对单位的各种数值进行设置。
例如:
| 一个ini文件例子 |
[core]
name: tank
price: 1000
[movement]
moveSpeed: 2
|
在上面这段ini中,我们可以清晰的看到:core中name的值为tank,movement中moveSpeed的值为2。
详细的ini教程
调试单位
重新加载单位
通常情况下,每次进入铁锈时,模组会被自动加载。单击主界面中“模组”按钮后,找到“重载数据”按钮,单击即可重新加载模组数据。
如果你正在沙盒中进行模组调试,在actions、all和modded中可以找到“Reload units”,单击此按钮铁锈将会重新加载所有单位。如果你只是更改了单位的数据,也可以在modded中单击“Quick Reload”,此时铁锈会以很快的速度重新加载单位。
Debug按钮
在沙盒的actions中,有一个“Debug”选项,默认为关闭,打开此选项后,单击任意单位的血量都会看到“--Debug--”字样和当前单位的信息。
| Debug可以显示的信息 |
- 单位name
- 单位id
- x
- y
- 高度
- 角度
- 图层
- 自定义资源
- 自定义内存(memory数组中的值不能显示)
- 自定义目标(customTarget1)
|
如果你的单位使用了自动触发(AutoTrigger),在打开“Debug”选项后,还可以打开“Trigger Debug”选项,打开此选项后,选中任意单位将能够看到它们的自动触发,并且能够看到自动触发中单个条件的值。
相关链接