《饥荒》食谱代码深入详解

时间:2016/01/30 10:38:15 编辑:小丽人
页面导航:

饥荒食谱代码怎么看?许多玩家觉得看代码是件很麻烦的事情都懒得去看,但其实代码是非常有用的,因为只有代码是最完整最真实的。下面小编就为大家带来了饥荒食谱代码深入详解,希望对大家有帮助。

为什么要学会看代码?

食谱代码解析的目的在于帮助玩家通过查看代码这一简单方式,了解自己目前游戏版本的食谱。这样做的优势主要在于实时性和完整性。如果你用某个网站,某个工具来查询,不一定能获得你目前游戏版本的食谱,也可能不全,而代码则忠实而完整地展示一切。

《饥荒》食谱代码深入详解

劣势大概有两个:第一代码是英文的,看懂大概需要初中英语水平,有些菜的名字要与汉化版对应起来可能有点难度;第二相比起方便的工具和网页,代码并没有友好的用户界面,略有点枯燥。

找到代码文件。以SW为例:进入游戏安装文件夹,依次进入:data -> DLC0002 -> scripts
食谱相关代码文件主要有三个。首先在其中找到cooking.lua,用记事本打开。这里面记录的是基本食物的度数属性。在记事本中搜索“AddIngredientValues”,找到它第一次出现的地方。目前版本大家应该都是:

local fruits = {"pomegranate", "dragonfruit", "cave_banana"}
AddIngredientValues(fruits, {fruit=1}, true)

从以上这两行开始,直到最后一行AddIngredientValues出现的位置,之间的内容都是我们关心的食物属性。这两行的意思是:

定义fruits为石榴(pomegranate)、火龙果(dragonfruit)、香蕉(cave_banana),所有fruits里面的食物都有1的果度(即fruit=1)

例如

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

这一行是说,榴莲(durian)拥有1果度(fruit=1)以及1怪兽度(monster=1)。

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

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

这一行加了注释,所以跟游戏无关。从这一行可以看出,制作方本来想让种子也能进锅,但是后来由于某些原因放弃了。

至此就解释了怎么看cooking.lua文件。这些度数起何作用,就要看下一个文件:preparedfoods.lua。

在同样的位置,我们找到preparedfoods.lua文件,同样用记事本打开。这个文件就比较明了了,在local foods之后的大括号里面的,就是我们要的所有菜谱。除了SW的所有新增菜品,还包括原版就有的肉丸等等。

以这道菜为例:butterflymuffin,中文翻译大概是蝴蝶蛋糕、蝴蝶玛芬之类,反正就是有个蝴蝶的那道菜,这是原版菜之一。

butterflymuffin =

{

test = function(cooker, names, tags) return names.butterflywings and not tags.meat and tags.veggie end,

priority = 1,

weight = 1,

foodtype = "VEGGIE",

health = TUNING.HEALING_MED,

hunger = TUNING.CALORIES_LARGE,

perishtime = TUNING.PERISH_SLOW,

sanity = TUNING.SANITY_TINY,

cooktime = 2,

}

test这行,return后面,end之前的内容(names.butterflywings and not tags.meat and tags.veggie)就是就是合成公式。这个公式是说:需要蝴蝶翅膀(names.butterflywings)、不能有肉类(not tags.meat)、需要有菜类(tags.veggie)。每个and隔开两个要求,not是说不能有,注意not的运算优先级要高于and。

后面每一行的解释:

priority优先度,如果食材适用于烹饪两个及以上的菜,则选择优先度高的。如果优先级相同,则结果随机,每种结果是等可能的。

weight重量?我并没有搞懂,但是只有butterflymuffin有这个属性,总之也不是关注的重点。

foodtype决定烹饪结果的种类,应该是用来判断维京女能不能吃该食物的。

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

回到前面,health决定回复的血量,hunger决定饱食度,perishtime决定腐烂时间,sanity决定回复SAN量。然而它们都没有明确写出来,这就需要我们找第三个文件:tuning.lua。

也是在该文件夹,打开tuning.lua。

比如我们之前看到health = TUNING.HEALING_MED,这一行,要想知道TUNING.HEALING_MED是多少,这时候我们就在tuning.lua里面搜索“HEALING_MED”。于是我们搜到这一行:

HEALING_MED = 20,

很明显butterflymuffin具有补血20点的属性。下面的SAN值回复也是类似。

而饱食度的表示方法稍微复杂一些:

搜索CALORIES_LARGE,找到了

CALORIES_LARGE = calories_per_day/2, -- cooked meat

意味着它的饱食度回复量是calories_per_day的二分之一(记得“--”之后的是注释,不用管它)。

calories_per_day又是多少?再搜索一下,就找到:

local calories_per_day = 75

这就简单了,75/2=37.5,就是饱食度回复量。

腐烂时间:

PERISH_SLOW = 15*total_day_time*perish_warp,

也就是15天腐烂,其他的也类似。

饥荒联机版
最新版下载 全版本下载 攻略教程 联机教程
饥荒新手攻略
食谱大全 BOSS打法 安家位置 联机教程 全人物详解
各季节必备物品 武器装备介绍 快速砍树方法 查看版本方法 所有材料介绍
饥荒热门攻略
击杀小偷方法 利用巨鹿方法 洞穴怪物详解 冒险速通攻略 脑残值补充方法
陷阱布置技巧 牦牛详细介绍 坎普斯背包出处 危险生物排名 新手百日入门
正版资料整理 装备道具汇总 蜘蛛巢穴养殖心得 存档位置介绍 增加生存时间方法
本文导航
第1页:第1页 第2页:第2页
游戏聚合
  • 饥荒
  • Don't Starve
  • 游戏类型:动作冒险
  • 游戏大小:53.49 MB
  • 游戏语言:简体中文
  • 上市日期:2013-04-23
  • 标签: 刺激 战斗 穿越 解谜
9.3
  • 好玩

    2227+1
  • 不好玩

    342+1
相关攻略
相关游戏