BUFF系统即为人物状态系统。根据不同的类型对人物进行一些属性值上的变更或者对其他系统的影响。
BUFF 系统设计为有时间限制的系统。比如道士的毒对实体的作用是有次数以及时间长度的。过了时间就失去效果。
BUFF 系统在实体LogicRun 内进行每一秒的检测。即buff 的最小单位时间为1秒。比如当策划想要一个每500毫秒减少血量的buff 这个就无法实现。因为至少单位时间就是一秒。
Buff 系统类型参考buff类型作用.txt
//根¨´据Ybuff组Á¨¦以°?及¡ãbuff类¤¨¤型¨ª获?取¨?一°?个?buff
inlineCDynamicBuff* GetBuff(constGAMEATTRTYPE buffType, constINT_PTR nGroup)
梁凡2015-11-2
下线存储人物身上的buff.用人物德静态变量存储: CBuffSystem::SaveToScriptData()
人物上线加载静态变量中的buff: voidCBuffSystem::LoadFromScriptData()
检测人物身上buff是否过时,一秒一次: VOIDCBuffSystem::OnTimeCheck(TICKCOUNT nTickCount)
给人物加一个Buff的载入函数: constCDynamicBuff* CBuffSystem::Append(INT_PTR buffType, constINT_PTR nGroup,
GAMEATTRVALUE &value, INT_PTR dwTwice, INT_PTR btInterval ,LPCTSTR sBuffName,INT_PTR nAuxParam,bool timeOverlay,
INT_PTR wActWait, EntityHandle giver,INT_PTR nEffectType,INT_PTR nEffectId,INT_PTR nColorPriority, INT_PTR nColor,bool bFullDel,byte nIcon)
Buff的属性计算: VOIDCBuffSystem::CalcAttributes(CAttrCalc &calc)(其属性不放在战力评分里面)