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 ³¡//