Files
mir_server/server/LogicServer/skill/EffectSystem.h

76 lines
1.7 KiB
C
Raw Normal View History

2025-01-09 17:45:40 +08:00
#pragma once
/************************************************************************/
/*
/* 实体特效子系统
/*
/************************************************************************/
//实体的特效
struct CEntityEffect
{
TICKCOUNT nExpiredTick; //过期时间
WORD wEffectID; //特效的类型
BYTE bEffectType; //特效的类型
BYTE bReServer;
};
class CEffectSystem:
public CEntitySubSystem<enEffectSystemID,CEffectSystem,CAnimal>
{
public:
/*
* Comments:
* Param INT_PTR nType:
* Param INT_PTR nId:id
* Param INT_PTR nDurTime:,0
* @Return void:
*/
void AddEffect(INT_PTR nType,INT_PTR nId,INT_PTR nDurTime);
/*
* Comments:
* Param INT_PTR nType:
* Param INT_PTR nId:ID
* @Return bool:truefalse
*/
INT_PTR DelEffect(INT_PTR nType,INT_PTR nId);
/*
* Comments:
* Param bool nNeedBroadCast: 广
* @Return INT_PTR:
*/
INT_PTR DelAllEffect(bool nNeedBroadCast);
//定时检测
VOID OnTimeCheck(TICKCOUNT nTick);
//追加特效的数据
void AppendEffectData(CDataPacket &pack);
void Destroy()
{
DelAllEffect(false);
}
/*
* Comments:
* Param int nEffectType:
* Param int nEffectId:id
* @Return bool:truefalse
*/
bool IsExist(int nEffectType ,int nEffectId);
private:
//删除玩家特效的回调
void OnDeleteEffect(const CEntityEffect * pEffect);
private:
CList<CEntityEffect *> m_effects; //实体的特效
};