本帖最后由 1162885631 于 2014-8-21 17:07 编辑
复制代码
好,那我们来看一个实例
复制代码
复制代码
复制代码
下次我去发个索引,篇篇做目录太累了
大家好,这次我们来讲讲entityRemovedHook函数和deathHook函数
本来我是想与entityAddedHook函数一起讲的
可是上次忘记了
那么你肯定会问我为什么要放在一起讲
这个问题就放在这,我们先来了解entityRemovedHook函数
首先entityRemovedHook函数属于Hook函数
那么我们来看看它的触发条件
entityRemovedHook函数触发条件
当一个实体(包括箭,下落的方块,点燃的TNT等)消失或死亡时会触发
看到了没有,它与entityAddedHook函数的触发条件正好相反
既然了解了触发条件,我们就来看看使用格式
- function entityRemovedHook(entity){}
同样的,它与我们上一次讲的entityAddedHook函数格式相同
后面参数entity返回是被移除的实体
这个entit可以是任意实体(箭,下落的方块,点燃的TNT,生物,玩家)
好,那我们来看一个实例
- function entityRemovedHook(entity){
- var A=Entity.getEntityTypeId(entity);
- if(A==80){
- clientMessage("箭呢?");
- }
- }
这个,讲解类似于entityAddedHook函数,我就不多讲了
这个JS的效果与entityAddedHook函数刚好相反
当玩家拿走箭或箭掉岩浆(反正就是消失了)
会在聊天框里输出“箭呢?”
好,我们了解了entityRemovedHook函数后我们再来看看deathHook函数
同样的deathHook函数也属于Hook函数
触发条件如下
deathHook函数触发条件
当一个生物mod死亡时会触发
发现了没有它与entityRemovedHook函数作用类似
不过它只有生物实体死亡才会触发(箭,下落的方块,点燃的TNT则不会)
既然了解了触发条件,那我们就来看看使用格式
- function deathHook(murderer, victim){}
我们可以发现deathHook函数后面有两个参数(murderer, victim)
murderer返回的是造成死亡的实体ID
victim返回的是死亡的实体ID
这样说说可能看不懂,我们来看一个实例
- function deathHook(murderer, victim){
- var A=getPlayerEnt();
- //获取玩家实体ID
- var B=Entity.getEntityTypeId(victim);
- //判断死亡生物种类ID
- if(murderer==A&&B==12){
- //当攻击者是玩家并且死亡生物种类ID为12时
- clientMessage("你打了死猪!");
- //输出"你打了死猪!"
- }
- }
明白了吗?
还不明白的话自己去动手做一做
注意安卓系统默认文字编码为UTF-8,而windows一般都是简体中文(GBK)
在电脑上的中文显示会在方块启动器中乱码
在电脑上编写JS完成后请转换编码成UTF-8
那么,entityRemovedHook函数和deathHook函数我就讲到这里
我们下次再见!