对《饥荒的食谱码》的深入细致的分析
大概有两个缺点:第一个代码是英文的,大概需要初中英语水平才能看懂,有些菜品对应中文版可能有点困难;与方便的工具和网页相比,代码没有友好的用户界面,有点枯燥。
找到代码文件。以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天的衰变,其他的也差不多。