www.pudn.com > back.rar > iteminfoDlg.cpp
// iteminfoDlg.cpp : ʵÏÖÎļþ
//
#include "stdafx.h"
#include "iteminfo.h"
#include "iteminfoDlg.h"
#include ".\iteminfodlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
struct NPC_Info
{
// °ÔÀÓ ³»¿¡¼ »ç¿ëÇÒ Ç׸ñµéÀº º¸·ù ÇÑ´Ù..³ªÁß¿¡ Ãß°¡ ¹× ¼öÁ¤ ÇÑ´Ù...
int m_NPC_ID; // ¸÷ÀÇ Å×À̺í»ó °íÀ¯ ¹øÈ£...Ŭ¶óÀÌ¾ðÆ®¿¡¼ ±×¸±¶§...db¿¡¼ °ª »ÌÀ»¶§ »ç¿ë
int m_NPC_EXP; // ¸÷ÀÌ ÁÙ °æÇèÄ¡
int m_NPC_LV; // ¸÷·¹º§
int m_Item_Percent; // ¶³±¼ È®·ü ¼±ÅÃ
int m_Drop_NItem[10]; // ¶³±¼ º¸Åë ¾ÆÀÌÅÛ
int m_Drop_Percent[10]; // ¶³±¼ ¾ÆÀÌÅÛ ¼±ÅÃµÉ È®·ü
// 11-12
int m_Money_percent; // µ· ¶³±¼ È®·ü
int m_Drop_Money[5]; // ¶³±¼ µ· ¾×¼ö
int m_Money_Per[5]; // ¶³±¼ µ· È®À²
// int m_NPC_Att; // °ø°Ý·Â
// int m_NPC_Magic_Att; // ¸¶¹ý °ø°Ý·Â
BYTE m_NPC_Pattern; // °ø°ÝÆÐÅÏ
int m_NPC_Att[5]; // °ø°Ý·Â
int m_NPC_Magic_Att[3]; // ¸¶¹ý °ø°Ý·Â
int m_NPC_AC; // ¹æ¾î·Â
int m_NPC_Magic_AC; // ¸¶¹ý¹æ¾î·Â
int m_NPC_Suc_Rate; // ¹°¸® °ø°Ý ¼º°ø·ü
int m_NPC_Evade_Rate; // ¹°¸® °ø°Ý ȸÇÇÀ²
int m_NPC_Magic_Evade_Rate; // ¸¶¹ý ȸÇÇÀ²
int m_NPC_HP; // ü·Â
NPC_SIZE m_size; // ¸÷ÀÇ Å©±â..±æÃ£±â, À̵¿ 󸮿¡ »ç¿ë
NPC_PROPERTY m_property; // ¹«±â Á¾·ù¿¡ µû¸¥ ¹ÞÀ» ¼Ó¼º
NPC_RESPAWN_RATE m_respawn_rate; // »ý¼º ºóµµ
NPC_RESPAWN_TIME m_respawn_time; // »ý¼º ½Ã°£´ë
NPC_ATTACK_TYPE m_attack_type; // ¸÷ÀÇ °ø°Ý ŸÀÔ
NPC_MOVE_TYPE m_move_type; // ¸÷ÀÇ À̵¿ ŸÀÔ
NPC_MOVE_METHOD m_move_method; // Çൿ¹æ½Ä
NPC_SEARCH_TYPE m_search_type; // ÀüÅõ ŸÀÔÀÌ·¡..¸÷ÀÇ ¼±°ø ¶Ç´Â ºñ¼±°ø ÇüÅÂ
NPC_DEFENSE_TYPE m_defense_type; // ¸÷ÀÇ ¹æ¾î ÇüÅÂ
// NPC_SEARCH_RANGE m_searchrange; // °Ë»ö ¹üÀ§
// NPC_ATTACK_RANGE m_attackrange; // °ø°Ý ¹üÀ§
// NPC_MOVE_RANGE m_moverange; // À̵¿ Á¦ÇÑ ¹üÀ§
BYTE m_searchrange; // Å×ÀÌºí ¾È¾²°í ±×³É ¼ýÀÚ
BYTE m_attackrange; // ±Ù°Å¸® »çÁ¤°Å¸®
BYTE m_attackrangemagic; // ¸¶¹ý °ø°Ý »çÁ¤ °Å¸®
BYTE m_moverange; // Å×ÀÌºí ¾È¾²°í ±×³É ¼ýÀÚ
int m_target_race; // Á¾Á· Á¶°Ç
NPC_CREATE_TYPE m_createtype; // »ý¼º ¹æ¹ý
NPC_TICK_GAP m_tickgap; // ¸í·É °£°Ý
int m_drop_portion; // Á¦°ø ¿¡³ÊÁö
int m_attackmotion; // °ø°Ý µ¿ÀÛ °¡Áö¼ö
BYTE m_dialogflag; // ´ë»ç ÇÑ´Ù ¾ÈÇÑ´Ù
NPC_ATTACK_TICK_GAP m_attackgap; // °ø°Ý¸í·É¼Óµµ
int m_waittick; // ´ë±â ½Ã°£
int m_movetick; // À̵¿¸í·É½Ã°£
int m_attacktick; // °ø°Ý¸í·É½Ã°£
int m_attackmovetick; // °ø°ÝÀ̵¿ ¸í·É½Ã°£
BYTE m_exptype; // °æÇèÄ¡ ºÐ¹è¹æ½Ä
int m_special; // ¼ÒȯÇϰųª º¯½ÅÇÒ À妽º
int m_beAbleToAttack; // 2004.10.1 Donny npc°ø°ÝÀ¯¹« : 1ÀÌ¸é °ø°Ý°¡´É
};
NPC_Info g_NPCInfoArray[512];
// CiteminfoDlg ¶Ô»°¿ò
CiteminfoDlg::CiteminfoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CiteminfoDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CiteminfoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CiteminfoDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDOK, OnBnClickedOk)
END_MESSAGE_MAP()
// CiteminfoDlg ÏûÏ¢´¦Àí³ÌÐò
BOOL CiteminfoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// ÉèÖô˶Ի°¿òµÄͼ±ê¡£µ±Ó¦ÓóÌÐòÖ÷´°¿Ú²»ÊǶԻ°¿òʱ£¬¿ò¼Ü½«×Ô¶¯
// Ö´Ðд˲Ù×÷
SetIcon(m_hIcon, TRUE); // ÉèÖôóͼ±ê
SetIcon(m_hIcon, FALSE); // ÉèÖÃСͼ±ê
// TODO: ÔÚ´ËÌí¼Ó¶îÍâµÄ³õʼ»¯´úÂë
return TRUE; // ³ý·ÇÉèÖÃÁ˿ؼþµÄ½¹µã£¬·ñÔò·µ»Ø TRUE
}
// Èç¹ûÏò¶Ô»°¿òÌí¼Ó×îС»¯°´Å¥£¬ÔòÐèÒªÏÂÃæµÄ´úÂë
// À´»æÖƸÃͼ±ê¡£¶ÔÓÚʹÓÃÎĵµ/ÊÓͼģÐ굀 MFC Ó¦ÓóÌÐò£¬
// Õ⽫ÓÉ¿ò¼Ü×Ô¶¯Íê³É¡£
void CiteminfoDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // ÓÃÓÚ»æÖƵÄÉ豸ÉÏÏÂÎÄ
SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);
// ʹͼ±êÔÚ¹¤×÷¾ØÐÎÖоÓÖÐ
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// »æÖÆÍ¼±ê
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
//µ±Óû§Í϶¯×îС»¯´°¿Úʱϵͳµ÷Óô˺¯ÊýÈ¡µÃ¹â±êÏÔʾ¡£
HCURSOR CiteminfoDlg::OnQueryDragIcon()
{
return static_cast(m_hIcon);
}
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( NULL, "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 CiteminfoDlg::OnBnClickedOk()
{
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
//OnOK();
FILE *fp = fopen("npcinfo.txt", "r");
if (fp)
Analize_NPCTxt(fp);
else
MessageBox("NpcInfo.txt error", "Error", MB_OK);
CStdioFile file("out.txt", CFile::modeCreate | CFile::modeReadWrite);
char out[256];
for (int i = 0; i < 512; i++)
{
sprintf(out, "%d\t%d\n", g_NPCInfoArray[i].m_NPC_LV, g_NPCInfoArray[i].m_Item_Percent);
file.WriteString(out);
}
file.Flush();
file.Close();
}