逗游網(wǎng):值得大家信賴的游戲下載站!
發(fā)布時間:2016-03-21 10:53 來源:互聯(lián)網(wǎng)
《饑荒》食譜代碼解析的目的在于幫助玩家通過查看代碼這一簡單方式,了解自己目前游戲版本的食譜。這樣做的優(yōu)勢主要在于實時性和完整性。如果你用某個網(wǎng)站,某個工具來查詢,不一定能獲得你目前游戲版本的食譜,也可能不全,而代碼則忠實而完整地展示一切。
劣勢大概有兩個:第一代碼是英文的,看懂大概需要初中英語水平,有些菜的名字要與漢化版對應起來可能有點難度;第二相比起方便的工具和網(wǎng)頁,代碼并沒有友好的用戶界面,略有點枯燥。
找到代碼文件。以SW為例:進入游戲安裝文件夾,依次進入:data -> DLC0002 -> scripts
食譜相關(guān)代碼文件主要有三個。首先在其中找到cooking.lua,用記事本打開。這里面記錄的是基本食物的度數(shù)屬性。在記事本中搜索“AddIngredientValues”,找到它第一次出現(xiàn)的地方。目前版本大家應該都是:
local fruits = {"pomegranate", "dragonfruit", "cave_banana"}
AddIngredientValues(fruits, {fruit=1}, true)
從以上這兩行開始,直到最后一行AddIngredientValues出現(xiàn)的位置,之間的內(nèi)容都是我們關(guān)心的食物屬性。這兩行的意思是:
定義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)
這一行加了注釋,所以跟游戲無關(guān)。從這一行可以看出,制作方本來想讓種子也能進鍋,但是后來由于某些原因放棄了。
至此就解釋了怎么看cooking.lua文件。這些度數(shù)起何作用,就要看下一個文件: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之前的內(nèi)容(names.butterflywings and not tags.meat and tags.veggie)就是就是合成公式。這個公式是說:需要蝴蝶翅膀(names.butterflywings)、不能有肉類(not tags.meat)、需要有菜類(tags.veggie)。每個and隔開兩個要求,not是說不能有,注意not的運算優(yōu)先級要高于and。
后面每一行的解釋:
priority優(yōu)先度,如果食材適用于烹飪兩個及以上的菜,則選擇優(yōu)先度高的。如果優(yōu)先級相同,則結(jié)果隨機,每種結(jié)果是等可能的。
weight重量?我并沒有搞懂,但是只有butterflymuffin有這個屬性,總之也不是關(guān)注的重點。
foodtype決定烹飪結(jié)果的種類,應該是用來判斷維京女能不能吃該食物的。
跳過四行,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天腐爛,其他的也類似。
上一篇: 《全境封鎖》暗區(qū)刷裝備路線圖
下一篇: 《全境封鎖》武器裝備天賦大全及配件屬性