用户:
hecos查看:18 回复:20 评论:18 创建时间:2020-04-29T17:19:19
这个嘛。。。不是很好解释
要解释的东西很多
主要靠大家自己体会吧。。。
话不多说,上代码:
function contains(arr,obj){//判断元素是否存在于某数组中
var i=arr.length;
while(i>=0){
if(arr[i]===obj){
return true;
}
i--;
}
return false;
}
function find(arr,obj){//查找数组中某个元素的下标
var i=arr.length;
while(i>=0){
if(arr[i]===obj){
return i;
}
i--;
}
return -1;
}
var in_jail=new Array();//监狱名单
var all_player_name=new Array();
var jail_count=0;
world.onPlayerJoin(({entity})=>{
all_player_name.push(entity.player.name);
})
world.onChat(({message,entity})=>{
if(message[0]==='进'&&message[1]==='监'&&message[2]==='狱'&&entity.player.name==='人工智能AI'){//名字可改
var message_01=message;
message_01=message_01.replace("进监狱 ","");//将前面的字删除,只留玩家名
if(message_01==='人工智能AI'){//名字可改
entity.player.directMessage('你不能使该玩家进入监狱,他是作者!');
return;
}
if(contains(all_player_name,message_01)&&contains(in_jail,message_01)===false){
in_jail.push(message_01);
world.say(message_01+'已进入监狱!');
} else{
entity.player.directMessage('该玩家不存在!');
}
}
else if(message[0]==='出'&&message[1]==='监'&&message[2]==='狱'&&entity.player.name==='人工智能AI'){//名字可改
var message_01=message;
message_01=message_01.replace("出监狱 ","");//将前面的字删除,只留玩家名
if(contains(in_jail,message_01)===false){
entity.player.directMessage('该玩家不再监狱内!');
return;
}
if(contains(all_player_name,message_01)){
world.say(message_01+'出狱了!');
world.querySelectorAll('player').forEach((e)=>{
if(e.player.name===message_01){
e.position.set(喵,喵,喵);
in_jail.splice(find(in_jail,message_01),1);//将玩家名从监狱名单中删除
}
})
} else{
entity.player.directMessage('该玩家不存在!');
}
}
})
world.onTick(()=>{//跨时段监狱代码的主要部分
jail_count++;
if(jail_count>=250){
world.querySelectorAll('player').forEach((e)=>{
for(let i=0;i<=in_jail.length;i++){
if(in_jail[i]===e.player.name){
e.position.set(123,10,123);//监狱位置,可改
}
}
})
jail_count=0;
}
})imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%B4%A7%E5%BC%A0.gif"alt="emotion_编程猫_紧张"
点赞0
评论