技术性

来自Survivalcraft 中文百科
跳转至: 导航搜索

本页整合了有关 Survivalcraft 的技术性资料,这些资料仅用于 MOD 的开发,对于普通玩家无意义。

游戏执行方式

Survivalcraft的WP版编译环境为 Mircosoft XNA Game Studio4.0,目标平台为WP7.5

安卓版执行环境为MonoGame。

IOS版执行环境为monotouch。IOS版本中所有代码均被编译成了机器码,因此很难修改游戏代码。

文件结构

Chunks.dat

Chunks.dat 是存档中存储地形数据的文件,KaalusAlpha 1.4 版本对 Chunks.dat 的结构做了改动以改善性能,一直沿用至今(最新版本:1.25)。

请参阅 Chunks.dat文件格式 以获取详细信息。

隐藏方块

空气(Air)、火(Fire)、水(Water)、岩浆(Magma)、基岩(Bedrock)方块无法在创造模式中直接通过单击田形按钮获得。只能通过修改游戏数据文件或世界文件来获得。

MOD

目前主流的修改方式是对游戏数据及纹理文件进行修改。 后缀名为 XNB 的文件是由Microsoft XNA Game Studio 编译生成的资源文件。

DataBase.xnb

这里存储了游戏中的绝大多数数据,包括实体(动物、玩家、船等)的数据,部分方块的特殊数据。 程序通过.NET(mono)的反射机制动态的调用dll中的代码来实现方块的特殊功能,而反射机制也需要这里的一些数据。

BlockData.xnb

游戏中方块与物品的通用属性被存储在此文件中。常见的参数有耐久度、各种抗性、燃烧值及营养值等等。

CraftingRecipes.xnb

游戏中所有方块与物品的配方被存储在此文件中。

配方的排列通过矩阵定义的。首先,用 abcd 等字母描述所需的不同材料。然后用最多三个字符串来表示其排列方式。

每行最多存在三个字母,空格则表示此格无材料。

下面就是一个完整的Recipe标签,合成结果、所用材料、热量需求以及描述均是以属性的形式储存的,标签的内容是三个字符串,表示合成所需的空间结构。

<Recipe Result="ChestBlock" ResultCount="1" RequiredHeatLevel="0" a="planks"
  Description="Make a storage chest from planks">
  "aaa"
  "a a"
  "aaa"
</Recipe>

Content.pak

自从1.27更新之后,游戏使用了新的引擎,所以以前的XNB什么的再也不会出现了 取而代之的是一个叫Content.pak的文件,这里面有游戏的全部资源,作用相当于以前的Content文件夹


生命值与损伤系统

生命值与损伤耐力
每个实体(包括玩家、动物及船)都有一个生命值。该值的范围从 0(死亡)至 1(完整生命值),此外,每个实体有三种损伤耐力值:
攻击耐力(AttackResilience),使用它计算攻击损伤
燃烧耐力(FireResilience),使用它计算每秒燃烧损伤
摔落耐力(FallResilience),使用它计算不会受到损伤的最小速度(米/秒)

损伤计算
攻击损伤计算
公式:对实体的损伤=武器威力/实体攻击耐力。

每秒燃烧损伤计算
公式:每秒对实体的损伤=1/实体燃烧耐力。

留言