orin3
本帖最后由 1162885631 于 2014-8-21 17:07 编辑

下次我去发个索引,篇篇做目录太累了

看本帖之前请先看http://www.mcbbs.net/thread-204040-1-3.html

大家好,这次我们来讲讲entityRemovedHook函数和deathHook函数

本来我是想与entityAddedHook函数一起讲的

可是上次忘记了

那么你肯定会问我为什么要放在一起讲

这个问题就放在这,我们先来了解entityRemovedHook函数

首先entityRemovedHook函数属于Hook函数

那么我们来看看它的触发条件



entityRemovedHook函数触发条件

当一个实体(包括箭,下落的方块,点燃的TNT等)消失或死亡时会触发



看到了没有,它与entityAddedHook函数的触发条件正好相反

既然了解了触发条件,我们就来看看使用格式

  1. function entityRemovedHook(entity){}
复制代码

同样的,它与我们上一次讲的entityAddedHook函数格式相同

后面参数entity返回是被移除的实体


这个entit可以是任意实体(箭,下落的方块,点燃的TNT,生物,玩家)

好,那我们来看一个实例
  1. function entityRemovedHook(entity){
  2.         var A=Entity.getEntityTypeId(entity);
  3.         if(A==80){
  4.                 clientMessage("箭呢?");
  5.         }
  6. }
复制代码

这个,讲解类似于entityAddedHook函数,我就不多讲了

这个JS的效果与entityAddedHook函数刚好相反

当玩家拿走箭或箭掉岩浆(反正就是消失了)

会在聊天框里输出“箭呢?”



好,我们了解了entityRemovedHook函数后我们再来看看deathHook函数

同样的deathHook函数也属于Hook函数

触发条件如下


deathHook函数触发条件

当一个生物mod死亡时会触发



发现了没有它与entityRemovedHook函数作用类似

不过它只有生物实体死亡才会触发(箭,下落的方块,点燃的TNT则不会)

既然了解了触发条件,那我们就来看看使用格式

  1. function deathHook(murderer, victim){}
复制代码

我们可以发现deathHook函数后面有两个参数(murderer, victim)

murderer返回的是造成死亡的实体ID

victim返回的是死亡的实体ID

这样说说可能看不懂,我们来看一个实例

  1. function deathHook(murderer, victim){
  2.         var A=getPlayerEnt();
  3.         //获取玩家实体ID
  4.         var B=Entity.getEntityTypeId(victim);
  5.         //判断死亡生物种类ID
  6.         if(murderer==A&&B==12){
  7.                 //当攻击者是玩家并且死亡生物种类ID为12时
  8.                 clientMessage("你打了死猪!");
  9.                 //输出"你打了死猪!"
  10.         }
  11. }
复制代码

明白了吗?

还不明白的话自己去动手做一做

注意安卓系统默认文字编码为UTF-8,而windows一般都是简体中文(GBK)

在电脑上的中文显示会在方块启动器中乱码

在电脑上编写JS完成后请转换编码成UTF-8

那么,entityRemovedHook函数和deathHook函数我就讲到这里

我们下次再见!










第一页 上一页 下一页 最后一页