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

📄 party.cpp

📁 墨香最新私服
💻 CPP
字号:
// Party.cpp: implementation of the CParty class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Party.h"
#include "PartyManager.h"
#include "GameIn.h"
#include "ObjectManager.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CParty::CParty()
{
//	m_PartyDBIdx = 0;
	m_TacticObjectID = 0;
	m_Option = 0;
}

CParty::~CParty()
{
	
}

void CParty::InitParty(PARTY_INFO* pInfo)
{
	m_TacticObjectID = 0;
	m_Option = 0;
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
		m_Member[n].Clear();

	HERO->SetPartyIdx(pInfo->PartyDBIdx);
	SetMaster(&pInfo->Member[0]);
	SetOption(pInfo->Option);
	for(n=1;n<MAX_PARTY_LISTNUM;++n)
	{
		if(pInfo->Member[n].dwMemberID != 0)
		{
			AddMember(&pInfo->Member[n]);
		}
	}
}
/*
void CParty::SetPartyIdx(DWORD Partyid)
{
	m_PartyDBIdx = Partyid;
	if(HERO)
		HERO->SetPartyIdx(Partyid);
}
*/
void CParty::SetMaster(PARTY_MEMBER* pMasterInfo)
{
	m_Member[0].SetInfo(pMasterInfo);
}
void CParty::SetMaster(DWORD MasterIdx,char* strName,BOOL bLog,BYTE LifePercent, BYTE ShieldPercent,BYTE NaeRyukPercent)
{
	m_Member[0].SetInfo(MasterIdx,strName,bLog,LifePercent,ShieldPercent,NaeRyukPercent);
}
/*
DWORD CParty::GetPartyIdx()
{
	return m_PartyDBIdx;
}
*/
DWORD CParty::GetMasterIdx()
{
	ASSERT(m_Member[0].GetMemberID());
	return m_Member[0].GetMemberID();
}

char* CParty::GetMasterName()
{
	ASSERT(m_Member[0].GetMemberID());
	return m_Member[0].GetMemberName();
}


void CParty::AddMember(PARTY_MEMBER* pMemberInfo) 
{
	for(int n=1;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == 0)
		{
/*
			m_Member[n].SetInfo(pMemberInfo->dwMemberID,pMemberInfo->Name,
							pMemberInfo->bLogged,
							pMemberInfo->LifePercent,
							pMemberInfo->ShieldPercent,
							pMemberInfo->NaeRyukPercent);*/
			m_Member[n].SetInfo(pMemberInfo);

			return;
		}
	}
	ASSERT(0);
}

void CParty::DelMember(DWORD id)
{
	for(int n=1;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == id)
		{
			m_Member[n].Clear();
			return;
		}
	}
	ASSERT(0);
}

void CParty::LogIn(PARTY_MEMBER* pMemberInfo)
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == pMemberInfo->dwMemberID)
		{
/*
			m_Member[n].SetInfo(pMemberInfo->dwMemberID,pMemberInfo->Name,
							pMemberInfo->bLogged,
							pMemberInfo->LifePercent, 
							pMemberInfo->ShieldPercent, 
							pMemberInfo->NaeRyukPercent);*/
			m_Member[n].SetInfo(pMemberInfo);
			return;
		}
	}
	ASSERT(0);
}

void CParty::LogOut(DWORD PlayerID)
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == PlayerID)
		{
			m_Member[n].SetLog(FALSE);
			m_Member[n].SetLifePercent(0);
			m_Member[n].SetNaeRyukPercent(0);
			return;
		}
	}
	ASSERT(0);
}

char* CParty::GetMemberName(DWORD MemberID)
{	
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == MemberID)
		{
			return m_Member[n].GetMemberName();
		}
	}

	// 绝绰 颇萍盔阑 茫栏妨 沁促.
	ASSERT(0);
	return "";
}

DWORD CParty::GetMemberID(int num)
{
	ASSERT(num < MAX_PARTY_LISTNUM);
	return m_Member[num].GetMemberID();
}

void CParty::SetMemberLifePercent(DWORD PlayerID, DWORD lifePercent)
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == PlayerID)
		{
			m_Member[n].SetLifePercent((BYTE)lifePercent);
			return;
		}
	}
	ASSERT(0);
}

BYTE CParty::GetMemberLifePercent(DWORD PlayerID)
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == PlayerID)
		{
			return (m_Member[n].GetLifePercent());
		}
	}
	ASSERT(0);
	return 0;
}

void CParty::SetMemberShieldPercent(DWORD PlayerID, DWORD ShieldPercent)
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == PlayerID)
		{
			m_Member[n].SetShieldPercent((BYTE)ShieldPercent);
			return;
		}
	}
	ASSERT(0);
}

BYTE CParty::GetMemberShieldPercent(DWORD PlayerID)
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == PlayerID)
		{
			return (m_Member[n].GetShieldPercent());
		}
	}
	ASSERT(0);
	return 0;
}

void CParty::SetMemberNaeRyukPercent(DWORD PlayerID, DWORD naeryukPercent)
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == PlayerID)
		{
			m_Member[n].SetNaeRyukPercent((BYTE)naeryukPercent);
			return;
		}
	}
	ASSERT(0);
}

void CParty::SetMemberLevel(DWORD PlayerID, LEVELTYPE lvl)
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == PlayerID)
		{
			m_Member[n].SetLevel(lvl);
			return;
		}
	}
	ASSERT(0);
}

BYTE CParty::GetMemberNaeRyukPercent(DWORD PlayerID)
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == PlayerID)
		{
			return (m_Member[n].GetNaeRyukPercent());
		}
	}
	ASSERT(0);
	return 0;
}

LEVELTYPE CParty::GetMemberLevel(DWORD PlayerID)
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == PlayerID)
		{
			return (m_Member[n].GetLevel());
		}
	}
	ASSERT(0);
	return 0;
}


void CParty::BreakUpResult()
{
	for(int n=0; n<MAX_PARTY_LISTNUM; ++n) 
	{			
		if(m_Member[n].GetMemberID() != 0)	
		{
			m_Member[n].SetInfo(0,"",0,0,0,0);
		} //if
	} //for	
}

void CParty::Clear()
{
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		m_Member[n].Clear();
	}
}

void CParty::ChangeMaster(DWORD dwPlayerID)
{
	for(int n=1;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == dwPlayerID)
		{
			//swap
			CPartyMember temp;
			memcpy(&temp,&m_Member[0],sizeof(CPartyMember));
			memcpy(&m_Member[0],&m_Member[n],sizeof(CPartyMember));
			memcpy(&m_Member[n],&temp,sizeof(CPartyMember));
			break;
		}		
	}
}

BOOL CParty::IsPartyMember(DWORD dwPlayerID)
{
	ASSERT(dwPlayerID);
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() == dwPlayerID)
			return TRUE;
	}
	return FALSE;
}

PARTY_MEMBER* CParty::GetPartyMemberInfo(int i)
{
	ASSERT(i < MAX_PARTY_LISTNUM);
	return m_Member[i].GetMemberInfo();
}

int CParty::GetMemberNum()
{
	int num=0;
	for(int n=0;n<MAX_PARTY_LISTNUM;++n)
	{
		if(m_Member[n].GetMemberID() != 0)
			++num;
	}
	return num;
}

⌨️ 快捷键说明

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