第七十七章 damage-造成傷害
村民可以攻擊嗎?答案當(dāng)然是否定的。就算村民發(fā)射的煙花火箭爆炸會(huì)有傷害,這也不是村民本身的攻擊。
在Java版,如果你能精準(zhǔn)地把握住時(shí)間,將一個(gè)彈射物(如箭)的UUID改成一個(gè)村民的UUID,確實(shí)有可能會(huì)使得村民“攻擊”其他生物。那在基巖版呢?
Mojang雖然沒(méi)有給我們操控NBT來(lái)修改UUID的方式,但卻給了我們一條指令:/damage
/damage
作用:對(duì)指定實(shí)體造成傷害
存在版本:基巖版1.18.10-今
需要權(quán)限等級(jí):基巖版-1
需要作弊:是
格式:
/damage <目標(biāo)實(shí)體><傷害大小:非負(fù)整數(shù)>[傷害類(lèi)型]
/damage <目標(biāo)實(shí)體><傷害大?。悍秦?fù)整數(shù)><傷害類(lèi)型> entity <傷害來(lái)源>
你可以指定『目標(biāo)實(shí)體』和『傷害大小』參數(shù),來(lái)簡(jiǎn)單的對(duì)指定實(shí)體造成傷害。如果還指定了『傷害類(lèi)型』和『傷害來(lái)源』參數(shù),就可以確定是誰(shuí)對(duì)誰(shuí)造成了傷害。比如下面的指令:
/damage @s 20 entity_attack entity @s
這將會(huì)使你自己對(duì)你自己造成20點(diǎn)的實(shí)體攻擊類(lèi)型傷害,然后你就會(huì)收到這么一條消息:
你自己的游戲名被 你自己的游戲名殺死了
我殺我自己?
雖然你可以不指定傷害類(lèi)型來(lái)造成傷害,但這樣子就會(huì)導(dǎo)致你死亡時(shí),只會(huì)顯示出如下信息:
xxxxxx 死了
所以我們最好指定傷害類(lèi)型。那有哪些傷害類(lèi)型呢?我會(huì)將截止1.19.10版本的傷害類(lèi)型列表放到本章末尾。
我們還可以指定『傷害來(lái)源』,來(lái)指定到底是誰(shuí)造成了傷害。比如在上面的例子中,我們就指定了傷害來(lái)源為自己,這樣子就實(shí)現(xiàn)了『自己』對(duì)『自己』造成了傷害。
傷害來(lái)源這個(gè)參數(shù)有很多奇妙的用途,比如下面的指令:
/damage @e[type=iron_golem] 1 entity_attack entity @e[type=villager,c=1]
這將會(huì)使得距離執(zhí)行地點(diǎn)最近的村民對(duì)所有鐵傀儡造成1點(diǎn)的傷害,然后你就會(huì)看見(jiàn)......
『媽呀!鐵傀儡殺村民啦?。?!』
如你所見(jiàn),傷害來(lái)源不僅僅可以使得死亡信息發(fā)生改變,還可以轉(zhuǎn)嫁生物仇恨,使得鐵傀儡親手殺死了村民。
但傷害來(lái)源的用途不止這么簡(jiǎn)單。假設(shè)這里有一只豬,它靜止在原地。
我們運(yùn)行下面的指令對(duì)它造成傷害,仔細(xì)觀察豬受到攻擊的情況:
/damage @e[type=pig] 1 entity_attack
豬→ 紅豬→ ε=ε=豬(跑)→豬
你會(huì)發(fā)現(xiàn),豬僅僅受到了攻擊,然后開(kāi)始四處亂跑而已。讓我們等一下它跑完,然后運(yùn)行下面的指令再次造成傷害:/damage @e[type=pig] 1 entity_attack entity @s
豬→ ε=紅豬(被擊退)→ε=ε=豬(跑)→豬
你會(huì)發(fā)現(xiàn),豬不僅僅受到了攻擊,還向一個(gè)方向退了幾步。
通過(guò)上面的實(shí)驗(yàn),你會(huì)發(fā)現(xiàn):指定『傷害來(lái)源』參數(shù)還可以使得攻擊有一定的方向。那么這個(gè)方向是怎么計(jì)算出來(lái)的呢?
██████████民→██
██████████████
█████←豬███████
██████████████
我們來(lái)看看上述網(wǎng)格,箭頭代表著實(shí)體的朝向。讓我們嘗試指定村民對(duì)豬造成傷害:
/damage @e[type=pig] 1 entity_attack entity @e[type=villager,c=1]
然后你就會(huì)發(fā)現(xiàn)豬被擊退向了遠(yuǎn)離村民的方向:
██████████民→██
██████████████
██████████████
████←豬████████
這說(shuō)明了什么?這說(shuō)明了,指定『傷害來(lái)源』后,造成的攻擊會(huì)具有方向,而這個(gè)方向和指定的攻擊者向著被攻擊者的方向是一致的。
但是需要注意,這個(gè)攻擊方向的計(jì)算是2維的,并不是3維的。
什么意思呢?也就是說(shuō),攻擊方向的計(jì)算不會(huì)考慮到兩者的y坐標(biāo),僅僅會(huì)通過(guò)兩者的xz坐標(biāo)計(jì)算得出。所以你并不能通過(guò)召喚一個(gè)盔甲架,然后你站在上面,不斷讓盔甲架給你造成傷害使得你上天。你只會(huì)從天上被打下來(lái)。
那么這就是本章的全部?jī)?nèi)容了。
附表①:截止1.19.10版本所有傷害類(lèi)型ID表
ID——死亡信息
anvil —— xxx 被墜落的鐵砧壓扁了
block_explosion —— xxx 爆炸了
charging —— xxx 死了
contact —— xxx 被 xxx 殺死了
drowning —— xxx 淹死了
entity_attack —— xxx 被 xxx 殺死了
entity_explosion —— xxx 被 xxx 炸死了(xxx 爆炸了)
fall —— xxx 落地過(guò)猛
falling_block —— xxx 死了
fire —— xxx 浴火焚身
fire_tick —— xxx 被燒死了
fireworks —— xxx 在一聲巨響中陣亡了
fly_into_wall —— xxx 遭受了動(dòng)態(tài)能量
freezing —— xxx 凍死了
lava —— xxx 試圖在熔巖里游泳
lightning —— xxx 被閃電擊中
magic —— xxx 被 xxx 使用的魔法殺死了(xxx 被魔法殺死了)
magma —— xxx 死了
none —— xxx 死了
override —— xxx 死了
piston —— xxx 死了
projectile —— xxx 被 xxx 殺死了
stalactite —— xxx 被墜落的鐘乳石刺穿了
stalagmite —— xxx 被釘在了石筍上
starve —— xxx 餓死了
suffocation —— xxx 在墻里窒息而亡(需要目標(biāo)實(shí)體卡在方塊里才能使用此傷害類(lèi)型,否則無(wú)法造成傷害)
suicide —— xxx 死了
temperature —— xxx 死了
thorns —— xxx 死了
void —— xxx 掉出了這個(gè)世界
wither —— xxx 凋謝了
?。ㄉ鲜鲂畔?lái)自官方附加包文檔+作者自己測(cè)試得出)
附表②:/damage歷史
基巖版
1.18.10——加入了/damage