⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 effectyellowpoisontocreature.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : EffectYellowPoisonToCreature.cpp// Written by  : excel96// Description : //////////////////////////////////////////////////////////////////////////////#include "EffectYellowPoisonToCreature.h"#include "Slayer.h"#include "Player.h"#include "DB.h"#include "DarkLightInfo.h"#include "Gpackets/GCModifyInformation.h"#include "Gpackets/GCChangeDarkLight.h"#include "Gpackets/GCRemoveEffect.h"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EffectYellowPoisonToCreature::EffectYellowPoisonToCreature(Creature* pCreature)	throw(Error){	__BEGIN_TRY	m_Level = 0;	setTarget(pCreature);	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectYellowPoisonToCreature::affect(Zone* pZone , ZoneCoord_t x , ZoneCoord_t y , Object* pObject)	throw(Error){	__BEGIN_TRY	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectYellowPoisonToCreature::affect(Creature* pCreature)	throw(Error){	__BEGIN_TRY	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectYellowPoisonToCreature::unaffect(Creature* pCreature)	throw(Error){	__BEGIN_TRY	__BEGIN_DEBUG//	Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);	if (pCreature != NULL) 	{		Zone*   pZone   = pCreature->getZone();		Player* pPlayer = pCreature->getPlayer();		// Light殿狼 付过栏肺 牢窍咯 矫具啊 灌酒廉 乐阑 荐 乐栏骨肺..		// OldSight啊 泅犁狼 Sight焊促 绢滴快搁 Setting 窍瘤 臼绰促.		Sight_t NewSight = 13;		pCreature->setSight(NewSight);		// 努扼捞攫飘俊 Vision 沥焊甫 傈价茄促.		GCModifyInformation _GCModifyInformation; 		_GCModifyInformation.addShortData(MODIFY_VISION, NewSight);		pPlayer->sendPacket(&_GCModifyInformation);		pCreature->removeFlag(Effect::EFFECT_CLASS_YELLOW_POISON_TO_CREATURE);		pZone->updateScan(pCreature, YELLOW_POISON_SIGHT, NewSight);		// Yellow Poison狼 瓤苞啊 钱副锭 Update Scan篮 拱沸 灌扁狼 炼例鳖瘤 秦霖促.	//	DarkLightInfo* pDIInfo    = g_pDarkLightInfoManager->getCurrentDarkLightInfo( pZone );		//DarkLevel_t    darkLevel  = pDIInfo->getDarkLevel();		//LightLevel_t   lightLevel = pDIInfo->getLightLevel();		GCChangeDarkLight gcChangeDarkLight;		gcChangeDarkLight.setDarkLevel(pZone->getDarkLevel());		gcChangeDarkLight.setLightLevel(pZone->getLightLevel());		pPlayer->sendPacket(&gcChangeDarkLight);			/*		if (!pSlayer->isFlag(Effect::EFFECT_CLASS_DARKNESS)) 		{			pZone->updateScan(pSlayer, YELLOW_POISON_SIGHT, NewSight);			// Yellow Poison狼 瓤苞啊 钱副锭 Update Scan篮 拱沸 灌扁狼 炼例鳖瘤 秦霖促.			DarkLightInfo* pDIInfo    = g_pDarkLightInfoManager->getCurrentDarkLightInfo();			DarkLevel_t    darkLevel  = pDIInfo->getDarkLevel();			LightLevel_t   lightLevel = pDIInfo->getLightLevel();				GCChangeDarkLight gcChangeDarkLight;			gcChangeDarkLight.setDarkLevel(darkLevel);			gcChangeDarkLight.setLightLevel(lightLevel);				pPlayer->sendPacket(&gcChangeDarkLight);		}		*/		// 钱副锭 Sight甫 历厘秦霖促.		//pSlayer->tinysave("Sight = 13");		// 捞棋飘啊 荤扼脸促绊 舅妨霖促.		GCRemoveEffect gcRemoveEffect;		gcRemoveEffect.setObjectID(pCreature->getObjectID());		gcRemoveEffect.addEffectList(Effect::EFFECT_CLASS_YELLOW_POISON_TO_CREATURE);		pZone->broadcastPacket(pCreature->getX(), pCreature->getY(), &gcRemoveEffect);		//destroy(pSlayer->getName());	}		__END_DEBUG	__END_CATCH}void EffectYellowPoisonToCreature::unaffect()	throw(Error){	__BEGIN_TRY	Creature* pCreature = dynamic_cast<Creature*>(m_pTarget);	unaffect(pCreature);		__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectYellowPoisonToCreature::unaffect(Zone* pZone , ZoneCoord_t x , ZoneCoord_t y , Object* pObject)	throw(Error){	__BEGIN_TRY	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectYellowPoisonToCreature::create(const string & ownerID) 	throw(Error){	__BEGIN_TRY	Statement* pStmt;	Timeval currentTime;	getCurrentTime(currentTime);	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		StringStream sql;		Turn_t currentYearTime;		getCurrentYearTime(currentYearTime);		sql << "INSERT INTO EffectYellowPoisonToCreature"			<< "(OwnerID , YearTime, DayTime, Level, OldSight)"			<< " VALUES('" << ownerID			<< "' , " << currentYearTime			<< "," << m_Deadline.tv_sec			<< "," <<(int)m_Level			<< "," <<(int)m_OldSight			<< ")";		pStmt->executeQuery(sql.toString());		delete pStmt;	}	END_DB(pStmt)		__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectYellowPoisonToCreature::destroy(const string & ownerID)	throw(Error){	__BEGIN_TRY	Statement* pStmt;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		StringStream sql;		sql << "DELETE FROM EffectYellowPoisonToCreature WHERE OwnerID = '" << ownerID << "'";		pStmt->executeQuery(sql.toString());		delete pStmt;	}	END_DB(pStmt)		__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectYellowPoisonToCreature::save(const string & ownerID) 	throw(Error){	__BEGIN_TRY	Statement* pStmt;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		StringStream sql;		Turn_t currentYearTime;		getCurrentYearTime(currentYearTime);		sql << "UPDATE EffectYellowPoisonToCreature SET "			<< "YearTime = " << currentYearTime			<< ", DayTime = " << m_Deadline.tv_sec			<< ", Level = " <<(int)m_Level			<< ", OldSight = " <<(int)m_OldSight			<< " WHERE OwnerID = '" << ownerID 			<< "'";		pStmt->executeQuery(sql.toString());		delete pStmt;	}	END_DB(pStmt)		__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////string EffectYellowPoisonToCreature::toString()	const throw(){	__BEGIN_TRY	StringStream msg;	msg << "EffectYellowPoisonToCreature("		<< "ObjectID:" << getObjectID()		<< ")";	return msg.toString();	__END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectYellowPoisonToCreatureLoader::load(Creature* pCreature) 	throw(Error){	__BEGIN_TRY	//Assert(pCreature != NULL);	if (pCreature == NULL)	{		//cout << "EffectYellowPoisonToCreatureLoader : 农府媚啊 澄涝聪促." << endl;		return;	}			Statement* pStmt;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		StringStream sql;		sql << "SELECT YearTime, DayTime, Level, OldSight FROM EffectYellowPoisonToCreature"			<< " WHERE OwnerID = '" << pCreature->getName() 			<< "'";		Result* pResult = pStmt->executeQuery(sql.toString());		while(pResult->next())		{			if (pCreature->isSlayer()||pCreature->isOusters()) 			{				uint i = 0;				Turn_t YearTime = pResult->getDWORD(++i);				int DayTime = pResult->getDWORD(++i);				Turn_t currentYearTime;				Timeval currentTime;				getCurrentYearTime(currentYearTime);				getCurrentTime(currentTime);				                int leftTime =((YearTime-currentYearTime)*24*60*60 +(DayTime-currentTime.tv_sec))*10;                EffectYellowPoisonToCreature* pEffect = new EffectYellowPoisonToCreature(pCreature);                if (leftTime > 0)                {                    pEffect->setDeadline(leftTime);                }                else                {					pEffect->setDeadline(10);					//pEffect->destroy(pCreature->getName());					//delete pEffect;                }				pEffect->setLevel(pResult->getInt(++i));				pEffect->setOldSight(13);                pCreature->setFlag(Effect::EFFECT_CLASS_YELLOW_POISON_TO_CREATURE);                pCreature->addEffect(pEffect);			}		}		delete pStmt;	}	END_DB(pStmt)		__END_CATCH}EffectYellowPoisonToCreatureLoader* g_pEffectYellowPoisonToCreatureLoader = NULL;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -