逗游网:值得大家信赖的游戏下载站!

微信:doyo_game
关注逗游
单机首页 游戏库 排行榜 资讯 攻略 专题 合集 工具补丁 手机游戏 正版商城
所在位置:攻略中心 > 图文攻略 > 饥荒 > 正文

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

发布时间:2016-03-21 10:53 来源:互联网

 

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

游民星空

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

  找到代码文件。以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天腐烂,其他的也类似。

进入《饥荒》专区
查看更多《饥荒》攻略
标签:饥荒 食谱代码深入 
https://www.doyo.cn/article/247884复制本文地址
阅读本文后,您的心情是:(选择后可查看结果)
 
恶心
愤怒
强赞
感动
路过
无聊
雷囧
关注
今日关注游戏
游戏专题
IGN 9分以上作品 愿者上钩钓鱼的那点趣事 深冬之寒,来一起看看游戏中精美的雪景吧