版本为1.15+ (当然更低的版本能够解决自然是更好)其实之前很早就已经想过这个问题了 最简单的方法当然是直接给予药水效果 同时给予治疗和伤害的情况下进行一定的计算得出最终的伤害 而亡灵生物之类的要反过来. 但是这样有很多问题,首先盔甲无法防御药水伤害(无附魔的情况下),不能做出很好的防御效果.
其次boss生物以及一些特殊的生物没办法被药水伤害到 比如末影龙.
(而且这样的伤害是不附带伤害者的uuid的,没办法对怪物的ai起效)
我也想过很多类似的方法 比如利用传送掉落沙 传送到头顶上的弓箭 召唤一个瞬间的爆炸 瞬间生成的僵尸
或者是间接伤害的方法 通过计分板来控制特殊的血量来进行计算 归零时直接处死 但也有以上的问题
但是这些方法或多或少都有很多的限制 比如生物脚下不能为半砖之类的方块 弓箭可能会被方块挡住 爆炸的动量和伤害不好控制 僵尸倒是没有试验过,不过可行性估计也很低
查了挺多地方的好像都没有看到一个比较优秀的解决方案 最后实在是没办法了 过来看看有没有大佬能够解决qwq
其次boss生物以及一些特殊的生物没办法被药水伤害到 比如末影龙.
(而且这样的伤害是不附带伤害者的uuid的,没办法对怪物的ai起效)
我也想过很多类似的方法 比如利用传送掉落沙 传送到头顶上的弓箭 召唤一个瞬间的爆炸 瞬间生成的僵尸
或者是间接伤害的方法 通过计分板来控制特殊的血量来进行计算 归零时直接处死 但也有以上的问题
但是这些方法或多或少都有很多的限制 比如生物脚下不能为半砖之类的方块 弓箭可能会被方块挡住 爆炸的动量和伤害不好控制 僵尸倒是没有试验过,不过可行性估计也很低
查了挺多地方的好像都没有看到一个比较优秀的解决方案 最后实在是没办法了 过来看看有没有大佬能够解决qwq
本帖最后由 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问题可以附加一个雪球解决
如果不需要涉及玩家的话可以用记分板计算直接修改Health值来模拟,要获得打击感的话可以参考以下链接:
模拟原版击退:https://www.mcbbs.net/forum.php?mod=viewthread&tid=1113987
基于1.16提高打击感的尝试:https://www.mcbbs.net/forum.php?mod=viewthread&tid=1043875
uuid问题可以附加一个雪球解决
但是其实主要就是想要应用在玩家身上的XD 不能直接修改玩家的nbt标签真的是伤透了脑筋
非玩家实体通过修改health来模拟
而玩家的伤害只能近似来计算。如果是为了算上护甲值和盔甲韧性,可以创建护甲值和盔甲韧性的计分板,然后照着wiki里面的伤害计算
假如是想让系统给予玩家n点伤害,就设个dummy计分板,把玩家的该计分板分数设为n,然后计算得到最后结果之后进行穷举,每一种情况都用瞬间伤害和瞬间治疗来凑,可以大致模拟出来,缺点是精度只到个位数
而玩家的伤害只能近似来计算。如果是为了算上护甲值和盔甲韧性,可以创建护甲值和盔甲韧性的计分板,然后照着wiki里面的伤害计算
假如是想让系统给予玩家n点伤害,就设个dummy计分板,把玩家的该计分板分数设为n,然后计算得到最后结果之后进行穷举,每一种情况都用瞬间伤害和瞬间治疗来凑,可以大致模拟出来,缺点是精度只到个位数
很好的建议(虽然我自己非常讨厌穷举) 不过有些特殊生物怎么办 比如说末影龙之类的boss生物不会获得药水效果的
a9a9 发表于 2020-9-20 12:02
很好的建议(虽然我自己非常讨厌穷举) 不过有些特殊生物怎么办 比如说末影龙之类的boss生物不会获得药水效果 ...
非玩家实体用修改health就可
a9a9 发表于 2020-9-20 12:02
很好的建议(虽然我自己非常讨厌穷举) 不过有些特殊生物怎么办 比如说末影龙之类的boss生物不会获得药水效果 ...
啊 才发现自己犯傻了 末影龙是非实体(