Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
944
Server/ToolProject/ScriptConvert/ScriptConvert.cpp
Normal file
944
Server/ToolProject/ScriptConvert/ScriptConvert.cpp
Normal file
@@ -0,0 +1,944 @@
|
||||
#include "stdafx.h"
|
||||
|
||||
using namespace Item;
|
||||
|
||||
enum SERVER_TYPE
|
||||
{
|
||||
SERVER_NORMAL = 1,
|
||||
SERVER_BATTLE = 2
|
||||
};
|
||||
|
||||
#define MAX_VERSION_HISTORY 2000 // <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>μ<EFBFBD>
|
||||
|
||||
char g_szCurrentVersion[10] = { 0, };
|
||||
int g_nVersionLineCnt = 0;
|
||||
char g_szVersionInfo[MAX_VERSION_HISTORY][MAX_PATH] = { 0, };
|
||||
|
||||
void InitVersionInfo(void);
|
||||
|
||||
void CreateVersionHistoryFile(const char* szFileName)
|
||||
{
|
||||
FILE* fp = fopen(szFileName, "wt");
|
||||
if (fp)
|
||||
{
|
||||
fprintf(fp, "========================================================================================\n");
|
||||
fprintf(fp, "Version History\n");
|
||||
fprintf(fp, "----------------------------------------------------------------------------------------\n\n");
|
||||
|
||||
for (int i=0; i<MAX_VERSION_HISTORY; ++i)
|
||||
{
|
||||
if (0 == stricmp(g_szVersionInfo[i], "End"))
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD> <20><EFBFBD>
|
||||
break;
|
||||
}
|
||||
|
||||
fprintf(fp, "%s\n", g_szVersionInfo[i]);
|
||||
}
|
||||
|
||||
fprintf(fp, "========================================================================================\n");
|
||||
fclose(fp);
|
||||
|
||||
printf("Complete Version History file creating.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Failed %s file creating.\n");
|
||||
}
|
||||
}
|
||||
|
||||
SERVER_TYPE GetCurrentItemScript(void)
|
||||
{
|
||||
int nSelect = 0;
|
||||
|
||||
while (true)
|
||||
{
|
||||
printf("Type of ItemScript (1 -ROW Online , 2 -Battle Lohan) : ");
|
||||
scanf("%d", &nSelect);
|
||||
|
||||
if (1 == nSelect)
|
||||
{
|
||||
return SERVER_NORMAL;
|
||||
}
|
||||
|
||||
if (2 == nSelect)
|
||||
{
|
||||
return SERVER_BATTLE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool ItemScriptCheck(CItemMgr& ItemMgr)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
int nType = 0;
|
||||
|
||||
printf("\nInput Items ID. (0 - Quit) : ");
|
||||
scanf("%d", &nType);
|
||||
|
||||
if (0 == nType) { break; }
|
||||
|
||||
if (0 == ItemMgr.GetItemInfo(nType))
|
||||
{
|
||||
printf("Can't find the Item which is ID No.%d ", nType);
|
||||
continue;
|
||||
}
|
||||
|
||||
printf("Item Name : %s Note : %s\n", ItemMgr.GetItemInfo(nType)->m_SpriteData.m_szName,
|
||||
ItemMgr.GetItemInfo(nType)->m_StringData.m_szItemDescribe);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChemicalScriptCheck(CItemMgr& ItemMgr)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
ChemicalInfo chemicalInfo;
|
||||
printf("\n");
|
||||
|
||||
printf("Source Item ID (0 - Quit) : ");
|
||||
scanf("%d", &chemicalInfo.m_wPickkingItemID);
|
||||
if (0 == chemicalInfo.m_wPickkingItemID) { break; }
|
||||
|
||||
printf("Quantity of Source Item (0 - Quit) : ");
|
||||
scanf("%d", &chemicalInfo.m_cPickkingItemNum);
|
||||
if (0 == chemicalInfo.m_cPickkingItemNum) { break; }
|
||||
|
||||
printf("Compensatory Item ID (0 - Quit) : ");
|
||||
scanf("%d", &chemicalInfo.m_wTargetItemID);
|
||||
if (0 == chemicalInfo.m_wTargetItemID) { break; }
|
||||
|
||||
printf("Quantity of Compensatory Item (0 - Quit) : ");
|
||||
scanf("%d", &chemicalInfo.m_cTargetItemNum);
|
||||
if (0 == chemicalInfo.m_cTargetItemNum) { break; }
|
||||
|
||||
switch (ItemMgr.GetChemicalResult(chemicalInfo))
|
||||
{
|
||||
case Chemical::S_SUCCESS:
|
||||
{
|
||||
const ItemInfo* lpPickkingItem = ItemMgr.GetItemInfo(chemicalInfo.m_wPickkingItemID);
|
||||
if (NULL == lpPickkingItem)
|
||||
{
|
||||
printf("Irregular Source Item. Item ID : %d", chemicalInfo.m_wPickkingItemID);
|
||||
break;
|
||||
}
|
||||
|
||||
const ItemInfo* lpTargetItem = ItemMgr.GetItemInfo(chemicalInfo.m_wTargetItemID);
|
||||
if (NULL == lpTargetItem)
|
||||
{
|
||||
printf("Irregular Source Item. ItemI D : %d", chemicalInfo.m_wTargetItemID);
|
||||
break;
|
||||
}
|
||||
|
||||
const ItemInfo* lpResultItem = ItemMgr.GetItemInfo(chemicalInfo.m_wResultItemID);
|
||||
if (NULL == lpResultItem)
|
||||
{
|
||||
printf("Irregular Source Item. ItemI D : %d", chemicalInfo.m_wResultItemID);
|
||||
break;
|
||||
}
|
||||
|
||||
printf("Source Item : %s %d \nCompensatory Item : %s %d \ncompensate Item : %s %d ",
|
||||
lpPickkingItem->m_SpriteData.m_szName, chemicalInfo.m_cPickkingItemNum,
|
||||
lpTargetItem->m_SpriteData.m_szName, chemicalInfo.m_cTargetItemNum,
|
||||
lpResultItem->m_SpriteData.m_szName, chemicalInfo.m_cResultItemNum);
|
||||
break;
|
||||
}
|
||||
|
||||
case Chemical::F_WRONG_RECIPE:
|
||||
printf("Irregular compensation method.");
|
||||
break;
|
||||
|
||||
case Chemical::F_NOT_ENOUGH_ITEM:
|
||||
printf("Not enough Compensatory Item.");
|
||||
break;
|
||||
|
||||
case Chemical::F_WRONG_RATE:
|
||||
printf("There are remaings of Compensatory Item number. Regulate compensation rate.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SkillScriptCheck(CSkillMgr& SkillMgr)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
int nType = 0;
|
||||
|
||||
printf("\nInput Skills Hexadecimal ID. (0 - Quit) : ");
|
||||
scanf("%x", &nType);
|
||||
|
||||
if (0 == nType) { break; }
|
||||
|
||||
if (0 == SkillMgr.GetSkillProtoType(nType))
|
||||
{
|
||||
printf("Can't find the Skill which is ID No.0x%x.", nType);
|
||||
continue;
|
||||
}
|
||||
|
||||
printf("Skill Name : %s\n", SkillMgr.GetSkillProtoType(nType)[0].m_SpriteInfo.m_szName);
|
||||
printf("Skill Name : %s\n", SkillMgr.GetSkillProtoType(nType)[1].m_SpriteInfo.m_szName);
|
||||
printf("Skill Name : %s\n", SkillMgr.GetSkillProtoType(nType)[2].m_SpriteInfo.m_szName);
|
||||
printf("Skill Name : %s\n", SkillMgr.GetSkillProtoType(nType)[3].m_SpriteInfo.m_szName);
|
||||
printf("Skill Name : %s\n", SkillMgr.GetSkillProtoType(nType)[4].m_SpriteInfo.m_szName);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MonsterScriptCheck(CMonsterMgr& MonsterMgr)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
int nType = 0;
|
||||
|
||||
printf("\nInput the Monsters ID.(0 - Quit) : ");
|
||||
scanf("%d", &nType);
|
||||
|
||||
if (0 == nType) { break; }
|
||||
|
||||
if (0 == MonsterMgr.GetMonsterProtoType(nType))
|
||||
{
|
||||
printf("Can't find the Monster which is ID No.%d.", nType);
|
||||
continue;
|
||||
}
|
||||
|
||||
printf("Monster Name : %s\n", MonsterMgr.GetMonsterProtoType(nType)->m_MonsterInfo.m_strName);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool FilterScriptCheck(void)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
char szText[Filter::MAX_FILTER_LEN];
|
||||
|
||||
printf("\nInput word what you want check. (0 - Quit) : ");
|
||||
scanf("%s", szText);
|
||||
|
||||
if (0 == strcmp("0", szText)) { break; }
|
||||
|
||||
if (false == Filter::NameCheck(szText))
|
||||
{
|
||||
printf("'%s' is abusive word.", szText);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("'%s' is not abusive word.", szText);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int InputZoneNumber(void)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
int nZone = 0;
|
||||
|
||||
printf("\nInput ZONE number. (0 - Quit) : ");
|
||||
scanf("%d", &nZone);
|
||||
|
||||
return nZone;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool MineralVeinScriptCheck(CMineralVeinMgr& MineralVeinMgr)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
char szTempBuf[ MAX_PATH ];
|
||||
unsigned long dwVeinColor;
|
||||
|
||||
printf("\nInput COLOR number of the mineral vein. (Ex - 0x12345678, 0 - Quit) : ");
|
||||
scanf("%s", szTempBuf);
|
||||
|
||||
if ( 0 == stricmp(szTempBuf, "0") )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
dwVeinColor = Math::Convert::Atoi(szTempBuf);
|
||||
if (0 == MineralVeinMgr.GetMineralVein(dwVeinColor))
|
||||
{
|
||||
printf("Can't find the mineral vein which is number %s.", szTempBuf);
|
||||
continue;
|
||||
}
|
||||
|
||||
MineralVeinInfo* lpVeinInfo = MineralVeinMgr.GetMineralVein(dwVeinColor);
|
||||
if ( lpVeinInfo )
|
||||
{
|
||||
printf("Mineral veins Name : %s\tColor : %s\tMax Fertility : %d\tMineral Qty. : %d\n\n",
|
||||
lpVeinInfo->m_szVeinName, szTempBuf, lpVeinInfo->m_dwMaxFertility, lpVeinInfo->m_lstMineralInfo.size());
|
||||
|
||||
while (true)
|
||||
{
|
||||
int iMineral = 0;
|
||||
printf("Input MINERAL number. (0 - Quit) : ");
|
||||
scanf("%d", &iMineral);
|
||||
|
||||
if (0 == iMineral)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool bExist = false;
|
||||
MineralInfoList::iterator itr = lpVeinInfo->m_lstMineralInfo.begin();
|
||||
MineralInfoList::iterator end = lpVeinInfo->m_lstMineralInfo.end();
|
||||
while ( itr != end )
|
||||
{
|
||||
const MineralInfo& mineralInfo = (*itr);
|
||||
if ( mineralInfo.m_dwMineralID == iMineral )
|
||||
{
|
||||
bExist = true;
|
||||
printf("Mineral : %d\tMin Abstraction : %d\tMax Abstraction : %d\n",
|
||||
mineralInfo.m_dwMineralID, mineralInfo.m_cMin, mineralInfo.m_cMax);
|
||||
}
|
||||
|
||||
++itr;
|
||||
}
|
||||
|
||||
if ( !bExist )
|
||||
{
|
||||
printf("Can't find the mineral which is number %d.\n", iMineral);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool LotteryEventCheck(CGameEventMgr& GameEventMgr)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
int nType = 0;
|
||||
|
||||
printf("\nInput Event drop Item number. (0 - Quit) : ");
|
||||
scanf("%d", &nType);
|
||||
|
||||
if (0 == nType) { break; }
|
||||
|
||||
CLotteryEvent& LotteryEvent = GameEventMgr.GetLotteryEvent();
|
||||
|
||||
Item::CItem* lpItem = LotteryEvent.PrizeLottery(nType);
|
||||
if (NULL == lpItem)
|
||||
{
|
||||
printf("LOSE! (Boom!)");
|
||||
continue;
|
||||
}
|
||||
|
||||
printf("Prize Name : %s, Prize Qty. : %d\n",
|
||||
lpItem->GetItemInfo().m_SpriteData.m_szName, lpItem->GetNumOrDurability());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
int _tmain(int argc, _TCHAR* argv[])
|
||||
{
|
||||
InitVersionInfo();
|
||||
|
||||
printf("\n<< Script Convert Ver %s >>\n", g_szCurrentVersion);
|
||||
|
||||
char szItemScriptTrashFile[MAX_PATH] = "ItemScript.jpg";
|
||||
char szChemicalScriptTrashFile[MAX_PATH] = "Chemical.jpg";
|
||||
char szCompensationScriptTrashFile[MAX_PATH] = "SpeacialCompensation.jpg";
|
||||
char szSkillScriptTrashFile[MAX_PATH] = "SkillScript.jpg";
|
||||
char szMonsterScriptTrashFile[MAX_PATH] = "MonsterScript.jpg";
|
||||
char szAbuseTrashFile[MAX_PATH] = "Abuse.jpg";
|
||||
char szMineralVeinScriptTrashFile[MAX_PATH] = "MineralVeinScript.jpg";
|
||||
|
||||
CItemMgr& ItemMgr = CItemMgr::GetInstance();
|
||||
CSkillMgr& SkillMgr = CSkillMgr::GetInstance();
|
||||
CMonsterMgr& MonsterMgr = CMonsterMgr::GetInstance();
|
||||
CGameEventMgr& GameEventMgr = CGameEventMgr::GetInstance();
|
||||
CMineralVeinMgr& MineralVeinMgr = CMineralVeinMgr::GetInstance();
|
||||
|
||||
int nType = 0;
|
||||
printf("\nSelect Number. (Quit : 0)");
|
||||
printf("\n===========================================================");
|
||||
printf("\n1 : Item Script Converting & Load Test");
|
||||
printf("\n2 : Chemical Script Converting & Load Test");
|
||||
printf("\n3 : SpeacialCompensation Script Converting & Load Test");
|
||||
printf("\n4 : Skill Converting & Load Test");
|
||||
printf("\n5 : MonsterProtoType Script Converting & Load Test");
|
||||
printf("\n6 : Abusement Converting & Load Test");
|
||||
printf("\n7 : Mineral Vein Script Converting & Load Test");
|
||||
printf("\n");
|
||||
printf("\n8 : Check Item Price by Item Script Tab File");
|
||||
printf("\n9 : Check Item Price by Item Script Binary File");
|
||||
printf("\n10 : Check Integrity of Lottery Event Script");
|
||||
printf("\n");
|
||||
printf("\n17 : Mineral Vein Script UnPack");
|
||||
printf("\n");
|
||||
printf("\n100 : Verify Latest Version of ScriptConverter");
|
||||
printf("\n200 : Create Info File of ScriptConverter.");
|
||||
printf("\n===========================================================");
|
||||
printf("\n");
|
||||
printf("\n<EFBFBD><EFBFBD>Note : You MUST TEST CONVERTED FILE after sciprt converting!!");
|
||||
|
||||
START:
|
||||
|
||||
printf("\n? ");
|
||||
scanf("%d", &nType);
|
||||
|
||||
switch (nType)
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
|
||||
case 1:
|
||||
{
|
||||
SERVER_TYPE serverType = GetCurrentItemScript();
|
||||
|
||||
if (false == ItemMgr.LoadItemProtoType((SERVER_BATTLE == serverType) ? "BGItemScript.txt" : "ItemScript.txt"))
|
||||
{
|
||||
printf("Failed to ItemScipt file loading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == ItemMgr.SaveItemProtoTypeBinary((SERVER_BATTLE == serverType) ? "BGItemScript.gsf" : "ItemScript.gsf",
|
||||
szItemScriptTrashFile))
|
||||
{
|
||||
printf("Failed to ItemScipt file saving!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == ItemMgr.LoadItemProtoTypeBinary((SERVER_BATTLE == serverType) ? "BGItemScript.gsf" : "ItemScript.gsf"))
|
||||
{
|
||||
printf("Failed to ItemScipt reloading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == ItemScriptCheck(ItemMgr))
|
||||
{
|
||||
printf("Irregular ItemScript. Check script Please.\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*ItemMgr.PrintDropListByLevel();
|
||||
ItemMgr.PrintRingDropListByLevel();
|
||||
ItemMgr.PrintNecklaceDropListByLevel();
|
||||
ItemMgr.PrintRuneDropListByLevel();*/
|
||||
|
||||
printf("Success to ItemScript converting.\n");
|
||||
getchar();getchar();
|
||||
break;
|
||||
}
|
||||
|
||||
case 2:
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5>ؾ<EFBFBD><D8BE>Ѵ<EFBFBD>.
|
||||
if (false == ItemMgr.LoadItemProtoType((SERVER_BATTLE == GetCurrentItemScript()) ? "BGItemScript.txt" : "ItemScript.txt"))
|
||||
{
|
||||
printf("Failed to ItemScipt file loading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == ItemMgr.LoadItemChemical("Chemical.txt"))
|
||||
{
|
||||
printf("Failed to Chemical Script loading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == ItemMgr.SaveItemChemicalBinary("Chemical.gsf", szChemicalScriptTrashFile))
|
||||
{
|
||||
printf("Failed to Chemical Scipt file saving!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == ItemMgr.LoadItemChemicalBinary("Chemical.gsf"))
|
||||
{
|
||||
printf("Failed to Chemical Scipt reloading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == ChemicalScriptCheck(ItemMgr))
|
||||
{
|
||||
printf("Irregular Chemical Script. Check script Please.\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("Success to Chemical Script converting.\n");
|
||||
getchar();getchar();
|
||||
break;
|
||||
}
|
||||
|
||||
case 3:
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5>ؾ<EFBFBD><D8BE>Ѵ<EFBFBD>.
|
||||
if (false == ItemMgr.LoadItemProtoType((SERVER_BATTLE == GetCurrentItemScript()) ? "BGItemScript.txt" : "ItemScript.txt"))
|
||||
{
|
||||
printf("Failed to ItemScipt file loading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == ItemMgr.LoadItemSpeacialCompensation("SpeacialCompensation.txt"))
|
||||
{
|
||||
printf("Failed to SpeacialCompensation Script file loading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == ItemMgr.SaveItemSpeacialCompensationBinary("SpeacialCompensation.gsf", szCompensationScriptTrashFile))
|
||||
{
|
||||
printf("Failed to SpeacialCompensation Script file saving!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == ItemMgr.LoadItemSpeacialCompensationBinary("SpeacialCompensation.gsf"))
|
||||
{
|
||||
printf("Failed to SpeacialCompensation Script file reloading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Rodin : <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ üũ <20><>ƾ
|
||||
/*
|
||||
if (false == CompensationScriptCheck(ItemMgr))
|
||||
{
|
||||
printf("Irregular Compensation Script. Check script Please.\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
*/
|
||||
|
||||
printf("Success to Chemical Script converting.\n");
|
||||
getchar();getchar();
|
||||
break;
|
||||
}
|
||||
|
||||
case 4:
|
||||
{
|
||||
if (false == SkillMgr.LoadSkillsFromFile("SkillScript.txt"))
|
||||
{
|
||||
printf("Failed to Skill Scipt file loading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == SkillMgr.SaveSkillsToBinary("SkillScript.gsf", szSkillScriptTrashFile))
|
||||
{
|
||||
printf("Failed to Skill Scipt file saving!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == SkillMgr.LoadSkillsFromBinary("SkillScript.gsf"))
|
||||
{
|
||||
printf("Failed to Skill Scipt file reloading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == SkillScriptCheck(SkillMgr))
|
||||
{
|
||||
printf("Irregular Skill Script. Check script Please.\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("Success to Skill Script converting.\n");
|
||||
getchar();getchar();
|
||||
break;
|
||||
}
|
||||
|
||||
case 5:
|
||||
{
|
||||
if (false == MonsterMgr.LoadMonstersFromFile("MonsterProtoType.txt"))
|
||||
{
|
||||
printf("Failed to MonsterProtoType Scipt file loading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == MonsterMgr.SaveMonstersToBinary("MonsterProtoType.gsf", szMonsterScriptTrashFile))
|
||||
{
|
||||
printf("Failed to MonsterProtoType Scipt file saving!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == MonsterMgr.LoadMonstersFromBinary("MonsterProtoType.gsf"))
|
||||
{
|
||||
printf("Failed to MonsterProtoType Scipt file reloading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
if (false == MonsterScriptCheck(MonsterMgr))
|
||||
{
|
||||
printf("Irregular MonsterProtoType Script. Check script Please.\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("Success to MonsterProtoType Script converting.\n");
|
||||
getchar();getchar();
|
||||
break;
|
||||
}
|
||||
|
||||
case 6:
|
||||
{
|
||||
if (false == Filter::InitFilter("Abuse.txt"))
|
||||
{
|
||||
printf("Failed to Abusement Scipt file loading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == Filter::SaveFilterDBToBinary("script1.gsf", szAbuseTrashFile))
|
||||
{
|
||||
printf("Failed to Abusement Scipt file saving!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == Filter::LoadFilterDBFromBinary("script1.gsf"))
|
||||
{
|
||||
printf("Failed to Abusement Scipt file reloading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == FilterScriptCheck())
|
||||
{
|
||||
printf("Irregular Abusement Script. Check script Please.\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("Success to Abusement Script converting.\n");
|
||||
getchar();getchar();
|
||||
break;
|
||||
}
|
||||
|
||||
case 7:
|
||||
{
|
||||
int nZone = InputZoneNumber();
|
||||
if (0 == nZone)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
char szFileName[ MAX_PATH ];
|
||||
sprintf(szFileName, "MineralVein%d.txt", nZone);
|
||||
if (false == MineralVeinMgr.LoadMineralVeinsFromFiles(szFileName))
|
||||
{
|
||||
printf("Failed to Mineral Vein Scipt file loading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
strtok(szFileName, ".");
|
||||
strcat(szFileName, ".gsf");
|
||||
if (false == MineralVeinMgr.SaveMineralVeinsToBinary(szFileName, szMineralVeinScriptTrashFile))
|
||||
{
|
||||
printf("Failed to Mineral Vein Scipt file saving!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// <20>ʱ<EFBFBD>ȭ <20>Ŀ<EFBFBD> <20><><EFBFBD>ε<EFBFBD>
|
||||
MineralVeinMgr.Destroy();
|
||||
MineralVeinMgr.Initialize();
|
||||
if (false == MineralVeinMgr.LoadMineralVeinsFromBinary(szFileName))
|
||||
{
|
||||
printf("Failed to Mineral Vein Scipt file reloading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == MineralVeinScriptCheck(MineralVeinMgr))
|
||||
{
|
||||
printf("Irregular Mineral Vein Script. Check script Please.\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("Success to Mineral Vein Script converting.\n");
|
||||
getchar();getchar();
|
||||
break;
|
||||
}
|
||||
|
||||
case 8:
|
||||
{
|
||||
if (false == ItemMgr.LoadItemProtoType((SERVER_BATTLE == GetCurrentItemScript()) ? "BGItemScript.txt" : "ItemScript.txt"))
|
||||
{
|
||||
printf("Failed to Scipt file loading!\n");
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 9:
|
||||
{
|
||||
if (false == ItemMgr.LoadItemProtoTypeBinary((SERVER_BATTLE == GetCurrentItemScript()) ? "BGItemScript.gsf" : "ItemScript.gsf"))
|
||||
{
|
||||
printf("Failed to Scipt file loading!\n");
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 10:
|
||||
{
|
||||
if (false == ItemMgr.LoadItemProtoType((SERVER_BATTLE == GetCurrentItemScript()) ? "BGItemScript.txt" : "ItemScript.txt"))
|
||||
{
|
||||
printf("Failed to ItemScipt file loading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (false == GameEventMgr.Initialize("LotteryEvent.txt"))
|
||||
{
|
||||
printf("Irregular Lottery Event Script! Check script Please.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
LotteryEventCheck(GameEventMgr);
|
||||
break;
|
||||
}
|
||||
|
||||
case 17:
|
||||
{
|
||||
int nZone = InputZoneNumber();
|
||||
if (0 == nZone)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
char szFileName[ MAX_PATH ];
|
||||
sprintf(szFileName, "MineralVein%d.gsf", nZone);
|
||||
if (false == MineralVeinMgr.LoadMineralVeinsFromBinary(szFileName))
|
||||
{
|
||||
printf("Failed to Mineral Vein Scipt file reloading!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
strtok(szFileName, ".");
|
||||
strcat(szFileName, ".txt");
|
||||
|
||||
if (false == MineralVeinMgr.SaveMineralVeinsToText(szFileName))
|
||||
{
|
||||
printf("Failed to Mineral Vein Scipt file saving!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("Success to Mineral Vein Script UnPack.\n");
|
||||
getchar();getchar();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case 100:
|
||||
{
|
||||
char szVersionInfo[ 65535 ] = "";
|
||||
for (int i=0; i<g_nVersionLineCnt; ++i)
|
||||
{
|
||||
strcat(szVersionInfo, g_szVersionInfo[i]);
|
||||
strcat(szVersionInfo, "\n");
|
||||
}
|
||||
|
||||
MessageBox(NULL, szVersionInfo, "ScriptConvert Version Info", MB_OK);
|
||||
goto START;
|
||||
}
|
||||
|
||||
case 200:
|
||||
{
|
||||
CreateVersionHistoryFile("Version History.txt");
|
||||
goto START;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
printf("It is wrong number.\n");
|
||||
getchar();getchar();
|
||||
goto START;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void InitVersionInfo(void)
|
||||
{
|
||||
#define ADD_LINE() \
|
||||
++nLine; \
|
||||
if (nLine >= MAX_VERSION_HISTORY) { \
|
||||
MessageBox(NULL, "VERSION ERROR : Input higher number of MAX_VERSION_HISTORY.", "Error", MB_OK); \
|
||||
exit(0); \
|
||||
}
|
||||
|
||||
// <20><EFBFBD><DEB4><EFBFBD> ǥ<>õ<EFBFBD> <20>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
strcpy(g_szCurrentVersion, "1.39");
|
||||
|
||||
// <20>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>μ<EFBFBD>
|
||||
g_nVersionLineCnt = 2;
|
||||
|
||||
// "========================================================================================"
|
||||
// "Version History"
|
||||
// "----------------------------------------------------------------------------------------"
|
||||
//
|
||||
int nLine = 0;
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.39 (2006-06-19)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : ItemType<70><65> GEM_SELL Ÿ<><C5B8> <20>߰<EFBFBD>(<28><><EFBFBD><EFBFBD>/<2F>ǸŰ<C7B8> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) " ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.38 (2006-04-26)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : 3<><33> <20>뷱<EFBFBD><EBB7B1> <20><>ġ / S <20><EFBFBD><D7B7>̵<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> " ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.37 (2005-10-31)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>÷<EFBFBD> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.36 (2005-07-20)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : SKILL_ITEM Ÿ<><C5B8>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3> ȿ<><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : LinkQID <20>÷<EFBFBD> <20><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : ForStatueWar, LimitRealmPoint <20>÷<EFBFBD> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.35 (2005-07-15)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><><EFBFBD><EFBFBD> ȿ<><C8BF> Ÿ<><C5B8>, <20><><EFBFBD><EFBFBD> ȿ<><C8BF> <20>ۼ<EFBFBD>Ʈ <20><> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.34 (2005-07-08)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : FIXED_PORTAL Ÿ<><C5B8>(<28><>ȯ <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>) <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.33 (2005-04-12)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20><>ũ<EFBFBD><C5A9>Ʈ : Guard Ÿ<><C5B8> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.32 (2005-03-18)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20><>ġ <20><>ũ<EFBFBD><C5A9>Ʈ : <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.31 (2005-02-25)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : LinkQID <20>÷<EFBFBD> <20>߰<EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD> <20><><EFBFBD><EFBFBD>)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.30 (2005-02-24)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD>ȭ (<28><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD><EFBFBD>)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.29 (2005-02-23)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : AbleExchangeAndDrop, AbleSell <20>÷<EFBFBD> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.28 (2005-02-23)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD≯<EFBFBD> 32 <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> 64 <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>ø<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ȯ<><C8AE> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.27 (2005-02-17)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><>, <20>Ǽ<EFBFBD><C7BC>縮 <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><>, <20>Ǽ<EFBFBD><C7BC>縮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.26 (2005-02-15)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><>, <20>Ǽ<EFBFBD><C7BC>縮<EFBFBD><E7B8AE> <20><><EFBFBD>õ<EFBFBD> <20><>ƾ <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʿ<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><>, <20>Ǽ<EFBFBD><C7BC>縮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.25 (2005-02-14)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>α<EFBFBD> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.24 (2005-01-20)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><>ų <20><>ũ<EFBFBD><C5A9>Ʈ : <20>Ҽ<EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD> (Ÿ<><C5B8> <20>߰<EFBFBD>)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʿ<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.23 (2005-01-20)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20><>ġ <20><>ũ<EFBFBD><C5A9>Ʈ : <20><><EFBFBD>ڿ<EFBFBD> ó<><C3B3><EFBFBD>κп<CEBA> <20>ִ<EFBFBD> Tab <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.22 (2005-01-06)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ÿ<EFBFBD><C5B8>Ŷ 2<><32>, <20><><EFBFBD><EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> Ȯ<><C8AE> Ŷ <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.21 (2004-12-29)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȹ'<27><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>߰<EFBFBD>/<2F><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.20 (2004-12-21)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20><>ġ <20><>ũ<EFBFBD><C5A9>Ʈ : Trash <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20>־<EFBFBD><D6BE>ֵ<EFBFBD><D6B5><EFBFBD> <20><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.19 (2004-12-16)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><>ų <20><>ũ<EFBFBD><C5A9>Ʈ : Counter <20><> <20>߰<EFBFBD> (ī<><C4AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.18 (2004-12-16)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD>ο<EFBFBD> <20><>ų Ÿ<><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SET <20>߰<EFBFBD> (æƮ/<2F><>æƮ<C3A6><C6AE> <20>߰<EFBFBD> ȿ<><C8BF> <20><>ų)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><>ų <20><>ũ<EFBFBD><C5A9>Ʈ üũ <20><>ƾ <20>Է<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (10<31><30><EFBFBD><EFBFBD> -> 16<31><36><EFBFBD><EFBFBD>)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.17 (2004-12-15)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20><>ġ <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD> (MineralVein?.gsf)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.16 (2004-11-23)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20>弳 <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>θ<EFBFBD> <20><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.15 (2004-11-17)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + æƮ/<2F><>æƮ <20>÷<EFBFBD><C3B7>װ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٽ<EFBFBD> <20>ؾ<EFBFBD><D8BE>մϴ<D5B4>." ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.14 (2004-09-21)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20>̺<EFBFBD>Ʈ <20><>ũ<EFBFBD><C5A9>Ʈ <20>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϰԲ<CFB0> <20><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.13 (2004-09-02)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + FightStatus<75><73> <20><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٽ<EFBFBD> <20>ؾ<EFBFBD><D8BE>մϴ<D5B4>." ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.12 (2004-08-13)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ <20>߰<EFBFBD> (SpeacialCompensation.txt)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.11 (2004-08-10)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ ID <20><> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.10 (2004-07-21)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : LOD <20><><EFBFBD><EFBFBD> <20><> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.09 (2004-07-14)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20>÷<EFBFBD><C3B7>װ<EFBFBD> <20><><EFBFBD><EFBFBD> (Item::DetailData::Flags <20><><EFBFBD><EFBFBD>)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.08 (2004-07-07)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><>ȹ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20>ۼ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD> "); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.07 (2004-06-18)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><>ų <20><>ũ<EFBFBD><C5A9>Ʈ : mRange, LockAdd <20><> <20>߰<EFBFBD>. DRC <20><> <20><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.06 (2004-06-17)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ȯ<><C8AE><EFBFBD><EFBFBD> <20><EFBFBD><D7B7>̵庰<CCB5><E5BAB0> <20><><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD> " ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.05 (2004-06-16)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ : OptionPrice <20><> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.04 (2004-06-09)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD>뷱<EFBFBD>̿<EFBFBD><CCBF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.03" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<><C5B8> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><> <20>߰<EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 13<31><33>)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.02" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><>æƮ/æƮ <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<>Կ<EFBFBD> <20>߰<EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.01" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD> (<28><>Ÿ<EFBFBD><C5B8>Ŷ 4<><34>)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.00" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + <20><><EFBFBD><EFBFBD> <20>ѹ<EFBFBD><D1B9><EFBFBD> <20><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + ġ<><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD>Ҿ<EFBFBD> <20><><EFBFBD><EFBFBD>" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "End" ); ADD_LINE();
|
||||
// " ======================================================================================="
|
||||
}
|
||||
Reference in New Issue
Block a user