用户:
yee089查看:467 回复: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即可,然后继续判断是否持续很久为同一行走状态))
你学废了吗))
FML饭米粒这个有问题,如果你被kick了,过一段时间还会继续提示,因为ontick没有取消,而且这样子的话每进一个人,就会多一个ontick,推出了却不会少,那么服务器会卡死的
点赞0
评论
谢谢
如果喵家从栈中删除就不会过一段时间显示kick了,,而是报错😏😏
萌新大佬为了防止卡死,我一般都这么写
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
评论
彳亍,谢谢大佬))
总在想你是在夸我大佬还是在叫我名字……
收藏一波
空气人:?
空气人=kick失败的游客
《有时候空气人 => 传奇喵》 传奇喵是游客(划掉)
大佬,可以告诉我怎么扩大地图面积吗,求求了!
503_Service_Error如果被kick了,onTick没有取消,不仅服务器会一直提示,每提示一次如果玩家在的话就还会被kick,这样服务器容易卡
点赞1
评论
黑历史就别挖了()()
加一个return不就行了吗()