猫史档案馆


【神岛教程】如何做出高空摔落

用户:蓝矮爱乐蓝矮爱乐查看:8 回复:8 评论:8 创建时间:2022-05-01T12:41:41


console.clear();voxels.isFluid=(voxel)=>{return ['water',3喵,'strawberry_juice',412,'lime_juice',414,'blueberry_\
juice',416,'lemon_juice',418,'grape_juice',420,voxels.name(422),422,voxels.name(424),424,voxels.name(426),426,voxels
.name(428),428,voxels.name(430),430].includes(voxel)};var xzCo=0.44921875;var yCo=1.6;world.onPlayerJoin(async({
entity})=>{const g=voxels.getVoxel;entity.fallHigh=0;entity.highY=entity.position.y;entity.contactList=()=>{return [
g(entity.position.x+xzCo,entity.position.y-yCo,entity.position.z+xzCo),g(entity.position.x+xzCo,entity.position
.y-yCo,entity.position.z-xzCo),g(entity.position.x-xzCo,entity.position.y-yCo,entity.position.z+xzCo),g(entity
.position.x-xzCo,entity.position.y-yCo,entity.position.z-xzCo),g(entity.position.x+xzCo,entity.position.y-yCo,
entity.position.z),g(entity.position.x-xzCo,entity.position.y-yCo,entity.position.z),g(entity.position.x,entity.
position.y-yCo,entity.position.z+xzCo),g(entity.position.x,entity.position.y-yCo,entity.position.z-xzCo),g(entity
.position.x,entity.position.y-yCo,entity.position.z)]};entity.ifContact=function(){for(const count of entity.
contactList()){if(count!=0){if(voxels.isFluid(count)){this.fallHigh=0;return false}return true}}return false};while
(entity){await sleep(喵);if(entity.ifContact()){if(voxels.isFluid(g(entity.position.x,entity.position.y-1,entity.
position.z))){continue}if(entity.fallHigh>2){const hurt=entity.fallHigh*18*~(world.gravity*100)/100;entity.hurt(
hurt);entity.player.directMessage(`你受到${hurt}点高空伤害`);entity.fallHigh=0;}else{entity.fallHigh=0;}}if(entity.
highY>Math.floor(entity.position.y)){entity.fallHigh+=1;entity.highY=Math.floor(entity.position.y);}else{entity.
highY=Math.floor(entity.position.y);}}});world.onFluidEnter(({entity})=>{if(entity.isPlayer){entity.fallHigh=0}});
world.onPlayerJoin(({entity})=>{entity.enableDamage=true;entity.maxHp=100;entity.hp=100;});

不用world.onVoxelContact(({entity,axis})=>{if(axis.y==1){}})的原因是:如果用了,玩家跳来跳去就可以免疫高空摔落

这里用了落水免疫高空伤害的代码

亲测有效,请放心搬走()()

千万别吞排版!

千万别吞排版!

千万别吞排版!


回复

上一页1 页 / 共 1下一页
蓝矮爱乐蓝矮爱乐

排版没被吞,格式乱了()()

点赞0


评论


小白鸡小白鸡

额额额

点赞0


评论


永境鹿永境鹿

呃呃呃,虽然出了点差错,但依然相信你很厉害 另外,不喜可删,一定要认真看完imgsrc="http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/af/kl_thumb.gif"alt="emotion_可怜":兴编招人啦官网h--ttps://xccgw.mysxl.c--n/支持编程or文艺人才进入本室,准备再来个文艺型分室。素材提供、帮助萌新、每周一教。。。向更高级进军!!(注:1、请勿无理由退出;2、某些承诺更新的作品由于一些原因,不便发布,实在抱歉)只要够努力,就能当上副室长哦!!如果想更了解我们,打开https://shequ.codemao.cn/work/142550509吧 ,我们需要你

点赞0


评论


蓝矮爱乐蓝矮爱乐

注意:改变角色大小会出现bug

点赞0


评论


忠厚的刺牙螺7ftD忠厚的刺牙螺7ftD

问个很xun的问题:一个玩家的x坐标值如何用代码表示呢?

点赞0


评论


FML饭米粒FML饭米粒

voxels.isFluid = (voxel) => { return ['water', 364, 'strawberry_juice', 412, 'lime_juice', 414, 'blueberry_juice', 416, 'lemon_juice', 418, 'grape_juice', 420, voxels.name(422), 422, voxels.name(424), 424, voxels.name(426), 426, voxels.name(428), 428, voxels.name(430), 430].includes(voxel) }
var xzCo = 0.44921875
var yCo = 1.6
world.onPlayerJoin(async ({ entity }) => {
    entity.enableDamage = true
    entity.maxHp = 100
    entity.hp = 100
    const g = voxels.getVoxel
    entity.fallHigh = 0
    entity.highY = entity.position.y
    entity.contactList = () => {
        return [
            g(entity.position.x + xzCo, entity.position.y - yCo, entity.position.z + xzCo),
            g(entity.position.x + xzCo, entity.position.y - yCo, entity.position.z - xzCo),
            g(entity.position.x - xzCo, entity.position.y - yCo, entity.position.z + xzCo),
            g(entity.position.x - xzCo, entity.position.y - yCo, entity.position.z - xzCo),
            g(entity.position.x + xzCo, entity.position.y - yCo, entity.position.z),
            g(entity.position.x - xzCo, entity.position.y - yCo, entity.position.z),
            g(entity.position.x, entity.position.y - yCo, entity.position.z + xzCo),
            g(entity.position.x, entity.position.y - yCo, entity.position.z - xzCo),
            g(entity.position.x, entity.position.y - yCo, entity.position.z)]
    }
    entity.ifContact = function () {
        for (const count of entity.
            contactList()) {
            if (count != 0) {
                if (voxels.isFluid(count)) {
                    this.fallHigh = 0
                    return false
                } return true
            }
        } return false
    }
    while (entity) {
        await sleep(64)
        if (entity.ifContact()) {
            if (voxels.isFluid(g(entity.position.x, entity.position.y - 1, entity.position.z))) continue
            if (entity.fallHigh > 6) {
                const hurt = entity.fallHigh / 3 * 18 * ~(world.gravity * 100) / 100
                entity.hurt(hurt)
                entity.player.directMessage(`你受到${hurt}点高空伤害`)
                entity.fallHigh = 0
            } else {
                entity.fallHigh = 0
            }
        } if (entity.highY > Math.floor(entity.position.y)) {
            entity.fallHigh += 1
            entity.highY = Math.floor(entity.position.y)
        } else {
            entity.highY = Math.floor(entity.position.y)
        }
    }
})
world.onFluidEnter(({ entity }) => {
    if (entity.isPlayer) entity.fallHigh = 0
})

修改了以下几点:

1.优化了格式,看起来更方便了

2.调高阈值,不然正常力度一个二段跳都能有接近10点伤害

3.稍微优化了代码

点赞5


评论


电电小玩电电小玩

如果跳伞怎么办()

点赞0


评论


电电小玩电电小玩

什么玩意,二段跳还会扣血

点赞0


评论