Files
2026-11-07 13:30:45 +07:00

288 lines
8.3 KiB
C++

// libtest.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//
#include "stdafx.h"
void ini_file_load();
void ini_file_load_quest();
void SetQuestData( DWORD dwMainIndex, DWORD dwSubIndex, ioINILoader &rkLoader );
int _tmain(int argc, _TCHAR* argv[])
{
//_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
//_CrtSetBreakAlloc( 80 );
/*for( int i = 0 ; i < 3 ; ++i )
{
ini_file_load();
ini_file_load_quest();
}
cout << "end..." << endl;*/
{
ioINILoader kLoader;
kLoader.SetFileName( "Gameserverinfo.ini" );
// 파일 바로 읽기.
bool boolvalue = kLoader.ReadBool( "security", "on", 0 );
int intvalue = kLoader.ReadInt( "memorypool", "server_pool", 777 );
float floatvalue = kLoader.ReadFloat( "classprice", "loadtime", 0 );
char buff[ 256 ];
int len = 256;
kLoader.ReadString( "feature", "name", "", buff, len );
}
{
ioINILoader kLoader2( "Gameserverinfo.ini" );
// 전체 reload
//kLoader2.ReloadFile( "Gameserverinfo.ini" );
// 부분 reload [feature]
kLoader2.ReloadFile( "Gameserverinfo.ini", "feature" );
//
kLoader2.SetTitle( "feature" );
int arrayint = kLoader2.LoadInt( "Array", 0 );
//remove
//kLoader2.RemoveFile( "Gameserverinfo.ini" );
}
int i = 0;
cin >> i;
//_CrtDumpMemoryLeaks();
return 0;
}
void ini_file_load()
{
DWORD time = GetTickCount();
int value = 0;
int temp[ 65535 ] = { 0, };
// 게임서버 ini파일 로드
ioINILoader kLoader( "sp2_monster_treasure_card.ini" );
int i = 0;
char szKey[MAX_PATH], szBuf[MAX_PATH];
kLoader.SetTitle( "common" );
// 선물 리스트
int iMaxTable = kLoader.LoadInt( "max_table", 0 );
for(i = 0;i < iMaxTable;i++)
{
sprintf_s( szKey, "table%d", i + 1 );
kLoader.SetTitle( szKey );
// 공용
kLoader.LoadString( "present_name", "", szBuf, MAX_PATH );
temp[ value++ ] = kLoader.LoadInt( "present_state", 0 );
temp[ value++ ] = kLoader.LoadInt( "present_ment", 0 );
temp[ value++ ] = kLoader.LoadInt( "present_period", 0 );
int iMaxPresent = kLoader.LoadInt( "max_present", 0 );
for(int k = 0;k < iMaxPresent;k++)
{
sprintf_s( szKey, "present%d_rand", k + 1 );
temp[ value++ ] = kLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "present%d_type", k + 1 );
temp[ value++ ] = kLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "present%d_value1", k + 1 );
temp[ value++ ] = kLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "present%d_value2", k + 1 );
temp[ value++ ] = kLoader.LoadInt( szKey, 0 );
}
}
// 장비 선물의 기간+강화값 랜덤 리스트
kLoader.SetTitle( "common" );
iMaxTable = kLoader.LoadInt( "max_extraitem_rand_table", 0 );
for(i = 0;i < iMaxTable;i++)
{
sprintf_s( szKey, "extraitem_rand_table%d", i + 1 );
kLoader.SetTitle( szKey );
int k = 0;
int iMaxLimitDate = kLoader.LoadInt( "max_limit_date", 0 );
for(k = 0;k < iMaxLimitDate;k++)
{
sprintf_s( szKey, "limit_date%d_rand", k + 1 );
temp[ value++ ] = kLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "limit_date%d_value", k + 1 );
temp[ value++ ] = kLoader.LoadInt( szKey, 0 );
}
int iMaxReinforceDate = kLoader.LoadInt( "max_reinforce", 0 );
for(k = 0;k < iMaxReinforceDate;k++)
{
sprintf_s( szKey, "reinforce%d_rand", k + 1 );
temp[ value++ ] = kLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "reinforce%d_value", k + 1 );
temp[ value++ ] = kLoader.LoadInt( szKey, 0 );
}
}
DWORD result = GetTickCount() - time;
cout << "sp2_monster_treasure_card result : " << result << endl;
}
void ini_file_load_quest()
{
DWORD time = GetTickCount();
ioINILoader kLoader( "sp2_quest_info.ini" );
kLoader.SetTitle( "common" );
int iMaxQuest = kLoader.LoadInt( "max_quest", 0 );
for(int i = 0;i < iMaxQuest;i++)
{
char szTitle[MAX_PATH] = "";
sprintf_s( szTitle, "quest%d", i + 1 );
kLoader.SetTitle( szTitle );
char szClassName[MAX_PATH] = "";
kLoader.LoadString( "class_name", "", szClassName, MAX_PATH );
DWORD dwMainIndex = kLoader.LoadInt( "main_index", 0 );
int iMaxSubQuest = kLoader.LoadInt( "max_sub_quest", 0 );
for(int j = 0;j < iMaxSubQuest;j++)
{
SetQuestData( dwMainIndex, j + 1, kLoader );
}
}
DWORD result = GetTickCount() - time;
cout << "sp2_quest_info result : " << result << endl;
}
void SetQuestData( DWORD dwMainIndex, DWORD dwSubIndex, ioINILoader &rkLoader )
{
int value = 0;
int temp[ 65535 ] = { 0, };
DWORD m_dwMainIndex = dwMainIndex;
DWORD m_dwSubIndex = dwSubIndex;
char szKey[MAX_PATH] = "";
char szBuf[MAX_PATH] = "";
sprintf_s( szKey, "sub%d_title", m_dwSubIndex );
rkLoader.LoadString( szKey, "", szBuf, MAX_PATH );
//m_szTitle = szBuf;
sprintf_s( szKey, "sub%d_perform_type", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_oneday_style", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadBool( szKey, false );
sprintf_s( szKey, "sub%d_repeat_style", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadBool( szKey, false );
sprintf_s( szKey, "sub%d_guild_style", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadBool( szKey, false );
sprintf_s( szKey, "sub%d_pcroom_style", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadBool( szKey, false );
sprintf_s( szKey, "sub%d_channeling_type", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, -1 );
sprintf_s( szKey, "sub%d_occur_value", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_occur_mode", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, -1 );
sprintf_s( szKey, "sub%d_occur_room_style", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, -1 );
sprintf_s( szKey, "sub%d_complete_value", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_complete_mode", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, -1 );
sprintf_s( szKey, "sub%d_complete_room_style", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, -1 );
sprintf_s( szKey, "sub%d_period_hour", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
//m_vRewardPresent.clear();
sprintf_s( szKey, "sub%d_max_reward", m_dwSubIndex );
int iMaxReward = rkLoader.LoadInt( szKey, 0 );
int i = 0;
for(;i < iMaxReward;i++)
{
sprintf_s( szKey, "sub%d_reward_present%d", m_dwSubIndex, i + 1 );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
}
sprintf_s( szKey, "sub%d_prev_main_index", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_prev_sub_index", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_next_main_index", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_next_sub_index", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_complete_game_alarm", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadBool( szKey, false );
sprintf_s( szKey, "sub%d_complete_web_alarm", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadBool( szKey, false );
//m_CustomValue.clear();
int iDefCustom = -999999999;
for(i = 0;i < 50;i++)
{
sprintf_s( szKey, "sub%d_custom_value%d", m_dwSubIndex, i + 1 );
int iCustomValue = rkLoader.LoadInt( szKey, iDefCustom );
if( iCustomValue == iDefCustom )
break;
//m_CustomValue.push_back( iCustomValue );
}
// 이벤트 퀘스트 시간 로드
sprintf_s( szKey, "sub%d_start_year", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_start_month", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_start_date", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_start_hour", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_end_year", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_end_month", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_end_date", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
sprintf_s( szKey, "sub%d_end_hour", m_dwSubIndex );
temp[ value++ ] = rkLoader.LoadInt( szKey, 0 );
}