cgregistguildhandler.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 249 行
CPP
249 行
//////////////////////////////////////////////////////////////////////////////// Filename : CGRegistGuildHandler.cpp// Written By :// Description ://////////////////////////////////////////////////////////////////////////////#include "CGRegistGuild.h"#ifdef __GAME_SERVER__ #include "SystemAvailabilitiesManager.h" #include "DB.h" #include "Properties.h" #include "SharedServerManager.h" #include "GamePlayer.h" #include "Slayer.h" #include "Vampire.h" #include "Ousters.h" #include "Guild.h" #include "Gpackets/GSAddGuild.h" #include "Gpackets/GCNPCResponse.h" #include <stdio.h>#endif // __GAME_SERVER__////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGRegistGuildHandler::execute (CGRegistGuild* 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 ); string GuildName = pPacket->getGuildName(); if ( GuildName.find_first_of("'\\") < GuildName.size() ) { // 捞固 荤侩 吝牢 辨靛 捞抚捞促 if ( pCreature->isSlayer() ) { GCNPCResponse response; response.setCode( NPC_RESPONSE_TEAM_REGIST_FAIL_NAME ); pPlayer->sendPacket( &response ); } else if ( pCreature->isVampire() ) { GCNPCResponse response; response.setCode( NPC_RESPONSE_CLAN_REGIST_FAIL_NAME ); pPlayer->sendPacket( &response ); } else if ( pCreature->isOusters() ) { GCNPCResponse response; response.setCode( NPC_RESPONSE_GUILD_REGIST_FAIL_NAME ); pPlayer->sendPacket( &response ); } return; } Statement* pStmt; Result* pResult; BEGIN_DB { // 鞍篮 辨靛 捞抚捞 乐绰瘤 眉农 pStmt = g_pDatabaseManager->getConnection( "DARKEDEN" )->createStatement(); pResult = pStmt->executeQuery( "SELECT GuildID FROM GuildInfo WHERE GuildName = '%s' AND GuildState IN ( 0, 1 )", pPacket->getGuildName().c_str() ); if ( pResult->getRowCount() != 0 ) { SAFE_DELETE( pStmt ); // 捞固 荤侩 吝牢 辨靛 捞抚捞促 if ( pCreature->isSlayer() ) { GCNPCResponse response; response.setCode( NPC_RESPONSE_TEAM_REGIST_FAIL_NAME ); pPlayer->sendPacket( &response ); } else if ( pCreature->isVampire() ) { GCNPCResponse response; response.setCode( NPC_RESPONSE_CLAN_REGIST_FAIL_NAME ); pPlayer->sendPacket( &response ); } else if ( pCreature->isOusters() ) { GCNPCResponse response; response.setCode( NPC_RESPONSE_GUILD_REGIST_FAIL_NAME ); pPlayer->sendPacket( &response ); } return; } // 促弗 辨靛 家加牢瘤 眉农 pResult = pStmt->executeQuery( "SELECT Rank, ExpireDate FROM GuildMember WHERE Name = '%s'", pCreature->getName().c_str() ); if ( pResult->next() ) { int Rank = pResult->getInt(1); string ExpireDate = pResult->getString(2); // 促弗 辨靛俊辑 呕硼茄 版快绰 辨靛甫 积己且 荐 绝促. if ( ExpireDate.size() == 7 && Rank==GuildMember::GUILDMEMBER_RANK_LEAVE) { 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() ); if ( difftime( daytime, mktime(&Time) ) < 604800 ) // 角矫埃 7老捞 瘤车绰啊? { // 辨靛 积己且 荐 绝促绰 皋技瘤 GCNPCResponse response; if (pCreature->isSlayer()) response.setCode( NPC_RESPONSE_TEAM_REGIST_FAIL_DENY ); else if ( pCreature->isVampire() ) response.setCode( NPC_RESPONSE_CLAN_REGIST_FAIL_DENY ); else if ( pCreature->isOusters() ) response.setCode( NPC_RESPONSE_GUILD_REGIST_FAIL_DENY ); pPlayer->sendPacket( &response ); SAFE_DELETE( pStmt ); return; } } // 扁粮狼 辨靛糕滚 沥焊甫 瘤况霖促. pStmt->executeQuery( "DELETE FROM GuildMember WHERE Name='%s'", pCreature->getName().c_str() ); //SAFE_DELETE( pStmt ); //return; } SAFE_DELETE( pStmt ); } END_DB(pStmt) if ( pCreature->isSlayer() ) { Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature); Assert( pSlayer != NULL ); SkillDomainType_t highest = pSlayer->getHighestSkillDomain(); // 殿废 啊瓷 咯何 眉农 if ( ( pSlayer->getGold() >= REQUIRE_SLAYER_MASTER_GOLD ) && // 殿废厚 1撅 ( pSlayer->getFame() >= REQUIRE_SLAYER_MASTER_FAME[highest]) && // 疙己摹 ( pSlayer->getSkillDomainLevel(highest) >= REQUIRE_SLAYER_MASTER_SKILL_DOMAIN_LEVEL ) // 饭骇 50 捞惑 ) { GSAddGuild gsAddGuild; gsAddGuild.setGuildName( pPacket->getGuildName() ); gsAddGuild.setGuildMaster( pSlayer->getName() ); gsAddGuild.setGuildIntro( pPacket->getGuildIntro() ); gsAddGuild.setGuildState( Guild::GUILD_STATE_WAIT ); gsAddGuild.setGuildRace( Guild::GUILD_RACE_SLAYER ); gsAddGuild.setServerGroupID( g_pConfig->getPropertyInt( "ServerID" ) ); g_pSharedServerManager->sendPacket( &gsAddGuild ); GCNPCResponse response; response.setCode( NPC_RESPONSE_QUIT_DIALOGUE ); pPlayer->sendPacket( &response ); } } else if ( pCreature->isVampire() ) { Vampire* pVampire = dynamic_cast<Vampire*>(pCreature); Assert( pVampire != NULL ); // 殿废 啊瓷 咯何 眉农 if ( ( pVampire->getGold() >= REQUIRE_VAMPIRE_MASTER_GOLD ) && // 殿废厚 1撅 ( pVampire->getLevel() >= REQUIRE_VAMPIRE_MASTER_LEVEL ) ) { GSAddGuild gsAddGuild; gsAddGuild.setGuildName( pPacket->getGuildName() ); gsAddGuild.setGuildMaster( pVampire->getName() ); gsAddGuild.setGuildIntro( pPacket->getGuildIntro() ); gsAddGuild.setGuildState( Guild::GUILD_STATE_WAIT ); gsAddGuild.setGuildRace( Guild::GUILD_RACE_VAMPIRE ); gsAddGuild.setServerGroupID( g_pConfig->getPropertyInt( "ServerID" ) ); g_pSharedServerManager->sendPacket( &gsAddGuild ); GCNPCResponse response; response.setCode( NPC_RESPONSE_QUIT_DIALOGUE ); pPlayer->sendPacket( &response ); } } else if ( pCreature->isOusters() ) { Ousters* pOusters = dynamic_cast<Ousters*>(pCreature); Assert( pOusters != NULL ); // 殿废 啊瓷 咯何 眉农 if ( ( pOusters->getGold() >= REQUIRE_OUSTERS_MASTER_GOLD ) && // 殿废厚 1撅 ( pOusters->getLevel() >= REQUIRE_OUSTERS_MASTER_LEVEL ) ) { GSAddGuild gsAddGuild; gsAddGuild.setGuildName( pPacket->getGuildName() ); gsAddGuild.setGuildMaster( pOusters->getName() ); gsAddGuild.setGuildIntro( pPacket->getGuildIntro() ); gsAddGuild.setGuildState( Guild::GUILD_STATE_WAIT ); gsAddGuild.setGuildRace( Guild::GUILD_RACE_OUSTERS ); gsAddGuild.setServerGroupID( g_pConfig->getPropertyInt( "ServerID" ) ); g_pSharedServerManager->sendPacket( &gsAddGuild ); 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 + -
显示快捷键?