猫史档案馆


【神岛干货】传送菜单代码

用户:CenCen查看:508 回复:11 评论:12 创建时间:2022-05-29T15:51:04


/*
在大型地图中,去一个地方很麻烦需要跑图
然而一个传送菜单就能很好的解决这个问题
(第一次发教程,有误请在评论区指出,Thanks♪(・ω・)ノ)
*/
async function tp(entity) {
    const selection = await entity.player.dialog({
        type: Box3DialogType.SELECT,
        content: `传送菜单`,
        options: ['地点1', '地点2','地点3']//可改可加,加了下面也要加
    })
    if (selection) {
        switch (selection.value) {
            case '地点1':
                entity.position.set(11, 45, 14)//这填坐标
                break
            case '地点2':
                entity.position.set(19, 19, 18)//这填坐标
                break
            case '地点2':
                entity.position.set(12, 34, 56)//这填坐标
                break
        }
    }
}
world.onPress(async ({ entity, button }) => {//按下按键
    if (button === Box3ButtonType.ACTION1) {//如果是右键
        await tp(entity)//打开传送菜单
    }
});


回复

上一页第 1 页 / 共 1 页下一页
CenCen

沙发

点赞0


评论

wow


梁桂琪梁桂琪

你js好吗

点赞0


评论


不叫Fannas叫贝奇不叫Fannas叫贝奇

这么臭的代码扔了吧doge

点赞2


评论

(悲

?这是我设子啊

az点错回复了(应该是你的那个评论的回复(


Architect_fyArchitect_fy

不能放一起吗《》非得多弄一个函数,凑行数吗《》?

 

点赞0


评论

直接整合不好吗《》

有某屑地图已经写好了菜单了,不需要右键打开直接上函数就OK了()()()

我不怎么用switch,我一直用if判断,我感觉switch会有点乱

随便反正效果都一样


灵清帝王吃爆一切厕所灵清帝王吃爆一切厕所

氵()()()()()

点赞0


评论


SKQASKQA

//太水了,来个简化版()
var pos=[
    new Box3Vector3(),//地点1的坐标
    new Box3Vector3(),//地点2
    new Box3Vector3() //地点3
]
world.onPress(async({entity,button})=>{if(button!='action1')return
var result=await entity.player.dialog({type:'select',content:'传送菜单',
options:['地点1','地点2','地点3']})if(!result)return;entity.position=pos[result.index]
})

点赞1


评论

面向萌新()()()


编码喵编码喵

有点面向过程

点赞0


评论


银狐残影银狐残影

收藏起来

点赞0


评论


未名用户未名用户

喵

点赞0


评论


array_已退array_已退

建议:switch()中的

selection.value

可以改成

selection.index

它表示选中选项在option数组中的索引。这样如果改了地名也能正常传送,

点赞0


评论

但如果位置更换了呢

指option中数组的任意两个字符串互换了位置

其实取值更方便


YLG_個YLG_個

()

点赞0


评论