532 lines
16 KiB
C#
532 lines
16 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
using INILoader;
|
|
|
|
namespace ItemDictionary
|
|
{
|
|
public partial class ItemDictionary : Form
|
|
{
|
|
private void LoadItemData()
|
|
{
|
|
String item_path = String.Format("{0}/config/sp2_item.ini", main_path);
|
|
INILoader.INILoader item_file_loader = new INILoader.INILoader(item_path, false);
|
|
item_file_loader.SetTitle("common_info");
|
|
int count = item_file_loader.LoadInt("item_group_cnt", 0);
|
|
for (int i = 0; i < count; ++i)
|
|
{
|
|
String group_key = String.Format("item_group{0}", i + 1);
|
|
String temp = item_file_loader.LoadString(group_key, "");
|
|
String path = String.Format("{0}\\config\\{1}", main_path, temp);
|
|
if (File.Exists(path) == false)
|
|
continue;
|
|
|
|
INILoader.INILoader item_loader = new INILoader.INILoader(path, false);
|
|
item_loader.SetTitle("common");
|
|
int item_count = item_loader.LoadInt("item_cnt", 0);
|
|
if (item_count == 0)
|
|
continue;
|
|
|
|
for (int j = 0; j < item_count; ++j)
|
|
{
|
|
String title = String.Format("item{0}", j + 1);
|
|
item_loader.SetTitle(title);
|
|
|
|
ItemData data = new ItemData();
|
|
|
|
int code = item_loader.LoadInt("code", 0);
|
|
int type = code/100000;
|
|
switch( type )
|
|
{
|
|
case 0:
|
|
data.desc = "일반 무기";
|
|
break;
|
|
case 1:
|
|
data.desc = "일반 갑옷";
|
|
break;
|
|
case 2:
|
|
data.desc = "일반 투구";
|
|
break;
|
|
case 3:
|
|
data.desc = "일반 망토";
|
|
break;
|
|
default:
|
|
data.desc = "오브젝트";
|
|
break;
|
|
}
|
|
|
|
data.type = "장비";
|
|
data.name = item_loader.LoadString("name", "");
|
|
data.pack_name = item_loader.LoadString("item_large_icon0", "");
|
|
|
|
item_data_list.Add(data);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void LoadExtraItemData()
|
|
{
|
|
String item_path = String.Format("{0}/config/sp2_extraitem.ini", main_path);
|
|
INILoader.INILoader item_file_loader = new INILoader.INILoader(item_path, false);
|
|
item_file_loader.SetTitle("common_info");
|
|
int count = item_file_loader.LoadInt("item_group_cnt", 0);
|
|
for (int i = 0; i < count; ++i)
|
|
{
|
|
String group_key = String.Format("item_group{0}", i + 1);
|
|
String temp = item_file_loader.LoadString(group_key, "");
|
|
String path = String.Format("{0}\\config\\{1}", main_path, temp);
|
|
if (File.Exists(path) == false)
|
|
continue;
|
|
|
|
INILoader.INILoader item_loader = new INILoader.INILoader(path, false);
|
|
item_loader.SetTitle("common");
|
|
int item_count = item_loader.LoadInt("item_cnt", 0);
|
|
if (item_count == 0)
|
|
continue;
|
|
|
|
for (int j = 0; j < item_count; ++j)
|
|
{
|
|
String title = String.Format("item{0}", j + 1);
|
|
item_loader.SetTitle(title);
|
|
|
|
ItemData data = new ItemData();
|
|
|
|
int code = item_loader.LoadInt("code", 0);
|
|
int type = code / 100000;
|
|
switch (type)
|
|
{
|
|
case 0:
|
|
data.desc = "고급 무기";
|
|
break;
|
|
case 1:
|
|
data.desc = "고급 갑옷";
|
|
break;
|
|
case 2:
|
|
data.desc = "고급 투구";
|
|
break;
|
|
case 3:
|
|
data.desc = "고급 망토";
|
|
break;
|
|
default:
|
|
data.desc = "오브젝트";
|
|
break;
|
|
}
|
|
|
|
data.type = "고급장비";
|
|
data.name = item_loader.LoadString("name", "");
|
|
data.pack_name = item_loader.LoadString("item_large_icon0", "");
|
|
data.item_code = code;
|
|
|
|
item_data_list.Add(data);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void LoadSkillData()
|
|
{
|
|
String skill_path = String.Format("{0}/config/sp2_skill.ini", main_path);
|
|
INILoader.INILoader skill_file_loader = new INILoader.INILoader(skill_path, false);
|
|
skill_file_loader.SetTitle( "common_info" );
|
|
int count = skill_file_loader.LoadInt( "skill_group_cnt", 0 );
|
|
for( int i=0; i<count; ++i )
|
|
{
|
|
String group_key = String.Format( "skill_group{0}", i+1 );
|
|
String temp = skill_file_loader.LoadString( group_key, "" );
|
|
String path = String.Format("{0}\\config\\{1}", main_path, temp );
|
|
if( File.Exists( path ) == false )
|
|
continue;
|
|
|
|
INILoader.INILoader skill_loader = new INILoader.INILoader(path, false);
|
|
skill_loader.SetTitle( "common" );
|
|
int skill_count = skill_loader.LoadInt( "skill_cnt", 0 );
|
|
if( skill_count == 0 )
|
|
continue;
|
|
|
|
for( int j=0; j<skill_count; ++j )
|
|
{
|
|
String title = String.Format( "skill{0}", j+1 );
|
|
skill_loader.SetTitle( title );
|
|
|
|
ItemData data = new ItemData();
|
|
|
|
data.type = "스킬";
|
|
|
|
String name = skill_loader.LoadString( "desc_full_name", "" );
|
|
if( String.IsNullOrEmpty(name) )
|
|
data.name = skill_loader.LoadString( "desc_name", "" );
|
|
else
|
|
data.name = name;
|
|
|
|
data.desc = skill_loader.LoadString( "desc", "" );
|
|
data.name += " (";
|
|
data.name += skill_loader.LoadString( "name", "" );
|
|
data.name += ")";
|
|
data.pack_name = skill_loader.LoadString( "icon", "" );
|
|
|
|
item_data_list.Add(data);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void LoadMedalData()
|
|
{
|
|
String medal_path = String.Format("{0}/config/sp2_medalitem_info.ini", main_path);
|
|
String medal_manual_path = String.Format("{0}/config/sp2_medal_inven_manual.ini", main_path);
|
|
|
|
INILoader.INILoader medal_loader = new INILoader.INILoader(medal_path, false);
|
|
INILoader.INILoader medal_manual_loader = new INILoader.INILoader(medal_manual_path, false);
|
|
|
|
medal_loader.SetTitle("item_info_common");
|
|
int cnt = medal_loader.LoadInt("max_item_info", 0);
|
|
for (int i = 0; i < cnt; ++i)
|
|
{
|
|
medal_loader.SetTitle(String.Format("item_info_{0}", i + 1));
|
|
|
|
ItemData data = new ItemData();
|
|
data.pack_name = medal_loader.LoadString("icon", "");
|
|
data.name = medal_loader.LoadString("name", "");
|
|
|
|
if (String.IsNullOrEmpty(data.name))
|
|
{
|
|
continue;
|
|
}
|
|
String manual = medal_loader.LoadString("manual", "");
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
medal_manual_loader.SetTitle(String.Format("Manual{0}", manual));
|
|
for (int j = 0; j < 30; ++j)
|
|
{
|
|
String desc = medal_manual_loader.LoadString(String.Format("{0}Text1", j + 1), "");
|
|
if (String.IsNullOrEmpty(desc))
|
|
{
|
|
data.desc = sb.ToString();
|
|
break;
|
|
}
|
|
|
|
if (j != 0)
|
|
sb.Append(Environment.NewLine);
|
|
|
|
sb.Append(desc);
|
|
}
|
|
|
|
data.type = "메달";
|
|
item_data_list.Add(data);
|
|
}
|
|
}
|
|
|
|
private void LoadQuestData()
|
|
{
|
|
String path = String.Format("{0}/config/sp2_quest_info.ini", main_path);
|
|
INILoader.INILoader quest_file_loader = new INILoader.INILoader(path, false);
|
|
quest_file_loader.SetTitle( "common" );
|
|
int count = quest_file_loader.LoadInt( "max_quest", 0 );
|
|
for( int i=0; i<count; ++i )
|
|
{
|
|
quest_file_loader.SetTitle(String.Format("quest{0}", i + 1));
|
|
|
|
int quest_cnt = quest_file_loader.LoadInt("max_sub_quest", 0);
|
|
for( int j=0; j<quest_cnt; ++j )
|
|
{
|
|
ItemData data = new ItemData();
|
|
String icon_name = String.Format( "sub{0}_icon", j+1 );
|
|
String name = String.Format( "sub{0}_title", j+1 );
|
|
String desc = String.Format( "sub{0}_progress", j+1 );
|
|
data.pack_name = quest_file_loader.LoadString(icon_name, "");
|
|
data.name = quest_file_loader.LoadString(name, "");
|
|
data.desc = quest_file_loader.LoadString(desc, "");
|
|
data.type = "퀘스트";
|
|
item_data_list.Add(data);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void LoadEtcItemData()
|
|
{
|
|
String etcitem_manual_path = String.Format("{0}/config/sp2_etc_inven_manual.ini", main_path);
|
|
String path = String.Format("{0}/config/sp2_etcitem_info.ini", main_path);
|
|
|
|
INILoader.INILoader loader = new INILoader.INILoader(path, false);
|
|
INILoader.INILoader etcitem_manual_loader = new INILoader.INILoader(etcitem_manual_path, false);
|
|
|
|
loader.SetTitle("common");
|
|
int count = loader.LoadInt("max", 0);
|
|
for (int i = 0; i < count; ++i)
|
|
{
|
|
String title = String.Format("etcitem{0}", i+1 );
|
|
loader.SetTitle(title);
|
|
|
|
ItemData data = new ItemData();
|
|
data.pack_name = loader.LoadString("icon_name", "");
|
|
data.name = loader.LoadString("name", "");
|
|
data.type = "특별아이템";
|
|
|
|
int manual = loader.LoadInt("inventory_manual", 0);
|
|
StringBuilder sb = new StringBuilder();
|
|
etcitem_manual_loader.SetTitle(String.Format("Manual{0}", manual));
|
|
for (int j = 0; j < 30; ++j)
|
|
{
|
|
String desc = etcitem_manual_loader.LoadString(String.Format("{0}Text1", j + 1), "");
|
|
if (String.IsNullOrEmpty(desc))
|
|
{
|
|
data.desc = sb.ToString();
|
|
break;
|
|
}
|
|
|
|
if (j != 0)
|
|
sb.Append(Environment.NewLine);
|
|
|
|
sb.Append(desc);
|
|
}
|
|
|
|
item_data_list.Add(data);
|
|
}
|
|
}
|
|
|
|
private void LoadCostumeData()
|
|
{
|
|
String path = String.Format("{0}/config/sp2_costume.ini", main_path);
|
|
INILoader.INILoader loader = new INILoader.INILoader(path, false);
|
|
loader.SetTitle("common_info");
|
|
int count = loader.LoadInt("costume_group_cnt", 0);
|
|
for (int i = 0; i < count; ++i)
|
|
{
|
|
String group_key = String.Format("costume_group{0}", i + 1);
|
|
|
|
String temp = loader.LoadString(group_key, "");
|
|
String costume_path = String.Format("{0}\\config\\{1}", main_path, temp);
|
|
if (File.Exists(costume_path) == false)
|
|
continue;
|
|
|
|
INILoader.INILoader costume_loader = new INILoader.INILoader(costume_path, false);
|
|
costume_loader.SetTitle( "common_info" );
|
|
int costume_cnt = costume_loader.LoadInt("costume_cnt", 0);
|
|
|
|
for( int j=0; j<costume_cnt; ++j )
|
|
{
|
|
String title = String.Format( "costume{0}", j+1 );
|
|
costume_loader.SetTitle( title );
|
|
|
|
ItemData data = new ItemData();
|
|
data.pack_name = costume_loader.LoadString("icon_name", "");
|
|
if( String.IsNullOrEmpty(data.pack_name) )
|
|
{
|
|
int code = costume_loader.LoadInt( "costum_code", 0 );
|
|
if( code > 0 )
|
|
{
|
|
ItemData item_data = item_data_list.Find( p => p.item_code == code );
|
|
if( !String.IsNullOrEmpty(item_data.pack_name) )
|
|
data.pack_name = item_data.pack_name;
|
|
}
|
|
}
|
|
data.name = costume_loader.LoadString("name", "");
|
|
data.desc = "";
|
|
data.type = "코스튬";
|
|
item_data_list.Add(data);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
private void LoadAccessoryData()
|
|
{
|
|
String path = String.Format("{0}/config/sp2_accessory.ini", main_path);
|
|
INILoader.INILoader loader = new INILoader.INILoader(path, false);
|
|
loader.SetTitle("common_info");
|
|
int count = loader.LoadInt("item_group_cnt", 0);
|
|
for (int i = 0; i < count; ++i)
|
|
{
|
|
String group_key = String.Format("item_group{0}", i + 1);
|
|
|
|
String temp = loader.LoadString(group_key, "");
|
|
String accessory_path = String.Format("{0}\\config\\{1}", main_path, temp);
|
|
if (File.Exists(accessory_path) == false)
|
|
continue;
|
|
|
|
INILoader.INILoader item_loader = new INILoader.INILoader(accessory_path, false);
|
|
item_loader.SetTitle("common");
|
|
int item_cnt = item_loader.LoadInt("item_cnt", 0);
|
|
|
|
for (int j = 0; j < item_cnt; ++j)
|
|
{
|
|
String title = String.Format("item{0}", j + 1);
|
|
item_loader.SetTitle(title);
|
|
|
|
ItemData data = new ItemData();
|
|
data.pack_name = item_loader.LoadString("item_large_icon0", "");
|
|
data.name = item_loader.LoadString("name", "");
|
|
|
|
data.desc = "";
|
|
|
|
int desc_cnt = item_loader.LoadInt( "max_tooltip_text_size", 0 );
|
|
for( int k=0; k<desc_cnt; ++k )
|
|
{
|
|
if( String.IsNullOrEmpty(data.desc) )
|
|
{
|
|
String key = String.Format("tooltip_text{0}", k + 1);
|
|
data.desc = item_loader.LoadString(key, "");
|
|
}
|
|
else
|
|
{
|
|
String key = String.Format("tooltip_text{0}", k + 1);
|
|
data.desc += Environment.NewLine + item_loader.LoadString(key, "");
|
|
}
|
|
}
|
|
|
|
data.type = "악세사리";
|
|
item_data_list.Add(data);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void LoadDecoManData()
|
|
{
|
|
String path = String.Format("{0}/config/sp2_deco_man.ini", main_path);
|
|
String deco_manual_path = String.Format("{0}/config/sp2_deco_manual.ini", main_path);
|
|
|
|
INILoader.INILoader loader = new INILoader.INILoader(path, false);
|
|
INILoader.INILoader deco_manual_loader = new INILoader.INILoader(deco_manual_path, false);
|
|
|
|
loader.SetTitle("Info");
|
|
int count = loader.LoadInt("max_Deco", 0);
|
|
for (int i = 0; i < count; ++i)
|
|
{
|
|
String title = String.Format("Deco{0}", i + 1);
|
|
loader.SetTitle(title);
|
|
|
|
int deco_cnt = loader.LoadInt( "Max", 0 );
|
|
for( int j=0; j<deco_cnt; ++j )
|
|
{
|
|
ItemData data = new ItemData();
|
|
|
|
String item_name = String.Format( "Name_{0}", j+1 );
|
|
String icon_name = String.Format( "Icon_{0}", j+1 );
|
|
String manual_name = String.Format( "manual_{0}", j+1 );
|
|
|
|
data.pack_name = loader.LoadString(icon_name, "");
|
|
data.name = loader.LoadString(item_name, "");
|
|
data.type = "남성치장";
|
|
|
|
int manual = loader.LoadInt( manual_name, 0 );
|
|
StringBuilder sb = new StringBuilder();
|
|
deco_manual_loader.SetTitle(String.Format("Manual{0}", manual));
|
|
for (int k = 0; k < 30; ++k)
|
|
{
|
|
String desc = deco_manual_loader.LoadString(String.Format("{0}Text1", k + 1), "");
|
|
if (String.IsNullOrEmpty(desc))
|
|
{
|
|
data.desc = sb.ToString();
|
|
break;
|
|
}
|
|
|
|
if (k != 0)
|
|
sb.Append(Environment.NewLine);
|
|
|
|
sb.Append(desc);
|
|
}
|
|
|
|
item_data_list.Add(data);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void LoadDecoWomanData()
|
|
{
|
|
String path = String.Format("{0}/config/sp2_deco_woman.ini", main_path);
|
|
String deco_manual_path = String.Format("{0}/config/sp2_deco_manual.ini", main_path);
|
|
|
|
INILoader.INILoader loader = new INILoader.INILoader(path, false);
|
|
INILoader.INILoader deco_manual_loader = new INILoader.INILoader(deco_manual_path, false);
|
|
|
|
loader.SetTitle("Info");
|
|
int count = loader.LoadInt("max_Deco", 0);
|
|
for (int i = 0; i < count; ++i)
|
|
{
|
|
String title = String.Format("Deco{0}", i + 1);
|
|
loader.SetTitle(title);
|
|
|
|
int deco_cnt = loader.LoadInt("Max", 0);
|
|
for (int j = 0; j < deco_cnt; ++j)
|
|
{
|
|
ItemData data = new ItemData();
|
|
|
|
String item_name = String.Format("Name_{0}", j + 1);
|
|
String icon_name = String.Format("Icon_{0}", j + 1);
|
|
String manual_name = String.Format("manual_{0}", j + 1);
|
|
|
|
data.pack_name = loader.LoadString(icon_name, "");
|
|
data.name = loader.LoadString(item_name, "");
|
|
data.type = "여성치장";
|
|
|
|
int manual = loader.LoadInt(manual_name, 0);
|
|
StringBuilder sb = new StringBuilder();
|
|
deco_manual_loader.SetTitle(String.Format("Manual{0}", manual));
|
|
for (int k = 0; k < 30; ++k)
|
|
{
|
|
String desc = deco_manual_loader.LoadString(String.Format("{0}Text1", k + 1), "");
|
|
if (String.IsNullOrEmpty(desc))
|
|
{
|
|
data.desc = sb.ToString();
|
|
break;
|
|
}
|
|
|
|
if (k != 0)
|
|
sb.Append(Environment.NewLine);
|
|
|
|
sb.Append(desc);
|
|
}
|
|
|
|
item_data_list.Add(data);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void LoadCustomDesc()
|
|
{
|
|
item_custom_list = new List<ItemCustomData>();
|
|
item_custom_list.Clear();
|
|
|
|
if (!File.Exists("./custom_desc.txt"))
|
|
return;
|
|
|
|
StreamReader sr = new StreamReader("./custom_desc.txt");
|
|
String szLine = String.Empty;
|
|
while (sr.Peek() > -1)
|
|
{
|
|
szLine = sr.ReadLine();
|
|
|
|
char[] charSeparators = new char[] { ',' };
|
|
String[] RetString = szLine.Split(charSeparators, 2);
|
|
if( RetString.Length == 2 )
|
|
{
|
|
ItemCustomData data;
|
|
data.pack_name = RetString[0];
|
|
data.desc = RetString[1];
|
|
item_custom_list.Add(data);
|
|
}
|
|
}
|
|
sr.Close();
|
|
}
|
|
|
|
private void SaveCustomDesc()
|
|
{
|
|
if( item_custom_list.Count == 0 )
|
|
return;
|
|
|
|
StreamWriter sw = new StreamWriter("./custom_desc.txt");
|
|
|
|
foreach( ItemCustomData data in item_custom_list )
|
|
{
|
|
if( String.IsNullOrEmpty(data.desc) )
|
|
continue;
|
|
String line = String.Format( "{0},{1}", data.pack_name, data.desc );
|
|
sw.WriteLine(line);
|
|
}
|
|
|
|
sw.Close();
|
|
}
|
|
}
|
|
}
|