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

📄 racewar.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
///////////////////////////////////////////////////////////////////// 傈里俊 措茄 傈馆利牢 沥焊 棺 傈里 矫累 棺 辆丰矫 贸府风凭 备泅///////////////////////////////////////////////////////////////////#include <stdio.h>#include "RaceWar.h"#include "Mutex.h"#include "WarSystem.h"#include "Properties.h"#include "DB.h"#include "Assert.h"#include "ZoneGroupManager.h"//#include "HolyLandRaceBonus.h"#include "Zone.h"#include "ZoneGroup.h"#include "ZoneUtil.h"#include "CastleInfoManager.h"#include "ShrineInfoManager.h"#include "ZoneInfoManager.h"#include "PCManager.h"#include "Gpackets/GCWarScheduleList.h"#include "RaceWarInfo.h"#include "HolyLandManager.h"#include "VariableManager.h"#include "RaceWarLimiter.h"#include "RegenZoneManager.h"#include "StringStream.h"#include "Gpackets/GCSystemMessage.h"#include "Gpackets/GCNoticeEvent.h"#include "Cpackets/CGSay.h"//--------------------------------------------------------------------------------//// constructor / destructor////--------------------------------------------------------------------------------RaceWar::RaceWar( WarState warState, WarID_t warID ): War( warState, warID ){}RaceWar::~RaceWar(){}//--------------------------------------------------------------------------------//// executeStart////--------------------------------------------------------------------------------// 傈里捞 矫累窍绰 矫痢俊辑 贸府秦具 瞪 巴甸//// (!) Zone俊 嘿绢乐绰 WarScheduler俊辑 角青登绰 何盒捞骨肺 //     磊脚狼 Zone(己)俊 措茄 贸府绰 lock捞 鞘夸绝促.//--------------------------------------------------------------------------------void RaceWar::executeStart()	throw (Error){	__BEGIN_TRY	sendWarStartMessage();	// 辆练傈俊辑绰 焊呈胶甫 馋促.//	g_pHolyLandRaceBonus->clear();	// 傈里 吝俊绰 NPC啊 荤扼柳促.	//g_pCastleInfoManager->deleteAllNPCs();	// 傈里 吝俊绰 己 救俊辑 付备 轿款促~	g_pCastleInfoManager->releaseAllSafeZone();	// 荐龋己窜 焊龋阜捞 葛滴 荤扼柳促.	g_pShrineInfoManager->removeAllShrineShield();	// 酒淬狼 己瘤 傈开俊 乔狼 己辑 困摹甫 焊郴霖促.	// 捞芭 捞力 WarSystem::addWar 救俊辑 阂矾霖促.	// g_pShrineInfoManager->broadcastBloodBibleStatus();//	g_pHolyLandManager->sendBloodBibleStatus();	// 酒淬狼 己瘤 傈开俊 矫埃阑 绊沥茄促.	g_pHolyLandManager->fixTimeband( g_pVariableManager->getVariable( RACE_WAR_TIMEBAND ) );	g_pHolyLandManager->killAllMonsters();	RegenZoneManager::getInstance()->putTryingPosition();	RegenZoneManager::getInstance()->broadcastStatus();	// hasActiveRaceWar()啊 汲沥登绰 鸥捞怪 锭巩俊..	// WarSystem::addWar()俊辑 角青茄促.	// 辆练 傈里俊 曼啊窍瘤 臼绰 荤恩甸阑 郴焊辰促.	//g_pHolyLandManager->remainRaceWarPlayers();	// RaceWarHistory Table 俊 扁废	recordRaceWarStart();	__END_CATCH}void RaceWar::recordRaceWarStart()	throw (Error){	__BEGIN_TRY	Statement* pStmt = NULL;	Result* pResult  = NULL;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		pResult = pStmt->executeQuery("SELECT Race, SUM(CurrentNum) FROM RaceWarPCLimit GROUP BY Race");		uint slayerSum  = 0;		uint vampireSum = 0;		uint oustersSum = 0;		string slayerOld;		string vampireOld;		string oustersOld;		while (pResult->next())		{			uint race = pResult->getInt(1);			uint num  = pResult->getInt(2);			if ( race == 0 )				slayerSum = num;			else if ( race == 1 )				vampireSum = num;			else if ( race == 2 )				oustersSum = num;		}		pResult = pStmt->executeQuery("SELECT ID, OwnerRace FROM ShrineInfo");		while (pResult->next())		{			uint id   		= pResult->getInt(1);			uint ownerRace	= pResult->getInt(2);			if ( ownerRace == 0 )				slayerOld = slayerOld + itos(id) + "|";			else if ( ownerRace == 1 )				vampireOld = vampireOld + itos(id) + "|";			else if ( ownerRace == 2 )				oustersOld = oustersOld + itos(id) + "|";		}		pStmt->executeQuery("INSERT INTO RaceWarHistory (RaceWarID, SlayerNum, VampireNum, OustersNum, SlayerOldBloodBible, VampireOldBloodBible, OustersOldBloodBible) VALUES ('%s', %d, %d, %d, '%s', '%s', '%s')",						getWarStartTime().toStringforWeb().c_str(),						slayerSum, vampireSum, oustersSum,						slayerOld.c_str(),						vampireOld.c_str(),						oustersOld.c_str() );	}	END_DB(pStmt)	__END_CATCH}//--------------------------------------------------------------------------------//// executeEnd////--------------------------------------------------------------------------------// 傈里捞 场唱绰 矫痢俊辑 贸府秦具 瞪 巴甸//--------------------------------------------------------------------------------void RaceWar::executeEnd()	throw (Error){	__BEGIN_TRY	//----------------------------------------------------------------------------	// 傈里 场车促绰 吧 舅赴促.	//----------------------------------------------------------------------------	sendWarEndMessage();	//----------------------------------------------------------------------------	// 辆练傈牢 版快 贸府	//----------------------------------------------------------------------------	// 傈里 脚没陛 阶牢芭绰 绢痘霸 且鳖? 公矫 _-_;	// 辆练傈俊辑绰 波柳 焊呈胶甫 促矫 囊促.//	g_pHolyLandRaceBonus->refresh();	//----------------------------------------------------------------------------	// 乔狼 己辑 炼阿阑 登倒妨霖促.	//----------------------------------------------------------------------------	g_pShrineInfoManager->returnAllBloodBible();	g_pShrineInfoManager->addAllShrineShield();		g_pCastleInfoManager->resetAllSafeZone();	g_pCastleInfoManager->transportAllOtherRace();	//g_pCastleInfoManager->loadAllNPCs();	// 酒淬狼 己瘤 傈开俊 乔狼 己辑 困摹甫 焊郴霖促.	//g_pHolyLandManager->sendBloodBibleStatus();	g_pShrineInfoManager->broadcastBloodBibleStatus();	// 酒淬狼 己瘤 傈开俊 绊沥沁带 矫埃阑 促矫 倒赴促.	g_pHolyLandManager->resumeTimeband();	// 傈里 曼啊磊 府胶飘甫 葛滴 力芭茄促.	RaceWarLimiter::clearPCList();	// 曼啊磊 箭磊甫 0栏肺 官槽促.	RaceWarLimiter::getInstance()->clearCurrent();	RegenZoneManager::getInstance()->deleteTryingPosition();	RegenZoneManager::getInstance()->reload();	// 某腐磐甸狼 Flag档 葛滴 力芭茄促.	g_pZoneGroupManager->removeFlag( Effect::EFFECT_CLASS_RACE_WAR_JOIN_TICKET );	CGSayHandler::opworld(NULL, "*world *load blood_bible_owner", 0, true);	// RaceWarHistory Table 俊 扁废	recordRaceWarEnd();	__END_CATCH}void RaceWar::recordRaceWarEnd()	throw (Error){	__BEGIN_TRY	Statement* pStmt = NULL;	Result* pResult  = NULL;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		pResult = pStmt->executeQuery("SELECT ID, OwnerRace FROM ShrineInfo");		string slayerNew;		string vampireNew;		string oustersNew;		while (pResult->next())		{			uint id   		= pResult->getInt(1);			uint ownerRace	= pResult->getInt(2);			if ( ownerRace == 0 )				slayerNew = slayerNew + itos(id) + "|";			else if ( ownerRace == 1 )				vampireNew = vampireNew + itos(id) + "|";			else if ( ownerRace == 2 )				oustersNew = oustersNew + itos(id) + "|";		}		pStmt->executeQuery("UPDATE RaceWarHistory SET SlayerBloodBible = '%s', VampireBloodBible = '%s', OustersBloodBible = '%s' WHERE RaceWarID = '%s'",						slayerNew.c_str(),						vampireNew.c_str(),						oustersNew.c_str(),						getWarStartTime().toStringforWeb().c_str() );	}	END_DB(pStmt)	// script 倒府扁 ぱ.,ぱ system 窃荐甫 静霸 瞪 临捞具 !_!	char cmd[100];	sprintf(cmd, "/home/darkeden/vs/bin/script/recordRaceWarHistory.py %s %d %d ",					getWarStartTime().toStringforWeb().c_str(),					g_pConfig->getPropertyInt("Dimension"),					g_pConfig->getPropertyInt("WorldID") );	filelog("script.log", cmd);	system(cmd);		__END_CATCH}string RaceWar::getWarName() const	throw (Error){	__BEGIN_TRY	return "辆练埃 傈里";	__END_CATCH}//--------------------------------------------------------------------------------// 傈里 场朝 锭//--------------------------------------------------------------------------------void RaceWar::sendWarEndMessage() const    throw (ProtocolException, Error){    __BEGIN_TRY	War::sendWarEndMessage();	// 救傈瘤措 秦力 犬牢? 菩哦	GCNoticeEvent gcNoticeEvent;	gcNoticeEvent.setCode( NOTICE_EVENT_RACE_WAR_OVER );	g_pZoneGroupManager->broadcast( &gcNoticeEvent );    __END_CATCH}void    RaceWar::makeWarScheduleInfo( WarScheduleInfo* pWSI ) const 	throw (Error){	__BEGIN_TRY    pWSI->warType 				= getWarType();    pWSI->challengerGuildID		= 0;    pWSI->challengerGuildName	= "";	__END_CATCH}void 	RaceWar::makeWarInfo(WarInfo* pWarInfo) const 	throw (Error){	__BEGIN_TRY	Assert(pWarInfo!=NULL);	Assert(pWarInfo->getWarType()==WAR_RACE);	RaceWarInfo* pRaceWarInfo = dynamic_cast<RaceWarInfo*>(pWarInfo);	Assert(pRaceWarInfo!=NULL);	const hash_map<ZoneID_t, CastleInfo*>& castleInfos = g_pCastleInfoManager->getCastleInfos();	hash_map<ZoneID_t, CastleInfo*>::const_iterator itr = castleInfos.begin();	for ( ; itr!=castleInfos.end(); itr++)	{		CastleInfo* pCastleInfo = itr->second;		pRaceWarInfo->addCastleID( pCastleInfo->getZoneID() );	}	__END_CATCH}string RaceWar::toString() const	throw (Error){	__BEGIN_TRY	StringStream msg;		msg << "RaceWar("		<< "WarID:" << (int)getWarID()		<< ",State:" << (int)getState()		<< ")";	return msg.toString();	__END_CATCH}

⌨️ 快捷键说明

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