📄 gsaddguildmemberhandler.cpp
字号:
//----------------------------------------------------------------------//// Filename : GSAddGuildMemberHandler.cpp// Written By :// Description :////----------------------------------------------------------------------// include files#include "GSAddGuildMember.h"#include "Assert.h"#ifdef __SHARED_SERVER__ #include "Guild.h" #include "GuildManager.h" #include "GameServerManager.h" #include "DB.h" #include "StringPool.h" #include "Spackets/SGAddGuildMemberOK.h" #include "Spackets/SGModifyGuildOK.h"#endif//----------------------------------------------------------------------// // GSAddGuildHandler::execute()// //----------------------------------------------------------------------void GSAddGuildMemberHandler::execute ( GSAddGuildMember* pPacket, Player* pPlayer ) throw ( ProtocolException , Error ){ __BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __SHARED_SERVER__ Assert( pPacket != NULL ); GuildMember* pGuildMember = new GuildMember(); pGuildMember->setGuildID( pPacket->getGuildID() ); pGuildMember->setName( pPacket->getName() ); pGuildMember->setRank( pPacket->getGuildMemberRank() ); if ( pGuildMember->getRank() == GuildMember::GUILDMEMBER_RANK_WAIT ) { pGuildMember->setRequestDateTime( VSDateTime::currentDateTime() ); } // DB 俊 Guild Member 甫 历厘茄促. pGuildMember->create(); // Guild Member Intro 甫 DB俊 历厘茄促. pGuildMember->saveIntro( pPacket->getGuildMemberIntro() ); // 辨靛俊 眠啊茄促. Guild* pGuild = g_pGuildManager->getGuild( pPacket->getGuildID() ); pGuild->addMember( pGuildMember ); // 霸烙 辑滚肺 焊尘 菩哦阑 父电促. SGAddGuildMemberOK sgAddGuildMemberOK; sgAddGuildMemberOK.setGuildID( pGuildMember->getGuildID() ); sgAddGuildMemberOK.setName( pGuildMember->getName() ); sgAddGuildMemberOK.setGuildMemberRank( pGuildMember->getRank() ); sgAddGuildMemberOK.setServerGroupID( pPacket->getServerGroupID() ); // 霸烙 辑滚肺 菩哦阑 焊辰促. g_pGameServerManager->broadcast( &sgAddGuildMemberOK ); // 殿废 措扁 辨靛捞绊 辨靛盔捞 5疙 捞惑捞 登搁 沥侥 辨靛啊 等促. if ( pGuild->getState() == Guild::GUILD_STATE_WAIT && pGuild->getActiveMemberCount() > 4 ) { HashMapGuildMember& Members = pGuild->getMembers(); HashMapGuildMemberItor itr = Members.begin(); for ( ; itr != Members.end(); itr++ ) { pGuildMember = itr->second; /////////////////////////////////////////////////////////////////////////// // DB俊 Slayer, Vampire, Ousters 抛捞喉狼 GuildID甫 官槽促. // DB俊 Message甫 眠啊茄促. /////////////////////////////////////////////////////////////////////////// Statement* pStmt = NULL; BEGIN_DB { pStmt = g_pDatabaseManager->getConnection( "DARKEDEN" )->createStatement(); if ( pGuild->getRace() == Guild::GUILD_RACE_SLAYER ) { pStmt->executeQuery( "UPDATE Slayer SET GuildID = %d WHERE Name = '%s'", pGuild->getID(), pGuildMember->getName().c_str() ); if ( pGuildMember->getRank() == GuildMember::GUILDMEMBER_RANK_MASTER ) pStmt->executeQuery( "INSERT INTO Messages ( Receiver, Message ) VALUES ( '%s', '%s' )", pGuildMember->getName().c_str(), g_pStringPool->c_str( STRID_TEAM_REGISTRATION_ACCEPT ) ); else { pStmt->executeQuery( "INSERT INTO Messages ( Receiver, Message ) VALUES ( '%s', '%s' )", pGuildMember->getName().c_str(), g_pStringPool->c_str( STRID_TEAM_REGISTRATION_ACCEPT_2 ) ); } } else if ( pGuild->getRace() == Guild::GUILD_RACE_VAMPIRE ) { pStmt->executeQuery( "UPDATE Vampire SET GuildID = %d WHERE Name = '%s'", pGuild->getID(), pGuildMember->getName().c_str() ); if ( pGuildMember->getRank() == GuildMember::GUILDMEMBER_RANK_MASTER ) pStmt->executeQuery( "INSERT INTO Messages ( Receiver, Message ) VALUES ( '%s', '%s' )", pGuildMember->getName().c_str(), g_pStringPool->c_str( STRID_CLAN_REGISTRATION_ACCEPT ) ); else { pStmt->executeQuery( "INSERT INTO Messages ( Receiver, Message ) VALUES ( '%s', '%s' )", pGuildMember->getName().c_str(), g_pStringPool->c_str( STRID_CLAN_REGISTRATION_ACCEPT_2 ) ); } } else if ( pGuild->getRace() == Guild::GUILD_RACE_OUSTERS ) { pStmt->executeQuery( "UPDATE Ousters SET GuildID = %d WHERE Name = '%s'", pGuild->getID(), pGuildMember->getName().c_str() ); if ( pGuildMember->getRank() == GuildMember::GUILDMEMBER_RANK_MASTER ) pStmt->executeQuery( "INSERT INTO Messages ( Receiver, Message ) VALUES ( '%s', '%s' )", pGuildMember->getName().c_str(), g_pStringPool->c_str( STRID_CLAN_REGISTRATION_ACCEPT ) ); else { pStmt->executeQuery( "INSERT INTO Messages ( Receiver, Message ) VALUES ( '%s', '%s' )", pGuildMember->getName().c_str(), g_pStringPool->c_str( STRID_CLAN_REGISTRATION_ACCEPT_2 ) ); } } SAFE_DELETE( pStmt ); } END_DB(pStmt) } pGuild->setState( Guild::GUILD_STATE_ACTIVE ); pGuild->save(); SGModifyGuildOK sgModifyGuildOK; sgModifyGuildOK.setGuildID( pGuild->getID() ); sgModifyGuildOK.setGuildState( pGuild->getState() ); g_pGameServerManager->broadcast( &sgModifyGuildOK ); }#endif __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -