对《饥荒的食谱码》的深入细致的分析

“饥荒”食谱代码分析的目的是帮助玩家通过简单地查看代码来理解他们当前版本的食谱。这样做的好处主要在于实时性和完整性。如果你使用一个网站或者一个工具来查询,你可能得不到你当前游戏版本的配方,或者可能不完整,但是代码忠实完整的展示了一切。

大概有两个缺点:第一个代码是英文的,大概需要初中英语水平才能看懂,有些菜品对应中文版可能有点困难;与方便的工具和网页相比,代码没有友好的用户界面,有点枯燥。

找到代码文件。以SW为例:进入游戏安装文件夹,然后输入:data -DLC0002 -scripts。

有三个与配方相关的主要代码文件。先在里面找到cooking.lua,用记事本打开。这里记录的是基础食物的程度属性。在记事本中搜索“AddIngredientValues”,找到它第一次出现的地方。目前,每个人都应该:

土特产水果= { "石榴","火龙果","山洞_香蕉" }

AddIngredientValues(水果,{fruit=1},true)

从上面两行到最后一行AddIngredientValues出现的位置,这两行之间的内容就是我们关心的食物属性。这两条线的意思是:

水果定义为石榴、火龙果、香蕉(cave_banana),水果中所有食物的果度为1(即水果=1)。

例如

AddIngredientValues({"durian"},{fruit=1,monster=1},true)

这一行说榴莲有1果度(水果=1)和1怪物度(怪物=1)。

以“-”开头的一行代码是注释,不影响游戏,比如:

- AddIngredientValues({"seeds"},{seed=1},true)

这一行是有注释的,所以与游戏无关。从这句台词可以看出,制作方原本是想让种子入锅的,后来因为一些原因放弃了。

这解释了如何读取文件。这些学位做什么取决于下一个文档:preparedfoods.lua。

在同一个位置,我们找到了preparedfoods.lua文件,同样用记事本打开。这个文件是比较明确的,本地食物后面的大括号里是我们要的所有食谱。除了SW的所有新菜,还包括肉丸等等。

以这道菜为例:butterflymuffin,中文翻译大概是蝴蝶蛋糕,蝴蝶松饼之类的,反正就是带蝴蝶的那道菜,算是原菜之一。

蝴蝶松饼=

{

test = function(cooker,names,tags)返回names . butterfly wings and not tags . meat and tags . vegie end,

优先级= 1,

重量= 1,

foodtype = "VEGGIE ",

健康=调谐。HEALING_MED,

饥饿=调谐。卡路里_大,

perishtime =调整。灭亡_缓慢,

健全=调整。理智_微小,

烹饪时间= 2,

}

在测试行中,返回之后和结束之前的内容(名称。蝴蝶翅膀而不是标签。肉和标签。veggie)是组成公式。这个公式的意思是:需要蝴蝶翅膀,不需要肉(不是tags.meat)和蔬菜(tags.veggie)。每个和都由两个要求分隔。没有并不意味着不可能有。请注意,Not的操作优先级高于and。

以下各行的解释:

优先级优先级,如果食材适合做两个以上的菜,选择优先级高的那一个。如果优先级相同,则结果是随机的,每个结果都有相同的可能性。

体重体重?不懂,但只有butterflymuffin有这个属性,总之不是关注的焦点。

食物类型决定了烹饪结果的种类,这应该用来判断维京女人是否可以吃这种食物。

跳过四行,cooktime决定烹饪时间。

回到前面,健康决定恢复血量,饥饿决定饱腹,死亡决定腐烂时间,理智决定恢复SAN量。但是没有写清楚,这就需要我们找到第三个文件:tuning.lua。

同样在这个文件夹中,打开tuning.lua。

例如,我们看到了health = TUNING行。HEALING_MED之前。如果我们想知道。HEALING_MED是,我们此时会在tuning.lua中搜索“HEALING_MED”。所以我们找到了这条线:

HEALING_MED = 20,

很明显butterflymuffin有补血20分的特性。以下SAN值回复类似。

饱腹感的表现稍微复杂一些:

搜卡路里_大,我找到了。

卡路里_大=卡路里_每天/2,-熟肉

说明它的饱腹感恢复是卡路里_per_day的一半(记住“-”后面是评论,不用管它)。

每天的卡路里是多少?再次搜索,你会发现:

当地每日卡路里= 75

这个很简单,75/2=37.5,就是饱腹感恢复。

衰变时间:

灭亡_缓慢= 15 *总_日_时*灭亡_经,

那就是15天的衰变,其他的也差不多。