用户:
yee089查看:12 回复:6 评论:12 创建时间:2022-02-26T17:58:41
world.onPlayerJoin(({entity})=>{ //防挂机
var time1 = 0;
world.onTick(({tick})=>{
if(entity.player.walkState == ''){
time1++;
}
else{
time1 = 0;
}
if(time1 >= 5000){
entity.player.kick();
world.say(`${entity.player.name}挂机了`)
time1=0;
}
})
})
简单的说,若挂机,则该玩家一定是处于同一行走状态的(有可能一直蹲着),那么当玩家换行走状态时,代表未挂机;此时让now=entity.player.walkState即可,然后继续判断是否持续很久为同一行走状态))
你学废了吗))
萌新大佬为了防止卡死,我一般都这么写
world.onPlayerJoin(({entity})=>{
entity.time1=0;
})
world.onTick(()=>{
world.querySelectorAll('player').forEach((entity)=>{
if(entity.player.walkState==''){
entity.time1++;
}
else{
entity.time1=0;
}
if(entity.time1>=1000){
entity.player.kick();
world.say(`${entity.player.name}挂机被踢出服务器`)
entity.time1=0;
}
})
})
这样每tick如果玩家已经退出那么querySelectorAll是找不到他的,而且这样entity.time1也可以在其他地方修改,比如当对对话框有操作时也可以清零等
点赞0
评论