forked from metin2/server
62 lines
2.0 KiB
C
62 lines
2.0 KiB
C
|
#ifndef __PRIV_MANAGER_H
|
|||
|
#define __PRIV_MANAGER_H
|
|||
|
|
|||
|
/**
|
|||
|
* @version 05/06/08 Bang2ni - Guild privilege <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD>߰<EFBFBD>
|
|||
|
* RequestGiveGuildPriv, GiveGuildPriv <EFBFBD>Լ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* m_aPrivGuild Ÿ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü SPrivGuildData, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD> GetPrivByGuildEx <EFBFBD>߰<EFBFBD>
|
|||
|
*/
|
|||
|
class CPrivManager : public singleton<CPrivManager>
|
|||
|
{
|
|||
|
public:
|
|||
|
CPrivManager();
|
|||
|
|
|||
|
void RequestGiveGuildPriv(DWORD guild_id, BYTE type, int value, time_t dur_time_sec);
|
|||
|
void RequestGiveEmpirePriv(BYTE empire, BYTE type, int value, time_t dur_time_sec);
|
|||
|
void RequestGiveCharacterPriv(DWORD pid, BYTE type, int value);
|
|||
|
|
|||
|
void GiveGuildPriv(DWORD guild_id, BYTE type, int value, BYTE bLog, time_t end_time_sec);
|
|||
|
void GiveEmpirePriv(BYTE empire, BYTE type, int value, BYTE bLog, time_t end_time_sec);
|
|||
|
void GiveCharacterPriv(DWORD pid, BYTE type, int value, BYTE bLog);
|
|||
|
|
|||
|
void RemoveGuildPriv(DWORD guild_id, BYTE type);
|
|||
|
void RemoveEmpirePriv(BYTE empire, BYTE type);
|
|||
|
void RemoveCharacterPriv(DWORD pid, BYTE type);
|
|||
|
|
|||
|
int GetPriv(LPCHARACTER ch, BYTE type);
|
|||
|
int GetPrivByEmpire(BYTE bEmpire, BYTE type);
|
|||
|
int GetPrivByGuild(DWORD guild_id, BYTE type);
|
|||
|
int GetPrivByCharacter(DWORD pid, BYTE type);
|
|||
|
|
|||
|
public:
|
|||
|
struct SPrivEmpireData
|
|||
|
{
|
|||
|
int m_value;
|
|||
|
time_t m_end_time_sec;
|
|||
|
};
|
|||
|
|
|||
|
SPrivEmpireData* GetPrivByEmpireEx(BYTE bEmpire, BYTE type);
|
|||
|
|
|||
|
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ʽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
struct SPrivGuildData
|
|||
|
{
|
|||
|
int value; ///< <20><><EFBFBD>ʽ<EFBFBD> <20><>ġ
|
|||
|
time_t end_time_sec; ///< <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD>
|
|||
|
};
|
|||
|
|
|||
|
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ʽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD>.
|
|||
|
/**
|
|||
|
* @param [in] dwGuildID <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
|
|||
|
* @param [in] byType <EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD> Ÿ<EFBFBD><EFBFBD>
|
|||
|
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>ش<EFBFBD><EFBFBD>ϴ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD> Ÿ<EFBFBD>ٰ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL
|
|||
|
*/
|
|||
|
const SPrivGuildData* GetPrivByGuildEx( DWORD dwGuildID, BYTE byType ) const;
|
|||
|
|
|||
|
private:
|
|||
|
SPrivEmpireData m_aakPrivEmpireData[MAX_PRIV_NUM][EMPIRE_MAX_NUM];
|
|||
|
std::map<DWORD, SPrivGuildData> m_aPrivGuild[MAX_PRIV_NUM];
|
|||
|
std::map<DWORD, int> m_aPrivChar[MAX_PRIV_NUM];
|
|||
|
};
|
|||
|
#endif
|