📄 effectsoulchain.cpp
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : EffectSoulChain.cpp// Written by : elca// Description : // 焙牢扁贱 Sniping 肚绰 轨颇捞绢 扁贱 Invisibility肺 牢秦辑// 泅犁 痢痢 锐固秦廉啊绊 乐绰(荤扼瘤绊 乐绰) 农府媚俊 嘿绰 捞棋飘捞促.//////////////////////////////////////////////////////////////////////////////#include "EffectSoulChain.h"#include "Slayer.h"#include "Vampire.h"#include "GamePlayer.h"#include "PCFinder.h"#include "ZoneUtil.h"#include "ZoneInfoManager.h"#include "Gpackets/GCRemoveEffect.h"#include "Gpackets/GCSkillFailed1.h"#include "Gpackets/GCSkillFailed2.h"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EffectSoulChain::EffectSoulChain(Creature* pCreature) throw(Error){ __BEGIN_TRY //setTarget(pCreature); m_OwnerOID = pCreature->getObjectID(); __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectSoulChain::affect(Creature* pCreature) throw(Error){ __BEGIN_TRY __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectSoulChain::unaffect(Creature* pCreature) throw(Error){ __BEGIN_TRY //cout << "EffectSoulChain " << "unaffect BEGIN" << endl; Assert(pCreature != NULL); // 捞棋飘 敲饭弊啊 绝促搁 磷菌促芭唱 窍绰 巩力肺 transport 窍瘤 臼摆促绰吧 狼固茄促. if ( !pCreature->isFlag( Effect::EFFECT_CLASS_SOUL_CHAIN ) ) return; Zone* pZone = pCreature->getZone(); Assert(pZone != NULL); Player* pPlayer = pCreature->getPlayer(); Assert( pPlayer != NULL ); GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer); Assert( pGamePlayer != NULL ); PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pCreature); Assert( pPC != NULL ); ZoneCoord_t x = pCreature->getX(); ZoneCoord_t y = pCreature->getY(); pCreature->removeFlag(Effect::EFFECT_CLASS_SOUL_CHAIN); // Effect 啊 绝绢脸澜阑 舅赴促. GCRemoveEffect gcRemoveEffect; gcRemoveEffect.setObjectID( pCreature->getObjectID() ); gcRemoveEffect.addEffectList( Effect::EFFECT_CLASS_SOUL_CHAIN ); pZone->broadcastPacket( x, y, &gcRemoveEffect ); // Target 阑 眉农秦辑 傈价捞 啊瓷窍搁 傈价茄促. bool bValid = false; __ENTER_CRITICAL_SECTION( (*g_pPCFinder) ) Creature* pTargetCreature = g_pPCFinder->getCreature_LOCKED( m_TargetName ); if ( pTargetCreature != NULL ) { Zone* pTargetZone = pTargetCreature->getZone(); if ( pTargetZone != NULL ) { // 付胶磐 饭绢肺绰 捞悼且 荐 绝促. if ( !pTargetZone->isMasterLair() ) { // 蜡丰 辑厚胶 捞侩捞 啊瓷茄啊? if ( pGamePlayer->loginPayPlay( pGamePlayer->getSocket()->getHost(), pGamePlayer->getID() ) || pGamePlayer->isFamilyFreePass() || !( g_pZoneInfoManager->getZoneInfo( pTargetZone->getZoneID() )->isPayPlay() ) ) { // 具傈荤飞何, 矫寇胞瘤开, 捞亥飘版扁厘, 捞亥飘OX 粮栏肺绰 哎 荐 绝促. // 抛皋府俊 己瘤肺档 哎 荐 绝促. if ( pTargetZone->getZoneID() != 2101 && pTargetZone->getZoneID() != 2102 && pTargetZone->getZoneID() != 1005 && pTargetZone->getZoneID() != 1006 && pTargetZone->getZoneID() != 1122 && pTargetZone->getZoneID() != 1131 && pTargetZone->getZoneID() != 1132 && pTargetZone->getZoneID() != 1133 && pTargetZone->getZoneID() != 1134) { bValid = true; transportCreature( pCreature, pTargetZone->getZoneID(), pTargetCreature->getX(), pTargetCreature->getY(), false ); } } } } } __LEAVE_CRITICAL_SECTION( (*g_pPCFinder) ) if ( !bValid ) { GCSkillFailed1 gcSkillFailed1; gcSkillFailed1.setSkillType( SKILL_SOUL_CHAIN ); pPlayer->sendPacket( &gcSkillFailed1 ); GCSkillFailed2 gcSkillFailed2; gcSkillFailed2.setSkillType(SKILL_SOUL_CHAIN); gcSkillFailed2.setObjectID(pCreature->getObjectID()); pZone->broadcastPacket( pCreature->getX(), pCreature->getY(), &gcSkillFailed2, pCreature ); } __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectSoulChain::unaffect() throw(Error){ __BEGIN_TRY if ( m_pZone != NULL ) { Creature* pCreature = m_pZone->getCreature( m_OwnerOID ); if ( pCreature != NULL ) unaffect(pCreature); } __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////string EffectSoulChain::toString() const throw(){ __BEGIN_TRY StringStream msg; msg << "EffectSoulChain(" << "ObjectID:" << getObjectID() << "TargetName:" << m_TargetName << ")"; return msg.toString(); __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -