游戲服務器中對Buff定義
游戲服務器中對Buff定義
首先我們將游戲服務器Buff系統分為三個層次,具體繼承關系如下:
Buff:所有Buff的基類,包含各類成員函數和基本接口。
Modifier:繼承于Buff,代表這個Buff是一個修改器,它可以用來修改當前目標的各種屬性,狀態等等。抽象Modifier這個類的目的是出于性能優化的考慮。因為當Buff修改角色的屬性或者狀態時,會導致重新計算角色的動態屬性, 而在游戲中我們很多的Buff并不需要修改角色的屬性狀態,僅僅用來提供一段邏輯。那么如果它是一個Buff不是Modifier,就不需要重新計算角色的動態屬性。
MotionModifier:繼承于Modifier,代表此類Buff提供修改玩家運動效果的功能。因為牽涉到與運動組件的交互,所以抽象出一個新的類。
游戲服務器中Buff類層次結構劃分了之后,那么Buff需要包含那些成員數據呢?
我們游戲服務器提供BuffTypeId(Buff類型Id), Caster(Buff施加者),Parent(Buff當前掛載的目標), Ability(Buff由哪個技能創建),BuffLayer(層數), BuffLevel(等級)BuffDuration(時長),BuffTag,BuffImmuneTag(免疫BuffTag)以及Context(Buff創建時的一些相關上下文數據)等等。【艾娜】