cgwithdrawtaxhandler.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 97 行
CPP
97 行
//////////////////////////////////////////////////////////////////////////////// Filename : CGWithdrawTaxHandler.cp p// Written By :// Description ://////////////////////////////////////////////////////////////////////////////#include "CGWithdrawTax.h"#ifdef __GAME_SERVER__ #include "GamePlayer.h" #include "PlayerCreature.h" #include "GuildManager.h" #include "CastleInfoManager.h" #include "Gpackets/GCNPCResponse.h" #include "Gpackets/GCModifyInformation.h"#endif // __GAME_SERVER__////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGWithdrawTaxHandler::execute (CGWithdrawTax* pPacket , Player* pPlayer) throw (Error){ __BEGIN_TRY __BEGIN_DEBUG_EX #ifdef __GAME_SERVER__ Assert(pPacket != NULL); Assert(pPlayer != NULL); GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer); Assert(pGamePlayer != NULL); PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pGamePlayer->getCreature()); Assert( pPC != NULL ); GuildID_t guildID = pPC->getGuildID(); Gold_t gold = pPacket->getGold(); list<CastleInfo*> pCastleInfoList = g_pCastleInfoManager->getGuildCastleInfos( guildID ); if ( pCastleInfoList.empty() ) { GCNPCResponse fail; fail.setCode( NPC_RESPONSE_WITHDRAW_TAX_FAIL ); pGamePlayer->sendPacket( &fail ); return; } bool bOwner = false; list<CastleInfo*>::iterator itr = pCastleInfoList.begin(); CastleInfo* pCastleInfo = NULL; for ( ; itr != pCastleInfoList.end() ; itr++ ) { if ( (*itr)->getZoneID() == pPC->getZoneID() ) { pCastleInfo = (*itr); bOwner = true; break; } } if ( !g_pGuildManager->isGuildMaster( guildID, pPC ) // 辨靛 付胶磐啊 酒聪促. || !bOwner // 捞 敲饭捞绢狼 辨靛啊 痢飞茄 己捞 酒聪促. || gold == 0 // 厘抄摹唱~ || pCastleInfo->getTaxBalance() < gold // 捣捞 葛磊鄂促. ) { GCNPCResponse fail; fail.setCode( NPC_RESPONSE_WITHDRAW_TAX_FAIL ); pGamePlayer->sendPacket( &fail ); return; } // 葛电 炼扒捞 面练登菌促. 捞力 捣阑 茫酒辑 敲饭捞绢俊霸 持绢霖促. Gold_t remainBalance = pCastleInfo->decreaseTaxBalanceEx( gold ); pPC->increaseGoldEx( gold ); // 荤侩磊狼 捣捞 疵绢车促绰 沥焊甫 焊郴霖促. GCModifyInformation gcMI; gcMI.addLongData( MODIFY_GOLD, pPC->getGold() ); pGamePlayer->sendPacket( &gcMI ); // 捣阑 茫绰 单 己傍沁促绊 舅赴促. GCNPCResponse success; success.setCode( NPC_RESPONSE_WITHDRAW_TAX_OK ); success.setParameter( remainBalance ); pGamePlayer->sendPacket( &success );#endif // __GAME_SERVER__ __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?