📄 gsexpelguildmemberhandler.cpp
字号:
//----------------------------------------------------------------------//// Filename : GSExpelGuildMemberHandler.cpp// Written By : Reiot// Description :////----------------------------------------------------------------------// include files#include "GSExpelGuildMember.h"#include "Assert.h"#ifdef __SHARED_SERVER__ #include "Guild.h" #include "GuildManager.h" #include "GameServerManager.h" #include "Properties.h" #include "DB.h" #include "Spackets/SGExpelGuildMemberOK.h" #include "Spackets/SGDeleteGuildOK.h"#endif//----------------------------------------------------------------------// // GSExpelGuildMemberHandler::execute()// //----------------------------------------------------------------------void GSExpelGuildMemberHandler::execute ( GSExpelGuildMember* pPacket, Player* pPlayer ) throw ( ProtocolException , Error ){ __BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __SHARED_SERVER__ //cout << "GSExpelGuildMember received" << endl; Assert( pPacket != NULL ); // 敲饭捞绢啊 加茄 辨靛甫 啊廉柯促. Guild* pGuild = g_pGuildManager->getGuild( pPacket->getGuildID() ); //try { Assert( pGuild != NULL ); } catch ( Throwable& ) { return; } if (pGuild==NULL) return; // 敲饭捞绢啊 辨靛狼 糕滚牢瘤 犬牢茄促. GuildMember* pGuildMember = pGuild->getMember( pPacket->getName() ); //try { Assert( pGuildMember != NULL ); } catch ( Throwable& ) { return; } if (pGuildMember==NULL) return; // 辨靛 呕硼 肺弊甫 巢变促. filelog( "GuildExit.log", "GuildID: %d, GuildName: %s, Expel: %s, By: %s", pGuild->getID(), pGuild->getName().c_str(), pPacket->getName().c_str(), pPacket->getSender().c_str() ); /////////////////////////////////////////////////////////////////// // DB俊 Slayer, Vampire, Ousters 抛捞喉狼 GuildID 甫 官槽促. /////////////////////////////////////////////////////////////////// Statement* pStmt = NULL; BEGIN_DB { pStmt = g_pDatabaseManager->getConnection( "DARKEDEN" )->createStatement(); if ( pGuild->getRace() == Guild::GUILD_RACE_SLAYER ) { pStmt->executeQuery( "UPDATE Slayer SET GuildID = 99 WHERE Name = '%s'", pGuildMember->getName().c_str() ); } else if ( pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE ) { pStmt->executeQuery( "UPDATE Vampire SET GuildID = 0 WHERE Name = '%s'", pGuildMember->getName().c_str() ); } else if ( pGuild->getRace() == Guild::GUILD_RACE_OUSTERS ) { pStmt->executeQuery( "UPDATE Ousters SET GuildID = 66 WHERE Name = '%s'", pGuildMember->getName().c_str() ); } SAFE_DELETE( pStmt ); } END_DB(pStmt) // Guild Member 甫 expire 矫挪促. pGuildMember->expire(); // Guild 俊辑 昏力茄促. pGuild->deleteMember( pGuildMember->getName() ); // 霸烙 辑滚肺 焊尘 菩哦阑 父电促. SGExpelGuildMemberOK sgExpelGuildMemberOK; sgExpelGuildMemberOK.setGuildID( pGuild->getID() ); sgExpelGuildMemberOK.setName( pPacket->getName() ); sgExpelGuildMemberOK.setSender( pPacket->getSender() ); // 霸烙 辑滚肺 菩哦阑 焊辰促. g_pGameServerManager->broadcast( &sgExpelGuildMemberOK ); // 辨靛 牢盔捞 5疙 固父捞 瞪 版快 辨靛甫 昏力茄促. if ( pGuild->getState() == Guild::GUILD_STATE_ACTIVE && pGuild->getActiveMemberCount() < 5 ) { // 辨靛 昏力 肺弊甫 巢变促. filelog( "GuildBroken.log", "GuildID: %d, GuildName: %s, MemberCount: %d, Expel: %s", pGuild->getID(), pGuild->getName().c_str(), pGuild->getActiveMemberCount(), pPacket->getName().c_str() ); // 辨靛 糕滚 expire and delete HashMapGuildMember& Members = pGuild->getMembers(); HashMapGuildMemberItor itr = Members.begin(); BEGIN_DB { pStmt = g_pDatabaseManager->getConnection( "DARKEDEN" )->createStatement(); for ( ; itr != Members.end(); itr++ ) { GuildMember* pGuildMember = itr->second; /////////////////////////////////////////////////////////////////// // DB俊 Slayer, Vampire, Ousters 抛捞喉狼 GuildID 甫 官槽促. /////////////////////////////////////////////////////////////////// if ( pGuild->getRace() == Guild::GUILD_RACE_SLAYER ) { pStmt->executeQuery( "UPDATE Slayer SET GuildID = 99 WHERE Name = '%s'", pGuildMember->getName().c_str() ); } else if ( pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE ) { pStmt->executeQuery( "UPDATE Vampire SET GuildID = 0 WHERE Name = '%s'", pGuildMember->getName().c_str() ); } else if ( pGuild->getRace() == Guild::GUILD_RACE_OUSTERS ) { pStmt->executeQuery( "UPDATE Ousters SET GuildID = 66 WHERE Name = '%s'", pGuildMember->getName().c_str() ); } // 辨靛 糕滚甫 expire 矫挪促. pGuildMember->expire(); // 肯傈洒 DB俊辑 力芭茄促. //pGuildMember->destroy(); // 辨靛 糕滚甫 昏力 SAFE_DELETE( pGuildMember ); } SAFE_DELETE( pStmt ); } END_DB(pStmt) Members.clear(); // 辨靛甫 昏力茄促 pGuild->setState( Guild::GUILD_STATE_BROKEN ); pGuild->save(); SAFE_DELETE( pGuild ); g_pGuildManager->deleteGuild( pPacket->getGuildID() ); // 辨靛甫 昏力窍档废 菩哦阑 焊辰促. SGDeleteGuildOK sgDeleteGuildOK; sgDeleteGuildOK.setGuildID( pPacket->getGuildID() ); g_pGameServerManager->broadcast( &sgDeleteGuildOK ); }#endif __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -