天才一秒記住【UU看書】地址:www.uukanshu.co
在“第二十八章——區塊”中,我曾提到過Java版和基岩版分別有一條指令用於控制常載入區塊。
在基岩版中,這條指令是:tickingarea,即一直執行遊戲刻(ticking)的地區(area)。
tickingarea
作用:增加、減少或檢視常載入區塊。
需要許可權等級:1
需要作弊:是
格式:
tickingareaaddlt起點方塊座標gtlt終點方塊座標gt此區域名稱:字串
tickingareaaddcirclelt區域圓心座標gtlt區域半徑:整數gt此區域名稱:字串
tickingarearemovelt地區位置:座標gt
tickingarearemovelt地區名稱:字串gt
tickingarearemoveall
tickingarealist維度選項:alldimensions
書接前文,那個我的世界網易版租貸服在建完回城雪球后,發現一個問題:有時候這雪球不靈。
經過腐竹的仔細排查,發現是因為該命令方塊鏈所在的區域雖然是在主城正下方,但因為基岩版並沒有出生點區塊,就導致有時候主城裡玩家都跑光了,區塊停止載入,回城雪球就不管用了。
為此,這位腐竹使用了以下指令:
tickingareaadd303100923432052home
這條指令的作用是:
將與303,100,92到343,20,52這塊區域有重疊部分的所有區塊列為常載入區域,並取名為home。
其中,選取區域的模式和fill是一樣的,即選定區域的對角座標。雖然這裡選取時有使用Y軸,但由於區塊並不考慮Y軸,其實沒多大用處。
遊戲並不會將選取的區域直接列為常載入區域,而是會將與選取區域有重疊部分的所有區塊(哪怕只有那麼一塊方塊)列為常載入區域,不然遊戲計算時就非常麻煩(因為精確到了每個方塊)。
也就是說,哪怕你只選取了一格方塊,也會將該格方塊所在的區塊列為常載入區域。
在使用這條指令過後的第三天下午,伺服器的MSPT突然從原本的39mst57mst暴增到了265mst527mst,最高值甚至達到了3761mst。雖然網易租貸服看不到那麼直接的資料,但直觀上的遊戲卡頓已經快到玩不下去的地步了。腐竹接到管理員的訊息過後,立馬進服排查問題(因為存檔上一次備份還在一個月前)。在忍受了數小時的超高延遲後,終於找到了問題:
主城範圍冒險並沒有覆蓋到主城的地下,但這兒仍然是常載入區域。一位資深熊孩子在一個月前嘗試炸服無果後,仔細鑽研最終發現了這個漏洞。於是在主城的地下搞出了大量已經命名的生物(非法獲取到刷怪蛋,命名後放入發射器,配備專門研製的高頻紅石)。這些被命名的生物無法消失,又因為處於常載入區塊,造成了伺服器卡頓。
腐竹為了解決這個問題,使用瞭如下指令:
killetypeplayer,r50
killetypeitem,r50
(此時伺服器在經歷一陣達好幾萬MSPT的卡頓後,終於順暢了許多,然後腐竹就拆掉裝置了,並將需要常載入區域的東西全部轉移到了一個很遠很遠的地方)
tickingarearemovehome
移除名為home的常載入區域
tickingareaaddcircle30000002130000002command
將與以3000000,21,3000000為圓心的半徑2區塊(32格)的圓有重疊部分的所有區塊列為常載入區域,並取名為command
其中,移除常載入區域時,如果當時這位腐竹並沒有設定該常載入區域的名稱,那麼它只能這樣做:
tickingarearemove3236572
這條指令會刪除所有包含該座標點的常載入區域。
如果這位腐竹忘記了該常載入區域的名稱,或者是忘記了它的位置,那該怎麼辦?
它有兩種選擇,第一種是:
tickingarearemoveall
刪除所有常載入區域
第二種是:
tickingarealist
列出當前緯度所有常載入區域
第二種方法中,list返回的資訊是這樣的:
當前維度中的所有常載入區域的列表
區域名XYZ到XYZ
區域名(圓形)XYZ半徑:14區塊
01010常載入區域正在使用
別看就短短這幾行,資訊量還是很大的。
首先,方形區域會直接顯示區域的對角座標。這個對角座標並不是新增時填寫的對角座標,而是經過重疊部分轉化成的實際載入區域的對角座標。圓形區域會顯示該區域轉化過後的中心點和設定的半徑。最後會顯示目前有多少常載入區域和常載入區域上限。
常載入區域數量還有上限?沒錯。一個存檔最多新增10個常載入區域,每個常載入區域的區塊數不能大於100。
圓形區域是什麼?這就要看這個腐竹用的最後一條指令:
tickingareaaddcircle30000002130000002command
這條指令的意思上面已經講過,這兒就不復制過來了。
圓形區域顧名思義,就是圓狀的常載入區域。它有兩個重要引數:圓心和半徑
圓心座標和方形區域填寫的兩個座標一樣,實際上Y座標沒多大用。而半徑,它的單位不是格而是區塊。
半徑必須是1、2、3、4這四個整數,即16格、32格、48格和64格。
確定了圓的範圍後,遊戲就會進行和方形區域一樣的操作:將與該圓重疊的所有區塊列為常載入區域。
這就是圓形區域。
現在,tickingarea這條指令差不多就講完了,但還沒有完全講完,因為還有一個引數沒講:
list的維度選項。
維度選項引數只支援一個值:alldimensions,即所有維度。使用了:
tickingarealistalldimensions
將不只是列出基準點所處維度的所有常載入區塊,而是列出所有維度的所有常載入區塊。
歷史
基岩版
120——加入了常載入區域和配套的tickingarea。