本文整理汇总了C++中CGuild::GetInfo方法的典型用法代码示例。如果您正苦于以下问题:C++ CGuild::GetInfo方法的具体用法?C++ CGuild::GetInfo怎么用?C++ CGuild::GetInfo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGuild
的用法示例。
在下文中一共展示了CGuild::GetInfo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddUnionEnemyToGuild
void CGuildWarManager::AddUnionEnemyToGuild( CGuildUnion* friendlyUnion, CGuild* friendlyGuild )
{
MSG_GUILD_LIST messageToFriendly;
MSG_GUILD_LIST messageToEnemey;
{
messageToFriendly.Category = MP_GUILD_WAR;
messageToFriendly.Protocol = MP_GUILD_WAR_START;
messageToFriendly.mSize = 0;
messageToEnemey.Category = MP_GUILD_WAR;
messageToEnemey.Protocol = MP_GUILD_WAR_START;
messageToEnemey.mSize = 1;
MSG_GUILD_LIST::Data& dest = messageToEnemey.mData[ 0 ];
const GUILDINFO& source = friendlyGuild->GetInfo();
// 올바로 복사되는지 꼭 검사할 것
memcpy( &dest, &source, sizeof( source ) );
// 중간에 참전했으므로 선포금이 없다
dest.MarkName = 0;
CGuildUnion* alliance = GUILDUNIONMGR->GetUnion( source.UnionIdx );
if( alliance )
{
SafeStrCpy( dest.mUnionName, alliance->GetName(), sizeof( dest.mUnionName ) );
}
else
{
dest.mUnionName[ 0 ] = 0;
}
}
const DWORD friendlyGuildIndex = friendlyGuild->GetIdx();
std::list< sGFWENEMY* > enemeyList;
GetEnemy( friendlyUnion->GetMasterGuildIdx(), enemeyList );
// 적대 길드 목록을 메시지에 담고, 신입 길드 또한 적 길드로 하여금 등록하게 한다.
for( std::list< sGFWENEMY* >::const_iterator it = enemeyList.begin(); enemeyList.end() != it; ++it )
{
const sGFWENEMY* enemyData = *it;
const DWORD enemyGuildIndex = enemyData->dwEnemyGuildIdx;
CGuild* enemyGuild = GUILDMGR->GetGuild( enemyGuildIndex );
if( ! enemyGuild )
{
ASSERT( 0 );
continue;
}
// 적대 길드 정보를 담는다
// 신입 길드를 적으로 등록하도록 모든 적대 길드에게 보낸다.
{
MSG_GUILD_LIST::Data& dest = messageToFriendly.mData[ messageToFriendly.mSize++ ];
const GUILDINFO& source = enemyGuild->GetInfo();
// 제대로 복사되나 테스트할 것
memcpy( &dest, &source, sizeof( source ) );
// 중간에 참전하여 선포금이 없다
dest.MarkName = 0;
CGuildUnion* alliance = GUILDUNIONMGR->GetUnion( source.UnionIdx );
if( alliance )
{
SafeStrCpy( dest.mUnionName, alliance->GetName(), sizeof( dest.mUnionName ) );
}
else
{
dest.mUnionName[ 0 ] = 0;
}
enemyGuild->SendMsgToAll( &messageToEnemey, messageToEnemey.GetSize() );
}
// DB와 메모리에도 저장한다
{
InsertGuildWar( friendlyGuildIndex, enemyGuildIndex, 0 );
RegistGuildWar( friendlyGuildIndex, enemyGuildIndex, 0 );
}
// 다른 맵에도 등록하게 한다.
{
MSG_DWORD3 message;
message.Category = MP_GUILD_WAR;
message.Protocol = MP_GUILD_WAR_START_NOTIFY_TOMAP;
message.dwData1 = friendlyGuildIndex;
message.dwData2 = enemyGuildIndex;
message.dwData3 = 0;
g_Network.Send2AgentServer( ( char* )&message, sizeof( message ) );
}
}
if( messageToFriendly.mSize )
{
// 적대 길드 목록을 다 담은 후 신입 길드에게도 보낸다
//.........这里部分代码省略.........
示例2: AddEnemyToFriendly
void CGuildWarManager::AddEnemyToFriendly( Alliance& friendlyMap, Alliance& enemyMap )
{
MSG_GUILD_LIST messageToClient;
messageToClient.Category = MP_GUILD_WAR;
messageToClient.Protocol = MP_GUILD_WAR_START;
messageToClient.mSize = 0;
// 길드 1의 적(길드2) 전체 정보를 넣는다
for( Alliance::iterator it = enemyMap.begin(); enemyMap.end() != it; ++it )
{
CGuild* enemy = it->first;
const MONEYTYPE money = it->second;
if( ! enemy )
{
ASSERT( 0 );
continue;
}
MSG_GUILD_LIST::Data& dest = messageToClient.mData[ messageToClient.mSize++ ];
const GUILDINFO& source = enemy->GetInfo();
// 제대로 복사되나 꼭 확인하자. 좀 위험한 코드
memcpy( &dest, &source, sizeof( source ) );
dest.MarkName = money;
CGuildUnion* allianace = GUILDUNIONMGR->GetUnion( source.UnionIdx );
if( allianace )
{
SafeStrCpy( dest.mUnionName, allianace->GetName(), sizeof( dest.mUnionName ) );
}
else
{
dest.mUnionName[ 0 ] = 0;
}
}
MSG_DWORD3 messageToAgent;
messageToAgent.Category = MP_GUILD_WAR;
messageToAgent.Protocol = MP_GUILD_WAR_START_NOTIFY_TOMAP;
// 길드 2의 적, 즉 길드 1의 편 전부에게 보낸다.
for( Alliance::iterator it = friendlyMap.begin(); friendlyMap.end() != it; ++it )
{
CGuild* friendly = it->first;
const MONEYTYPE friendlyMoney = it->second;
if( ! friendly )
{
ASSERT( 0 );
continue;
}
friendly->SendMsgToAll( &messageToClient, messageToClient.GetSize() );
// 아군 길드 각각이 상대 길드들을 적으로 등록하게 한다.
for( Alliance::iterator inner = enemyMap.begin(); enemyMap.end() != inner; ++inner )
{
CGuild* enemy = inner->first;
const MONEYTYPE enemyMoney = inner->second;
if( ! enemy )
{
ASSERT( 0 );
continue;
}
// 두 길드 모두 선포금을 지니고 있을때만 돈을 업데이트해야한다. 그렇지 않은 길드는 선포금을 건 당사자가 아니다.
const MONEYTYPE money = ( friendlyMoney && enemyMoney ? friendlyMoney : 0 ) ;
InsertGuildWar( friendly->GetIdx(), enemy->GetIdx(), money );
RegistGuildWar( friendly->GetIdx(), enemy->GetIdx(), money );
// 다른 맵에도 등록하게 한다.
{
messageToAgent.dwData1 = friendly->GetIdx();
messageToAgent.dwData2 = enemy->GetIdx();
messageToAgent.dwData3 = money;
g_Network.Send2AgentServer( (char*)&messageToAgent, sizeof( messageToAgent ) );
}
}
}
}