猫史档案馆


手把手教你BOX3的跑酷要的代码!

用户:泽某人001泽某人001查看:12 回复:7 评论:12 创建时间:2022-04-04T10:31:29


各位看好了,全是干货

/* 玩家进入游戏时,弹出一个欢迎对话框 */
world.onPlayerJoin(({entity}) => {
    entity.player.dialog({
        type: Box3DialogType.TEXT,
        title: "作者",
        content: `你好,${entity.player.name},欢迎来到跑酷。`,
    });
})

自动检测说喵话并禁言

var swearing = ['™', '喵', '1452', '54188', '喵', '2B', '喵', '喵', 'Tm', '喵', 'wc', 'Wc', 'WC', 'wC', '喵', 'sB', '喵', 'Sb', '撒比', "114514", "喵", "傻13", "喵","喵","喵"]
world.onChat(async ({ entity, message }) => {//async是异步函数,因为有await,onChat检测玩家说话
    if (not_people.indexOf(entity.player.name) == -1) {
        if (message.includes('喵') || swearing.indexOf(message) >= 0) {
            entity.player.directMessage('你已被禁言,5分钟秒后解除')//提醒玩家
            world.say(`==== ${entity.player.name} 因为说喵喵语,被系统禁言了5分钟  ===`)
            entity.hurt(entity.maxHp, { damageType: '系统' })
            entity.player.muted = true;//禁言玩家
            await sleep(5 * 60000);//等待5分
            entity.player.muted = false;//玩家解除禁言
            // entity.player.directMessage('===解除禁言===')
            entity.player.dialog({
                type: Box3DialogType.TEXT,
                title: "系统",
                content: `===解除禁言===`,
            });
            world.say(`==== ${entity.player.name} 解除禁言====`)
        }
    }

管喵的权限:

var admin=['管喵一号','管喵二号']
world.onChat(async({entity,message})=>{
    if(entity.isPlayer){
        if(admin.includes(entity.player.name)){ 
            if(message=='管喵权限'){entity.player.directMessage('管喵特权:特殊功能包含变大、变小、还原大小、飞行、解除飞行、隐身、现身、隐藏名字、显示名字、幽灵、解除幽灵、发光、还原发光、反光、还原反光、变红色、变蓝色、变绿色、变紫色、变黄色、变浅蓝色、还原颜色、全部还原、禁言(例如:禁言+禁言者名字)、解除禁言(例如:解除禁言+被禁言者名字),提示(禁言和禁言者名字间不要加空格)。')}
            if(message=='变大'){entity.player.scale=1.5;world.say(entity.player.name+'变大了')}
            if(message=='变小'){entity.player.scale=0.5;world.say(entity.player.name+'变小了')}
            if(message=='还原大小'){entity.player.scale=1;world.say(entity.player.name+'还原了大小')}
            if(message=='飞行'){entity.player.canFly=true;world.say(entity.player.name+'开启了飞行模式')}
            if(message=='关闭飞行'){entity.player.canFly=false;world.say(entity.player.name+'关闭了飞行模式')}
            if(message=='加速'){
                entity.player.walkSpeed +=300
                entity.player.runSpeed +=190
                entity.player.flySpeed +=100
                world.say(entity.player.name + '加速')}
            if(message=='隐身'){entity.player.invisible=true;world.say(entity.player.name+'隐身')}
            if(message=='现身'){entity.player.invisible=false;world.say(entity.player.name+'现身了')}
            if(message=='隐藏名字'){entity.player.showName=false;world.say(entity.player.name+'隐藏了名字')}
            if(message=='显示名字'){entity.player.showName=true;world.say(entity.player.name+'显示了名字')}
            if(message=='幽灵模式'){entity.player.spectator=true;world.say(entity.player.name+'开启了幽灵模式')}
            if(message=='关闭幽灵'){entity.player.spectator=false;world.say(entity.player.name+'关闭了幽灵模式')}
            if(message=='发光'){entity.player.emissive=1;world.say(entity.player.name+'开启了发光效果')}
            if(message=='还原发光'){entity.player.emissive=0;world.say(entity.player.name+'还原了发光效果')}
            if(message=='反光'){entity.player.shininess=1;world.say(entity.player.name+'开启了反光效果')}
            if(message=='关闭反光'){entity.player.shininess=0;world.say(entity.player.name+'还原了反光效果')}
            if(message=='变红色'){entity.player.color.set(1,0,0);world.say(entity.player.name+'变成了红色')}
            if(message=='变绿色'){entity.player.color.set(0,1,0);world.say(entity.player.name+'变成了绿色')}
            if(message=='变蓝色'){entity.player.color.set(0,0,1);world.say(entity.player.name+'变成了蓝色')}         
            if(message=='变紫色'){entity.player.color.set(1,1,0);world.say(entity.player.name+'变成了紫色')}
            if(message=='变浅蓝色'){entity.player.color.set(0,1,1);world.say(entity.player.name+'变成了浅蓝色')}
            if(message=='还原颜色'){entity.player.color.set(1,1,1);world.say(entity.player.name+'还原了颜色')}
            if(message=='全部还原'){entity.player.scale=1             
                entity.player.canFly=false
                entity.player.showName=true
                entity.player.spectator=false
                entity.player.emissive=0
                entity.player.shininess=0
                entity.player.color.set(1,1,1)
                world.say(entity.player.name+'全部还原了')
            }
            if(message.startsWith('禁言')){
                if(message.slice(2)==entity.player.name){
                    entity.player.directMessage('这么想禁言自己??')
                }else{
                    world.querySelectorAll('player').forEach((x)=>{
                        if(x.player.name == message.slice(2)){
                            x.player.directMessage('你已被管喵禁言,请等待管喵解除')
                            world.say('有玩家犯了错,被管喵禁言了')
                            x.player.muted=true
                        }
                    })
                }
            }
            if(message.startsWith('解除禁言')){
                if(message.slice(4)==entity.player.name){
                    entity.player.directMessage('无法解除禁言自己')
                }else{
                    world.querySelectorAll('player').forEach((x)=>{
                        if(x.player.name == message.slice(4)){
                            x.player.directMessage('你已被管喵解除禁言')
                            world.say('有玩家被管喵解除禁言了!')
                            x.player.muted=false
                        }
                    })
                }
            }
        }
    }
})

存档点(记得要把模型的名字改成存档点):

for (const e of world.querySelectorAll('*')) {//遍历所有实体
    if (e.id.startsWith('存档点')) {
        e.collides = true//开启碰撞
        e.fixed = true //固定实体不被推移
        e.onEntityContact(({ other }) => { //每当存档点碰到另一个实体
            if (other.isPlayer) { //另一个实体是玩家
                other.player.enableJump = true;
                other.player.enableDoubleJump = true;
                if (e.position !== other.player.spawnPoint) { //检测当前存档点是否是重生点,避免多余保存
                    other.player.directMessage('存档成功')//显示存档成功
                    other.player.spawnPoint = e.position //重生坐标设置成存档点坐标
                }
            }
        })
    }
}

你,学费了吗?


回复

上一页1 页 / 共 1下一页
泽某人001泽某人001

如果对你有帮助的话记得点个赞,谢谢imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E8%B0%A2%E8%B0%A2%E8%80%81%E6%9D%BF.gif"alt="emotion_编程猫_谢谢老板"

点赞0


评论


Mini_editMini_edit

我感觉还要加一个私聊代码(过一会我会发来)

点赞1


评论


Mini_editMini_edit

//与玩家私聊 world.onPlayerJoin(({ entity }) => {     entity.player.message1 = "";     entity.player.interactTimes = 0;     entity.enableInteract = true;     entity.interactRadius = 3;     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: ['和TA私聊', '退出互动'],   // 将提供玩家选择的选项放入数组里。         })         // 如果玩家点击了屏幕其他区域,取消了对话框。         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


评论


鎏翎鎏翎

作者我有个问题

 

点赞0


评论


和蔼的挠挠熊Cqqo和蔼的挠挠熊Cqqo

001,牛X了啊,去我图坐坐呗imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%82%B9%E8%B5%9E.gif"alt="emotion_编程猫_点赞"

点赞0


评论


泽某人001泽某人001

@所有人,我以后会出这个的重置/修定版和跑酷地图常用关卡和完整地图教程,敬请期待。

点赞0


评论


东方绝尘东方绝尘

没错学

点赞0


评论