新手魔改經(jīng)驗(yàn)分享ep1—搞一只強(qiáng)億點(diǎn)的凋靈?
免責(zé)聲明:以下內(nèi)容屬于新手(up主自己)在學(xué)習(xí)魔改的道路上摸索出來得膚淺的東西,適合剛?cè)腴T或未入門的玩家。對(duì)于魔改的集大成者可以說是非常的low,如果有更加簡(jiǎn)便的方法,還請(qǐng)賜教。
注:本人是1.12.2玩家,以下方法僅對(duì)1.12.2有效!
一、血量修改
從crafttweaker的腳本來看,修改生物血量需要用到生物屬性的相關(guān)內(nèi)容,但是這對(duì)于新手來說(比如我)確實(shí)有些復(fù)雜。
與其自己摸索一大堆后迎來一系列的error,倒不如直接使用現(xiàn)成模組解決這個(gè)問題。
傷害控制(Damage Control),這個(gè)模組就能完美做到自定義生物血量!這個(gè)模組非常簡(jiǎn)潔方便,我們只需要在其配置文件中稍作修改,就能改變生物的血量。而這個(gè)模組其實(shí)還有控制各個(gè)傷害源的傷害放大倍率的功能,除此之外,不添加任何無關(guān)的東西。
MC百科鏈接:www.mcmod.cn/class/1929.html
下載并將此模組放入mods文件夾中,啟動(dòng)一次游戲。隨后就可以在根目錄的config文件夾中發(fā)現(xiàn)新出現(xiàn)的“dmgcontrol.cfg”文件。
使用任意的文本編輯器(據(jù)說NotePad++作者rh,所以這里推薦VScode,或者也可以使用IDEA,實(shí)在不行用記事本也行)打開這個(gè)文件,往下翻。

在第90行,出現(xiàn)了max_health字樣,學(xué)過英文的人肯定知道了,這就是最大生命值。該行下面的一切,都是“xxx生物 = 數(shù)值”的形式。這里的xxx生物即該生物的id,而數(shù)值就是生物的最大生命值。
需要注意的是,這些生物id都是模組自動(dòng)生成的,如果里面沒有發(fā)現(xiàn)你要改的生物id,請(qǐng)進(jìn)入游戲創(chuàng)建一個(gè)世界,在你的世界中讓這個(gè)生物出現(xiàn)在你面前一次即可。而后面的最大生命值是指的血量值,而不是心的個(gè)數(shù)(1心=2滴血)。
這里我將凋靈的血量設(shè)置為9000(4500顆心)。注意:血量超出1024需要加“屬性修復(fù)”模組以打破Minecraft原版的屬性上限。

你以為到此就結(jié)束了嗎?其實(shí)血量修改還沒有完成!
至此為止,雖然我們已經(jīng)修改了凋靈的最大生命值,但是最大生命值只是一個(gè)限制,而生物生成時(shí)候的生命值并不一定等于最大生命值。換句話說,我們?nèi)绻@時(shí)進(jìn)入游戲召喚凋靈,會(huì)發(fā)現(xiàn)凋靈的最大生命值確實(shí)變?yōu)榱?000,但是它的初始生命值卻依然為300。
也就是說,我們直接召喚了一只殘血的凋靈。
這顯然不是我們想看到的,boss生成后,怎么可能初始生命不等于最大生命呢?因此,接下來就需要請(qǐng)出crafttweaker腳本了。
原理很簡(jiǎn)單,就是當(dāng)生物加入世界(生成)時(shí),使其生命值等于最大生命值。
直接在scripts文件夾中創(chuàng)建一個(gè).zs文件(改后綴的方法就不說了),打開文件并在其中寫入如下腳本(這里最好別用記事本,否則可能會(huì)導(dǎo)致縮進(jìn)的格式錯(cuò)誤):

crafttweaker腳本的具體內(nèi)容就不過多講解了,能看懂腳本就行(14行以上的腳本都是導(dǎo)包,實(shí)際起作用的是14行及以下的腳本,但導(dǎo)包必不可少)。
其中var語句用來定義變量。if是條件判斷語句,用法類似其他語言,只是后面括號(hào)的格式略有不同。IEntityLivingBase是一種數(shù)據(jù)類型,數(shù)據(jù)類型在Minecraft還有許許多多,而基礎(chǔ)的四大數(shù)據(jù)類型參考信息技術(shù)必修一課本。
如果你是高一學(xué)生,那么你完全有能力在看過crafttweaker的官方文檔后,自己編寫如上腳本,畢竟基礎(chǔ)性的知識(shí)和操作在信息技術(shù)課上都講過。
至此,我們完成了凋靈血量的修改!
二,護(hù)甲值和近戰(zhàn)攻擊修改
想必你已經(jīng)猜到我要干什么了。下面友情第二位模組。
怪物屬性(Mob Properties),這個(gè)模組和剛剛的傷害控制差不多,都是通過修改配置文件以避免編寫復(fù)雜的crafttweaker語句。
不過與傷害控制不同,這個(gè)模組對(duì)每個(gè)生物的設(shè)置都是獨(dú)立放在各個(gè)文件中的。打開config文件夾下的MobProperties文件件,就會(huì)發(fā)現(xiàn)許許多多文件。文件名就對(duì)于你要修改的生物的id。改模組默認(rèn)不修改任何參數(shù)。
此模組的功能非常的強(qiáng)大,遠(yuǎn)遠(yuǎn)不止修改護(hù)甲值和近戰(zhàn)攻擊數(shù)值,其實(shí)它也能夠做到控制生物的最大生命值,不過與傷害控制比起來稍微麻煩了些。
MC百科鏈接:www.mcmod.cn/class/620.html
該模組中文優(yōu)質(zhì)教程鏈接:www.mcbbs.net/thread-932545-1-1.html
打開wither.json,將文件修改為下圖:

此處將凋靈的護(hù)甲值提升至24,近戰(zhàn)傷害提升至100(圖片上的20和98都不是最終數(shù)值,而是最終值和凋靈本來就具有的基礎(chǔ)值的差值)。
至此,完成對(duì)凋靈護(hù)甲值和近戰(zhàn)的修改。
三、凋靈之首的傷害修改
有沒有一種可能,我們剛剛改了凋靈的近戰(zhàn)攻擊,但凋靈最頻繁使用的是遠(yuǎn)程攻擊?
在Java版,凋靈甚至可以說只有遠(yuǎn)程攻擊能對(duì)玩家造成威脅。因此,我們需要進(jìn)一步修改凋靈之首的傷害。
修改凋靈之首的傷害并沒有那么簡(jiǎn)單,因?yàn)榈蜢`之首不是生物,而是非生物實(shí)體,怪物屬性的配置文件中是找不到的。因此我們需要使用crafttweaker語言了。
此處的算法說起來也簡(jiǎn)單:當(dāng)生物受到傷害事件觸發(fā)時(shí),如果傷害的真實(shí)來源是凋靈,那么將該傷害設(shè)置為100。
如此一來,就完成了對(duì)凋靈之首傷害的修改。腳本如下:

上圖除了修改凋靈以外還修改了其他boss的遠(yuǎn)程攻擊。
如果這樣做,其實(shí)有一個(gè)漏洞,那就是第二部分近身傷害的修改就作廢了。解決這個(gè)問題的方法很簡(jiǎn)單,就是在條件上新增一個(gè)傷害類型的判斷。
需要注意,上圖腳本中使用了!isNull語句,用于檢測(cè)返回值是否為空。如果不進(jìn)行該步驟,會(huì)報(bào)錯(cuò)!
至此,完成對(duì)凋靈之首傷害的修改!
四、結(jié)尾
通過上述三部分的修改,我們得到了一只數(shù)值上非常強(qiáng)大的凋靈,具有9000血,24護(hù)甲,100攻擊傷害!這才配得上其下界統(tǒng)治者的高貴boss身份!
以上三步,前兩部分都可以直接用crafttweaker腳本完成,只不過涉及到屬性的腳本有些復(fù)雜,本人懶得寫,因此使用現(xiàn)成的模組輔助。
感謝閱讀!