用户:ray_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);
}
}}
});
代码为网友提供,解释纯属作者
作者完全靠自学,可能有许多不对的解释,欢迎大佬提出
代码优化:判断管理员可以这样
// 定义管理员列表
var admin = ['ray_crazy']
// 检测是否是管理员
admin.includes('ray_crazy') // true
admin.includes('az') // false点赞0
评论