www.pudn.com > back.rar > analizetxt.cpp


#include "Base.H" 
#include "Block.H" 
#include "skill.h" 
 
#include "../CUserInfo/UserInfo.H" 
#include "../protocol/Protocol.H"	 
 
#include "item.h" 
 
#include "npc.h" 
#include "xblock.h" 
#include "Clock.H" 
#include "MAP.H" 
#include "CWayAi.h" 
#include "xblock_table.h" 
#include "appear.h" 
#include "disappear.h" 
#include "buy.h" 
#include "sell.h" 
#include "party.h" 
#include "quest.h" 
 
 
//#include "skill.h" 
#include "trade.h" 
#include "guild.h" 
#include "PrivateShop.h"	//ÀÓâ¿ø Ãß°¡. 
 
#include "Server.H" 
#include "Main.H" 
#include "Process.H" 
 
#include "AnalizeTxt.h" 
 
 
void	Analize_SpeedHackTxt( FILE* fp )		// ½ºÇÙ Á¦ÇѼö ÀÐ±â  
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{ 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
/*		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_GameServer.m_nFastSpeedLimit = atoi( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_GameServer.m_nSlowSpeedLimit = atoi( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_GameServer.m_nInitCount = atoi( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_GameServer.m_nSpeedHackLoadingLimit = atoi( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_GameServer.m_nTimePacketLimit = atoi( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_GameServer.m_nMoveMaxPacket = atoi( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_GameServer.m_nAttackMaxPacket = atoi( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_GameServer.m_nSoulAttackMaxPacket = atoi( token );*/ 
 
		// 2004.9.13 Donny SPEEDHACK 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		if ( token == NULL ) 
			MessageBox( g_GameServer.m_hwnd, "speedhackcount.txt error", "Error", MB_OK ); 
		else g_GameServer.m_nFastSpeedLimit = atoi( token ); 
 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		if ( token == NULL ) 
			MessageBox( g_GameServer.m_hwnd, "speedhackcount.txt error", "Error", MB_OK ); 
		else g_GameServer.m_nInitCount = atoi( token );				// »ç¿ë¾ÈµÇ°í ÀÖÀ½  
 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		if ( token == NULL ) 
			MessageBox( g_GameServer.m_hwnd, "speedhackcount.txt error", "Error", MB_OK ); 
		else g_GameServer.m_nTimePacketLimit = atoi( token ); 
 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		if ( token == NULL ) 
			MessageBox( g_GameServer.m_hwnd, "speedhackcount.txt error", "Error", MB_OK ); 
		else g_GameServer.m_nMoveMaxPacket = atoi( token ); 
 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		if ( token == NULL ) 
			MessageBox( g_GameServer.m_hwnd, "speedhackcount.txt error", "Error", MB_OK ); 
		else g_GameServer.m_nAttackMaxPacket = atoi( token ); 
 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		if ( token == NULL ) 
			MessageBox( g_GameServer.m_hwnd, "speedhackcount.txt error", "Error", MB_OK ); 
		else g_GameServer.m_nSoulAttackMaxPacket = atoi( token );    // »ç¿ë¾ÈµÇ°í ÀÖÀ½  
 
		bLine = FALSE; 
		 
		if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
// 2004.11.29 Donny PK½Ã½ºÅÛ°ü·Ã¹®¼­È­  
void	Analize_PKSystem( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{ 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		if ( token == NULL ) 
			MessageBox( g_GameServer.m_hwnd, "pksysystem.txt error", "Error", MB_OK ); 
		else g_Pksystem[tot].iFirstValue = atoi( token ); 
 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ ÀÐ±â  
		{							 
			token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "pksysystem.txt error", "Error", MB_OK ); 
			else g_Pksystem[tot].iSecondValue = atoi( token ); // PKcountÁÙÀ̱â À§ÇÑ Ä«¿¥°ª °è»ê°ø½Äµ¥ÀÌÅÍ 
			 
			token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "pksysystem.txt error", "Error", MB_OK ); 
			else g_Pksystem[tot].iThirdValue = atoi( token );  // PKcountÁÙÀ̱â À§ÇÑ Ä«¿¥°ª °è»ê°ø½Äµ¥ÀÌÅÍ 
 
			token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "pksysystem.txt error", "Error", MB_OK ); 
			else g_Pksystem[tot].iFourthValue = atoi( token );    // 0À̸é Ÿ¶ôµµ Áõ°¡ÇÏÁö ¾Ê´Â´Ù. 
			 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
void	Analize_Esoterica( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{ 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		if ( token == NULL ) 
			MessageBox( g_GameServer.m_hwnd, "e_zone.txt error", "Error", MB_OK ); 
		else g_EsotericaZone[tot].byMap = atoi( token ); 
 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ ÀÐ±â  
		{							 
			token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "e_zone.txt error", "Error", MB_OK ); 
			else g_EsotericaZone[tot].wX1 = atoi( token ); 
			 
			token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "e_zone.txt error", "Error", MB_OK ); 
			else g_EsotericaZone[tot].wY1 = atoi( token ); 
 
			token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "e_zone.txt error", "Error", MB_OK ); 
			else g_EsotericaZone[tot].wX2 = atoi( token ); 
			 
			token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "e_zone.txt error", "Error", MB_OK ); 
			else g_EsotericaZone[tot].wY2 = atoi( token ); 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
	 
 
} 
 
void Analize_ServerNumTxt( FILE* fp  ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{ 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		int nNumber = atoi( token ); 
		g_ServerArray.MYServer = nNumber;		// °ÔÀÓÀÎÆ÷¿¡¼­ °¥¸®´Ï±î..·Î±×Àμ­¹ö¿¡¼­ ¾Ë¼ö ÀÖ´Ù 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_ServerArray.GateWayCount = atoi(token); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_ServerArray.Info = atoi(token); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_ServerArray.GameDB = atoi(token); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_ServerArray.Log = atoi(token); 
		 
//ncash 
#ifdef CHINA2 
	#ifdef NCASH 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_ServerArray.billingserver = atoi(token);		 
 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_ServerArray.localnumber = atoi(token);				 
	#endif 
#endif 
		 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ ÀÐ±â  
		{							 
			token = NULL; 
		} 
		bLine = FALSE; 
													 
		if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
void	Analize_HorseTxt( FILE* fp  ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{ 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		// level 
		g_HorseInfo[tot].m_level = atoi( token ); 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ ÀÐ±â  
		{							 
			// ¼ý °ø°Ý 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_HorseInfo[tot].m_MaleAtt = atoi( token ); 
			 
			// ¼ý ¹æ¾î·Â  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_HorseInfo[tot].m_MaleDef = atoi( token ); 
 
			// ¾Ï °ø°Ý 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_HorseInfo[tot].m_FemaleAtt = atoi( token ); 
 
			// ¾Ï ¹æ¾î·Â 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_HorseInfo[tot].m_FemaleDef = atoi( token ); 
 
			// ÃÖ´ë °æÇèÄ¡ 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_HorseInfo[tot].m_Maxexp = atoi( token ); 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
	 
} 
 
 
 
void	Analize_JewelTxt( FILE* fp  ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{ 
		if( string[ 0 ] == '/' )  // '/'  ¸¸³ª¸é Á¾·á 
		{ 
			return; 
		} 
 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		// num 
		g_JewelInfo[tot].m_num = atoi( token ); 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ ÀÐ±â  
		{							 
			//  jewel index 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_JewelInfo[tot].m_ItemIndex = atoi( token ); 
			 
			// jewel caem 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_JewelInfo[tot].m_caem = atoi( token ); 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
 
void	 Analize_WarpZoneTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		// map id 
		g_WarpID[tot].m_byID = atoi( token ); 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{							 
			// map pos 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_WarpID[tot].m_pos1x = atoi( token ); 
			 
			// map pos 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_WarpID[tot].m_pos1y = atoi( token ); 
 
			// map pos 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_WarpID[tot].m_pos2x = atoi( token ); 
 
			// map pos 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_WarpID[tot].m_pos2y = atoi( token ); 
			 
			// map pos 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_WarpID[tot].m_pos3x = atoi( token ); 
			 
			// map pos 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_WarpID[tot].m_pos3y = atoi( token ); 
 
			// map pos 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_WarpID[tot].m_pos4x = atoi( token ); 
 
			// map pos 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_WarpID[tot].m_pos4y = atoi( token ); 
 
			// map floor 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_WarpID[tot].m_byFloor = atoi( token ); 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
 
} 
 
 
void Analize_PuzzleDat( FILE* fp ) 
{ 
	for( int i = 0; i < 256; i++ ) 
	{ 
		fread( g_Puzzle[i], sizeof( BYTE ), 5, fp ); 
	} 
} 
 
 
// ¿öÇÁÁ¤º¸ Àбâ 
void	Analize_WarpTxt( FILE* fp, Map_Index* buf ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		// map id 
		buf[tot].m_Map_ID = atoi( token ); 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{							 
			// map pos 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			buf[tot].m_Server_No = atoi( token ); 
//			buf[tot].m_Server_No = g_ServerArray.Bravo_MYServer; 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			strcpy( buf[tot].m_Map_Name, token ); 
 
			token = strtok( NULL, splitter ); 
			buf[tot].m_Map_Size = atoi( token ); 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
 
// ¾ÆÀÌÅÛÁ¤º¸ Àбâ 
void	Analize_ItemTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 1024 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = "\n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 1024, fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 1024, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		// ¼ö·® 
		g_Item_Index[tot].m_item_id.m_byItemType[ITEM_KEY_COUNT] = atoi( token ); 
		g_Item_Index[tot].m_item_id.m_byItemType[ITEM_KEY_COUNT] =  
			g_Item_Index[tot].m_item_id.m_byItemType[ITEM_KEY_COUNT] << 4; 
		bLine = TRUE; 
 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{									 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¼ºº° 
			BYTE sex = (BYTE)atoi( token ); 
			g_Item_Index[tot].m_item_id.m_byItemType[ITEM_KEY_SEX] += sex; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á¾Á· 
			BYTE race = (BYTE)atoi( token ); 
			g_Item_Index[tot].m_item_id.m_byItemType[ITEM_KEY_RACE] = ( race << 4 ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á߿䵵 
			BYTE grav = (BYTE)atoi( token ); 
			g_Item_Index[tot].m_item_id.m_byItemType[ITEM_KEY_GRAV] += grav; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// 1ºÐ·ù 
			BYTE sort = (BYTE)atoi( token ); 
			g_Item_Index[tot].m_item_id.m_byItemType[ITEM_KEY_CLASS] = ( sort << 4 ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// 2ºÐ·ù 
			sort = (BYTE)atoi( token ); 
			g_Item_Index[tot].m_item_id.m_byItemType[ITEM_KEY_TYPE] += sort; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ºÐ·ù ¹øÈ£ 
			BYTE number = (BYTE)atoi( token ); 
			g_Item_Index[tot].m_item_id.m_byItemType[ITEM_KEY_NUMBER] = number; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// »ç¿ë°¡´ÉÁ÷¾÷  
			g_Item_Index[tot].m_UseJob = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¼Ó¼º 
			g_Item_Index[tot].m_attr =  atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			 
			// ¼ö¸í...Ä¡´Â Ƚ¼ö´ç ¼ö¸í 1ÀÌ ÁØ´Ù 
			g_Item_Index[tot].m_live =  atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¹°¸®°ø°Ý·Â 
			g_Item_Index[tot].m_Attack_Ph  = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¹°¸®¹æ¾î·Â  
			g_Item_Index[tot].m_Defense_Ph = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ȸÇÇÀ² 
			g_Item_Index[tot].m_Evade_Per = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			 
			// ¼º°ø·ü 
			g_Item_Index[tot].m_Succ_Per = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý½ºÇǵå 
			g_Item_Index[tot].m_Attack_speed = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¸ÅÁ÷°ø°Ý·Â 
			g_Item_Index[tot].m_Attack_Magic = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¸ÅÁ÷¹æ¾î·Â 
			g_Item_Index[tot].m_Defense_Magic = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// »çÁ¤°Å¸®  
			g_Item_Index[tot].m_item_range = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Âø¿ë ÀçÇÑ ·¹º§    
			g_Item_Index[tot].m_item_level = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á¦ÇÑÆÄ¿ö  
			g_Item_Index[tot].m_Limit_Pow = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á¦Çѵ¦½º 
			g_Item_Index[tot].m_Limit_Dex = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á¦ÇÑÀ§Áî  
			g_Item_Index[tot].m_Limit_Wis = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
 
			// ȸº¹ 
			g_Item_Index[tot].m_Recover = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ȸº¹·® 
			g_Item_Index[tot].m_Recover_Value = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¹°¸®°ø°Ý·Â Çâ»ó 
			g_Item_Index[tot].m_Attack_Ph_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¹°¸®¹æ¾î·Â Çâ»ó 
			g_Item_Index[tot].m_Defense_Ph_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¸ÅÁ÷°ø°Ý·Â Çâ»ó 
			g_Item_Index[tot].m_Attack_Magic_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¸ÅÁ÷¹æ¾î·Â Çâ»ó 
			g_Item_Index[tot].m_Defense_Magic_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý½ºÇǵå Çâ»ó 
			g_Item_Index[tot].m_Attack_Speed_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ȸÇÇÀ² Çâ»ó 
			g_Item_Index[tot].m_Evade_Per_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Set¾ÆÀÌÅÛ ¹øÈ£ 
			g_Item_Index[tot].m_SetItem_No = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ÆÛÁñ¾ÆÀÌÅÛ ¹øÈ£ 
			g_Item_Index[tot].m_PuzzleItem_No = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// º¯Çü¿©ºÎ  
			g_Item_Index[tot].m_bChange = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// º¯ÇüÈ®·ü 
			g_Item_Index[tot].m_Change_Per = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			 
			// °­È­´Ü°è 
			g_Item_Index[tot].m_Item_Maxup = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ½ºÅ³À¯¹« 
			g_Item_Index[tot].m_bSkill = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ½ºÅ³Á¾·ù 
			g_Item_Index[tot].m_Skill_Kind = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¿¬¼Ó°ø°ÝÆÇ´Ü 
			g_Item_Index[tot].m_Serise_Attack = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Å©±â 
			g_Item_Index[tot].m_Size = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Èû...¸»°ø 
			g_Item_Index[tot].m_Pow_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// µ¦...¸»½º 
			g_Item_Index[tot].m_Dex_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// À§Áö 
			g_Item_Index[tot].m_Wis_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// HP UP 
			g_Item_Index[tot].m_HP_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// MP UP 
			g_Item_Index[tot].m_MP_Up = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ÃÖ¼Òµ¥¹ÌÁö Áõ°¡È®·ü 
			g_Item_Index[tot].m_MinDamagePercent = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ÃÖ´ëµ¥¹ÌÁö Áõ°¡È®·ü 
			g_Item_Index[tot].m_MaxDamagePercent = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ½ºÅ³µ¥¹ÌÁö Áõ°¡È®·ü  
			g_Item_Index[tot].m_SkillDamagePercent = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Àû¹æ¾î·Â ¹«½Ã°ø°ÝÈ®·ü  
			g_Item_Index[tot].m_EnemyDefencePercent = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¹°¸®°ø°Ý µ¥¹ÌÁö °¨¼ÒÈ®·ü 
			g_Item_Index[tot].m_PhysicalDamagePercent = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¸¶¹ý°ø°Ý µ¥¹ÌÁö °¨¼ÒÈ®·ü  
			g_Item_Index[tot].m_MagicDamagePercent = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý½Ã ÀÏÁ¤ HP ȹµæÈ®·ü  
			g_Item_Index[tot].m_HPGetPercent = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý½Ã ÀÏÁ¤ MP ȹµæÈ®·ü  
			g_Item_Index[tot].m_MPGetPercent = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý½Ã ÀÏÁ¤ HP/MP ȹµæ È®·ü 
			g_Item_Index[tot].m_MPHPGetPercent = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// »ç¿ë MP °¨¼Ò È®·ü 
			g_Item_Index[tot].m_UsageMPPercent = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			 
			// 0329-LIM 
			g_Item_Index[tot].m_Change = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °¡°Ý  
			g_Item_Index[tot].m_item_price = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// À̸§ 
			strcpy( g_Item_Index[tot].m_Name, token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			/*			 
			// ´É·ÂÄ¡1 
			g_Item_Index[tot].m_item_effect[0].m_effect_id = (ItemEffect)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ´É·ÂÄ¡1 °ª 
			g_GameServer.Set_Item_Stat( token, &g_Item_Index[tot], 0 ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ´É·ÂÄ¡2 
			g_Item_Index[tot].m_item_effect[1].m_effect_id = (ItemEffect)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ´É·ÂÄ¡2 °ª 
			g_GameServer.Set_Item_Stat( token, &g_Item_Index[tot], 1 ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ´É·ÂÄ¡3 
			g_Item_Index[tot].m_item_effect[2].m_effect_id = (ItemEffect)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ´É·ÂÄ¡3 °ª 
 
			g_GameServer.Set_Item_Stat( token, &g_Item_Index[tot], 2 ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// µô·¹ÀÌ 
			g_Item_Index[tot].m_item_delay = (BYTE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// »çÁ¤°Å¸® 
			g_Item_Index[tot].m_item_range = (BYTE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °¡°Ý 
			g_Item_Index[tot].m_item_price = (BYTE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °­È­Á¦ÇÑ 
			g_Item_Index[tot].m_item_maxup = (BYTE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á¦ÇÑ·¹º§ 
			g_Item_Index[tot].m_item_level = (BYTE)atoi( token ); 
			token = 
				strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á¦ÇÑ Èû 
			g_Item_Index[tot].m_item_str = (BYTE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á¦ÇÑ ¹Î 
			g_Item_Index[tot].m_item_dex = (BYTE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á¦ÇÑ ÄÜ 
			g_Item_Index[tot].m_item_con = (BYTE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á¦ÇÑ ¸¶ 
			g_Item_Index[tot].m_item_wis = (BYTE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¼¼Æ®¹øÈ£ 
			g_Item_Index[tot].m_item_set = (BYTE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Ư¼ö È¿°ú 
			g_Item_Index[tot].m_item_special = (BYTE)atoi( token ); 
			*/ 
 
			 
			token = NULL; 
		} 
		bLine = FALSE; 
 
		tot++;											 
		if ( fgets( string, 1024 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
 
} 
 
void		Server::Set_Item_Stat( char* txt, Item_Index* target, int no ) 
{ 
	/* 
	char temp[10]; 
	strcpy( temp, txt ); 
	char *res = strchr( temp, ',' ); 
	int count = res - temp; 
	if( res != NULL ) 
	{		 
		char t[10]; 
		for( int i = 0; i < count; i++ ) 
		{ 
			t[i] = temp[i]; 
		} 
		target->m_item_effect[no].m_effect.m_byeffectvalue[0] = (BYTE)atoi( t ); 
		for( i = 0; i < 10; i++ ) 
		{ 
			if( i+count+1 < 10 ) 
				t[i] = temp[i+count+1]; 
			else break; 
		} 
		target->m_item_effect[no].m_effect.m_byeffectvalue[1] = (BYTE)atoi( t );		 
	} 
	else 
	{ 
		target->m_item_effect[no].m_effect.m_effectvalue = (short)atoi( txt ); 
	}*/ 
 
} 
 
// »óÁ¡¸ñ·Ï Àбâ 
void	Analize_MarketTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 256 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 256 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	int next = 0; 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 256, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
		 
		int count; 
		if( string[0] == '-' ) 
		{ 
			if( next == 0 ) tot = 0; 
			else tot = next; 
			count = 0; 
 
			if ( fgets( string, 256 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
				bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
			 
			token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
			// npc index 
			g_Market[tot].SellListIndex = atoi( token ); 
			bLine = TRUE; 
			if ( fgets( string, 256 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
				bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
			next++; 
		} 
		else 
		{ 
			// ÆÄ´Â ¸ñ·Ïµé 
			token = strtok( string, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_Market[tot].Sell_List.push_back( atoi( token ) ); 
			bLine = FALSE; 
														 
			if ( fgets( string, 256 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			{ 
				bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
			} 
		} 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
 
 
// npcµ¥ÀÌÅÍ ÆÄÀÏ Àбâ 
void	Analize_NPCTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 1024 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	if( fgets( string, 1024 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 1024, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		// npc id 
		int id = atoi( token ); 
		g_NPCInfoArray[ id ].m_NPC_ID = id; 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{									 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °æÇèÄ¡ 
			g_NPCInfoArray[ id ].m_NPC_EXP = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ·¹º§ 
			g_NPCInfoArray[ id ].m_NPC_LV = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// È®·ü 
			g_NPCInfoArray[ id ].m_Item_Percent = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¾ÆÀÌÅÛ 
			g_NPCInfoArray[ id ].m_Drop_NItem[0] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_NPCInfoArray[ id ].m_Drop_Percent[0] = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_NPCInfoArray[ id ].m_Drop_NItem[1] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_NPCInfoArray[ id ].m_Drop_Percent[1] = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_NPCInfoArray[ id ].m_Drop_NItem[2] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_NPCInfoArray[ id ].m_Drop_Percent[2] = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_NPCInfoArray[ id ].m_Drop_NItem[3] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_NPCInfoArray[ id ].m_Drop_Percent[3] = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_NPCInfoArray[ id ].m_Drop_NItem[4] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_NPCInfoArray[ id ].m_Drop_Percent[4] = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// 0329-LIM 
			g_NPCInfoArray[ id ].m_Drop_NItem[5] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_NPCInfoArray[ id ].m_Drop_Percent[5] = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_NPCInfoArray[ id ].m_Drop_NItem[6] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_NPCInfoArray[ id ].m_Drop_Percent[6] = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_NPCInfoArray[ id ].m_Drop_NItem[7] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_NPCInfoArray[ id ].m_Drop_Percent[7] = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_NPCInfoArray[ id ].m_Drop_NItem[8] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_NPCInfoArray[ id ].m_Drop_Percent[8] = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_NPCInfoArray[ id ].m_Drop_NItem[9] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_NPCInfoArray[ id ].m_Drop_Percent[9] = atoi( token); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_NPCInfoArray[ id ].m_Money_percent = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// µ· 
			g_NPCInfoArray[ id ].m_Drop_Money[0] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// µ· È®À² 
			g_NPCInfoArray[ id ].m_Money_Per[0] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// µ· 
			g_NPCInfoArray[ id ].m_Drop_Money[1] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// µ· È®À² 
			g_NPCInfoArray[ id ].m_Money_Per[1] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// µ· 
			g_NPCInfoArray[ id ].m_Drop_Money[2] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// µ· È®À² 
			g_NPCInfoArray[ id ].m_Money_Per[2] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// µ· 
			g_NPCInfoArray[ id ].m_Drop_Money[3] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// µ· È®À² 
			g_NPCInfoArray[ id ].m_Money_Per[3] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// µ· 
			g_NPCInfoArray[ id ].m_Drop_Money[4] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// µ· È®À² 
			g_NPCInfoArray[ id ].m_Money_Per[4] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°ÝÆÐÅÏ 
			g_NPCInfoArray[ id ].m_NPC_Pattern = (BYTE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¹°¸®°ø°Ý·Â 
			g_NPCInfoArray[ id ].m_NPC_Att[0] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// ¹°¸®°ø°Ý·Â 
			g_NPCInfoArray[ id ].m_NPC_Att[1] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// ¹°¸®°ø°Ý·Â 
			g_NPCInfoArray[ id ].m_NPC_Att[2] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// ¹°¸®°ø°Ý·Â 
			g_NPCInfoArray[ id ].m_NPC_Att[3] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// ¹°¸®°ø°Ý·Â 
			g_NPCInfoArray[ id ].m_NPC_Att[4] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¸¶¹ý °ø°Ý·Â 
			g_NPCInfoArray[ id ].m_NPC_Magic_Att[0] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// ¸¶¹ý °ø°Ý·Â 
			g_NPCInfoArray[ id ].m_NPC_Magic_Att[1] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			// ¸¶¹ý °ø°Ý·Â 
			g_NPCInfoArray[ id ].m_NPC_Magic_Att[2] = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¹°¸® ¹æ¾î·Â 
			g_NPCInfoArray[ id ].m_NPC_AC = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¸¶¹ý ¹æ¾î·Â 
			g_NPCInfoArray[ id ].m_NPC_Magic_AC = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¼º°øÀ² 
			g_NPCInfoArray[ id ].m_NPC_Suc_Rate = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¹°¸® ȸÇÇÀ² 
			g_NPCInfoArray[ id ].m_NPC_Evade_Rate = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¸¶¹ý ȸÇÇÀ² 
			g_NPCInfoArray[ id ].m_NPC_Magic_Evade_Rate = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ü·Â 
			g_NPCInfoArray[ id ].m_NPC_HP = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Å©±â 
			g_NPCInfoArray[ id ].m_size = (NPC_SIZE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¼Ó¼º 
			g_NPCInfoArray[ id ].m_property  = (NPC_PROPERTY) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// µîÀåºóµµ 
			g_NPCInfoArray[ id ].m_respawn_rate = (NPC_RESPAWN_RATE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// µîÀå½Ã°£ 
			g_NPCInfoArray[ id ].m_respawn_time = (NPC_RESPAWN_TIME) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°ÝŸÀÔ 
			g_NPCInfoArray[ id ].m_attack_type = (NPC_ATTACK_TYPE)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// À̵¿ ŸÀÔ 
			g_NPCInfoArray[ id ].m_move_type = (NPC_MOVE_TYPE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ÇൿŸÀÔ 
			g_NPCInfoArray[ id ].m_move_method = (NPC_MOVE_METHOD)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ÀüÅõŸÀÔ..¼±°ø ºñ¼±°ø À¯¹« 
			g_NPCInfoArray[ id ].m_search_type = (NPC_SEARCH_TYPE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¹æ¾îŸÀÔ 
			g_NPCInfoArray[ id ].m_defense_type = (NPC_DEFENSE_TYPE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °Ë»ö ¹üÀ§ 
			g_NPCInfoArray[ id ].m_searchrange = (BYTE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý »çÁ¤ °Å¸®(±Ù) 
			g_NPCInfoArray[ id ].m_attackrange = (BYTE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý »çÁ¤ °Å¸®(¿ø) 
			g_NPCInfoArray[ id ].m_attackrangemagic = (BYTE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// À̵¿ Á¦ÇÑ 
			g_NPCInfoArray[ id ].m_moverange = (BYTE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
/* 
			// °Ë»ö ¹üÀ§ 
			g_NPCInfoArray[ id ].m_searchrange = (NPC_SEARCH_RANGE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý ¹üÀ§ 
			g_NPCInfoArray[ id ].m_attackrange = (NPC_ATTACK_RANGE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// À̵¿ Á¦ÇÑ 
			g_NPCInfoArray[ id ].m_moverange = (NPC_MOVE_RANGE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
*/ 
			// Á¾Á· Á¶°Ç 
			g_NPCInfoArray[ id ].m_target_race = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// »ý¼º ¹æ½Ä 
			g_NPCInfoArray[ id ].m_createtype = (NPC_CREATE_TYPE) atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ¸í·É°£°Ý..À̵¿ 
//			g_NPCInfoArray[ id ].m_tickgap = (NPC_TICK_GAP)atoi( token ); 
			g_NPCInfoArray[ id ].m_movetick = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// Á¦°ø¿¡³ÊÁö 
			g_NPCInfoArray[ id ].m_drop_portion = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý µ¿ÀÛ °¡Áö¼ö 
			g_NPCInfoArray[ id ].m_attackmotion = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ´ë»ç ¿©ºÎ 
			g_NPCInfoArray[id].m_dialogflag = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý ¸í·É ¼Óµµ 
			g_NPCInfoArray[id].m_attacktick = atoi( token ); 
//			g_NPCInfoArray[id].m_attackgap = (NPC_ATTACK_TICK_GAP)atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °ø°Ý À̵¿ ¼Óµµ 
			g_NPCInfoArray[id].m_attackmovetick = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// ´ë±â½Ã°£ 
			g_NPCInfoArray[id].m_waittick = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			// °æÇèÄ¡ ºÐ¹è ¹æ½Ä 
			g_NPCInfoArray[id].m_exptype = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
 
			g_NPCInfoArray[id].m_special = atoi( token ); 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
		 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "NpcInfo.txt error", "Error", MB_OK ); 
			else g_NPCInfoArray[id].m_beAbleToAttack = atoi( token );	// °ø°ÝÀ¯¹« 
			 
			token = NULL; 
		} 
		bLine = FALSE; 
													 
		if ( fgets( string, 1024 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
 
	 
} 
 
// ·¹º§´ç °æÇèÄ¡ Àбâ 
void	Analize_ExpTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		// ¾ÆÀÌÅÛ id 
		g_Level_Exp_Table[tot].m_lev = atoi( token ); 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{							 
			// ÇÊ¿ä°æÇèÄ¡ 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Level_Exp_Table[tot].m_need_exp = atoi( token ); 
 
			// ´©Àû°æÇèÄ¡ 
//			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
//			g_Level_Exp_Table[tot].m_total_exp = atoi( token ); 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
// itembill ¿¡¼­ ³ÖÀ» ¾ÆÀÌÅÛÀ» ³Ö´Â´Ù. 
void	Analize_ItemBill( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		// itemcode 
		g_ItemBill[tot].itemcode = atoi( token ); 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{							 
			// itemindex 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_ItemBill[tot].itemindex = atoi( token ); 
 
			// itemcount 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_ItemBill[tot].itemcount = atoi( token ); 
 
#ifdef CHINA			 
			// itemcount 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_ItemBill[tot].limitlevel = atoi( token ); 
#endif 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
 
 
 
//__________________________________ 
// 
// ¾ÆÀÌÅÛ ¶³±¸´Â Á¤º¸ ÅØ½ºÆ® Àбâ ÇÔ¼ö 
//__________________________________ 
// 
void Analize_DropTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 512 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 512 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 512, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_DropInfo[tot].m_Drop_Normal[0] = atoi( token ); 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{							 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_DropInfo[tot].m_Drop_Normal[1] = atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_DropInfo[tot].m_Drop_Normal[2] = atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_DropInfo[tot].m_Drop_Normal[3] = atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_DropInfo[tot].m_Drop_Normal[4] = atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_DropInfo[tot].m_Drop_Normal[5] = atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_DropInfo[tot].m_Drop_Normal[6] = atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_DropInfo[tot].m_Drop_Normal[7] = atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_DropInfo[tot].m_Drop_Normal[8] = atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_DropInfo[tot].m_Drop_Normal[9] = atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_DropInfo[tot].m_Drop_Normal[10] = atoi( token ); 
 
			if( token == NULL ) break; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			if( token == NULL ) break; 
			g_DropInfo[tot].m_Drop_Normal[11] = atoi( token ); 
 
			if( token == NULL ) break; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			if( token == NULL ) break; 
			g_DropInfo[tot].m_Drop_Normal[12] = atoi( token ); 
 
			if( token == NULL ) break; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			if( token == NULL ) break; 
			g_DropInfo[tot].m_Drop_Normal[13] = atoi( token ); 
 
			if( token == NULL ) break; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			if( token == NULL ) break; 
			g_DropInfo[tot].m_Drop_Normal[14] = atoi( token ); 
 
			if( token == NULL ) break; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			if( token == NULL ) break; 
			g_DropInfo[tot].m_Drop_Normal[15] = atoi( token ); 
 
			if( token == NULL ) break; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			if( token == NULL ) break; 
			g_DropInfo[tot].m_Drop_Normal[16] = atoi( token ); 
 
			if( token == NULL ) break; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			if( token == NULL ) break; 
			g_DropInfo[tot].m_Drop_Normal[17] = atoi( token ); 
 
			if( token == NULL ) break; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			if( token == NULL ) break; 
			g_DropInfo[tot].m_Drop_Normal[18] = atoi( token ); 
 
			if( token == NULL ) break; 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			if( token == NULL ) break; 
			g_DropInfo[tot].m_Drop_Normal[19] = atoi( token ); 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 512 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
	}while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
} 
 
// ½ºÅ³ Á¤º¸ Àбâ 
void	Analize_SkillTxt( FILE* fp ) 
{ 
	memset( g_Skill_Info, -1, sizeof(Skill_Info)*MAX_SKILL ); 
	char* token; // ÅäÅ« 
	char string [ 512 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			arraypos=0; 
 
	if( fgets( string, 512 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 512, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		if( token == NULL ) return; 
 
		arraypos = atoi( token );		// index 
 
		g_Skill_Info[arraypos].m_nSkill_Index = arraypos;		// index 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{							 
			token = strtok( NULL, splitter ); 
			g_Skill_Info[arraypos].m_Race = ( Skill_Race )atoi( token );		// »ç¿ë°¡´ÉÁ¾Á· 
 
			token = strtok( NULL, splitter ); 
			g_Skill_Info[arraypos].m_Job  = (Skill_Job)atoi( token );		// »ç¿ë°¡´ÉÁ¾Á· 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Type = (Skill_Type)atoi( token );	// ½ºÅ³ ŸÀÔ 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Change = (Skill_Change)atoi( token );		// º¯È­ Á¾·ù 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Range = (Skill_Range)atoi( token );					// Ÿ°Ù 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Stat = (Skill_Stat)atoi( token );			// ½ºÅȺ¯È­? 
 
			token = strtok( NULL, splitter ); 
			g_Skill_Info[arraypos].m_nStatPoint = atoi( token ); 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Status = (Skill_Status)atoi( token );			// »óź¯È­ 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_dwChargeTime = atol( token );			// Â÷Áö½Ã°£ 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_dwContinueTime = atol( token );			// Áö¼Ó½Ã°£ 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Use[0] = (Use_Point)atoi( token );			// »ç¿ë1 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_nUsePoint[0] = atoi( token );				// »ç¿ëÄ¡ 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Effect[0] = (Use_Point)atoi( token );			// È¿°úÄ¡1 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_nEffectPoint[0] = atoi( token );		// È¿°úÄ¡1 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Avail = (Avail_Target)atoi( token );			// °¡´É Ÿ°Ù 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_nNeed_Skill1 = atoi( token ); 
 
			// 2Â÷ÀüÁ÷½ºÅ³ ETC 
			token = strtok( NULL, splitter ); 
			g_Skill_Info[arraypos].m_byNeed_Skill1Level = atoi( token ); 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_nNeed_Skill2 = atoi( token ); 
 
			// 2Â÷ÀüÁ÷½ºÅ³ ETC 
			token = strtok( NULL, splitter ); 
			g_Skill_Info[arraypos].m_byNeed_Skill2Level = atoi( token ); 
 
			// 2Â÷ÀüÁ÷½ºÅ³ ETC 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_nNeed_Skill3 = atoi( token ); 
			 
			// 2Â÷ÀüÁ÷½ºÅ³ ETC 
			token = strtok( NULL, splitter ); 
			g_Skill_Info[arraypos].m_byNeed_Skill3Level = atoi( token ); 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_dwDelay = atol( token ); 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_byNeed_Level = atoi( token ); 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Limit = (Use_Point)atoi( token );			// »ç¿ëÁ¦ÇÑ ´É·ÂÄ¡ 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_nLimit = atoi( token );				// ½ºÅ³ ¹è¿ï¶§ ÇÊ¿äÇÑ ½ºÅ³ Æ÷ÀÎÆ® 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_nNeedPoint = atoi( token );				// ½ºÅ³ ¹è¿ï¶§ ÇÊ¿äÇÑ ½ºÅ³ Æ÷ÀÎÆ® 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Equip = (Avail_Equip)atoi( token );				// ¹«±âÁ¦ÇÑ 
 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_byDistance = (BYTE)atoi( token );				// »çÁ¤°Å¸® 
			 
			token = strtok( NULL, splitter );  
			g_Skill_Info[arraypos].m_Grow = (Grow_Type)atoi( token );				// ¼ºÀ广½Ä 
 
			token = strtok( NULL, splitter ); 
 
			if ( token == NULL )     // 2Â÷ÀüÁ÷½ºÅ³ ETC 
				MessageBox( g_GameServer.m_hwnd, "SkillInfo.txt error", "Error", MB_OK ); 
			else g_Skill_Info[arraypos].m_relatePet = atof( token );   // ½ºÅ³°ú Æê°úÀÇ °ü°Ô  
			 
			token = strtok( NULL, splitter ); 
 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "SkillInfo.txt error", "Error", MB_OK ); 
			else g_Skill_Info[arraypos].m_overBuff = atof( token );    // ½ºÅ³°£ÀÇ »óÃæ°ü°è 
			 
			token = strtok( NULL, splitter ); 
 
			if ( token == NULL )     // 2004.11.26 Donny µ¥¹ÌÁöÁ¶Àý 
				MessageBox( g_GameServer.m_hwnd, "SkillInfo.txt error", "Error", MB_OK ); 
			else g_Skill_Info[arraypos].m_TargetDamageControl = atof( token );   // Ÿ°Ùµ¥¹ÌÁöÁ¶Àý  
			 
			token = strtok( NULL, splitter ); 
 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "SkillInfo.txt error", "Error", MB_OK ); 
			else g_Skill_Info[arraypos].m_ScopeDamageControl = atof( token );    // ¹üÀ§µ¥¹ÌÁöÁ¶Àý  
 
			token = strtok( NULL, splitter ); 
 
			if ( token == NULL ) 
				MessageBox( g_GameServer.m_hwnd, "SkillInfo.txt error", "Error", MB_OK ); 
			else g_Skill_Info[arraypos].m_TempDamageControl = atof( token );     // Àӽõ¥¹ÌÁöÁ¶Àý ( Áö±ÝÀº ¹°¸®°ø°Ý µ¥¹ÌÁö °è»êÇÒ¶§ ) 
			 
			token = NULL; 
		} 
		bLine = FALSE; 
													 
		if ( fgets( string, 512 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
 
// ·¹º§´ç quest Àбâ 
void	Analize_QuestTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 300 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 300 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 300, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		// ¾ÆÀÌÅÛ id 
		g_infoQuest[tot].m_QuestClass = atoi( token );			//class 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{							 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_QuestIndex = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Textindex = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_method = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_methodnpc = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_job = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Level = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Needquest = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Time = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].flag[0] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Index[0] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Count[0] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_map[0] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Kind[0] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].flag[1] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Index[1] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Count[1] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_map[1] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Kind[1] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].flag[2] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Index[2] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Count[2] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_map[2] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Kind[2] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].flag[3] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Index[3] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Count[3] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_map[3] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Kind[3] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].flag[4] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Index[4] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Count[4] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_map[4] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_Kind[4] = atoi( token ); 
 
			//  
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_infoQuest[tot].m_NextIndex = atoi( token ); 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 300 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
//____________________________________________________ 
// 
// ÆÐÅÏ 
//____________________________________________________ 
// 
void	Analize_Pattern( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 256 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 256 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 256, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		g_Pattern[tot].m_byPattern[0] = (BYTE)atoi( token ); 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{							 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[1] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[2] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[3] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[4] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[5] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[6] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[7] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[8] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[9] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[10] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[11] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[12] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[13] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[14] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[15] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[16] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[17] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[18] = (BYTE)atoi( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Pattern[tot].m_byPattern[19] = (BYTE)atoi( token ); 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 256 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
//____________________________________________________ 
// 
// ÅÚ·¹Æ÷Æ® ¹®¼­ Àбâ 
//____________________________________________________ 
// 
void Analize_TeleportTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 100 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 100 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	int next = 0; 
	int count = 0; 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 100, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
		 
		if( string[0] == '-' ) 
		{ 
			if( next == 0 ) tot = 0; 
			else tot = next; 
			count = 0; 
 
			if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
				bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
			 
			token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
			// npc index 
			g_Teleport[tot].m_nNPC = atoi( token ); 
			bLine = TRUE; 
			if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
				bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
			next++; 
		} 
		else 
		{ 
			// teleport info 
			token = strtok( string, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_Teleport[tot].m_Teleport[count].m_nMapID = atoi( token ); 
			while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
			{							 
				token = strtok( NULL, splitter ); 
				g_Teleport[tot].m_Teleport[count].m_dwPos = atoi( token ); 
 
				token = strtok( NULL, splitter ); 
				g_Teleport[tot].m_Teleport[count].m_nCost = atoi( token ); 
 
				token = NULL; 
			} 
			bLine = FALSE; 
														 
			if ( fgets( string, 100 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			{ 
				bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
			} 
			else count++; 
		} 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
 
// 1117-LIM // 
void	Analize_DungeonTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 1024 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 1024 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	int next = 0; 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 1024, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		g_UniqueSkillArray[ tot ].nMap = atoi( token ); 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{ 
			// ¹Ì´Ï4´ëº¸¹° : ´øÀüŸÀÔÀ» ¹®¼­·Î Àд°ŠÃß°¡. 
			token = strtok( NULL, splitter ); 
			g_UniqueSkillArray[tot].byDungeonType = (BYTE)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].NormaldwTile = (DWORD)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].AcquireItem = (DWORD)atol( token ); 
			 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].SpecialdwTile = (DWORD)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].lChallengCaem = (DWORD)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].lWarpCaem = (DWORD)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].byReturnCaemPer = (BYTE)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].byReChallengeTime = (BYTE)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].byWarpTime = (BYTE)atol( token ); 
 
//			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
//			g_UniqueSkillArray[tot].byAcquireTreasureTime = (BYTE)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].byAcquireSkill = (BYTE)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].nSoulRoomStartXPos = (int)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].nSoulRoomStartYPos = (int)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].nSoulRoomEndXPos = (int)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].nSoulRoomEndYPos = (int)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].dwBossNPCIndex = (DWORD)atol( token ); 
 
			for( int gate_count = 0; gate_count < 3; gate_count++ ) 
			{ 
				token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
				g_UniqueSkillArray[tot].dwGateIndex[gate_count] = (DWORD)atol( token ); 
			} 
			 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].byCountForGate1 = (BYTE)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].byCountForGate2 = (BYTE)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].byCountForGate3 = (BYTE)atol( token ); 
 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_UniqueSkillArray[tot].byShopIndex = (BYTE)atol( token ); 
 
			for( int npc_count = 0; npc_count < 10; npc_count++ ) 
			{ 
				token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
				g_UniqueSkillArray[tot].NpcIndex[npc_count] = (int)atol( token ); 
				token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
				g_UniqueSkillArray[tot].NpcXPos[npc_count] = (int)atol( token ); 
				token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
				g_UniqueSkillArray[tot].NpcYPos[npc_count] = (int)atol( token ); 
			} 
 
			for( int protect_count = 0; protect_count < 3; protect_count++ ) 
			{ 
				token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
				g_UniqueSkillArray[tot].ProtectHorseDownXPosStart[protect_count] = (int)atol( token ); 
 
				token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
				g_UniqueSkillArray[tot].ProtectHorseDownYPosStart[protect_count] = (int)atol( token ); 
 
				token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
				g_UniqueSkillArray[tot].ProtectHorseDownXPosEnd[protect_count] = (int)atol( token ); 
 
				token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
				g_UniqueSkillArray[tot].ProtectHorseDownYPosEnd[protect_count] = (int)atol( token ); 
			} 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 1024 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
// 1117-LIM // 
void	Analize_RandomItemTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 256 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	bool bFirst = TRUE; 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 256 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	int next = 0; 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 256, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
//		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
//		g_RandomItem[ tot ].m_dwItemIndex = (DWORD)atoi( token ); 
 
		token = strtok( string, splitter ); 
		g_RandomItem[ tot ].m_nRandomItemIndex[0] = (int)atol( token ); 
 
		token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
		g_RandomItem[ tot ].m_nRandomItemPer[0] = (int)atol( token ); 
 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{ 
			// ¹Ì´Ï4´ëº¸¹° MAX_UNIQUE->4 
			for( int random_item_count = 1; random_item_count < 4; random_item_count++ ) 
			{				 
				token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
				g_RandomItem[ tot ].m_nRandomItemIndex[random_item_count] = (int)atol( token );				 
 
				token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
				g_RandomItem[ tot ].m_nRandomItemPer[random_item_count] = (int)atol( token ); 
			}			 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 256 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î		 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á. 
} 
 
 
void Analize_ErrorTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 64 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 64 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 64, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
		token = strtok( string, "." );	// tokenÀ¸·Î Àоî¿À±â 
		strcpy( szError[tot], token ); 
 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 64 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
 
} 
 
 
// YD 6_24 
void Set_MakingPaperList( int style , int count , DWORD Index ) 
{						// °¢ ÁÖ¹®¼­·Î ¸¸µé¼ö ÀÖ´Â ¾ÆÀÌÅÛ ¸®½ºÆ® ÀÛ¼º 
	switch( style) 
	{ 
	case 0: 
		g_MakingPaper_ArrayInfo.m_dwWeaponList[count] = Index ; 
		break; 
	case 1: 
		g_MakingPaper_ArrayInfo.m_dwArmorList[count] = Index ; 
		break; 
	case 2: 
		g_MakingPaper_ArrayInfo.m_dwAccessoryList[count] = Index ; 
		break; 
	case 3: 
		g_MakingPaper_ArrayInfo.m_dwHorseList[count] = Index ; 
		break; 
	case 4: 
		g_MakingPaper_ArrayInfo.m_dwWeaponListU[count]   = Index ; 
		break; 
	case 5: 
		g_MakingPaper_ArrayInfo.m_dwArmorListU[count] = Index; 
		break; 
	case 6: 
		g_MakingPaper_ArrayInfo.m_dwAccessoryListU[count] = Index ; 
		break; 
	case 7: 
		g_MakingPaper_ArrayInfo.m_dwHorseListU[count] = Index ; 
		break; 
	} 
}; 
 
// YD_6_16 
void Set_MakingPaperArrayInfo(int style , int ArrayNum, int start )		// count == m_wWeapon[count] = start 
{					// °¢ ±Þº°·Î ¸¸µé¼ö ÀÖ´Â ¾ÆÀÌÅÛÀÇ ½ÃÀÛÁ¡ ÀúÀå 
	switch( style) 
	{ 
	case 0: 
		g_MakingPaper_ArrayInfo.m_wWeapon[ArrayNum]= start; 
		break; 
	case 1: 
		g_MakingPaper_ArrayInfo.m_wArmor[ArrayNum]= start; 
		break; 
	case 2: 
		g_MakingPaper_ArrayInfo.m_wAccessory[ArrayNum]= start; 
		break; 
	case 3: 
		g_MakingPaper_ArrayInfo.m_wHorseItem[ArrayNum]= start; 
		break; 
	case 4: 
		g_MakingPaper_ArrayInfo.m_wWeaponU[ArrayNum] = start; 
		break; 
	case 5: 
		g_MakingPaper_ArrayInfo.m_wArmorU[ArrayNum] =start ; 
		break; 
	} 
 
}; 
// YD 6_11   //Á¦Á¶½Ã ¼Ò¿äºñ¿ë°ú È®·ü Àоî¿È // ÁÖ¹®¼­ ¼º°ø È®·ü  // °¢ ÁÖ¹®¼­ ±Þº° Á¦Á¶ °¡´ÉÇÑ ¾ÆÀÌÅÛ Á¤º¸ ÀúÀå (g_ItemInfo[ À̰ª ] ) 
 
void	Analize_MakingItemTxt( FILE* fp ) 
{ 
	if( fp == NULL ) MessageBox(NULL,"error","MakingItem.txt ¾ø´ç",MB_OK); 
 
	char* token; // ÅäÅ« 
	char string [ 512]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 127 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	int next = 0; 
	 
	while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
	{				 
		if ( fgets( string, 127, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
		{ 
			bRead = FALSE; 
			break; 
		} 
	} 
	token = strtok( string, splitter );	// ³ØÅ¸		0 
	g_Making_ItemInfo.m_dwNecta[0] =(DWORD) atoi( token ); 
	token = strtok( NULL, splitter );	// ³ØÅ¸		0 
	g_Making_ItemInfo.m_dwNecta[1] =(BYTE) atoi( token ); 
								 
	token = strtok( NULL, splitter ); // Ÿ¸£		1 
	g_Making_ItemInfo.m_dwTar[0] = (DWORD)atol( token ); 
	token = strtok( NULL, splitter ); // Ÿ¸£		1 
	g_Making_ItemInfo.m_dwTar[1] = (BYTE)atol( token ); 
		 
	token = strtok( NULL, splitter ); // º¸¼®		2 
	g_Making_ItemInfo.m_dwJewel1[0] = (DWORD)atol( token ); 
	token = strtok( NULL, splitter ); // º¸¼®		2 
	g_Making_ItemInfo.m_dwJewel1[1] = (BYTE)atol( token ); 
		 
	token = strtok( NULL, splitter ); // °áÁ¤Ã¼		3 
	g_Making_ItemInfo.m_dwJewel2[0] = (DWORD)atol( token ); 
	token = strtok( NULL, splitter ); // °áÁ¤Ã¼		3 
	g_Making_ItemInfo.m_dwJewel2[1] = (BYTE)atol( token ); 
 
	token = strtok( NULL, splitter ); // ±¤¼®		4 
	g_Making_ItemInfo.m_dwAlloy1[0] = (DWORD)atol( token ); 
	token = strtok( NULL, splitter ); // ±¤¼®		4 
	g_Making_ItemInfo.m_dwAlloy1[1] = (BYTE)atol( token ); 
 
	token = strtok( NULL, splitter ); // ÇÕ±Ý		5 
	g_Making_ItemInfo.m_dwAlloy2[0] = (DWORD)atol( token ); 
	token = strtok( NULL, splitter ); // ÇÕ±Ý		5 
	g_Making_ItemInfo.m_dwAlloy2[1] = (BYTE)atol( token ); 
 
 
	token = strtok( NULL, splitter ); // ÇÕ±Ý		5 
	g_Making_ItemInfo.m_dwItem[0] = (DWORD)atol( token ); 
	token = strtok( NULL, splitter ); // ÇÕ±Ý		5 
	g_Making_ItemInfo.m_dwItem[1] = (BYTE)atol( token ); 
 
	token = strtok( NULL, splitter ); // ÀÓ½Ã		6 
	g_Making_ItemInfo.m_dwTemp[0] = (DWORD)atol( token ); 
	token = strtok( NULL, splitter ); // ÀÓ½Ã		6 
	g_Making_ItemInfo.m_dwTemp[1] = (BYTE)atol( token ); 
 
		 
	for( int l=0;	l<37 ; l+=4)				// ÁÖ¹®¼­ ¼º°ø È®·ü g_dMakingPaper[] ¿¡ ÀúÀå 
	{	 
		fgets( string, 127, fp ); 
		while( string[0] == '&' || string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{			 
			if ( fgets( string, 127, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
			 
		token = strtok( string, splitter );		// ÀϹÝ	 
		g_dMakingPaper[l] = (double)atol( token ); 
 
		token = strtok( NULL, splitter );		// À¯´ÏÅ© 
		g_dMakingPaper[l+1] = (double)atol( token ); 
 
		token = strtok( NULL, splitter );		//  
		g_dMakingPaper[l+2] = (double)atol( token ); 
 
		token = strtok( NULL, splitter );		// 
		g_dMakingPaper[l+3] = (double)atol( token ); 
 
		if(l+3 == 39 ) 
			g_dMakingPaper[l+3] = (double)atol( token )/2;				 
	} 
 
	int count =0 ; 
		 
	char cTemp[3]=" "; 
	int ArrayNum =1; 
	int k=0; 
 
	for( int s =0 ; s< 8 ; s++) 
	{ 
		if( s== 6) 
			OutputDebugString("ddd" ); 
		k=-1; 
		ArrayNum =1; 
		fgets( string, 511, fp ) ; 
		while(1) 
		{	 
			k++; 
			//	fgets( string, 127, fp ); 
			while( !(strcmp( token ,";;")) || !(strcmp( cTemp ,";;"))  || string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
			{	 
				token[0] =NULL; 
				count =0; 
				sprintf(cTemp," "); 
				if ( fgets( string, 511, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á	+=+ µ·Á¡... 
				{ 
					bRead = FALSE; 
					return; 
				} 
			} 
 
			if ( count == 0 )  
			{	 
				token = strtok( string, splitter );		// ÀÏ¹Ý 
			} 
			else token = strtok ( NULL , splitter ) ; 
			 
			if( s== 6 ) 
				OutputDebugString("dd"); 
			if( !(strcmp( token ,"&&")) ) 
				break;				 
 
			if( strcmp( token ,"$$") ) 
			{ 
				Set_MakingPaperList( s, k , g_Item_Index[atol( token )].m_item_id.m_dwItemType );  // ¿©±â¿¡ À妽º µé¾î°¡°Ô ¹Ù²ã¾ßÁö 
		//		g_MakingPaper_ArrayInfo.m_wWeaponList[k] =(DWORD)atol( token ) ; 
				count =10 ; 
			} 
			else 
			{ 
				k--; 
				Set_MakingPaperArrayInfo ( s , ArrayNum , k ); 
				sprintf(cTemp,";;"); 
				ArrayNum++;				 
			} 
				 
		} 
	} 
} 
 
// ItemBill-LIM // 
void	Analize_SetItemTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 1024 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = "\n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 1024, fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 1024, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
 
		// À妽º 
		g_SetItem[tot].m_Setitem_Index = atol( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_SetItem[tot].m_Totalitem_Count = atoi( token ); 
		bLine = TRUE; 
 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{ 
			for( int count = 0; count < 20; count++ ) 
			{ 
				token = strtok( NULL, splitter ); 
				g_SetItem[tot].m_Item_Index[count] = atol(token); 
				token = strtok( NULL, splitter ); 
				g_SetItem[tot].m_Count[count] = atoi(token); 
			}			 
			token = NULL; 
		} 
		bLine = FALSE; 
 
		tot++;											 
		if ( fgets( string, 1024 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
 
// 0126-LIM 
void	Analize_ChatProtoction( FILE* fp ) 
{ 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	char* token; // ÅäÅ« 
	char string [ 256 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	char splitter[] = "\n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	if( fgets( string, 256, fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return;			 
	 
	do 
	{ 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 256, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
	 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_ChatProtect.m_byProctionCount = atol( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_ChatProtect.m_dwProctionTime = atoi( token ); 
 
		if ( fgets( string, 256 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î	 
 
	}while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
} 
 
// Rich-Event 
void	Analize_RichEvent( FILE* fp ) 
{ 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	char* token; // ÅäÅ« 
	char string [ 512 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	char splitter[] = "\n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	if( fgets( string, 512, fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return;			 
	 
	do 
	{ 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 512, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
	 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_RichEvent.m_byCheckEvent = atol( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_RichEvent.m_byMaxHundCount = atoi( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_RichEvent.m_byMaxFiveHundCount = atol( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_RichEvent.m_byMaxThouCount = atoi( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_RichEvent.m_byMaxFiveThouCount = atol( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_RichEvent.m_byMaxTenThouCount = atoi( token ); 
		token = strtok( NULL, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		g_RichEvent.m_byMaxTwentyThouCount = atoi( token ); 
 
		if ( fgets( string, 512 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î	 
 
	}while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
} 
 
// 2Â÷ÀüÁ÷-LIM ½ÃÀÛ// 
void	Analize_BalanceTxt( FILE* fp ) 
{ 
	char* token; // ÅäÅ« 
	char string [ 256 ]; // ¹®¼­ ÁÙ´ÜÀ§ ÀúÀå º¯¼ö 
	bool bRead = TRUE; // ¹®¼­ ´Ù Àоú´ÂÁö üũ 
	bool bLine = TRUE; // ÁÙ Àоú´ÂÁö üũ 
	char splitter[] = " \n\t"; // ±¸ºÐÀÚ : /, ij¸®Áö¸®ÅÏ, ÅÇ  
 
	int			tot=0; 
 
	if( fgets( string, 256 , fp ) == NULL ) // ÁÙ ´ÜÀ§·Î Àбâ					 
			return; 
			 
	do // °Ë»ö ·çÇÁ  
	{		 
		while( string[ 0 ] == ';' || (0==strcmp( string, "\n" )) ) // ÁÖ¼®ÀÌ ÀÖ´Ù¸é ´ÙÀ½ ÁÙ ÀÐÀ½ 
		{				 
			if ( fgets( string, 256, fp ) == NULL ) // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á 
			{ 
				bRead = FALSE; 
				break; 
			} 
		} 
 
		token = strtok( string, splitter );	// tokenÀ¸·Î Àоî¿À±â 
		// Á÷¾÷¹øÈ£ 
		g_AddValues[tot].m_2ndjob = atoi( token ); 
		bLine = TRUE; 
		 
		while ( token != NULL && bRead == TRUE ) // ÅäÅ«À¸·Î Çϳª¾¿ Àбâ 
		{							 
			// Ãß°¡ HP 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_AddValues[tot].m_Add_Hp = atoi( token ); 
 
			// Ãß°¡ MP 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_AddValues[tot].m_Add_Mp = atoi( token ); 
 
			// Ãß°¡ ¹°¸®°ø°Ý·Â 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_AddValues[tot].m_Add_Chr_Att = atoi( token ); 
 
			// Ãß°¡ ¹°¸®¹æ¾î·Â 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_AddValues[tot].m_Add_Chr_AC = atoi( token ); 
 
			// Ãß°¡ ¸¶¹ý°ø°Ý·Â 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_AddValues[tot].m_Add_Chr_Magic_Att = atoi( token ); 
 
			// Ãß°¡ ¸¶¹ý¹æ¾î·Â 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_AddValues[tot].m_Add_Chr_Magic_AC = atoi( token ); 
 
			// Ãß°¡ ¼º°ø·ü 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_AddValues[tot].m_Add_Chr_Succ_Rate = atoi( token ); 
 
			// Ãß°¡ ȸÇÇÀ² 
			token = strtok( NULL, splitter ); // ´ÙÀ½ ÅäÅ« Àбâ 
			g_AddValues[tot].m_Add_Chr_Evade_Rate = atoi( token ); 
 
			token = NULL; 
		} 
		tot++; 
		bLine = FALSE; 
													 
		if ( fgets( string, 256 , fp ) == NULL ) // ´ÙÀ½ ÁÙ Àбâ				 
			bRead = FALSE; // ÀÐÀº°Ô ¾ø´Ù¸é stringÀº 0À¸·Î				 
 
	} while( bRead != FALSE ); // ´õ ÀÌ»ó ÀÐÀº°Ô ¾ø´Ù¸é ·çÇÁ Á¾·á . 
} 
// 2Â÷ÀüÁ÷-LIM ³¡//