MinecraftPEJavaScript函数一.钩子(hook)函数当执行了特定动作时,这些函数会运行并执行其他函数1.functionuseItem(x,y,z,itemId,blockId,side,itemDamage,blockDamage){}当进行一次点击时(如使用物品或放置方块,食用食物不包括在内)会触发这个函数,并返回数据。x:被点击方块的x坐标y:被点击方块的y坐标z:被点击方块的z坐标itemId:点击时手里拿的物品id(空手为0)blockId:被点击方块的idside:方块被从哪个方向点击itemDamage:点击时手里拿的物品附加值(伤害值)blockDamage:被点击方块的附加值(伤害值)2.functionattackHook(attacker,victim){}当点击或攻击了一个生物mob(动物,怪物,玩家(待确认))时会触发这个函数,并返回数据。attacker:进行了点击或攻击动作的mobvictim:被点击或攻击的mob3.functionmodTick(){}每刻(1/20s0.05s)执行一次4.functionprocCmd(cmd){}在聊天里输入以/开头的话文字并执行(回车)时会触发cmd:在聊天里输入的以/开头的文字(不包含/)5.functionnewLevel(){}当世界被载入时(出现Buildingterrain时)会触发6.functionleaveGame(){}当离开当前世界(返回主菜单)时会触发7.functionentityAddedHook(entity){}当一个新的实体被添加(包括箭,下落的方块,点燃的TNT等)时会触发entity:被添加的自然实体8.functionentityRemovedHook(entity){}当一个实体(包括箭,下落的方块,点燃的TNT等)消失或死亡时会触发entity:被移除的实体9.functiondeathHook(murderer,victim){}当一个生物mod死亡时会触发murderer:造成死亡的实体victim:死亡的实体10.functionlevelEventHook(entity,eventType,x,y,z,data){}当门(木门,栅栏门,陷阱门)被打开或关闭时会触发当羊吃掉草时触发睡觉时触发entity:动作的实体(观测数据。总是为0)eventType:事件类型(观测数据。开关门数据为1003,羊吃草的数据为2001,睡觉的数据为9800)x,y,z:被点击的门方块的坐标,被吃掉的草方块的坐标,睡觉时为(0,0,0)data:未知(观测数据。开关门,睡觉的数据为0,羊吃草的数据为2)11.functionblockEventHook(x,y,z,eventType,data){}每三秒检查所有箱子的开关状态x,y,z:箱子的坐标eventType:事件类型(观测数据为1)data:未知(观测数据。关闭为0,打开为1,打开过程中为2(待确认)。检查大箱子时第二个被放置的箱子数值改变,另一个一直为0)12.functiondestroyBlock(x,y,z,side){}当一个方块被破坏时会触发x,y,z:方块的坐标side:方块被从哪个方向破坏二.文字显示函数也就是在游戏中现实文字的函数,也比较常用。1.print(text);将数据显示在浮动窗口里text可以是非实体变量或被括起来的字符串如print(text);2.clientMessage(text);将数据显示在聊天框里text可以是非实体变量或被括起来的字符串如clientMessage(text);颜色clientMessage(ChatColor.颜色+text);例子:clientMessage(ChatColor.YELLOW+It'sthe+ChatColor.RED+Red+ChatColor.GREEN+Green+ChatColor.YELLOW+show!);颜色表:BLACK,DARK_BLUE,DARK_GREEN,DARK_AQUA,DARK_RED,DARK_PURPLE,GOLD,GRAY,DARK_GRAY,BLUE,GREEN,AQUA,RED,LIGHT_PURPLE,YELLOW,WHITE三.获取坐标函数即在游戏中获取一个坐标,并使用。1.getPlayerX();getPlayerY();getPlayerZ();获取玩家的x,y,z坐标2.getPlayerEnt();获取玩家的实体3.getYaw(ent);获取实体ent的头部所朝向(左右)的角度值ent为空时默认为玩家面向z轴正方向是时为0±360n,面向x轴负方向时为90±360n4.getPitch(ent);获取实体ent的头部所朝向(上下)的角度值ent为空时默认为玩家面向y轴正方向时为-90,面向y轴负方向时为905.getCarriedItem();获取玩家手里正在拿着的物品或方块的id6.getTile(x,y,z);获取坐标为(x,y,z)的方块的id四.实体设置函数对某个实体设置某种事件,并将其触发。1.setPosition(ent,x,y,z);将一个实体ent的坐标设置为(x,y,z)ent:目标实体x,y,z:目标坐标2.setPositionRelative(ent,x,y,z);设置指定实体对于玩家的相对位置ent:目标实体x,y,z:相对坐标3.setRot(ent,yaw,pitch);将一个实体的头部方向设为(yaw,pitch)ent:目标实体yaw:水平角度pitch:垂直角度4.setVelX(ent,velocity);setVelY(ent,velocity);setVelZ(ent,velocity);将一个实体ent的x/y/z轴速度设为velocityent:目标实体velocity:速度5.setTile(x,y,z,blockID,damageValue);将特定的方块放置x,y,z:放置的坐标blockId:放置方块的iddamageValue:放置方块的附加值(伤害值)6.setPlayerHealth(halfHearts);设置玩家的血量helfHearts:半心量,20时为满血,但可以更高(=255)7.setNightMode(boolean);夜晚模式。此函数尚未被证实能正常使用,但存在于源码中boolean:布朗值,只能为true或false五.实体生成(spawn)函数如题,我不多说。1.spawnCow(x,y,z,image);spawnChicken(x,y,z,image);在特定位置生成一只牛/鸡,并将贴图换成imagex,y,z:生成mod的坐标image:在assets文件夹下的图片路径2.spawnPigZombie(x,y,z,heldItemID,image);在特定位置生成一只僵尸猪人,并将贴图换成imagex,y,z:生成mod的坐标heldItemID:猪人手里拿的物品idimage:在assets文件夹下的图片路径六.杂项函数一些五花八门的杂项函数。1.explode(x,y,z,radius);在坐标为(x,y,z)处引发一场半径为radius的爆炸2.rideAnimal(player,target);让player骑在target身上player,target为实体3.addItemInventory(ID,amount,damageValue);在背包里添加amount个id为ID,附加值(伤害值)为damageValue的物品amount可以为负4.preventDefault();阻止原有动作七.启动器(BlockLauncher-only)函数这些函数只能在BlockLauncher启动器里使用1.bl_spawnMob(x,y,z,mobID,image);(停用,请使用Level.spawnMob)在特定位置生成一个实体,并替换贴图x,y,z:指定位置mobID:实体类别idimage:在assets文件夹下的图片路径2.bl_setMobSkin(mob,image);将指定实体的贴图更换mob:指定的实体(不是实体类别)image:在assets文件夹下的图片路径八.Level函数Level.explode(x,y,z,radius);在坐标为(x,y,z)处引发一场半径为radius的爆炸与explode(x,y,z,radius)相同Level.getTile(x,y,z);获取坐标为(x,y,z)的方块的id和getTile(x,y,z);相同Level.setTile(x,y,z,blockID);放置方块和setTile(x,y,z,blockID);相同Level.getData(x,y,z);获取坐标为(x,y,z)的方块的伤害值(附加值)Level.getWorldDir();返回当前世界所在的文件夹的名字Level.getWorldName();返回当前世界的名字Level.spawnChicken(x,y,z,image);Level.spawnCow(x,y,z,image);在特定位置生成一只牛/鸡,并将贴图换成imagex,y,z:生成mod的坐标image:在assets文件夹下的图片路径和spawnCow(x,y,z,image);spawnChicken(x,y,z,image);相同Level.destroyBlock(x,y,z,shouldDropItem);破坏一个方块,拥有正常破坏时的所有特效x,y,z:方块坐标shouldDropItem:是否掉落被破坏的方块本身。布尔值,只能为true/falseLevel.dropItem(x,y,z,range,id,count,damage);从指定坐标掉落方块x,y,z:指定坐标range;掉落的距离id:掉落物idcount:掉落物数量damage:掉落物伤害值Level.getAddress();用途不明。。返回值是实体。。Level.getChestSlot(x,y,z,slot);读取指定箱子指定位置的物品idx,y,z:箱子坐标slot:物品位置Level.getChestSlotCount(x,y,z,slot);读取指定箱子指定位置的物品数量x,y,z:箱子坐标slot:物品位置Level.getChestSlotData(x,y,z,slot);读取指定箱子指定位置的物品伤害值(附加值)x,y,z:箱子坐标slot:物品位置Level.setChestSlot(x,y,z,slot,id,damage,amount);向箱子指定位置放置物品x,y,z:箱子坐标slot:物品位置id,damage,amount:物品id,伤害值,数量Level.getGameMode();获取游戏模式。生存为0,创造为1。Level.setGameMode(mode);设置游戏模式。生存为0,创造为1。Level.getTime();获取当前时间。0为正午,7200为日落,8280为晚上,13320为日出。Level.setTime(time);设置时间。0为正午,7200为日落,8280为晚上,13320为日出。Level.getSignText(x,y,z,line);获取指定牌子的内容,为空时返回nullx,y,z:牌子的坐标line:获取的行数,第一行为0Level.setSignText(x,y,z,line,text);设置指定牌子的内容x,y,z:牌子的坐标line:设置的行数,第一行为0text:内容。必须是字符串Level.playSound(x,y,z,sound,volume,pitch);播放声音x,y,z:指定坐标sound:MCPE中的声音volume:音量pitch:角度,用途不明Level.playSoundEnt(ent,sound,volume,pitch);ent:自