📄 party.h
字号:
#ifndef __PARTY_H__
#define __PARTY_H__
#pragma once
#include <SolarHashTable.h>
struct MSG_BASE_FORWARD;
class Player;
struct PARTY_MEMBER_INFO;
class Party
{
friend class PartyManager;
public:
Party();
~Party();
VOID Init( DWORD dwMasterUserKey );
BOOL Join( Player * pPlayer );
BOOL Leave( DWORD dwObjKey );
VOID ChangeMaster( DWORD dwNewMasterUserKey );
inline VOID SetPartyKey( WORD wPartyKey ) { m_wPartyKey = wPartyKey; }
inline WORD GetPartyKey() { return m_wPartyKey; }
inline DWORD GetMasterUserKey() { return m_dwMasterUserKey; }
inline DWORD GetMasterObjKey() { return m_dwMasterObjKey; }
inline DWORD GetMemberNum() { return m_pMemberHashTable->GetDataNum(); }
inline LEVELTYPE GetTotalLevel() { return m_dwTotalLevel; }
DWORD FindNextMaster();
Player* GetMemberInfo( char *pszName );
Player* GetMemberInfo( DWORD dwObjKey ) { return m_pMemberHashTable->GetData( dwObjKey ); }
VOID GetMemberInfoAll( PARTY_MEMBER_INFO *pMemberInfoAll );
VOID SetDistributionType( eITEM_DISTRIBUTION_TYPE eType ) { m_eDistributionType = eType; }
eITEM_DISTRIBUTION_TYPE GetDistributionType() { return m_eDistributionType; }
BOOL SendPacketAll( MSG_BASE_FORWARD * pMsg, WORD wSize );
BOOL SendPacketExceptMe( DWORD dwObjKey, MSG_BASE_FORWARD * pMsg, WORD wSize );
VOID MemberLevelUp( DWORD dwObjKey );
template <class MemberOperator>
VOID ForEachMember( MemberOperator & Opr );
inline VOID SetTargetObjKeyOfParty( DWORD dwObjKey ) { m_dwTargetObjKeyOfParty = dwObjKey; }
inline DWORD GetTargetObjKeyOfParty() { return m_dwTargetObjKeyOfParty; }
private:
BOOL CanJoin( DWORD dwObjKey );
VOID SetNpcHpOfField();
private:
WORD m_wPartyKey; // 颇萍虐
DWORD m_dwMasterUserKey; // 颇萍厘 蜡历虐
DWORD m_dwMasterObjKey; // 颇萍厘 坷宏璃飘虐
SolarHashTable<Player *> * m_pMemberHashTable; // 颇萍盔 府胶飘
LEVELTYPE m_dwTotalLevel; // 颇萍盔 配呕 饭骇
eITEM_DISTRIBUTION_TYPE m_eDistributionType; // 酒捞袍 盒硅规侥
DWORD m_dwTargetObjKeyOfParty; // 颇萍狼 鸥百 坷宏璃飘虐
};
template<class MemberOperator>
VOID Party::ForEachMember( MemberOperator & Opr )
{
Player * pMember = NULL;
m_pMemberHashTable->SetFirst();
while( ( pMember = m_pMemberHashTable->GetNext() ) != NULL )
{
Opr( pMember );
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -