《饑荒》MOD怎么制作及發(fā)布?Steam游戲庫(kù)中有MOD制作工具,并允許玩家發(fā)布屬于自己的MOD,今天小編帶來(lái)“NecroKaiser”分享的《饑荒》MOD制作及發(fā)布圖文教程,具體怎么實(shí)現(xiàn)一起來(lái)看吧。
準(zhǔn)備工作:編寫(xiě)MOD所需要的工具
編輯Lua文件時(shí),推薦使用notepad++[notepad-plus-plus.org],或者Vi/Vim(少數(shù)像我這樣的人才會(huì)用的編輯器)。
最后推薦你從Steam下載一個(gè)Don't Starve Mod工具,操作步驟如下:
一個(gè)MOD的基本文件結(jié)構(gòu)
這里我用由Eyres1制作的Never Perish Icebox(永久保鮮羊大白勺冰箱)來(lái)作為例子:
如上圖所示,一個(gè)必須具有兩個(gè)文件:
modmain.lua:游戲載入你制作的mod所需要的文件;
modinfo.lua:儲(chǔ)存mod的作者、版本等信息的文件。
modinfo.lua
第一行描述了該mod的名稱(chēng)
The name of the mod displayed in the 'mods' screen.
name = "Never Perish Icebox"
第二行是作者留下的對(duì)該mod的簡(jiǎn)介
A description of the mod.
description = "Food doesn't perish in the Icebox."
第三行記錄了制作者的名諱
Who wrote this awesome mod?
author = "Eyres Valkrie"
第四行是作者設(shè)置的mod版本號(hào)(注意,mod版本號(hào)跟游戲版本號(hào)是兩碼事)
A version number so you can ask people if they are running an old version of your mod.
version = "1"
第五行是本mod對(duì)應(yīng)的游戲API版本號(hào)(當(dāng)你自己制作了一個(gè)mod以后,記得在每次游戲更新后檢查自己mod是否依然能夠正常運(yùn)行,努力debug,并更改這一行的數(shù)值,然后上傳到創(chuàng)意工坊)
This lets other players know if your mod is out of date. This typically needs to be updated every time there's a new game update.
api_version = 10
第六行說(shuō)明本mod是否兼容 Don't Starve Together。
Compatible with Don't Starve Together
dst_compatible = true
第七行是向玩家說(shuō)明本mod是否和 Don't Starve 和 Reign of Giants 兼容(因?yàn)镈on't Starve Together和Don't Starve兩者有大量相同代碼,所以經(jīng)常有人把Don't Starve的mod和Don't Starve Together的mod交換使用)
Compatible with both the base game and reign of giants
donttarve_compatible = true
reign_of_giants_compatible = true
這八行說(shuō)明本mod是否需要重啟生效
Some mods may crash or not work correctly until the game is restarted after the mod is enabled/disabled
restart_required = false
第九行說(shuō)明本mod是否能夠兼容其他mod
Set this to true to prevent _ANY_ other mods from loading while this mod is enabled.
standalone = false
modmain.lua
Never Perish Icebox這個(gè)mod的modmain.lua中只有一行代碼
TUNING.PERISH_FRIDGE_MULT = 0;
它的作用是修改datascriptstuning.lua中TUNING對(duì)象的成員PERISH_FRIDGE_MULT,也就是修改游戲中Icebox的保鮮時(shí)間長(zhǎng)度。
由此可見(jiàn),要提供mod元信息,你就應(yīng)該給modinfo.lua;而為了真正實(shí)現(xiàn)你的mod的功能,你則應(yīng)該在modmain.lua 中編寫(xiě)代碼。
饑荒聯(lián)機(jī)版 | |||
最新版下載 | 全版本下載 | 攻略教程大全 | 最新版聯(lián)機(jī)教程 |
饑荒新手攻略 | ||||
食譜大全 | BOSS打法 | 安家位置 | 聯(lián)機(jī)教程 | 全人物詳解 |
各季節(jié)必備物品 | 武器裝備介紹 | 快速砍樹(shù)方法 | 查看版本方法 | 所有材料介紹 |
饑荒熱門(mén)攻略 | ||||
擊殺生物寶典 | 利用巨鹿方法 | 洞穴怪物詳解 | 冒險(xiǎn)速通攻略 | 腦殘值補(bǔ)充方法 |
陷阱布置技巧 | 牦牛詳細(xì)介紹 | 坎普斯背包出處 | 危險(xiǎn)生物排名 | 新手百日入門(mén) |
正版資料整理 | 裝備道具匯總 | 蜘蛛巢穴養(yǎng)殖心得 | 存檔位置介紹 | 增加生存時(shí)間方法 |
范例:如何制作一個(gè)新的人物mod
人物mod的文件結(jié)構(gòu)
如下圖所示,一個(gè)人物mod通常除了包括前面提到的modinfo.lua和modmain.lua以外,還包括anim、bigportraits、exported、images和scripts目錄,以及modicon.jpg、modicon.tex和modicon.xml文件。
官方人物
首先以官方人物Wilson為例,我們一起來(lái)研究一下選擇角色界面:
就文本方面,有如上圖所示的三個(gè)方面,其一是Wilson的口號(hào)(Quote),其二是Wilson的頭銜(Title),其三是Wilson的簡(jiǎn)介(Description),全部都來(lái)自文件
Don't Starve Togetherdatascriptsstrings.lua
自建人物
現(xiàn)在將自建人物mod導(dǎo)入mod目錄下,進(jìn)入游戲建立本地服務(wù)器并激活mod,可以看出這些文本和貼圖跟人物mod中文件之間的關(guān)系。
修改人物元信息
以Windows系統(tǒng)為例,打開(kāi)Notepad++,按下快捷鍵Ctrl + Shift + F,進(jìn)而在mod目錄中搜索esctemplate和ESCTEMPLATE并分別替換為你設(shè)計(jì)的人物的名稱(chēng),例如nymphoenix和NYMPHOENIX(注意大小寫(xiě))
如果你是在Linux系統(tǒng)上使用Vim編輯文件,又不知道怎么搜索并替換給定目錄下所有文件中的符合某字符串
find -type f -exec sed -e 's///' {} +
然后用Notepad++打開(kāi) modmain.lua,修改其中人物簡(jiǎn)介、稱(chēng)號(hào)和臺(tái)詞等。
編譯已完成的mod
如果你的mod涉及貼圖,例如人物mod、武器mod等,那么你就需要把繪圖得到的圖片(如果你的源文件不是格式而是其他其他格式,請(qǐng)先使用Photoshop、GIMP或者你自己選擇的支持透明度的圖像處理軟件將圖片格式轉(zhuǎn)為格式),編譯為tex貼圖文件。
首先你需要確認(rèn)自己安裝Don't Starve Mod Tools的目錄位置:
打開(kāi)其中高亮的mod_tools目錄,你可以在其中找到下面需要用到的可執(zhí)行文件scml.exe。
然后你需要調(diào)出Windows系統(tǒng)內(nèi)置控制臺(tái)cmd:
這時(shí)候會(huì)出現(xiàn)如下的窗口:
你需要做的就是把下面命令中的字樣、字樣和字樣分別改為上述可執(zhí)行文件scml.exe的路徑,你制作的mod中貼圖項(xiàng)目文件(*.scml)路徑和你的mod目錄的路徑,然后復(fù)制粘貼到控制臺(tái)中,按下回車(chē)鍵(Enter)運(yùn)行即可。
"" "" ""
(請(qǐng)保留上面命令中的雙引號(hào)!)
如果你有多個(gè).scml文件,你猜猜要怎么做?
整理并發(fā)布你的MOD
一屋不掃何以掃天下
一般來(lái)說(shuō),玩家在下載mod的時(shí)候都不希望看見(jiàn)自己要下載的mod奇大無(wú)比。我相信這是每一個(gè)制作者的責(zé)任,即保證功能與性能的同時(shí),保持mod的緊湊度,也就是說(shuō),一個(gè)mod目錄不應(yīng)該有無(wú)用文件存在。
那么寶貝兒們就要問(wèn)了,自己的mod目錄要怎樣清理呢?
首先,你應(yīng)該備份自己現(xiàn)有的mod目錄,即用壓縮/存檔軟件,如7zip[www.7-zip.org],對(duì)mod目錄進(jìn)行壓縮存檔,并在文件名后附加版本號(hào),方便自己查閱;之后刪除exported目錄;
然后將mod目錄里除了后綴名為.lua和.tex的文件全部刪除,再刪除空目錄。
文勝質(zhì)則史,質(zhì)勝文則野
既然你都已經(jīng)把mod制作出來(lái)了,不矜夸一番怎么可以?下面就教你如何將mod發(fā)布到Steam創(chuàng)意工坊~
首先從Steam啟動(dòng)Don't Starve Mod Tools,選擇上傳工具,你會(huì)看見(jiàn)以下窗口,選擇你需要上傳mod對(duì)應(yīng)的游戲,即Don't Starve或Don't Starve Together;
然后點(diǎn)擊Add按鈕,會(huì)彈出以下窗口,點(diǎn)擊Browse按鈕,選擇要上傳的mod目錄路徑,并選擇要上傳的mod的種類(lèi),再點(diǎn)擊publish按鈕發(fā)布;(其中,點(diǎn)擊藍(lán)色框出的Browse按鈕,設(shè)定創(chuàng)意工坊mod預(yù)覽圖片)
接著你會(huì)看見(jiàn),按照程序預(yù)設(shè)的指示操作,同意Steam創(chuàng)意工坊的條款就大功告成了。
Lua編程
Lua(請(qǐng)不要念成“擼啊”),一款被設(shè)計(jì)成可用于包括游戲、網(wǎng)站和圖形處理等多方面等各類(lèi)應(yīng)用的輕量級(jí)可嵌入的腳本語(yǔ)言,在很多游戲游戲中得到應(yīng)用,例如:Don't Starve,Don't Starve Together,Crusader Kings II,Europa Universalis IV,Crypt of the NecroDancer,等等。
要閱讀本章的內(nèi)容,你需要對(duì)計(jì)算機(jī)編程的概念有基本的了解。
首先為那些已經(jīng)學(xué)習(xí)過(guò)#編譯原理的童鞋獻(xiàn)上Lua的AST
標(biāo)識(shí)符/Identifiers
Lua中的標(biāo)識(shí)符,可以是任何以字母或下劃線開(kāi)始,由字母([a-zA-Z])、數(shù)字([0-9])或下劃線('_')構(gòu)成的字符串。
Lua對(duì)大小寫(xiě)敏感,也就是說(shuō)Lua跟LUA是不同的兩個(gè)標(biāo)識(shí)符。
關(guān)鍵字/Key words
Lua提供了共計(jì)21個(gè)關(guān)鍵字,即:
andbreakdoelseelseif
endfalseforfunctionif
inlocalnilnotor
repeatreturnthentrueuntilwhile
其他符號(hào)
+ - * / ^ =
~= <= >= < > ==
( ) { } [ ]
; : , . .. ...
賦值A(chǔ)ssignment
Lua,正如JavaScript一樣,是一種類(lèi)型松散(loose typing)的腳本語(yǔ)言;換言之,與C/C++和Java等強(qiáng)類(lèi)型定義語(yǔ)言中要求聲明(declare)變量時(shí)必須選擇變量的類(lèi)型不同,Lua賦值時(shí)只需要變量名和變量值:
my_var = "hello"
短路求值/Minimal evaluation
由于Lua內(nèi)核是基于C語(yǔ)言編寫(xiě)的,支持短路求值自然不足為奇。
所謂短路求值,即在以下Lua代碼
if condition_A and condition_B and condition_C then
中,首先計(jì)算condition_A的真值,若condition_A為假(false),則跳出;否則依次計(jì)算下一個(gè)布爾表達(dá)式的真值,直到出現(xiàn)假或者全部表達(dá)式都計(jì)算完畢為止。
表/Table
Lua的設(shè)計(jì)者在其語(yǔ)法中引入了表的概念,用以表示中的數(shù)組(Array)和圖(Map)兩種數(shù)據(jù)結(jié)構(gòu)。
1.創(chuàng)建一個(gè)表
你可以創(chuàng)建一個(gè)以字符串為鍵(Key)的表,即:
my_map = { apple = 5, banana = 10, melon = 9 }
或者一個(gè)類(lèi)似數(shù)組的表,即:
my_array = { "Tom", "Jack", "Peter" }
2.修改表中的數(shù)據(jù)
如果你的表是以字符串為鍵的,那么你可以:
my_map.apple = 15或者my_map["apple"] = 17
如果你的表示以數(shù)字為鍵的,那么你可以:
my_array[1] = "Tompson"
請(qǐng)注意,Lua中以數(shù)字為鍵的表跟C/C++中數(shù)組不同,也就是my_array[0]的值是 nil。
表的遍歷
以字符串為鍵的表通過(guò)以下語(yǔ)法進(jìn)行遍歷:
for k, v in pairs(my_map) do
而以數(shù)字為鍵的表則是:
for i, v in ipairs(my_array) do
控制結(jié)構(gòu)
1.選擇
if exp then
block
elseif exp then
block
else
block
end
2.當(dāng)型循環(huán)
while exp do
block
end
3.直到型循環(huán)
repeat
block
until exp
4.從循環(huán)中跳出
在循環(huán)結(jié)構(gòu)中使用return和break可以跳出。
看了上文九游小編帶來(lái)的饑荒MOD制作方法,你是否了解了相關(guān)內(nèi)容信息,知道了呢!更多最新最好玩的手機(jī)游戲就來(lái)九游下載吧!
同類(lèi)推薦:《我的世界移動(dòng)版》世界上第一款沙盒游戲
《我的世界移動(dòng)版》被稱(chēng)為是世界上第一款沙盤(pán)游戲,游戲的世界看起來(lái)一點(diǎn)都不精彩,但是這是一個(gè)自由的世界,在這個(gè)世界中,你能夠創(chuàng)造任何東西,包括游戲中的環(huán)境,在這里,你就是上帝. 有人說(shuō),在這款游戲中,你只需要從事兩種操作:建設(shè)和破壞.你能夠利用游戲中提供給你的各種基石來(lái)創(chuàng)造各種東西,發(fā)揮你的想象力,你能夠建造房屋,構(gòu)建城堡甚至是城市. 游戲特色: 隨機(jī)的世界; 能夠構(gòu)建任何東西,只要你能想象得到; 一共有36種不同的基塊; 可以與朋友一通過(guò)無(wú)線局域網(wǎng)絡(luò)聯(lián)機(jī). 注:該版本各機(jī)型通用.
如轉(zhuǎn)載涉及版權(quán)等問(wèn)題,請(qǐng)作者與我司聯(lián)系,我司將在第一時(shí)間刪除或支付稿酬。
全部評(píng)論