sgmodifyguildokhandler.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 172 行
CPP
172 行
//----------------------------------------------------------------------//// Filename : SGModifyGuildOKHandler.cpp// Written By : Reiot// Description :////----------------------------------------------------------------------// include files#include "SGModifyGuildOK.h"#include "Properties.h"#ifdef __GAME_SERVER__ #include "DB.h" #include "Guild.h" #include "GuildManager.h" #include "PCFinder.h" #include "Player.h" #include "PlayerCreature.h" #include "Zone.h" #include "ZoneInfoManager.h" #include "ZoneGroupManager.h" #include "Properties.h" #include "Gpackets/GCModifyGuildMemberInfo.h" #include "Gpackets/GCOtherModifyInfo.h" #include "Gpackets/GCSystemMessage.h"#endif//----------------------------------------------------------------------// // 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 ); // 林困俊 舅赴促. Zone* pZone = pCreature->getZone(); Assert( pZone != NULL ); GCOtherModifyInfo gcOtherModifyInfo; gcOtherModifyInfo.setObjectID( pCreature->getObjectID() ); gcOtherModifyInfo.addShortData( MODIFY_GUILDID, pPlayerCreature->getGuildID() ); pZone->broadcastPacket( pCreature->getX(), pCreature->getY(), &gcOtherModifyInfo, pCreature ); // 沥侥 辨靛啊 登菌澜阑 舅覆 Statement* pStmt = NULL; Result* pResult = NULL; BEGIN_DB { pStmt = g_pDatabaseManager->getConnection( "DARKEDEN" )->createStatement(); pResult = pStmt->executeQuery( "SELECT Message FROM Messages WHERE Receiver = '%s'", pGuildMember->getName().c_str() ); while ( pResult->next() ) { GCSystemMessage gcSystemMessage; gcSystemMessage.setMessage( pResult->getString(1) ); pPlayer->sendPacket( &gcSystemMessage ); } pStmt->executeQuery( "DELETE FROM Messages WHERE Receiver = '%s'", pGuildMember->getName().c_str() ); SAFE_DELETE( pStmt ); } END_DB(pStmt) } __LEAVE_CRITICAL_SECTION((*g_pPCFinder)) } }#endif __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?