cgrequestinfohandler.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 169 行
CPP
169 行
//////////////////////////////////////////////////////////////////////////////// Filename : CGRequestInfo.cpp// Written By : excel96// Description : //////////////////////////////////////////////////////////////////////////////#include "CGRequestInfo.h"#ifdef __GAME_SERVER__ #include "GamePlayer.h" #include "Zone.h" #include "Slayer.h" #include "Vampire.h" #include "Ousters.h" #include "Gpackets/GCOtherModifyInfo.h" #include "Gpackets/GCOtherGuildName.h"#endif//////////////////////////////////////////////////////////////////////////////// 购啊俊 措茄 沥焊甫 夸没窍绰 版快捞促.//////////////////////////////////////////////////////////////////////////////void CGRequestInfoHandler::execute (CGRequestInfo* pPacket , Player* pPlayer) throw (ProtocolException , Error){ __BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __GAME_SERVER__ Assert(pPacket != NULL); Assert(pPlayer != NULL); GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer); Assert(pGamePlayer!=NULL); switch (pPacket->getCode()) { //------------------------------------------------------------ // 促弗 某腐磐狼 沥焊甫 夸没窍绰 版快 //------------------------------------------------------------ case CGRequestInfo::REQUEST_CHARACTER_INFO : { Creature* pCreature = pGamePlayer->getCreature(); Assert(pCreature!=NULL); Zone* pZone = pCreature->getZone(); Assert(pZone!=NULL); Creature* pTargetCreature = pZone->getCreature( pPacket->getValue() ); if (pTargetCreature!=NULL && pTargetCreature->isPC()) { // 杭妨绰 措惑捞 款康磊 葛剧捞 酒囱 版快父 等促. if (pTargetCreature->isSlayer()) { Slayer* pSlayer = dynamic_cast<Slayer*>(pTargetCreature); if (pSlayer->getCompetenceShape()!=1) return; } else if (pTargetCreature->isVampire()) { Vampire* pVampire = dynamic_cast<Vampire*>(pTargetCreature); if (pVampire->getCompetenceShape()!=1) return; } else if (pTargetCreature->isOusters()) { Ousters* pOusters = dynamic_cast<Ousters*>(pTargetCreature); if (pOusters->getCompetenceShape()!=1) return; } bool bSendInfo = false; if (pZone==NULL) return; GCOtherModifyInfo gcOtherModifyInfo; GCOtherGuildName gcOtherGuildName; // 蔼 汲沥 何盒 // 鞍篮 辆练父 焊咯霖促. if (( pCreature->isSlayer() || pCreature->getCompetenceShape() != 1) && pTargetCreature->isSlayer()) { Slayer* pSlayer = dynamic_cast<Slayer*>(pTargetCreature); gcOtherModifyInfo.addShortData( MODIFY_BASIC_STR, pSlayer->getSTR(ATTR_BASIC) ); gcOtherModifyInfo.addShortData( MODIFY_CURRENT_STR, pSlayer->getSTR(ATTR_CURRENT) ); gcOtherModifyInfo.addShortData( MODIFY_BASIC_DEX, pSlayer->getDEX(ATTR_BASIC) ); gcOtherModifyInfo.addShortData( MODIFY_CURRENT_DEX, pSlayer->getDEX(ATTR_CURRENT) ); gcOtherModifyInfo.addShortData( MODIFY_BASIC_INT, pSlayer->getINT(ATTR_BASIC) ); gcOtherModifyInfo.addShortData( MODIFY_CURRENT_INT, pSlayer->getINT(ATTR_CURRENT) ); gcOtherModifyInfo.addLongData( MODIFY_FAME, pSlayer->getFame() ); gcOtherModifyInfo.addShortData( MODIFY_SWORD_DOMAIN_LEVEL, pSlayer->getSkillDomainLevel(SKILL_DOMAIN_SWORD) ); gcOtherModifyInfo.addShortData( MODIFY_BLADE_DOMAIN_LEVEL, pSlayer->getSkillDomainLevel(SKILL_DOMAIN_BLADE) ); gcOtherModifyInfo.addShortData( MODIFY_HEAL_DOMAIN_LEVEL, pSlayer->getSkillDomainLevel(SKILL_DOMAIN_HEAL) ); gcOtherModifyInfo.addShortData( MODIFY_ENCHANT_DOMAIN_LEVEL, pSlayer->getSkillDomainLevel(SKILL_DOMAIN_ENCHANT) ); gcOtherModifyInfo.addShortData( MODIFY_GUN_DOMAIN_LEVEL, pSlayer->getSkillDomainLevel(SKILL_DOMAIN_GUN) ); gcOtherModifyInfo.addLongData( MODIFY_ALIGNMENT, pSlayer->getAlignment() ); gcOtherModifyInfo.addShortData( MODIFY_GUILDID, pSlayer->getGuildID() ); gcOtherModifyInfo.addShortData( MODIFY_RANK, pSlayer->getRank() ); bSendInfo = true; } else if ((pCreature->isVampire() || pCreature->getCompetenceShape() != 1) && pTargetCreature->isVampire()) { Vampire* pVampire = dynamic_cast<Vampire*>(pTargetCreature); gcOtherModifyInfo.addShortData( MODIFY_BASIC_STR, pVampire->getSTR(ATTR_BASIC) ); gcOtherModifyInfo.addShortData( MODIFY_CURRENT_STR, pVampire->getSTR(ATTR_CURRENT) ); gcOtherModifyInfo.addShortData( MODIFY_BASIC_DEX, pVampire->getDEX(ATTR_BASIC) ); gcOtherModifyInfo.addShortData( MODIFY_CURRENT_DEX, pVampire->getDEX(ATTR_CURRENT) ); gcOtherModifyInfo.addShortData( MODIFY_BASIC_INT, pVampire->getINT(ATTR_BASIC) ); gcOtherModifyInfo.addShortData( MODIFY_CURRENT_INT, pVampire->getINT(ATTR_CURRENT) ); gcOtherModifyInfo.addLongData( MODIFY_FAME, pVampire->getFame() ); gcOtherModifyInfo.addShortData( MODIFY_LEVEL, pVampire->getLevel() ); gcOtherModifyInfo.addLongData( MODIFY_ALIGNMENT, pVampire->getAlignment() ); gcOtherModifyInfo.addShortData( MODIFY_GUILDID, pVampire->getGuildID() ); gcOtherModifyInfo.addShortData( MODIFY_RANK, pVampire->getRank() ); bSendInfo = true; } else if ((pCreature->isOusters() || pCreature->getCompetenceShape() != 1) && pTargetCreature->isOusters()) { Ousters* pOusters = dynamic_cast<Ousters*>(pTargetCreature); gcOtherModifyInfo.addShortData( MODIFY_BASIC_STR, pOusters->getSTR(ATTR_BASIC) ); gcOtherModifyInfo.addShortData( MODIFY_CURRENT_STR, pOusters->getSTR(ATTR_CURRENT) ); gcOtherModifyInfo.addShortData( MODIFY_BASIC_DEX, pOusters->getDEX(ATTR_BASIC) ); gcOtherModifyInfo.addShortData( MODIFY_CURRENT_DEX, pOusters->getDEX(ATTR_CURRENT) ); gcOtherModifyInfo.addShortData( MODIFY_BASIC_INT, pOusters->getINT(ATTR_BASIC) ); gcOtherModifyInfo.addShortData( MODIFY_CURRENT_INT, pOusters->getINT(ATTR_CURRENT) ); gcOtherModifyInfo.addLongData( MODIFY_FAME, pOusters->getFame() ); gcOtherModifyInfo.addShortData( MODIFY_LEVEL, pOusters->getLevel() ); gcOtherModifyInfo.addLongData( MODIFY_ALIGNMENT, pOusters->getAlignment() ); gcOtherModifyInfo.addShortData( MODIFY_GUILDID, pOusters->getGuildID() ); gcOtherModifyInfo.addShortData( MODIFY_RANK, pOusters->getRank() ); bSendInfo = true; } if (bSendInfo) { gcOtherModifyInfo.setObjectID( pPacket->getValue() ); pGamePlayer->sendPacket( &gcOtherModifyInfo ); if ( pTargetCreature->isPC() ) { PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pTargetCreature); if ( pPC != NULL && pPC->getGuildID() != pPC->getCommonGuildID() ) { gcOtherGuildName.setObjectID( pPC->getObjectID() ); gcOtherGuildName.setGuildID( pPC->getGuildID() ); gcOtherGuildName.setGuildName( pPC->getGuildName() ); pGamePlayer->sendPacket( &gcOtherGuildName ); } } } } } break; }#endif __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?