純粹的強(qiáng)大——寂滅 【1.12.2最強(qiáng)神器】

給不懂秒殺的:
>>>>"以下適用Minecraft Java 1.12.2"<<<<
首先,先來了解一下機(jī)制:
第一、實(shí)體的死亡是靠isDead判斷
第二、血量歸零會(huì)將isDead設(shè)置為true
第三、一般擊殺方式為造成傷害>扣除相應(yīng)血量>血量歸零
第四、isDead為true時(shí)會(huì)打開GuiGameOver,渲染0血等...
名詞解釋:
原代碼(class檔案)
GuiGameOver(死亡畫面)
Mixin(一種注入方式)(https://github.com/SpongePowered/Mixin)
Tick()(游戲在每20分之1秒時(shí)會(huì)執(zhí)行的代碼)
然后,關(guān)于注入:
第一、注入是指把代碼加入進(jìn)去游戲的原代碼
第二、順序是代表在游戲啟動(dòng)時(shí)誰最先被加入進(jìn)去游戲的原代碼
第三、當(dāng)順序是第一時(shí),游戲最先把你自定義的代碼加入進(jìn)去游戲的原代碼
第四、最先加進(jìn)去的通常在被調(diào)用時(shí)最先生效(參照以下:
比如你與你的朋友們有一張紙,a朋友最先在紙上染色(整張紙)(這個(gè)顏料是黑科技顏料,要很麻煩才能拿掉,幾乎拿不掉),然后依序a>b>c....,那紙拿起來時(shí)會(huì)先看到a的顏色,然后再依序看到后面的,但是如果a的顏色是一個(gè)很"惡心的顏色"(返回'return'代碼)那你(游戲)就不會(huì)再想要看下去,就會(huì)走(直接返回),而看不到后面b、c...朋友的美麗顏色(不執(zhí)行后面注入的代碼),導(dǎo)致只有a的代碼生效)
第五、游戲獲取血量的代碼是可以注入的:)
其次,防御、攻擊大概可分為幾個(gè)等級(jí)(自己分的:
第一、弱 (無限設(shè)置血量為20(攻擊的話會(huì)是0或負(fù)數(shù)),某些情況下會(huì)觸發(fā)BUG1,第二種可以打破這種防御、防御這種攻擊)
第二、強(qiáng) (使用Mixin等注入獲取血量的方法,可以防(或是殺)第一個(gè),因?yàn)楦牧擞螒颢@取血量的方法,所以即使血量為0(被攻擊實(shí)體為0以上)也只能獲取到20(攻擊的話會(huì)是0或負(fù)數(shù)),但就像我前面說的,只要順序高就可以打破這個(gè)防御)
第三、超強(qiáng)(直接從游戲源代碼下去改,并且阻止任何注入,基本無敵,但是很麻煩,或是把注入順序改到超高,也是基本無敵)
攻擊的補(bǔ)充:
第一、直接移除實(shí)體或者傳送或是暫停服務(wù)器和客戶端一段時(shí)間然后直接把實(shí)體的nbt抹掉等等...,不算擊殺,但是秒殺圈內(nèi)基本都有防移除(注入)
第二、玩家的話有直接彈出一個(gè)死亡Gui或是假死Gui或是繞過彈出直接渲染等等...,并且讓血量無法渲染(注入或是遮擋等等...),通常會(huì)防彈出死亡Gui等...這種的神器很多,但是渲染就是另外的事了。 。 。
然后以下是常見的BUG
BUG1:游戲在Tick()方法頭部檢查到實(shí)體血量為0(可能為某個(gè)武器將實(shí)體血量設(shè)置為0),但是正要進(jìn)行下一步操作時(shí),卻發(fā)現(xiàn)實(shí)體的血量變?yōu)?0(防御用代碼設(shè)置回20),無法繼續(xù)進(jìn)行,跡象:實(shí)體閃紅抖動(dòng)、Gui打開后即刻關(guān)閉等....(可能會(huì)有其他原因,比如血量為NaN等...,這里不多講)(以上非個(gè)人主觀判斷,可參考:
https://www.mcbbs.net/thread-839937-1-1.html
https://www.mcbbs.net/forum.php?mod=viewthread&tid=839937&page=2#pid13779549)
附注:有錯(cuò)誤歡迎指出,隨時(shí)改