花费时长1年,写出了一个长达1000多行的程序

这个程序我放在了神奇代码岛

想玩的可以直接免费进去玩,地图非常简陋,但是我还会继续后续的更新。

这是我的源代码:

console.clear()for (var x=0;x<254;x++){for (var z=0;z<254;z++){//voxels.setVoxel(x,18,z, 'stone')}
}for (var x=162;x<206;x++){for(var z=0;z<41;z++){voxels.setVoxel(x,18,z, 'plank_01')voxels.setVoxel(x,10,z, 'plank_01')}
}for (var x=173;x<181;x++){for (var z=34;z<39;z++){voxels.setVoxel(x,18,z, 'air')}
}for (var x=143;x<174;x++){for (var z= 45;z<73;z++){voxels.setVoxel(x,19,z, "carpet_07")}
}for (var x1=235;x<254;x++){for (var z1=43;z<60;x++){voxels.setVoxel(x1,18,z1, "air")}
}//密室一
const door1 = world.querySelector('#门-2');
const tishi = world.querySelector('#提示牌-1')const door1_state = true;
door1.enableInteract = true;
door1.interactHint = '门';
door1.interactRadius = 5;
door1.fixed = true;
door1.collides = true;
door1.interactColor = new Box3RGBColor(1,0,1);
door1.meshEmissive = false;tishi.enableInteract = true;
tishi.interactHint = '提示';
tishi.interactRadius = 5;const room1 = world.querySelector('#出生点')tishi.onInteract(async({entity})=>{const tishi_result = await entity.player.dialog({type:Box3DialogType.TEXT,title:tishi.id,lookEye:entity,lookTarget:tishi,content:"提示:门的密码是“1+2+3+4+5+...+99+100”的计算结果"})
})door1.onInteract(async({entity})=>{const door1_result = await entity.player.dialog({type:Box3DialogType.INPUT,title:door1.id,lookEye:entity,lookTarget:door1,content: '请输入密码:',})if (door1_result == '5050'){entity.player.directMessage("密码正确");door1.collides = false;}else {entity.player.directMessage("密码错误");}
})const door2 = world.querySelector("#门-3")
door2.enableInteract = true;
door2.interactHint = "门-2";
door2.interactRadius = 5;
door2.fixed = true;
door2.collides = true;
door2.interactColor = new Box3RGBColor(1,0,1)
door2.meshEmissive = false;door2.onInteract(async({entity})=>{const door2_result = await entity.player.dialog({type:Box3DialogType.INPUT,title:door1.id,lookEye:entity,lookTarget:door1,content: "请输入口令:",});if (door2_result == "213564"){entity.player.directMessage("密码正确")door2.collides = false;}else{entity.player.directMessage("密码错误")}
})const tishi_1 = world.querySelector("#提示牌-2")
tishi_1.enableInteract = true;
tishi_1.interactHint = tishi_1;
tishi_1.interactRadius = 5;
tishi_1.interactHint = "提示牌"tishi_1.onInteract(async({entity})=>{const tishi1_result = await entity.player.dialog({type:Box3DialogType.TEXT,title:tishi_1.id,lookEye:entity,lookTarget:tishi_1,content:"大门的口令:请按照《菩萨蛮·大柏地》第1句的颜色顺序与颜色走廊的颜色顺序中找出答案(第一个颜色为橙色,第二个为红色 注意:此答案为一串数字)倒数第二个颜色是紫色",});
})const door3 = world.querySelector('#门-4');
door3.enableInteract = true;
door3.interactHint = door3;
door3.interactRadius = 5;
door3.interactColor = new Box3RGBColor(1,0,1)
door3.collides = true;
door3.fixed = true;door3.onInteract(async({entity})=>{const door3_result = await entity.player.dialog({type:Box3DialogType.SELECT,title:door3.id,lookEye:entity,lookTarget:tishi_1,content:"请输入吉吉喵的性别",options:['男', '女', '没有性别'],})if (door3_result){if (door3_result.index == 0){entity.player.directMessage("选错了") }else if (door3_result.index == 1){entity.player.directMessage("选错了")}else if (door3_result.index == 2){entity.player.directMessage("选对了,门已解锁");door3.collides = false;}}
})// 第一个房间
function state_one(){door1.collides = true;door2.collides = true;door3.collides = true;door7.collides = true;}// 密室二
//第一间密室的门
const room2 = world.querySelector("#出生点-2")
const door4 = world.querySelector("#门-6")
door4.enableInteract = true;
door4.interactHint = "门";
door4.interactRadius = 5;
door4.interactColor = new Box3RGBColor(1,0,1);
door4.collides = true;
door4.fixed = true;const tishi_2 = world.querySelector("#提示牌-3")
tishi_2.enableInteract = true;
tishi_2.interactHint = "提示牌";
tishi_2.interactRadius = 2;
tishi_2.interactColor = new Box3RGBColor(1,0,1);tishi_2.onInteract(async({entity})=>{const tishi2_result = await entity.player.dialog({type:Box3DialogType.TEXT,title:tishi_2.id,lookEye:tishi_2,lookTarget:entity,content:"=>RRRD\nRUUD\nDLLL\nDRLU\nRRRR\nDLLL\nDLDL\nRRRD\nLLLD\nLLLL<="})
})const tishi_4 = world.querySelector("#提示牌-4")
tishi_4.collides = true;
tishi_4.fixed = true;
tishi_4.enableInteract=true;
tishi_4.interactHint = "提示牌-4 (注意)(一定要看)";
tishi_4.interactRadius = 2;
tishi_4.interactColor = new Box3RGBColor(0,0,1)
tishi_4.onInteract(async({entity})=>{const tishi_4_result = await entity.player.dialog({type:Box3DialogType.TEXT,title:"提示牌",lookEye:tishi_4,lookTarget:entity,content:"每四个字母为一行,“=>”为起点,“<=”为终点,”R”为右,“U”为上,“L”为左,“D”为下,请逃生者门将其画在草稿本上,用笔画线"})})door4.onInteract(async({entity})=>{const door4_result = await entity.player.dialog({type:Box3DialogType.SELECT,title:door4.id,lookEye:door4,lookTarget:entity,content:"如何将玩家传送到(20,30,40)的位置:",options:['entity.player.copy(20,30,40)', 'entity.position.copy(20,30,40)']})if (door4_result){if (door4_result.index == 0){entity.player.directMessage("密码错误");door4.collides = false;}else if (door4_result.index == 1){entity.player.directMessage("密码正确,门已解锁")door4.collides = false}}
})const door5 = world.querySelector("#门-7") 
door5.enableInteract = true;
door5.collides = true;
door5.interactColor = new Box3RGBColor(1,0,1) 
door5.interactHint = "门"
door5.interactRadius = 5
door5.fixed = true
door5.onInteract(async({entity})=>{const door5_result = await entity.player.dialog({type:Box3DialogType.SELECT,title:door5.id,lookEye:door5,lookTarget:entity,content:"请用for循环从循环到10(结尾不用加一对大括号“{}”代码输入正确)",options:['for (var a = 0;a<10;a++)', 'for a = 0;a<10;a++', 'for var a = 0;a<10;a++'],})if (door5_result){if (door5_result.index == 0){entity.player.directMessage("密码正确,门已解锁") door5.collides = false}else if (door5_result.index == 1){entity.player.directMessage("密码错误")}else if (door5_result.index == 2){entity.player.directMessage("密码错误")}}
})const door6 = world.querySelector("#门-8")
door6.enableInteract = true;
door6.interactHint = "门"
door6.interactColor = new Box3RGBColor(1,0,1) 
door6.interactRadius = 5
door6.collides = true;
door6.onInteract(async({entity})=>{const door6_result = await entity.player.dialog({type:Box3DialogType.SELECT,title:"门",lookEye:door6,lookTarget:entity,content:"如何定义一个A函数?",options:['function a(){}', 'def a(){}', 'int a(){}']})if (door6_result){if (door6_result.index == 0){entity.player.directMessage("密码正确,恭喜" + entity.player.name + ",完成所有闯关")entity.position.copy(chushen)entity.msdtt += 1}else if (door6_result.index == 1){entity.player.directMessage("密码错误")}else if (door6_result.index == 2){entity.player.directMessage("密码错误")}}
})const door7 = world.querySelector("#门-9")
door7.enableInteract = true;
door7.collides = true;
door7.fixed = true;
door7.interactHint = "门"
door7.interactRadius = 3
door7.interactColor = new Box3RGBColor(0,0,1)
door7.onInteract(async({entity})=>{const door7_result = await entity.player.dialog({type:Box3DialogType.INPUT,title:"门",lookEye:door6,lookTarget:entity,content:"请输入密码:",})if (door7_result == "25"){entity.player.directMessage("密码正确")entity.player.directMessage("恭喜" + entity.player.name + ",成功逃脱");entity.position.copy(chushen);entity.msdtt += 1}else{entity.player.directMessage("密码错误")}
})//第二间密室
function state_two(){door4.collides = true;door5.collides = true;door6.collides = true;door7.collides = true;
}var cehuaan = false 
const room3 = world.querySelector("#存档点-3")
const door8 = world.querySelector("#门-10")
door8.collides = true;
door8.fixed = true;
door8.enableInterac = true;
door8.interactHint = "凶手的房门";
door8.interactColor = new Box3RGBColor(0,0,1)
door8.interactRadius = 2
door8.onInteract(async({entity})=>{const door8_result = await entity.player.dialog({type:Box3DialogType.INPUT,title:"门",lookEye:door7,lookTarget:entity,content:"请输入密码(只有四个字符):"})if (door8_result == "M415"){entity.player.directMessage("密码正确,门已解锁")door8.collides = false;}else{entity.player.directMessage("密码错误")}
})const paper = world.querySelector("#纸")
paper.collides = true;
paper.fixed = true;
paper.enableInteract = true;
paper.interactHint = "策划案";
paper.interactColor = new Box3RGBColor(0,0,1)
paper.interactRadius = 2
paper.onInteract(async({entity})=>{const paper_result = await entity.player.dialog({type:Box3DialogType.SELECT,title:"策划案",lookEye:paper,lookTarget:entity,content:"M412年,我和绿色太空人一起被送到这个可恶的地方,这次,我要报仇,因为绿色太空人杀了我的家人,我要报仇,于是,我在这艘飞船上生活了多年,我偷偷的将他们干掉。然后明天,我要将绿色太空人杀掉,这个门的密码就设为明天的年份。",options:['送给长官'],})if (paper_result){if (paper_result.index == 0){entity.player.directMessage("当你把策划案交给警察之后,警察非常感谢你")await sleep(3000)entity.position.copy(chushen)entity.player.directMessage("恭喜" + entity.player.name + "成功逃脱")entity.msdtt  += 1}}
})const police1 = world.querySelector("#警察")
police1.collides = true;
police1.enableInteract = true;
police1.interactColor = new Box3RGBColor(0,0,1)
police1.fixed = true;
police1.interactHint = "警察"
police1.interactRadius = 2
police1.onInteract(async({entity})=>{if (cehuaan == false){const police1_result1 = await entity.player.dialog({type:Box3DialogType.SELECT,title:"警察",lookEye:police1,lookTarget:entity,content:"谁是凶手?",options:['红色太空人', '蓝色太空人', '紫色太空人'],})if (police1_result1){if (police1_result1.index == 0){entity.player.directMessage("选对了")door8.enableInteract = true;cehuaan = true;police2.enableInteract = true;}else if (police1_result1.index == 1){entity.player.directMessage("选错了")await sleep(2000)entity.player.directMessage("蓝色太空人不是内鬼,游戏已结束")entity.position.copy(chushen)}else if (police1_result1.index == 2){entity.player.directMessage("选错了")await sleep(2000)entity.player.directMessage("紫色太空人不是内鬼,游戏已结束")entity.position.copy(chushen)}}}if (cehuaan == true){const police1_result1 = await entity.player.dialog({type:Box3DialogType.TEXT,title:"任务2",lookEye:police1,lookTarget:entity,content:"打开红色太空人的房间门,找出红色太空人的策划案",})}})const green  = world.querySelector("#小绿")
green.collides = true;
green.fixed = true;
green.enableInteract = true;
green.interactHint = "绿色太空人";
green.interactColor = new Box3RGBColor(1,0,1);
green.interactRadius = 2;
green.onInteract(async({entity})=>{const green_result = await entity.player.dialog({type:Box3DialogType.TEXT,title:"绿色太空人的伤势",lookEye:green,lookTarget:entity,content:"绿色太空人的伤势看上去并不乐观,左腿被砍了,上面流下了许多鲜血,这个案子看起来不是很好破!"})
})const red1 = world.querySelector("#小红")
red1.collides = true;
red1.fixed = true;
red1.enableInteract = true;
red1.interactColor = new Box3RGBColor(1,0,1)
red1.interactHint = "嫌疑人1(红色太空人)"
red1.interactRadius = 1,
red1.onInteract(async({entity})=>{const red1_result = await entity.player.dialog({type:Box3DialogType.TEXT,title:"红色天空人的对话",lookEye:red1,lookTarget:entity,content:"我:你昨晚在餐厅干什么?\n红色太空人:我在餐厅吃饭\n我:你跟谁吃饭?\n红色太空人:我跟蓝色太空人、紫色太空人和绿色太空人一起吃饭\n我:那你们饭后干什么了?\n红色太空人:吃完饭后我扶绿色太空人去厕所里吐,因为他喝多了,然后我就会回房间了\n我:听说你们的电力有时候会不稳定,这件事是真的吗?\n红色太空人:不是呀"})
})const purple1 = world.querySelector("#小紫")
purple1.collides = true;
purple1.fixed = true;
purple1.enableInteract = true;
purple1.interactColor = new Box3RGBColor(1,0,1)
purple1.interactHint = "嫌疑人2(紫色太空人)"
purple1.interactRadius = 1
purple1.onInteract(async({entity})=>{const purple1_result = await entity.player.dialog({type:Box3DialogType.TEXT,title:"紫色太空人的对话",lookEye:purple1,lookTarget:entity,content:"我:你昨晚在餐厅干什么?\n紫色太空人:我和小蓝几个人一起吃饭\n我:然后呢?\n紫色太空人:然后我就回房间睡觉了。\n我:听说你们这里的电力有时候不是非常稳定,这件事是不是真的?\n紫色太空人:我不知道。"})
})const blue1 = world.querySelector("#小蓝")
blue1.collides = true;
blue1.fixed = true;
blue1.enableInteract = true;
blue1.interactColor = new Box3RGBColor(1,0,1)
blue1.interactHint = "嫌疑人3(蓝色太空人)"
blue1.interactRadius = 1
blue1.onInteract(async({entity})=>{const blue1_result = await entity.player.dialog({type:Box3DialogType.TEXT,title:"蓝色太空人的对话",lookEye:blue1,lookTarget:entity,content:"我:你昨晚在餐厅干什么?\n蓝色太空人:不告诉你!",})
})const police2 = world.querySelector("#警察-2")
police2.collides = true;
police2.enableInteract = true;
police2.interactColor = new Box3RGBColor(1,0,1)
police2.interactHint = "警察"
police2.interactRadius = 2
police2.fixed = true;
police2.onInteract(async({entity})=>{if (cehuaan = true){const police2_result = await entity.player.dialog({type:Box3DialogType.TEXT,title:"我与警察的对话w",lookEye:police2,lookTarget:entity,content:"警察:这具尸体,以我判断,他因该是前年死亡\n我:前年?\n警察:那个人太可恶了\n我:绿色天空人被杀的日期\n警察:M413年,你看墙上,这么杂乱的时钟,这就说明,凶手的某个密码与时间有关。"})}
})function state_three(){door8.collides = true;door8.enableInteract = false;cehuaan = false;police2.enableInteract = false;
}var candles = 0
var start4 = false
var player_name = 0
const room4_one = world.querySelector("#出生点-1")
room4_one.collides = true
room4_one.fixed = true
const room4_two = world.querySelector("#1出生点-2")function d(x,y,z){voxels.setVoxel(x,y,z,"white")
}
for (const a of world.querySelectorAll(".跑酷点")){if (a.id.startsWith("跑酷点")){a.collides = true;a.fixed = true;a.onEntityContact(({other})=>{if (a.position !== other.position.spawnPoint){other.player.spawnPoint = a.position}})}
}
for (const red1 of world.querySelectorAll("*")){if (red1.id.startsWith("红外线")){red1.collides = true;red1.fixed = true;}
}for (const xsp of world.querySelectorAll(".显示屏")){if (xsp.id.startsWith("显示屏")){xsp.enableInteract = true;xsp.interactColor = new Box3RGBColor(1,0,1)xsp.interactHint = "显示屏"xsp.interactRadius = 5xsp.onInteract(({entity})=>{if (xsp.id == "显示屏-1"){entity.player.dialog({type:Box3DialogType.TEXT,title:"这家公司的老板",content:"年轻人,就你,还想窃取我公司的文件,想窃取,那就先破我四关\n第一关:过岩浆"})}else if (xsp.id == "显示屏-2"){entity.player.dialog({type:Box3DialogType.TEXT,title:"这家公司的老板",content:"可以呀,年轻人,既然破了我的第一关,那就接受我的第二关!"})}else if (xsp.id == "显示屏-3"){entity.player.dialog({type:Box3DialogType.TEXT,tite:"这家公司的老板",content:"既然破了我的第三关,接招!",})}else if (xsp.id == "显示屏-4"){entity.player.dialog({type:Box3DialogType.TEXT,title:"这家公司的老板",content:"看来是我小瞧你了,接下第四关,得有我亲自出马了!",})}})}
}world.onVoxelContact(({entity, voxel})=>{voxelName = voxels.name(voxel)if (voxelName === "lava02"){entity.position.copy(entity.player.spawnPoint)entity.position.y += 1}
})  // 检测玩家脚下的方块是否为石头
world.onVoxelContact(({ entity, voxel, axis,x,y,z }) => {if (!entity.isPlayer) return;                // 如果碰到方块的不是玩家,则跳过const voxelName = voxels.name(voxel);         // 将方块id转换名称if (voxelName === 'white' && axis.y === 1){   // 如果方块名称是石头,并且在玩家下方voxels.setVoxel(x,y,z,"lemon")candles += 1}
});room4_one.onEntityContact(({other})=>{if (candles == 16){other.position.copy(room4_two.position)other.position.y += 3}else if (candles !== 16){other.player.directMessage("线还没有画完哟,请先把线画完,再来吧")}
})const boss1 = world.querySelector("#BOSS")
boss1.collides = true;
boss1.fixed = true;
boss1.enableInteract = true;
boss1.interactHint = "BOSS"
boss1.interactRadius = 2
boss1.onInteract(async({entity})=>{const boss1_result = await entity.player.dialog({type:Box3DialogType.SELECT,title:"BOSS",content:"是否干掉这位老板?",options:['是', '否'],})if (boss1_result.index == 0){const boss1_result1 = await entity.player.dialog({type:Box3DialogType.SELECT,title:"从BOSS身上掉下来的东西",content:"公司机密×1",options:['收下']})if (boss1_result1.index == 0){entity.position.copy(chushen)entity.player.directMessage("恭喜" + entity.player.name + "成功逃脱")entity.msdtt += 1start4 = false}}else if (boss1_result.index == 1){entity.position.copy(room4_two.position)entity.position.y += 3entity.player.directMessage("BOSS:回去吧你")}
})function state_four(){candles = 0start4 = truecandles = 0d(197,8,77)d(197,8,78)d(197,8,79)d(196,8,80)d(195,8,81)d(194,8,81)d(193,8,81)d(192,8,80)d(191,8,79)d(191,8,78)d(191,8,77)d(192,8,76)d(193,8,75)d(194,8,75)d(195,8,75)d(196,8,76)
}
const room4 = world.querySelector("#存档点-4")//黑客大侠房间
const door9 = world.querySelector("#门-11")
door9.collides = true;
door9.fixed = true;
door9.enableInteract = true;
door9.interactHint = "门-11";
door9.interactRadius = 3;
door9.onInteract(async({entity})=>{const door9_result = await entity.player.dialog({type:Box3DialogType.INPUT,title:"门-11",content:"请输入密码",})if (door9_result == "analyze"){await entity.player.dialog({type:Box3DialogType.TEXT,title:"门-11",content:"恭喜,密码正确"+entity.player.name+"逃脱成功",})await sleep(3)entity.position.copy(chushen)entity.msdtt +=1}
})const zhuji = world.querySelector("#主机")
zhuji.enableInteract = true;
zhuji.interactHint = "主机";
zhuji.interactRadius = 3;
const mima1 = world.querySelector("#密码1")
mima1.enableInteract = true;
mima1.interactHint = "密码1";
mima1.interactRadius = 3;
const mima2 = world.querySelector("#密码2")
mima2.enableInteract = true;
mima2.interactHint = "密码2";
mima2.interactRadius = 3;
const mima3 = world.querySelector("#密码3")
mima3.enableInteract = true;
mima3.interactHint = "密码3";
mima3.interactRadius = 3;
const mima4 = world.querySelector("#密码4")
mima4.enableInteract = true;
mima4.interactHint = "密码4";
mima4.interactRadius = 3;zhuji.onInteract(async({entity})=>{const hacknetzj = await entity.player.dialog({type:Box3DialogType.SELECT,content:"请选择",options:['任务', '教程'],})if (hacknetzj.index == 0){if (entity.password == 1){entity.player.dialog({type:Box3DialogType.TEXT,title:"主机",content:"欢迎来到hacknet,现在我有一个任务,你快去完成,先去黑掉密码1"})}else if (entity.password == 2){entity.player.dialog({type:Box3DialogType.TEXT,content:"快去黑掉密码2",})}else if (entity.password == 3){entity.player.dialog({type:Box3DialogType.TEXT,content:"快去黑掉密码3",})}else if (entity.password == 4){entity.player.dialog({type:Box3DialogType.TEXT,content:"快去黑掉密码4"})}else if (entity.password == 5){entity.player.dialog({type:Box3DialogType.TEXT,content:"门的密码就是密码1密码2密码3密码4,快点逃离这里"})}}else if (hacknetzj.index == 1){entity.player.dialog({type:Box3DialogType.TEXT,content:"如果在probe里面显示说明需要开放0个端口的话,你就只需要输入porthack进行破解即可/n如果显示需要破解1个或以上数量的端口,那就得先进行破解端口"})}
})mima1.onInteract(async({entity})=>{const probe = await entity.player.dialog({type:Box3DialogType.INPUT,content:"请输入probe,进入破解界面",})if (probe === "probe"){const porthack = await entity.player.dialog({type:Box3DialogType.INPUT,content:"需要开放0个端口,输入porthack,破解"})if (porthack == "porthack"){await entity.player.dialog({type:Box3DialogType.TEXT,content:'密码:an',})entity.password +=1}else{await entity.player.dialog({type:Box3DialogType.TEXT,content:'输入有误,请重新输入'})}}else{await entity.player.dialog({type:Box3DialogType.TEXT,content:'输入有误,请重新输入'})}})mima2.onInteract(async({entity})=>{const probe = await entity.player.dialog({type:Box3DialogType.INPUT,content:"请输入probe,进入破解界面",})if (probe === "probe"){const porthack = await entity.player.dialog({type:Box3DialogType.INPUT,content:"需要开放0个端口,输入porthack,破解"})if (porthack == "porthack"){await entity.player.dialog({type:Box3DialogType.TEXT,content:'密码:al',})entity.password +=1}else{await entity.player.dialog({type:Box3DialogType.TEXT,content:'输入有误,请重新输入'})}}else{await entity.player.dialog({type:Box3DialogType.TEXT,content:'输入有误,请重新输入'})}})mima3.onInteract(async({entity})=>{const probe = await entity.player.dialog({type:Box3DialogType.INPUT,content:"请输入probe,进入破解界面",})if (probe === "probe"){const porthack = await entity.player.dialog({type:Box3DialogType.INPUT,content:"需要开放0个端口,输入porthack,破解"})if (porthack == "porthack"){await entity.player.dialog({type:Box3DialogType.TEXT,content:'密码:yz',})entity.password +=1}else{await entity.player.dialog({type:Box3DialogType.TEXT,content:'输入有误,请重新输入'})}}else{await entity.player.dialog({type:Box3DialogType.TEXT,content:'输入有误,请重新输入'})}})mima4.onInteract(async({entity})=>{const probe = await entity.player.dialog({type:Box3DialogType.INPUT,content:"请输入probe,进入破解界面",})if (probe === "probe"){const porthack = await entity.player.dialog({type:Box3DialogType.INPUT,content:"需要开放0个端口,输入porthack,破解"})if (porthack == "porthack"){await entity.player.dialog({type:Box3DialogType.TEXT,content:'密码:e',})entity.password +=1}else{await entity.player.dialog({type:Box3DialogType.TEXT,content:'输入有误,请重新输入'})}}else{await entity.player.dialog({type:Box3DialogType.TEXT,content:'输入有误,请重新输入'})}})//大厅代码
const start_game = world.querySelector("#管家-1")
start_game.enableInteract = true;
start_game.interactHint = "前往密室NPC";
start_game.interactRadius = 2;
start_game.interactColor = new Box3RGBColor(1,0,1)//管家对话
start_game.onInteract(async({entity})=>{const start_game_result = await entity.player.dialog({type:Box3DialogType.SELECT,title:start_game.id,lookEye:entity,lookTarget:start_game,content:"请问你要去哪间密室?",options:['简单级密室', "代码篇(入门)", '贝壳好飞船上的杀人案', '窃取机密','黑客大侠'],})if (start_game_result){if (start_game_result.index == 0){entity.position.copy(room1.position)state_one()}else if (start_game_result.index == 1){entity.position.copy(room2.position)state_two()}else if (start_game_result.index == 2){entity.position.copy(room3.position)state_three()entity.player.dialog({type:Box3DialogType.TEXT,title:"作者的话",content:"本剧情均为虚构,与现实无关",})}else if (start_game_result.index == 3){if (start4 == false){start4 = true;entity.position.copy(room4.position)entity.position.y +=1player_name = entity.player.namestate_four()}else if (start4 == true){entity.player.dialog({type:Box3DialogType.TEXT,content:"此模式暂时有人在玩,请耐心等待,或者去玩玩其他模式"})    }          }else if (start_game_result.index == 4){entity.password = 1entity.position.copy(new Box3Vector3(243,11,92))entity.player.dialog({type:Box3DialogType.TEXT,title:"作者的话",content:"本玩法在hacknet游戏下的改版,这类关于黑客的游戏我将会出一个全新的地图来给大家玩耍",})}}
})
const start_game_npc = world.querySelector("#管家-2")
start_game_npc.enableInteract = true;
start_game_npc.interactHint = "大厅的NPC";
start_game_npc.interactRadius = 2;
start_game_npc.interactColor = new Box3RGBColor(1,0,1)//NPC对话
start_game_npc.onInteract(async({entity})=>{const start_game_npc_result = await entity.player.dialog({type:Box3DialogType.TEXT,title:start_game_npc.id,lookEye:entity,lookTarget:start_game,content:"如果游戏中有什么BUG、有可以改进的地方或者建议,可以在评论区里告诉我。感谢各位测试员!"})
})const music = world.querySelector("#小女孩(头)-1")
music.collides = true;
music.fixed= true;
music.enableInteract = true;
music.interactHint = "小女孩"
music.interactRadius = 3
music.interactColor = new Box3RGBColor(1,0,1)
music.onInteract(async({entity})=>{entity.player.dialog({type:Box3DialogType.TEXT,title:"小女孩",content:"在一个月黑凤高的夜晚,我姐姐突然发烧,我父母把她带到MS医院治疗,只留我一人在家。\于是他们驱车来到一家医院。。。。。\当时这么晚,我一个在家里看电视,电视新闻播报此市有一个杀人犯,他患有精神分裂症,最近在一家名叫MS医院治疗,他的病症非常奇怪,只有在夜晚才会分裂,然后开始乱杀人!请各位市民\一定要保护好自己,尽量少出门,如果见到这位杀人犯,请立即报警,谢谢配合!\此时小女孩一惊,这不是我姐所在的医院吗!",})
})const floor1 = world.querySelector("#cdd-1")
const bigdoor = world.querySelector("#小区大门-1")
bigdoor.enableInteract = true;
bigdoor.interactHint = "门";
bigdoor.interactRadius = 5
bigdoor.onInteract(async({entity})=>{const bigdoor_result = await entity.player.dialog({type:Box3DialogType.INPUT,title:"大门",content:"请输入前往作者密室的密码:",})if (bigdoor_result == "MSDTT2135649"){entity.position.copy(floor1.position)entity.player.directMessage("欢迎来到密室展览馆")}else{entity.player.directMessage("快去做任务获取吧")}})const bigdoor2 = world.querySelector("#小区大门-2")
bigdoor2.enableInteract = true;
bigdoor2.interactHint = "门"
bigdoor2.interactRadius = 3
bigdoor2.onInteract(async({entity})=>{entity.position.copy(new Box3Vector3(150, 25, 57))
})const xxg = world.querySelector("#吸血鬼先生-1")
xxg.enableInteract = true;
xxg.interactHint = "吸血鬼";
xxg.interactColor = new Box3RGBColor(1,0,1)
xxg.interactRadius = 5;
xxg.onInteract(async({entity})=>{xxg.say("你好呀" + entity.player.name + "欢迎来到展览馆")
})const chushen = new Box3Vector3(156.2,20.2,59.9)
// 开始
world.onPlayerJoin(async({entity})=>{entity.position.copy(chushen)//对话entity.player.dialog({type:Box3DialogType.TEXT,title:"更新公告",content:"1.修复了玩家无法使用返回大厅后导致窃取机密的地图无法游玩"})const zuozhe = await entity.player.dialog({type:Box3DialogType.SELECT,title:"作者的话",content:"这里怎么有一个小女孩,她可能需要帮助快去看看!",options:['快去看看','不去']})if (zuozhe){if (zuozhe.index == 0){entity.position.copy(new Box3Vector3(171,21,61))}else{}}entity.msdtt = 0world.onPress(async({ button , entity})=>{if (button == "action1"){const button_result = await entity.player.dialog({type:Box3DialogType.SELECT,title:"菜单",content:"请选择\n注:",options:['密室秘钥','我不想玩了,我想回大厅'],})if(button_result){if (button_result.index == 0){if (entity.msdtt <10){await entity.player.dialog({type:Box3DialogType.TEXT,title:"任务栏",content:"玩"+entity.msdtt + "/10次密室可获得前往作者的密室的密码"})}else{await entity.player.dialog({type:Box3DialogType.SELECT,title:"任务栏",content:"密室展览馆密码:MSDTT2135649\n不要告诉别人,否则作者将修改密码哦",})}}else if (button_result.index  == 1){const move_to_dt_result = await entity.player.dialog({type:Box3DialogType.SELECT,title:"提示",content:"是否返回大厅?",options:['是(将不会增加游玩展览馆密码查看的游戏次数)','否(我在玩一会)']})if (move_to_dt_result){if (move_to_dt_result.index == 0){entity.position.copy(chushen);entity.password = 0if (entity.player.name == player_name){start4 = false;player_name = 0console.log(player_name)console.log(start4)}}else if (move_to_dt_result.index == 1){}}}}}})//数据初始化candles = 0entity.player.spawnPoint = chushenentity.player.dialog({type:Box3DialogType.TEXT,content:"如果游戏中有什么BUG、有可以改进的地方或者建议,可以在评论区里告诉我。感谢各位测试员!"})bug.onEntityContact(async({other})=>{other.position.copy(chushen)other.player.directMessage("不要再卡了,没用的,此BUG已经修复了")})
})world.onPlayerLeave(({entity})=>{if (entity.player.name == player_name){start4 = false;player_name = 0}
})const bug = world.querySelector("#电梯bug-1")
bug.collides = true;
bug.fixed = true;const button2 = world.querySelector("#电梯按扭-2")
const button1 = world.querySelector("#电梯按扭-1")
button1.enableInteract = true;
button2.enableInteract = true;
button1.interactHint = "呼唤电梯";
button1.interactRadius = 5;
button2.interactHint = "呼唤电梯";
button2.interactRadius = 5
button1.onInteract(async()=>{if (dt.position.y >20){dt.velocity.y = -0.1}
})button2.onInteract(async()=>{if (dt.position.y <30){dt.velocity.y = 0.1}
})const dt = world.querySelector("#电梯")
dt.collides = true;
dt.fixed = true;
var dt_num = 1
world.onEntityContact(({entity, other})=>{if (dt_num == 1){if (entity.id == "电梯"){if (entity.position.y <30){entity.velocity.y = 0.1}}}else if (dt_num == 2){if (entity.id == "电梯"){if (entity.position.y > 20){entity.velocity.y = -0.1}}}
})world.onTick(async()=>{if (dt.position.y >30){dt.position.y = 30dt.velocity.y = 0await sleep(1000)dt_num = 2}else if (dt.position.y <20){dt.position.y = 20dt.velocity.y = 0await sleep(1000)dt_num = 1}
})const jt = world.querySelector("#箭头-1")
jt.enableInteract = true;
jt.interactHint = "提示";
jt.interactRadius = 2
jt.onInteract(async({entity})=>{entity.player.dialog({type:Box3DialogType.TEXT,title:"提示",content:"下面的地板是电梯"})
})

链接: 神奇代码岛: 密室大逃脱 (codemao.cn)

这个地图可以说是我做了这么多地图以来第一个非常完美的地图。

我的主页:神奇代码岛 (codemao.cn)

希望大家多多关注,感谢Thanks♪(・ω・)ノ

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部