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

📄 mysql.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) 
	{
		retcode= SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_LONGVARCHAR, filelen,	0, contents,			0, &cbcontentslen); 
		
		if(retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
		{
			SQLFreeStmt(hstmt, SQL_DROP);
			printf("\nBinding FAIL!!!") ;
			return -5 ;
		}
		
		cbcontentslen		= SQL_LEN_DATA_AT_EXEC(0);
		retcode = SQLExecute(hstmt) ;
		
		while(retcode == SQL_NEED_DATA) 
		{      
			retcode = SQLParamData(hstmt, &pParamData);
			if(retcode == SQL_NEED_DATA) 
			{
				if(pParamData == contents ) 	SQLPutData(hstmt, contents, filelen );
			}
			else break ;
		}
		
		retcode = SQLExecute(hstmt) ;
		
		if(retcode == SQL_NEED_DATA)
		{
			retcode= SQLCancel(hstmt) ;// 020620 YGI
			retcode= SQLFreeStmt(hstmt, SQL_RESET_PARAMS);
			//retcode= SQLTransact(SQL_NULL_HENV, hDBC, SQL_COMMIT);
			if(retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) {
				MyLog(LOG_NORMAL, "Transact commit Error") ;
			}
			//printf("\nTransact & free") ;
			return(1); // succeed
		}
		else
		{
			displaySQLError(hstmt) ;
			//SQLTransact(SQL_NULL_HENV, hDBC, SQL_ROLLBACK);
			SQLFreeStmt(hstmt, SQL_DROP);
			return(-3); 
		}
	}	
	//////////////////////////////////////////////////////////////////////////////////////////////////////
	return 0;
}		


// 0305 YGI
int GetTitleBBS( int count, int ct[10], TIMESTAMP_STRUCT date[10], char name[10][ FILENAME_MAX], char title[10][ FILENAME_MAX] )
{		
	SDWORD		cbValue;
	HSTMT		hStmt = NULL;
	RETCODE		retCode;
	char		szQuerry[128];
	DWORD		bbs_count=0;		// 傍瘤荤亲狼 醚 俺荐
	int max=10;		
	
	
	sprintf( szQuerry, "SELECT no FROM bbs ORDER BY no DESC" );
	SQLAllocStmt(hDBC, &hStmt);
	
	retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
	if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
	{	
		retCode = SQLFetch( hStmt );
		retCode = SQLGetData(hStmt, 1, SQL_C_ULONG,  &bbs_count, 0, &cbValue);
		SQLFreeStmt(hStmt, SQL_DROP);
		
		bbs_count -= count*10;
		if( bbs_count > 0 && bbs_count < 10 )
		{
			max = bbs_count;
		}
		else if( bbs_count < 0 ) return 0;
		
		sprintf( szQuerry, "select no, name, title, date from bbs order by no DESC" );
		SQLAllocStmt(hDBC, &hStmt);
		retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
		if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
		{	
			for( int i = 0 ; i < max ; i ++)
			{
				retCode = SQLFetch( hStmt );
				retCode = SQLGetData(hStmt, 1, SQL_C_ULONG,		&ct[i],	0, &cbValue);
				retCode = SQLGetData(hStmt, 2, SQL_C_CHAR,		&name[i],  FILENAME_MAX, &cbValue);
				retCode = SQLGetData(hStmt, 3, SQL_C_CHAR,		&title[i], FILENAME_MAX, &cbValue);
				retCode = SQLGetData(hStmt, 4, SQL_C_TIMESTAMP, &date[i],  sizeof( TIMESTAMP_STRUCT ), &cbValue);
			}
		}
		
		if(retCode == SQL_SUCCESS)
		{
			SQLFreeStmt(hStmt, SQL_DROP);
			return ( max );			// 啊廉柯 单捞磐狼 俺荐甫 府畔秦霖促.
		}
		else 
		{
			SQLFreeStmt(hStmt, SQL_DROP);		// 0308 YGI
			return( 0 );
		}
	}	
	SQLFreeStmt(hStmt, SQL_DROP);		// 0308 YGI
	return( 0 );
}		



int GetContentsBBS( char *date, char *con )
{
	SDWORD		cbValue;
	HSTMT		hStmt = NULL;
	RETCODE		retCode;
	char		szQuerry[128];
	
	sprintf( szQuerry, "select con from bbs where date = '%s'", date );
	
	SQLAllocStmt(hDBC, &hStmt);
	retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS);
	if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
	{	
		//if( count == 0 )	
		retCode = SQLFetch( hStmt );
		retCode = SQLGetData(hStmt, 1, SQL_C_CHAR,		con, 0, &cbValue);
		
		if(retCode == SQL_SUCCESS)
		{
			SQLFreeStmt(hStmt, SQL_DROP);
			return (1);
		}
		else 
		{
			SQLFreeStmt(hStmt, SQL_DROP);		// 0308 YGI
			return( 0 );
		}
	}
	SQLFreeStmt(hStmt, SQL_DROP);		// 0308 YGI
	return 1;
}	







SkillMain SkillTbl[ MAX_SKILLMAIN];

int InitSkillTable( void )
{
	if( MAX_SKILLMAIN <= 0) return -4; 
	
	HSTMT hStmt= NULL ;
	RETCODE ret ;
	char query_stmt[80]= {0, } ;
	SDWORD cbValue ;
	int c;
	
	SQLAllocStmt(hDBC, &hStmt);
	
	strcpy(query_stmt, "select * from SkillMain") ;
	ret= SQLExecDirect(hStmt, (UCHAR *)query_stmt, SQL_NTS) ;
	
	if(ret != SQL_SUCCESS_WITH_INFO && ret != SQL_SUCCESS) {
		MyLog( LOG_NORMAL, "SkillMain: ExecDirect Error ") ;
		SQLFreeStmt(hStmt, SQL_DROP);
		return -1 ;
	}
	
	//SQLNumResultCols(hStmt, &nCols) ;
	ret= SQLFetch(hStmt) ;
	if(ret != SQL_SUCCESS_WITH_INFO && ret != SQL_SUCCESS) 
	{
		MyLog( LOG_NORMAL, "SkillMain:  Fetch Error ") ;
		return -1 ;
	}
	
	int tno;
	
	c = 1;
	while(c < MAX_SKILLMAIN && ret == SQL_SUCCESS)
	{
		ret = SQLGetData(hStmt,  1, SQL_C_LONG,	&tno,			 0, &cbValue);
		SkillTbl[tno].NO = tno;
		ret = SQLGetData(hStmt,  2, SQL_C_CHAR,		SkillTbl[tno].Skill_Minute,		30, &cbValue);
		EatRearWhiteChar( SkillTbl[tno].Skill_Minute );
		ret = SQLGetData(hStmt,  3, SQL_C_LONG,	&SkillTbl[tno].Class_Warrior,	0, &cbValue);
		ret = SQLGetData(hStmt,  4, SQL_C_LONG,	&SkillTbl[tno].Class_Thief	,	0, &cbValue);
		ret = SQLGetData(hStmt,  5, SQL_C_LONG,	&SkillTbl[tno].Class_Archery,	0, &cbValue);
		ret = SQLGetData(hStmt,  6, SQL_C_LONG,	&SkillTbl[tno].Class_Wizard	,	0, &cbValue);
		ret = SQLGetData(hStmt,  7, SQL_C_LONG,	&SkillTbl[tno].Class_Priest	,	0, &cbValue);
		ret = SQLGetData(hStmt,  8, SQL_C_LONG,	&SkillTbl[tno].Select_Farmer,			 0, &cbValue);
		ret = SQLGetData(hStmt,  9, SQL_C_LONG,	&SkillTbl[tno].Select_miner	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 10, SQL_C_LONG,	&SkillTbl[tno].Select_fisher,			 0, &cbValue);
		ret = SQLGetData(hStmt, 11, SQL_C_LONG,	&SkillTbl[tno].Select_Lumberjack,		 0, &cbValue);
		ret = SQLGetData(hStmt, 12, SQL_C_LONG,	&SkillTbl[tno].Select_Butcher,			 0, &cbValue);
		ret = SQLGetData(hStmt, 13, SQL_C_LONG,	&SkillTbl[tno].Select_Herbdigger,		 0, &cbValue);
		ret = SQLGetData(hStmt, 14, SQL_C_LONG,	&SkillTbl[tno].Select_herdman,			 0, &cbValue);
		ret = SQLGetData(hStmt, 15, SQL_C_LONG,	&SkillTbl[tno].Select_Carpenter	,		 0, &cbValue);
		ret = SQLGetData(hStmt, 16, SQL_C_LONG,	&SkillTbl[tno].Select_Blacksmith,		 0, &cbValue);
		ret = SQLGetData(hStmt, 17, SQL_C_LONG,	&SkillTbl[tno].Select_Cooking,			 0, &cbValue);
		ret = SQLGetData(hStmt, 18, SQL_C_LONG,	&SkillTbl[tno].Select_Tailoring	,		 0, &cbValue);
		ret = SQLGetData(hStmt, 19, SQL_C_LONG,	&SkillTbl[tno].Select_Bowcraft_Fletcher, 0, &cbValue);
		ret = SQLGetData(hStmt, 20, SQL_C_LONG,	&SkillTbl[tno].Select_Alchemy	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 21, SQL_C_LONG,	&SkillTbl[tno].Select_Candlemaker	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 22, SQL_C_LONG,	&SkillTbl[tno].Select_Merchant	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 23, SQL_C_LONG,	&SkillTbl[tno].Howto	,			 0, &cbValue);   
		ret = SQLGetData(hStmt, 24, SQL_C_LONG,	&SkillTbl[tno].mouse_change	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 25, SQL_C_LONG,	&SkillTbl[tno].Interface1	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 26, SQL_C_LONG,	&SkillTbl[tno].Interface2	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 27, SQL_C_LONG,	&SkillTbl[tno].Success_interface	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 28, SQL_C_LONG,	&SkillTbl[tno].Fail_Interface	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 29, SQL_C_LONG,	&SkillTbl[tno].Work_target_self	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 30, SQL_C_LONG,	&SkillTbl[tno].Work_target_othercharacter,			 0, &cbValue);
		ret = SQLGetData(hStmt, 31, SQL_C_LONG,	&SkillTbl[tno].Work_target_object	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 32, SQL_C_LONG,	&SkillTbl[tno].Work_target_Item	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 33, SQL_C_LONG,	&SkillTbl[tno].Work_target_earth	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 34, SQL_C_LONG,	&SkillTbl[tno].Work_target_water	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 35, SQL_C_LONG,	&SkillTbl[tno].Work_target_forest	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 36, SQL_C_LONG,	&SkillTbl[tno].Work_target_interface	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 37, SQL_C_LONG,	&SkillTbl[tno].Tool	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 38, SQL_C_LONG,	&SkillTbl[tno].Object_Workshop	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 39, SQL_C_LONG,	&SkillTbl[tno].Object_target	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 40, SQL_C_LONG,	&SkillTbl[tno].Obj_Attribute	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 41, SQL_C_LONG,	&SkillTbl[tno].Resource1	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 42, SQL_C_LONG,	&SkillTbl[tno].Resource1_quantity	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 43, SQL_C_LONG,	&SkillTbl[tno].Resourece2	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 44, SQL_C_LONG,	&SkillTbl[tno].Resource2_quantity	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 45, SQL_C_LONG,	&SkillTbl[tno].Resource3	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 46, SQL_C_LONG,	&SkillTbl[tno].Resource3_quantity	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 47, SQL_C_LONG,	&SkillTbl[tno].Produce_type	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 48, SQL_C_LONG,	&SkillTbl[tno].Produce_Fix	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 49, SQL_C_LONG,	&SkillTbl[tno].Ability_Fix	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 50, SQL_C_LONG,	&SkillTbl[tno].Time_judge	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 51, SQL_C_LONG,	&SkillTbl[tno].Time_Maintain	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 52, SQL_C_LONG,	&SkillTbl[tno].Ability_min	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 53, SQL_C_LONG,	&SkillTbl[tno].Ability_max	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 54, SQL_C_LONG,	&SkillTbl[tno].Plus_element	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 55, SQL_C_LONG,	&SkillTbl[tno].Plus_type	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 56, SQL_C_LONG,	&SkillTbl[tno].Plus_Rate	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 57, SQL_C_LONG,	&SkillTbl[tno].Plus_min	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 58, SQL_C_LONG,	&SkillTbl[tno].SP_demand	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 59, SQL_C_LONG,	&SkillTbl[tno].Success	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 60, SQL_C_LONG,	&SkillTbl[tno].effectCharobj_status	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 61, SQL_C_LONG,	&SkillTbl[tno].Change_enermy_status	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 62, SQL_C_LONG,	&SkillTbl[tno].Change_enermy_status2	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 63, SQL_C_LONG,	&SkillTbl[tno].charvisible	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 64, SQL_C_LONG,	&SkillTbl[tno].Effectobj_status	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 65, SQL_C_LONG,	&SkillTbl[tno].Changeobj_attribute	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 66, SQL_C_LONG,	&SkillTbl[tno].changeobj_visible	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 67, SQL_C_LONG,	&SkillTbl[tno].Skill2job	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 68, SQL_C_LONG,	&SkillTbl[tno].effectChar_hide	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 69, SQL_C_LONG,	&SkillTbl[tno].Increase_mov	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 70, SQL_C_LONG,	&SkillTbl[tno].Increse_Life	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 71, SQL_C_LONG,	&SkillTbl[tno].Increse_mana	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 72, SQL_C_LONG,	&SkillTbl[tno].Increse_health	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 73, SQL_C_LONG,	&SkillTbl[tno].Change_mor	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 74, SQL_C_LONG,	&SkillTbl[tno].Obj_attribute1	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 75, SQL_C_LONG,	&SkillTbl[tno].ChangeObj_attribute1	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 76, SQL_C_LONG,	&SkillTbl[tno].Display_LV	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 77, SQL_C_LONG,	&SkillTbl[tno].DisPlay_Wis	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 78, SQL_C_LONG,	&SkillTbl[tno].Display_Int	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 79, SQL_C_LONG,	&SkillTbl[tno].DisPlay_Life	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 80, SQL_C_LONG,	&SkillTbl[tno].DisPlay_Health	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 81, SQL_C_LONG,	&SkillTbl[tno].DisPlay_Damage	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 82, SQL_C_LONG,	&SkillTbl[tno].DisPlay_AC	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 83, SQL_C_LONG,	&SkillTbl[tno].DisPlay_inventory	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 84, SQL_C_LONG,	&SkillTbl[tno].Display_Foot	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 85, SQL_C_LONG,	&SkillTbl[tno].DisPlay_Item_Changeall	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 86, SQL_C_LONG,	&SkillTbl[tno].DisPlay_royalty	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 87, SQL_C_LONG,	&SkillTbl[tno].DisPlay_Item_Status	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 88, SQL_C_LONG,	&SkillTbl[tno].DisPlay_name	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 89, SQL_C_LONG,	&SkillTbl[tno].DisPlay_item_Price	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 90, SQL_C_LONG,	&SkillTbl[tno].effect	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 91, SQL_C_LONG,	&SkillTbl[tno].effect_wave	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 92, SQL_C_LONG,	&SkillTbl[tno].effect_race	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 93, SQL_C_LONG,	&SkillTbl[tno].Success_range	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 94, SQL_C_LONG,	&SkillTbl[tno].Damage	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 95, SQL_C_LONG,	&SkillTbl[tno].Status_self	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 96, SQL_C_LONG,	&SkillTbl[tno].Effect1	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 97, SQL_C_LONG,	&SkillTbl[tno].Effect_wave1	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 98, SQL_C_LONG,	&SkillTbl[tno].Enemy_status	,			 0, &cbValue);
		ret = SQLGetData(hStmt, 99, SQL_C_LONG,	&SkillTbl[tno].Range	,			 0, &cbValue);
		ret = SQLGetData(hStmt,100, SQL_C_LONG,	&SkillTbl[tno].Enermy_alram	,			 0, &cbValue);
		ret = SQLGetData(hStmt,101, SQL_C_LONG,	&SkillTbl[tno].map	,			 0, &cbValue);
		ret = SQLGetData(hStmt,102, SQL_C_LONG,	&SkillTbl[tno].Curser1	,			 0, &cbValue);
		ret = SQLGetData(hStmt,103, SQL_C_LONG,	&SkillTbl[tno].Curser2	,			 0, &cbValue);
		ret = SQLGetData(hStmt,104, SQL_C_LONG,	&SkillTbl[tno].Curser3	,			 0, &cbValue);
		ret = SQLGetData(hStmt,105, SQL_C_LONG,	&SkillTbl[tno].point	,			 0, &cbValue);
		ret = SQLGetData(hStmt,106, SQL_C_LONG,	&SkillTbl[tno].inclusive ,			 0, &cbValue);
		ret = SQLGetData(hStmt,107, SQL_C_LONG,	&SkillTbl[tno].money ,				 0, &cbValue);
		ret = SQLGetData(hStmt,108, SQL_C_LONG,	&SkillTbl[tno].need_exp,			 0, &cbValue);
		ret = SQLGetData(hStmt,109, SQL_C_LONG,	&SkillTbl[tno].MotherSkillType,		 0, &cbValue);
		ret = SQLGetData(hStmt,110, SQL_C_LONG,	&SkillTbl[tno].MotherSkillExp,		 0, &cbValue);
		
		// 0619.......
		ret = SQLGetData(hStmt,111, SQL_C_ULONG,	&SkillTbl[tno].k1,		 0, &cbValue);
		ret = SQLGetData(hStmt,112, SQL_C_ULONG,	&SkillTbl[tno].k2,		 0, &cbValue);
		
		if(ret != SQL_SUCCESS_WITH_INFO && ret != SQL_SUCCESS) { MyLog( LOG_NORMAL, "SkillMain: Error!!! (%d)", ret) ; return -1 ;}
		c++ ;
		ret= SQLFetch(hStmt) ;
	}	
	
	SQLFreeStmt(hStmt, SQL_DROP) ;
	
	FILE *fp;
	int  i;
	char * tt = (char *)SkillTbl;
	char crc = 0;
	for( i = 0 ; i < MAX_SKILLMAIN * sizeof(SkillMain) ; i ++ )
	{	
		*tt += ( 200 + i );
		crc  += ((*tt + *tt ) - i);
		tt ++;
	}	
	
	fp = fopen( "./Output/skilltable.bin", "wb" );
	if( fp )
	{	
		fwrite( &crc, 1,1, fp );
		fwrite( SkillTbl, MAX_SKILLMAIN, sizeof(SkillMain), fp );
		fclose(fp);
	}	
	
	tt = (char *)SkillTbl;
	for( i = 0 ; i < MAX_SKILLMAIN * sizeof(SkillMain) ; i ++ )
	{	
		*tt -= ( 200 + i );
		tt ++;
	}	
	
	MyLog( LOG_NORMAL, "	.'SkillMain'            %4d data Loaded", c) ;
	
	return c ;			
}							






t_SkillMapTable SkillMapTable[ MAX_SKILLMAPTABLE];
int             SkillMapTableCount;

⌨️ 快捷键说明

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