猫史档案馆


游玩端实时地形存档器【可手动调用以及为被破坏的创作端回档】(128,128,128)版

用户:2333280823332808查看:2 回复:5 评论:2 创建时间:2023-10-21T22:31:38


async function showMinecraft() {
    playerList = await db.sql`SELECT * FROM block`
    console.log(playerList.length)
}
async function set_minecraft_table() {
    await db.sql`
        CREATE TABLE IF NOT EXISTS block (
            other TEXT DEFAULT '',--金钱, INTEGER类型用于存储整数
            blocklist TEXT DEFAULT '',--废品, INTEGER类型用于存储整数
            lasttime INTEGER DEFAULT 0,--道具列表, TEXT类型用于存储字符串
            worldname TEXT PRIMARY KEY UNIQUE DEFAULT 'minecraft'--玩家的唯一识别码, TEXT类型用于存储字符串
        )
    `
};set_minecraft_table()
async function save_world(){
    //await db.sql`DELETE FROM block`
    for(saveworldy=0;saveworldy<127;saveworldy+=1){
        world_list_piece=[]
        for(z=0;z<127;z+=1){
            world_list_x=[]
            for(x=0;x<127;x+=1){
                world_list_x.push(voxels.getVoxelId(x,saveworldy,z))
            }
            world_list_piece.push(world_list_x)
        }
        world.say(saveworldy+"/126")
        await sleep(10)
    other={}
    time=new Date().valueOf()
    await db.sql`
        INSERT INTO block (
            other,
            blocklist,
            lasttime,
            worldname
        )
        VALUES(
            ${JSON.stringify(other)},
            ${JSON.stringify(world_list_piece)},--JSON.stringify(world_list)
            ${time},
            ${saveworldy}
        )
        ON CONFLICT(worldname)
        DO UPDATE SET
        other=excluded.other,
        lasttime=excluded.lasttime,
        blocklist=excluded.blocklist
        `
    }
    showMinecraft()
}
async function loadworld(){
    loadworldlist=await db.sql`SELECT * FROM block`
    for(loadworldi in loadworldlist){
        loadworldpiece=JSON.parse(loadworldlist[loadworldi].blocklist)
        for(z=0;z<127;z+=1){
            for(x=0;x<127;x+=1){
                voxels.setVoxelId(x,loadworldi,z,loadworldpiece[z][x])
            }
        }
        await sleep(100)
        world.say(loadworldi+"/126")
    }
}

具体用法:

1.先调用save_world方法(无参数)对地形进行存档,注意要等进度条加载完

2.在存档之后调用loadworld方法(无参数)下载地形,即可下载地图

注意事项:

1.只适用于128,128,128地图

2.注意函数名、变量名、SQL表格名不要重名

3.普通、pro版均适用


回复

上一页1 页 / 共 1下一页
2333280823332808

海默你要是敢抄必得绝症活3个月必死,死后被阎王压在冥界山下被冥火灼烧无尽岁月永世不得超生!!!!!!!!

点赞0


评论


追梦ez追梦ez

nb,把我正做的做出来了

不过我用的是哈希表存储,然后把哈希表数据存起来

点赞0


评论


追梦ez追梦ez

但是我想用这个做的逝建筑的地图

点赞0


评论


上知天文上知天文

求一个数据存储谢谢!imgsrc="https://static.cod喵/emotion/thunder_monkey/%E9%9B%B7%E7%94%B5%E7%8C%B4-%E4%B8%BE%E6%89%8B1.gif"alt="emotion_雷电猴_举手"

点赞0


评论


上知天文上知天文

https://dao3.fun/edit/7319388e83cf5df1ff68

点赞0


评论