Javascript
1function iftree(x, y, z){ 2 3 bi = World.getBlockID(x, y, z); 4 if(bi == 17){ 5 return true; 6 } 7 else{ 8 return false; 9 } 10} 11 12function addtolist(x, y, z, listname){ 13 boolean included = false; 14 //ここでセミコロンが抜けていると怒られる 15 for(let i; i<listname.length; i++){ 16 if(listname[i][1] == y){ 17 if(listname[i][0] == x){ 18 if(listname[i][2] == z){ 19 included = true; 20 } 21 } 22 } 23 } 24 if(included == false){ 25 listname.push([x, y, z, 0]); 26 } 27} 28 29 30Callback.addCallback("DestroyBlock", function(coords, block, player){ 31 Debug.message(block.id); 32 if(block.id == 17){ 33 Debug.message(World.getBlockID(coords.x, coords.y+1, coords.z)); 34 blist = []; 35 blist.push([coords.x, coords.y, coords.z, 0]); 36 var cont = true; 37 let count = 0; 38 while(cont){ 39 count = 0; 40 for(let i = 0; i < blist.length; i++){ 41 if(blist[i][3] == 0){ 42 count += 1; 43 let _x = blist[i][0]; 44 let _y = blist[i][1]; 45 let _z = blist[i][2]; 46 if(iftree(_x+1, _y, _z)){ 47 addtolist(_x+1, _y, _z, blist); 48 } 49 if(iftree(_x-1, _y, _z)){ 50 addtolist(_x-1, _y, _z, blist); 51 } 52 if(iftree(_x, _y+1, _z)){ 53 addtolist(_x, _y+1, _z, blist); 54 } 55 if(iftree(_x, _y-1, _z)){ 56 addtolist(_x, _y-1, _z, blist); 57 } 58 if(iftree(_x, _y, _z+1)){ 59 addtolist(_x, _y, _z+1, blist); 60 } 61 if(iftree(_x, _y, _z-1)){ 62 addtolist(_x, _y, _z-1, blist); 63 } 64 65 blist[i][3] = 1; 66 } 67 } 68 if(count == 0){ 69 cont = false; 70 } 71 } 72 for(let i = 0; i < blist.length; i++){ 73 World.destroyBlock(blist[i][0], blist[i][1], blist[i][2], true); 74 } 75 } 76})
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。