創作內容

7 GP

Minecraft: 只透過"觀看"方塊找出座標

作者:evanlin96069│2019-08-15 11:18:42│巴幣:112│人氣:1625
上次玩Minecraft應該是1.8版的時候了
最近2b2t的影片在Youtube上大量出現
還有PewDiePie開始玩Minecraft生存
這讓很久沒玩Minecraft的我重新回來

在2b2t的影片裡
我發現有些實況主常常在尋找其他實況主伺服器裡的據點
即便他們都是很厲害的科學家
且有著一個小團隊分頭尋找
但還是要花不少時間
加上現在更新後不能使用加速
尋找的工作將越來越麻煩
這讓我想到是否能從實況主上傳影片的蛛絲馬跡中找出座標
當然實況主們都有很小心的完全不露出座標

只透過"觀看"方塊找出座標

這是由cool mann所提出的方法
在1.8版更新後
草地、泥土、沙、紅沙、石頭、地獄石的材質會隨機旋轉
使遊戲看起來更加自然
而這些旋轉方向如荷葉一樣是由所在座標判定
如地獄石的六面在遊戲裡共有16種組合
而草地只有頂部材質會旋轉共有4種組合
為了簡單一點我使用草地作為示範

以下是取得材質選轉方向的公式(1.12版):
int getTextureType(int x, int y, int z)
{
long i=(long)(x*3129871)^(long)z*(long)116129781^(long)y;
i=i*i*(long)42317861+i*11;
int temp=(((int)i)>>16);
if(temp < 0) temp*=-1;
return (temp%4);
}

把最後Mod 4改成16也可以用來求有16種變化的其他方塊
分別定義一下草地的每一種回傳值所代表的方向
首先我們以距離角落一個像素的亮點為基準(如圖左上角標記處)
在玩家面向北時 亮點分別在
0左上
1右上
2右下
3左下
這個結果不管在不同種子碼、超平坦或巨大化世界下都適用
不同版本才會發生變化

有了這個公式
接下來我們只要有足夠的數據
理論上就可以反向推出座標
我以一塊5x5的草地作為示範
每一塊草地有四種方向
所以在5x5中一共有4的25次方種組合
這要在6000k*6000k*256的Minecraft世界重複出現的機率其實很低
以下這就是我們5x5的草地:
把它化成數字
0,1,1,3,0,
0,0,3,3,2,
3,0,0,2,0,
1,3,0,1,1,
3,2,1,3,0
輸入到程式內
設定範圍為1000
(在x座標-1000到+1000
y座標0到256
z座標-1000到+1000
的範圍內搜索)
成功找到一組座標
也就是我們5x5草地中左上角方塊的座標
雖然搜尋成功
但是隨著搜索範圍增加
所需時間將大幅提升
畢竟我才剛開始學習寫程式
所使用的算法可能很不好
導致計算效率不佳
依照我估計
以目前狀況而言
我寫的程式落要搜尋範圍到300萬
可能要跑個一年
所以還不太可能實際應用
這邊是我參考的影片網址
作者在下方也有留下他寫的程式
不過我只是初學者所以還看不太懂
有興趣的可以自己去看看
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4495975
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 3 篇留言

吱吱叫隻隻叫
看起來是丟夠多的數據之後讓程式在固定範圍內硬爆,有點好奇進度幾%那邊是怎麼寫的@@

09-11 20:13

evanlin96069
就只是每計算完一層y就輸出 已計算層數/總層數09-11 20:17
吱吱叫隻隻叫
喔喔懂了 酷 這個周末我也來試著寫寫看

09-11 20:23

evanlin96069
可以去看看我參考的網址 那個人很厲害09-11 20:26
吱吱叫隻隻叫
好的 謝謝拉

09-11 20:31

我要留言提醒:您尚未登入,請先登入再留言

7喜歡★evanlin96069 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:阿榮回迦惹... 後一篇:開完箱了...

追蹤私訊切換新版閱覽

作品資料夾

sakima55想來農生活嗎?
昨天在palia弄了我推的阿庫亞 https://home.gamer.com.tw/artwork.php?sn=5913301看更多我要大聲說昨天14:19


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】