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

📄 aimanager.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	
	ret=SQLFetch(hStmt);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"Load_AI_Data(), NPC_AI_CONTROL Table Fetch Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	ret=SQLGetData(hStmt,1,SQL_C_SLONG,&RowCount,sizeof(int),&cbValue);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_SUCCESS)
	{
		MyLog(0,"Load_AI_Data(), NPC_AI_CONTROL Table SQL Return Error(%d)!!",ret);
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}                
	
	SQLFreeStmt(hStmt,SQL_DROP);
	
	m_pNpc_AI_Data=new int*[RowCount+1];			// 鞘靛荐父怒 AI_Type积己 
	
	if (!m_pNpc_AI_Data) 
	{
		MyLog(0,"Load_AI_Data(), m_pNpc_AI_Data Memory Alloc Error!!",ret);
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	
	for (int i=0;i<RowCount+1;i++)
	{
		m_pNpc_AI_Data[i]=NULL;						// 皋葛府 檬扁拳
	}
	
	SQLAllocStmt(hDBC,&hStmt);
	
	wsprintf(query_stmt,"select * from NPC_AI_CONTROL order by AI_Type");   
	
	ret=SQLExecDirect(hStmt,(UCHAR*)query_stmt,SQL_NTS);
	
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"Load_AI_Data(), NPC_AI_CONTROL Table Query Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return FALSE;
	}
	
	SQLNumResultCols(hStmt,&nClos);
	
	ret=SQLFetch(hStmt);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"Load_AI_Data(), NPC_AI_CONTROL Table Fetch Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	
	m_iAI_DataCount=1;
	while (ret==SQL_SUCCESS)
	{
		m_pNpc_AI_Data[m_iAI_DataCount]=new int[nClos];
		if (!m_pNpc_AI_Data[m_iAI_DataCount])
		{
			MyLog(0,"Load_AI_Data(), m_pNpc_AI_Data Memory Alloc Error!!",ret);
			SQLFreeStmt(hStmt,SQL_DROP);
			return false;
		}
		
		for (int i=0;i<nClos;i++)
		{
			ret=SQLGetData(hStmt,i+1,SQL_C_SLONG,&m_pNpc_AI_Data[m_iAI_DataCount][i],sizeof(int),&cbValue);	
			if (ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_SUCCESS)
			{
				MyLog(0,"Load_AI_Data(), NPC_AI_CONTROL Table SQL Return Error(%d)!!",ret);
				SQLFreeStmt(hStmt,SQL_DROP);
				return FALSE;
			}                
		}
		m_iAI_DataCount++;
		ret=SQLFetch(hStmt);
	}
    SQLFreeStmt(hStmt,SQL_DROP);
	return LoadMagicBag();
}

int CAIManager::LoadMagicBag()
{
	HSTMT	hStmt=NULL;
	RETCODE	ret;
	SWORD	nClos;
	char	query_stmt[80]={0,};
	SDWORD	cbValue;
	int		RowCount;
	
	if (m_pMagicBag)								// 捞固 单捞磐啊 乐促搁 橇府秦霖促..
	{
		ClearMagicBag();
	}
	
	SQLAllocStmt(hDBC,&hStmt);
	
	wsprintf(query_stmt,"select count([index]) as FieldCount from Magic_Bag");   
	
	ret=SQLExecDirect(hStmt,(UCHAR*)query_stmt,SQL_NTS);
	
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadMagicBag(), Magic Bag Table Query Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return FALSE;
	}
	
	ret=SQLFetch(hStmt);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadMagicBag(), Magic Bag Table Fetch Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	ret=SQLGetData(hStmt,1,SQL_C_SLONG,&RowCount,sizeof(int),&cbValue);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_SUCCESS)
	{
		MyLog(0,"LoadMagicBag(), Magic Bag Table SQL Return Error(%d)!!",ret);
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}                
	
	SQLFreeStmt(hStmt,SQL_DROP);
	
	m_pMagicBag=new int*[RowCount+1];			// 鞘靛荐父怒 AI_Type积己 
	
	if (!m_pMagicBag) 
	{
		MyLog(0,"LoadMagicBag(), m_pMagicBag Memory Alloc Error!!",ret);
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	
	for (int i=0;i<RowCount+1;i++)
	{
		m_pMagicBag[i]=NULL;						// 皋葛府 檬扁拳
	}
	
	SQLAllocStmt(hDBC,&hStmt);
	
	wsprintf(query_stmt,"select * from Magic_bag order by [index]");   
	
	ret=SQLExecDirect(hStmt,(UCHAR*)query_stmt,SQL_NTS);
	
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadMagicBag(), Magic Bag Table  Query Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return FALSE;
	}
	
	SQLNumResultCols(hStmt,&nClos);
	
	ret=SQLFetch(hStmt);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadMagicBag(), Magic Bag Table Fetch Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	
	m_iMagicBagCount=1;
	while (ret==SQL_SUCCESS)
	{
		m_pMagicBag[m_iMagicBagCount]=new int[10];
		if (!m_pMagicBag[m_iMagicBagCount])
		{
			MyLog(0,"LoadMagicBag(), m_pMagicBag Memory Alloc Error!!",ret);
			SQLFreeStmt(hStmt,SQL_DROP);
			return false;
		}
		ret=SQLGetData(hStmt, 4,SQL_C_SLONG,&m_pMagicBag[m_iMagicBagCount][ 0],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt, 5,SQL_C_SLONG,&m_pMagicBag[m_iMagicBagCount][ 1],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt, 6,SQL_C_SLONG,&m_pMagicBag[m_iMagicBagCount][ 2],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt, 7,SQL_C_SLONG,&m_pMagicBag[m_iMagicBagCount][ 3],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt, 8,SQL_C_SLONG,&m_pMagicBag[m_iMagicBagCount][ 4],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt, 9,SQL_C_SLONG,&m_pMagicBag[m_iMagicBagCount][ 5],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt,10,SQL_C_SLONG,&m_pMagicBag[m_iMagicBagCount][ 6],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt,11,SQL_C_SLONG,&m_pMagicBag[m_iMagicBagCount][ 7],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt,12,SQL_C_SLONG,&m_pMagicBag[m_iMagicBagCount][ 8],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt,13,SQL_C_SLONG,&m_pMagicBag[m_iMagicBagCount][ 9],sizeof(int),&cbValue);	
		if (ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_SUCCESS)
		{
			MyLog(0,"Load_AI_Data(), NPC_AI_CONTROL Table SQL Return Error(%d)!!",ret);
			SQLFreeStmt(hStmt,SQL_DROP);
			return FALSE;
		}                
		m_iMagicBagCount++;
		ret=SQLFetch(hStmt);
	}
    SQLFreeStmt(hStmt,SQL_DROP);
	return TRUE;
}


int CAIManager::LoadBossData()
{
	HSTMT	hStmt=NULL;
	RETCODE	ret;
	SWORD	nClos;
	char	query_stmt[80]={0,};
	SDWORD	cbValue;
	int		RowCount;
	
	if (m_pBossStatusData)								// 捞固 单捞磐啊 乐促搁 橇府秦霖促..
	{
		ClearBossData();
	}
	
	SQLAllocStmt(hDBC,&hStmt);
	
	wsprintf(query_stmt,"select count(TypeNo) as FieldCount from AI_BossStatus");   
	
	ret=SQLExecDirect(hStmt,(UCHAR*)query_stmt,SQL_NTS);
	
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadBossData(), AI_BossStatus Table Query Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return FALSE;
	}
	
	ret=SQLFetch(hStmt);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadBossData(), AI_BossStatus Table Fetch Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	ret=SQLGetData(hStmt,1,SQL_C_SLONG,&RowCount,sizeof(int),&cbValue);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_SUCCESS)
	{
		MyLog(0,"LoadBossData(), AI_BossStatus Table SQL Return Error(%d)!!",ret);
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}                
	
	SQLFreeStmt(hStmt,SQL_DROP);
	
	m_pBossStatusData=new int*[RowCount+1];			// 鞘靛荐父怒 AI_Type积己 
	
	if (!m_pBossStatusData) 
	{
		MyLog(0,"LoadBossData(), m_pBossStatusData Memory Alloc Error!!",ret);
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	
	for (int i=0;i<RowCount+1;i++)
	{
		m_pBossStatusData[i]=NULL;						// 皋葛府 檬扁拳
	}
	
	SQLAllocStmt(hDBC,&hStmt);
	
	wsprintf(query_stmt,"select * from AI_BossStatus order by TypeNo");   
	
	ret=SQLExecDirect(hStmt,(UCHAR*)query_stmt,SQL_NTS);
	
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadBossData(), AI_BossStatus Table Query Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return FALSE;
	}
	
	SQLNumResultCols(hStmt,&nClos);
	
	ret=SQLFetch(hStmt);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadBossData(), AI_BossStatus Table Fetch Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	
	m_iBossStatusCount=1;
	while (ret==SQL_SUCCESS)
	{
		m_pBossStatusData[m_iBossStatusCount]=new int[nClos];
		if (!m_pBossStatusData[m_iBossStatusCount])
		{
			MyLog(0,"LoadBossData(), m_pBossStatusData Memory Alloc Error!!",ret);
			SQLFreeStmt(hStmt,SQL_DROP);
			return false;
		}
		
		for (int i=0;i<nClos;i++)
		{
			ret=SQLGetData(hStmt,i+1,SQL_C_SLONG,&m_pBossStatusData[m_iBossStatusCount][i],sizeof(int),&cbValue);	
			if (ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_SUCCESS)
			{
				MyLog(0,"LoadBossData(), AI_BossStatus Table SQL Return Error(%d)!!",ret);
				SQLFreeStmt(hStmt,SQL_DROP);
				return FALSE;
			}                
		}
		m_iBossStatusCount++;
		ret=SQLFetch(hStmt);
	}
    SQLFreeStmt(hStmt,SQL_DROP);
	return TRUE;
}

int CAIManager::LoadAttackBag()
{
	HSTMT	hStmt=NULL;
	RETCODE	ret;
	SWORD	nClos;
	char	query_stmt[80]={0,};
	SDWORD	cbValue;
	int		RowCount;
	
	if (m_pAttackBag)								// 捞固 单捞磐啊 乐促搁 橇府秦霖促..
	{
		ClearAttackBag();
	}
	
	SQLAllocStmt(hDBC,&hStmt);
	
	wsprintf(query_stmt,"select count(TypeNo) as FieldCount from AI_PhysicalAttack_Bag");   
	
	ret=SQLExecDirect(hStmt,(UCHAR*)query_stmt,SQL_NTS);
	
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadAttackBag(), AI_PhysicalAttack_Bag Table Query Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return FALSE;
	}
	
	ret=SQLFetch(hStmt);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadAttackBag(), AI_PhysicalAttack_Bag Table Fetch Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	ret=SQLGetData(hStmt,1,SQL_C_SLONG,&RowCount,sizeof(int),&cbValue);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_SUCCESS)
	{
		MyLog(0,"LoadAttackBag(), AI_PhysicalAttack_Bag Table SQL Return Error(%d)!!",ret);
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}                
	
	SQLFreeStmt(hStmt,SQL_DROP);
	
	m_pAttackBag=new int*[RowCount+1];			// 鞘靛荐父怒 AI_Type积己 
	
	if (!m_pAttackBag) 
	{
		MyLog(0,"LoadAttackBag(), m_pAttackBag Memory Alloc Error!!",ret);
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	
	for (int i=0;i<RowCount+1;i++)
	{
		m_pAttackBag[i]=NULL;						// 皋葛府 檬扁拳
	}
	
	SQLAllocStmt(hDBC,&hStmt);
	
	wsprintf(query_stmt,"select * from AI_PhysicalAttack_Bag order by TypeNo");   
	
	ret=SQLExecDirect(hStmt,(UCHAR*)query_stmt,SQL_NTS);
	
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadAttackBag(), AI_PhysicalAttack_Bag Table Query Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return FALSE;
	}
	
	SQLNumResultCols(hStmt,&nClos);
	
	ret=SQLFetch(hStmt);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadAttackBag(), AI_PhysicalAttack_Bag Table Fetch Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	
	m_iAttackBagCount=1;
	while (ret==SQL_SUCCESS)
	{
		m_pAttackBag[m_iAttackBagCount]=new int[5];
		if (!m_pAttackBag[m_iAttackBagCount])
		{
			MyLog(0,"LoadAttackBag(), AI_PhysicalAttack_Bag Memory Alloc Error!!",ret);
			SQLFreeStmt(hStmt,SQL_DROP);
			return false;
		}
		ret=SQLGetData(hStmt, 3,SQL_C_SLONG,&m_pAttackBag[m_iAttackBagCount][ 0],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt, 4,SQL_C_SLONG,&m_pAttackBag[m_iAttackBagCount][ 1],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt, 5,SQL_C_SLONG,&m_pAttackBag[m_iAttackBagCount][ 2],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt, 6,SQL_C_SLONG,&m_pAttackBag[m_iAttackBagCount][ 3],sizeof(int),&cbValue);	
		ret=SQLGetData(hStmt, 7,SQL_C_SLONG,&m_pAttackBag[m_iAttackBagCount][ 4],sizeof(int),&cbValue);	
		if (ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_SUCCESS)
		{
			MyLog(0,"LoadAttackBag(), AI_PhysicalAttack_Bag Table SQL Return Error(%d)!!",ret);
			SQLFreeStmt(hStmt,SQL_DROP);
			return FALSE;
		}                
		m_iAttackBagCount++;
		ret=SQLFetch(hStmt);
	}
    SQLFreeStmt(hStmt,SQL_DROP);
	return TRUE;
}

int CAIManager::LoadActionBag()
{
	HSTMT	hStmt=NULL;
	RETCODE	ret;
	SWORD	nClos;
	char	query_stmt[80]={0,};
	SDWORD	cbValue;
	int		RowCount;
	
	if (m_pActionBag)								// 捞固 单捞磐啊 乐促搁 橇府秦霖促..
	{
		ClearActionBag();
	}
	
	SQLAllocStmt(hDBC,&hStmt);
	
	wsprintf(query_stmt,"select count(TypeNo) as FieldCount from AI_ActionBag");   
	
	ret=SQLExecDirect(hStmt,(UCHAR*)query_stmt,SQL_NTS);
	
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadActionBag(), AI_ActionBag Table Query Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return FALSE;
	}
	
	ret=SQLFetch(hStmt);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret !=SQL_SUCCESS)
	{
		MyLog(0,"LoadActionBag(), AI_ActionBag Table Fetch Error!!");
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	ret=SQLGetData(hStmt,1,SQL_C_SLONG,&RowCount,sizeof(int),&cbValue);
	if (ret!=SQL_SUCCESS_WITH_INFO && ret!=SQL_SUCCESS)
	{
		MyLog(0,"LoadActionBag(), AI_ActionBag Table SQL Return Error(%d)!!",ret);
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}                
	
	SQLFreeStmt(hStmt,SQL_DROP);
	
	m_pActionBag=new int*[RowCount+1];			// 鞘靛荐父怒 AI_Type积己 
	
	if (!m_pActionBag) 
	{
		MyLog(0,"LoadActionBag(), m_pActionBag Memory Alloc Error!!",ret);
		SQLFreeStmt(hStmt,SQL_DROP);
		return false;
	}
	
	for (int i=0;i<RowCount+1;i++)

⌨️ 快捷键说明

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