Wiki
119 words
1 minute
创建伤害类型
在Tags中注册伤害类型的Tag 创建新的类AuraDamageGameplayAbility继承于AuraGameplayAbility 添加包含不同类型伤害的Map,Key为Tag,Value为伤害数值 随后在AuraGameplayTags中添加,伤害类型Tag到对应伤害类型Resistance的Map
在伤害计算中应用伤害抗性
在ExecCalc_Damage中添加对Resistance属性的捕获
创建从GameplayTag到对应ResistanceDef的TMap
TMap<FGameplayTag,FGameplayEffectAttributeCaptureDefinition> TagsToCaptureDefs;const FAuraGameplayTags& Tags = FAuraGameplayTags::Get();TagsToCaptureDefs.Add(Tags.Attributes_Secondary_Armor, ArmorDef);TagsToCaptureDefs.Add(Tags.Attributes_Secondary_BlockChance, BlockChanceDef);TagsToCaptureDefs.Add(Tags.Attributes_Secondary_ArmorPenetration, ArmorPenetrationDef);TagsToCaptureDefs.Add(Tags.Attributes_Secondary_CriticalHitChance, CriticalHitChanceDef);TagsToCaptureDefs.Add(Tags.Attributes_Secondary_CriticalHitDamage,CriticalHitDamageDef);TagsToCaptureDefs.Add(Tags.Attributes_Secondary_CriticalHitResistance,CriticalHitResistanceDef);
TagsToCaptureDefs.Add(Tags.Attribute_Resistance_Fire, FireDamageResistanceDef);TagsToCaptureDefs.Add(Tags.Attribute_Resistance_Lighting, LightningDamageResistanceDef);TagsToCaptureDefs.Add(Tags.Attribute_Resistance_Arcane, ArcaneDamageResistanceDef);TagsToCaptureDefs.Add(Tags.Attribute_Resistance_Physical, PhysicalDamageResistanceDef);