cgjoinguildhandler.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 223 行
CPP
223 行
////////////////////////////////////////////////////////////////////////////// // Filename : CGJoinGuildHandler.cpp// Written By :// Description ://////////////////////////////////////////////////////////////////////////////#include "CGJoinGuild.h"#ifdef __GAME_SERVER__ #include "SystemAvailabilitiesManager.h" #include "DB.h" #include "SharedServerManager.h" #include "GamePlayer.h" #include "Slayer.h" #include "Vampire.h" #include "Ousters.h" #include "GuildManager.h" #include "Guild.h" #include "Properties.h" #include "Gpackets/GSAddGuildMember.h" #include "Gpackets/GCNPCResponse.h" #include <stdio.h>#endif // __GAME_SERVER__////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGJoinGuildHandler::execute (CGJoinGuild* pPacket , Player* pPlayer) throw (Error){ __BEGIN_TRY __BEGIN_DEBUG_EX #ifdef __GAME_SERVER__ Assert(pPacket != NULL); Assert(pPlayer != NULL); SYSTEM_ASSERT(SYSTEM_GUILD); GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer); Assert(pGamePlayer != NULL); Creature* pCreature = pGamePlayer->getCreature(); Assert( pCreature != NULL ); Player* pPlayer = pCreature->getPlayer(); Assert( pPlayer != NULL ); Statement* pStmt; Result* pResult; //cout << pPacket->toString() << endl; BEGIN_DB { // 沥惑利牢 苞沥阑 芭闷促搁 咯扁辑 眉农且锭 吧府搁 救等促. // 弊繁 捞蜡肺 俊矾皋矫瘤甫 努扼捞攫飘肺 焊郴瘤 臼绰促. // 促弗 辨靛 家加牢瘤 眉农 pStmt = g_pDatabaseManager->getConnection( "DARKEDEN" )->createStatement(); pResult = pStmt->executeQuery( "SELECT GuildID, Rank, ExpireDate FROM GuildMember WHERE Name = '%s'", pCreature->getName().c_str() ); if ( pResult->next() ) { GuildID_t GuildID = pResult->getInt(1); int Rank = pResult->getInt(2); string ExpireDate = pResult->getString(3); if ( ExpireDate.size() == 7 ) { time_t daytime = time(0); tm Time; Time.tm_year = atoi( ExpireDate.substr(0,3).c_str() ); Time.tm_mon = atoi( ExpireDate.substr(3,2).c_str() ); Time.tm_mday = atoi( ExpireDate.substr(5,2).c_str() ); Time.tm_hour = 0; Time.tm_min = 0; Time.tm_sec = 0; if ( difftime( daytime, mktime(&Time) ) < 604800 ) // 角矫埃 7老捞 瘤车绰啊? {/* if (Rank==GuildMember::GUILDMEMBER_RANK_DENY && GuildID != pPacket->getGuildID()) { // rank4==眠规/芭何..牢 局甸篮 促弗 辨靛俊绰 甸绢哎 荐 乐促. // 扁粮俊 乐带 GuildMember俊辑 力芭茄促. pStmt->executeQuery( "DELETE FROM GuildMember WHERE Name = '%s'", pCreature->getName().c_str() ); } else { SAFE_DELETE( pStmt ); return; }*/ // 角矫埃 7老捞 瘤唱瘤 臼栏搁 啊涝且 荐 绝促. 公炼扒 // 2003. 6. 25 by bezz SAFE_DELETE( pStmt ); return; } } else { // 捞固 促弗 辨靛俊 家加登绢 乐澜 SAFE_DELETE( pStmt ); return; } } SAFE_DELETE( pStmt ); } END_DB(pStmt) // 胶鸥泼 糕滚肺 啊涝且 版快 if ( pPacket->getGuildMemberRank() == GuildMember::GUILDMEMBER_RANK_SUBMASTER ) { // 辨靛啊 捞固 沥侥 辨靛肺 殿废登菌绰瘤 犬牢茄促. Guild* pGuild = g_pGuildManager->getGuild( pPacket->getGuildID() ); if ( pGuild == NULL ) return; if ( pGuild->getState() != Guild::GUILD_STATE_WAIT ) return; if ( pCreature->isSlayer() ) { Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature); Assert( pSlayer != NULL ); SkillDomainType_t highest = pSlayer->getHighestSkillDomain(); // 殿废 啊瓷 咯何 眉农 if ( ( pSlayer->getGold() >= REQUIRE_SLAYER_SUBMASTER_GOLD ) && // 殿废厚 5玫父 ( pSlayer->getFame() >= REQUIRE_SLAYER_SUBMASTER_FAME[highest]) && // 疙己摹 ( pSlayer->getSkillDomainLevel(highest) >= REQUIRE_SLAYER_SUBMASTER_SKILL_DOMAIN_LEVEL ) // 饭骇 40 捞惑 ) { GSAddGuildMember gsAddGuildMember; gsAddGuildMember.setGuildID( pPacket->getGuildID() ); gsAddGuildMember.setName( pSlayer->getName() ); gsAddGuildMember.setGuildMemberRank( pPacket->getGuildMemberRank() ); gsAddGuildMember.setGuildMemberIntro( pPacket->getGuildMemberIntro() ); gsAddGuildMember.setServerGroupID( g_pConfig->getPropertyInt( "ServerID" ) ); g_pSharedServerManager->sendPacket( &gsAddGuildMember ); } } else if ( pCreature->isVampire() ) { Vampire* pVampire = dynamic_cast<Vampire*>(pCreature); Assert( pVampire != NULL ); // 殿废 啊瓷 咯何 眉农 if ( ( pVampire->getGold() >= REQUIRE_VAMPIRE_SUBMASTER_GOLD ) && // 殿废厚 5玫父 ( pVampire->getLevel() >= REQUIRE_VAMPIRE_SUBMASTER_LEVEL ) // 饭骇 40 捞惑 ) { GSAddGuildMember gsAddGuildMember; gsAddGuildMember.setGuildID( pPacket->getGuildID() ); gsAddGuildMember.setName( pVampire->getName() ); gsAddGuildMember.setGuildMemberRank( pPacket->getGuildMemberRank() ); gsAddGuildMember.setGuildMemberIntro( pPacket->getGuildMemberIntro() ); gsAddGuildMember.setServerGroupID( g_pConfig->getPropertyInt( "ServerID" ) ); g_pSharedServerManager->sendPacket( &gsAddGuildMember ); } } else if ( pCreature->isOusters() ) { Ousters* pOusters = dynamic_cast<Ousters*>(pCreature); Assert( pOusters != NULL ); // 殿废 啊瓷 咯何 眉农 if ( ( pOusters->getGold() >= REQUIRE_OUSTERS_SUBMASTER_GOLD ) && // 殿废厚 5玫父 ( pOusters->getLevel() >= REQUIRE_OUSTERS_SUBMASTER_LEVEL ) // 饭骇 40 捞惑 ) { GSAddGuildMember gsAddGuildMember; gsAddGuildMember.setGuildID( pPacket->getGuildID() ); gsAddGuildMember.setName( pOusters->getName() ); gsAddGuildMember.setGuildMemberRank( pPacket->getGuildMemberRank() ); gsAddGuildMember.setGuildMemberIntro( pPacket->getGuildMemberIntro() ); gsAddGuildMember.setServerGroupID( g_pConfig->getPropertyInt( "ServerID" ) ); g_pSharedServerManager->sendPacket( &gsAddGuildMember ); } } } else if ( pPacket->getGuildMemberRank() == GuildMember::GUILDMEMBER_RANK_WAIT ) { // 辨靛 啊涝 脚没, 措扁 惑怕 GSAddGuildMember gsAddGuildMember; gsAddGuildMember.setGuildID( pPacket->getGuildID() ); gsAddGuildMember.setName( pCreature->getName() ); gsAddGuildMember.setGuildMemberRank( pPacket->getGuildMemberRank() ); gsAddGuildMember.setGuildMemberIntro( pPacket->getGuildMemberIntro() ); gsAddGuildMember.setServerGroupID( g_pConfig->getPropertyInt( "ServerID" ) ); g_pSharedServerManager->sendPacket( &gsAddGuildMember ); } GCNPCResponse response; response.setCode( NPC_RESPONSE_QUIT_DIALOGUE ); pPlayer->sendPacket( &response );#endif // __GAME_SERVER__ __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?