用户:
鵀劈瓜巹查看: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
}
}
}
})
千万别吞排版!迷雾过来不会揍喵我吧!