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:
0
Server/ToolProject/ScriptConvert/Chemical.gsf
Normal file
0
Server/ToolProject/ScriptConvert/Chemical.gsf
Normal file
39
Server/ToolProject/ScriptConvert/Chemical.txt
Normal file
39
Server/ToolProject/ScriptConvert/Chemical.txt
Normal file
@@ -0,0 +1,39 @@
|
||||
PickkingItem TargetItem ResultItem
|
||||
Name ID Num Name ID Num Name ID Num
|
||||
;원석 + 증류수 = 물약
|
||||
루비조각 1901 1 증류수(S) 3101 1 힐링 포션(S) 3153 1
|
||||
블랙문 조각 1905 1 증류수(S) 3101 1 디펜스 포션 (S) 3157 1
|
||||
에메랄드조각 1902 1 증류수(S) 3101 1 디스인챈트 포션(S) 3161 1
|
||||
사파이어조각 1903 1 증류수(S) 3101 1 매직 포션(S) 3165 1
|
||||
다이아몬드조각 1904 1 증류수(S) 3101 1 라이트닝 포션 (S) 3169 1
|
||||
작은 루비 1906 1 증류수(M) 3102 1 힐링 포션(M) 3154 1
|
||||
작은 블랙문 1910 1 증류수(M) 3102 1 디펜스 포션 (M) 3158 1
|
||||
작은 에메랄드 1907 1 증류수(M) 3102 1 디스인챈트 포션(M) 3162 1
|
||||
작은 사파이어 1908 1 증류수(M) 3102 1 매직 포션(M) 3166 1
|
||||
작은 다이아몬드 1909 1 증류수(M) 3102 1 라이트닝 포션 (M) 3170 1
|
||||
루비 1911 1 증류수(L) 3103 1 힐링 포션(L) 3155 1
|
||||
블랙문 1915 1 증류수(L) 3103 1 디펜스 포션 (L) 3159 1
|
||||
에메랄드 1912 1 증류수(L) 3103 1 디스인챈트 포션(L) 3163 1
|
||||
사파이어 1913 1 증류수(L) 3103 1 매직 포션(L) 3167 1
|
||||
다이아몬드 1914 1 증류수(L) 3103 1 라이트닝 포션 (L) 3171 1
|
||||
;증류수 + 원석 = 물약(위의 내용의 역방향)
|
||||
증류수(S) 3101 1 루비조각 1901 1 힐링 포션(S) 3153 1
|
||||
증류수(S) 3101 1 블랙문 조각 1905 1 디펜스 포션 (S) 3157 1
|
||||
증류수(S) 3101 1 에메랄드조각 1902 1 디스인챈트 포션(S) 3161 1
|
||||
증류수(S) 3101 1 사파이어조각 1903 1 매직 포션(S) 3165 1
|
||||
증류수(S) 3101 1 다이아몬드조각 1904 1 라이트닝 포션 (S) 3169 1
|
||||
증류수(M) 3102 1 작은 루비 1906 1 힐링 포션(M) 3154 1
|
||||
증류수(M) 3102 1 작은 블랙문 1910 1 디펜스 포션 (M) 3158 1
|
||||
증류수(M) 3102 1 작은 에메랄드 1907 1 디스인챈트 포션(M) 3162 1
|
||||
증류수(M) 3102 1 작은 사파이어 1908 1 매직 포션(M) 3166 1
|
||||
증류수(M) 3102 1 작은 다이아몬드 1909 1 라이트닝 포션 (M) 3170 1
|
||||
증류수(L) 3103 1 루비 1911 1 힐링 포션(L) 3155 1
|
||||
증류수(L) 3103 1 블랙문 1915 1 디펜스 포션 (L) 3159 1
|
||||
증류수(L) 3103 1 에메랄드 1912 1 디스인챈트 포션(L) 3163 1
|
||||
증류수(L) 3103 1 사파이어 1913 1 매직 포션(L) 3167 1
|
||||
증류수(L) 3103 1 다이아몬드 1914 1 라이트닝 포션 (L) 3171 1
|
||||
증류수(S) 3101 1 씨맨 비늘 8001 1 라이트닝 포션 (S) 3171 1
|
||||
;빨간양말 + 재료 = 빨간양말 업그레이드(2006년 크리스마스 이벤트)
|
||||
산타의 마법가루 12009 1 빨간양말(0/3) 30020 1 빨간양말(1/3) 30021 1
|
||||
요정의 리본 12011 1 빨간양말(1/3) 30021 1 빨간양말(2/3) 30022 1
|
||||
루돌프의 이름표 12010 1 빨간양말(2/3) 30022 1 빨간양말(3/3) 30023 1
|
||||
3103
Server/ToolProject/ScriptConvert/ItemScript.txt
Normal file
3103
Server/ToolProject/ScriptConvert/ItemScript.txt
Normal file
File diff suppressed because it is too large
Load Diff
32
Server/ToolProject/ScriptConvert/ReadMe.txt
Normal file
32
Server/ToolProject/ScriptConvert/ReadMe.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
========================================================================
|
||||
콘솔 응용 프로그램 : ScriptConvert 프로젝트 개요
|
||||
========================================================================
|
||||
|
||||
응용 프로그램 마법사에서 이 ScriptConvert 응용 프로그램을 만들었습니다.
|
||||
이 파일에는 ScriptConvert 응용 프로그램을 구성하는 각각의 파일에
|
||||
들어 있는 요약 설명이 포함되어 있습니다.
|
||||
|
||||
|
||||
ScriptConvert.vcproj
|
||||
응용 프로그램 마법사를 사용하여 생성한 VC++ 프로젝트의 기본 프로젝트 파일입니다.
|
||||
해당 파일을 생성한 Visual C++의 버전 정보를 비롯하여
|
||||
응용 프로그램 마법사에서 선택한 플랫폼, 구성 및
|
||||
프로젝트 기능에 대한 정보가 들어 있습니다.
|
||||
|
||||
ScriptConvert.cpp
|
||||
기본 응용 프로그램 소스 파일입니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
기타 표준 파일:
|
||||
|
||||
StdAfx.h 및 StdAfx.cpp는
|
||||
ScriptConvert.pch라는 이름의 PCH(미리 컴파일된 헤더) 파일과
|
||||
StdAfx.obj라는 이름의 미리 컴파일된 형식 파일을 빌드하는 데 사용됩니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
기타 참고:
|
||||
|
||||
응용 프로그램 마법사에서 사용하는 "TODO:" 주석은 사용자가 추가하거나 사용자 지정해야 하는
|
||||
소스 코드 부분을 나타냅니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
39
Server/ToolProject/ScriptConvert/Script/Game/Chemical.txt
Normal file
39
Server/ToolProject/ScriptConvert/Script/Game/Chemical.txt
Normal file
@@ -0,0 +1,39 @@
|
||||
PickkingItem TargetItem ResultItem
|
||||
Name ID Num Name ID Num Name ID Num
|
||||
;원석 + 증류수 = 물약
|
||||
루비조각 1901 1 증류수(S) 3101 1 힐링 포션(S) 3153 1
|
||||
블랙문 조각 1905 1 증류수(S) 3101 1 디펜스 포션 (S) 3157 1
|
||||
에메랄드조각 1902 1 증류수(S) 3101 1 디스인챈트 포션(S) 3161 1
|
||||
사파이어조각 1903 1 증류수(S) 3101 1 매직 포션(S) 3165 1
|
||||
다이아몬드조각 1904 1 증류수(S) 3101 1 라이트닝 포션 (S) 3169 1
|
||||
작은 루비 1906 1 증류수(M) 3102 1 힐링 포션(M) 3154 1
|
||||
작은 블랙문 1910 1 증류수(M) 3102 1 디펜스 포션 (M) 3158 1
|
||||
작은 에메랄드 1907 1 증류수(M) 3102 1 디스인챈트 포션(M) 3162 1
|
||||
작은 사파이어 1908 1 증류수(M) 3102 1 매직 포션(M) 3166 1
|
||||
작은 다이아몬드 1909 1 증류수(M) 3102 1 라이트닝 포션 (M) 3170 1
|
||||
루비 1911 1 증류수(L) 3103 1 힐링 포션(L) 3155 1
|
||||
블랙문 1915 1 증류수(L) 3103 1 디펜스 포션 (L) 3159 1
|
||||
에메랄드 1912 1 증류수(L) 3103 1 디스인챈트 포션(L) 3163 1
|
||||
사파이어 1913 1 증류수(L) 3103 1 매직 포션(L) 3167 1
|
||||
다이아몬드 1914 1 증류수(L) 3103 1 라이트닝 포션 (L) 3171 1
|
||||
;증류수 + 원석 = 물약(위의 내용의 역방향)
|
||||
증류수(S) 3101 1 루비조각 1901 1 힐링 포션(S) 3153 1
|
||||
증류수(S) 3101 1 블랙문 조각 1905 1 디펜스 포션 (S) 3157 1
|
||||
증류수(S) 3101 1 에메랄드조각 1902 1 디스인챈트 포션(S) 3161 1
|
||||
증류수(S) 3101 1 사파이어조각 1903 1 매직 포션(S) 3165 1
|
||||
증류수(S) 3101 1 다이아몬드조각 1904 1 라이트닝 포션 (S) 3169 1
|
||||
증류수(M) 3102 1 작은 루비 1906 1 힐링 포션(M) 3154 1
|
||||
증류수(M) 3102 1 작은 블랙문 1910 1 디펜스 포션 (M) 3158 1
|
||||
증류수(M) 3102 1 작은 에메랄드 1907 1 디스인챈트 포션(M) 3162 1
|
||||
증류수(M) 3102 1 작은 사파이어 1908 1 매직 포션(M) 3166 1
|
||||
증류수(M) 3102 1 작은 다이아몬드 1909 1 라이트닝 포션 (M) 3170 1
|
||||
증류수(L) 3103 1 루비 1911 1 힐링 포션(L) 3155 1
|
||||
증류수(L) 3103 1 블랙문 1915 1 디펜스 포션 (L) 3159 1
|
||||
증류수(L) 3103 1 에메랄드 1912 1 디스인챈트 포션(L) 3163 1
|
||||
증류수(L) 3103 1 사파이어 1913 1 매직 포션(L) 3167 1
|
||||
증류수(L) 3103 1 다이아몬드 1914 1 라이트닝 포션 (L) 3171 1
|
||||
증류수(S) 3101 1 씨맨 비늘 8001 1 라이트닝 포션 (S) 3171 1
|
||||
;빨간양말 + 재료 = 빨간양말 업그레이드(2006년 크리스마스 이벤트)
|
||||
산타의 마법가루 12009 1 빨간양말(0/3) 30020 1 빨간양말(1/3) 30021 1
|
||||
요정의 리본 12011 1 빨간양말(1/3) 30021 1 빨간양말(2/3) 30022 1
|
||||
루돌프의 이름표 12010 1 빨간양말(2/3) 30022 1 빨간양말(3/3) 30023 1
|
||||
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 // 총 버전 라인수
|
||||
|
||||
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"))
|
||||
{
|
||||
// 마지막 라인이면 그만
|
||||
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※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:
|
||||
{
|
||||
// 아이템 기본 정보를 먼저 로딩해야한다.
|
||||
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:
|
||||
{
|
||||
// 아이템 기본 정보를 먼저 로딩해야한다.
|
||||
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 : 보상 스크립트 체크 루틴
|
||||
/*
|
||||
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;
|
||||
}
|
||||
|
||||
// 파일명 변경
|
||||
strtok(szFileName, ".");
|
||||
strcat(szFileName, ".gsf");
|
||||
if (false == MineralVeinMgr.SaveMineralVeinsToBinary(szFileName, szMineralVeinScriptTrashFile))
|
||||
{
|
||||
printf("Failed to Mineral Vein Scipt file saving!\n");
|
||||
getchar();getchar();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// 초기화 후에 재로드
|
||||
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;
|
||||
}
|
||||
|
||||
// 파일명 변경
|
||||
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); \
|
||||
}
|
||||
|
||||
// 메뉴에 표시될 최신 버전 정보
|
||||
strcpy(g_szCurrentVersion, "1.39");
|
||||
|
||||
// 최신 버전의 라인수
|
||||
g_nVersionLineCnt = 2;
|
||||
|
||||
// "========================================================================================"
|
||||
// "Version History"
|
||||
// "----------------------------------------------------------------------------------------"
|
||||
//
|
||||
int nLine = 0;
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.39 (2006-06-19)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : ItemType에 GEM_SELL 타입 추가(구매/판매가 동일 아이템) " ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.38 (2006-04-26)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : 3차 밸런스 패치 / S 그레이드 아이템 추가로 인한 리빌드 " ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.37 (2005-10-31)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 몬스터 스크립트 : 국가전 석상 리스폰 가능 여부 컬럼 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.36 (2005-07-20)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : SKILL_ITEM 타입(연결된 스킬의 효과를 발휘하는 아이템) 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : LinkQID 컬럼 삭제" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : ForStatueWar, LimitRealmPoint 컬럼 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.35 (2005-07-15)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 몬스터 스크립트 : 석상 효과 타입, 석상 효과 퍼센트 탭 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.34 (2005-07-08)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : FIXED_PORTAL 타입(귀환 위치 고정형 귀환서) 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.33 (2005-04-12)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 몬스터 프로토타입 스크립트 : Guard 타입 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.32 (2005-03-18)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 광물 배치 스크립트 : 광맥 이름 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.31 (2005-02-25)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : LinkQID 컬럼 추가 (사용아이템만 적용)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.30 (2005-02-24)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 프로그램 영문화 (히스토리 제외)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.29 (2005-02-23)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : AbleExchangeAndDrop, AbleSell 컬럼 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.28 (2005-02-23)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 몬스터 스크립트 : 몬스터 이름 최대길이를 32 바이트에서 64 바이트로 늘림" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 버전 정보 확인 기능 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.27 (2005-02-17)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : 룬, 악세사리 추가 수정" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 몬스터 스크립트 : 룬, 악세사리 드랍률 탭 추가 수정, 드랍률 단위 증가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.26 (2005-02-15)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : 룬, 악세사리와 관련된 루틴 추가로 재컨버팅 필요" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 몬스터 스크립트 : 룬, 악세사리 드랍률 탭 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.25 (2005-02-14)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 복권 스크립트 : 로딩시 버그 수정 및 관련 로그 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.24 (2005-01-20)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 스킬 스크립트 : 소셜 액션 관련 내용 추가 (타입 추가)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 보상 스크립트 : 아이템 타입의 증가로 인해 재컨버팅 필요" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.23 (2005-01-20)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 광물 배치 스크립트 : 문자열 처음부분에 있는 Tab 문자 제거 기능 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.22 (2005-01-06)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : 월드웨폰 스타터킷 2개, 광물 매립량 확인 킷 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.21 (2004-12-29)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 몬스터 스크립트 : '아이템 드랍 개선 계획'에 따라 드랍 관련 열 추가/수정" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.20 (2004-12-21)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 광물 배치 스크립트 : Trash 파일을 스크립트에 넣어주도록 변경" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.19 (2004-12-16)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 스킬 스크립트 : Counter 열 추가 (카운터를 당할 수 있는지 여부)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.18 (2004-12-16)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 새로운 스킬 타입으로 SET 추가 (챈트/인챈트의 추가 효과 스킬)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 스킬 스크립트 체크 루틴 입력 방식 변경 (10진수 -> 16진수)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.17 (2004-12-15)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 광물 배치 스크립트 컨버팅 기능 추가 (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], " + 욕설 스크립트 원본 읽어오는 경로를 수정" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.15 (2004-11-17)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 챈트/인챈트 플래그가 수정되어서 몬스터 스크립트 컨버팅을 다시 해야합니다." ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.14 (2004-09-21)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 복권 이벤트 스크립트 로딩을 현재 폴더에서 하게끔 수정" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.13 (2004-09-02)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + FightStatus가 수정되서 몬스터 스크립트 컨버팅을 다시 해야합니다." ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.12 (2004-08-13)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 보상 스크립트 추가 (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], " + 아이템 스크립트 : 아이템 퀘스트를 위한 퀘스트 ID 열 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.10 (2004-07-21)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 몬스터 스크립트 : LOD 여부 열 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.09 (2004-07-14)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : 플래그값 수정 (Item::DetailData::Flags 참고)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.08 (2004-07-07)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : 몬스터 레벨별로 떨구는 아이템 목록(기획 참고용) 작성 기능 추가 "); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.07 (2004-06-18)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 스킬 스크립트 : mRange, LockAdd 열 추가. DRC 열 삭제" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.06 (2004-06-17)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 몬스터 스크립트 : 장비 드랍 확률이 그레이드별로 세분화됨 " ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.05 (2004-06-16)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 아이템 스크립트 : OptionPrice 열 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.04 (2004-06-09)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 리밸런싱용으로 아이템/몬스터 스크립트 대폭 수정" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.03" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 공성 오브젝트 몬스터 프로토 타입 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 공성 오브젝트에 필요한 열 추가 (마지막 13개)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.02" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 공성 오브젝트를 위해 인챈트/챈트 무시여부 정보를 몬스터 프로토 타입에 추가" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.01" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 공성 아이템 추가 (스타터킷 4개)" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " - 1.00" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 버전 넘버링 시작" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], " + 치프 몬스터 추가에 더불어 배포" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "" ); ADD_LINE();
|
||||
strcpy(g_szVersionInfo[nLine], "End" ); ADD_LINE();
|
||||
// " ======================================================================================="
|
||||
}
|
||||
158
Server/ToolProject/ScriptConvert/ScriptConvert.vcproj
Normal file
158
Server/ToolProject/ScriptConvert/ScriptConvert.vcproj
Normal file
@@ -0,0 +1,158 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="ScriptConvert"
|
||||
ProjectGUID="{189EAF5C-37B9-4AF9-971A-09CB54F9C78D}"
|
||||
Keyword="Win32Proj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../;./;../../RylServerProject/;../../RylServerProject/BaseLibrary;../../RylServerProject/RylGameLibrary;../../RylServerProject/RylServerLibrary"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/ScriptConvert.exe"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/ScriptConvert.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OmitFramePointers="TRUE"
|
||||
AdditionalIncludeDirectories="../;./;../../RylServerProject/;../../RylServerProject/BaseLibrary;../../RylServerProject/RylGameLibrary;../../RylServerProject/RylServerLibrary"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="ws2_32.lib"
|
||||
OutputFile="$(OutDir)/ScriptConvert.exe"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="소스 파일"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
|
||||
<File
|
||||
RelativePath="ScriptConvert.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="stdafx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="헤더 파일"
|
||||
Filter="h;hpp;hxx;hm;inl;inc">
|
||||
<File
|
||||
RelativePath="stdafx.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="리소스 파일"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="ReadMe.txt">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
8
Server/ToolProject/ScriptConvert/stdafx.cpp
Normal file
8
Server/ToolProject/ScriptConvert/stdafx.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : 표준 포함 파일만 들어 있는 소스 파일입니다.
|
||||
// ScriptConvert.pch는 미리 컴파일된 헤더가 됩니다.
|
||||
// stdafx.obj에는 미리 컴파일된 형식 정보가 포함됩니다.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: 필요한 추가 헤더는
|
||||
// 이 파일이 아닌 STDAFX.H에서 참조합니다.
|
||||
25
Server/ToolProject/ScriptConvert/stdafx.h
Normal file
25
Server/ToolProject/ScriptConvert/stdafx.h
Normal file
@@ -0,0 +1,25 @@
|
||||
// stdafx.h : 잘 변경되지 않고 자주 사용하는
|
||||
// 표준 시스템 포함 파일 및 프로젝트 관련 포함 파일이
|
||||
// 들어 있는 포함 파일입니다.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN // 거의 사용되지 않는 내용은 Windows 헤더에서 제외합니다.
|
||||
#include <stdio.h>
|
||||
#include <tchar.h>
|
||||
|
||||
// TODO: 프로그램에 필요한 추가 헤더는 여기에서 참조합니다.
|
||||
|
||||
#include <Item/ItemMgr.h>
|
||||
#include <Item/Item.h>
|
||||
|
||||
#include <Log/ServerLog.h>
|
||||
#include <Skill/SkillMgr.h>
|
||||
#include <Creature/Monster/MonsterMgr.h>
|
||||
#include <Map/FieldMap/MineralVeinMgr.h>
|
||||
#include <Utility/Filter/Filter.h>
|
||||
#include <Utility/Math/Math.h>
|
||||
|
||||
#include <GameEvent/GameEventMgr.h>
|
||||
#include <GameEvent/LotteryEvent/LotteryEvent.h>
|
||||
Reference in New Issue
Block a user