sgmodifyguildmemberokhandler.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 279 行
CPP
279 行
//----------------------------------------------------------------------//// Filename : SGModifyGuildMemberOKHandler.cpp// Written By : Reiot// Description :////----------------------------------------------------------------------// include files#include "SGModifyGuildMemberOK.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 "StringPool.h" #include "Gpackets/GCModifyGuildMemberInfo.h" #include "Gpackets/GCOtherModifyInfo.h" #include "Gpackets/GCSystemMessage.h" #include <stdio.h>#endif//----------------------------------------------------------------------// // SGModifyGuildMemberOKHandler::execute()// //----------------------------------------------------------------------void SGModifyGuildMemberOKHandler::execute ( SGModifyGuildMemberOK* pPacket ) throw ( ProtocolException , Error ){ __BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __GAME_SERVER__ //cout << "SGModifyGuildMember received" << endl; Assert( pPacket != NULL ); // 辨靛甫 啊廉柯促. Guild* pGuild = g_pGuildManager->getGuild( pPacket->getGuildID() ); try { Assert( pGuild != NULL ); } catch ( Throwable& ) { return; } // 辨靛 糕滚牢瘤 犬牢茄促. GuildMember* pGuildMember = pGuild->getMember( pPacket->getName() ); try { Assert( pGuildMember != NULL ); } catch ( Throwable& ) { return; } if ( pGuildMember->getRank() == GuildMember::GUILDMEMBER_RANK_WAIT && pPacket->getGuildMemberRank() == GuildMember::GUILDMEMBER_RANK_NORMAL ) { //////////////////////////////////////////////////////////////////////////// // 辨靛 啊涝 脚没阑 铰牢茄 版快捞促. //////////////////////////////////////////////////////////////////////////// // 辨靛糕滚 沥焊甫 函版茄促. pGuild->modifyMemberRank( pGuildMember->getName(), pPacket->getGuildMemberRank() ); // 立加秦 乐促搁 皋矫瘤甫 焊辰促. __ENTER_CRITICAL_SECTION((*g_pPCFinder)) Creature* pCreature = g_pPCFinder->getCreature_LOCKED( pGuildMember->getName() ); if ( pCreature != NULL && pCreature->isPC() ) { PlayerCreature* pPlayerCreature = dynamic_cast<PlayerCreature*>(pCreature); Assert( pPlayerCreature != NULL ); // 角力 辨靛 ID甫 殿废茄促. pPlayerCreature->setGuildID( pGuildMember->getGuildID() ); Player* pPlayer = pCreature->getPlayer(); Assert( pPlayer != NULL ); Zone* pZone = pCreature->getZone(); Assert( pZone != NULL ); // 官诧 辨靛 ID 沥焊甫 焊郴霖促. GCModifyGuildMemberInfo gcModifyGuildMemberInfo; gcModifyGuildMemberInfo.setGuildID( pGuild->getID() ); gcModifyGuildMemberInfo.setGuildName( pGuild->getName() ); gcModifyGuildMemberInfo.setGuildMemberRank( pGuildMember->getRank() ); pPlayer->sendPacket( &gcModifyGuildMemberInfo ); // 辨靛 啊涝 铰牢 皋矫瘤甫 焊辰促. 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) // 林困俊 辨靛 啊涝阑 舅赴促. GCOtherModifyInfo gcOtherModifyInfo; gcOtherModifyInfo.setObjectID( pCreature->getObjectID() ); gcOtherModifyInfo.addShortData( MODIFY_GUILDID, pGuildMember->getGuildID() ); pZone->broadcastPacket( pCreature->getX(), pCreature->getY(), &gcOtherModifyInfo ); } // 铰牢茄 荤恩俊霸 皋矫瘤甫 焊辰促. pCreature = g_pPCFinder->getCreature_LOCKED( pPacket->getSender() ); if ( pCreature != NULL && pCreature->isPC() ) { Player* pPlayer = pCreature->getPlayer(); Assert( pPlayer != NULL );// StringStream msg;// msg << pGuildMember->getName() << "丛狼 辨靛 啊涝阑 铰牢窍看嚼聪促."; char msg[100]; if ( pGuild->getRace() == Guild::GUILD_RACE_SLAYER ) sprintf( msg, g_pStringPool->c_str( STRID_ACCEPT_TEAM_JOIN ), pGuildMember->getName().c_str() ); else if ( pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE ) sprintf( msg, g_pStringPool->c_str( STRID_ACCEPT_CLAN_JOIN ), pGuildMember->getName().c_str() ); else if ( pGuild->getRace() == Guild::GUILD_RACE_OUSTERS ) sprintf( msg, g_pStringPool->c_str( STRID_ACCEPT_CLAN_JOIN ), pGuildMember->getName().c_str() ); GCSystemMessage gcSystemMessage; gcSystemMessage.setMessage( msg ); pPlayer->sendPacket( &gcSystemMessage ); } __LEAVE_CRITICAL_SECTION((*g_pPCFinder)) } else if ( pGuildMember->getRank() != GuildMember::GUILDMEMBER_RANK_MASTER && pPacket->getGuildMemberRank() == GuildMember::GUILDMEMBER_RANK_MASTER ) { /////////////////////////////////////////////////////////// // 辨靛 付胶磐甫 函版茄促. /////////////////////////////////////////////////////////// string sMaster = pGuild->getMaster(); // 辨靛付胶磐狼 珐农甫 货肺 辨靛付胶磐啊 登绰 糕滚狼 盔贰 珐农肺 官层霖促. pGuild->modifyMemberRank( sMaster, pGuildMember->getRank() ); // 货 辨靛付胶磐狼 珐农甫 技泼茄促. pGuild->modifyMemberRank( pGuildMember->getName(), pPacket->getGuildMemberRank() ); // 辨靛 坷宏璃飘俊 货 辨靛 付胶飘肺 技泼茄促. pGuild->setMaster( pGuildMember->getName() ); // 立加秦 乐促搁 皋矫瘤甫 焊辰促. __ENTER_CRITICAL_SECTION((*g_pPCFinder)) // 货 辨靛付胶磐啊 霸烙辑滚俊 乐促搁 货 沥焊甫 焊郴霖促. Creature* pCreature = g_pPCFinder->getCreature_LOCKED( pGuildMember->getName() ); if ( pCreature != NULL && pCreature->isPC() ) { PlayerCreature* pPlayerCreature = dynamic_cast<PlayerCreature*>(pCreature); Assert( pPlayerCreature != NULL ); Player* pPlayer = pCreature->getPlayer(); Assert( pPlayer != NULL ); // 官诧 辨靛 ID 沥焊甫 焊郴霖促. GCModifyGuildMemberInfo gcModifyGuildMemberInfo; gcModifyGuildMemberInfo.setGuildID( pGuild->getID() ); gcModifyGuildMemberInfo.setGuildName( pGuild->getName() ); gcModifyGuildMemberInfo.setGuildMemberRank( pGuildMember->getRank() ); pPlayer->sendPacket( &gcModifyGuildMemberInfo ); } // 盔贰狼 辨靛付胶磐啊 霸烙辑滚俊 乐促搁 货 沥焊甫 焊郴霖促. pCreature = g_pPCFinder->getCreature_LOCKED( sMaster ); if ( pCreature != NULL && pCreature->isPC() ) { PlayerCreature* pPlayerCreature = dynamic_cast<PlayerCreature*>(pCreature); Assert( pPlayerCreature != NULL ); Player* pPlayer = pCreature->getPlayer(); Assert( pPlayer != NULL ); // 官诧 辨靛 ID 沥焊甫 焊郴霖促. GCModifyGuildMemberInfo gcModifyGuildMemberInfo; gcModifyGuildMemberInfo.setGuildID( pGuild->getID() ); gcModifyGuildMemberInfo.setGuildName( pGuild->getName() ); gcModifyGuildMemberInfo.setGuildMemberRank( pGuildMember->getRank() ); pPlayer->sendPacket( &gcModifyGuildMemberInfo ); } // 辨付甫 官槽 荤恩俊霸 皋矫瘤甫 焊辰促. pCreature = g_pPCFinder->getCreature_LOCKED( pPacket->getSender() ); if ( pCreature != NULL && pCreature->isPC() ) { Player* pPlayer = pCreature->getPlayer(); Assert( pPlayer != NULL );// StringStream msg;// msg << pGuild->getName() << "狼 付胶磐甫 " << sMaster << " 俊辑 "// << pGuildMember->getName() << " 栏肺 函版窍看嚼聪促."; char msg[200]; sprintf( msg, g_pStringPool->c_str( STRID_MODIFY_GUILD_MASTER ), pGuild->getName().c_str(), sMaster.c_str(), pGuildMember->getName().c_str() ); GCSystemMessage gcSystemMessage; gcSystemMessage.setMessage( msg ); pPlayer->sendPacket( &gcSystemMessage ); } __LEAVE_CRITICAL_SECTION((*g_pPCFinder)) } else { /////////////////////////////////////////////////////////// // 辨靛糕滚 沥焊甫 函版茄促. /////////////////////////////////////////////////////////// pGuild->modifyMemberRank( pGuildMember->getName(), pPacket->getGuildMemberRank() ); // 立加秦 乐促搁 皋矫瘤甫 焊辰促. __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 ); GCSystemMessage gcSystemMessage; if ( pGuild->getRace() == Guild::GUILD_RACE_SLAYER ) gcSystemMessage.setMessage( g_pStringPool->getString( STRID_TEAM_RIGHT_CHANGED ) ); else if ( pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE ) gcSystemMessage.setMessage( g_pStringPool->getString( STRID_CLAN_RIGHT_CHANGED ) ); else if ( pGuild->getRace() == Guild::GUILD_RACE_OUSTERS ) gcSystemMessage.setMessage( g_pStringPool->getString( STRID_CLAN_RIGHT_CHANGED ) ); pPlayer->sendPacket( &gcSystemMessage ); } // 函版矫挪 荤恩俊霸 皋矫瘤甫 焊辰促. pCreature = g_pPCFinder->getCreature_LOCKED( pPacket->getSender() ); if ( pCreature != NULL && pCreature->isPC() ) { Player* pPlayer = pCreature->getPlayer(); Assert( pPlayer != NULL );// StringStream msg;// msg << pGuildMember->getName() << "丛狼 辨靛 鼻茄捞 函版登菌嚼聪促."; char msg[100]; if ( pGuild->getRace() == Guild::GUILD_RACE_SLAYER ) sprintf( msg, g_pStringPool->c_str( STRID_TEAM_RIGHT_CHANGED_2 ), pGuildMember->getName().c_str() ); else if ( pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE ) sprintf( msg, g_pStringPool->c_str( STRID_CLAN_RIGHT_CHANGED_2 ), pGuildMember->getName().c_str() ); else if ( pGuild->getRace() == Guild::GUILD_RACE_OUSTERS ) sprintf( msg, g_pStringPool->c_str( STRID_CLAN_RIGHT_CHANGED_2 ), pGuildMember->getName().c_str() ); GCSystemMessage gcSystemMessage; gcSystemMessage.setMessage( msg ); pPlayer->sendPacket( &gcSystemMessage ); } __LEAVE_CRITICAL_SECTION((*g_pPCFinder)) }#endif __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?