猫史档案馆


【求助】如何把下面两段代码做成一段

用户:一只屑流苏呀一只屑流苏呀查看:2 回复:3 评论:2 创建时间:2023-01-03T21:05:50


第一段:

world.onPlayerJoin(async({ entity }) => {
    while (1) { //无限循环,防止玩家点“×”
        let respawnDialog = await entity.player.dialog({ //该玩家弹出一个对话框
            type: Box3DialogType.SELECT, //类型为选择对话框
            title: 'XX', //将对话框的标题设为“作者”
            content: `XX`, 
            options: ['XX'], //对话框的选项只有一个,就是“继续”
        });
        if (respawnDialog) { //如果玩家点击了选项(因为选项只有一个,所以这行代码的意思还可以是“如果玩家点击了‘继续’”)
            break; //退出无限循环
        } //这里不用判断“如果玩家没有点击选项”了,因为这是无限循环,如果不点。击选项就没有break,自然就直接进行下一轮循环(重新弹出一遍对话框)了
    }
    while (1) { //无限循环,防止玩家点“×”
        let respawnDialog = await entity.player.dialog({ //该玩家弹出一个对话框
            type: Box3DialogType.SELECT, //类型为选择对话框
            title: 'XX', //将对话框的标题设为“作者”
            content: `XX`, 
            options: ['XX'], //对话框的选项只有一个,就是“继续”
        });
        if (respawnDialog) { //如果玩家点击了选项(因为选项只有一个,所以这行代码的意思还可以是“如果玩家点击了‘继续’”)
            break; //退出无限循环
        } //这里不用判断“如果玩家没有点击选项”了,因为这是无限循环,如果不点。击选项就没有break,自然就直接进行下一轮循环(重新弹出一遍对话框)了
    }
})

第二段:

world.onVoxelContact(async ({ entity, voxel }) => {
    // 将方块id转换名称
    const voxelName = voxels.name(voxel) 
    // 如果方块名称是XX
    if (voxelName === 'XX') {       
        // 给当前玩家弹出窗口 
        await entity.player.dialog({
            type: Box3DialogType.TEXT,
            title: "XX",
            content: `XX`,
        });
    }
})

目标:两段代码合在一起,达到碰到xx方块弹出第一段代码那样的窗口

发在评论区活着来https://box3.codemao.cn/e/e09ee3b94c390fed656d

 

emotion_编程猫_谢谢老板

 


回复

上一页1 页 / 共 1下一页
145a145a

把第一个封装

点赞0


评论


SHEL深空无尽SHEL深空无尽

async function a(entity){//把第一段用函数封装打包起来,后面方便用
    while (1) { //无限循环,防止玩家点“×”
        let respawnDialog = await entity.player.dialog({ //该玩家弹出一个对话框
            type: Box3DialogType.SELECT, //类型为选择对话框
            title: 'XX', //将对话框的标题设为“作者”
            content: `XX`, 
            options: ['XX'], //对话框的选项只有一个,就是“继续”
        });
        if (respawnDialog) { //如果玩家点击了选项(因为选项只有一个,所以这行代码的意思还可以是“如果玩家点击了‘继续’”)
            break; //退出无限循环
        } //这里不用判断“如果玩家没有点击选项”了,因为这是无限循环,如果不点。击选项就没有break,自然就直接进行下一轮循环(重新弹出一遍对话框)了
    }
    while (1) { //无限循环,防止玩家点“×”
        let respawnDialog = await entity.player.dialog({ //该玩家弹出一个对话框
            type: Box3DialogType.SELECT, //类型为选择对话框
            title: 'XX', //将对话框的标题设为“作者”
            content: `XX`, 
            options: ['XX'], //对话框的选项只有一个,就是“继续”
        });
        if (respawnDialog) { //如果玩家点击了选项(因为选项只有一个,所以这行代码的意思还可以是“如果玩家点击了‘继续’”)
            break; //退出无限循环
        } //这里不用判断“如果玩家没有点击选项”了,因为这是无限循环,如果不点。击选项就没有break,自然就直接进行下一轮循环(重新弹出一遍对话框)了
    }
})
};
world.onVoxelContact(async ({ entity, voxel }) => {
    // 将方块id转换名称
    const voxelName = voxels.name(voxel) 
    // 如果方块名称是XX
    if (voxelName === 'XX') {       
        // 直接调用函数即可
        a(entity)
    }
})//函数,永远滴神——(

点赞0


评论


烟魂烟魂

不行呀!

毁图神奇

️Bloody coat-Bribe ca

点赞0


评论