猫史档案馆


【代码岛3.0IDLE制作】

用户:ray_crazyray_crazy查看:9 回复:9 评论:9 创建时间:2020-04-24T13:20:25


想自己做个IDLE吗?想像刚发布出来就火了的地图一样像那些人把聊天区弄出调试框吗?

手把手教你

一、运用函数

1.检测玩家发言

world.onChat()

2.逻辑语句

if(){}

3.尝试语句

try{}catch(){}

4.输出语句(仅适用于box3)

world.say()

二、整理思路

检测玩家发言-检测玩家名称(是否是管喵)-检测玩家发言开头(例如开头用“$“激活执行代码)-用try执行-返回

三、编写代码

要检测玩家发言,用world.onChat触发器就可以,那么就是

world.onChat(({entity,message})=>{})

检测玩家和开头用if条件判断

if(entity.player.name === "ray_crazy"){}//我的名字可以改为你的名字

如果是多个,那么是

if(entity.player.name === "ray_crazy" || entity.player.name === "abc"){}//运用逻辑或

判断开头:

if(message.indexOf("$") === 0){}//用判断“$“的位置来判断说话开头

假如你说" $Hi 1@ "那么会被转化成["$","H","i"," ","1","@"]那么“$“的索引值为0,用indexOf()检测索引值

※执行代码

message.slince(1)//从message中索引值为1的字往后重组
eval(message.slince(1))//将这行设为message的索引值为1后面的重组句子(包括索引值为1的字母)
try{
    eval(message.slince(1))
}catch(){}

为了有输出、报错,我们用world.say来输出结果

try{
    world.say(`-> ${message.slince(1)}`)
}catch(err){
    world.say(`Error: ${err}`)
}

四、结合起来

把这些语句结合起来,就成功了!

world.onChat(({entity,message})=>{
    if(!entity||entity.player.name ==='ray_crazy'||entity.player.name === "第二个管喵写这"){
        if(message.indexOf('$')==0){
        try{
            world.say('->'+eval(message.slice(1)));
        }catch(err){
            world.say('Error:'+err);
        }
    }}
    
});

 

代码为网友提供,解释纯属作者

作者完全靠自学,可能有许多不对的解释,欢迎大佬提出

 


回复

上一页1 页 / 共 1下一页
ray_crazyray_crazy

emotion_雷电猴_围观

点赞1


评论


ray_crazyray_crazy

感谢 六道伟杰 的代码emotion_星能猫_爱你

点赞0


评论


蒟蒻OIer1048576蒟蒻OIer1048576

66666666666666666

点赞0


评论


ray_crazyray_crazy

https://box3create.codemao.cn/games/1dd97c1be16f54803c69?p=tMGR5uVJVkMbJyUIBMfh9%2F9GSbhhya6R6y9cP4Iw01A6fkkwibLg%2FosIjorrrmtYvor5XogIU%3D
大家可以来这里动手试试

点赞0


评论


Alex79Alex79

顶顶顶!!!

点赞0


评论


老葵老葵

你可以使用entity.player.directmessage,这样似乎更好

点赞0


评论


GZ006GZ006

点赞0


评论


编程梦想家编程梦想家

点赞0


评论


ray_crazyray_crazy

代码优化:判断管理员可以这样

// 定义管理员列表
var admin = ['ray_crazy']
// 检测是否是管理员
admin.includes('ray_crazy') // true
admin.includes('az') // false

点赞0


评论