用户:
乱码者查看:2 回复:5 评论:2 创建时间:2022-08-27T22:54:51
oxels.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 } } } })