用户:
SKQA查看:166 回复:49 评论:166 创建时间:2022-07-07T13:39:08
和一剑一样闲得慌()
只搞box3js哈()
问啥都彳亍()只要不是特别bt的挑战()
SKQA问题包括但不限于: 1.修bug()可以发代码或发链接()我直接修() 2.写功能()小到存档点和喵战,大到折叠背包或SQL都彳亍()代码量不要特别大() 3.挑战()例如只用括号和字母写代码()只要不是不可能完成的我都尽力去完成()
点赞0
评论
SKQA//@BOSS不爱吃鱼的小鱼 的喵代码()
world.querySelectorAll('.喵').forEach((e)=>{
world.addZone({
new Box3Bounds3(e.position.sub(e.bounds),e.position.add(entity.bounds)),
force:[0,0.1,0],
})
})点赞0
评论
SKQA//@ฅ智慧编程猫ฅ----(和平工作室室长) 的TNT代码()
//先在地图中放置一个TNT模型,把文件名改成TNT.vb。
//代码实现效果:玩家点击左键放置一个TNT,闪烁3秒后破坏直径3格球形内的方块以及3格内实体扣20血、击飞的效果()
//代码未测试,随手写的,有bug和我说
function sphere(vox,cx,cy,cz,radius){
let xend=cx+radius
let yend=cy+radius
let zend=cz+radius
for(let x=cx-radius;x<=xend;x++){
for(let y=cy-radius;y<=yend;y++){
for(let z=cz-radius;z<=zend;z++){
let dx=x-cx
let dy=y-cy
let dz=z-cz
if(Math.round(Math.sqrt(dx*dx+dy*dy+dz*dz)) <= radius){
voxels.setVoxel(x,y,z,vox)
}
}}}
}
world.onPress(async({button,raycast:{voxelIndex}})=>{
const pos=voxelIndex
const tnt=world.createEntity({
mesh:'mesh/TNT.vb',
position:pos,
meshScale:new Box3Vector3(1/16,1/16,1/16),
fixed:true
})
for(let i=0;i<3;i++){
await sleep(500)
tnt.meshEmissive=1
await sleep(500)
tnt.meshEmissive=0
}
sphere(0,tnt.position.x,tnt.position.y,tnt.position.z,3)
world.querySelectorAll('*').filter((e)=>tnt.position.distance(e.position)<3)
.forEach((e)=>{
e.hurt(20)
const direction=tnt.position.sub(e.position)
e.velocity.x+=direction.x*1.5
e.velocity.y+=2
e.velocity.z+=direction.z*1.5
})
tnt.destroy()
})点赞0
评论
SKQA//@牛魔王降世 的折叠背包代码
//解释:
//玩家.items - 玩家的背包
//玩家.addItems(items,num) - 在玩家的背包里添加num个items
//玩家.delItems(items,num) - 在玩家的背包里删除num个items
//展示背包时可以用 玩家.items.map(i=>i.join('*')) 得到[物品*数字,物品2*数字]这样格式的数组。
world.onPlayerJoin(({entity})=>{
entity.items=[]
entity.addItems=(entity,items,num)=>{
if(!entity.items.find(i=>i[0]==items))entity.items.push([items,num])
else entity.items.find(i=>i[0]==items)[1]+=num
}
entity.delItems=(entity,items,num)=>{
if(!entity.items.find(i=>i[0]==items))return
entity.items.find(i=>i[0]==items)[1]-=num
}
})点赞0
评论
SKQA//@PureWhile 的怪物代码
//先给怪物贴上"怪物"的标签,和在地图里放置子弹的模型
//代码实现效果:怪物会跟随距离它最近的玩家(速度1秒2格),当距离小于10格时会向玩家发射子弹(飞行速度1秒3格),子弹碰到玩家玩家会扣50血并删除子弹,子弹持续1.5秒后删除。
world.addCollisionFilter('.怪物','.子弹')
world.onPlayerJoin(event=>event.entity.player.enableDamage=true)
world.onTick(({tick})=>{
if(tick%16!=0)return
world.querySelectorAll('.怪物').forEach(async(e)=>{
let target=world.querySelectorAll('player').sort((a,b)=>
a.position.distance(e.position)-b.position.distance(e.position)
)
if(target)e.target=target
if(e.target&&!e.target.destroyed){
let direction=e.target.position.sub(e.position)
let dist=direction.mag()
e.velocity.x=direction.x*2/dist
e.velocity.z=direction.z*2/dist
e.meshOrientation.copy(
new Box3Quaternion(0,0,0,1).rotateY(Math.atan2(e.velocity.x,e.velocity.z))
)
if(e.position.distance(e.target.position)<10){
let bullet=world.createEntity({
mesh:'mesh/子弹.vb',
position:e.position,
meshScale:new Box3Vector3(1/16,1/16,1/16),
tags:['子弹'],
})
bullet.velocity.x=direction.x*3
bullet.velocity.z=direction.z*3
bullet.onEntityContact(({other})=>{
if(other.isPlayer){other.hurt(50);bullet.destroy()}
})
await sleep(1500)
bullet.destroy()
}
}
})
})点赞0
评论
yee089
class item{
constructor(){
this.it = new Map();
};
add(i,n){
if(n < 0){
console.error('<~NumberError: can‘t add a negative value.')
}
if(this.it.get(i) === undefined)
this.it.set(i,n);
else
this.it.set(i,this.it.get(i)+n);
}
del(i,n){
if(this.it.get(i) === undefined){
console.error("<~ReferenceError: key: ‘" + i + '’ is not definded.');
}
else{
if(this.it.get(i) >= n)
this.it.set(i,this.it.get(i)-n);
else
console.error('<~NumberError: ' + n +' is too big for key: ’' + i + '‘.');
}
}
geti(i){
if(this.it.get(i) === undefined){
console.error("<~ReferenceError: key: ‘" + i + '’ is not definded.');
return undefined;
}
else{
return this.it.get(i);
}
}
has(i){
return this.it.get(i) != undefined;
}
clear(){
this.it.clear()
}
size(){
return this.it.size;
}
}
world.onPlayerJoin(({entity})=>{
console.clear();
entity.item = new item();//开背包类
entity.item.add('114514',-114514);//增加键‘114514’的对应值-114514
entity.item.add('114514',114514);//增加键‘114514’的对应值114514
entity.item.del('1919810',1919810);//删除键‘1919810’的对应值1919810
entity.item.del('114514',1919810)//删除键‘114514’的对应值1919810;
console.log(entity.item.geti('114514'));//返回键‘114514’的对应值
console.log(entity.item.geti('1919810'));//返回键‘1919810’的对应值
console.log(entity.item.has('114514'));//返回item中是否有键‘114514’
entity.item.clear();//清除玩家背包
console.log(entity.item.size());//返回背包大小
})
更好的背包。
点赞0
评论