单位编辑:修订间差异
小 (→相关链接) |
(为自己画饼...) |
||
(未显示3个用户的41个中间版本) | |||
第1行: | 第1行: | ||
<b>序言</b><br> |
|||
{{欢迎编辑|PC端单位编辑|}} |
|||
本文引导想要学习制作mod单位的玩家具有制作自己单位的能力。<br> |
|||
==安卓端== |
|||
<br> |
|||
<b>概念</b><br> |
|||
游戏中的原版单位的属性信息有两种存储方式:一种为游戏早期的直接写在游戏的.jar或.dex文件中,另一种,在游戏具有mod系统后,以一个单位一个.ini文件的形式进行存储。我们制作mod单位使用这种形式。<br> |
|||
这里的.ini文件为UTF-8文本文件,使用记事本等文本编辑器即可修改。<br> |
|||
具体属性存储方式使用键值对(key: value)进行存储。即单位具体某项属性名称后跟英文冒号然后填这个属性的值。如: |
|||
<pre style="margin: 0;padding: 5px;border: 1px solid;background-color: #fffff5;white-space: pre;overflow-x: auto;"> |
|||
# name为单位的名称,这里值为c_interceptor |
|||
name: c_interceptor |
|||
# price为单位的造价,即单位的造价为600 |
|||
price: 600 |
|||
maxHp: 250 |
|||
</pre> |
|||
.ini文件内容里还有小节的概念,即使用英文方括号包裹小节名称并单独占一行来划分单位的不同功能,如: |
|||
<pre style="margin: 0;padding: 5px;border: 1px solid;background-color: #fffff5;white-space: pre;overflow-x: auto;"> |
|||
# 概念型坦克的四个炮台中两个炮台的设定,[turret_cannon2]和[turret_cannon3] |
|||
[turret_cannon2] |
|||
#top right cannon |
|||
x: 0 |
|||
y: 0 |
|||
attachedTo: base2 |
|||
copyFrom: cannon1 |
|||
linkDelayWithTurret: cannon1 |
|||
warmup:30 |
|||
[turret_cannon3] |
|||
=== 准备工作 === |
|||
#bottom left cannon |
|||
x: 0 |
|||
y: 0 |
|||
attachedTo: base3 |
|||
copyFrom: cannon1 |
|||
linkDelayWithTurret: cannon1 |
|||
warmup:60 |
|||
</pre> |
|||
<br> |
|||
<b>.ini文件的位置</b><br> |
|||
一个mod在文件存储意义上,是一个具有多层目录结构的文件夹。(mod直接以文件夹的形式而非.rwmod打包形式放入游戏读取目录下也可被游戏正常加载)<br> |
|||
mod文件想要加载到游戏中应该放在:(PC端)"Rusted Warfare/mods/units/" (Android端)"rustedWarfare/units/"或"/com.corrodinggames.rts/files/units/" |
|||
<pre style="margin: 0;padding: 5px;border: 1px solid;background-color: #fffff5;white-space: pre;overflow-x: auto;"> |
|||
#以PC端游戏目录为例 |
|||
mods |
|||
└─units |
|||
│ custom_units_here.txt |
|||
│ |
|||
└─中型坦克改_v0.2 ← 该mod的文件夹 |
|||
│ all-units.template |
|||
│ mod-info.txt |
|||
│ |
|||
├─BGM |
|||
├─_未完成 |
|||
├─其他 |
|||
├─单位 |
|||
│ └─中型坦克 ← 该单位的文件夹 |
|||
│ 中型坦克.ini ← 单位“中型坦克”的.ini文件 |
|||
│ 开火.ogg |
|||
│ 残骸.png |
|||
│ 炮塔.png |
|||
│ 车身.png |
|||
│ |
|||
└─地图 |
|||
</pre> |
|||
<br> |
|||
<b>接下来</b><br> |
|||
了解完.ini文件如何加载后,现在可以关注单位属性信息本身了。<br> |
|||
让我们看看我们的单位是要存在在铁锈世界里,需要有什么条件。<br> |
|||
#单位的名字是必要的,请先在脑中想一个单位的名称吧。 |
|||
#单位需要有生命值,这是它在这个战争的世界里存亡的根本。 |
|||
#单位应该具备空间上的体积,并加上其身体重量,这是物理的世界。 |
|||
#战争需要招兵买马,生产制造都需要资源的支持,那么应该定义单位被生产出需要的资源多少。 |
|||
#而生产建造需要时间,为自己mod的单位定义参差的时间,来左右游戏的节奏。 |
|||
以上是单位在[core]节所应该填写的项。 |
|||
#游戏是2d画面,单位应该有一个视觉上的身体,使用一张完全俯视角的图片作为单位的身体,当单位移动和旋转时,图片会移动和旋转。(呃,建筑和地图贴图是斜45°俯视,单位是垂直俯视,这是奇怪的事实) |
|||
#游戏有死亡后残骸的设定以增加真实感,出于玩家观感考虑,你应该再画出单位被摧毁后的样子。 |
|||
#为单位添加其映在地板上的阴影,增加真实感。<code>image_shadow:</code>的值可以填图片路径,但通常填"AUTO"游戏自动在“身体”下绘制一个相同轮廓的半透明黑色的图片作为阴影。 |
|||
以上是单位在[graphics]节所应该填写的项。 |
|||
#可能您的单位需要一些攻击手段来“自保”,先使用<code>canAttack: true</code>让单位能够瞄准敌人吧。 |
|||
#除了意念攻击,多数攻击手段都是有攻击距离的,使用<code>maxAttackRange:</code>填写整数来限制单位的最大攻击距离(也许你知道原版坦克的最大射程) |
|||
以上是单位在[attack]节所应该填写的项。<br> |
|||
铁锈里的攻击是炮台用于旋转瞄准和发射弹丸,弹丸用于飞行和落到敌人身上造成伤害。 |
|||
<pre style="margin: 0;padding: 5px;border: 1px solid;background-color: #fffff5;white-space: pre;overflow-x: auto;"> |
|||
#一个炮台 |
|||
[turret_1] |
|||
x: 0 ← 炮台相对单位自身中心的x轴位置 |
|||
y: 0 ← 炮台相对单位自身中心的y轴位置 |
|||
projectile: 1 ← 发射哪种弹丸 |
|||
shoot_sound:tank_firing:0.3 ← 射击时的音效,":0.3"是音量 |
|||
shoot_flame:small ← 射击时的火焰帧动画(使用游戏自带的帧动画,有自定义的) |
|||
shoot_light:#FFEECCCC ← 射击时渲染的闪光的颜色 |
|||
#这只是一个例子,有更多的参数选项 |
|||
</pre> |
|||
<br> |
|||
<pre style="margin: 0;padding: 5px;border: 1px solid;background-color: #fffff5;white-space: pre;overflow-x: auto;"> |
|||
#一个弹丸 |
|||
[projectile_1] |
|||
directDamage: 25 ←对命中的敌人造成的伤害 |
|||
life: 60 ←弹丸至多存在多长时间 |
|||
speed: 5 ←弹丸的飞行速度 |
|||
frame: 1 ←弹丸图片使用游戏自带贴图集的哪一帧 |
|||
drawSize: 1 ←贴图绘制的大小 |
|||
</pre> |
|||
[turret_NAME]和[projectile_NAME]节在一个.ini文件可以设置多个,即是一个单位可以有多个炮塔,通过变“NAME”来区分它们。 |
|||
#铁锈有海陆空兵种的设定,这取决于单位的移动类型,常见有:LAND,WATER,AIR,还有HOVER(悬浮,水陆都可通行)等。 |
|||
#单位移动需要设定移动速度、启动时加速的加速度和停止时减速的加速度。转向速度和加速度。 |
|||
以上是[movement]节应填的内容。 |
|||
设置单位的各个属性像是组装一台汽车,为几块功能区域选择零件,确定零件的参数,组装。在许多种属性中选择一个配方,让自己满意。<br> |
|||
* 准备一个文本编辑器(手机端推荐MT管理器/ES文件浏览器编辑器,电脑端推荐Visual Studio Code、Sublime) |
|||
设置不同兵种创造一个动态平衡的世界。<br> |
|||
我们可以给你的帮助是:明了的零件市场。使动态平衡的战略战术概念。 |
|||
* 了解铁锈模组文件的构成 [[模组导入|[链接]]] |
|||
=== 初识ini<ref>[https://baike.baidu.com/item/ini%E6%96%87%E4%BB%B6/9718973 ini文件_百度百科]</ref> === |
|||
ini文件是一种配置文件,由节(Section)、键(Key)、值(Value)组成。一个节中通常包含多个键,每个键对应一个值,键和值通过<code>:</code>进行连接。<ref>一般ini通过<code>=</code>连接,但在铁锈中使用<code>:</code>连接</ref>在铁锈中,ini文件用于存储单位的信息,对单位的各种数值进行设置。 |
|||
例如: |
|||
{{折叠|一个ini文件例子|<pre> |
|||
[core] |
|||
name: tank |
|||
price: 1000 |
|||
[movement] |
|||
moveSpeed: 2 |
|||
</pre>}} |
|||
在上面这段ini中,我们可以清晰的看到:core中name的值为tank,movement中moveSpeed的值为2。 |
|||
[[Mod语法|详细的ini教程]] |
|||
=== 调试单位 === |
|||
==== 重新加载单位 ==== |
|||
通常情况下,每次进入铁锈时,模组会被自动加载。单击主界面中“模组”按钮后,找到“重载数据”按钮,单击即可重新加载模组数据。 |
|||
如果你正在沙盒中进行模组调试,在actions、all和modded中可以找到“Reload units”,单击此按钮铁锈将会重新加载所有单位。如果你只是更改了单位的数据,也可以在modded中单击“Quick Reload”,此时铁锈会以很快的速度重新加载单位。 |
|||
==== Debug按钮 ==== |
|||
在沙盒的actions中,有一个“Debug”选项,默认为关闭,打开此选项后,单击任意单位的血量都会看到“--Debug--”字样和当前单位的信息。 |
|||
{{折叠|Debug可以显示的信息|* 单位name |
|||
* 单位id |
|||
* x |
|||
* y |
|||
* 高度 |
|||
* 角度 |
|||
* 图层 |
|||
* 自定义资源 |
|||
* 自定义内存(memory数组中的值不能显示) |
|||
* 自定义目标(customTarget1)}} |
|||
如果你的单位使用了自动触发(AutoTrigger),在打开“Debug”选项后,还可以打开“Trigger Debug”选项,打开此选项后,选中任意单位将能够看到它们的自动触发,并且能够看到自动触发中单个条件的值。<references /> |
|||
==PC端== |
|||
注:你如果使用系统记事本编辑单位ini,请不要输入中文等特殊符号,会导致铁锈出现乱码(编码不同) |
|||
== 相关链接 == |
|||
* [[自定义内存]] |
|||
* [[模组导入]] |
|||
* [[变量]] |
|||
[[分类:模组制作]] |
2024年2月26日 (一) 22:19的最新版本
序言
本文引导想要学习制作mod单位的玩家具有制作自己单位的能力。
概念
游戏中的原版单位的属性信息有两种存储方式:一种为游戏早期的直接写在游戏的.jar或.dex文件中,另一种,在游戏具有mod系统后,以一个单位一个.ini文件的形式进行存储。我们制作mod单位使用这种形式。
这里的.ini文件为UTF-8文本文件,使用记事本等文本编辑器即可修改。
具体属性存储方式使用键值对(key: value)进行存储。即单位具体某项属性名称后跟英文冒号然后填这个属性的值。如:
# name为单位的名称,这里值为c_interceptor name: c_interceptor # price为单位的造价,即单位的造价为600 price: 600 maxHp: 250
.ini文件内容里还有小节的概念,即使用英文方括号包裹小节名称并单独占一行来划分单位的不同功能,如:
# 概念型坦克的四个炮台中两个炮台的设定,[turret_cannon2]和[turret_cannon3] [turret_cannon2] #top right cannon x: 0 y: 0 attachedTo: base2 copyFrom: cannon1 linkDelayWithTurret: cannon1 warmup:30 [turret_cannon3] #bottom left cannon x: 0 y: 0 attachedTo: base3 copyFrom: cannon1 linkDelayWithTurret: cannon1 warmup:60
.ini文件的位置
一个mod在文件存储意义上,是一个具有多层目录结构的文件夹。(mod直接以文件夹的形式而非.rwmod打包形式放入游戏读取目录下也可被游戏正常加载)
mod文件想要加载到游戏中应该放在:(PC端)"Rusted Warfare/mods/units/" (Android端)"rustedWarfare/units/"或"/com.corrodinggames.rts/files/units/"
#以PC端游戏目录为例 mods └─units │ custom_units_here.txt │ └─中型坦克改_v0.2 ← 该mod的文件夹 │ all-units.template │ mod-info.txt │ ├─BGM ├─_未完成 ├─其他 ├─单位 │ └─中型坦克 ← 该单位的文件夹 │ 中型坦克.ini ← 单位“中型坦克”的.ini文件 │ 开火.ogg │ 残骸.png │ 炮塔.png │ 车身.png │ └─地图
接下来
了解完.ini文件如何加载后,现在可以关注单位属性信息本身了。
让我们看看我们的单位是要存在在铁锈世界里,需要有什么条件。
- 单位的名字是必要的,请先在脑中想一个单位的名称吧。
- 单位需要有生命值,这是它在这个战争的世界里存亡的根本。
- 单位应该具备空间上的体积,并加上其身体重量,这是物理的世界。
- 战争需要招兵买马,生产制造都需要资源的支持,那么应该定义单位被生产出需要的资源多少。
- 而生产建造需要时间,为自己mod的单位定义参差的时间,来左右游戏的节奏。
以上是单位在[core]节所应该填写的项。
- 游戏是2d画面,单位应该有一个视觉上的身体,使用一张完全俯视角的图片作为单位的身体,当单位移动和旋转时,图片会移动和旋转。(呃,建筑和地图贴图是斜45°俯视,单位是垂直俯视,这是奇怪的事实)
- 游戏有死亡后残骸的设定以增加真实感,出于玩家观感考虑,你应该再画出单位被摧毁后的样子。
- 为单位添加其映在地板上的阴影,增加真实感。
image_shadow:
的值可以填图片路径,但通常填"AUTO"游戏自动在“身体”下绘制一个相同轮廓的半透明黑色的图片作为阴影。
以上是单位在[graphics]节所应该填写的项。
- 可能您的单位需要一些攻击手段来“自保”,先使用
canAttack: true
让单位能够瞄准敌人吧。 - 除了意念攻击,多数攻击手段都是有攻击距离的,使用
maxAttackRange:
填写整数来限制单位的最大攻击距离(也许你知道原版坦克的最大射程)
以上是单位在[attack]节所应该填写的项。
铁锈里的攻击是炮台用于旋转瞄准和发射弹丸,弹丸用于飞行和落到敌人身上造成伤害。
#一个炮台 [turret_1] x: 0 ← 炮台相对单位自身中心的x轴位置 y: 0 ← 炮台相对单位自身中心的y轴位置 projectile: 1 ← 发射哪种弹丸 shoot_sound:tank_firing:0.3 ← 射击时的音效,":0.3"是音量 shoot_flame:small ← 射击时的火焰帧动画(使用游戏自带的帧动画,有自定义的) shoot_light:#FFEECCCC ← 射击时渲染的闪光的颜色 #这只是一个例子,有更多的参数选项
#一个弹丸 [projectile_1] directDamage: 25 ←对命中的敌人造成的伤害 life: 60 ←弹丸至多存在多长时间 speed: 5 ←弹丸的飞行速度 frame: 1 ←弹丸图片使用游戏自带贴图集的哪一帧 drawSize: 1 ←贴图绘制的大小
[turret_NAME]和[projectile_NAME]节在一个.ini文件可以设置多个,即是一个单位可以有多个炮塔,通过变“NAME”来区分它们。
- 铁锈有海陆空兵种的设定,这取决于单位的移动类型,常见有:LAND,WATER,AIR,还有HOVER(悬浮,水陆都可通行)等。
- 单位移动需要设定移动速度、启动时加速的加速度和停止时减速的加速度。转向速度和加速度。
以上是[movement]节应填的内容。
设置单位的各个属性像是组装一台汽车,为几块功能区域选择零件,确定零件的参数,组装。在许多种属性中选择一个配方,让自己满意。
设置不同兵种创造一个动态平衡的世界。
我们可以给你的帮助是:明了的零件市场。使动态平衡的战略战术概念。