游迅网
游迅网 > 攻略首页 > 单机游戏攻略 > 正文

《饥荒》使用代码查看食谱方法介绍

2016-01-29 15:43:40来源:贴吧编辑:评论(0)

   《饥荒》中玩家们可以通过看代码研究饥荒食谱,这样可以实时完整的了解游戏的最新食谱,这里为大家带来玩家“a4440”分享的使用代码查看食谱方法介绍,一起来了解一下吧。

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

   现在回到preparedfoods.lua,接下来选取部分菜谱,继续解释公式计算方法和一些稀有的菜品属性。

   蛙腿三明治:

   frogglebunwich =

   {

   test = function(cooker, names, tags) return (names.froglegs or names.froglegs_cooked) and tags.veggie end,

   priority = 1,

   foodtype = "MEAT",

   health = TUNING.HEALING_MED,

   hunger = TUNING.CALORIES_LARGE,

   perishtime = TUNING.PERISH_SLOW,

   sanity = TUNING.SANITY_TINY,

   cooktime = 2,

   },

   这个的公式里面出现了"or",意味着至少要取生蛙腿(froglegs)或熟蛙腿(froglegs_cooked)中的一个。整个公式是说:有蛙腿(生或熟)且有蔬菜(tags.veggie)。运算优先级:not > and > or,这里为了先算or,就把or两边的东西用括号括起来了。

   太妃糖:

   taffy =

   {

   test = function(cooker, names, tags) return tags.sweetener and tags.sweetener >= 3 and not tags.meat end,

   priority = 10,

   foodtype = "VEGGIE",

   health = -TUNING.HEALING_SMALL,

   hunger = TUNING.CALORIES_SMALL*2,

   perishtime = TUNING.PERISH_SLOW,

   sanity = TUNING.SANITY_MED,

   cooktime = 2,

   tags = {"honeyed"}

   },

   这个公式里面有tags.sweetener >= 3,意味着甜度大于等于3。整个公式是说:甜度大于等于3,且不能有肉(not tags.meat)。那么这里就要用到之前cooking.lua里面的数据了。在cooking.lua里面搜索sweetener,找到唯一一行:

   AddIngredientValues({"honey", "honeycomb"}, {sweetener=1}, true)

   意味着蜂蜜和蜂房都可以提供1甜度。那么我们就知道,至少需要三个蜂蜜或蜂房。当然,拿蜂房做菜非常的奢侈。

   另外要注意太妃糖里面health = -TUNING.HEALING_SMALL,这一行。注意等号后面的那个负号,意味着吃太妃糖要损血,减少的血量是HEALING_SMALL,具体值可以在tuning.lua里面查询。

   茄子饭/茄子煲/茄子杂烩之类的名字:

   stuffedeggplant =

   {

   test = function(cooker, names, tags) return (names.eggplant or names.eggplant_cooked) and tags.veggie and tags.veggie > 1 end,

   priority = 1,

   foodtype = "VEGGIE",

   health = TUNING.HEALING_SMALL,

   hunger = TUNING.CALORIES_LARGE,

   perishtime = TUNING.PERISH_SLOW,

   sanity = TUNING.SANITY_TINY,

   temperature = TUNING.HOT_FOOD_BONUS_TEMP,

   temperatureduration = TUNING.FOOD_TEMP_BRIEF,

   cooktime = 2,

   },

   这里面出现了稀有的温度属性:

   temperature = TUNING.HOT_FOOD_BONUS_TEMP,

   temperatureduration = TUNING.FOOD_TEMP_BRIEF,

   temperature是温度影响,HOT_FOOD_BONUS_TEMP,可以在tuning.lua里面搜到是40,显然吃这个会让角色体温升高。相对的还有COLD_FOOD_BONUS_TEMP=-40,意思也不用我说了吧。

   temperatureduration是温度持续时间,可以在

饥荒

饥荒

  • 游戏类别:动作冒险
  • 游戏平台:/PC/PS4/XboxOne/
  • 开发商:Klei Entertainment Inc
  • 发行商:Klei Entertainment
  • 发行时间:2013年4月23日
游戏介绍:

《饥荒》是由《闪克》制作组Klei制作发行的一款动作冒险类求生游戏,《饥荒》的故事讲述的是关于一名科学家被恶魔传送到了异世界荒野。他必须用自己的智慧在严酷的野外环境中求生,差不多就是《东京丛林》加上能灵巧活动的双手,或者《我的世界》加上消化系统。

点击进入 >> 饥荒手机版下载

推荐阅读

更多>>48小时热评资讯

更多>>精华推荐