薛定谔的钱10086
rt,我貌似有点印象的是玩家死亡事件好像可以取消(但是查了查api并没有)
看看有无大佬给出一个取消玩家死亡事件的脚本
拜谢了

FireworkPolymer
自定义NPC?插件?能给的详细点吗

猜猜谁是谁
本帖最后由 猜猜谁是谁 于 2023-1-13 18:33 编辑

玩家死亡事件本身是可以取消的 因为该段代码在玩家死亡时返回的是true:
  1. function died(e){//放在player脚本界面中
  2.     e.player.message(e.isCancelable());
  3. }
复制代码
但是用 e.setCanceled(true); 似乎并不能阻止玩家死亡

如果你的目的是让玩家不会死亡,那么我觉得用受伤事件damaged更好,例如:
  1. function damaged(e){
  2.     if(e.damage>e.player.getHealth()) e.setCanceled(true);
  3. }
复制代码
在伤害数值超过玩家现有血量时,会将该次伤害取消

不过这样可能也有问题 比如护甲\减免可能没有计算 以及无法规避直接操作生命值的行为等等
以上是我的思路 具体还是得看你的具体需求是什么



薛定谔的钱10086
猜猜谁是谁 发表于 2023-1-13 18:32
玩家死亡事件本身是可以取消的 因为该段代码在玩家死亡时返回的是true:
但是用 e.setCanceled(true); 似乎 ...

是的,我在用setcanceled的时候发现阻止不了,但是用damaged的话如果遇到直接设置生命值的时候无法免疫,就在想该怎么办