cgresurrecthandler.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 133 行
CPP
133 行
//////////////////////////////////////////////////////////////////////////////// Filename : CGResurrectHandler.cpp// Written By : excel96// Description ://////////////////////////////////////////////////////////////////////////////#include "CGResurrect.h"#ifdef __GAME_SERVER__ #include "GamePlayer.h" #include "Slayer.h" #include "Vampire.h" #include "Ousters.h" #include "Effect.h" #include "EffectComa.h" #include "EffectManager.h"#endif////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGResurrectHandler::execute (CGResurrect* 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); Creature* pCreature = pGamePlayer->getCreature(); Assert(pCreature != NULL); if (pCreature->findEffect( Effect::EFFECT_CLASS_ETERNITY )) return; // 泅犁 农府媚俊霸 COMA 捞棋飘啊 嘿绢乐瘤 臼促搁 俊矾促. if (pCreature->isFlag(Effect::EFFECT_CLASS_COMA)) { //cout << "敲贰弊 嘿绢乐澜." << endl; // COMA 捞棋飘俊 立辟茄促. EffectManager* pEffectManager = pCreature->getEffectManager(); Assert(pEffectManager != NULL); EffectComa* pEffectComa = (EffectComa*)(pEffectManager->findEffect(Effect::EFFECT_CLASS_COMA)); Assert(pEffectComa != NULL); // 磷篮 瘤 5檬啊 酒流 瘤唱瘤 臼疽促搁, 登混酒朝 荐 绝促. if (pEffectComa->canResurrect()) { //cout << "5檬啊 瘤车栏聪 何劝矫懦 荐 乐澜." << endl; /* if (pCreature->isSlayer()) { Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature); //cout << "泅犁 HP:" << pSlayer->getHP(ATTR_CURRENT); } else if (pCreature->isVampire()) { Vampire* pVampire = dynamic_cast<Vampire*>(pCreature); //cout << "泅犁 HP:" << pVampire->getHP(ATTR_CURRENT); } */ // 单靛扼牢阑 0栏肺 父甸绢霖促. 捞犯霸 窍搁 窍飘厚飘俊辑 // unaffect登搁辑 敲饭捞绢甫 磊悼栏肺 何劝矫虐霸 等促. pEffectComa->setDeadline(0); } else { //cout << "5檬啊 瘤唱瘤 臼疽促." << endl; } } else { //cout << "敲贰弊啊 绝促." << endl; // 绢叼辑牢瘤绰 犬角洒 舅 荐 绝栏唱, 绢凋啊俊辑 磷篮 第俊 // 内付 捞棋飘啊 朝酒啊 滚府芭唱, 磷篮 惑怕俊辑 HP啊 棵扼啊绰 泅惑捞 // 惯积窍绰 淀 窍促. 弊贰辑 捞棋飘 吧妨乐瘤 臼篮 惑炔俊辑 菩哦 // 朝酒坷搁 碍力肺 磷捞绰 内靛甫 笼绢持绰促. if (pCreature->isSlayer()) { Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature); pSlayer->setHP(0, ATTR_CURRENT); pSlayer->deleteEffect(Effect::EFFECT_CLASS_COMA); EffectComa* pEffectComa = new EffectComa(pSlayer); pEffectComa->setStartTime(); pEffectComa->setDeadline(0); pSlayer->addEffect(pEffectComa); pSlayer->setFlag(Effect::EFFECT_CLASS_COMA); } else if (pCreature->isVampire()) { Vampire* pVampire = dynamic_cast<Vampire*>(pCreature); pVampire->setHP(0, ATTR_CURRENT); pVampire->deleteEffect(Effect::EFFECT_CLASS_COMA); EffectComa* pEffectComa = new EffectComa(pVampire); pEffectComa->setStartTime(); pEffectComa->setDeadline(0); pVampire->addEffect(pEffectComa); pVampire->setFlag(Effect::EFFECT_CLASS_COMA); } else if (pCreature->isOusters()) { Ousters* pOusters = dynamic_cast<Ousters*>(pCreature); pOusters->setHP(0, ATTR_CURRENT); pOusters->deleteEffect(Effect::EFFECT_CLASS_COMA); EffectComa* pEffectComa = new EffectComa(pOusters); pEffectComa->setStartTime(); pEffectComa->setDeadline(0); pOusters->addEffect(pEffectComa); pOusters->setFlag(Effect::EFFECT_CLASS_COMA); } else { Assert(false); } }#endif __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?