Hooks - Mrkwtkr/ModPE-Docs GitHub Wiki

这篇文档涉及ModPE中所有可用的钩子函数

attackHook

function attackHook(attacker, victim) { }
  • 当一个实体被攻击时调用。
  • (实体) attacker:发出攻击的实体。
  • (实体) victim:受到攻击的实体。

projectileHitBlockHook

function projectileHitBlockHook(projectile, blockX, blockY, blockZ, side) {  }
  • 当一个投射物(如箭矢、雪球)击中一个方块时调用

projectileHitEntityHook

function projectileHitEntityHook(projectile, targetEntity)
  • 当一个投射物(如箭矢、雪球)击中一个生物时调用

blockEventHook

function blockEventHook(x, y, z, type, data) { }
  • 无参考信息

chatHook

function chatHook(text) { }
  • 当聊天中说出某段文本时调用
  • (字符串) text :对应的聊天信息

chatReceiveHook

function chatReceiveHook(str, sender) { }
  • 无参考信息

deathHook

function deathHook(attacker, victim) { }
  • 当一个实体死亡时调用。
  • (实体) attacker:完成击杀的实体。
  • (实体)victim:死亡的实体。

destroyBlock

function destroyBlock(x, y, z, side) { }
  • 当一个方块被破坏时调用。
  • (整数) x, y, z:被破坏方块的坐标。
  • (整数) side:方块被破坏一侧的面。
  • 注意: 当此函数被调用时,方块处于即将破坏的状态,函数调用后,方块才会被破坏。

entityAddedHook

function entityAddedHook(entity) { }
  • 当一个实体被加入游戏时调用。
  • (实体) entity:对应的实体。

entityRemovedHook

function entityRemovedHook(entity) { }
  • 当一个实体从世界移除时调用。
  • (实体) entity:对应的实体。

eatHook

function eatHook(foodpoints, saturationratio) { }

playerAddExpHook(player, experienceAdded)

function playerAddExpHook(player, experienceAdded)
  • 当玩家收集经验时调用

playerAddExpHook(player, experienceAdded)

function playerExpLevelChangeHook(player, levelsAdded)
  • 当玩家等级改变时调用

levelEventHook(player, eventType, x, y, z, data)

function levelEventHook(player, eventType, x, y, z, data) { }
  • 当一扇门被打开或关闭时调用。(data: 0 = 正在关闭, 1 = 正在打开, 2 = 打开状态)

leaveGame

function leaveGame() { }
  • 当用户退出世界时调用。
  • 不接受参数

levelEventHook

function levelEventHook(player, eventType, x, y, z, data) { }
  • 无参考信息

modTick

function modTick() { }
  • 每个游戏刻(tick)调用,单个游戏刻是1/20秒。(每秒调用20次)
  • 不接受参数

newLevel

function newLevel(hasLevel) { }
  • 当用户开始加载一个存档时调用。
  • hasLevel: ?

procCmd

function procCmd(cmd) { }
  • 当一条指令被输入时调用。(以“/”开头的聊天信息)
  • (字符串) cmd:对应的指令,包含参数,此处省略“/”。

selectLevelHook

function selectLevelHook() { }
  • 无参考信息

serverMessageReceiveHook

function serverMessageReceiveHook(str) { }
  • 无参考信息

startDestroyBlock

function startDestroyBlock(x, y, z, side) { }
  • 无参考信息

useItem

function useItem(x, y, z, itemId, blockId, side, itemDamage, blockDamage) { }
  • 当一个方块被点击时调用。
  • (整数) x, y, z:被点击方块的坐标。
  • (整数) itemId:玩家手持物品的ID。
  • (整数) blockId:被点击方块的ID。
  • (整数) side:方块被点击一侧的面。
  • (整数) itemDamage:手持物品的损害值(Damage Value)。
  • (整数) blockDamage: 被点击方块的损害值。

attackHook(attacker, victim);
blockEventHook(x, y, z, type, data);
chatReceiveHook(str, sender);
deathHook(attacker, victim);
destroyBlock(x, y, z, side);
entityAddedHook(entity);
entityRemovedHook(entity);
leaveGame();
levelEventHook(player, eventType, x, y, z, data);
modTick();
newLevel(hasLevel);
procCmd(cmd);
selectLevelHook();
serverMessageReceiveHook(str);
startDestroyBlock(x, y, z, side);
useItem(x, y, z, itemId, blockId, side, itemDamage, blockDamage);