2024-12-21 10:04:04 +08:00
|
|
|
|
#if defined(PRE_ADD_TOTAL_LEVEL_SKILL)
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "Singleton.h"
|
|
|
|
|
|
|
|
|
|
|
|
class CDnTotalLevelSkillSystem
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CDnTotalLevelSkillSystem(DnActorHandle hActor);
|
|
|
|
|
|
virtual ~CDnTotalLevelSkillSystem();
|
|
|
|
|
|
|
|
|
|
|
|
enum _TotalLevelSkillType
|
|
|
|
|
|
{
|
|
|
|
|
|
TotalLevelSkill_Type_None = -1,
|
|
|
|
|
|
TotalLevelSkill_Type_Attack = 0,
|
|
|
|
|
|
TotalLevelSkill_Type_Defence,
|
|
|
|
|
|
TotalLevelSkill_Type_Ability,
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
enum _TotalLevelSkillSlotIndex
|
|
|
|
|
|
{
|
|
|
|
|
|
TotalLevelSkill_Slot_0,
|
|
|
|
|
|
TotalLevelSkill_Slot_1,
|
|
|
|
|
|
TotalLevelSkill_Slot_2,
|
|
|
|
|
|
TotalLevelSkill_Slot_3, //ij<><C4B3> <20><><EFBFBD><EFBFBD>.
|
|
|
|
|
|
TotallevelSkill_Slot_Count,
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
enum _ErrorCode
|
|
|
|
|
|
{
|
|
|
|
|
|
TotalLevelSystem_Error_None = 0,
|
|
|
|
|
|
TotalLevelSystem_Error_NotUsable,
|
|
|
|
|
|
TotalLevelSystem_Error_NotActivateSlot,
|
|
|
|
|
|
TotalLevelSystem_Error_SameSkillType,
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct _TotalLevelSkillInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
int m_TotalLevelLimit;
|
|
|
|
|
|
int m_ActorLevelLimit;
|
|
|
|
|
|
int m_SkillType;
|
|
|
|
|
|
int m_SkillTreeSlotIndex;
|
|
|
|
|
|
|
|
|
|
|
|
int m_SkillID;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct _TotalLevelSkillSlotInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
int m_LevelLimit;
|
|
|
|
|
|
int m_SlotIndex;
|
|
|
|
|
|
bool m_isCashSlot;
|
|
|
|
|
|
__time64_t m_ExpireDate;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
DnActorHandle m_hActor; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
vector<DnSkillHandle> m_vlTotalLevelSkillList;
|
|
|
|
|
|
|
|
|
|
|
|
std::map<int, _TotalLevelSkillInfo> m_TotalLevelSkillInfoList; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::map<int, _TotalLevelSkillSlotInfo> m_TotalLevelSlotInfoList; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
std::map<int, bool> m_TotalLevelSkillSlotActivate; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ȱ<><C8B0>ȭ <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::map<int, DnSkillHandle> m_ActiveTotalLevelSkillList; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
int m_TotalLevel; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ
|
|
|
|
|
|
|
|
|
|
|
|
void RemoveTotalLevelSkillFromList(int slotIndex);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
std::map<int, bool>& GetSlotActivateList() { return m_TotalLevelSkillSlotActivate; }
|
|
|
|
|
|
_TotalLevelSkillSlotInfo* GetSlotInfo(int nSlotIndex);
|
|
|
|
|
|
|
|
|
|
|
|
vector<DnSkillHandle>& GetTotalLevelSkillList() { return m_vlTotalLevelSkillList; }
|
|
|
|
|
|
_TotalLevelSkillInfo* GetTotalLevelSkillInfo(int nSkillID);
|
|
|
|
|
|
|
|
|
|
|
|
void LoadTotalLevelSkillList();
|
|
|
|
|
|
void LoadTotalLevelSkillSlotInfo();
|
|
|
|
|
|
|
|
|
|
|
|
DnSkillHandle FindTotalLevelSkill( int nSkillTableID );
|
|
|
|
|
|
bool IsTotalLevelSkill( int nSkillTableID );
|
|
|
|
|
|
|
|
|
|
|
|
bool IsActivateSlot(int nSlotIndex);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD>..
|
|
|
|
|
|
void AddTotalLevelSkill(int slotIndex, DnSkillHandle hSkill, bool isInitialize = false);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
void RemoveTotallevelSkill(int slotIndex);
|
|
|
|
|
|
//<2F><><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3> <20><>ȯ
|
|
|
|
|
|
DnSkillHandle GetActivateTotalLevelSkill(int slotIndex);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD> Ȱ<><C8B0>ȭ <20><><EFBFBD><EFBFBD>.
|
|
|
|
|
|
void ActivateTotalLevelSkillSlot(int slotIndex, bool bActivate);
|
|
|
|
|
|
//ij<><C4B3> <20><><EFBFBD><EFBFBD> Ȱ<><C8B0>ȭ <20><><EFBFBD><EFBFBD>..
|
|
|
|
|
|
void ActivateTotalLevelSkillCashSlot(int nSlotIndex, bool bActivate, __time64_t tExpireDate);
|
|
|
|
|
|
|
|
|
|
|
|
void SetTotalLevel(int totalLevel);
|
|
|
|
|
|
int GetTotalLevel() { return m_TotalLevel; }
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ų <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD>.
|
|
|
|
|
|
int CanAddSkill(int slotIndex, DnSkillHandle hSkill);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3> Ȱ<><C8B0>ȭ <20>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD>..
|
|
|
|
|
|
bool IsUsableSkill(DnSkillHandle hSkill);
|
|
|
|
|
|
|
|
|
|
|
|
void UpdateTotalLevel();
|
|
|
|
|
|
|
|
|
|
|
|
void Process(LOCAL_TIME localTime, float fDelta);
|
|
|
|
|
|
|
|
|
|
|
|
int FindEmptySlot();
|
|
|
|
|
|
|
|
|
|
|
|
int FindEmptyNormalSlot(int nSkillID);
|
|
|
|
|
|
int FindEmptyCashSlot(int nSkillID);
|
|
|
|
|
|
int FindEmptySlot(int nSkillID);
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // PRE_ADD_TOTAL_LEVEL_SKILL
|