Buff实体: PrimalBuff
该BUFF为附加在玩家身上的Actor
包含音效组件、Niagara组件与粒子发射器组件
需要为角色添加CharacterStatusComponent与BuffComponent
BUFF到时间后会自动移除,但增益效果需要在RemoveBuff函数中移除
变量 | 说明 |
---|---|
Duration | 耐久,实为到期时间,剩余时间使用GetTimeRemaining获取 |
MaxDuration | 最大耐久,该BUFF能够拥有的最大时间,用于限制防止恶意叠加 |
ElapsedTime | 已增益时间 |
AttachmentSocket | 附加的插槽(Mesh),用于特效系统 |
BuffIcon | BUFF图标,UI使用 |
Sound | 音效,可为长时间的音效(燃烧)或一次性音效 |
NiagaraPS/ParticlePS | Niagara系统/粒子发射器系统 可同时使用 |
TimerInterval | Tick间隔时间,用于调用BuffTick |
函数 | 说明 |
---|---|
ModifyValue | 调用CharacterStatusComponent->ModifyValue 用于BUFF增减血量等可变属性 |
ModifyAddation | 调用CharacterStatusComponent->ModifyAddation 用于BUFF增减护甲等固定属性 |
GetTimeRemaining | 获取BUFF剩余时间 |
Deactivate | 销毁BUFF(慢速) |
ResetTime | 重置时间 |
MulticastDestroyBuff | 多播移除BUFF,最后调用Deactivate |
具体BUFF效果请重载以下函数实现,否则将会只有特效与音效
重载函数 | 说明 |
---|---|
AddBuffCheck | 新增BUFF检查,新增BUFF会先请求该函数,所有BUFF中有一个BUFF返回false则不添加该BUFF,默认为检查到相同BUFF则重置时间 用法例子: 角色冰冻后解冻,一段时间不能再次被冰冻 新增一个禁止冰冻BUFF,在解冻时给角色增加该BUFF, 在该BUFF中重载AddBuffCheck,检查BuffClass是否为冰冻BUFF,如为冰冻BUFF则返回失败 |
RemoveBuff | 移除BUFF,请将BUFF增益在此移除 |
ApplyBuff | 增加BUFF,与BeginPlay类似,在此增加BUFF效果 |
BuffTick | 与Tick类似,用于一定时间给角色回血等操作,间隔为TimerInterval |