猫史档案馆


【box3】跑酷中如何判断玩家掉虚空【大佬误入】

用户:化石茄子的铁镐化石茄子的铁镐查看:6 回复:5 评论:6 创建时间:2021-08-16T18:53:32


(~ ̄▽ ̄)~大家好,我是黄金劳斯莱斯()()(),我来发教程贴了,很水氵氵,大佬误入()()()()();

不多bb,上代码:

world.onPlayerJoin(({entity}) => {
    world.onTick(() => {
        if (entity.position.y < 5) {
            entity.player.forceRespawn();
        };
    });
} 

原理就是用ontick实时监测玩家位置,如果玩家坐标小于5,那么就重生,升级版:

world.onPlayerJoin(({entity}) => {
    entity.enableDamage=true;
    world.onTick(() => {
        if (entity.position.y < 5) {
            entity.hurt(entity.hp)
        };
    });
})
async function respawn(entity) {
    for (let i = 5; i > 0; --i) {
        entity.player.directMessage(` ${String(i)} 秒后重生`);
        await sleep(1000);
    };
    entity.player.forceRespawn();
    world.say(entity.player.name + '重生了');
}
world.onDie(({ entity }) => {
    respawn(entity);
    world.say(`${entity.player.name}掉入虚空`);
});

这个原理和上面差不多,我就不再说一遍了()()()

好了,这次的水贴(划掉)教程贴就结束了,再见了o(* ̄▽ ̄*)ブ


回复

上一页1 页 / 共 1下一页
Forzen_SevenForzen_Seven

ticker没有cancel会堆积然后player多了就造成卡顿

点赞0


评论


化石茄子的铁镐化石茄子的铁镐

dddd

点赞0


评论


async_functionasync_function

 

world.onTick(() => {
    world.querySelectorAll('player').forEach((e)=>{
        if (entity.position.y < 5) {
            entity.player.forceRespawn();
        };
    })
});

点赞1


评论


化石茄子的铁镐化石茄子的铁镐

ddd

点赞0


评论


该账号已被封禁该账号已被封禁

如果是3个玩家就是三个onTick

30个玩家就是30个onTick

不卡死您就无疑)

而且您这个虚空5秒回去人家都掉出世界回到重生点了好么

点赞0


评论