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

📄 warschedule.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
#include "WarSchedule.h"#include "GuildManager.h"#include "Properties.h"#include "War.h"#include "DB.h"#include "Zone.h"#include <stdio.h>#include "CastleInfoManager.h"#include "GuildWar.h"#include "Gpackets/GCWarScheduleList.h"#include "Gpackets/GCWarList.h"WarSchedule::WarSchedule( Work* pWork, const VSDateTime& Time, ScheduleType type = SCHEDULE_TYPE_ONCE ) 	throw(Error): Schedule(pWork, Time, type){	__BEGIN_TRY	__END_CATCH}WarSchedule::~WarSchedule()	throw (Error){}void    WarSchedule::makeWarScheduleInfo( WarScheduleInfo* pWSI ) const	throw (Error){	__BEGIN_TRY	Assert(m_pWork!=NULL);	War* pWar = dynamic_cast<War*>(m_pWork);	Assert(pWar!=NULL);		pWar->makeWarScheduleInfo( pWSI );    pWSI->year					= m_ScheduledTime.date().year();    pWSI->month					= m_ScheduledTime.date().month();    pWSI->day					= m_ScheduledTime.date().day();    pWSI->hour					= m_ScheduledTime.time().hour();	__END_CATCH}voidWarSchedule::makeWarInfo(WarInfo* pWarInfo) const	throw (Error){	__BEGIN_TRY	Assert(pWarInfo!=NULL);	const Work* pWork = getWork();	Assert(pWork!=NULL);	const War* pWar = dynamic_cast<const War*>(pWork);	Assert(pWar!=NULL);	//---------------------------------------------------	// 巢篮 傈里 矫埃 备窍扁.. -_-; 蝶肺 哗具蹬...	//---------------------------------------------------	VSDateTime dt(VSDateTime::currentDateTime());	int endHour = m_ScheduledTime.time().hour();	int endMin = m_ScheduledTime.time().minute();	int endSec = m_ScheduledTime.time().second();	int curHour = dt.time().hour();	int curMin = dt.time().minute();	int curSec = dt.time().second();	int endSecs = endHour*60*60 + endMin*60 + endSec;	int curSecs = curHour*60*60 + curMin*60 + curSec;	int remainSec = 0;	if (endSecs > curSecs) remainSec = endSecs - curSecs;//	cout << "makeWarInfo : " << m_ScheduledTime.toString() << endl;	DWORD startTime = ((DWORD)((DWORD)(m_ScheduledTime.date().year()-2000))*1000000) + ((DWORD)((DWORD)m_ScheduledTime.date().month())*10000)					   + ((DWORD)((DWORD)m_ScheduledTime.date().day())*100) + ((DWORD)((DWORD)m_ScheduledTime.time().hour()));//	cout << "startTime : " << startTime << endl;	//---------------------------------------------------	// WarInfo 蔼 汲沥	//---------------------------------------------------	pWar->makeWarInfo( pWarInfo );	pWarInfo->setRemainTime( remainSec );	pWarInfo->setStartTime( startTime );//	cout << "after set : " << pWarInfo->getStartTime() << endl;	__END_CATCH}void WarSchedule::create()	throw(Error){	__BEGIN_TRY	War* pWar = dynamic_cast<War*>(m_pWork);	Assert(pWar!=NULL);	if (pWar->getWarType()!=WAR_GUILD)		return;	GuildWar* pGuildWar = dynamic_cast<GuildWar*>(pWar);	Assert(pGuildWar!=NULL);	Statement*	pStmt = NULL;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		pStmt->executeQuery(				"INSERT IGNORE INTO WarScheduleInfo ( WarID, ServerID, ZoneID, WarType, AttackGuildID, WarFee, StartTime, Status ) \				VALUES ( %u, %u, %u, '%s', %u, %u, '%s', '%s' )",						(int)pGuildWar->getWarID(), 						g_pConfig->getPropertyInt( "ServerID" ), 						(int)pGuildWar->getCastleZoneID(),						pGuildWar->getWarType2DBString().c_str(), 						(int)pGuildWar->getChallangerGuildID(), 						(int)pGuildWar->getRegistrationFee(), 						m_ScheduledTime.toDateTime().c_str(),						pGuildWar->getState2DBString().c_str() );		if( pStmt->getAffectedRowCount() == 0 )		{			filelog( "WarError.log", "WarSchedule::create() : 捞固 抛捞喉俊 War 沥焊啊 乐芭唱 抛捞喉捞 肋给登菌嚼聪促." );			SAFE_DELETE(pStmt);			return;		}		SAFE_DELETE(pStmt);	}	END_DB( pStmt )	__END_CATCH}void WarSchedule::tinysave( const string& query )	throw(Error){	__BEGIN_TRY	War* pWar = dynamic_cast<War*>(m_pWork);	Assert(pWar!=NULL);	Statement*	pStmt = NULL;	//Result*		pResult = NULL;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		pStmt->executeQuery(				"UPDATE WarScheduleInfo SET %s WHERE WarID = %d AND ServerID = %d",							query.c_str(), 							pWar->getWarID(), 							g_pConfig->getPropertyInt( "ServerID" )				);/*		if( pStmt->getAffectedRowCount() == 0 )		{			filelog( "WarError.log", "WarSchedule::tinySave() DB俊 WarSchedule捞 绝芭唱 沥焊啊 肋给登菌嚼聪促. ZoneID:%d, WarID:%d, Query:%s",					pWarScheduler->getZone()->getZoneID(), pWar->getWarID(), query.c_str() );			SAFE_DELETE(pStmt);			return;		}*/	}	END_DB( pStmt )	SAFE_DELETE(pStmt);	__END_CATCH}bool WarSchedule::heartbeat()	throw(Error){	__BEGIN_TRY	if (Schedule::heartbeat())	{		// pSchedule啊 角青登菌促.		if (m_pWork!=NULL)		{			War* pWar = dynamic_cast<War*>(m_pWork);			Assert(pWar!=NULL);			char pState[20];			sprintf(pState, "Status='%s'", pWar->getState2DBString().c_str());			tinysave( string(pState) );		}		return true;	}	return false;	__END_CATCH}

⌨️ 快捷键说明

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