83 lines
2.3 KiB
C
83 lines
2.3 KiB
C
|
|
|
|||
|
|
//BOSS子系统
|
|||
|
|
|
|||
|
|
#pragma once
|
|||
|
|
|
|||
|
|
class CBossSystem:
|
|||
|
|
public CEntitySubSystem<enBossSystemID, CBossSystem,CActor>
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
|
|||
|
|
enum EnBossEvent{
|
|||
|
|
enOnInit = 1, //boss初始化
|
|||
|
|
enOnEnterFuben = 2, //玩家进入Boss副本
|
|||
|
|
enOnExitFuben = 3, //玩家离开Boss副本
|
|||
|
|
enOnEntityDeath = 4, //副本实体死亡
|
|||
|
|
enOnEntityAttacked = 5, //--副本实体收到伤害[副本指针,受击者,攻击者]
|
|||
|
|
enOnReqData = 6, //--boss数据
|
|||
|
|
enOnCancelBL = 7,//--取消归属
|
|||
|
|
enOnSetBossBL = 8,//--设置归属
|
|||
|
|
enCheckEnterFuben = 9,//--进入副本检查
|
|||
|
|
enFubenFinish = 10, //--活动副本结束 [, 副本指针,结果, pOwner] 1为完成,0为失败,nil则结果未知(需要对应副本设置结果)
|
|||
|
|
enReqEnterFuben = 11, //--请求进入副本 [玩家指针, bossid]
|
|||
|
|
};
|
|||
|
|
typedef CEntitySubSystem<enBossSystemID, CBossSystem, CActor> Inherit;
|
|||
|
|
|
|||
|
|
//最多记录boss条数
|
|||
|
|
#define MAXBOSSGROWROW 10
|
|||
|
|
|
|||
|
|
CBossSystem();
|
|||
|
|
~CBossSystem();
|
|||
|
|
|
|||
|
|
//覆盖父类函数
|
|||
|
|
|
|||
|
|
bool Initialize(void *data,SIZE_T size);
|
|||
|
|
|
|||
|
|
VOID ProcessNetData(INT_PTR nCmd,CDataPacketReader &packet );
|
|||
|
|
|
|||
|
|
void OnTimeCheck(TICKCOUNT nTickCount);
|
|||
|
|
|
|||
|
|
void Save(PACTORDBDATA pData);
|
|||
|
|
|
|||
|
|
|
|||
|
|
//请求boss信息
|
|||
|
|
void RequestBossInfo(CDataPacketReader & packet);
|
|||
|
|
|
|||
|
|
//请求一个boss信息
|
|||
|
|
void RequestOneBossInfo(CDataPacketReader & packet);
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* Comments:BOSS副本操作
|
|||
|
|
* Param CDataPacketReader & packet:
|
|||
|
|
* @Return void:
|
|||
|
|
*/
|
|||
|
|
void BossFubenOpt(CDataPacketReader & packet);
|
|||
|
|
|
|||
|
|
//静态方法
|
|||
|
|
|
|||
|
|
//获取怪的成长信息
|
|||
|
|
static int GetMonsGrowInfo(int nMonsterId, int & nGrowLv, int & nCurExp);
|
|||
|
|
//发送神装boss 剩余次数
|
|||
|
|
void SendSZBossTimes(int nLevel = 0);
|
|||
|
|
void OnEnterGame();
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* Comments:更新boss的成长,添加击杀人
|
|||
|
|
* Param int nMonsterId:怪的id
|
|||
|
|
* Param LPCTSTR sName:击杀者名称
|
|||
|
|
* Param PMONSTERCONFIG pConfig:怪的配置
|
|||
|
|
* @Return int:返回成长等级
|
|||
|
|
*/
|
|||
|
|
static int OnKillGrowBoss(int nMonsterId, LPCTSTR sName, PMONSTERCONFIG pConfig = NULL);
|
|||
|
|
//进入boss系统快传+1
|
|||
|
|
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
void SendWildBossSts();
|
|||
|
|
void SendWorldBossSts();
|
|||
|
|
void SendBossLastKillTime( WORD nBossId ); //下发BOSS最近一次被击杀的时间(服务器启动后)
|
|||
|
|
void TeleportToBoss(int nBossId);
|
|||
|
|
void AnheiBossInfo(unsigned char nIndex);
|
|||
|
|
|
|||
|
|
};
|