cgselectquesthandler.cpp
来自「dk1游戏的原代码文件,完整.编译系统redhat7.3,mysql 3.23 」· C++ 代码 · 共 93 行
CPP
93 行
//////////////////////////////////////////////////////////////////////////////// Filename : CGSelectQuestHandler.cpp// Written By :// Description ://////////////////////////////////////////////////////////////////////////////#include "CGSelectQuest.h"#ifdef __GAME_SERVER__#include "GamePlayer.h"#include "PlayerCreature.h"#include "NPC.h"#include "mission/EventQuestAdvance.h"#include "mission/QuestManager.h"#include "mission/QuestInfoManager.h"#include "Gpackets/GCNPCResponse.h"#include <cstdio>#endif // __GAME_SERVER__void CGSelectQuestHandler::execute (CGSelectQuest* pPacket , Player* pPlayer) throw (Error){ __BEGIN_TRY __BEGIN_DEBUG_EX #ifdef __GAME_SERVER__ GamePlayer* pGP = dynamic_cast<GamePlayer*>( pPlayer ); Assert( pGP != NULL ); PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pGP->getCreature()); GCNPCResponse gcNPCR; gcNPCR.setCode( NPC_RESPONSE_QUEST ); Creature* pCreature = pPC->getZone()->getCreature( pPacket->getNPCObjectID() ); if ( pCreature == NULL || !pCreature->isNPC() ) { gcNPCR.setParameter( (uint)START_FAIL_CANNOT_APPLY_QUEST ); pPlayer->sendPacket( &gcNPCR ); return; } NPC* pNPC = dynamic_cast<NPC*>(pCreature); if ( pNPC == NULL ) { gcNPCR.setParameter( (uint)START_FAIL_CANNOT_APPLY_QUEST ); pPlayer->sendPacket( &gcNPCR ); return; } QuestInfoManager* pQIM = pNPC->getQuestInfoManager(); if ( pQIM == NULL ) { gcNPCR.setParameter( (uint)START_FAIL_CANNOT_APPLY_QUEST ); pPlayer->sendPacket( &gcNPCR ); return; } pPC->getQuestManager()->adjustQuestStatus(); QuestMessage code = pQIM->startQuest( pPacket->getQuestID(), pPC ); list<QuestID_t> qList; pQIM->getEventQuestIDs( pPC->getQuestManager()->getEventQuestAdvanceManager()->getQuestLevel(), pPC, back_inserter(qList) ); gcNPCR.setParameter( (uint)code ); if ( !pQIM->isEventQuest( pPacket->getQuestID() ) ) pPlayer->sendPacket( &gcNPCR ); if ( code == START_SUCCESS ) { pPC->sendCurrentQuestInfo(); //cout << "Quest 矫累 " << pPC->getName() << " " << pPacket->getQuestID() << endl; } else { //cout << "Quest 矫累 角菩 " << pPC->getName() << " " << (int)code << endl; }#endif // __GAME_SERVER__ __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?