天才一秒記住【UU看書】地址:www.uukanshu.co
每個遊戲都有遊戲規則,Minecraft也不例外。
在基岩版,管理員可以在“設定”介面更改遊戲規則,但那些遊戲規則顯然是不夠的。
所以,如果真的要更改遊戲規則,那還得用一條專門的指令。
這條指令就是:gamerule。
gamerule,和上一章講過的gamemode是差不多的,都是由兩個英文單片語成的指令。game是遊戲的意思,rule是規則的意思,合併就是遊戲規則(gamerule)。
gamerule
作用:更改遊戲規則
需要許可權等級:Java2,基岩1
格式:
gamerulelt遊戲規則ID:字串gt布林值
gamerulelt遊戲規則ID:字串gt值
遊戲規則有很多個,在章尾我會列出來所有遊戲規則以及預設是開啟還是關閉。
布林值知道吧?不知道的話我在這裡科普一下。布林值指的是“真”、“假”,常用於程式碼中。在Minecraft中有的地方使用的是英文,即是true(真)和false(假),也可以使用二進位制的1(真)和0(假)。在gamerule和大多數指令中,使用的都是英文。
大部分遊戲規則都是布林值型別的,即true開啟,false關閉。但也有些遊戲規則是一個數值。
布林值和數值引數省略的話,即只填遊戲規則,就可以獲取該遊戲規則當前的狀態,比如:
gamerulecommandBlockOutput
返回就是:遊戲規則commandBlockOutput目前為:true
現在我列出一些常用的遊戲規則:
(布林值遊戲規則)
commandBlocksEnabled(預設true)——命令方塊在遊戲中是否啟用(基岩版設定介面為“啟用命令方塊”)僅基岩版
commandBlockOutput(預設true)——命令方塊是否在聊天框中向管理員顯示執行的結果
disableElytraMovementCheck(預設true)——是否禁止伺服器檢查玩家使用鞘翅的移動速度僅Java
doDaylightCycle(預設true)——是否開啟時間的流動(基岩版設定介面有,為“開啟晝夜更替”)
doEntityDrops(預設true)——不是生物的實體是否會掉落物品(基岩版設定介面有,為“實體掉落戰利品”)
doFireTick(預設true)——火是否會蔓延和自然熄滅(基岩版設定介面有,為“火焰蔓延”)
doInsomnia(預設:true)——幻翼是否自然生成
doImmediateRespawn(預設:false)——玩家死亡時是否直接跳過死亡介面(基岩版為immediateRespawn)(基岩版設定介面為“立即重生”)
doMobLoot(預設:true)——生物死亡是否掉落(基岩版設定介面有,為“生物戰利品”)
doMobSpawning(預設true)——生物是否自然生成(不影響刷怪籠)(基岩版設定介面為“生物生成”)
doTileDrops(預設true)——方塊破壞是否掉落物品(基岩版設定介面為“區塊掉落”)
doWeatherCycle(預設true)——天氣是否變化(基岩版設定介面為“天氣更替”)
keepInventory(預設:false)——玩家死亡時是否保留資料(死亡不掉落)(基岩版設定介面有,為“保留物品欄”)
logAdminCommands(預設true)——是否在伺服器日誌中記錄管理員使用過的命令,適合伺服器被搗亂時檢視僅Java
mobGriefing——生物是否可以破壞、放置、修改方塊、撿起掉落物以及(喚魔者是否可以)把藍色的羊變為紅色。該規則不影響非生物實體,不能阻止TNT和末影水晶的爆炸。(基岩版設定介面為“生物破壞”)
naturalRegeneration(預設true)——玩家在飢餓值足夠的情況下是否可以自然回血(基岩版設定介面為“自然生命恢復”)
pvp(預設true)——玩家之間是否能造成傷害僅基岩版(基岩版設定介面有,為“玩家間傷害”)
respawnblocksexplode(預設:true)——玩家在非主世界維度使用床和在非下界維度使用重生錨時是否爆炸僅基岩版BE11720更新,現在還在測試
sendCommandFeedback(預設true)——玩家執行命令的返回訊息是否顯示在聊天欄
showcoordinates(預設:true)——是否在聊天框區域持續顯示玩家所在的座標僅基岩版(基岩版設定介面有,為“顯示座標”)
tntexplodes(預設true)——TNT是否爆炸。注意,這並不會影響到TNT礦車和末影水晶。僅基岩版(基岩版設定介面有,為“TNT爆炸”)
(數字遊戲規則)
randomTickSpeed(預設值:1基岩或3JAVA)——每二十分之一秒(一遊戲刻)每個區塊中發生的方塊事件的頻率,簡單來說就是值越大,方塊變化速率越快。(基岩版設定介面有,為“隨機刻速度”)
下面我說一下,隨機刻的最高值是4096,也就是2的12次方。隨機刻不要改太高,不然——你會被卡得夠嗆的。但如果你的裝置撐得住,那麼你將會看到萬物瘋狂生長、生機勃勃的景象。
spawnRadius(預設值:10Java或5基岩)——新進入伺服器玩家和沒有自己重生點玩家重生時距離世界出生點的最大距離,調成0可以讓玩家準確生成在世界出生點
還有一點,我說一下一個小知識,MinecraftJava版對於大小寫的要求十分嚴格,而基岩版較為寬鬆。
————————————
gamerule歷史
Java版
14212w32a——加入了gamerule,同時加入了doFireTick(火焰蔓延)、mobGriefing(生物破壞)、keepInventory(保留物品欄)、doMobSpawning(生物生成)、doMobLoot(生物掉落)、doTileDrops(方塊掉落)、commandBlockOutput(命令方塊輸出)規則。
161——加入了naturalRegeneration(生命恢復)、doDaylightCycle(時間流逝)規則。
18——加入了logAdminCommands(記錄指令日誌檔案)、showDeathMessages(顯示死亡資訊)、randomTickSpeed(隨機刻)、sendCommandFeedback(儲存命令方塊輸出)規則。加入了建立虛擬規則的能力。
181——加入了doEntityDrops(實體掉落)規則,同時,doTileDrops不再影響實體。
19——加入了spectatorsGenerateChunks(旁觀者區塊載入)、spawnRadius(重生半徑)、disableElytraMovementCheck(檢查鞘翅飛行)、doWeatherCycle(天氣變化)和maxEntityCramming(實體推動傷害)規則。
112——加入了doLimitedCrafting(配方解鎖)、maxCommandChainLength(命令鏈鏈上限)、announceAdvancements(顯示進度)、gameLoopFunction(高頻執行函式)規則。
113——不再接受未知值(自定義遊戲規則)。現在會對值進行型別檢查。移除了gameLoopFunction規則。
1143——加入了disableRaids(玩家攻擊)、reducedDebugInfo(簡化除錯介面)規則。
115——加入了doInsomnia(幻翼生成)、doImmediateRespawn(立即重生)、drowningDamage(窒息傷害)、fallDamage(跌落傷害)和fireDamage(火焰傷害)規則。
1152——加入了doPatrolSpawning(控制災厄巡邏隊生成)和doTraderSpawning規則(控制流浪商人生成)。
116——現在創造世界時可以編輯遊戲規則。加入了forgiveDeadPlayers(激怒的中立生物的目標玩家死亡時,該生物是否恢復中立狀態)和universalAnger(激怒中立生物是否攻擊任何玩家)規則。
117——加入了freezeDamage(是否承受冰凍傷害)、playersSleepingPercentage(跳過夜晚所需玩家睡覺百分比)規則。
攜帶版
105——加入了gamerule。同時加入了drowningDamage、fallDamage、fireDamage、pvp(玩家間攻擊)規則。
110——加入了doDaylightCycle、doEntityDrops、doFireTick、doMobSpawning、doMobLoot、doTileDrops、doWeatherCycle、keepInventory、mobGriefing規則。
基岩版
160——加入了doInsomnia規則。
170——加入了commandBlocksEnabled規則。
180——加入了randomTickSpeed規則。
190——加入了showDeathMessages和immediateRespawn規則。
1120——加入了spawnRadius、sendCommandBlockFeedback、commandBlockOutput、maxCommandChainLength、naturalRegeneration、sendCommandFeedback、showCoordinates(顯示座標)和tntExplodes(TNT爆炸)。
1140——加入了showtags(展示物品可破壞、放置方塊列表)規則。不再接受自定遊戲規則。
116210——加入了freezeDamage規則。
11720——加入了respawnblocksexplode(床、重生錨是否爆炸)規則。