[1.16.5]能否做到同一套护甲根据nbt不同而拥有不同的护甲值/护甲韧性/耐久度 #116
Answered
by
3TUSK
KeNickGong
asked this question in
Q&A
-
护甲的防御力和耐久度之类跟enum material相关,但是工具和武器有能做到类似的效果,有没有什么思路或者approach能解决这个问题呀 |
Beta Was this translation helpful? Give feedback.
Answered by
3TUSK
Jul 16, 2021
Replies: 1 comment 1 reply
-
护甲的防御值、韧性由 耐久计算也类似,有名为 |
Beta Was this translation helpful? Give feedback.
1 reply
Answer selected by
SeraphJACK
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
护甲的防御值、韧性由
Multimap<Attribute, AttributeModifier> getDefaultAttributeModifiers(EquipmentSlotType slotType)
的返回值直接决定(见ArmorItem
类),因此覆盖此方法就可以提供非常规的装备属性值。Forge 提供了带
ItemStack
版本的Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlotType slotType, ItemStack theItem)
(位于IForgeItem
下,但Item
类已实现该扩展接口),你可以@Override
这个带ItemStack
的版本来提供更复杂的防御、韧性计算逻辑。顺带一提,手持物品的攻击力、攻击速度也是此方法决定的。
耐久计算也类似,有名为
int getMaxDamage(ItemStack theItem)
的方法可供@Override
。