用户:
追梦ez查看:8 回复:6 评论:8 创建时间:2022-12-22T12:34:02
在某些地图中,总有人怕公开发消息社s /i
该如何处理这个局面呢
首先,我们让玩家可互相互动,代码如下:
world.onPlayerJoin(({ entity }) => {
entity.player.message1 = "";
entity.player.interactTimes = 0;
entity.enableInteract = true;
entity.interactRadius = 2;
entity.interactHint = "与 " + entity.player.name + " 互动";
entity.onInteract(async ({ entity, targetEntity }) => {
const result = await entity.player.dialog({
type: Box3DialogType.SELECT,
title: targetEntity.player.name,
content: `和 ${targetEntity.player.name} 互动`,
options: ['和他私聊', '退出互动'], // 将提供玩家选择的选项放入数组里。
})
})
})
之后,判断玩家是否取消了互动,代码如下:
// 如果玩家点击了屏幕其他区域,取消了对话框。
if (!result || result === null) {
entity.player.directMessage('已为你自动取消互动!');
return;
}
其次,让玩家输入私聊内容,代码如下:
if (result.index == 0) {
const dialog = await entity.player.dialog({
type: Box3DialogType.INPUT,
title: "向 " + targetEntity.player.name + " 发送私聊信息",
content: `${entity.player.name},请输入私聊内容`,
confirmText: '发送', // 确定按钮上面的文字。按下确定按钮后,提交回答。
placeholder: '请输入私聊内容', // 输入框背景上的提示文字。
});
}
最后,给对方发送信息,代码如下:
targetEntity.player.message1 = dialog;
targetEntity.player.directMessage('收到 ' + entity.player.name + ' 向你发送的私聊信息,正在为你打开查看……')
await sleep(2000);
targetEntity.player.directMessage('正在查收 ' + entity.player.name + " 发送的私聊信息")
entity.player.directMessage('对方已收到聊天信息')
if (dialog) {
const dialog = targetEntity.player.dialog({
type: Box3DialogType.TEXT,
title: entity.player.name, // 对话框标题。通常对应是讲话人的名字。
content: targetEntity.player.message1, // 对话框内容。也就是对话正在讲什么。
}
之后再稍加调整,完整代码如下:
world.onPlayerJoin(({ entity }) => {
entity.player.message1 = "";
entity.player.interactTimes = 0;
entity.enableInteract = true;
entity.interactRadius = 2;
entity.interactHint = "与 " + entity.player.name + " 互动";
entity.onInteract(async ({ entity, targetEntity }) => {
const result = await entity.player.dialog({
type: Box3DialogType.SELECT,
title: targetEntity.player.name,
content: `和 ${targetEntity.player.name} 互动`,
options: ['和他私聊', '退出互动'], // 将提供玩家选择的选项放入数组里。
})
// 如果玩家点击了屏幕其他区域,取消了对话框。
if (!result || result === null) {
entity.player.directMessage('已为你自动取消互动!');
return;
}
if (result.index == 0) {
const dialog = await entity.player.dialog({
type: Box3DialogType.INPUT,
title: "向 " + targetEntity.player.name + " 发送私聊信息",
content: `${entity.player.name},请输入私聊内容`,
confirmText: '发送', // 确定按钮上面的文字。按下确定按钮后,提交回答。
placeholder: '请输入私聊内容', // 输入框背景上的提示文字。
});
targetEntity.player.message1 = dialog;
targetEntity.player.directMessage('收到 ' + entity.player.name + ' 向你发送的私聊信息,正在为你打开查看……')
await sleep(2000);
targetEntity.player.directMessage('正在查收 ' + entity.player.name + " 发送的私聊信息")
entity.player.directMessage('对方已收到聊天信息')
if (dialog) {
const dialog = targetEntity.player.dialog({
type: Box3DialogType.TEXT,
title: entity.player.name, // 对话框标题。通常对应是讲话人的名字。
content: targetEntity.player.message1, // 对话框内容。也就是对话正在讲什么。
});
}
}
})
})
盗码师太水了别喷()
global.select = async function(entity,title,content,options){
return entity.player.dialog({
type:Box3DialogType.SELECT,
title:title,
content:content,
options:options,
});
};
global.input = async function(entity,title,content,confirmText){
return entity.player.dialog({
type:Box3DialogType.INPUT,
title:title,
content:content,
confirmText:confirmText,
});
};
world.onPlayerJoin(async ({ entity }) => {
entity.enableInteract = true;
entity.interactRadius = 3;
});
world.onInteract(async({entity,targetEntity})=>{
if(entity.isPlayer){
const r = await select(entity,targetEntity.player.name+'的个人信息',`操作:`,['私聊'],);
if(r){
if(r.value == '私聊'){
let sending = null;
let receive = null;
while(true){
sending = await input(entity,targetEntity.player.name,receive,'发送');
if(sending == null){
break;
};
receive = await input(targetEntity,entity.player.name,sending,'发送');
if(receive == null){
break;
};
};
};
};
};
});点赞0
评论