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

📄 init_magic_tbl.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
字号:
#include "..\stdafx.h"
#include "DefaultHeader.h"
#include "..\HigherLayers\FileMgr.h"
#include "..\LowerLayers\mylog.h"

MAGICTABLE Magic_Ref[Num_Of_Magic];
short int nMagic;
extern HDBC hDBC;

//////////////////////////////////////////////////////////////////////////////
//
// 窃荐汲疙: 辑滚俊辑 曼炼且 付过抛捞喉阑 DB肺何磐 佬绢柯促.
//
// 颇扼固磐: 绝澜.
//
// 府畔蔼: 己傍(1), 角菩(ret < 0)
//
//////////////////////////////////////////////////////////////////////////////

int InitEffectTbl()
{   //< CSD-020809
    char szQuerry[512];
	sprintf(szQuerry, "SELECT * FROM effect");
	HSTMT	hStmt = NULL;
	SQLAllocStmt(hDBC, &hStmt);
	RETCODE	retCode = SQLExecDirect(hStmt, (UCHAR*)szQuerry, SQL_NTS);
	
	if (retCode != SQL_SUCCESS_WITH_INFO && retCode != SQL_SUCCESS) 
	{
		MyLog(LOG_NORMAL, "Effect : ExecDirect Error");
		SQLFreeStmt(hStmt, SQL_DROP);
		return -1;
	}
	
	SDWORD cbValue;
	TFileMgr<CEffectTbl, Num_Of_Effect> tblEffect;
	TFileMgr<CEffectTbl2, Num_Of_Effect> tblEffect2;
	
	while ((retCode = SQLFetch(hStmt)) == SQL_SUCCESS)
	{
		int temp = 0;
		SQLGetData(hStmt,  1, SQL_C_LONG, &temp, 0, &cbValue);
		CEffectTbl* pEffectTbl = tblEffect.GetBuffer(temp);
		CEffectTbl2* pEffectTbl2 = tblEffect2.GetBuffer(temp);
		pEffectTbl->effect_Num	= temp; temp = 0;
		SQLGetData(hStmt,  2, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->pattern_Num	= temp; temp = 0;
		SQLGetData(hStmt,  3, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->sprite_Num	= temp; temp = 0;
		SQLGetData(hStmt,  4, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->static_Effect	= temp; temp = 0;
		SQLGetData(hStmt,  5, SQL_C_CHAR, &pEffectTbl2->sprite_Name, 30,&cbValue);
		SQLGetData(hStmt,  6, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->sound_Num		= temp; temp = 0;
		SQLGetData(hStmt,  7, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->sound_Volume	= temp; temp = 0;
		SQLGetData(hStmt,  8, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->next_Effect	= temp; temp = 0;
		SQLGetData(hStmt,  9, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->link_Frame	= temp; temp = 0;
		SQLGetData(hStmt, 10, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->trans_Type	= temp; temp = 0;
		SQLGetData(hStmt, 11, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->trans_Level	= temp; temp = 0;
		SQLGetData(hStmt, 12, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->sort_Type		= temp; temp = 0;
		SQLGetData(hStmt, 13, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->spr_Speed		= temp; temp = 0;
		SQLGetData(hStmt, 14, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->spr_Height	= temp; temp = 0;
		SQLGetData(hStmt, 15, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->object_Num	= temp; temp = 0;
		SQLGetData(hStmt, 16, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->fallow		= temp; temp = 0;
		SQLGetData(hStmt, 17, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->light			= temp; temp = 0;
		SQLGetData(hStmt, 18, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->end_Time		= temp; temp = 0;
		SQLGetData(hStmt, 19, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->impect_Effect_Num = temp; temp = 0;
		SQLGetData(hStmt, 20, SQL_C_LONG, &temp, 0, &cbValue);pEffectTbl->send_result		= temp; temp = 0;
		EatRearWhiteChar(pEffectTbl2->sprite_Name);
		pEffectTbl->sound_loop = pEffectTbl->sound_Num/10000;
		pEffectTbl->sound_Num = pEffectTbl->sound_Num%10000;
		pEffectTbl->sort_Type += 9;        
		tblEffect.AddNew(pEffectTbl->effect_Num);
		tblEffect2.AddNew(pEffectTbl->effect_Num);
	}
	
	SQLFreeStmt(hStmt, SQL_DROP);
	
	if (!tblEffect.Save("./output/Thunder.dat"))
	{
		return -100;
	}
	
	if (!tblEffect2.Save("./output/Lightning.dat"))
	{
		return -100;
	}
	
	return 1;
}   //> CSD-020809

int InitMagicTbl()
{
	char szQuerry[512];
	sprintf(szQuerry, "SELECT * FROM magic");
	HSTMT	hStmt = NULL;
	SQLAllocStmt(hDBC, &hStmt);
	RETCODE	retCode = SQLExecDirect(hStmt, (UCHAR*)szQuerry, SQL_NTS);
	
	if (retCode != SQL_SUCCESS_WITH_INFO && retCode != SQL_SUCCESS) 
	{
		MyLog(LOG_NORMAL, "Magic : ExecDirect Error");
		SQLFreeStmt(hStmt, SQL_DROP);
		return -1;
	}
	
	SDWORD cbValue;
	MAGICTABLE tblTemp;
	TFileMgr<CMagicTbl, Num_Of_Magic> tblMagic;
	
	while ((retCode = SQLFetch(hStmt)) == SQL_SUCCESS)
	{
		memset(&tblTemp, 0, sizeof(MAGICTABLE));
		SQLGetData(hStmt,  1, SQL_C_LONG, &tblTemp.order_Type, 0, &cbValue);       
		SQLGetData(hStmt,  2, SQL_C_CHAR, &tblTemp.Han_Name, 30, &cbValue);
		SQLGetData(hStmt,  4, SQL_C_LONG, &tblTemp.serial_Num, 0, &cbValue);       
		SQLGetData(hStmt,  5, SQL_C_LONG, &tblTemp.basic_Level, 0, &cbValue);      
		SQLGetData(hStmt,  6, SQL_C_LONG, &tblTemp.point_MS, 0, &cbValue);         
		SQLGetData(hStmt,  7, SQL_C_LONG, &tblTemp.before_Magic, 0, &cbValue);     
		SQLGetData(hStmt,  8, SQL_C_LONG, &tblTemp.basic_magery, 0, &cbValue);     
		SQLGetData(hStmt,  9, SQL_C_LONG, &tblTemp.cast_Time, 0, &cbValue);        
		SQLGetData(hStmt, 10, SQL_C_LONG, &tblTemp.cast_Continue, 0, &cbValue);    
		SQLGetData(hStmt, 11, SQL_C_LONG, &tblTemp.continue_Time, 0, &cbValue);    
		SQLGetData(hStmt, 12, SQL_C_LONG, &tblTemp.avail_Type, 0, &cbValue);       
		SQLGetData(hStmt, 13, SQL_C_LONG, &tblTemp.avail_Range, 0, &cbValue);      
		SQLGetData(hStmt, 14, SQL_C_LONG, &tblTemp.exhaust_MP, 0, &cbValue);       
		SQLGetData(hStmt, 15, SQL_C_LONG, &tblTemp.exhaust_MS, 0, &cbValue);       
		SQLGetData(hStmt, 16, SQL_C_LONG, &tblTemp.require_IT, 0, &cbValue);       
		SQLGetData(hStmt, 17, SQL_C_LONG, &tblTemp.require_WP, 0, &cbValue);      
		SQLGetData(hStmt, 18, SQL_C_LONG, &tblTemp.nHDPoint, 0, &cbValue); // CSD-030314
		SQLGetData(hStmt, 19, SQL_C_LONG, &tblTemp.nHDLimit, 0, &cbValue); // CSD-030314
		SQLGetData(hStmt, 20, SQL_C_LONG, &tblTemp.point_WS, 0, &cbValue);         
		SQLGetData(hStmt, 22, SQL_C_LONG, &tblTemp.nDualStep, 0, &cbValue); // 030415 kyo 
		SQLGetData(hStmt, 26, SQL_C_LONG, &tblTemp.invalid_TargetIT, 0, &cbValue); 
		SQLGetData(hStmt, 31, SQL_C_LONG, &tblTemp.nClass, 0, &cbValue);
		SQLGetData(hStmt, 32, SQL_C_LONG, &tblTemp.nTactics, 0, &cbValue);
		SQLGetData(hStmt, 33, SQL_C_LONG, &tblTemp.nAddition, 0, &cbValue);
		SQLGetData(hStmt, 34, SQL_C_LONG, &tblTemp.aLevel[1], 0, &cbValue); 
		SQLGetData(hStmt, 35, SQL_C_LONG, &tblTemp.aRandom[1], 0, &cbValue); 
		SQLGetData(hStmt, 36, SQL_C_LONG, &tblTemp.aLevel[2], 0, &cbValue); 
		SQLGetData(hStmt, 37, SQL_C_LONG, &tblTemp.aRandom[2], 0, &cbValue); 
		SQLGetData(hStmt, 38, SQL_C_LONG, &tblTemp.aLevel[3], 0, &cbValue); 
		SQLGetData(hStmt, 39, SQL_C_LONG, &tblTemp.aRandom[3], 0, &cbValue); 
		SQLGetData(hStmt, 46, SQL_C_LONG, &tblTemp.Spell_Type, 0, &cbValue);       
		SQLGetData(hStmt, 47, SQL_C_LONG, &tblTemp.Appoint_Type, 0, &cbValue);     
		SQLGetData(hStmt, 48, SQL_C_LONG, &tblTemp.Excute_Type,	0, &cbValue);      
		SQLGetData(hStmt, 49, SQL_C_LONG, &tblTemp.magic_Type, 0, &cbValue);       
		SQLGetData(hStmt, 50, SQL_C_LONG, &tblTemp.Price, 0, &cbValue);            
		SQLGetData(hStmt, 51, SQL_C_LONG, &tblTemp.Exp, 0, &cbValue);              
		SQLGetData(hStmt, 52, SQL_C_LONG, &tblTemp.Learnable,	0, &cbValue);        
		SQLGetData(hStmt, 53, SQL_C_LONG, &tblTemp.nSummonMax, 0, &cbValue);   // CSD-030314
		SQLGetData(hStmt, 54, SQL_C_LONG, &tblTemp.nCombatCount, 0, &cbValue); // CSD-030314
		SQLGetData(hStmt, 55, SQL_C_LONG, &tblTemp.nResist,	0, &cbValue);          
		SQLGetData(hStmt, 56, SQL_C_LONG, &tblTemp.nRiseFall,	0, &cbValue);        
		Magic_Ref[tblTemp.serial_Num] = tblTemp;
		//
		CMagicTbl* pMagicTbl = tblMagic.GetBuffer(tblTemp.serial_Num);
		pMagicTbl->order_Type = tblTemp.order_Type;
		pMagicTbl->serial_Num = tblTemp.serial_Num;
		pMagicTbl->basic_Level = tblTemp.basic_Level;
		pMagicTbl->WS = tblTemp.point_MS;
		pMagicTbl->before_Magic = tblTemp.before_Magic;
		pMagicTbl->basic_Magery = tblTemp.basic_magery;
		pMagicTbl->cast_Time = tblTemp.cast_Time;
		pMagicTbl->cast_Continue = tblTemp.cast_Continue;
		pMagicTbl->continue_Time = tblTemp.continue_Time;
		pMagicTbl->avail_Type = tblTemp.avail_Type;
		pMagicTbl->avail_Range = tblTemp.avail_Range;
		pMagicTbl->exhaust_MP = tblTemp.exhaust_MP;
		pMagicTbl->exhaust_WS = tblTemp.exhaust_MS;	
		pMagicTbl->require_IT = tblTemp.require_IT;
		pMagicTbl->require_WP = tblTemp.require_WP;
		pMagicTbl->point_WS = tblTemp.point_WS;		
		pMagicTbl->nDualStep = tblTemp.nDualStep;		// 030520 kyo
		pMagicTbl->invalid_TargetIT = tblTemp.invalid_TargetIT;
		pMagicTbl->appoint_Type = tblTemp.Appoint_Type;
		pMagicTbl->spell_Type = tblTemp.Spell_Type;
		pMagicTbl->excute_Type = tblTemp.Excute_Type;
		pMagicTbl->magic_Type = tblTemp.magic_Type;
		pMagicTbl->Price = tblTemp.Price;
		pMagicTbl->Exp = tblTemp.Exp;
		pMagicTbl->Learnable = tblTemp.Learnable;
		pMagicTbl->nSummonMax = tblTemp.nSummonMax;       // CSD-030314
		pMagicTbl->nCombatCount = tblTemp.nCombatCount; // CSD-030314
		pMagicTbl->nResist = tblTemp.nResist;
		pMagicTbl->nRiseFall = tblTemp.nRiseFall;
		tblMagic.AddNew(pMagicTbl->serial_Num);
	}
	
	SQLFreeStmt(hStmt, SQL_DROP);
	return (tblMagic.Save("./output/Thunder.ab")) ? 1:-1;
}

⌨️ 快捷键说明

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