夕xy
本帖最后由 夕xy 于 2022-7-4 20:03 编辑

检测玩家被攻击 1.12.2 抗性255
hurttime和stat.damageDealt都不管用
已解决:将抗性换为生命恢复
使用stat.damageDealt检测

无谓z
本帖最后由 无谓z 于 2022-7-4 18:32 编辑

hurttime和stat.damageDealt需要收到伤害才会计数
抗性255无法受到伤害
WIKI:
将所有受到的伤害(不包括虚空、饥饿与/kill造成的)随等级提升逐渐减免,并在5级时完全免疫。
去除药水效果后就能检测被攻击了

夕xy
无谓z 发表于 2022-7-4 18:30
hurttime和stat.damageDealt需要收到伤害才会计数
抗性255无法受到伤害
WIKI:

所以怎么检测呢

无谓z
夕xy 发表于 2022-7-4 18:31
所以怎么检测呢

或许可以检测玩家盔甲的耐久损耗来检测玩家被攻击
举个例子:
  1. /scoreboard objectives add damage dummy   #添加一个名为damage的记分板
  2. /clear @a diamond_helmet 1 0   #清除玩家耐久损耗为1的钻石头盔
  3. /execute @a ~ ~ ~ scoreboard players add @s damage 1   #给玩家在记分板上加1分
  4. /replaceitem entity @a slot.armor.head 0 diamond_helmet 1   #将玩家头部盔甲替换为新的钻石头盔
复制代码

但如果装备是无法损坏的那就没有办法了





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