cgblooddrainhandler.cpp
来自「dk1游戏的原代码文件,完整.编译系统redhat7.3,mysql 3.23 」· C++ 代码 · 共 96 行
CPP
96 行
//////////////////////////////////////////////////////////////////////////////// Filename : CGBloodDrainHandler.cpp// Written By : crazydog// Description : //////////////////////////////////////////////////////////////////////////////#include "CGBloodDrain.h"#ifdef __GAME_SERVER__ #include "GamePlayer.h" #include "Vampire.h" #include "Monster.h" #include "Skill.h" #include "SkillHandlerManager.h" #include "ZonePlayerManager.h" #include "ZoneUtil.h" #include "Gpackets/GCAttack.h" #include "Gpackets/GCGetDamage.h" #include "Gpackets/GCSkillFailed1.h"#endif////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGBloodDrainHandler::execute (CGBloodDrain* pPacket , Player* pPlayer) throw (Error){ __BEGIN_TRY __BEGIN_DEBUG_EX __BEGIN_DEBUG#ifdef __GAME_SERVER__ Assert(pPacket != NULL); Assert(pPlayer != NULL); try { GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer); Assert(pGamePlayer != NULL); if (pGamePlayer->getPlayerStatus() == GPS_NORMAL) { Creature* pCreature = pGamePlayer->getCreature(); Assert(pCreature != NULL); // 轨颇捞绢啊 酒囱 仇捞 软趋阑 且 荐绰 绝促. if (!pCreature->isVampire()) return; Vampire* pVampire = dynamic_cast<Vampire*>(pCreature); // 肯傈 救傈瘤措扼搁 扁贱 荤侩 阂啊. by sigi. 2002.11.14 ZoneLevel_t ZoneLevel = pCreature->getZone()->getZoneLevel(pCreature->getX(), pCreature->getY()); if ((ZoneLevel & COMPLETE_SAFE_ZONE) || (!isAbleToUseObjectSkill(pVampire, SKILL_BLOOD_DRAIN))) { GCSkillFailed1 gcSkillFailed1; gcSkillFailed1.setSkillType(SKILL_BLOOD_DRAIN); pPlayer->sendPacket(&gcSkillFailed1); return; } // Dark Revenge 惑怕俊辑 软趋阑 矫档窍搁 钱绢霖促. if (pVampire->isFlag(Effect::EFFECT_CLASS_EXTREME)) { EffectManager * pEffectManager = pVampire->getEffectManager(); Assert( pEffectManager != NULL ); Effect * pEffect = pEffectManager->findEffect( Effect::EFFECT_CLASS_EXTREME ); if ( pEffect != NULL ) { pEffect->setDeadline(0); } } // 救 焊捞绰 惑怕俊辑 软趋阑 矫档窍搁, 焊捞霸 秦霖促. if (pVampire->isFlag(Effect::EFFECT_CLASS_INVISIBILITY)) { Zone* pZone = pVampire->getZone(); Assert(pZone != NULL); addVisibleCreature(pZone, pVampire, true); } SkillHandler* pSkillHandler = g_pSkillHandlerManager->getSkillHandler(SKILL_BLOOD_DRAIN); Assert(pSkillHandler != NULL); pSkillHandler->execute(pVampire, pPacket->getObjectID()); } } catch (Throwable & t) { //cout << t.toString(); }#endif __END_DEBUG __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?