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

📄 herosyndicate.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
📖 第 1 页 / 共 2 页
字号:
{
	if(!pszStr)
		return;
	CMsgTalk msg;
	if(msg.Create((char*)g_objHero.GetName(), "大家", pszStr, NULL, 0xffffff, _TXTATR_SYNANNOUNCEG, _TXT_NORMAL))
		msg.Send();
}
//------------------------------------------------------------------
void	CHero::QuerySynMemberList(int nIndex)
{
	if(nIndex < 0)
		nIndex = 0;
	CMsgName msg;
	if(msg.Create(NAMEACT_MEMBERLIST, NULL, nIndex))
		msg.Send();
}
//------------------------------------------------------------------
int CHero::GetSynMemberAmount()
{
	return m_setSyndicateMember.size();
}
//------------------------------------------------------------------
SynMemberInfo* CHero::GetSynMemberByIndex(int nIndex)
{
	int nAmount = m_setSyndicateMember.size();
	if(nIndex < 0 || nIndex >= nAmount)
		return NULL;
	 return m_setSyndicateMember[nIndex];
}
//------------------------------------------------------------------
void CHero::ClearSynMember()
{
	int nAmount = m_setSyndicateMember.size();
	for(int i = 0; i < nAmount; i ++)
	{
		SynMemberInfo* pInfo = m_setSyndicateMember[i];
		SAFE_DELETE(pInfo);
	}
	m_setSyndicateMember.clear();
}
//------------------------------------------------------------------
void CHero::AddSynMember(char* pszMember)
{
	if(!pszMember)
		return;
	char szTemp[256];
	SynMemberInfo* pInfo = new SynMemberInfo;
	MYASSERT(pInfo);
	sscanf(pszMember, "%s %d %d", szTemp, &pInfo->ucRank , &pInfo->bOnLine);	//6 - 2 XL CODING
	if(strlen(szTemp) < _MAX_NAMESIZE)
		strcpy(pInfo->szName, szTemp);
	else
		strcpy(pInfo->szName, "overflow");
	int i;
	for(i = 0; i < RANKAMOUNT; i++)
	{
		if(SYNDICATERANKINFOSET[i].dwRank == pInfo->ucRank)
		{
			strcpy(pInfo->szRank,g_objGameDataSet.GetStr(SYNDICATERANKINFOSET[i].idTitle));
		}
	}
	
	strcpy(pInfo->szMate, "...");

	pInfo->ucLevel = 0;
	pInfo->nProffer = 0;
	pInfo->sPk = 0;
	pInfo->ucNobilityRank = 0;
	pInfo->ucProfession = 0;

	m_setSyndicateMember.push_back(pInfo);	
}
//------------------------------------------------------------------
void CHero::KickoutSynMember(char* pszTargetName)
{
	if(!pszTargetName)
		return;
	CMsgSyndicate msg;
	if(msg.Create(KICKOUT_MEMBER, pszTargetName))
		msg.Send();
}
//------------------------------------------------------------------
void CHero::SetSynLeader(int nAction,char* pszTargetName)
{
	if (!pszTargetName)
		return;
	CMsgSyndicate msg;
	unsigned char ucAction;
	switch(nAction) 
	{
	case 1:
		ucAction = SYN_DEMISE;
		break;
	case 2:
		ucAction = SYN_SET_ASSISTANT;
		break;
	case 3:
		ucAction = SYN_SET_TEAMLEADER;
		break;
	default:
		break;
	}
	if(msg.Create(ucAction, pszTargetName))
		msg.Send();
}
//------------------------------------------------------------------
void CHero::UniteSubSyn(OBJID idSource, OBJID idTarget)
{
	// 先处理Hero的数据...
	if(g_objHero.GetSydicateID() == idSource)
	{
		g_objHero.SetSyndicateID(idTarget);
		g_objHero.SetSyndicateRank(RANK_NEWBIE);
	}
	// 处理Player的数据...
	int nAmount = g_objPlayerSet.GetPlayerAmount();
	for(int i = 0; i < nAmount; i ++)
	{
		CPlayer* pPlayer = g_objPlayerSet.GetPlayerByIndex(i);
		if(pPlayer && pPlayer->GetSydicateID() == idSource)
		{
			pPlayer->SetSyndicateID(idTarget);
		}
	}
	// update syndicate name ...
	g_objPlayerSet.UpdateSyndicateName(idTarget);
}
//------------------------------------------------------------------
void CHero::UniteSyn(OBJID idSource, OBJID idTarget)
{
	// to do...
}
//------------------------------------------------------------------
void CHero::QuerySynMember(char* pszName)
{
	if(!pszName)
		return;
	strcpy(m_objSynMemberInfo.szName, pszName);
	strcpy(m_objSynMemberInfo.szRank, "...");
	strcpy(m_objSynMemberInfo.szMate, "...");

	m_objSynMemberInfo.ucLevel = 0;
	m_objSynMemberInfo.nProffer = 0;
	m_objSynMemberInfo.sPk = 0;
	m_objSynMemberInfo.ucNobilityRank = 0;
	m_objSynMemberInfo.ucProfession = 0;

	CMsgSynMemberInfo msg;
	if(msg.Create(pszName))
		msg.Send();
}
//------------------------------------------------------------------
void CHero::AddAllySyn(OBJID idTarget)
{
	if (idTarget == 0)
		return;
	CMsgSyndicate msg;
	if (msg.Create(APPLY_ALLY,idTarget))
		msg.Send();
}
//------------------------------------------------------------------
void CHero::ClearAllySyn(char* pszName)
{
	if (!pszName)
		return;
	OBJID idSyn = g_objPlayerSet.GetSyndicateIdByName(pszName);
	if (idSyn != ID_NONE)
	{
		CMsgSyndicate msg;
		if (msg.Create(_CLEAR_ALLY,pszName))
			msg.Send();
	}
}
//------------------------------------------------------------------
void CHero::AddAntagonizeSyn(char* pszName)
{
	if (!pszName)
		return;
	CMsgSyndicate msg;
	if (msg.Create(_SET_ANTAGONIZE,pszName))
		msg.Send();
}
//------------------------------------------------------------------
void CHero::ClearAntagonizeSyn(char* pszName)
{
	if (!pszName)
		return;
	OBJID idSyn = g_objPlayerSet.GetSyndicateIdByName(pszName);
	if (idSyn != ID_NONE)
	{
		CMsgSyndicate msg;
		if (msg.Create(_CLEAR_ANTAGONIZE,pszName))
			msg.Send();	
	}
}
//------------------------------------------------------------------
void CHero::RenameSynName(char* szNowName)
{
	
}
//------------------------------------------------------------------
void CHero::QuerySpecifSynMember(OBJID idSyn,int nIndex)
{
	if (idSyn == ID_NONE)
		return;
	else
	{
		CMsgName msg;
		if(nIndex < 0)
			nIndex = 0;
		else nIndex = m_nSynListIndex;
		if(msg.Create(NAMEACT_MEMBERLIST_SPECIFYSYN,g_objPlayerSet.GetSyndicateName(idSyn) ,nIndex))
			msg.Send();
	}
}
//------------------------------------------------------------------
int  CHero::GetSynKickDocAmount()
{
	int nAmount = m_setSynKickDoc.size();
	return nAmount;
}
//------------------------------------------------------------------
void CHero::AddSynKickDoc(char* pszName)
{
	if(pszName && strlen(pszName))
		m_setSynKickDoc.push_back(pszName);
}
//------------------------------------------------------------------
void CHero::TakeInSynKickDoc(char* pszName)
{
}
//------------------------------------------------------------------
void CHero::SetSynName(int nAction,char* szName)
{
	if (szName != NULL && strlen(szName)>0) 
	{	
		unsigned short usAction;

		if (nAction == 1)
			usAction = SYN_CHANGE_SUBNAME;	
		else if (nAction == 2) 
			usAction = SYN_CHANGE_SUBSUBNAME;
		else 
			return;
		CMsgSyndicate msg;
		if (msg.Create(usAction,szName)) 
			msg.Send();
	}
}
//------------------------------------------------------------------
void CHero::MoveSynMember(char* szName,OBJID idTarget)
{
	if (szName == NULL || strlen(szName) <= 0 || idTarget == ID_NONE) 
		return;
	CMsgSyndicate msg;
	if (msg.Create(SYNMEMBER_ASSIGN,szName,idTarget))
		msg.Send();
}
//------------------------------------------------------------------
void CHero::AgreeSynKickDoc(int nIndex, BOOL bAgree)
{
	char szName[_MAX_NAMESIZE];
	int nAmount = m_setSynKickDoc.size();
	if (nIndex<nAmount)
	{
		strcpy(szName,m_setSynKickDoc[nIndex].c_str());
		if (strlen(szName)>0)
		{
			unsigned short usAction;
			if (bAgree)
				usAction = KICKOUT_MEMBER_AGREE;
			else
				usAction = KICKOUT_MEMBER_NOTAGREE;
			CMsgSyndicate msg;
			if (msg.Create(usAction,szName))
			{
				msg.Send();
				m_setSynKickDoc.erase(m_setSynKickDoc.begin()+nIndex);
			}
		}
	}
}

//------------------------------------------------------------------
const char* CHero::GetSynKickDocByIndex(int nIndex)
{
	int nAmount = m_setSynKickDoc.size();
	if (nIndex >= nAmount)
		return NULL;
	else
		return m_setSynKickDoc[nIndex].c_str();
}

//------------------------------------------------------------------
void CHero::QuerySynKickDoc()
{
	m_setSynKickDoc.clear();
	if(this->IsSynLeader())
	{
		CMsgSyndicate msg;
		if (msg.Create(KICKOUT_MEMBER_INFO_QUERY,this->GetSydicateID()))
			msg.Send();
	}
}

⌨️ 快捷键说明

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