📄 herosyndicate.cpp
字号:
{
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 + -