猫史档案馆


岛喵ro版rtc语音系统模板(⚠若使用此代码导致地图崩溃,后果自负!⚠)

用户:LZ编编编编程猫LZ编编编编程猫查看:12 回复:13 评论:12 创建时间:2023-07-22T00:05:18


⚠⚠⚠pro版rtc功能未完善,语音频道内的玩家若退出地图会导致地图下一次运行时崩溃,任何人无法进入!严禁在已发布地图上测试此功能!地图崩溃后果自负!

(async () => {
    channel = await rtc.createChannel();
})();

world.onPlayerJoin(async ({ entity }) => {
    entity.player.inChannel = false;
    entity.player.directMessage('鼠标右键(手机/平板B键)可打开语音设置面板');
});

world.onPress(async ({ button, entity }) => {
    if (button === GameButtonType.ACTION1) {
        let permission = await channel.getMicrophonePermission(entity);
        if (!permission) {
            entity.player.dialog(({
                type: GameDialogType.TEXT,
                title: '语音设置',
                content: '检测到你已禁止此网页使用你的麦克风,请先允许此功能!',
            }));
            return;
        }
        let players = await channel.getPlayers();
        if (!entity.player.inChannel) {
            let result = await entity.player.dialog(({
                type: GameDialogType.SELECT,
                title: '语音设置',
                options: ['加入语音频道']
            }));
            if (!result) {
                return;
            }
            await channel.add(entity);
            await channel.publishMicrophone(entity);
            entity.player.inChannel = true;
            world.say(entity.player.name + '加入了语音频道!');
            return;
        }
        let result = await entity.player.dialog({
            type: GameDialogType.SELECT,
            title: '语音设置',
            options: ['开启麦克风', '关闭麦克风', '设置麦克风音量', '查看语音频道内玩家列表', '退出语音频道']
        });
        if (!result) return;
        switch (result.index) {
            case 0:
                await channel.publishMicrophone(entity);
                entity.player.directMessage('已开启麦克风!');
                break;
            case 1:
                await channel.unpublish(entity);
                entity.player.directMessage('已关闭麦克风!');
                break;
            case 2:
                let volume = await channel.getVolume(entity);
                let result = await entity.player.dialog({
                    type: GameDialogType.INPUT,
                    title: '设置麦克风音量',
                    content: '你目前的麦克风音量为' + volume,
                    placeholder: '设置麦克风音量(0~100的整数)'
                });
                if (!result) {
                    break;
                }
                result = +result;
                if (!Number.isInteger(result) || result < 0 || result > 100) {
                    entity.player.directMessage('输入不合法!');
                    break;
                }
                await channel.setVolume(entity, result);
                entity.player.directMessage('已将麦克风音量设置为' + result);
                break;
            case 3:
                let names = players.map((entity) => entity.player.name);
                entity.player.dialog({
                    type: GameDialogType.SELECT,
                    title: '语音频道内玩家列表',
                    options: names
                });
                break;
            case 4:
                await channel.remove(entity);
                entity.player.inChannel = false;
                world.say(entity.player.name+'退出了语音频道!');
                break;
            default:
                break;
        }
    }
});


回复

上一页1 页 / 共 1下一页
LZ编编编编程猫LZ编编编编程猫

沙发

点赞1


评论


tiger666250tiger666250

wc这是怎么发现的()

点赞1


评论


yee剑走天下yee剑走天下

woc nb!

点赞1


评论


飞阁_Pallad飞阁_Pallad

你是怎么发现方法名的?!!)太强了吧

点赞1


评论


mkonnzikmkonnzik

nb,史无前例()

点赞1


评论


SHEL深空无尽SHEL深空无尽

nbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnbnb

点赞1


评论


无极玄天无极玄天

woc nb

点赞1


评论


LZ编编编编程猫LZ编编编编程猫

七式草莓最先发现了这个功能()他现在好像还解决了地图崩溃的问题()

点赞1


评论


被遗忘的屑被遗忘的屑

多半人不会开语音()

点赞2


评论


神岛吉吉喵神岛吉吉喵

emotion_编程猫_厉害了

点赞1


评论


h何某某h何某某

6

 

 

点赞0


评论


h何某某h何某某

nb

点赞0


评论


HIM_PETERHIM_PETER

我去!nb!!!

点赞0


评论