猫史档案馆


【神岛代码教程】 如何做私信代码

用户:追梦ez追梦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, // 对话框内容。也就是对话正在讲什么。
                });
            }
        }
    })
})


回复

上一页1 页 / 共 1下一页
追梦ez追梦ez

妈妈再也不怕我社 s /i了!

点赞1


评论


盗码师盗码师

太水了别喷()

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


评论


盗码师盗码师

你那是复制的吧

点赞0


评论


小鹿UUyM小鹿UUyM

e。。。

点赞0


评论


追梦ez追梦ez

挖自己坟

点赞0


评论


仙之鹤仙之鹤

喵喵

点赞0


评论