MemeMayhem / ModExamples

8 stars 3 forks source link

请问如何直接赋予子弹效果 #44

Open FasciA647 opened 5 hours ago

FasciA647 commented 5 hours ago

您好,我看到了通过perk behavior可以在拥有能力时让子弹触发某些效果。但请问怎样能像冰块、吸血鬼一样不通过能力/神器,直接让子弹本身拥有添加buff、修改属性值等效果?或者怎样添加初始能力/神器而不在界面上显示?

fx013 commented 4 hours ago

游戏内置的子弹实现方式不太一样,目前在Mod里没法实现同样的效果。能力和神器也没有办法隐藏。如果用神器实现并且显示出来,这样会造成什么问题吗?

NinjaAqua445 commented 3 hours ago

冰块,吸血鬼可以用我们的mod API实现类似的效果: 在定义冰块perk的时候添加一个减攻速的behavior:

behavior = {
    description = DCEI.GetTranslationText(
        "combat/behavior/generic_decrease_duration/description",
        { x = TAG.attack_speed }
    ),
    buff_bar_icon = DCEI.Texture("flat_icon_emoji_ice_1f9ca_ipick"),
    duration = 3,
    non_scaling_attributes = {
        attack_speed = -0.01,
    },
},

然后在注册冰块子弹命中的回调函数里施加相应的behavior:

combat_unit:RegisterOnMissileImpactCallback(name, function(level, attack_data, caster, target)
    PerkBehaviorSystem:ApplyPerkBehavior(target, caster, perk_name)
end)

吸血鬼也可以用类似的方法实现,在注册吸血鬼子弹命中的回调函数中扣除敌人的生命值上限,然后向自己发射一个血液子弹,血液子弹命中的回调函数里添加回复自己的生命值即可。 更详细的内容请参考我们的mod examples和Wiki

FasciA647 commented 3 hours ago

感谢解答!

FasciA647 commented 2 hours ago

不过在perk中实现好像不能对初始的子弹生效,我想创建初始就带有很多不同特殊子弹的角色,就采用添加初始神器吧。