2015-02-19 15:33:15 k73游戏之家 作者:圣心不死
《末日拾荒者》的玩家们应该都知道游戏中有很多的代码,这些代码有什么作用呢?下面就给大家带来了末日拾荒者代码作用一览。
id部分:
AA:BB.CC
在这里:
AA - 我们将导入的数据集的id
BB - 我们想在数据集中设置的物品的id
CC - 我们想要物品的可选次级组id
在末日拾荒者中绝大多数数据都将涉及到id,饥饿状态是状态id 5,狗人是生物id 1 ,而开启冷冻遭遇是遭遇id 2。甚至有几个复杂的遭遇id,例如物品。举例来说,物品‘中等长度的树枝’是id 13.0,13是组id,而0是次级组id。
游戏中的所以东西都使用着这些id当涉及到其他东西时。这样如果一个狗人有强壮作为初始状态,那么在狗人的生物数据中会指明‘60’作为初始状态。
然而,如果其他的mod或基础的游戏给不同的东西使用相同的id,这些id也可能成为一个麻烦。举个例子,如果你有个汽车有着‘13.0’id的mod,而基础游戏设置‘13.0’为中等长度设置的id会怎么样?那么如果你在你的mod中提到‘13.0’,游戏需要知道你想要哪一个‘13.0',基础游戏版本或者是mod版本?
这就是前缀的填入的地方(上面的AA)。你可以通过给id前面加上数据集id和冒号来指明你想要的数据。如果没有指明前缀,游戏将假定你想使用你正在编辑的当前的mod中版本。否则,它将假定你想要使用在mod中你指明的版本。
例如,itemID=13.0 将引用这个mod副本中的13.0
如果一个mod想要引用基础游戏的数据,那么它必须指明是mod‘0’。
例如,itemID=0:13.0 将引用基础数据副本中的13.0
同时如果制作mod的人想要引用另一个mod,只需要用‘0’代替那个mod的名字。
例如 itemID=DeFactoMod:13.0 将引用DeFactoMod的副本中13.0
像这样的系统的好处是:制作mod的人无论每次使用什么他们想要的id,而不用担心是否会和其他mod冲突。
事件或许是在游戏中最复杂的的数据类型,而大部分复杂性来自:事件从一个到另一个的流动的方式。
从概念上看,把事件看作箭头连接的节点是最容易的。像一副流程图,一个事件编辑的例子看起来像这样
:
在任何人发问前,这个编者不会对你有什么好处。它不是读取xml文件。代替的是:它从运行在本地服务器
的我的SQL数据库读取数据。我仅仅是把数据库输出成xml格式因为绝大多数制作mod的人不会有数据库运行
在他们能够使用的服务器。
虽然,如果有技术的modder们有能力设置个数据库……(对modder们真是个不幸的消息)
不管怎么,正如你在上面看到的:事件是由彩色箭头连接的灰色节点。在XML文件,一个事件是由这些灰色
节点中的一个和它发出所以箭头组成。
所有事件都有以下方面(被要求):
id* - 这个事件独一无二的id (最简单的方法是在之前最高数字上加1)
strName* - 显示为黄色的文本如果玩家有输入信息的选项。否则是看不见的
strDesc* - 主体文本。在事件面板中我所能获得最长文本大概有130多个词。或许150个词是适合游戏中的
屏幕的限制。更长的文本需要分裂成连续的面板(没有选项箭头),所以如果它们正在变长,那么最好还把
它们拆开。
strImg - 在这个面板显示在面板中的图片。如果没有指明使用的图片,默认使用当前六角格的快照(比如
战斗)
nItemsID - 特殊遭遇可获得的物品。像是破碎的窗户或是控制面板之类的东西,它们只会存在于事件的情
景中。合适的物品和玩家拥有的技能会被自动添加:基于可能的结果和仅仅是玩家拥有它们。
nRemoveTreasureID - 在这个面板物品将会从玩家身上移除(通常是提交任务物品,但也可能是失去/摧毁
物品等等)
aPreConditions - 玩家状态必须满足这个事件才能生效。如果玩家丢失必要的状态,这个面板将不会出现。这往往被用着对话中以从后续的对话中分离最初的对话。它也可能被用到隐藏/显示某些面板:基于技能或当前的物品。例如,玩家必须得了霍乱才能看见这个节点,或者玩家必须还没有拜访过DMC才能看见这个节点等等。要用逗号分隔状态的ID表。把-放在状态ID前面表示这状态必须不在玩家身上才能触发。
aConditions - Player conditions this panel applies or removes when done. (E.g. injury, flags
denoting a conversation was had, etc.) Comma-separated list of IDs of conditions. Putting a
"-" before a condition ID means this condition will be removed.
这面板玩家的状态将会被应用或移除当(该事件)被完成。要用逗号分隔状态的ID表。
fPrice - 当触发这个节点,大量的钱会被扣除。如果玩家没有足够的钱,节点不会被显示。
nCreatureID - 被产生生物的ID,例如在离开冷冻设施时产生一个狗人
ptCreatureHex - 生物出现的六角格坐标,如果适用。例如,‘40,0’(半径,方向),然后在北部(方向)40个(半径)六方格的位子产生一个狗人。方向是从零开始的六方格顺时针成环形到目标六方格
ptTeleport - 玩家将会被传送到的六方格坐标。如果仅指明x坐标将会将玩家随机传送到以x坐标为半径的环。
aMinimapHexes - "显示在地图(x,y)上可选文本标签的坐标。被用在哈特骨灰瓮的寻找和光晕的显示。例如,‘20x164=古阿斯冷冻设施’
bRemoveCreatures - 从当前六方格移除生物与否。用来保证当前格子是空的。
bRemoveUsed - 移除玩家用来抵达这个节点的物品。当用一般物品达到这个节点,而不是指明物品。例如光源。取值为1或0
nType - Whether this is a normal encounter or not. Encounter types include normal (0),
scavenge (1), battle (2), and hacking (3).这个事件是否是普通事件。事件类型包括普通,搜刮,战斗,黑客。
fLootChance - 如果搜刮事件被选择,在这个产生的面板中搜刮几率的变化。
fAccidentChance - The change in accident chance this panel creates, if chosen in a scavenge
encounter. 0.0 = 0%, 1.0 = 100%.如果搜刮事件被选择,在这个产生面板中事故几率的变化。
fCreatureChance - The change in creature chance this panel creates, if chosen in a scavenge
encounter. 0.0 = 0%, 1.0 = 100%.如果搜刮事件被选择,在这个产生面板中生物几率的变化。
vAccidents - 如果这次搜刮事件导致了一个事故,事故被选择的表格。
vLoot - 如果这个选项在搜刮事件被选择,额外的掠夺收益加入合适的搜刮。
ptEditor - 节点被编辑时的坐标,被游戏忽略。
部分翻译错误修改
同时如果制作mod的人想要引用另一个mod,只需要用‘0’代替那个mod的名字。
改为
同时如果制作mod的人想要引用另一个mod,只需要用mod的名字代替0。
K73小编推荐:末日拾荒者全游戏代码分享