MC百科社群

标题: 怎么改武器的伤害类型? [打印本页]

作者: jsghsgh    时间: 2022-7-6 09:49
标题: 怎么改武器的伤害类型?
想把弓箭的伤害类型改成虚空伤害
1.12及以前的怎么弄?
被SRP的怪恶心到了所以想把武器类型改成虚空伤害



作者: jsghsgh    时间: 2022-7-6 09:50

作者: jsghsgh    时间: 2022-7-6 09:55
@ZLL2
过来一下
作者: QQ酱294486    时间: 2022-12-21 11:41
持有attribute,或者改NBT,Enchantment下面写个sharpness,level255...
作者: xm94732568960    时间: 2023-1-8 14:24
在LivingAttackEvent里检查是否用弓箭攻击,用hurt()造成虚空伤害
现在你的箭矢甚至能射杀创造模式的玩家!如图
作者: xm94732568960    时间: 2023-1-8 14:33
本帖最后由 xm94732568960 于 2023-1-8 14:38 编辑

这里写错了,会崩溃

屏幕截图 2023-01-08 143034.png (66.6 KB, 下载次数: 979)

屏幕截图 2023-01-08 143034.png

作者: xm94732568960    时间: 2023-1-8 14:36
本帖最后由 xm94732568960 于 2023-1-8 14:46 编辑

这么写更好,可以继承玩家使用箭矢的攻击判定
public static void on(LivingAttackEvent e){
    DamageSource source=e.getSource();
    if (source==null)return;
    Entity target=e.getEntity();
    if (target.getLevel()instanceof ClientLevel)return;
    Entity attacker=source.getEntity();
    Entity useEntity=source.getDirectEntity();
    if (useEntity instanceof Arrow){
        source.bypassArmor().bypassInvul();
        try {
            Field f=DamageSource.class.getDeclaredField("msgId");
            f.setAccessible(true);
            f.set(source,"outOfWorld");
        }catch (Exception exception){
        }
    }
}
作者: xm94732568960    时间: 2023-1-8 14:46
我写的是1.19.2的,1.12.2的稍作改动就行了
作者: FireDragon    时间: 2023-1-8 23:37
xm94732568960 发表于 2023-1-8 14:24
在LivingAttackEvent里检查是否用弓箭攻击,用hurt()造成虚空伤害
现在你的箭矢甚至能射杀创造模式的玩家! ...

大佬就是大佬
作者: FireDragon    时间: 2023-1-8 23:38
xm94732568960 发表于 2023-1-8 14:46
我写的是1.19.2的,1.12.2的稍作改动就行了

1.12.2貌似没有hurt
作者: FireDragon    时间: 2023-1-9 01:54
xm94732568960 发表于 2023-1-8 14:46
我写的是1.19.2的,1.12.2的稍作改动就行了

1.12.2的hurt好像是attackEntityFrom




欢迎光临 MC百科社群 (https://bbs.mcmod.cn/) MC百科|最大的MineCraft中文模组百科