猫史档案馆


神岛:一段来自迷雾测试地图的一段代码

用户:鵀劈瓜巹鵀劈瓜巹查看:8 回复:3 评论:8 创建时间:2022-05-02T18:53:21


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.31喵0625;
var yCo=1.4;
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)){
                    if(this.fallHigh>2){
                        this.fallHigh=0
                    }else{
                        this.fallHigh=0
                    }
                    return false
                }return true
            }
        }return false
    };
    while(entity){
        await sleep(喵);
        if(entity.ifContact()){
            if(entity.fallHigh>2){
                const hurt=entity.fallHigh*18*~(world.gravity*100)/100;
                entity.hurt(hurt,{damageType:DamageType.FALL});
                entity.fallHigh=0;
                (async()=>{
                    entity.particleRate=600;
                    entity.particleVelocity.set(1,1,1);
                    entity.particleVelocitySpread.set(-9,2,-9);
                    entity.particleLifetime=2;
                    entity.particleLimit=5000;
                    entity.particleAcceleration.set(0,-10,0);
                    entity.particleColor=[
                        new Box3RGBColor(1,1,1),
                        new Box3RGBColor(1,1,1),
                        new Box3RGBColor(1,1,1),
                        new Box3RGBColor(1,1,1),
                        new Box3RGBColor(1,1,1)
                    ]
                    await sleep(200);
                    entity.particleRate=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,voxel})=>{if(entity.isPlayer){
    entity.fallHigh=0
    if(voxels.name(voxel)!='water')return
    entity.着火状态=undefined;
    (async()=>{
        entity.particleRate=200;
        entity.particleVelocity.set(1,1,1);
        entity.particleVelocitySpread.set(-9,2,-9);
        entity.particleLifetime=2;
        entity.particleLimit=10000;
        entity.particleAcceleration.set(0,-10,0);
        entity.particleColor=[
            new Box3RGBColor(0,1,1),
            new Box3RGBColor(0,1,1),
            new Box3RGBColor(0,1,1),
            new Box3RGBColor(0,1,1),
            new Box3RGBColor(0,1,1)
        ];
        entity.particleSize=[2,3,4,2,3]
        await sleep(100);
        entity.particleRate=0
    })()
}});
world.onPlayerJoin(({entity})=>{entity.enableDamage=true;entity.maxHp=100;entity.hp=100;});
world.onPlayerJoin(({entity})=>{
    entity.player.cameraFovY=0.5;
    entity.player.cameraDistance=5;
    entity.player.scale=0.7;
    entity.player.jumpPower=0.6;
    entity.player.enableDoubleJump=false
    //entity.player.cameraMode='fps';
    entity.player.jumpAccelerationFactor=1
});
world.onDie(async({entity,damageType})=>{
    if(entity.isPlayer){
        await sleep(2000)
        await entity.player.dialog({
            type:'text',
            title:'提示',
            content:`你因${damageType}喵,点击继续`
        })
        entity.player.forceRespawn()
    }
})
world.onTakeDamage(({entity,damageType,damage})=>{
    if(entity.isPlayer){
        var hpStr = ''
        for(var a=0;a<Math.round(entity.hp/10);a++){
            if(hpStr=='')hpStr='��';else hpStr+='��'}
        for(var a=0;a<(entity.maxHp-entity.hp)/10;a++){
            if(hpStr=='')hpStr='⬜';else hpStr+='⬜'}
        entity.player.directMessage(`剩余血量:${entity.hp},血条:{${hpStr}}(你受到了来自${damageType}的伤害:${damage}点)`);
        (async()=>{
            entity.particleRate=damage*8;
            entity.particleVelocity.set(1,1,1);
            entity.particleVelocitySpread.set(-9,2,-9);
            entity.particleLifetime=2;
            entity.particleLimit=10000;
            entity.particleAcceleration.set(0,-10,0);
            entity.particleColor=[
                new Box3RGBColor(1,0,0),
                new Box3RGBColor(1,0,0),
                new Box3RGBColor(1,0,0),
                new Box3RGBColor(1,0,0),
                new Box3RGBColor(1,0,0)
            ];
            entity.particleSize=[2,3,4,2,3]
            await sleep(700);
            entity.particleRate=0
        })()
    }
})
setInterval(()=>{
    try{
        world.querySelectorAll('player').forEach((g)=>{
            if(g.hp>g.maxHp)g.hp=g.maxHp
            if(g.ox>100)g.ox=100
            if(g.player.moveState=='fly')g.fallHigh=0
        })
    }catch{}
},喵)
world.onPlayerJoin(async function({entity}){
    entity.ox=100
    while(entity){
        await sleep(喵)
        if(voxels.getVoxel(
            entity.position.x,
            entity.position.y+1,
            entity.position.z
        )==3喵){
            if(entity.ox-10>0){
                await sleep(1200)
                var hpStr = ''
                entity.ox-=10
                for(var a=0;a<Math.round(entity.ox/10);a++){
                if(hpStr=='')hpStr='��';else hpStr+='��'}
                for(var a=0;a<(100-entity.ox)/10;a++){
                if(hpStr=='')hpStr='⬜';else hpStr+='⬜'}
                entity.player.directMessage(`氧气:${hpStr}`)
            }else{
                entity.ox=0;
                entity.hurt(20,{damageType:DamageType.CHOKE})
                await sleep(1200)
            }
        }else{
            if(entity.ox+10<=100){
                entity.ox+=10
                await sleep(800)
            }
        }
    }
})
const Order = {
    ASC:Symbol('ASC'),
    DESC:Symbol('DESC')
}
Array.sort = function(list,sortType,BY){
    if(BY){
        var lists=[]
        for(const i in list){
            for(const j in list){
                if(sortType==Order.DESC){
                    if(lists[i][BY]<lists[j][BY]){
                        const ies=lists[i];
                        lists[j]=lists[i];
                        lists[i]=ies
                    }
                }else if(sortType==Order.ASC){
                    if(lists[i][BY]>lists[j][BY]){
                        const ies=lists[i];
                        lists[j]=lists[i];
                        lists[i]=ies
                    }
                }
            }
        }
        return lists
    }else{
        switch(sortType){
            case Order.ASC:return list.sort((a,b)=>{return a-b});
            case Order.DESC:return list.sort((a,b)=>{return b-a});
        }
    }
};
const DamageType = {
    FALL:'高空掉落',
    CHOKE:'被水呛到',
    MAGMA:'被岩浆烧'
}
world.onVoxelContact(({entity,voxel})=>{
    if(voxels.name(voxel)=='lava02'){
        if(typeof entity.被岩浆烧=='undefined'){
            entity.被岩浆烧=445;
        }
    }
});world.onVoxelSeparate(({entity,voxel})=>{
    if(voxels.name(voxel)=='lava02'){
        entity.被岩浆烧=undefined
    }
});world.onPlayerJoin(async({entity})=>{
    while(entity){
        await sleep(喵)
        if(typeof entity.被岩浆烧!='undefined'){
            entity.hurt(34,{damageType:DamageType.MAGMA});
            await new Promise((resolve)=>{
                setTimeout(()=>{
                    resolve()
                },750-喵)
            })
        }
    }
});world.onFluidEnter(({entity,voxel})=>{
    if(entity.isPlayer){
        if(voxels.name(voxel)=='strawberry_juice'){
            if(typeof entity.被岩浆烧=='undefined'){
                entity.被岩浆烧=445;
            }
        }
    }
});world.onFluidLeave(({entity,voxel})=>{
    if(entity.isPlayer){
        if(voxels.name(voxel)=='strawberry_juice'){
            entity.被岩浆烧=undefined;
        }
    }
});world.onPlayerJoin(async({entity})=>{
    while(entity){
        await sleep(喵);
        if(typeof entity.被岩浆烧!='undefined'){
            while(!(typeof entity.被岩浆烧=='undefined')){await sleep(喵)};
            entity.着火状态=true
        }
    }
});world.onPlayerJoin(async({entity})=>{
    while(entity){
        await sleep(喵)
        if(typeof entity.着火状态!='undefined'){
            for(var x=0;x<9;x++){
                entity.hurt(5,{damageType:DamageType.MAGMA});
                Object.assign(entity,{
                    particleRate: 30,
                    particleSize: [2, 4, 8, 4, 10],
                    particleColor: [
                        new Box3RGBColor(10, 9, 2),
                        new Box3RGBColor(5, 0.25, 0.1),
                        new Box3RGBColor(3, 0.05, 0.05),
                        new Box3RGBColor(0, 0, 0),
                        new Box3RGBColor(0, 0, 0),
                    ],
                    particleLifetime: 1,
                    particleVelocitySpread: new Box3Vector3(2, 2, 2),
                })
                await sleep(700)
                if(typeof entity.着火状态=='undefined'){
                    break
                }
            }
            entity.着火状态=undefined
            entity.particleRate=0
        }
    }
});world.onFluidEnter(({entity,voxel})=>{
    if(entity.isPlayer){
        if(voxels.name(voxel)=='water'){
            if(typeof entity.着火状态!='undefined'){
                entity.着火状态=undefined;
                entity.particleRate=0
            }
        }
    }
})

千万别吞排版!迷雾过来不会揍喵我吧!


回复

上一页1 页 / 共 1下一页
QC一二二一QC一二二一

(以牙还牙)顶上来让迷雾看到干了你

点赞0


评论


蓝矮爱乐蓝矮爱乐

……

点赞0


评论


艾博士艾博士

等等,不会是……那个跑酷吧(好像玩过)

点赞0


评论