用户:
坦率的血翼蝠5801查看:9 回复:10 评论:9 创建时间:2022-04-17T13:05:18
首先我们先得知道对话框该怎么写:
await entity.player.dialog({
type: Box3DialogType.对话框类型大写,
title: `标题`,
content: `文本`,
})
而await应该在async里面,所以应该加上async。
例:
world.onPlayerJoin(async({entity}) => {
const hi = await entity.player.dialog({
type: Box3DialogType.TEXT,
title: `作者`,
content: `欢迎来到这个地图!`,
})
})
而如果是一个选项框的话就是SELECT,且要加一个options
world.onPlayerJoin(async({entity}) => {
const hi = await entity.player.dialog({
type: Box3DialogType.SELECT,
title: `作者`,
content: `欢迎来到这个地图!`,
options: ['谢谢您的好意','我要抢劫你']
})
})
但是只有选择,怎么检测玩家选的是哪个呢?可以用switch语句
switch(hi.index){
case 0:
// 当玩家选择了谢谢
entity.player.directMessage('不客气哦~')
break;
case 1:
// 当玩家想要抢劫作者
entity.player.kick() // 踢出玩家
world.say(entity.player.name + '因想抢劫作者而被踢出了地图')
break;
default:
}
完整代码:
world.onPlayerJoin(async({entity}) => {
const hi = await entity.player.dialog({
type: Box3DialogType.SELECT,
title: `作者`,
content: `欢迎来到这个地图!`,
options: ['谢谢您的好意','我要抢劫你']
})
switch(hi.index){
case 0:
// 当玩家选择了谢谢
entity.player.directMessage('不客气哦~')
break;
case 1:
// 当玩家想要抢劫作者
entity.player.kick() // 踢出玩家
world.say(entity.player.name + '因想抢劫作者而被踢出了地图')
break;
default:
}
})
坦率的血翼蝠5801简易了0.00001点的
world.onPlayerJoin(async({entity}) => {
c喵t hi = await entity.player.dialog({
type: 'select',
title: `作者`,
content: `欢迎来到这个地图!`,
opti喵: ['谢谢您的好意','我要抢劫你']
})
switch(hi.index){
case 0:
// 当玩家选择了谢谢
entity.player.directMessage('不客气哦~')
break;
case 1:
// 当玩家想要抢劫作者
entity.player.kick() // 踢出玩家
world.say(entity.player.name + '因想抢劫作者而被踢出了地图')
break;
default:
}
})点赞0
评论
YLG_個那如果我点空白,就会报错,所以要加上:
if(!result || result === null){ //如果玩家点击空白位置
entity.player.directMessage('放弃');
return;
}点赞1
评论
堂主の犬感觉这串代码更简单:
if(hi){
if(hi.index === 0){
entity.directMessage('不客气哦~')
}
if(hi.index === 1){
entity.player.kick()
world.say(`${entity.player.name}因想抢劫作者而被踢出了地图`)
}
}点赞1
评论