Lv.1
无
签名:活跃在神奇的代码岛dao3·fun
在 一句话证明你的年级 中回复
从前有一个女孩叫戴雨默,她是一个病娇,她今天很开心。所以如果你在5分钟之内这条信息转发到了10个论坛,她会一辈子保佑你,并且保佑你考满分,如果你超额完成,她晚上的时候会拿着好东西出现在你的床前,让你快♂乐一辈子,喜欢你暗恋的人也会喜欢你,但是如果你不转发的话,那他在晚上9点的时候,会出现在你的床前,笑嘻嘻的看着你说我真美吗不会 (我也不知道谁发的,为了安全,我也转了)
2024-05-25T18:56:15 点赞:0
在 转载-电梯 中回复
var door_F_Number = 1 //数字是电梯的初始楼层
for (let an = 1; an <= 8; an++) {
world.querySelector('#上' + an).enableInteract = true /*召唤电梯的实体id(名称) 要上+按钮所在层数 的格式*/
world.querySelector('#上' + an).interactHint = '召唤电梯'
world.querySelector('#上' + an).interactRadius = 1.5
world.querySelector('#上' + an).onInteract(async ({ entity }) => {
await starter(an)
})
}
async function starter(diantiNum) {
closeTheDoor()//关闭电梯门
closeTheDoorButF(door_F_Number)//关闭楼层门
await sleep(500)//等待楼层门关闭
await dianti(7 * diantiNum + 3)//电梯去往所选楼层
await sleep(500)//等待电梯停稳
openTheDoor()//打开电梯门
openTheDoorButF(diantiNum)//打开到达楼层门
door_F_Number = diantiNum//将本楼层设置为所选楼层
}
openTheDoor()//先打开电梯门
const c = world.querySelector('#电梯启动器-1')//选择电梯层的模型id前缀#
c.enableInteract = true
c.interactRadius = 1.8;
c.interactHint = '电梯楼层'
c.onInteract(async ({ entity }) => {
var l = await entity.player.dialog({
type: 'select',
title: '楼层',
options: ['1F', '2F', '3F', '4F', '5F', '6F', '7F', '天台'],
})
if (l) {
await starter(l.index + 1);
}
})
async function openTheDoor() {
if (world.querySelector('#电梯门左').position.z < 152.3) {/*当电梯门处于关闭状态,坐标是左边电梯门关闭状态+0.3或-0.3的误差*/
world.querySelector('#电梯门左').position.z += 2
world.querySelector('#电梯门右').position.z -= 2
}
}
async function openTheDoorButF(n) {//参数n是打开电梯门的层数
if (world.querySelector('#电梯门左' + n).position.z < 152.3 && world.querySelector('#电梯门左' + n).position.z > 151.9) {
world.querySelector('#电梯门左' + n).position.z += 2
world.querySelector('#电梯门右' + n).position.z -= 2
}
}
async function closeTheDoorButF(n) {
if (world.querySelector('#电梯门左' + n).position.z > 152.2) {
world.querySelector('#电梯门左' + n).position.z -= 2
world.querySelector('#电梯门右' + n).position.z += 2
}
}
async function closeTheDoor() {
if (world.querySelector('#电梯门左').position.z > 152.2) {
world.querySelector('#电梯门左').position.z -= 2
world.querySelector('#电梯门右').position.z += 2
}
}
async function dianti(position) {//电梯去往所选楼层的函数代码
if (world.querySelector('#电梯瓷砖').position.y < position) {
while (world.querySelector('#电梯瓷砖').position.y < position) {
world.querySelectorAll('.电梯').forEach((e) => {
e.velocity.y = 0.3
})
await sleep(20)
}
world.querySelectorAll('.电梯').forEach((e) => {
e.velocity.y = 0
})
} else {
while (world.querySelector('#电梯瓷砖').position.y > position) {
world.querySelectorAll('.电梯').forEach((e) => {
e.velocity.y = -0.3
})
await sleep(20)
}
world.querySelectorAll('.电梯').forEach((e) => {
e.velocity.y = 0
})
}
}
world.querySelector('#电梯门左').position.z += 2//开电梯门
world.querySelector('#电梯门右').position.z -= 2
world.querySelector('#电梯门左1').position.z += 2//每层电梯门要以电梯门+方向+层数的格式
world.querySelector('#电梯门右1').position.z -= 22024-07-31T08:56:17 点赞:0
在 【教程】背包教程(自带SQL) 中回复
constInitCap=10;//这里写背包的初始容量db.sql`CREATETABLEIFNOTEXISTSbag(idCHAR(16)NOTNULL,--这里存userKeyrecordTEXTNOTNULL--这里存背包)`//建立sqlworld.onPlayerJoin(async({entity})=>{//当玩家进入地图functioninit(){//建立初始背包entity.bag=newBag(entity,{/*如果有初始物品在这里写*/},InitCap);//初始背包的构造}if(entity.player.userKey){//如果玩家非游客constrows=awaitdb.sql`SELECT*FROMbagWHEREid=${entity.player.userKey}`;//获取玩家数据的那一行if(rows&&!rows.length){//如果这一行不存在init();//那么建立初始背包db.sql`INSERTINTObagVALUES(${entity.player.userKey},${getRecord.call(entity)})`;//将初始背包插入sql}else{//如果玩家有数据constnow=JSON.parse(rows[0].record);//将读取到的数据临时存放在nowentity.bag=newBag(entity,now.thing,now.capacity);//将now拆分开并建立玩家的背包}}elseinit();//游客玩家直接建立新背包})world.onPlayerLeave(({entity})=>{entity.bag.save();//玩家离开时保存})classBag{//创建背包类constructor(owner=newBox3Entity,thing={},capacity=0){//构造函数this.owner=owner;this.thing=thing;this.capacity=capacity;this.now=0;for(constiofObject.keys(this.thing)){this.now+=this.thing[i];}//now是物品数量this.saveObject={thing:this.thing,capacity:this.capacity}//sql存档的时候存这个}save(){//保存if(!this.owner.player.userKey)return;//如果游客账号就不保存db.sql`UPDATEbagSETrecord=${JSON.stringify(this.saveObject)}WHEREid=${this.owner.player.userKey}`;//保存}add(item='',num=1){//添加物品,默认添加一个if(this.now+num>this.capacity)returnundefined;//如果数量数量超过了就返回undefinedif(!!this.thing[item]){//如果此物品存过this.thing[item]+=num;//增加numthis.saveObject.thing[item]+=num;//保存对象也要同步}else{//如果没存过this.thing[item]=num;//直接赋值this.saveObject.thing[item]=num;//直接赋值}this.now+=num;//物品的数量也要加returnthis.thing[item];//返回物品数量}del(item='',num=1){//删除物品,默认减少一个if(!this.thing[item])returnNaN;//如果此物品不存在直接返回NaN(NotaNumber)if(this.thing[item]<num)returnundefined;//如果不够减就返回undefunedthis.thing[item]-=num;//减去相应的量this.saveObject.thing[item]-=num;//同步保存对象this.now-=num;//当前物品数也要减returnthis.thing[item];//返回数量}setCap(cap=0){//设置容量if(cap<this.now)returnundefined;//如果背包里的物品比目标容量多则返回undefiendthis.capacity=cap;//直接设置容量returnthis.capacity;//返回值}asyncshow(){//对玩家展示背包varop=[];for(constiofObject.keys(this.thing)){op.push(`${i}×${this.thing[i]}`);}//将物品×数量放进选项列表constp=awaitthis.owner.player.dialog({//建立对话框type:Box3DialogType.SELECT,title:'背包',//具体细节如标题,内容等自己改content:'以下是你的背包',options:op,});returnthis.thing[Object.keys(this.thing)[op.indexOf(p)]];//返回选择了的物品}}
2024-09-07T12:31:18 点赞:0