这篇文档涉及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);