a9a9
版本为1.15+ (当然更低的版本能够解决自然是更好)其实之前很早就已经想过这个问题了 最简单的方法当然是直接给予药水效果 同时给予治疗和伤害的情况下进行一定的计算得出最终的伤害 而亡灵生物之类的要反过来. 但是这样有很多问题,首先盔甲无法防御药水伤害(无附魔的情况下),不能做出很好的防御效果.
其次boss生物以及一些特殊的生物没办法被药水伤害到 比如末影龙.

(而且这样的伤害是不附带伤害者的uuid的,没办法对怪物的ai起效)

我也想过很多类似的方法 比如利用传送掉落沙 传送到头顶上的弓箭 召唤一个瞬间的爆炸 瞬间生成的僵尸
或者是间接伤害的方法 通过计分板来控制特殊的血量来进行计算 归零时直接处死 但也有以上的问题

但是这些方法或多或少都有很多的限制 比如生物脚下不能为半砖之类的方块 弓箭可能会被方块挡住 爆炸的动量和伤害不好控制 僵尸倒是没有试验过,不过可行性估计也很低

查了挺多地方的好像都没有看到一个比较优秀的解决方案 最后实在是没办法了 过来看看有没有大佬能够解决qwq

CR_019
本帖最后由 CR_019 于 2020-9-20 08:38 编辑

如果不需要涉及玩家的话可以用记分板计算直接修改Health值来模拟,要获得打击感的话可以参考以下链接:
模拟原版击退:https://www.mcbbs.net/forum.php?mod=viewthread&tid=1113987
基于1.16提高打击感的尝试:https://www.mcbbs.net/forum.php?mod=viewthread&tid=1043875

uuid问题可以附加一个雪球解决

a9a9
但是其实主要就是想要应用在玩家身上的XD 不能直接修改玩家的nbt标签真的是伤透了脑筋

阿仟
非玩家实体通过修改health来模拟

而玩家的伤害只能近似来计算。如果是为了算上护甲值和盔甲韧性,可以创建护甲值和盔甲韧性的计分板,然后照着wiki里面的伤害计算
假如是想让系统给予玩家n点伤害,就设个dummy计分板,把玩家的该计分板分数设为n,然后计算得到最后结果之后进行穷举,每一种情况都用瞬间伤害和瞬间治疗来凑,可以大致模拟出来,缺点是精度只到个位数

a9a9
很好的建议(虽然我自己非常讨厌穷举) 不过有些特殊生物怎么办 比如说末影龙之类的boss生物不会获得药水效果的

阿仟
a9a9 发表于 2020-9-20 12:02
很好的建议(虽然我自己非常讨厌穷举) 不过有些特殊生物怎么办 比如说末影龙之类的boss生物不会获得药水效果 ...

非玩家实体用修改health就可

a9a9
a9a9 发表于 2020-9-20 12:02
很好的建议(虽然我自己非常讨厌穷举) 不过有些特殊生物怎么办 比如说末影龙之类的boss生物不会获得药水效果 ...

啊 才发现自己犯傻了 末影龙是非实体(

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