⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 party.h

📁 墨香最新私服
💻 H
字号:
// Party.h: interface for the CParty class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PARTY_H__87E3B123_4418_45C7_B287_81730C428C79__INCLUDED_)
#define AFX_PARTY_H__87E3B123_4418_45C7_B287_81730C428C79__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Player.h"
class CDistributeWay;
class MONSTEREX_LIST;
template <class T> void swap(T& x, T& y) 
{ 
	T temp = x;
	x = y;
	y = temp;
}
struct PARTYMEMBER
{    
	PARTYMEMBER()	
	{
		MemberID = 0;
		Name[0] = 0;
		bLogged = FALSE;
		LifePercent = 0;
		ShieldPercent = 0;
		NaeRyukPercent = 0;
		Level = 0;
	}
	void SetMember(DWORD AddMemberID,char* strName,CPlayer* pPlayer, LEVELTYPE lvl)
	{
		MemberID = AddMemberID;
		//strcpy(this->Name,strName);
		SafeStrCpy(this->Name,strName, MAX_NAME_LENGTH+1);
		
		Level = lvl;
		if(pPlayer)
		{
			bLogged = TRUE;
			NaeRyukPercent = pPlayer->GetNaeRyukPercent();
			ShieldPercent = pPlayer->GetShieldPercent();
			LifePercent = pPlayer->GetLifePercent();
		}
		else
		{
			bLogged = FALSE;
			NaeRyukPercent = 0;
			ShieldPercent = 0;
			LifePercent = 0;
		}
	}
	void SetLevel(LEVELTYPE lvl)
	{
		Level = lvl;
	}

	char Name[MAX_NAME_LENGTH+1];
	DWORD MemberID;
	BOOL bLogged;
	BYTE LifePercent;
	BYTE ShieldPercent;
	BYTE NaeRyukPercent;
	LEVELTYPE Level;
};

class CParty
{
	DWORD m_PartyIDx;
	PARTYMEMBER m_Member[MAX_PARTY_LISTNUM];
	DWORD m_TacticObjectID;
	BYTE m_Option;
	DWORD m_OldSendtime;

	CDistributeWay* m_pDistributeWay;

	CParty(DWORD id,DWORD MasterID,char* strMasterName,CPlayer* pMaster,BYTE Option);
	~CParty();

	void SendPartyInfo(CPlayer* pToPlayer);
public:
	BOOL AddPartyMember(DWORD AddMemberID,char* Name,CPlayer* pPlayer,LEVELTYPE lvl);
	BOOL RemovePartyMember(DWORD MemberID);
	BOOL ChangeMaster(DWORD FromID,DWORD ToID);
	BOOL IsPartyMember(DWORD PlayerID);
	BOOL IsMemberLogIn(int n);

	void SetMaster(CPlayer* pMaster);
	void SetOption(BYTE Option);
	BYTE GetOption();
	

	void UserLogIn(CPlayer* pPlayer,BOOL bNotifyUserLogin);
	void UserLogOut(DWORD PlayerID);
	void SendMsgUserLogOut(DWORD PlayerID);
	
	void SendMsgLoginMemberInfo(SEND_PARTY_MEMBER_INFO* msg, DWORD GridID);

	void SendMsgToAll(MSGBASE* msg, int size);
	void SendMsgExceptOne(MSGBASE* msg, int size, DWORD PlayerID);

	DWORD GetPartyIdx()	{	return m_PartyIDx;	}
	DWORD GetMemberID(int n)	{	return m_Member[n].MemberID; }
	DWORD GetMasterID()			{ return m_Member[0].MemberID;	}
	char* GetMemberName(DWORD MemberID);

	DWORD GetFirstOnlineMemberID();

	void SetTacticObjectID(DWORD TacticObjID) { m_TacticObjectID = TacticObjID; 	}
	DWORD GetTacticObjectID() { return m_TacticObjectID;	}
	
	void BreakUp();

	void GetMemberInfo(int n,PARTY_MEMBER* pRtInfo);
	void NotifyUserLogIn(SEND_CHANGE_PARTY_MEMBER_INFO* pmsg);
	void SendMemberLogInMsg(DWORD PlayerID);
	void NotifyMemberLogin(DWORD PlayerID);
	void SendPlayerInfoToOtherMembers(int n, DWORD GridID);
	int SetMemberInfo(DWORD MemberID, char* strName, CPlayer* pPlayer, LEVELTYPE lvl, BOOL bLog);
	
	void SetMasterChanging(BOOL val);
	BOOL IsMasterChanging(CPlayer* pPlayer, BYTE Protocol);
	void SendMsgExceptOneinChannel(MSGBASE* msg, int size, DWORD PlayerID, DWORD GridID);

	friend class CPartyManager;
	
	//level
	void SetMemberLevel(DWORD PlayerID, LEVELTYPE lvl);
	void SendMemberPos(DWORD MoverID, BASEMOVE_INFO* pMoveInfo);

	void SendAbil(LEVELTYPE MonsterLevel, PARTY_RECEIVE_MEMBER* pMemberInfo);
	void SendItem(PARTY_RECEIVE_MEMBER* pRealMember, WORD DropItemId, DWORD DropItemRatio, MONSTEREX_LIST * pMonInfo, WORD MonsterKind);
private:
	BOOL m_MasterChanging;
};

#endif // !defined(AFX_PARTY_H__87E3B123_4418_45C7_B287_81730C428C79__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -