用户:
Star_Ink_sans查看:948 回复:17 评论:29 创建时间:2022-03-15T11:14:49
代码如下:
//将可伤害开启
world.onPlayerJoin(({ entity }) => {
entity.enableDamage = true;
});
//摔落伤害
world.onVoxelContact(async ({ entity, x, y, z, voxel }) => {
if (!entity.isPlayer) return;
let i = entity.player.fall - y
if (entity.player.fall - y > 10) {
entity.hurt(i * 3)
entity.player.directMessage('你受到了' + i * 3 + '点摔落伤害,目前血量是:' + entity.hp)
}
entity.player.fall = y
});
//处理特殊情况:水方块
world.onFluidEnter(async({entity,voxel})=>{
if(!entity.isPlayer){return;}
entity.player.fall=0
})
//这里的复活代码@吉吉喵
world.onDie(async({ entity }) => {
if (!entity.isPlayer) return;
for (let t = 1; t <= 5; t++) {
entity.player.directMessage(`倒计时 ${String(5 - t)} 秒后复活`);
await sleep(1000);
}
entity.player.forceRespawn();
});
Stephan轩其实方块检测有缺陷的,如果你从半空中落下,而且在摔落前没有接触到任何方块,那就没有摔落伤害了
点赞1
评论
确实啊 但是这样的情况只会出生在出生时/传送时,玩家也肯定不想要一出生/传送就摔喵了
传送你可以弄到地面+2格的高度啊
有BUG,比如我在传送到空中过程中碰了一下墙壁,系统会判定我接触到了方块并摔落,然后会嗝屁,相反我只要跳下去的时候一直贴着墙就没有伤害
az我记得方块检测有xyz三个值的,我去康康
可能是官方系统里就有这个BUG,有一种跑酷就是那个很多个H形状的那个泡壳,简单来说就是一堵墙上有一个洞,洞只有1~2格所以岛3人不能站在洞里面,但是你跳起来使人物脚尖碰到洞口,只要你一直按着↑或者W他就不会掉下来,所以官方的Y检测可能有一定的问题
泡壳……………………是跑酷
这种叫卡墙跳哦,很多跑酷都有awa
欸,老兄,建议改一下代码,改成判断玩家位置开始比上一次位置低时,一个变量+1,这样被击飞(起床)也能受到摔落
你这个不可以叫教程贴了,可以叫个干货贴(
)
点赞0
评论
《干货》
这玩意我在我自己的峡谷(实验代码用)地图测试了好几遍
行了,来看一下我的另一个干货:https://shequ.codemao.cn/wiki/forum/430586
Star_Ink_sans为啥要挖坟啊啊啊啊啊()
点赞0
评论
()
az,()()
entity,player.fall是內置函數???
关于马云和叉子两个大佬来挖坟这件事)
我為啥沒看到過?()
entity.player.fall=0忘记初始化了()哎等下不对啊()我记得这个代码我测试过)当时一点问题都没有)很神奇)可能是我导入进来的时候漏了()最后再说一句:看这帖子日期啊()
话说为啥用繁体字捏()
號玩唄()
entity.player.fall
//这是什么?点赞0
评论
我用的是按离地多高算
抱歉,可能是onPlayerJoin函数里复制过来的时候没复制到()但莫名其妙的是现在这个代码也能用
还有别挖了(恼)
哈哈