本文整理汇总了C++中PlayerCreature::setGuildID方法的典型用法代码示例。如果您正苦于以下问题:C++ PlayerCreature::setGuildID方法的具体用法?C++ PlayerCreature::setGuildID怎么用?C++ PlayerCreature::setGuildID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PlayerCreature
的用法示例。
在下文中一共展示了PlayerCreature::setGuildID方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
//----------------------------------------------------------------------
//
// SGModifyGuildOKHandler::execute()
//
//----------------------------------------------------------------------
void SGModifyGuildOKHandler::execute (SGModifyGuildOK* pPacket )
throw(ProtocolException , Error )
{
__BEGIN_TRY __BEGIN_DEBUG_EX
#ifdef __GAME_SERVER__
Guild* pGuild = g_pGuildManager->getGuild(pPacket->getGuildID());
Assert(pGuild != NULL);
if (pGuild->getState() == Guild::GUILD_STATE_WAIT && pPacket->getGuildState() == Guild::GUILD_STATE_ACTIVE )
{
/////////////////////////////////////////////////////////////
// 존 추가
/////////////////////////////////////////////////////////////
/* if (pGuild->getServerGroupID() == g_pConfig->getPropertyInt("ServerID" ) )
{
// 이 게임 서버에 길드 아지트를 만든다.
//////////////
// Zone Info
//////////////
ZoneInfo* pZoneInfo = new ZoneInfo();
pZoneInfo->setZoneID(pGuild->getZoneID());
pZoneInfo->setZoneGroupID(2);
pZoneInfo->setZoneType("NPC_SHOP");
pZoneInfo->setZoneLevel(0);
pZoneInfo->setZoneAccessMode("PUBLIC");
pZoneInfo->setZoneOwnerID("");
pZoneInfo->setPayPlay("");
if (pGuild->getRace() == Guild::GUILD_RACE_SLAYER )
{
pZoneInfo->setSMPFilename("team_hdqrs.smp");
pZoneInfo->setSSIFilename("team_hdqrs.ssi");
string Name = "team - " + pGuild->getName();
pZoneInfo->setFullName(Name);
pZoneInfo->setShortName(Name);
}
else if (pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE )
{
pZoneInfo->setSMPFilename("clan_hdqrs.smp");
pZoneInfo->setSSIFilename("clan_hdqrs.ssi");
string Name = "clan - " + pGuild->getName();
pZoneInfo->setFullName(Name);
pZoneInfo->setShortName(Name);
}
g_pZoneInfoManager->addZoneInfo(pZoneInfo);
/////////
// Zone
/////////
Zone* pZone = new Zone(pGuild->getZoneID());
Assert(pZone != NULL);
ZoneGroup* pZoneGroup = g_pZoneGroupManager->getZoneGroup(2);
Assert(pZoneGroup != NULL);
pZone->setZoneGroup(pZoneGroup);
pZoneGroup->addZone(pZone);
pZone->init();
}
*/
// 정식 길드로 변경
pGuild->setState(Guild::GUILD_STATE_ACTIVE);
HashMapGuildMember& Members = pGuild->getMembers();
HashMapGuildMemberItor itr = Members.begin();
for (; itr != Members.end(); itr++ )
{
GuildMember* pGuildMember = itr->second;
// 멤버가 접속해 있다면
__ENTER_CRITICAL_SECTION((*g_pPCFinder))
Creature* pCreature = g_pPCFinder->getCreature_LOCKED(pGuildMember->getName());
if (pCreature != NULL && pCreature->isPC() )
{
Player* pPlayer = pCreature->getPlayer();
Assert(pPlayer != NULL);
PlayerCreature* pPlayerCreature = dynamic_cast<PlayerCreature*>(pCreature);
Assert(pPlayerCreature != NULL);
// 길드 아이디를 바꿔준다.
pPlayerCreature->setGuildID(pGuild->getID());
// 클라이언트에 길드 아이디가 바꼈음을 알려준다.
GCModifyGuildMemberInfo gcModifyGuildMemberInfo;
gcModifyGuildMemberInfo.setGuildID(pGuild->getID());
gcModifyGuildMemberInfo.setGuildName(pGuild->getName());
gcModifyGuildMemberInfo.setGuildMemberRank(pGuildMember->getRank());
pPlayer->sendPacket(&gcModifyGuildMemberInfo);
//.........这里部分代码省略.........
示例2: execute
//----------------------------------------------------------------------
//
// SGDeleteGuildOKHandler::execute()
//
//----------------------------------------------------------------------
void SGDeleteGuildOKHandler::execute (SGDeleteGuildOK* pPacket )
throw(ProtocolException , Error )
{
__BEGIN_TRY
#ifdef __GAME_SERVER__
// 길드 아지트에 있는 멤버를 warp 시킨다.
// 길드 아지트를 삭제한다.
// 멤버 warp와 길드 아지트 삭제 시 다른 쓰레드에서 ZoneGroup Thread 내부에서 일어나게 해야 별탈이 없을 듯 하다.
// 일단은 걍 둔다. Portal 이 막히므로 다시 들어갈 수 없을 것이다.
Assert(pPacket != NULL);
// 길드를 가져온다.
Guild* pGuild = g_pGuildManager->getGuild(pPacket->getGuildID());
try { Assert(pGuild != NULL); } catch (Throwable& ) { return; }
// 길드 활동 중인 상태에서의 해체인지 대기 중인 상태에서의 해체인지 구별한다.
if (pGuild->getState() == Guild::GUILD_STATE_ACTIVE )
{
HashMapGuildMember& Members = pGuild->getMembers();
HashMapGuildMemberItor itr = Members.begin();
for (; itr != Members.end(); itr++ )
{
GuildMember* pGuildMember = itr->second;
// 접속해 있으면
__ENTER_CRITICAL_SECTION((*g_pPCFinder))
Creature* pCreature = g_pPCFinder->getCreature_LOCKED(pGuildMember->getName());
if (pCreature != NULL && pCreature->isPC() )
{
Player* pPlayer = pCreature->getPlayer();
Assert(pPlayer != NULL);
PlayerCreature* pPlayerCreature = dynamic_cast<PlayerCreature*>(pCreature);
Assert(pPlayerCreature != NULL);
// Slayer, Vampire 의 길드 아이디를 바꾼다.
if (pPlayerCreature->isSlayer() )
{
pPlayerCreature->setGuildID(99); // 슬레이어 가입안한 상태의 길드 ID
// 클라이언트에 길드 아이디가 바꼈음을 알린다.
GCModifyGuildMemberInfo gcModifyGuildMemberInfo;
gcModifyGuildMemberInfo.setGuildID(pPlayerCreature->getGuildID());
gcModifyGuildMemberInfo.setGuildName("");
gcModifyGuildMemberInfo.setGuildMemberRank(GuildMember::GUILDMEMBER_RANK_DENY);
pPlayer->sendPacket(&gcModifyGuildMemberInfo);
}
else if (pPlayerCreature->isVampire() )
{
pPlayerCreature->setGuildID(0); // 뱀파이어 가입안한 상태의 길드 ID
// 클라이언트에 길드 아이디가 바꼈음을 알린다.
GCModifyGuildMemberInfo gcModifyGuildMemberInfo;
gcModifyGuildMemberInfo.setGuildID(pPlayerCreature->getGuildID());
gcModifyGuildMemberInfo.setGuildName("");
gcModifyGuildMemberInfo.setGuildMemberRank(GuildMember::GUILDMEMBER_RANK_DENY);
pPlayer->sendPacket(&gcModifyGuildMemberInfo);
}
else if (pPlayerCreature->isOusters() )
{
pPlayerCreature->setGuildID(66); // 아우스터즈 가입안한 상태의 길드 ID
// 클라이언트에 길드 아이디가 바꼈음을 알린다.
GCModifyGuildMemberInfo gcModifyGuildMemberInfo;
gcModifyGuildMemberInfo.setGuildID(pPlayerCreature->getGuildID());
gcModifyGuildMemberInfo.setGuildName("");
gcModifyGuildMemberInfo.setGuildMemberRank(GuildMember::GUILDMEMBER_RANK_DENY);
pPlayer->sendPacket(&gcModifyGuildMemberInfo);
}
// 주위에 클라이언트에 길드 아이디가 바꼈음을 알린다.
GCOtherModifyInfo gcOtherModifyInfo;
gcOtherModifyInfo.setObjectID(pCreature->getObjectID());
gcOtherModifyInfo.addShortData(MODIFY_GUILDID, pPlayerCreature->getGuildID());
Zone* pZone = pCreature->getZone();
Assert(pZone != NULL);
pZone->broadcastPacket(pCreature->getX(), pCreature->getY(), &gcOtherModifyInfo, pCreature);
}
__LEAVE_CRITICAL_SECTION((*g_pPCFinder))
// Guild Member 객체를 삭제한다.
SAFE_DELETE(pGuildMember);
}
// 길드 멤버 맵을 삭제한다.
Members.clear();
//.........这里部分代码省略.........