本文整理汇总了C++中CKnights::GetAllianceID方法的典型用法代码示例。如果您正苦于以下问题:C++ CKnights::GetAllianceID方法的具体用法?C++ CKnights::GetAllianceID怎么用?C++ CKnights::GetAllianceID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CKnights
的用法示例。
在下文中一共展示了CKnights::GetAllianceID方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Chat
//.........这里部分代码省略.........
#endif
// Handle GM notice & announcement commands
if (type == PUBLIC_CHAT || type == ANNOUNCEMENT_CHAT)
{
// Trying to use a GM command without authorisation? Bad player!
if (!isGM())
return;
if (type == ANNOUNCEMENT_CHAT)
type = WAR_SYSTEM_CHAT;
// This is horrible, but we'll live with it for now.
// Pull the notice string (#### NOTICE : %s ####) from the database.
// Format the chat string around it, so our chat data is within the notice
g_pMain->GetServerResource(IDP_ANNOUNCEMENT, &finalstr, chatstr.c_str());
isAnnouncement = true;
}
if (isAnnouncement)
{
// GM notice/announcements show no name, so don't bother setting it.
strMessage = &finalstr; // use the formatted message from the user
bNation = KARUS; // arbitrary nation
sessID = -1;
}
else
{
strMessage = &chatstr; // use the raw message from the user
strSender = GetName(); // everything else uses a name, so set it
bNation = GetNation();
sessID = GetSocketID();
}
ChatPacket::Construct(&result, type, strMessage, &strSender, bNation, sessID);
switch (type)
{
case GENERAL_CHAT:
g_pMain->Send_NearRegion(&result, GetMap(), GetRegionX(), GetRegionZ(), GetX(), GetZ());
break;
case PRIVATE_CHAT:
{
CUser *pUser = g_pMain->GetUserPtr(m_sPrivateChatUser);
if (pUser != nullptr)
pUser->Send(&result);
} break;
case PARTY_CHAT:
if (isInParty())
g_pMain->Send_PartyMember(m_sPartyIndex, &result);
break;
case SHOUT_CHAT:
if (m_sMp < (m_iMaxMp / 5))
break;
// Characters under level 35 require 3,000 coins to shout.
if (!isGM()
&& GetLevel() < 35
&& !GoldLose(SHOUT_COIN_REQUIREMENT))
break;
MSpChange(-(m_iMaxMp / 5));
SendToRegion(&result);
break;
case KNIGHTS_CHAT:
if (isInClan())
g_pMain->Send_KnightsMember(GetClanID(), &result);
break;
case PUBLIC_CHAT:
case ANNOUNCEMENT_CHAT:
if (isGM())
g_pMain->Send_All(&result);
break;
case COMMAND_CHAT:
if (GetFame() == COMMAND_CAPTAIN)
g_pMain->Send_CommandChat(&result, m_bNation, this);
break;
case MERCHANT_CHAT:
if (isMerchanting())
SendToRegion(&result);
break;
case ALLIANCE_CHAT:
if (isInClan())
{
CKnights *pKnights = g_pMain->GetClanPtr(GetClanID());
if (pKnights != nullptr && pKnights->isInAlliance())
g_pMain->Send_KnightsAlliance(pKnights->GetAllianceID(), &result);
}
break;
case WAR_SYSTEM_CHAT:
if (isGM())
g_pMain->Send_All(&result);
break;
}
}
示例2: GetUserInfo
void CUser::GetUserInfo(Packet & pkt)
{
pkt.SByte();
pkt << GetName()
<< uint16(GetNation()) << GetClanID() << GetFame();
CKnights * pKnights = g_pMain->GetClanPtr(GetClanID());
if (pKnights == nullptr)
{
pkt << uint32(0) << uint16(0) << uint8(0) << uint16(-1) << uint32(0) << uint8(0);
}
else
{
pkt << pKnights->GetAllianceID()
<< pKnights->m_strName
<< pKnights->m_byGrade << pKnights->m_byRanking
<< uint16(pKnights->m_sMarkVersion) // symbol/mark version
<< uint16(pKnights->m_sCape) // cape ID
<< pKnights->m_bCapeR << pKnights->m_bCapeG << pKnights->m_bCapeB << uint8(0) // this is stored in 4 bytes after all.
// not sure what this is, but it (just?) enables the clan symbol on the cape
// value in dump was 9, but everything tested seems to behave as equally well...
// we'll probably have to implement logic to respect requirements.
<< uint8(1);
}
// There are two event-driven invisibility states; dispel on attack, and dispel on move.
// These are handled primarily server-side; from memory the client only cares about value 1 (which we class as 'dispel on move').
// As this is the only place where this flag is actually sent to the client, we'll just convert 'dispel on attack'
// back to 'dispel on move' as the client expects.
uint8 bInvisibilityType = m_bInvisibilityType;
if (bInvisibilityType == INVIS_DISPEL_ON_ATTACK)
bInvisibilityType = INVIS_DISPEL_ON_MOVE;
pkt << GetLevel() << m_bRace << m_sClass
<< GetSPosX() << GetSPosZ() << GetSPosY()
<< m_bFace << m_nHair
<< m_bResHpType << uint32(m_bAbnormalType)
<< m_bNeedParty
<< m_bAuthority
<< m_bPartyLeader // is party leader (bool)
<< bInvisibilityType // visibility state
<< uint8(0) // team colour (i.e. in soccer, 0=none, 1=blue, 2=red)
<< m_bIsHidingHelmet // either this is correct and items are super buggy, or it causes baldness. You choose.
<< m_sDirection // direction
<< m_bIsChicken // chicken/beginner flag
<< m_bRank // king flag
<< m_bPersonalRank << m_bKnightsRank // NP ranks (total, monthly)
<< m_sItemArray[BREAST].nNum << m_sItemArray[BREAST].sDuration << uint8(0)
<< m_sItemArray[LEG].nNum << m_sItemArray[LEG].sDuration << uint8(0)
<< m_sItemArray[HEAD].nNum << m_sItemArray[HEAD].sDuration << uint8(0)
<< m_sItemArray[GLOVE].nNum << m_sItemArray[GLOVE].sDuration << uint8(0)
<< m_sItemArray[FOOT].nNum << m_sItemArray[FOOT].sDuration << uint8(0)
<< m_sItemArray[SHOULDER].nNum << m_sItemArray[SHOULDER].sDuration << uint8(0)
<< m_sItemArray[RIGHTHAND].nNum << m_sItemArray[RIGHTHAND].sDuration << uint8(0)
<< m_sItemArray[LEFTHAND].nNum << m_sItemArray[LEFTHAND].sDuration << uint8(0)
<< m_sItemArray[CWING].nNum << m_sItemArray[CWING].sDuration << uint8(0)
<< m_sItemArray[CTOP].nNum << m_sItemArray[CTOP].sDuration << uint8(0)
<< m_sItemArray[CHELMET].nNum << m_sItemArray[CHELMET].sDuration << uint8(0)
<< m_sItemArray[CRIGHT].nNum << m_sItemArray[CRIGHT].sDuration << uint8(0)
<< m_sItemArray[CLEFT].nNum << m_sItemArray[CLEFT].sDuration << uint8(0)
<< GetZoneID() << uint8(-1) << uint8(-1) << uint16(0) << uint16(0) << uint16(0);
}
示例3: GetUserInfo
void CUser::GetUserInfo(Packet & pkt)
{
pkt.SByte();
pkt
<< GetName()
<< GetNation()
<< GetClanID()
<< GetFame();
CKnights * pKnights = g_pMain->GetClanPtr(GetClanID());
if (pKnights == nullptr)
{
//pkt /*<< uint8(0)*/ << uint16(0) << uint8(0) << uint8(0);
pkt << uint32(0) << uint16(0) << uint8(0) << uint16(-1);
}
else
{
pkt << pKnights->GetAllianceID()
<< pKnights->m_strName
<< pKnights->m_byGrade << pKnights->m_byRanking
<< uint16(pKnights->m_sMarkVersion) // symbol/mark version
<< pKnights->GetCapeID(pKnights); // cape ID
}
// There are two event-driven invisibility states; dispel on attack, and dispel on move.
// These are handled primarily server-side; from memory the client only cares about value 1 (which we class as 'dispel on move').
// As this is the only place where this flag is actually sent to the client, we'll just convert 'dispel on attack'
// back to 'dispel on move' as the client expects.
uint8 bInvisibilityType = m_bInvisibilityType;
if (bInvisibilityType != INVIS_NONE)
bInvisibilityType = INVIS_DISPEL_ON_MOVE;
pkt << GetLevel() << m_bRace << m_sClass
<< GetSPosX() << GetSPosZ() << GetSPosY()
<< m_bFace << m_nHair
<< m_bResHpType << uint32(m_bAbnormalType)//uint8(m_bAbnormalType)
<< m_bNeedParty
<< m_bAuthority
<< m_bPartyLeader // is party leader (bool)
<< bInvisibilityType // visibility state
//<< uint8(m_teamColour) // team colour (i.e. in soccer, 0=none, 1=blue, 2=red)
//<< m_bIsHidingHelmet // either this is correct and items are super buggy, or it causes baldness. You choose.
<< m_sDirection // direction
<< m_bIsChicken // chicken/beginner flag
<< m_bRank // king flag
<< m_bKnightsRank << m_bPersonalRank; // NP ranks (total, monthly)
uint8 equippedItems[] =
{
BREAST, LEG, HEAD, GLOVE, FOOT, SHOULDER, RIGHTHAND, LEFTHAND, CTOP, CHELMET
};
foreach_array(i, equippedItems)
{
_ITEM_DATA * pItem = GetItem(equippedItems[i]);
if (pItem == nullptr)
continue;
pkt << pItem->nNum << pItem->sDuration << pItem->bFlag;
}