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

📄 petattrinfo.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
字号:
#include "PetAttrInfo.h"#include "DB.h"#include "PetInfo.h"void PetAttrInfoManager::clear(){	hash_map<PetAttr_t, PetAttrInfo*>::iterator itr = m_PetAttrInfoMap.begin();	hash_map<PetAttr_t, PetAttrInfo*>::iterator endItr = m_PetAttrInfoMap.end();	for ( ; itr != endItr ; ++itr )	{		SAFE_DELETE( itr->second );	}	m_PetAttrInfoMap.clear();}void PetAttrInfoManager::load(){	Statement *pStmt;	BEGIN_DB	{		pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();		Result* pResult = pStmt->executeQuery( "SELECT PetAttr, Level, AddAttr, AccumAttr FROM PetAttrBalanceInfo" );		while ( pResult->next() )		{			PetAttr_t PetAttr = pResult->getInt(1);			if ( m_PetAttrInfoMap[PetAttr] == NULL ) m_PetAttrInfoMap[PetAttr] = new PetAttrInfo(PetAttr);			PetLevel_t PetLevel = pResult->getInt(2);			m_PetAttrInfoMap[PetAttr]->setPetAttrLevel( PetLevel, (PetAttrLevel_t)pResult->getInt(4) );		}		pResult = pStmt->executeQuery( "SELECT PetAttr, EnchantRatio FROM PetAttrInfo" );				while ( pResult->next() )		{			PetAttr_t PetAttr = pResult->getInt(1);			if ( m_PetAttrInfoMap[PetAttr] != NULL ) m_PetAttrInfoMap[PetAttr]->setEnchantRatio( pResult->getInt(2) );			else cout << "PetAttrInfo俊 乐绰 PetAttr捞 粮犁窍瘤 臼绰 加己涝聪促." << endl;		}		SAFE_DELETE( pStmt );	}	END_DB( pStmt )}bool PetAttrInfoManager::enchantRandomAttr( PetInfo* pPetInfo, int ratio ){	int value = rand()%100;	cout << "ratio : " << ratio << endl;	cout << "value : " << value << endl;	hash_map<PetAttr_t, PetAttrInfo*>::iterator itr = m_PetAttrInfoMap.begin();	hash_map<PetAttr_t, PetAttrInfo*>::iterator endItr = m_PetAttrInfoMap.end();	if ( pPetInfo->getPetLevel() < 10 ) return false;	if ( value < ratio ) return false;	value = rand()%100;	cout << "可记急琶 : " << value << endl;	for ( ; itr != endItr ; ++itr )	{		PetAttrInfo* pPetAttrInfo = itr->second;		if ( pPetAttrInfo == NULL ) continue;		cout << (int)pPetAttrInfo->getPetAttr() << " : " << pPetAttrInfo->getEnchantRatio() << endl;		if ( pPetAttrInfo->getEnchantRatio() > value )		{			cout << "selected" << endl;			pPetInfo->setPetAttr( pPetAttrInfo->getPetAttr() );			pPetInfo->setPetAttrLevel( pPetAttrInfo->getPetAttrLevel( pPetInfo->getPetLevel() ) );			return true;		}		value -= pPetAttrInfo->getEnchantRatio();	}	return false;}bool PetAttrInfoManager::enchantSpecAttr( PetInfo* pPetInfo, PetAttr_t PetAttr ){	int value = rand()%100;	if ( value > 70 ) return false;	PetAttrInfo* pPetAttrInfo = m_PetAttrInfoMap[PetAttr];	if ( pPetAttrInfo == NULL )	{		filelog("PetBug.log", "加己 瘤沥 脐 牢忙飘俊辑 捞惑茄 蔼捞 甸绢乐促. : %u", PetAttr );		return false;	}	pPetInfo->setPetAttr( pPetAttrInfo->getPetAttr() );	pPetInfo->setPetAttrLevel( pPetAttrInfo->getPetAttrLevel( pPetInfo->getPetLevel() ) );	return true;}PetAttrInfo* PetAttrInfoManager::getPetAttrInfo( PetAttr_t PetAttr ) const{	hash_map<PetAttr_t,PetAttrInfo*>::const_iterator itr = m_PetAttrInfoMap.find(PetAttr);	if ( itr == m_PetAttrInfoMap.end() ) return NULL;	return itr->second;}

⌨️ 快捷键说明

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