用户:
霸道的疾风雀3KNp查看:7 回复:3 评论:7 创建时间:2021-03-21T14:57:59
要就拿去吧
world.onPlayerJoin(async({entity})=>{
entity.enableDamage = true
world.say(`欢迎${entity.player.name}来到水中之城,开始你这有趣的跑酷吧!`)
entity.喵 = 'sans'
entity.straw_block=0
entity.player.onPress(async({ button }) => {
if (button == Box3ButtonType.ACTION1){
const selection=await entity.player.dialog({
type: Box3DialogType.SELECT,
title: `作弊菜单`,
content: `选择?`,
options:['飞行','取消飞行','变大','变小','第一人称','第三人称'],
})
if (selection){
const sele=selection.index
if(sele==0){
if(entity.player.name=='fjgdjig'){
entity.player.canFly = true;
entity.player.directMessage(`====开启飞行功能====`)
}
else if(entity.player.name=='@小憨憨'){
entity.player.canFly = true;
entity.player.directMessage(`====开启飞行功能====`)
}
else{
entity.player.directMessage(`你想用作弊菜单的这个功能?你只能用“关闭飞行功能”“第一人称”“第三人称”这三个功能`)
}
}
else if(sele==1){
entity.player.canFly = false;
entity.player.directMessage(`====关闭飞行功能====`)
}
else if(sele==2){
if(entity.player.name=='fjgdjig'){
entity.player.scale *= 1.2;
}
else if(entity.player.name=='@小憨憨'){
entity.player.scale *= 1.2;
}
else{
entity.player.directMessage(`你想用作弊菜单的这个功能?你只能用“关闭飞行功能”“第一人称”“第三人称”这三个功能`)
}
}
else if(sele==3){
if(entity.player.name=='fjgdjig'){
entity.player.scale /= 1.2;
}
else if(entity.player.name=='@小憨憨'){
entity.player.scale *= 1.2;
}
else{
entity.player.directMessage(`你想用作弊菜单的这个功能?你只能用“关闭飞行功能”“第一人称”“第三人称”这三个功能`)
}
}
else if(sele==4){
entity.player.cameraMode = 'fps';
}
else if(sele==5){
entity.player.cameraMode = 'follow';
}
}
}
})
})
// 先在场景中放置一个名称为 NPC 的实体。
for(const npc of world.querySelectorAll('.帅哥')){ //你昨天去哪了?
npc.enableInteract = true; // 允许进行互动
npc.interactRadius =3; // 实体的互动范围
npc.interactHint = npc.id; // 互动提示框显示实体的名称
npc.interactColor = new Box3RGBColor(1,1,1); // 互动提示的文字颜色
// 玩家与实体进行交互时触发
if(npc.id=='sans'){
npc.onInteract(async({entity}) => {
const result = await entity.player.dialog({
type: Box3DialogType.TEXT, // 对话框的类型,TEXT是文本框。
title: npc.id, // 对话框标题为NPC名字,表示正在说话的是NPC
lookEye:npc, //修好了
lookTarget: entity, // 相机镜头对准NPC
content: `你好,${entity.player.name},很高兴认识你。`,
});
});
}
else if(npc.id=='告示牌'){
npc.onInteract(async({entity})=>{
const result = await entity.player.dialog({
type: Box3DialogType.TEXT, // 对话框的类型,TEXT是文本框。
title: npc.id, // 对话框标题为NPC名字,表示正在说话的是NPC
content: `心跳地立方(跳到下面的喵地上)`,
})
})
}
else if(npc.id=='小喵块'){
npc.onInteract(async({entity})=>{
entity.player.directMessage(`小喵块+1`)
entity.straw_block+=1
entity.player.directMessage(`你目前有${entity.straw_block}个小喵块`)
})
}
else if(npc.id=='投块'){
npc.onInteract(async({entity})=>{
if(entity.straw_block > 0){
entity.straw_block-=1
entity.player.directMessage(`感谢支持,你目前有${entity.straw_block}个小喵块(记得在评论区说一说你投了几个喵快哟~)`)
}
else{
entity.player.directMessage(`您的小喵块不足(小喵块通过和出生点的喵块互动获得)`)
}
})
}
}
world.onFluidEnter(({entity , voxel}) => {
if (entity.isPlayer===true){
const p = voxels.id('water');
if (voxel===p){
entity.hurt(entity.hp)
world.say(entity.player.name+"掉进了水里")
entity.player.forceRespawn()
};
};
});
world.onPlayerLeave(({ entity }) => {
world.say(`再见了!亲爱的『 ${entity.player.name} 』玩家`);
});
// 玩家进入游戏时,弹出一个对话框
world.onPlayerJoin(({ entity }) => {
const dialog = entity.player.dialog({
type: Box3DialogType.TEXT,
title: "作者和所有贡献者",
content: `你好,${entity.player.name},请文明游玩。`,
});
});
world.onFluidEnter(({entity, tick, voxel}) => {
world.onDie
})
/* 利用雨点,模拟萤火虫飞舞的场景 */
world.rainDensity = 0.25; // 雨的密度
world.rainDirection = new Box3Vector3(0, -1, 0); // 方向
world.rainColor = new Box3RGBAColor(0.98, 0.89, 0.12, 0.4); // 颜色
world.rainSpeed = 0.15; // 速度
world.rainSizeLo = 0.01; // 雨滴最小直径
world.rainSizeHi = 0.03; // 雨滴最大直径
world.rainInterference = 0.2; //做存档!!
// 自由切换人称
// 如果小憨憨(有手就行),fjgdjig加入游戏,会被缩小到0.3倍。其他玩家不受影响
const TEST_PLAYER = ['@小憨憨','fjgdjig'];
world.onPlayerJoin(({ entity }) => {
if (!TEST_PLAYER.includes(entity.player.name)) return
entity.player.scale = 0.3;
})
// 关闭玩家和玩家之间的碰撞
world.addCollisionFilter('player','player');
// 检测玩家是否正在奔跑或者行走,出现对应的粒子效果
// 使用第一人称视角
// 当玩家发送'grow'文字的时候放大1.2倍,当玩家发送'shrink'文字的时候缩小1.2倍
//先在地图放一个名为“门”的模型
//玩家跟“门"点击互动按钮,就会弹出一个传送门,进入哈哈农场地图
const door = world.querySelector('.门');
door.enableInteract = true;
door.interactHint = `To the ant-man maze`;
door.interactRadius = 5;
door.onInteract(async ({entity}) => {
entity.player.link('https://box3.codemao.cn/e/9f91246d6fba9bb8ef51?p=2cYXsMRamunNXuIiMW3XtU6yRCfJ3gUc7VYLcXOlP2A6WykkL7LgzljZbokIzmiZPmnYI%3D') // 将玩家传送到此地图链接
});
/*var n = 0;
world.querySelectorAll('.spot').forEach((e)=>{
e.onEntityContact(({entity,other})=>{
n = 1;
console.log(n);
})
})
world.querySelectorAll('.end').forEach((e)=>{
e.onEntityContact(({entity,other})=>{
if(n == 1){
//到终点后执行的代码。
}
else{
//可以提醒玩家没踩记录点。
}
})
})*/
world.onDie(({ entity }) => {
entity.player.forceRespawn();
});
//存档点代码
const checkPoint = {};
world.querySelectorAll('.存档').forEach((e)=>e.onEntityContact(({entity, other}) => {
if (other.isPlayer) {
checkPoint[other.player.name] = entity.position;
other.player.directMessage("存档成功!");
}
}));
//传送点代码
world.querySelectorAll('.还原点').forEach((e) => e.onEntityContact(({entity, other}) => {
if (other.isPlayer && other.player.name in checkPoint) {
other.position.copy(checkPoint[other.player.name]);
other.position.y += 5;
}
else{
other.player.directMessage("您还未有存档,快去跑酷吧!");
}
}));
world.querySelectorAll(".end").forEach((e) => e.onEntityContact(({entity,other})=>{
world.say(other.player.name+"到达了暂时的终点!获得飞行模式!");
other.player.canFly = true;
var yn = false
}))
229行代码,比较少
另外,我要做一个新地图,要和我一起的就在下方评论区发自己的信誉值和职业(职业有两种:代码师和建筑师)