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

📄 vampireskillslot.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////////// Filename    : VampireSkillSlot.cpp// Written By  : elca// Description : //////////////////////////////////////////////////////////////////////////////#include "VampireSkillSlot.h"#include "DB.h"VampireSkillSlot::VampireSkillSlot()	throw(){	__BEGIN_TRY	m_SkillType = 0;	m_Interval = 0;	m_CastingTime = 0;	__END_CATCH}VampireSkillSlot::VampireSkillSlot(SkillType_t SkillType, ulong Interval, ulong CastingTime)	throw(){	__BEGIN_TRY	m_SkillType = SkillType;	m_Interval = Interval;	m_CastingTime = CastingTime;	__END_CATCH}VampireSkillSlot::~VampireSkillSlot()	throw(){	__BEGIN_TRY	m_SkillType = 0;	m_Interval = 0;	m_CastingTime = 0;	__END_CATCH}void VampireSkillSlot::create(const string & OwnerID)	throw(Error){	__BEGIN_TRY	Statement * pStmt = NULL;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		/*		StringStream sql;		sql << "INSERT INTO VampireSkillSave "			<< "(OwnerID , SkillType , Delay , CastingTime , NextTime)"			<< " VALUES ('" << OwnerID 			<<"' , " << (int)m_SkillType			<< " , " << (int)m_Interval			<< " , " << (int)m_CastingTime			<< " , " << (int)m_runTime.tv_sec			<< ")";		pStmt->executeQuery(sql.toString());		*/		pStmt->executeQuery( "INSERT INTO VampireSkillSave (OwnerID, SkillType, Delay, CastingTime, NextTime) VALUES ( '%s', %d, %d, %d, %d )",								OwnerID.c_str(), m_SkillType, m_Interval, m_CastingTime, m_runTime.tv_sec );		SAFE_DELETE(pStmt); 	// by sigi	}	END_DB(pStmt)	__END_CATCH}void VampireSkillSlot::save(const string & OwnerID)	throw(Error){	__BEGIN_TRY	Statement * pStmt = NULL;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		/*		StringStream sql;		sql << "UPDATE VampireSkillSave SET "			<< "Delay = " << (int)m_Interval			<< " WHERE OwnerID = '" << OwnerID			<< "' AND SkillType = " << (int)m_SkillType;		pStmt->executeQuery(sql.toString());		*/		pStmt->executeQuery( "UPDATE VampireSkillSave SET Delay=%d WHERE OwnerID='%s' AND SkillType=%d",								m_Interval, OwnerID.c_str(), m_SkillType);		SAFE_DELETE(pStmt);	}	END_DB(pStmt)	__END_CATCH}void VampireSkillSlot::save()	throw(Error){	__BEGIN_TRY	Statement * pStmt = NULL;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		/*		StringStream sql;		sql << "UPDATE VampireSkillSave SET "			<< "Delay = " << (int)m_Interval			<< " WHERE OwnerID = '" << m_Name			<< "' AND SkillType = " << (int)m_SkillType;		pStmt->executeQuery(sql.toString());		*/		pStmt->executeQuery( "UPDATE VampireSkillSave SET Delay=%d WHERE OwnerID='%s' AND SkillType=%d",								m_Interval, m_Name.c_str(), m_SkillType);		SAFE_DELETE(pStmt);	}	END_DB(pStmt)	__END_CATCH}Turn_t VampireSkillSlot::getRemainTurn( Timeval currentTime ) const	throw(){	Turn_t remainTurn = ( m_runTime.tv_sec - currentTime.tv_sec ) * 10					  + ( m_runTime.tv_usec - currentTime.tv_usec ) / 100000;	return remainTurn;}void VampireSkillSlot::setRunTime()	throw(){	// 泅犁 矫埃阑 罐酒柯促.	getCurrentTime(m_runTime);	// 促澜 镜 荐 乐绰 矫埃阑 技泼茄促.	m_runTime.tv_sec += m_Interval / 10;	m_runTime.tv_usec += (m_Interval % 10) * 100000;}void VampireSkillSlot::setRunTime(Turn_t delay)	throw(){	// 泅犁 矫埃阑 罐酒柯促.	getCurrentTime(m_runTime);	// 促澜 镜 荐 乐绰 矫埃阑 技泼茄促.	m_runTime.tv_sec  += delay / 10;	m_runTime.tv_usec += (delay % 10) * 100000;	if (m_Interval != delay)	{		m_Interval = delay;		switch (m_SkillType)		{			case SKILL_ATTACK_MELEE:			case SKILL_ATTACK_ARMS:			case SKILL_SELF:			case SKILL_TILE:			case SKILL_OBJECT:			case SKILL_BLOOD_DRAIN:			case SKILL_UN_BURROW:			case SKILL_UN_TRANSFORM:			case SKILL_UN_INVISIBILITY:			case SKILL_THROW_HOLY_WATER:			case SKILL_EAT_CORPSE:			case SKILL_HOWL:				break;			default:				save(m_Name); // 崔府柳 掉饭捞甫 技捞宏茄促. 				break;		}	}}

⌨️ 快捷键说明

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