猫史档案馆


[box3]技巧分享:如何替换世界中指定的方块? (转发 shyfcka)

用户:查理九世1查理九世1查看:11 回复:8 评论:11 创建时间:2020-06-22T20:16:09


有时候,我们想替换一大部分方块,比如将喵方块替换成水方块,自己手动替换无疑是非常累的,我们可以用代码来做!

(async()=>{
    for(y=0;y<128;y++){
        for(x=0;x<128;x++){
            for(z=0;z<128;z++){
                if(voxels.getVoxel(x,y,z)==voxels.id('被替换的方块名称')){
                    voxels.setVoxel(x,y,z,voxels.id('替换后的方块名称'))
                }
            }
        }
    }
})()

很简单吧,其实就是遍历世界中的所有方块替换;为了防止出现世界崩溃,这段代码我使用了异步执行,执行后稍等一会,程序会慢慢替换.

 

实例:

将世界中的空气替换成水,模仿一个海底世界,但是不要覆盖原有建筑

(async()=>{
    for(y=0;y<128;y++){
        for(x=0;x<128;x++){
            for(z=0;z<128;z++){
                if(voxels.getVoxel(x,y,z)==voxels.id('air')){
                    voxels.setVoxel(x,y,z,voxels.id('water'))
                }
            }
        }
    }
})()

运行即可替换所有空气为水

 

实例2:

如何模拟出岩浆慢慢上升的效果

(async()=>{
    for(y=8;y<128;y++){
        for(x=0;x<128;x++){
            for(z=0;z<128;z++){
                if(voxels.getVoxel(x,y,z)==voxels.id('air')){
                    voxels.setVoxel(x,y,z,voxels.id('red_light'))
                }
            }
        };await sleep(1000);
    }
})()

运行后会从y为8的位置慢慢往上替换所有空气方块,这里的await sleep(1000) 表示等待1秒(1000毫秒),这样有助于显示出慢慢上升的效果.

 

即兴科普贴,不喜勿喷~

温馨提示:建议先运行游戏再尝试代码,否则你的更改就不能撤回啦!


回复

上一页1 页 / 共 1下一页
wangjunjiecwangjunjiec

sofa~

点赞0


评论


Moira屑玖iMoira屑玖i

喵是什么

点赞0


评论


亿只懒Ink亿只懒Ink

抄喵告

点赞0


评论


adbbbadbbb

点赞0


评论


PTG博人PTG博人

简单啦

 

点赞0


评论


百变喵啊百变喵啊

警告!请勿抄袭

点赞0


评论


中國萬歲_青铁迷中國萬歲_青铁迷

11111

点赞0


评论


Robot一只屑代码师Robot一只屑代码师

超大地图的填充代码(可用在控制台上)

async()=>{
    for(y=0;y<512;y++){
        for(x=0;x<256;x++){
            for(z=0;z<512;z++){
                if(voxels.getVoxel(x,y,z)==voxels.id('以前的方块')){
                    voxels.setVoxel(x,y,z,voxels.id('替换后的方块'))
                }
            }
        }
    }
})()

 

点赞0


评论