4104 lines
No EOL
95 KiB
C++
4104 lines
No EOL
95 KiB
C++
#pragma once
|
||
|
||
#include "DNPacket.h"
|
||
#include "MemPool.h"
|
||
|
||
/*--------------------------------------------------------------------------
|
||
ServerÂÊ¿¡¼ ¾²´Â ¸ðµç°Íµé(?)
|
||
--------------------------------------------------------------------------*/
|
||
|
||
// const ----------------------------------------------------------------------------------------------
|
||
|
||
#if defined(_CH)
|
||
const WCHAR* const SQLPASSWORD = L"4795CEA6409d492";
|
||
const WCHAR* const SQLHOSTNAME = L"A2A375E23370f8a";
|
||
const WCHAR* const SQLAPPNAME = L"C98D23990E1119a";
|
||
#elif defined(_JP)
|
||
const WCHAR* const SQLPASSWORD = L"945C437D6632718";
|
||
//const WCHAR* const SQLPASSWORD = L"A443131C-2988-4C3E-9974-37033B2A0A33";
|
||
const WCHAR* const SQLHOSTNAME = L"E4C874F3D920ced";
|
||
const WCHAR* const SQLAPPNAME = L"2001C72210299d0";
|
||
#elif defined(_TW)
|
||
const WCHAR* const SQLPASSWORD = L"3A6A7D31A8c6415";
|
||
const WCHAR* const SQLHOSTNAME = L"3B74FB5B269bf5d";
|
||
const WCHAR* const SQLAPPNAME = L"4A54A42ED0381e3";
|
||
#elif defined(_US)
|
||
const WCHAR* const SQLPASSWORD = L"BACF8969BB00b2d";
|
||
const WCHAR* const SQLHOSTNAME = L"04B3944622a7c5b";
|
||
const WCHAR* const SQLAPPNAME = L"33518A83865e269";
|
||
#elif defined(_SG)
|
||
const WCHAR* const SQLPASSWORD = L"4708A804794d233";
|
||
const WCHAR* const SQLHOSTNAME = L"D3B8367356e19d7";
|
||
const WCHAR* const SQLAPPNAME = L"3A222498E96c63f";
|
||
#elif defined(_TH)
|
||
const WCHAR* const SQLPASSWORD = L"gozjtoRldi!*";
|
||
const WCHAR* const SQLHOSTNAME = L"rjfflausenlwlsek@#@";
|
||
const WCHAR* const SQLAPPNAME = L"roshatlRl!#";
|
||
#elif defined(_ID)
|
||
const WCHAR* const SQLPASSWORD = L"skQmsgozj!*sha";
|
||
const WCHAR* const SQLHOSTNAME = L"rhdqntlzlsi)*^";
|
||
const WCHAR* const SQLAPPNAME = L"rotoRjwuqjfu!#";
|
||
#elif defined(_RU)
|
||
const WCHAR* const SQLPASSWORD = L"3A6A7D31A8c6415";
|
||
const WCHAR* const SQLHOSTNAME = L"3B74FB5B269bf5d";
|
||
const WCHAR* const SQLAPPNAME = L"4A54A42ED0381e3";
|
||
#elif defined(_KAMO) //[OK_Cash]
|
||
const WCHAR* const SQLPASSWORD = L"3A6A7D31A8c6415";
|
||
const WCHAR* const SQLHOSTNAME = L"3B74FB5B269bf5d";
|
||
const WCHAR* const SQLAPPNAME = L"4A54A42ED0381e3";
|
||
#elif defined(_EU)
|
||
const WCHAR* const SQLPASSWORD = L"110C37F5B9fb934";
|
||
const WCHAR* const SQLHOSTNAME = L"D8FA71CD6Ee2479";
|
||
const WCHAR* const SQLAPPNAME = L"518BD8D722e2f6b";
|
||
#else
|
||
const WCHAR* const SQLPASSWORD = L"428A44DC4Eebd12";
|
||
const WCHAR* const SQLHOSTNAME = L"CF0EEDCEF386298";
|
||
const WCHAR* const SQLAPPNAME = L"D121240B6419392";
|
||
#endif // #if defined( _US )
|
||
|
||
const WCHAR* const SQLActozMembershipDBPassword = L"dnaccount$dnest7h.o.t.44_2";
|
||
const WCHAR* const SQLActozWorldDBPassword = L"dndb$dnest50h.o.t.44_2";
|
||
const WCHAR* const SQLActozCommonDBPassword_Test = L"devdb$game9mingi44_2";
|
||
const WCHAR* const SQLActozCommonDBPassword = L"dncomdb$game60mingi44_2";
|
||
|
||
#if defined( PRE_ADD_DWC )
|
||
const WCHAR* const DWCPREFIX = L"DWCGM_";
|
||
const int DWCPREFIXLEN = 6;
|
||
#endif // #if defined( PRE_ADD_DWC )
|
||
|
||
const char DBSERVERMAX = 16;
|
||
const char THREADMAX = 8; // DB THREAD
|
||
const char LOGINTIMELENMAX = 20; // last login time length max
|
||
const char TIMELENMAX = 20; // µ¥ÀÌÆ®Å¸ÀÓ Å¸ÀÔ
|
||
|
||
const int LOGINCOUNTMAX = 64; // ÃÑ ·Î±×ÀÎ ¼¹ö °³¼ö
|
||
const int LOGINCONCOUNTINFOTERM = (1*30*1000); // ·Î±×ÀÎ ¼¹ö ÇöÀç µ¿½ÃÁ¢¼ÓÀÚ Á¤º¸ ¸¶½ºÅÍ ¼¹ö¿¡ º¸°í Á¦ÇѰ£°Ý (´ÜÀ§:ms)
|
||
const int LOGINSERVERLISTSORTTERM = (1*3*1000); // ·Î±×ÀÎ ¼¹ö ¼¼¼Ç Á¤·Ä Á¦ÇѰ£°Ý (´ÜÀ§:ms)
|
||
const int MASTERCOUNTMAX = 10; // ÃÑ ¸¶½ºÅÍ ¼¹ö °³¼ö
|
||
|
||
const int DELETECHAR_WAITTIME_MINUTE = 7*24*60; // 7ÀÏ
|
||
const BYTE PROCESSCOUNT = 40; // ÃÊ´ç ¿ÀºêÁ§Æ® 󸮰³¼ö
|
||
|
||
const int INTERNALBUFFERLENMAX = 51200;
|
||
|
||
const UINT PROCESSBUFFERLENMAX = 1024 * 64;
|
||
const UINT WORKERBUFFERLENMAX = 1024 * 64;
|
||
|
||
const int QUESTSIZEINFO = 2775;
|
||
|
||
const int QUERYOVERTIME = 1000;
|
||
|
||
const int QUERYNAMESIZE = 200; // Äõ¸® ÃÖ´ë Å©±â
|
||
const int GAMEDELAYSIZE = 200; // °ÔÀÓµô·¹ÀÌ ·Î±× ÃÖ´ë Å©±â
|
||
|
||
const int SERVERDETACHPACKETSIZE = 1024*40; // ÆÐŶÀü¼Û½Ã ¹öÆÛ»çÀÌÁîÅ©±â
|
||
//const variable.
|
||
#ifdef _FINAL_BUILD
|
||
const unsigned long RUDP_CONNECT_TIME_LIMIT_FOR_PARTY = 120 * 1000; //ÃÖÃÊ °ÔÀÓ¼¹ö ÄÁ³ØÆ® ´ë±â ½Ã°£
|
||
const unsigned long RUDP_CONNECT_TIME_LIMIT_FOR_SINGLE = 120 * 1000;
|
||
const unsigned long WAIT_FOR_ANOTHER_USER_TIME_LIMIT = 15 * 1000; //ÃÖÃÊÀοøÀÌ ÄÁ³ØÀ» ÇÏ°í ´Ù¸¥ÀοøÀ» ±â´Ù¸®´Â ½Ã°£
|
||
const unsigned long WAIT_FOR_LOAD_TIME_LIMIT = 60 * 1000; //µ¥ÀÌŸº£À̽ºÀÇ ·ÎµùÀ» ±â´Ù¸®´Â ½Ã°£
|
||
const unsigned long GOGO_SING_TO_PLAY_FOR_WAIT_TIME_LIMIT = 2 * 60 * 1000; //Ŭ¶óÀÌ¾ðÆ® ·Îµù°ú ½ÌÅ©¸¦ ±â´Ù¸®´Â ½Ã°£
|
||
const unsigned long GOGO_SING_TO_FARMPLAY_FOR_WAIT_TIME_LIMIT = 5 * 60 * 1000; //³óÀå·Îµù ½Ã°£Àº ÃÊÅ º°°³·Î
|
||
#else
|
||
const unsigned long RUDP_CONNECT_TIME_LIMIT_FOR_PARTY = 60 * 1000; //ÃÖÃÊ °ÔÀÓ¼¹ö ÄÁ³ØÆ® ´ë±â ½Ã°£
|
||
const unsigned long RUDP_CONNECT_TIME_LIMIT_FOR_SINGLE = 120 * 1000;
|
||
const unsigned long WAIT_FOR_ANOTHER_USER_TIME_LIMIT = 60 * 1000; //
|
||
const unsigned long WAIT_FOR_LOAD_TIME_LIMIT = 150 * 1000; //
|
||
const unsigned long GOGO_SING_TO_PLAY_FOR_WAIT_TIME_LIMIT = 5 * 60 * 1000; //
|
||
const unsigned long GOGO_SING_TO_FARMPLAY_FOR_WAIT_TIME_LIMIT = 5 * 60 * 1000; //³óÀå·Îµù ½Ã°£Àº ÃÊÅ º°°³·Î
|
||
#endif
|
||
|
||
const int EACH_GAMESERVER_MAX_ROOM_COUNT = 20;
|
||
const int EACH_GAMESERVER_MAX_USER_COUNT = 100;
|
||
|
||
const int INTERVALDELETE_TIMINGTICK = 1000 * 60; //1ºÐÂë??...-_-;
|
||
const int CHECK_ZOMBIE_DISCONNECT_TICK = 1000 * 60 * 5;
|
||
const int DISTRIBUTE_IDLE_TICK = 1000 * 5;
|
||
|
||
const int DELAYED_PRCESS_CHECKTICK = 1000 * 10;
|
||
const int DELAYED_PRCESS_LOG_COUNT = 10;
|
||
const int FRAMEDEADLINE = 17;
|
||
|
||
const int EVENTMAPSTRMAX = 50;
|
||
|
||
const int CHECKLIVETICK = 60000 * 2;// * 5; // ÇÙ½¯µå 5ºÐ ¸¶´Ù üũ -> 1ºÐÀ¸·Î ¹Ù²Ù¶ó°í ÇØ¼ ¹Ù²Þ -> 2ºÐÀ¸·Î ´Ã¸²
|
||
const int CHECKRESPONSETICK = 60000 * 3; // ÇÙ½¯µå ÀÀ´ä ½Ã°£ (3ºÐÁ¤µµ?)
|
||
|
||
const int CHECKGPKFIRSTTICK = 1000 * 60 * 2; // ÃÖÃÊ °Ë»çŸÀ̹Ö
|
||
const int CHECKGPKTICK = 60000;
|
||
const int MANAGEDMAX = 20;
|
||
|
||
#if !defined(_FINAL_BUILD)
|
||
const DWORD CHECK_TCP_PING_TICK = 1000*30*1; // 1ºÐ
|
||
const DWORD CHECK_UDP_PING_TICK = 1000*30*1; // 1ºÐ
|
||
#else //#if !defined(_FINAL_BUILD)
|
||
const DWORD CHECK_TCP_PING_TICK = 1000*60*1; // 1ºÐ
|
||
const DWORD CHECK_UDP_PING_TICK = 1000*60*1; // 1ºÐ
|
||
#endif //#if !defined(_FINAL_BUILD)
|
||
|
||
#if defined(_CH)
|
||
const int CHECKLOGINUSERKICKTICK = 30 * 60 * 1000; // ·Î±×ÀÎ ¼¹ö¿¡ 30ºÐ µ¿¾È ¸Ó¹°¸é °Åð!(Áß±¹¸¸)
|
||
#else
|
||
const int CHECKLOGINUSERKICKTICK = 15 * 60 * 1000; // ·Î±×ÀÎ ¼¹ö¿¡ 15ºÐ µ¿¾È ¸Ó¹°¸é °Åð!
|
||
#endif //#if defined(_CH)
|
||
const int CHECKNOTAUTHLOGINUSERKICKTICK = 5 * 60 * 1000; // ·Î±×ÀÎ ¼¹ö¿¡ ÀÎÁõµÇÁö ¾ÊÀºÃ¼ 5ºÐ µ¿¾È ¸Ó¹°¸é °Åð!
|
||
|
||
const unsigned int DEFAULTUSERSESSIONID = 10000;
|
||
|
||
const unsigned int CASHDELUSERDELAY_LIMITTICK = (4*30*1000);
|
||
|
||
// DB ´©ÀûÀÛ¾÷ °ü·Ã °³¼ö
|
||
const int DBQUERYSTREAMDATAMAX = (36*1024); // DB ´©ÀûÀÛ¾÷ µ¥ÀÌÅÍ ÃÖ´ë Å©±â : DB ¼¹ö¿¡ ¹Ù·Î ¼Û½ÅµÇ´Â ´ë½Å Å¥¿¡ ´©Àû ÈÄ Àϰý󸮰¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ ±¸Á¶Ã¼ Áß °¡Àå Å« °ÍÀ» ±âÁØÀ¸·Î ¼³Á¤ ¡æ Å©±â°¡ ºÎÁ·ÇÒ °æ¿ì Áö¼ÓÀûÀÎ ÀçÁ¶Á¤ ÇÊ¿ä ¿¹»ó
|
||
const unsigned int DBQUERYAUTOCHKSUM = 0xE41C723F; // DB Äõ¸® Á÷·ÄÈ Ã³¸® ½Ã üũ°ª
|
||
|
||
const int QUESTINVENBLANKCHECKMIN = 2; // Äù½ºÆ® Àκ¥Å丮 üũ ½Ã ¸Þ½ÃÁö ¹ß¼ÛÀÌ µÇ´Â ÃÖ¼Ò °³¼ö
|
||
const float MAX_ITEMPRICE_RATE = 0.5f;
|
||
|
||
#if defined(_FINAL_BUILD)
|
||
const int BEGINAUTHLIMITSEC = (9*10); // ÃÖÃÊ ÀÎÁõ Á¦Çѽð£ (´ÜÀ§:ÃÊ, 0 ÀÌÇÏ´Â ¹«Á¦ÇÑ ´ë±â ?)
|
||
const int CHECKAUTHLIMITSEC = (6*10); // ÀÏ¹Ý ÀÎÁõ Á¦Çѽð£ (´ÜÀ§:ÃÊ)
|
||
const int BEGINAUTHLIMITTERM = (BEGINAUTHLIMITSEC*1000); // ÃÖÃÊ ÀÎÁõ Á¦ÇѰ£°Ý (´ÜÀ§:ms)
|
||
//const int CHECKAUTHLIMITTERM = (CHECKAUTHLIMITSEC*1000); // ÀÏ¹Ý ÀÎÁõ Á¦ÇѰ£°Ý (´ÜÀ§:ms)
|
||
const int CHECKAUTHLIMITTERM = (1*30*1000); // ÀÏ¹Ý ÀÎÁõ Á¦ÇѰ£°Ý (´ÜÀ§:ms) // P.S.> ´øÀü, PVP µî ÄÁÅÙÃ÷ Âü¿©ÀÚµéÀÇ ºÒÆí»çÇ×À» °í·ÁÇÏ¿© ±âÁ¸ ½Ã°£º¸´Ù ª°Ô Á¤ÇÔ
|
||
#else // _FINAL_BUILD
|
||
const int BEGINAUTHLIMITSEC = (6*10); // ÃÖÃÊ ÀÎÁõ Á¦Çѽð£ (´ÜÀ§:ÃÊ, 0 ÀÌÇÏ´Â ¹«Á¦ÇÑ ´ë±â ?)
|
||
const int CHECKAUTHLIMITSEC = (4*10); // ÀÏ¹Ý ÀÎÁõ Á¦Çѽð£ (´ÜÀ§:ÃÊ)
|
||
const int BEGINAUTHLIMITTERM = (BEGINAUTHLIMITSEC*1000); // ÃÖÃÊ ÀÎÁõ Á¦ÇѰ£°Ý (´ÜÀ§:ms)
|
||
//const int CHECKAUTHLIMITTERM = (CHECKAUTHLIMITSEC*1000); // ÀÏ¹Ý ÀÎÁõ Á¦ÇѰ£°Ý (´ÜÀ§:ms)
|
||
const int CHECKAUTHLIMITTERM = (1*20*1000); // ÀÏ¹Ý ÀÎÁõ Á¦ÇѰ£°Ý (´ÜÀ§:ms) // P.S.> ´øÀü, PVP µî ÄÁÅÙÃ÷ Âü¿©ÀÚµéÀÇ ºÒÆí»çÇ×À» °í·ÁÇÏ¿© ±âÁ¸ ½Ã°£º¸´Ù ª°Ô Á¤ÇÔ
|
||
#endif // _FINAL_BUILD
|
||
|
||
const int RESETAUTHLISTMAX = (1000); // ÀÎÁõÁ¤º¸ ¸ñ·Ï ÃʱâÈ Å©±â (ÁÖÀÇ!!! - º» Àü¿ª»ó¼ö¸¦ »ç¿ëÇÏ´Â ÆÐŶµéÀÌ ¼Û½Å/¼ö½Å ÆÐŶ Å©±â¸¦ ³ÑÁö ¾Ê¾Æ¾ß ÇÔ)
|
||
const int RESETAUTHLISTTERM = (1*1000); // ÀÎÁõÁ¤º¸ ¸ñ·Ï ÃʱâÈ ÀÛ¾÷ÁÖ±â (´ÜÀ§:ms)
|
||
const int RESETAUTHSERVERTERM = (5*1000); // ÀÎÁõÁ¤º¸ ¼¹ö ÃʱâÈ ÀÛ¾÷ÁÖ±â (´ÜÀ§:ms)
|
||
const int RESETAUTHWORLDCHECKTERM = (5*1000); // ÀÎÁõÁ¤º¸ ¿ùµå ÃʱâÈ ÀÛ¾÷ÁÖ±â (´ÜÀ§:ms)
|
||
const int RESETAUTHWORLDLIMITTERM = (2*30*1000); // ÀÎÁõÁ¤º¸ ¿ùµå ÃʱâÈ Á¦Çѽð£ (´ÜÀ§:ms)
|
||
|
||
const int GETAUTHUSERCOUNT = 1000 * 10; // ÀÎÁõ¿ùµåÀ¯Àú Ä«¿îÆ® ȹµæÁÖ±â
|
||
|
||
const int GUILDMGRCHKTERM = (5*1000); // ±æµå °ü¸®ÀÚ Ã¼Å© ÁÖ±â
|
||
const int GUILDMGRUPDTERM = (10*1000); // ±æµå °ü¸®ÀÚ °»½Å ÁÖ±â
|
||
const int GUILDCHKMEMBTERM = (30*1000); // ±æµå ¸â¹öÁ¤º¸ üũ ÁÖ±â
|
||
const int GUILDCHKRESCTERM = (30*1000); // ±æµå ÀÚ¿ø¹Ý³³ üũ ÁÖ±â
|
||
const int GUILDREQINFOTERM = (60*1000); // ±æµå Á¤º¸¿äû üũ ÁÖ±â
|
||
const int GUILDRFSVIEWTERM = (10*1000); // ±æµå ½Ã°¢Á¤º¸ °»½Å ÁÖ±â
|
||
const int GUILDAPLPOINTTERM = (10*1000); // ±æµå ÀϹÝ/·¡´õ Æ÷ÀÎÆ® DB Àû¿ë ÁÖ±â
|
||
const int GUILDCHKRESCLIMIT = (2*30*1000); // ±æµå ÀÚ¿ø¹Ý³³ üũ Á¦ÇÑ
|
||
|
||
const int PERIODQUESTTERM = (60*1000); // ±â°£Á¦ Äù½ºÆ® °»½Å ÁÖ±â
|
||
|
||
const int PERIODGUILDWARTERM = (60*1000); // ±æµåÀü °»½Å ÁÖ±â
|
||
const int GUILDWARMISSION_MAXGROUP = 4;
|
||
|
||
const int SERVICEMANAGER_SERVERDEALY_SIZE = 1000;
|
||
const int SERVICEMANAGER_REPORT_SIZE = 4096;
|
||
|
||
#define SWAP16(x) (((((x) & 0xff) << 8) | (((x) >> 8) & 0xff)))
|
||
#define SWAP32(x) (((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)))
|
||
#define SWAP64(x) (((((x) & 0xFF00000000000000ULL) >> 56) | (((x) & 0x00FF000000000000ULL) >> 40) | (((x) & 0x0000FF0000000000ULL) >> 24) | (((x) & 0x000000FF00000000ULL) >> 8) | \
|
||
(((x) & 0x00000000FF000000ULL) << 8) | (((x) & 0x0000000000FF0000ULL) << 24) | (((x) & 0x000000000000FF00ULL) << 40) | (((x) & 0x00000000000000FFULL) << 56)))
|
||
|
||
struct DNProcessCheck
|
||
{
|
||
enum eDNProcessCheck
|
||
{
|
||
Key = 0x00000001,
|
||
DisconnectInterval = 60*1000*2,
|
||
UpdateInterval = 10*1000,
|
||
HeartbeatKey = 0x00000002,
|
||
SQLHeartbeatInterval = 60*1000*10,
|
||
SelectIPMagicInterval = 60*1000*60,
|
||
};
|
||
};
|
||
|
||
// enum ----------------------------------------------------------------------------------------------
|
||
enum eServerType
|
||
{
|
||
SERVERTYPE_LOGIN, // ·Î±×ÀÎ ¼¹ö
|
||
SERVERTYPE_DB, // DB ¼¹ö
|
||
SERVERTYPE_VILLAGE, // ºô¸®Áö ¼¹ö
|
||
SERVERTYPE_GAME, // °ÔÀÓ ¼¹ö
|
||
SERVERTYPE_MASTER, // ¸¶½ºÅÍ ¼¹ö
|
||
SERVERTYPE_LOG, // ·Î±× ¼¹ö
|
||
SERVERTYPE_MAX,
|
||
};
|
||
|
||
enum ePatchType
|
||
{
|
||
PATCHTYPE_LOGIN, // ·Î±×ÀÎ ¼¹ö
|
||
PATCHTYPE_DB, // DB ¼¹ö
|
||
PATCHTYPE_VILLAGE, // ºô¸®Áö ¼¹ö
|
||
PATCHTYPE_GAME, // °ÔÀÓ ¼¹ö
|
||
PATCHTYPE_MASTER, // ¸¶½ºÅÍ ¼¹ö
|
||
PATCHTYPE_LOG, // ·Î±× ¼¹ö
|
||
PATCHTYPE_PATCHER, // ESM
|
||
PATCHTYPE_CASH, // ij½¬ ¼¹ö
|
||
};
|
||
|
||
enum eConnectionKey
|
||
{
|
||
CONNECTIONKEY_DEFAULT = 0,
|
||
CONNECTIONKEY_USER,
|
||
CONNECTIONKEY_LOGIN,
|
||
CONNECTIONKEY_DB,
|
||
CONNECTIONKEY_VILLAGE,
|
||
CONNECTIONKEY_GAME,
|
||
CONNECTIONKEY_MASTER,
|
||
CONNECTIONKEY_LOG,
|
||
CONNECTIONKEY_LAUNCHER,
|
||
CONNECTIONKEY_SERVICEMANAGER,
|
||
CONNECTIONKEY_AUTH, // ÀÎÁõ¼·(³Ø½¼)
|
||
CONNECTIONKEY_CASH,
|
||
CONNECTIONKEY_BILLING, // ºô¸µ¼·(ÆÛºí¸®¼Å)
|
||
CONNECTIONKEY_SERVICEPATCHER,
|
||
CONNECTIONKEY_SERVERMONITOR,
|
||
CONNECTIONKEY_TW_AUTHLOGIN, // ÀÎÁõ¼·(°¨¸¶´Ï¾Æ 1 - Authorization : »ç¿ëÀÚ °èÁ¤ ÀÎÁõ ó¸®, »óÅ (ºí·Ï ¿©ºÎ, ij½¬ ÀÜ¿© Æ÷ÀÎÆ® ?) üũ)
|
||
CONNECTIONKEY_TW_AUTHLOGOUT, // ÀÎÁõ¼·(°¨¸¶´Ï¾Æ 2 - Logout : »ç¿ëÀÚ ·Î±×¾Æ¿ô ó¸®)
|
||
CONNECTIONKEY_TW_QUERY,
|
||
CONNECTIONKEY_TW_SHOPITEM,
|
||
CONNECTIONKEY_TW_COUPON, // °¨¸¶´Ï¾Æ ÄíÆù¼¹ö
|
||
CONNECTIONKEY_TW_COUPON_ROLLBACK, // °¨¸¶´Ï¾Æ ÄíÆù·Ñ¹é..¡±×·¯¿î°Íµé ¼¹ö¸¦ Æ÷Æ®º°·Î ¸¸µé´Ù´Ï..¤Ð
|
||
CONNECTIONKEY_TH_AUTH,
|
||
CONNECTIONKEY_TH_OTP,
|
||
CONNECTIONKEY_TH_QUERY,
|
||
CONNECTIONKEY_TH_SHOPITEM,
|
||
CONNECTIONKEY_DOORS,
|
||
};
|
||
|
||
enum eAcceptOpenVerifyType
|
||
{
|
||
ACCEPTOPEN_VERIFY_TYPE_APPINITCOMPLETE = 0,
|
||
ACCEPTOPEN_VERIFY_TYPE_MASTERCONNECTION,
|
||
ACCEPTOPEN_VERIFY_TYPE_RESETAUTH,
|
||
ACCEPTOPEN_VERIFY_TYPE_MAX,
|
||
};
|
||
|
||
enum eServerLogLevel
|
||
{
|
||
ServerLogLevel_1 = 1,
|
||
ServerLogLevel_2 = 2,
|
||
ServerLogLevel_3 = 3,
|
||
};
|
||
|
||
enum eUserState // login¿¡¼ ¾²´Â »óŰª
|
||
{
|
||
STATE_NONE,
|
||
|
||
// login
|
||
STATE_CHECKVERSION,
|
||
STATE_CHECKLOGIN, // ¾ÆÀ̵ð ÆÐ½º¿öµå È®ÀλóÅÂ
|
||
STATE_SERVERLIST,
|
||
STATE_WAITUSER, // ´ë±âÀ¯Àú
|
||
STATE_CHARLIST, // ij¸¯ÅÍ ¸®½ºÆ® »óÅÂ
|
||
STATE_CHANNELLIST,
|
||
STATE_CONNECTVILLAGE, // ºô¸®Áö ¼¹ö¿¡ Á¢¼Ó°¡´É»óÅÂ
|
||
STATE_CONNECTGAME, // °× ¼¹ö¿¡ Á¢¼Ó°¡´É»óÅÂ
|
||
STATE_RECONNECTLOGIN, // ¸®Ä¿³ØÆ® »óÅÂ
|
||
|
||
// master
|
||
STATE_CHECKVILLAGE, //ºô¸®Áö·Î ³Ñ¾î°¡±âÀüÀÇ »óÅÂÀÔ´Ï´Ù. À¯Àú°¡ ²÷±æ°æ¿ì °í¾Æ°¡ µÇ¹Ç·Î ÀÌ ½ºÅ×ÀÌÆ®¸¦ ÅëÇØ¼ °ü¸®µË´Ï´Ù.
|
||
STATE_CHECKGAME, //°ÔÀÓÀ¸·Î ³Ñ¾î°¡±â ÀüÀÇ »óÅÂÀÔ´Ï´Ù. »óµ¿
|
||
STATE_CHECKRECONNECTLOGIN, //ij¸¯Åͼ±ÅÃâÀ¸·Î ³Ñ¾î°¡±â ÀüÀÇ »óÅÂÀÔ´Ï´Ù. »óµ¿
|
||
STATE_VILLAGE, // village»óÅÂÀΰ¡
|
||
STATE_GAME, // game»óÅÂÀΰ¡
|
||
STATE_LOGIN, // login»óÅÂÀΰ¡
|
||
|
||
// village
|
||
STATE_LOADUSERDATA, // À¯Àúµ¥ÀÌÅÍ DB¿¡¼ ºÒ·¯¿Ô´ÂÁö
|
||
STATE_READY, // ÇÊµå ³ª°¥ Áغñ ¿Ï·á
|
||
STATE_READYTOVILLAGE, // village µý Àåºñ·Î ¿Å±æ¶§ (Áغñ´Ü°è)
|
||
STATE_READYTOGAME, // gameÀ¸·Î ³Ñ¾î°¥¶§ (Áغñ´Ü°è)
|
||
STATE_READYTOLOGIN, // loginÀ¸·Î ³Ñ¾î°¥¶§ (Áغñ´Ü°è)
|
||
STATE_MOVETOVILLAGE, // village µý Àåºñ·Î ¿Å±æ¶§
|
||
STATE_MOVETOGAME, // gameÀ¸·Î ³Ñ¾î°¥¶§
|
||
STATE_MOVETOLOGIN, // loginÀ¸·Î ³Ñ¾î°¥¶§
|
||
STATE_MOVESAMECHANNEL, // °°Àº ä³Î À̵¿
|
||
|
||
#if defined(_HSHIELD)
|
||
HSHIELD_NONE = 0,
|
||
HSHIELD_RESPONSEVERSION = 1, // checkversion ÆÐŶ ¹ÞÀº »óÅÂ
|
||
HSHIELD_RECONNECTLOGIN, // ÀçÁ¢¼Ó ÆÐŶ ¹ÞÀº »óÅÂ
|
||
HSHIELD_LOADUSER, // µðºñ ·Îµå ³¡³½»óÅÂ
|
||
HSHIELD_REQUEST, // _AhnHS_MakeRequest ¿äû»óÅÂ
|
||
HSHIELD_RESPONSE, // ÀÀ´ä¿Â »óÅÂ
|
||
#endif // _HSHIELD
|
||
|
||
};
|
||
|
||
//enumulation
|
||
//GameRoom
|
||
enum eGameRoomState
|
||
{
|
||
_GAME_STATE_NONE, //»ý¼º!
|
||
_GAME_STATE_READY2CONNECT, //ÃʱâÈ ¿Ï·á ÄÁ³Ø¼Ç ´ë±â! »óÅÂ
|
||
_GAME_STATE_CONNECT2CHECKAUTH, //DB ¸¦ ÀÌ¿ëÇÑ ÀÎÁõÁ¤º¸ üũ
|
||
_GAME_STATE_CONNECT2LOAD, //¿¬°á ¹× °ËÁõ ¿Ï·á! ·Îµå»óÅ·ΠÀüÀÌ
|
||
_GAME_STATE_LOAD2SYNC, //Ŭ¶óÀÌ¾ðÆ® ¿¬°á¿Ï·á Áغñ»óÅÂ
|
||
_GAME_STATE_SYNC2SYNC,
|
||
_GAME_STATE_SYNC2PLAY, //Ç÷¹ÀÌ´ë±âÁß
|
||
_GAME_STATE_PLAY, //°ÔÀÓÁß!
|
||
|
||
_GAME_STATE_CANCEL_LOADING, //¹é±×¶ó¿îµå ·Î´õ¿Í ½ÌÅ©
|
||
_GAME_STATE_DESTROYED, //¹æ±úÁ³»ï!
|
||
_GAME_STATE_FARM_NONE, //³óÀå¿ë ½ºÅ×ÀÌÆ®ÀÔ´Ï´Ù. »ý¼º ·çƾÀÌ ´Þ¶ó ÀϹݰú ´Ù¸£°Ô Èê·¯°©´Ï´Ù _GAME_STATE_PLAYºÎÅÍ´Â µ¿ÀÏ
|
||
_GAME_STATE_FARM_READY2LOAD, //µðºñ¿¡ ³óÀå°ü·Ã µ¥ÀÌŸ¸¦ ¿äûÇÑ »óÅÂ
|
||
_GAME_STATE_FARM_LOAD2PLAY, //µðºñ¿¡¼ ³óÀå°ü·Ã µ¥ÀÌŸ¸¦ ¹Þ¾Ò´Ù. ¼¼ÆÃÇÏ°í ¸¶½ºÅÍ¿¡ ¾Ë¸®ÀÚ
|
||
_GAME_STATE_FARM_PAUSE, //³óÀå Æ÷¿ìÁî~
|
||
_GAME_STATE_PVP_SYNC2GAMEMODE, //ÇǺ÷ÇÇÀϰæ¿ì À¯Àú°¡ ¾ø´Â »óÅ¿¡¼ ½ÃÀÛ½ÃÁ¡ÀÌ »ý±è(±æµåÀü) Á¢¼Ó½ºÅ×ÀÌÆ®¸¦ °Ç³Ê¶Ù°í ¸ðµå¹Þ°í ·Îµå·Î ³Ñ¾î°¡´Â Áß°£½ºÅ×ÀÌÆ®
|
||
};
|
||
|
||
//GameSession
|
||
enum eGameSessionState
|
||
{
|
||
SESSION_STATE_NONE,
|
||
SESSION_STATE_READY, //°´Ã¼»ý¼º¸¸ µÇ¾î ÀÖÀ½! ¿¬°áÀº ¾ÈµÇ¾î ÀÖÀ½
|
||
SESSION_STATE_RUDP_CONNECTED,
|
||
SESSION_STATE_CONNECTED, //¿¬°á µÇ¾úÀ½!
|
||
SESSION_STATE_LOAD, //¿¬°á µÇ¸é µðºñ¿¡ ¿äûÇÕ´Ï´Ù.
|
||
SESSION_STATE_LOADED, //°ÔÀӷεù¿Ï·á!
|
||
SESSION_STATE_WAIT_TO_READY, //Ready »óÅ ±â´Ù¸²
|
||
SESSION_STATE_READY_TO_SYNC, //Sync Áغñ ¿Ï·á!
|
||
SESSION_STATE_SYNC_READY_2_DELAY, //¼¹ö°¡ ¸Þ¼¼Áöó¸®Áغñ°¡ ¾ÈµÇ»óÅ¿¡¼ ¸Þ¼¼Áö¸¦ ¹Þ¾Ò½À´Ï´Ù.
|
||
SESSION_STATE_READY_TO_PLAY, //Sync 2 Play
|
||
SESSION_STATE_GAME_PLAY, //°ÔÀÓÇ÷¹ÀÌÁß!
|
||
SESSION_STATE_READY_TO_VILLAGE, //game -> village (Áغñ´Ü°è)
|
||
SESSION_STATE_READY_TO_LOGIN, //game -> login char select (Áغñ´Ü°è)
|
||
SESSION_STATE_RECONNECTLOGIN, //game -> login char select
|
||
SESSION_STATE_SERVER_CHANGE, //¼¹öÀ̵¿Áß! À̵¿¿Ï·áµÇ¸é ²÷±è
|
||
SESSION_STATE_DISCONNECTED, //©¸°»óÅÂ! (tcp±îÁö ÀüºÎ ²÷±ä »óÅÂ)
|
||
//SESSION_STATE_CRASH, //Å©·¡½¬!
|
||
};
|
||
|
||
// GameServer Parse Type
|
||
enum eGameMsgType
|
||
{
|
||
MSG_TYPE_MASTER,
|
||
MSG_TYPE_DATABASE,
|
||
};
|
||
|
||
enum eFieldMessage
|
||
{
|
||
FM_CREATE,
|
||
FM_DESTROY,
|
||
FM_SHOW,
|
||
FM_HIDE,
|
||
FM_MOVE,
|
||
FM_ACTORMSG,
|
||
FM_CHAT,
|
||
FM_CHANGEEQUIP,
|
||
FM_ADDEXP,
|
||
FM_LEVELUP,
|
||
FM_CHANGEAPPELLATION,
|
||
FM_CHANGEHIDE,
|
||
FM_CHANGECASHEQUIP,
|
||
FM_CHANGEGUILDSELFVIEW,
|
||
FM_CHANGEJOB,
|
||
FM_EFFECT,
|
||
FM_CHANGECOLOR,
|
||
FM_CHANGEGLYPH,
|
||
FM_CHATROOMVIEW,
|
||
FM_CHATROOMUSER,
|
||
FM_CHANGEVEHICLE,
|
||
FM_CHANGEVEHICLECOLOR,
|
||
FM_CHANGEPET,
|
||
FM_CHANGEPETBODY,
|
||
FM_RENAME_PET,
|
||
FM_ENTERPARTY,
|
||
FM_LEAVEPARTY,
|
||
FM_CHARACTER_RENAME,
|
||
FM_GUILDWARWINSKILL,
|
||
FM_USE_SOURCE,
|
||
FM_USE_EFFECTSKILL,
|
||
FM_HAVE_NAMEDITEM,
|
||
FM_CHANGE_TRANSFORM,
|
||
FM_CHANGETALISMAN,
|
||
FM_CHANGEDWCTEAM,
|
||
};
|
||
|
||
enum eClass
|
||
{
|
||
CLASS_NONE = 0,
|
||
CLASS_WARRIER = 1,
|
||
CLASS_ARCHER,
|
||
CLASS_SOCERESS,
|
||
CLASS_CLERIC,
|
||
#if defined( PRE_ADD_ACADEMIC )
|
||
CLASS_ACADEMIC,
|
||
#endif // #if defined( PRE_ADD_ACADEMIC )
|
||
#if defined( PRE_ADD_KALI )
|
||
CLASS_KALI,
|
||
#endif // #if defined( PRE_ADD_KALI )
|
||
// CLASS_ASSASSIN,
|
||
// CLASS_LENCEA,
|
||
// CLASS_MACHINA,
|
||
CLASS_MAX,
|
||
};
|
||
|
||
enum eJob
|
||
{
|
||
JOB_NONE,
|
||
|
||
JOB_WARRIER = 1,
|
||
JOB_ARCHER,
|
||
JOB_SOCERESS,
|
||
JOB_CLERIC,
|
||
|
||
JOB_BLAZEWARRIER = 11,
|
||
JOB_SWORDMAN,
|
||
JOB_CHAINSOLDIER,
|
||
|
||
JOB_RANGER = 21,
|
||
JOB_HUNTER,
|
||
JOB_KEEPER,
|
||
|
||
JOB_WIZARD = 31,
|
||
JOB_MAGICIAN,
|
||
JOB_WITCH,
|
||
|
||
JOB_PRIEST = 41,
|
||
JOB_PALADIN,
|
||
JOB_MONK,
|
||
|
||
JOB_MAX = 47,
|
||
};
|
||
|
||
enum eAppendItemString
|
||
{
|
||
Append_ItemSN,
|
||
Append_Price,
|
||
Append_Limit,
|
||
Append_ItemID,
|
||
Append_Option,
|
||
Append_Refundable,
|
||
#ifdef PRE_ADD_LIMITED_CASHITEM
|
||
Append_QuantityLimited,
|
||
#endif //#ifdef PRE_ADD_LIMITED_CASHITEM
|
||
|
||
Append_Max,
|
||
};
|
||
|
||
enum eModItemBitmap
|
||
{
|
||
ModItem_Durability = 1,
|
||
ModItem_Level = (1<<1),
|
||
ModItem_Potential = (1<<2),
|
||
ModItem_SoulBound = (1<<3),
|
||
ModItem_SealCount = (1<<4),
|
||
ModItem_Option = (1<<5),
|
||
ModItemAll = ModItem_Durability|ModItem_Level|ModItem_Potential|ModItem_SoulBound|ModItem_SealCount|ModItem_Option,
|
||
};
|
||
|
||
enum eWeaponType
|
||
{
|
||
WEAPON_SWORD, // ´ë°Ë
|
||
WEAPON_GAUNTLET, // °ÇƲ·¿
|
||
WEAPON_AXE, // µµ³¢
|
||
WEAPON_HAMMER, // ÇØ¸Ó
|
||
WEAPON_SMALLBOW, // ¼Ò±Ã
|
||
WEAPON_BIGBOW, // ´ë±Ã
|
||
WEAPON_CROSSBOW, // ¼®±Ã
|
||
WEAPON_STAFF, // ½ºÅ×ÇÁ
|
||
WEAPON_BOOK, // ¸¶¹ý¼
|
||
WEAPON_ORB, // ¼öÁ¤±¸
|
||
WEAPON_PUPPET, // ÁÖ¼úÀÎÇü
|
||
WEAPON_MACE, // ¸ÞÀ̽º
|
||
WEAPON_FLAIL, // ÇÁ·¹ÀÏ
|
||
WEAPON_WAND, // ¿Ïµå
|
||
WEAPON_SHIELD, // ¹æÆÐ
|
||
WEAPON_ARROW, // È»ì
|
||
WEAPON_CANNON, // ij³í
|
||
WEAPON_BUBBLEGUN, // ¹öºí°Ç
|
||
WEAPON_GLOVE, // ±Û·¯ºê
|
||
WEAPON_FAN, // ºÎä
|
||
WEAPON_CHAKRAM, // Â÷Å©¶÷
|
||
WEAPON_CHARM, // Âü
|
||
WEAPON_SCIMITER, // ½Ã¹ÌÅÍ
|
||
WEAPON_DAGGER, // ´ë°Å
|
||
WEAPON_CROOK, // Å©·è
|
||
WEAPON_SPEAR,
|
||
WEAPON_RESERVED1,
|
||
WEAPON_BRACELET,
|
||
WEAPON_KNUCKLE,
|
||
WEAPON_RESERVED2,
|
||
WEAPON_CLAW,
|
||
};
|
||
|
||
enum eParts
|
||
{
|
||
PARTS_FACE, //
|
||
PARTS_HAIR,
|
||
PARTS_HELMET, // Åõ±¸
|
||
PARTS_BODY, // »óü
|
||
PARTS_LEG, // ÇÏü
|
||
PARTS_HAND, // ¼Õ
|
||
PARTS_FOOT, // ¹ß
|
||
PARTS_NECKLACE,
|
||
PARTS_EARRING,
|
||
PARTS_RING,
|
||
PARTS_RING2,
|
||
PARTS_CREST,
|
||
PARTS_FULLSET, // Ç®¼¼Æ®
|
||
};
|
||
|
||
enum eQuestDataType
|
||
{
|
||
QUESTDATA_STATE = 1, // Äù½ºÆ® »óÅÂ
|
||
QUESTDATA_STEP, // ÇöÀç Äù½ºÆ® ½ºÅÜ
|
||
QUESTDATA_JOURNAL, // ÇöÀç Äù½ºÆ® Àú³Î
|
||
};
|
||
|
||
enum eEtcType // DNEtc table Type
|
||
{
|
||
ETC_NONE,
|
||
ETC_QUICKSLOT, // TQuickSlot QuickSlot[QUICKSLOTMAX]; // ´ÜÃà ½½·Ôâ (10°³¾¿ 2ÁÙ)
|
||
ETC_JOB, // USHORT wJobArray[JOBMAX]; // Á÷¾÷ (0: ¸ÇóÀ½ Á÷¾÷, ³ª¸ÓÁö ÂßÂß~ ÀüÁ÷ Æ÷ÇÔ)
|
||
ETC_NOTIFIER, // int Notifier[Notifier_MaxCount]; // ¾Ë¸®¹Ì (quest, mission)
|
||
ETC_DUNGEONCLEAR, // TDungeonClearData DungeonClear[DUNGEONCLEARMAX]; // ´øÀü Ŭ¸®¾î (120°³)
|
||
ETC_ETERNITYITEM, // USHORT wEternityItem[ETERNITYITEMMAX]; // ¿µ±¸¾ÆÀÌÅÛ
|
||
ETC_EQUIPDELAYTIME, // int nEquipDelayTime[EQUIPMAX]; // equip index¿¡ °ü·ÃµÈ cooltime
|
||
ETC_EQUIPREMAINTIME, // int nEquipRemainTime[EQUIPMAX];
|
||
};
|
||
|
||
enum eAuthType
|
||
{
|
||
AUTHTYPE_BEGINAUTH, // ÀÎÁõ ½ÃÀÛ
|
||
AUTHTYPE_STOREAUTH, // ÀÎÁõ ÀúÀå
|
||
AUTHTYPE_CHECKAUTH, // ÀÎÁõ üũ
|
||
AUTHTYPE_RESETAUTH, // ÀÎÁõ ¸®¼Â
|
||
AUTHTYPE_CNT,
|
||
};
|
||
|
||
enum eAbuseCode
|
||
{
|
||
ABUSE_NONE = 0,
|
||
ABUSE_MOVE_SERVERS, // ¸¶À» <-> ´øÁ¯ ¿öÇÁ
|
||
ABUSE_MOVE_INSKY, // °øÁßÀ̵¿
|
||
ABUSE_HACKSHIELD, // ÇÙ½¯µå¿¡¼ ºÎÁ¤ÀÌ¿ëÀÚ
|
||
ABUSE_TWN_EXTENDLOG, // ´ë¸¸¿ë Ãß°¡ ·Î±×°ª #48714 °ü°è ÀÖÀ½
|
||
#if defined( PRE_ADD_CHARACTERCHECKSUM )
|
||
ABUSE_CHARACTER_CHECKSUM, // #80315 ij¸¯ÅÍ Ã¼Å©¼¶ ÀÌ»ó ¹ß°ß
|
||
#endif // #if defined( PRE_ADD_CHARACTERCHECKSUM )
|
||
};
|
||
|
||
struct WorldUserState
|
||
{
|
||
enum eCode
|
||
{
|
||
Add = 0,
|
||
Delete,
|
||
Modify,
|
||
};
|
||
};
|
||
|
||
namespace DBDNMembership
|
||
{
|
||
struct OrderStatusCode
|
||
{
|
||
enum eOrderStatusCode
|
||
{
|
||
SuccessPayment = 1, // °áÁ¦¼º°ø & pickup ´ë±â
|
||
Success = 2, // ±¸¸Å¿Ï·á
|
||
FailPayment = 3, // °áÁ¦½ÇÆÐ
|
||
};
|
||
};
|
||
};
|
||
|
||
namespace DBDNWorldDef
|
||
{
|
||
struct CharacterExpChangeCode
|
||
{
|
||
enum eCharacterExpChangeCode
|
||
{
|
||
Quest = 1, // : Äù½ºÆ® º¸»ó -> FKey = QuestID
|
||
Dungeon = 2, // : ´øÀü º¸»ó -> FKey = PartyID or NULL
|
||
Cheat = 3, // : ġƮ -> FKey = NULL
|
||
Admin = 4, // : º¸Á¤ º¯°æ
|
||
Eternity = 5, // ¿µ±¸¾ÆÀÌÅÛ -> FKey = ItemSerial
|
||
PvP = 6, // : PvP ÇǷεµ º¸»ó -> FKey = NULL
|
||
DungeonMonster = 7, // :´øÁ¯ ¸ó½ºÅÍ »ç³É °æÇèÄ¡ -> FKey = PartyID or NULL( ¼¹ö¿¡¼ ±¸ºÐÀÚ·Î ¾²ÀÓ..DB¿¡ ³Ñ¾î°¥¶§´Â Dungeon À¸·Î Convert µÈ´Ù. )
|
||
Item = 8, // : °æÇèÄ¡Áõ°¡ ¾ÆÀÌÅÛ -> FKey = ItemID
|
||
};
|
||
};
|
||
|
||
struct CharacterLevelChangeCode
|
||
{
|
||
enum eCharacterLevelChangeCode
|
||
{
|
||
Normal = 1, // : ÀϹÝ
|
||
Cheat = 2, // : ġƮ
|
||
Admin = 3, // : °ü¸®ÀÚ º¯°æ
|
||
};
|
||
};
|
||
|
||
struct CoinChangeCode
|
||
{
|
||
enum eCoinChangeCode // ÁÖÀÇ : ´øÀü º¸»ó, ¿ìÆí÷ºÎ, â°í ÀÔÃâ±Ý, ¾ÆÀÌÅÛ µÇÆÈ±â, ±³È¯ ÀÔÃâ±Ý, ±³È¯ ¼ö¼ö·á, °È ¼ö¼ö·á, ½ºÅ³ ¾ð¶ô, »óÁ¡ ±¸ÀÔ, ¿ìÆí ¼ö¼ö·á ÀÎ °æ¿ì °¢°¢ÀÇ SP¿¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.
|
||
{
|
||
DoNotDBSave = 0,
|
||
QuestReward = 1, // : Äù½ºÆ® º¸»ó (FKey: QuestID)
|
||
PickUp = 2, // : ÇȾ÷ (FKey: PartyID or NULL)
|
||
Cheat = 3, // : ġƮ (FKey: NULL)
|
||
Admin = 4, // : °ü¸®ÀÚ º¯°æ (FKey: AuditLogID)
|
||
Use = 5, // : »ç¿ë (FKey: NULL)
|
||
// 6: ¿ìÆí¼Û½Å÷ºÎ (FKey: MailID)
|
||
// 7: ¿ìÆí¼ö½Å÷ºÎ (FKey: MailID)
|
||
InvenToWare = 8, // : â°í ÀÔ±Ý (FKey: NULL)
|
||
WareToInven = 9, // : â°í Ãâ±Ý (FKey: NULL)
|
||
// 10: ¾ÆÀÌÅÛ µÇÆÈ±â (FKey: NpcID)
|
||
// 11: ±³È¯ ÀÔ±Ý (FKey: CharacterID)
|
||
// 12: ±³È¯ Ãâ±Ý (FKey: CharacterID)
|
||
QuestSub = 13, // Äù½ºÆ® Â÷°¨ (FKey: QuestID)
|
||
RepairItem = 14, // ¾ÆÀÌÅÛ ¼ö¸® (FKey: ItemSerial)
|
||
// 15: ±³È¯ ¼ö¼ö·á (FKey: NULL)
|
||
// 16: °È ¼ö¼ö·á (FKey: ItemEnchantLogID)
|
||
// 17: ½ºÅ³ ¾ð¶ô (FKey: SkillID)
|
||
// 18: »óÁ¡ ±¸ÀÔ (FKey: ItemSerial)
|
||
DisjointTax = 19, // ºÐÇØ¼ö¼ö·á (FKey: NULL)
|
||
// 20: ¿ìÆí ¼ö¼ö·á (FKey: MailID)
|
||
// 21: ¹«ÀλóÁ¡µî·Ï ¼ö¼ö·á (FKey: TradeID)
|
||
// 22: ¹«ÀλóÁ¡ ¾ÆÀÌÅÛ ±¸ (FKey: TradeID)ÀÔ
|
||
// 23: ¹«ÀλóÁ¡ ¾ÆÀÌÅÛ ÆÇ¸Å±Ý (FKey: TradeID)
|
||
// 24: ¹«ÀλóÁ¡ °Å·¡ ¼º¸³ ¼ö¼ö·á (FKey: TradeID)
|
||
CompoundTax = 25, // Á¶ÇÕ¼ö¼ö·á (FKey: NULL)
|
||
// 26: ij¸¯ÅÍ »èÁ¦ (FKey: NULL)
|
||
MaxLevelExperienceTransGold = 27, // ¸¸·¦ °æÇèÄ¡ °ñµå º¸»ó (FKey: NULL)
|
||
Present = 28, // ¼±¹° (FKey: NpcID)
|
||
// 29: ±æµå â¼³ (FKey: GuildID)
|
||
GuildLevelup = 30, // 30: ±æµå ·¹º§ ¾÷ (FKey: GuildID)
|
||
InvenToGuildWare = 31, // 31: ±æµå â°í ÀÔ±Ý (FKey: GuildID)
|
||
GuildWareToInven = 32, // 32: ±æµå â°í Ãâ±Ý (FKey: GuildID)
|
||
GuildRewardBuy = 33, // 33: ±æµå º¸»ó ±¸¸Å (FKey: GuildItemID)
|
||
Donation = 34, // ±âºÎ
|
||
// 35: (DOORS) µî·Ï¼ö¼ö·á
|
||
// 36: (DOORS) ÀÔÂû¼ö¼ö·á
|
||
// 37: (DOORS) ³«Âû¼ö¼ö·á
|
||
// 38: (DOORS) ³«Âû°áÁ¦
|
||
// 39: (DOORS) ³«ÂûÁ¤»ê
|
||
// 40: (DOORS) µî·Ï¼ö¼ö·áÃë¼Ò
|
||
// 41: (DOORS) ÀÔÂû¼ö¼ö·áÃë¼Ò
|
||
// 42: (DOORS) ³«Âû¼ö¼ö·áÃë¼Ò
|
||
// 43: (DOORS) ³«Âû°áÁ¦Ãë¼Ò
|
||
// 44: (DOORS) ³«ÂûÁ¤»êÃë¼Ò
|
||
CharmItem = 45, // º¸¹°»óÀÚ (FKey: ItemID)
|
||
ChaosItem = 46, // Ä«¿À½º Å¥ºê (FKey: ItemID)
|
||
SpecialBox = 47, // Ư¼öº¸°üÇÔ (FKey: EventRewardID)
|
||
// 48: ¿ùµåâ°í »ç¿ë ¼ö¼ö·á
|
||
// 49: C2C º¸°ü
|
||
// 50: C2C ȸ¼ö
|
||
// 51: C2C °Å·¡
|
||
TalismanSlotOpen = 52, // 52: Å»¸®½º¸¸ ½½·Ô ¿ÀÇÂ(FKey: ½½·Ô À妽º)
|
||
TalismanSlotChange = 53, // 53: Å»¸®½º¸¸ ½½·Ô ÀåÂø À§Ä¡ À̵¿
|
||
|
||
GamblePrice=55, // 55: µµ¹Ú¸ðµå Âü°¡ºñ
|
||
GambleFirstWinner=56, // 56: µµ¹Ú¸ðµå 1µî °ñµå
|
||
GambleSecondWinner=57, // 56: µµ¹Ú¸ðµå 2µî °ñµå
|
||
DWC = 58, // 58: DWC ij¸¯ÅÍ ±âº» ¼ÒÀ¯ °ñµå
|
||
};
|
||
enum ePetalChangeCode
|
||
{
|
||
GambleEnterPetal= 9, // 9: µµ¹Ú¸ðµå ÆäÅ» ÀÔÀå·á
|
||
GambleFirstWinPetal= 12, // 12: µµ¹Ú¸ðµå 1µî ÆäÅ» »ó±Ý
|
||
GambleSecondWinPetal= 13, // 13: µµ¹Ú¸ðµå 2µî ÆäÅ» »ó±Ý
|
||
};
|
||
};
|
||
|
||
struct CoinTypeCode
|
||
{
|
||
enum eCoinTypeCode
|
||
{
|
||
Coin = 1, // : ÄÚÀÎ
|
||
WarehouseCoin = 2, // : â°í ÄÚÀÎ
|
||
RebirthCoin = 3, // : ºÎȰ ÄÚÀÎ
|
||
PCBangRebirthCoin = 4, // : PC¹æ ºÎȰ ÄÚÀÎ
|
||
};
|
||
};
|
||
|
||
struct EquipmentAttributeCode
|
||
{
|
||
enum eEquipmentAttributeCode
|
||
{
|
||
DelayTime = 1, // : µô·¹ÀÌ ½Ã°£
|
||
RemainTime = 2, // : Remain ½Ã°£
|
||
};
|
||
};
|
||
|
||
struct FatigueTypeCode
|
||
{
|
||
enum eFatigueTypeCode
|
||
{
|
||
PCBang = 1, // : PC¹æ ÇǷεµ
|
||
Daily = 2, // : ÀÏÀÏ ÇǷεµ
|
||
Weekly = 3, // : ÁÖ°£ ÇǷεµ
|
||
Event = 4, // À̺¥Æ® ÇǷεµ
|
||
VIP = 5, // VIPÇǷεµ
|
||
};
|
||
};
|
||
|
||
struct PublisherCode
|
||
{
|
||
enum ePublisherCode
|
||
{
|
||
Studio = 0,
|
||
KR = 1,
|
||
CH = 2,
|
||
JP = 3,
|
||
TW = 4,
|
||
US = 5,
|
||
SG = 6,
|
||
TH = 7,
|
||
ID = 8,
|
||
RU = 9,
|
||
EU = 10,
|
||
};
|
||
};
|
||
|
||
struct QuestStatusCode
|
||
{
|
||
enum eQuestStatusCode
|
||
{
|
||
Gain = 0, // : Äù½ºÆ®È¹µæ
|
||
Progress = 1, // : Äù½ºÆ®ÁøÇà
|
||
};
|
||
};
|
||
|
||
struct SkillPointCode
|
||
{
|
||
enum eSkillPointCode
|
||
{
|
||
LevelUp = 1, // ½ºÅ³·¹º§¾÷
|
||
EternityItem = 2, // ¿µ±¸Àû¿ë¾ÆÀÌÅÛ
|
||
Repair = 10, // °Á °Á¦·Î º¹±¸ ¼¼ÆÃ
|
||
};
|
||
};
|
||
|
||
struct SkillChangeCode
|
||
{
|
||
enum eSkillChangeCode
|
||
{
|
||
Gain = 1, // : ½ºÅ³Æ÷ÀÎÆ® ȹµæ
|
||
Use = 2, // : ½ºÅ³·¹º§¾÷ & ½ºÅ³Æ÷ÀÎÆ® »ç¿ë
|
||
Reset = 3, // : ½ºÅ³Æ÷ÀÎÆ® ¸®¼Â
|
||
GainByQuest = 4, // : ½ºÅ³ ȹµæ (Äù½ºÆ®)
|
||
GainByDungeon = 5, // : ½ºÅ³ ȹµæ (´øÀü º¸»ó)
|
||
GainByBook = 6, // : ½ºÅ³ ȹµæ (½ºÅ³ºÏ)
|
||
GainByEvent = 7, // : ½ºÅ³ ȹµæ (À̺¥Æ®)
|
||
GainByAdmin = 8, // : ½ºÅ³ ȹµæ (by °ü¸®ÀÚ)
|
||
DelByDrop = 9, // : ½ºÅ³ »èÁ¦ (µå¶ø)
|
||
DelByQuest = 10, // : ½ºÅ³ »èÁ¦ (Äù½ºÆ®)
|
||
DelByEvent = 11, // : ½ºÅ³ »èÁ¦ (À̺¥Æ® ¸¸·á)
|
||
DelByAdmin = 12, // : ½ºÅ³ »èÁ¦ (by °ü¸®ÀÚ)
|
||
ModSkillLevelByAdmin = 13, // : ½ºÅ³·¹º§ Á¶Á¤ (by °ü¸®ÀÚ)
|
||
GainByBuy = 14, // 14½ºÅ³È¹µæ(±¸ÀÔ)
|
||
};
|
||
};
|
||
|
||
struct TradeStatusCode
|
||
{
|
||
enum eTradeStatusCode
|
||
{
|
||
Sell = 0, // : ÆÇ¸ÅÁß
|
||
CompleteSellByItem = 1, // : ÆÇ¸Å¿Ï·á(¾ÆÀÌÅÛ ¼ö·É)
|
||
CompleteSellByCoin = 2, // : ÆÇ¸Å¿Ï·á(ÆÇ¸Å±Ý ¼ö·É)
|
||
CancelSell = 3, // : ÆÇ¸ÅÃë¼Ò
|
||
Expire = 4, // : ±â°£¸¸·á
|
||
};
|
||
};
|
||
|
||
struct AddMaterializedItem
|
||
{
|
||
enum eCode
|
||
{
|
||
Pick = 1, // 1=Áݱâ -> FKey: PartyID or NULL
|
||
Mission = 2, // 2=¹Ì¼Ç -> FKey: MissionID
|
||
QuestReward = 3, // 3=Äù½ºÆ®º¸»ó -> FKey: QuestID
|
||
Present = 4, // 4=¼±¹° -> FKey: PurchaseID
|
||
PointBuy = 5, // 5=ÀΰÔÀÓÆ÷ÀÎÆ® ±¸ÀÔ -> FKey: NPCID
|
||
CashBuy = 6, // 6=ij½¬ ±¸ÀÔ -> FKey: PurchaseID
|
||
ReserveMoneyBuy = 7, // 7=ÆäÅ» ±¸ÀÔ -> FKey: PurchaseID
|
||
GetGachaResultCashItem_JP = 9, // 9=ÀϺ» °¡Ã µ¹·Á¼ ³ª¿Â ij½¬ ¾ÆÀÌÅÛ.
|
||
GMGive = 10, // 10=°ü¸®ÀÚ Áö±Þ -> FKey: AuditLogID
|
||
ItemDecompose = 11, // 11=¾ÆÀÌÅÛ ºÐÇØ -> FKey: NPCID
|
||
// ItemEnchantFail = 12, // 12=¾ÆÀÌÅÛ °È ½ÇÆÐ -> FKey: ItemEnchantID
|
||
ItemCompound = 13, // Á¶ÇÕ
|
||
RandomItem = 14, // ·£´ý¾ÆÀÌÅÛ
|
||
DungeonReward = 15, // ´øÁ¯º¸»ó
|
||
PvPReward = 16, // pvpº¸»ó
|
||
CharacterCreate = 17, // ±âº»Áö±Þ
|
||
SystemMail = 18, // ½Ã½ºÅÛ¸ÞÀÏ (¹Ì¼Çº¸»ó)
|
||
FixedItem = 19, // ij½¬ÅÛ (¾ó±¼, ¸Ó¸®) - ±âÁ¸¾ó±¼/¸Ó¸® Áö¿ì°í µ¤¾î¾²±â -> FKey: ij½¬ÅÛ »ç¿ë¾ÆÀÌÅ۽ø®¾ó (Àκ¥¿¡ Àִ¾Ö)
|
||
CostumeMix = 21, // ÄÚ½ºÆ¬ ÇÕ¼º
|
||
FishingReward = 22, // ³¬½Ãº¸»ó
|
||
Harvest = 23, // ¼öÈ®
|
||
Cheat = 24, // ġƮ
|
||
PvPLadderPoint = 25, // ·¡´õÆ÷ÀÎÆ®
|
||
UnionPoint = 26, // ¿¬ÇÕÆ÷ÀÎÆ®
|
||
Trigger = 27, // Æ®¸®°Å
|
||
GuildWarFestivalPoint = 28, // ±æµå ÃàÁ¦ Æ÷ÀÎÆ®
|
||
Repurchase = 29,
|
||
GuildReversionItem = 30,
|
||
CostumeRandomMixItem = 31,
|
||
BestFriendItem = 34,
|
||
COMEBACKREWARD = 35, // º¹±ÍÀ¯Àúº¸»ó
|
||
SpecialBoxReward = 36,
|
||
NewbieGameQuitReward = 37, //½Å±Ô À¯Àú Á¢¼Ó Á¾·áÇÒ ¶§ º¸»ó
|
||
NewbiewReConnectReward = 38, //½Å±Ô À¯Àú ÀçÁ¢¼Ó½Ã º¸»ó
|
||
ComebackGameQuitReward = 39, //±ÍȯÀÚ Á¢¼Ó Á¾·áÇÒ ¶§ º¸»ó
|
||
SeedPointBuy = 40, //½Ãµå·Î ±¸ÀÔ
|
||
};
|
||
};
|
||
|
||
struct MailTypeCode
|
||
{
|
||
enum eCode
|
||
{
|
||
Normal = MailType::NormalMail, // ÀÏ¹Ý ¸ÞÀÏ
|
||
Mission = MailType::MissionMail, // ¹Ì¼Ç º¸»ó
|
||
Admin = MailType::AdminMail, // °ü¸®ÀÚ ¸ÞÀÏ
|
||
EventMail = MailType::EventMail, // À̺¥Æ® ¸ÞÀÏ
|
||
VIP = MailType::VIPMail, // VIP
|
||
MasterSystem = MailType::MasterSystemMail, // »çÁ¦½Ã½ºÅÛ
|
||
NpcReputaion = MailType::NpcReputationMail, // NPCÈ£°¨µµ½Ã½ºÅÛ
|
||
Quest = MailType::Quest, // Äù½ºÆ®
|
||
GuildWarReward = MailType::GuildWarReward, // ±æµåÀü º¸»ó
|
||
SpecialBox_Account = MailType::SpecialBox_Account, // Ư¼öº¸°üÇÔ_°èÁ¤Å¸°Ù
|
||
SpecialBox_Character = MailType::SpecialBox_Character, // Ư¼öº¸°üÇÔ_Çöij¸¯ÅÍŸ°Ù
|
||
Cadge = MailType::Cadge, // Á¶¸£±â
|
||
GuildMaxLevelReward = MailType::GuildMaxLevelReward,// ÃÖÃʱæµå°¡ÀÔ ¸¸·¦ ±æµå º¸»ó
|
||
AppellationBookReward = MailType::AppellationBookReward, // Īȣ Ä÷º¼ÇºÏ ¿Ï·á º¸»ó
|
||
};
|
||
};
|
||
|
||
struct UseItem
|
||
{
|
||
enum eUseItemCode
|
||
{
|
||
DoNotDBSave = 0,
|
||
Use = 1, // 1=¼Ò¸ð¼º ¾ÆÀÌÅÛ »ç¿ë
|
||
Destroy = 2, // 2=¹ö¸®±â
|
||
DeCompose = 4, // 4=ºÐÇØ
|
||
Present = 5, // 5=¼±¹°
|
||
GuildReversionItem = 6, // 6=±æµåÅ»Å𳪠Ãß¹æÀ¸·Î ±æµå±Í¼Ó¾ÆÀÌÅÛ »èÁ¦
|
||
};
|
||
};
|
||
|
||
struct ItemLocation
|
||
{
|
||
enum eCode
|
||
{
|
||
Equip = 1,
|
||
Inventory = 2,
|
||
Warehouse = 3,
|
||
QuestInventory = 4,
|
||
CashInventory = 5,
|
||
GiftRepository = 6,
|
||
CashEquip = 7,
|
||
Glyph = 8,
|
||
VehicleInventory = 9,
|
||
PetInventory = 10,
|
||
HarvestDepot = 11, // ¼öȮâ°í
|
||
ServerWare = 17, // ¼¹ö ÀÏ¹Ý ¾ÆÀÌÅÛ Ã¢°í
|
||
ServerWareCash = 18, // ¼¹ö ij½¬ ¾ÆÀÌÅÛ Ã¢°í
|
||
Talisman = 19, // Å»¸®½º¸¸
|
||
PeriodInventory = 20,
|
||
PeriodWarehouse = 21,
|
||
};
|
||
};
|
||
|
||
struct PetType
|
||
{
|
||
enum eCode
|
||
{
|
||
Vehicle = 1,
|
||
Pet = 2,
|
||
SATIETY_PET = 3,
|
||
};
|
||
};
|
||
|
||
struct PayMethodCode
|
||
{
|
||
enum eCode
|
||
{
|
||
Coin = 1, // 1: ÄÚÀÎ
|
||
Cash = 2, // 2: ij½¬
|
||
Petal = 3, // 3: Àû¸³±Ý
|
||
Coupon = 4, // 4: ÄíÆù
|
||
Admin = 5, // 5: °ü¸®ÀÚ Áö±Þ
|
||
Quest = 6, // 6: Äù½ºÆ®º¸»ó
|
||
Mission = 7, // 7: ¹Ì¼Çº¸»ó
|
||
LevelupEvent = 8, // 8=ij¸¯ÅÍ ·¹º§ ¾÷ º¸»ó
|
||
VIP = 9, // 9 : VIP ¼±¹°
|
||
PvP = 10, // 10 : PVP ·¡´õ Æ÷ÀÎÆ®
|
||
Union_Commerical = 11, // 11 : »óÀÎ ¿¬ÇÕ Æ÷ÀÎÆ®
|
||
Union_Royal = 12, // 12 : ¿Õ¼º ¿¬ÇÕ Æ÷ÀÎÆ®
|
||
Union_Liberty = 13, // 13 : ÀÚÀ¯ ¿¬ÇÕ Æ÷ÀÎÆ®
|
||
Cash_NexonUSA = 14, // 14 : ³Ø½¼¾Æ¸Þ¸®Ä« ij½¬
|
||
Event = 15, // 15 : À̺¥Æ®
|
||
GuildWar_Festival = 16, // 16 : ±æµåÀü ÃàÁ¦ Æ÷ÀÎÆ®
|
||
GuildWar_Reward = 17, // 17 : ±æµåÀü º¸»ó
|
||
Comeback = 19, // 18 : º¹±ÍÀ¯Àúº¸»ó
|
||
BestFriend = 20, // 20 : ÀýÄ£
|
||
BeginnerGuild = 21, // 21 : Ãʺ¸ÀÚ±æµå ¼±¹°
|
||
GuildSupport = 22, // 22 : ±æµåÁö¿øº¸»ó
|
||
ActiveMission = 23, // 23 : ¾×Ƽºê¹Ì¼Ç º¸»ó
|
||
#if defined( PRE_ADD_STAMPSYSTEM )
|
||
Stamp = 24, // 24 : ½ºÅÆÇÁ º¸»ó
|
||
#endif // #if defined( PRE_ADD_STAMPSYSTEM )
|
||
#if defined( PRE_ADD_NEW_MONEY_SEED )
|
||
SeedPoint = 25, // 25 : ½Ãµå·Î ±¸ÀÔ
|
||
#endif
|
||
};
|
||
};
|
||
|
||
struct CashRebirthCode
|
||
{
|
||
enum eCode
|
||
{
|
||
Cash = 1,
|
||
Petal = 2,
|
||
Admin = 3,
|
||
Item = 4,
|
||
Seed = 5,
|
||
};
|
||
};
|
||
|
||
struct EffectItemGetCode
|
||
{
|
||
enum eCode
|
||
{
|
||
Cash = 1,
|
||
Petal = 2,
|
||
Cooper = 3,
|
||
Admin = 4,
|
||
Union = 5,
|
||
Item = 6,
|
||
Guild = 7,
|
||
BestFriend = 8,
|
||
Seed = 9,
|
||
};
|
||
};
|
||
|
||
struct EffectItemLifeSpanType
|
||
{
|
||
enum eCode
|
||
{
|
||
New = 0,
|
||
Extend = 1,
|
||
Update = 2,
|
||
};
|
||
};
|
||
|
||
struct DifficultyCode
|
||
{
|
||
enum eCode
|
||
{
|
||
Easy = 1,
|
||
Normal,
|
||
Hard,
|
||
Master,
|
||
Abyss,
|
||
};
|
||
};
|
||
|
||
struct ClearGradeCode
|
||
{
|
||
enum eCode
|
||
{
|
||
SSS = 10,
|
||
SS,
|
||
S,
|
||
A,
|
||
B,
|
||
C,
|
||
D,
|
||
};
|
||
};
|
||
|
||
struct RewardBoxCode
|
||
{
|
||
enum eCode
|
||
{
|
||
Wood = 1,
|
||
Bronze,
|
||
Silver,
|
||
Gold,
|
||
};
|
||
};
|
||
|
||
struct WhereToGoCode
|
||
{
|
||
enum eCode
|
||
{
|
||
StageEntrance = 1,
|
||
Village,
|
||
};
|
||
};
|
||
|
||
struct PvPModeCode
|
||
{
|
||
enum eCode
|
||
{
|
||
Round = 1,
|
||
Respawn,
|
||
Captain,
|
||
IndividualRespawn,
|
||
Zombie,
|
||
Ladder1vs1,
|
||
Ladder2vs2,
|
||
Ladder3vs3,
|
||
Ladder4vs4,
|
||
GuildWar,
|
||
Occupation,
|
||
AllKill,
|
||
Racing,
|
||
Tournament,
|
||
#if defined( PRE_ADD_PVP_COMBOEXERCISE )
|
||
ComboExercise,
|
||
#endif // #if defined( PRE_ADD_PVP_COMBOEXERCISE )
|
||
#if defined(PRE_ADD_DWC)
|
||
DWCRegular,
|
||
DWCPractice,
|
||
#endif
|
||
};
|
||
};
|
||
|
||
struct PvPTeamCode
|
||
{
|
||
enum eCode
|
||
{
|
||
A = 1,
|
||
B,
|
||
};
|
||
};
|
||
|
||
struct PvPResultCode
|
||
{
|
||
enum eCode
|
||
{
|
||
Win = 1,
|
||
Lose,
|
||
Draw,
|
||
GiveUp,
|
||
};
|
||
};
|
||
|
||
struct RestraintTargetCode
|
||
{
|
||
enum eCode
|
||
{
|
||
Account = 1, // °èÁ¤
|
||
Character, // ij¸¯ÅÍ
|
||
};
|
||
};
|
||
|
||
struct RestraintTypeCode
|
||
{
|
||
enum eCode
|
||
{
|
||
ConnectRestraint = 1,
|
||
ChatRestraint,
|
||
TradeRestraint,
|
||
};
|
||
};
|
||
|
||
struct RestraintDolisReasonCode
|
||
{
|
||
enum eCode
|
||
{
|
||
DefaultCode = 110,
|
||
AbuseRestraintCode = 111,
|
||
AbuseTradeRestraintCode = 112,
|
||
};
|
||
};
|
||
|
||
struct TransactorCode
|
||
{
|
||
enum eCode
|
||
{
|
||
Master = 1,
|
||
Pupil,
|
||
};
|
||
};
|
||
|
||
struct GetMasterCharacterCode
|
||
{
|
||
enum eCode
|
||
{
|
||
MyInfo = 1, // ÀÚ½ÅÀÇ ½º½Â Á¤º¸
|
||
MyMasterInfo, // ³» ½º½Â Á¤º¸
|
||
OptionalMasterInfo, // ÀÓÀÇÀÇ Æ¯Á¤ ½º½Â Á¤º¸
|
||
};
|
||
};
|
||
#if defined( PRE_ADD_SECONDARY_SKILL )
|
||
|
||
struct SecondarySkillTypeCode
|
||
{
|
||
enum eCode
|
||
{
|
||
ProductionSkill = SecondarySkill::Type::ProductionSkill, // »ý»ê½ºÅ³
|
||
ManufactureSkill = SecondarySkill::Type::ManufactureSkill, // Á¦ÀÛ½ºÅ³
|
||
CommonSkill = SecondarySkill::Type::CommonSkill, // °ø¿ë½ºÅ³
|
||
};
|
||
};
|
||
#endif // #if defined( PRE_ADD_SECONDARY_SKILL )
|
||
|
||
struct AppellationKind
|
||
{
|
||
enum eAppellationKind
|
||
{
|
||
Select = 1,
|
||
Cover = 2
|
||
};
|
||
};
|
||
|
||
struct EtcPointCode
|
||
{
|
||
enum eCode
|
||
{
|
||
None = 0,
|
||
PvP = 1,
|
||
Union_Commercial = 2,
|
||
Union_Royal = 3,
|
||
Union_Liberty = 4,
|
||
GuildWar_Festival = 5, // ±æµåÀü ÃàÁ¦ Æ÷ÀÎÆ®
|
||
SeedPoint = 6, // ½Ãµå ¸Ó´Ï
|
||
Max,
|
||
};
|
||
};
|
||
struct GuildWarRewardType
|
||
{
|
||
enum eGuildWarRewardType
|
||
{
|
||
GuildWarFestivalWin = 1, // ±æµåÃàÁ¦¿ì½Â
|
||
GuildWarFestivalLose, // ±æµåÃàÁ¦ÆÐ¹è
|
||
GuildWarFinalUnder4, // º»¼± 4°¹Ì¸¸
|
||
GuildWarFinal4, // º»¼± 4°º¸»ó
|
||
GuildWarFinal2, // º»¼± 2À§º¸»ó
|
||
GuildWarFinalWin, // º»¼± ¿ì½Âº¸»ó
|
||
GuildWarFinalAbnormalLose, // º»¼± ºñÁ¤»óÆÐ¹è(µ¿Á¡¶§ ¿¹¼±Á¡¼ö?)
|
||
};
|
||
};
|
||
|
||
struct EventRewardType
|
||
{
|
||
enum eEventRewardType
|
||
{
|
||
Admin = 1,
|
||
System = 2,
|
||
};
|
||
};
|
||
};
|
||
|
||
//Exception Report
|
||
enum eExceptionRepert
|
||
{
|
||
_EXCEPTIONTYPE_NONE = 0,
|
||
|
||
//for game
|
||
_EXCEPTIONTYPE_ROOMCRASH,
|
||
_EXCEPTIONTYPE_SESSIONCRASH,
|
||
_EXCEPTIONTYPE_ROOMDESTRUCTOR,
|
||
_EXCEPTIONTYPE_GAME_DELAYED,
|
||
|
||
//for db
|
||
_EXCEPTIONTYPE_DBMW_DELAYED,
|
||
};
|
||
|
||
//GameServerAffinity Type
|
||
enum eGameServerAffinityType
|
||
{
|
||
_GAMESERVER_AFFINITYTYPE_NORMAL = 0, //±×³É ÀÏ¹Ý ´øÀüÀÌ¹Ì ¸Ó´Ï ±×·±°Å
|
||
_GAMESERVER_AFFINITYTYPE_HYBRYD, //ÇǺñÇǵµ ¹Þ°í ´Ù ¹Þ¾Æ¿ä
|
||
_GAMESERVER_AFFINITYTYPE_PVP, //ÇǺñÇǸ¸ ¹Þ¾Æ¿ä
|
||
_GAMESERVER_AFFINITYTYPE_FARM, //°ÔÀÓ¼¹ö ¿ùµå ÅëÇÕó¸®¿ë ³óÀå Àü¿ë °×¼·!
|
||
};
|
||
|
||
// Cash
|
||
enum eCashEtc
|
||
{
|
||
Reason_GameClient = 1,
|
||
Reason_Web = 2,
|
||
Reason_PCBangGameClient = 3,
|
||
Reason_PCBangWeb = 4,
|
||
|
||
Category_Main = 1,
|
||
Category_Costume = 2,
|
||
Category_Item = 3,
|
||
Category_Package = 4,
|
||
|
||
CashItemState_None = 1,
|
||
CashItemState_Hot = 2,
|
||
CashItemState_New = 3,
|
||
CashItemState_Normal = 4,
|
||
CashItemState_Discount = 5,
|
||
};
|
||
|
||
#if defined(_CH)
|
||
enum eChSndaAuthFlag
|
||
{
|
||
eChSndaAuthFlag_UseEKey = (1 << 0), // EKey ±â´É »ç¿ë ¿©ºÎ
|
||
eChSndaAuthFlag_UseECard = (1 << 1), // ECard ±â´É »ç¿ë ¿©ºÎ
|
||
};
|
||
#endif // _CH
|
||
|
||
// structure -----------------------------------------------------------------------------------------------
|
||
|
||
struct TChannelInfo
|
||
{
|
||
USHORT nChannelID; //ÇÒ´çµÈ ä³Î(Çʵå)¾ÆÀ̵ð
|
||
USHORT nChannelIdx;
|
||
USHORT nMapIdx; //´ã´çÇÏ´Â ¸ÊÀÇ ¾ÆÀ̵ð
|
||
USHORT nChannelMaxUser;
|
||
USHORT nCurrentUser;
|
||
int nAttribute; //DirtyBit
|
||
int nMeritBonusID; //Merit bonus
|
||
bool bVisibility;
|
||
WCHAR wszMapName[MAPNAMELENMAX];
|
||
int nLimitLevel;
|
||
bool bShow;
|
||
USHORT nDependentMapID;
|
||
int nServerID;
|
||
BYTE cThreadID;
|
||
#if defined(PRE_ADD_CHANNELNAME)
|
||
WCHAR wszLanguageName[CHANNELLANGUAGEMAX];
|
||
#endif //#if defined(PRE_ADD_CHANNELNAME)
|
||
int GetUserPercentage() const
|
||
{
|
||
if( nChannelMaxUser > 0 )
|
||
return nCurrentUser*100/nChannelMaxUser;
|
||
return -1;
|
||
}
|
||
};
|
||
|
||
struct TVillageInfo
|
||
{
|
||
BYTE cVillageID;
|
||
int nManagedID;
|
||
char szIP[IPLENMAX];
|
||
USHORT nPort;
|
||
|
||
std::vector <TChannelInfo> vOwnedChannelList;
|
||
TVillageInfo()
|
||
{
|
||
cVillageID = 0;
|
||
nManagedID = 0;
|
||
memset(szIP, 0, sizeof(szIP));
|
||
nPort = 0;
|
||
}
|
||
};
|
||
|
||
struct TGameInfo
|
||
{
|
||
int nServerID;
|
||
int nServerAttribute;
|
||
ULONG nIP;
|
||
USHORT nPort;
|
||
USHORT nTcpPort;
|
||
|
||
int nRoomCnt;
|
||
int nUserCnt;
|
||
bool bHasMargin;
|
||
UINT nFrame;
|
||
|
||
bool bComplete;
|
||
UINT uiLastDelayReportTick;
|
||
};
|
||
|
||
// Server Info
|
||
struct TServerInfo
|
||
{
|
||
bool bMergedWorld;
|
||
int nWorldSetID; // ÅëÇÕ ¿ùµå ¾ÆÀ̵ð
|
||
char cWorldID;
|
||
WCHAR wszWorldName[WORLDNAMELENMAX];
|
||
UINT nWorldMaxUser; //´ë±âÀÚ¿ë
|
||
USHORT nDefaultMaxUser;
|
||
bool bOnline; // online, offline »óÅÂÇ¥½Ã¿ë
|
||
bool bOnTop;
|
||
std::vector <TVillageInfo> vOwnedVillageList;
|
||
|
||
TServerInfo()
|
||
{
|
||
bMergedWorld = false;
|
||
nWorldSetID = 0;
|
||
cWorldID = 0;
|
||
memset(wszWorldName, 0, sizeof(wszWorldName));
|
||
nWorldMaxUser = 0;
|
||
nDefaultMaxUser = 0;
|
||
bOnline = false;
|
||
bOnTop = false;
|
||
}
|
||
};
|
||
|
||
//
|
||
struct TChannelInfoEx
|
||
{
|
||
TChannelInfo Channel;
|
||
BYTE cVillageID;
|
||
char szIP[IPLENMAX];
|
||
USHORT nPort;
|
||
};
|
||
typedef std::map<int, TChannelInfoEx> TMapChannel;
|
||
|
||
// ¼¹ö¿¡¼´Â float·Î ¹Ù·Î ¾²Áö¾Ê´Â´Ù. Ŭ¶ó¿¡¼ ¹ÞÀº ÁÂÇ¥¿¡ *1000À» ÇØ¼ »ç¿ëÇÔ
|
||
struct TPosition
|
||
{
|
||
int nX;
|
||
int nY;
|
||
int nZ;
|
||
};
|
||
|
||
struct TLocation
|
||
{
|
||
UINT nMapIndex;
|
||
TPosition Pos;
|
||
};
|
||
|
||
// npc, user object»ý¼º¿¡ ÇØ´ç. °øÅëµÈ ºÎºÐ¸¸
|
||
struct TBaseData
|
||
{
|
||
UINT nObjectID;
|
||
WCHAR wszName[NAMELENMAX];
|
||
int nChannelID;
|
||
TPosition CurPos, TargetPos;
|
||
TPosition MoveDir;
|
||
float fRotate;
|
||
bool bBattleMode;
|
||
};
|
||
|
||
struct TParamData
|
||
{
|
||
eChatType eChatType;
|
||
int nChatSize;
|
||
WCHAR wszChatMsg[CHATLENMAX];
|
||
char Buffer[128];
|
||
int nBufSize;
|
||
USHORT wActorProtocol;
|
||
TItemInfo ItemInfo;
|
||
TItemInfo CashItemInfo;
|
||
BYTE cLevel;
|
||
UINT nExp;
|
||
int nJob;
|
||
int nSelectAppellation;
|
||
int nCoverAppellation;
|
||
bool bHide;
|
||
bool bEncrypt;
|
||
DNEncryptPacketSeq sEncrypt;
|
||
char cType;
|
||
char cState;
|
||
DWORD dwColor;
|
||
int nChatRoomParam;
|
||
int nIndex;
|
||
DWORD dwSendSessionID; // SendSessionID
|
||
TItem Vehicle;
|
||
TVehicleCompact PetInfo;
|
||
char cPetPartsType;
|
||
};
|
||
|
||
struct TDefaultCreateData
|
||
{
|
||
BYTE cClassID; // Ŭ·¡½º
|
||
int cDarkClass; // rlkt_dark dark class :)
|
||
int cDarkClassJobID; // rlkt_dark dark class :)
|
||
int nCreateMapIndex; // óÀ½ »ý¼º½Ã ½ÃÀÛ ¸Ê À妽º
|
||
int nCreateMapStartPositionX[DEFAULTPOSITIONMAX]; // óÀ½ »ý¼º½Ã ½ÃÀÛ À§Ä¡ X
|
||
int nCreateMapStartPositionY[DEFAULTPOSITIONMAX]; // óÀ½ »ý¼º½Ã ½ÃÀÛ À§Ä¡ Y
|
||
int nCreateMapStartRadius[DEFAULTPOSITIONMAX]; // ¹Ý°æ
|
||
|
||
int nCreateTutorialMapIndex; // óÀ½ »ý¼º½Ã Æ©Å丮¾ó ¸Ê À妽º (GameServerÂÊ)
|
||
int nCreateTutorialGateNo; // óÀ½ »ý¼º½Ã Æ©Å丮¾ó °ÔÀÌÆ® (GameServerÂÊ)
|
||
|
||
int nDefaultBody; // ±âº»¸ö
|
||
int nDefaultLeg; // ±âº»´Ù¸®
|
||
int nDefaultHand; // ±âº»¼Õ
|
||
int nDefaultFoot; // ±âº»¹ß
|
||
int nFace[DEFAULTPARTSMAX]; // ¾ó±¼
|
||
int nHair[DEFAULTPARTSMAX]; // ¸Ó¸®
|
||
int nHelmet[DEFAULTPARTSMAX]; // Çï¸ä
|
||
int nBody[DEFAULTPARTSMAX]; // »óÀÇ
|
||
int nLeg[DEFAULTPARTSMAX]; // ÇÏÀÇ
|
||
int nHand[DEFAULTPARTSMAX]; // ¼Õ
|
||
int nFoot[DEFAULTPARTSMAX]; // ¹ß
|
||
int nWeapon[WEAPONMAX]; // ¹«±â
|
||
|
||
DWORD dwHairColor[DEFAULTHAIRCOLORMAX];
|
||
DWORD dwSkinColor[DEFAULTSKINCOLORMAX];
|
||
DWORD dwEyeColor[DEFAULTEYECOLORMAX];
|
||
|
||
int nDefaultItemID[DEFAULTITEMMAX]; // ¼ÒÀ¯¾ÆÀÌÅÛ
|
||
int nDefaultItemCount[DEFAULTITEMMAX]; // ¼ÒÀ¯¾ÆÀÌÅÛ °³¼ö
|
||
|
||
int nDefaultSkillID[DEFAULTSKILLMAX]; // ¼ÒÀ¯½ºÅ³
|
||
|
||
TQuickSlot DefaultQuickSlot[DEFAULTQUICKSLOTMAX]; // Äü½½·Ô°³¼ö
|
||
int nDefaultGestureID[DEFAULTGESTUREMAX]; // ¼ÒÀ¯ Á¦½ºÃ³
|
||
};
|
||
|
||
#if defined( PRE_ADD_DWC )
|
||
struct TDWCCreateData
|
||
{
|
||
BYTE cClassID; // ±âº» Ŭ·¡½º ID
|
||
BYTE cJobCode1; // 1Â÷ ÀüÁ÷ Ŭ·¡½º ID
|
||
BYTE cJobCode2; // 2Â÷ ÀüÁ÷ Ŭ·¡½º ID
|
||
BYTE cLevel;
|
||
int nExp;
|
||
int nCreateMapIndex; // óÀ½ »ý¼º½Ã ½ÃÀÛ ¸Ê À妽º
|
||
int nCreateMapStartPositionX[DEFAULTPOSITIONMAX]; // óÀ½ »ý¼º½Ã ½ÃÀÛ À§Ä¡ X
|
||
int nCreateMapStartPositionY[DEFAULTPOSITIONMAX]; // óÀ½ »ý¼º½Ã ½ÃÀÛ À§Ä¡ Y
|
||
int nCreateMapStartRadius[DEFAULTPOSITIONMAX]; // ¹Ý°æ
|
||
|
||
int nDefaultBody; // ±âº»¸ö
|
||
int nDefaultLeg; // ±âº»´Ù¸®
|
||
int nDefaultHand; // ±âº»¼Õ
|
||
int nDefaultFoot; // ±âº»¹ß
|
||
int nEquipArray[EQUIPMAX]; // ÀåÂø Àåºñ
|
||
|
||
DWORD dwHairColor;
|
||
DWORD dwSkinColor;
|
||
DWORD dwEyeColor;
|
||
|
||
int nDefaultItemID[DEFAULTITEMMAX]; // ¼ÒÀ¯¾ÆÀÌÅÛ
|
||
int nDefaultItemCount[DEFAULTITEMMAX]; // ¼ÒÀ¯¾ÆÀÌÅÛ °³¼ö
|
||
|
||
int nDefaultSkillID[DEFAULTSKILLMAX]; // ¼ÒÀ¯½ºÅ³
|
||
|
||
TQuickSlot DefaultQuickSlot[DEFAULTQUICKSLOTMAX]; // Äü½½·Ô°³¼ö
|
||
int nDefaultGestureID[DEFAULTGESTUREMAX]; // ¼ÒÀ¯ Á¦½ºÃ³
|
||
short nSkillPoint; // ½ºÅ³ Æ÷ÀÎÆ®
|
||
int nGold; // °ñµå - ÇÊ¿ä ¾ø´Ù¸é Á¦°ÅÇÏÀÚ
|
||
|
||
};
|
||
#endif // #if defined( PRE_ADD_DWC )
|
||
|
||
struct TMapInfo
|
||
{
|
||
int nMapID;
|
||
char szMapName[10][256];
|
||
BYTE GateMapCount[WORLDMAP_GATECOUNT];
|
||
USHORT GateMapIndexs[WORLDMAP_GATECOUNT][WORLDMAP_GATECOUNT];
|
||
BYTE GateStartIndexs[WORLDMAP_GATECOUNT][WORLDMAP_GATECOUNT];
|
||
int nWorldLevel;
|
||
GlobalEnum::eMapTypeEnum MapType;
|
||
GlobalEnum::eMapSubTypeEnum MapSubType;
|
||
int nMaxClearCount;
|
||
int nAllowMapType;
|
||
std::vector<int> vMapAreaIndex;
|
||
bool bExpandable;
|
||
bool bUserReturnSystem; // À¯Àú º¹±Í½Ã½ºÅÛ
|
||
bool bVehicleMode;
|
||
bool bPetMode;
|
||
bool bAllowFreePass;
|
||
#if defined( PRE_PARTY_DB )
|
||
std::wstring wstrMapName;
|
||
int iEnterConditionTable;
|
||
#endif // #if defined( PRE_PARTY_DB )
|
||
#if defined( PRE_NORMALSTAGE_REGULATION )
|
||
char cRevisionNum; //º¸Á¤³Ñ¹ö
|
||
#endif
|
||
#if defined(PRE_ADD_VEHICLE_SPECIAL_ACTION)
|
||
bool bVehicleSpecalActionMode;
|
||
#endif
|
||
};
|
||
|
||
struct TCoinCountData
|
||
{
|
||
BYTE cLevel;
|
||
int nRebirthCoin[WORLDCOUNTMAX]; // ºÎȰÄÚÀÎ
|
||
int nCashRebirthCoin[WORLDCOUNTMAX]; // ºÎȰij½¬ÄÚÀÎ
|
||
int nRebirthCoinLimit; // ¹«·áÄÚÀμÒÁöÁ¦ÇѰ³¼ö
|
||
int nCashRebirthCoinLimit; // À¯·áÄÚÀμÒÁöÁ¦ÇѰ³¼ö
|
||
int nVIPRebirthCoin; // VIPºÎȰÄÚÀÎ
|
||
};
|
||
|
||
struct TActorData
|
||
{
|
||
int nActorID;
|
||
BYTE cClass; // À¯´Ö ŸÀÔ Á¾·ù
|
||
};
|
||
|
||
const int QUEST_MAX_CNT = 20;
|
||
struct TNpcData
|
||
{
|
||
int nNpcID;
|
||
int nParam[2];
|
||
WCHAR wszName[EXTDATANAMELENMAX];
|
||
char szTalkFile[256]; // ´ë»çÆÄÀÏÀ̸§
|
||
char szScriptFile[256]; // script ÆÄÀÏÀ̸§
|
||
int QuestIndexArr[QUEST_MAX_CNT]; // Äù½ºÆ®À妽º
|
||
TActorData ActorData;
|
||
};
|
||
|
||
struct TItemData
|
||
{
|
||
int nItemID;
|
||
WCHAR wszItemName[EXTDATANAMELENMAX];
|
||
int nType; // ŸÀÔ
|
||
int nTypeParam[3]; // ŸÀÔÆÄ¶ó¹ÌÅÍ
|
||
BYTE cLevelLimit; // ·¹º§Á¦ÇÑ
|
||
BYTE cRank; // µî±Þ
|
||
BYTE cReversion; // ±Í¼Ó¿©ºÎ
|
||
bool IsCash; // ij½¬ÅÛÀΰ¡
|
||
bool IsDestruction; // ÆÄ±«¿©ºÎ
|
||
bool IsAuthentication; // ÀÎÁõ¿©ºÎ
|
||
int nAmount; // ±Ý¾×
|
||
int nSellAmount; // ÆÇ¸Å±Ý¾×
|
||
int nOverlapCount; // Áßø°³¼ö
|
||
std::vector<int> nNeedJobClassList; // Á÷¾÷Á¦ÇÑ
|
||
|
||
int nSkillID; // ½ºÅ³ À妽º
|
||
char cSkillLevel; // ½ºÅ³ ·¹º§
|
||
char cSkillUsingType; // ½ºÅ³ »ç¿ë ŸÀÔ
|
||
int nMaxCoolTime; // ÃÖ´ë ÄðŸÀÓ (º¯ÇÏÁö ¾Ê´Â °ª)
|
||
int nEnchantID; // ÀÎæƮ¾ÆÀ̵ð
|
||
int nAllowMapType; // »ç¿ë°¡´ÉÇÑ ¸Ê ŸÀÔ
|
||
char cSealCount; // ¹ÐºÀ Ƚ¼ö
|
||
int nSealID; // SealCountTableID
|
||
int nNeedBuyItemID; // »óÁ¡¿¡¼ ±¸ÀÔÇÒ ¶§ ÇÊ¿äÇÑ ¾ÆÀÌÅÛID
|
||
int nNeedBuyItemCount; // »óÁ¡¿¡¼ ±¸ÀÔÇÒ ¶§ ÇÊ¿äÇÑ ¾ÆÀÌÅÛ°³¼ö
|
||
int nNeedPvPRank; // ÀåÂøÇÒ ¶§ ÇÊ¿äÇÑ PvP ·©Å©
|
||
bool IsSealed; // ȹµæ ½Ã ¹ÐºÀ¿©ºÎ
|
||
int nCashTradeCount; // ij½Ã¾ÆÀÌÅÛ ±³È¯°³¼ö
|
||
bool IsEnableCostumeMix;
|
||
int nApplicableValue;
|
||
bool IsCollectingEvent; // ¾ÆÀÌÅÛ ¼öÁý API¸¦ È£Ãâ¿©ºÎ
|
||
int nExchangeCode; // ¾ÆÀÌÅÛ Ä«Å×°í¸® ID
|
||
int iNeedBuyLadderPoint;
|
||
int iUseLevelLimit;
|
||
int iNeedBuyUnionPoint;
|
||
int iNeedBuyGuildWarPoint;
|
||
bool bRebuyable;
|
||
int nPeriod;
|
||
#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
||
bool IsWStorage; // ¼¹ö â°í¿¡ ³ÖÀ» ¼ö ÀÖ´Â ¿¹¿Ü
|
||
#endif
|
||
int DragonJewelType;
|
||
|
||
void Reset()
|
||
{
|
||
memset( wszItemName, 0, sizeof(wszItemName) );
|
||
memset( nTypeParam, 0, sizeof(nTypeParam) );
|
||
nNeedJobClassList.clear();
|
||
std::vector<int>().swap(nNeedJobClassList);
|
||
|
||
nItemID = 0;
|
||
nType = 0;
|
||
cLevelLimit = 0;
|
||
cRank = 0;
|
||
cReversion = 0;
|
||
IsCash = 0;
|
||
IsDestruction = 0;
|
||
IsAuthentication= 0;
|
||
nAmount = 0;
|
||
nSellAmount = 0;
|
||
nOverlapCount = 0;
|
||
nSkillID = 0;
|
||
cSkillLevel = 0;
|
||
cSkillUsingType = 0;
|
||
nMaxCoolTime = 0;
|
||
nAllowMapType = 0;
|
||
cSealCount = 0;
|
||
nNeedBuyItemID = 0;
|
||
nNeedBuyItemCount = 0;
|
||
nNeedPvPRank = 0;
|
||
IsSealed = 0;
|
||
nCashTradeCount = 0;
|
||
IsEnableCostumeMix = 0;
|
||
nApplicableValue = 0;
|
||
IsCollectingEvent = 0;
|
||
nExchangeCode = 0;
|
||
iNeedBuyUnionPoint = 0;
|
||
iNeedBuyGuildWarPoint = 0;
|
||
bRebuyable = false;
|
||
nPeriod = 0;
|
||
DragonJewelType = 0;
|
||
}
|
||
};
|
||
|
||
struct TWeaponData
|
||
{
|
||
int nWeaponIndex;
|
||
char cEquipType; // ÀåÂøÅ¸ÀÔ
|
||
int nLength; // ¹«±â ±æÀÌ
|
||
int nDurability; // ³»±¸µµ
|
||
int nDurabilityRepairCoin; // ¼ö¸®ºñ
|
||
int nPermitJob[10];
|
||
bool bOneType;
|
||
};
|
||
|
||
struct TPartData
|
||
{
|
||
int nPartIndex;
|
||
int nParts; // ÆÄÃ÷
|
||
int nDurability; // ³»±¸µµ
|
||
int nDurabilityRepairCoin; // ¼ö¸®ºñ
|
||
int nPermitJob[10];
|
||
std::vector<int> nSubPartsList; // ¼ºêÆÄÃ÷ (Çѹú¿Ê)
|
||
|
||
TPartData()
|
||
{
|
||
nPartIndex = 0;
|
||
nParts = 0;
|
||
nDurability = 0;
|
||
nDurabilityRepairCoin = 0;
|
||
memset(nPermitJob, 0, sizeof(nPermitJob));
|
||
}
|
||
};
|
||
|
||
struct TVehiclePartsData
|
||
{
|
||
int nItemID;
|
||
int nVehicleClassID;
|
||
int nVehiclePartsType;
|
||
std::string strSkinName;
|
||
std::string strAniName;
|
||
std::string strActName;
|
||
int nSkinColor;
|
||
TVehiclePartsData()
|
||
{
|
||
nItemID = 0;
|
||
nVehicleClassID = 0;
|
||
nVehiclePartsType = 0;
|
||
nSkinColor = 0;
|
||
}
|
||
};
|
||
|
||
struct TVehicleData
|
||
{
|
||
int nItemID;
|
||
int nVehicleClassID;
|
||
int nVehicleActorID;
|
||
int nDefaultBody;
|
||
int nDefaultParts1;
|
||
int nDefaultParts2;
|
||
int nVehicleSummonTime;
|
||
int nVehicleDefaultSpeed;
|
||
int nPetLevelTypeID; // pet µî±Þ(?)°ª µî±ÞÀÌ ´Ù¸¥ ÆêÀ» ÂüÁ¶ÇϱâÀ§ÇÑ Å°°ª
|
||
int nPetSkillID1; //
|
||
int nPetSkillID2;
|
||
int nRange; // ½ºÄµ ¹üÀ§°ª. À̸¦Å׸é Áݱ⠰°Àº°Å
|
||
int nFoodID;
|
||
};
|
||
|
||
const BYTE PetStateMax = 10;
|
||
struct TPetLevelDetail
|
||
{
|
||
int nTableIndex;
|
||
int nPetLevel;
|
||
int nPetExp;
|
||
int nState[PetStateMax];
|
||
char *szStateMin[PetStateMax];
|
||
char *szStateMax[PetStateMax];
|
||
int nVipExp;
|
||
};
|
||
|
||
struct TPetLevelData
|
||
{
|
||
int nPetLevelType;
|
||
std::vector<TPetLevelDetail> VecPetLevel;
|
||
};
|
||
|
||
struct TPetFoodData
|
||
{
|
||
int nItemID;
|
||
int nTickTime; // ¼Ò¸ð ½Ã°£(second)
|
||
int nFullTic; // ƽ´ç ¼Ò¸ð·®
|
||
BYTE cFullTimeLogOut; // ·Î±×¾Æ¿ô½Ã ±âÁ¸ ¸¸º¹µµ ³ª´©±â°ª
|
||
int nFullMaxCount; // ¸¸º¹µµ ÃÖ´ë max¼öÄ¡
|
||
int nUseExp[Pet::MAX_SATIETY_SELECTION];
|
||
int nUseState[Pet::MAX_SATIETY_SELECTION];
|
||
};
|
||
|
||
struct TPotentialJewelData
|
||
{
|
||
int nItemID;
|
||
int nApplyApplicableValue;
|
||
int nPotentialNo;
|
||
bool bErasable;
|
||
bool bCanApplySealedItem;
|
||
|
||
#if defined(PRE_ADD_REMOVE_PREFIX)
|
||
bool bSuffix;
|
||
#endif // PRE_ADD_REMOVE_PREFIX
|
||
#if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
|
||
int nRollbackAmount; // ÀáÀç·Â ºÎ¿© ·Ñ¹é ¼ö¼ö·á
|
||
#endif // #if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
|
||
};
|
||
|
||
struct TEnchantJewelData
|
||
{
|
||
int nItemID;
|
||
int nApplyApplicableValue;
|
||
int nRequireMaxItemLevel;
|
||
int nRequireEnchantLevel;
|
||
int nEnchantLevel;
|
||
bool bCanApplySealedItem;
|
||
};
|
||
|
||
struct TItemDropData
|
||
{
|
||
int nItemDropID;
|
||
bool bIsGroup[20];
|
||
int nIndex[20];
|
||
int nProb[20];
|
||
int nInfo[20];
|
||
};
|
||
|
||
struct TGlobalWeightData
|
||
{
|
||
int nID;
|
||
float fValue;
|
||
};
|
||
|
||
struct TGlobalWeightIntData
|
||
{
|
||
int nID;
|
||
int nValue;
|
||
};
|
||
|
||
struct TLevelData
|
||
{
|
||
int nIndex;
|
||
short wStrength; // Èû
|
||
short wAgility; // ¹Îø
|
||
short wIntelligence; // Áö´É
|
||
short wStamina; // °Ç°
|
||
int nExperience; // °æÇèÄ¡
|
||
int nFatigue; // ÇǷεµ
|
||
};
|
||
|
||
struct TStat
|
||
{
|
||
USHORT wStr;
|
||
USHORT wDex;
|
||
USHORT wInt;
|
||
USHORT wHealth;
|
||
USHORT wLuck;
|
||
};
|
||
|
||
struct TSkillLevelData
|
||
{
|
||
char cSkillLevel; // ½ºÅ³ ·¹º§
|
||
char cLevelLimit; // Á¦ÇÑ ·¹º§
|
||
//int nNeedJobClass; // Á÷¾÷Á¦ÇÑ -> ½ºÅ³ Å×À̺í·Î ¿Å°ÜÁ³À½.
|
||
int nDelayTime; // ½ºÅ³µô·¹ÀÌ(ms)
|
||
int nAddRange; // Ãß°¡ »ç°Å¸®(cm)
|
||
int nNeedItemID; // ¼Ò¸ð¾ÆÀÌÅÛ
|
||
int nNeedItemDecreaseCount; // ¼Ò¸ð ¾ÆÀÌÅÛ °³¼ö
|
||
int nDecreaseHP; // ¼Ò¸ðHP
|
||
int nDecreaseSP; // ¼Ò¸ðSP
|
||
int nNeedSkillPoint;
|
||
int nEffectClassValue1Duration;
|
||
float nMagicDamage; //rlkt_damage
|
||
float nPhyDamage; //rlkt_damage
|
||
};
|
||
|
||
struct TSkillData
|
||
{
|
||
int nSkillID; // ½ºÅ³id
|
||
char cNeedWeaponType[ 2 ]; // Çʿ乫±â
|
||
int nMaxLevel; // ÃÖ´ë·¹º§
|
||
char cSkillType; // ½ºÅ³Å¸ÀÔ
|
||
char cDurationType; // Áö¼ÓŸÀÔ
|
||
char cTargetType; // Ÿ°ÙŸÀÔ
|
||
char cDissolvable; // ÇØÁ¦ °¡´É ¿©ºÎ
|
||
int nNeedJobID; // Á÷¾÷ Á¦ÇÑ
|
||
bool bDefaultLocked; // µðÆúÆ®·Î ¶ôÀÌ µÈ °ÇÁö ¿©ºÎ
|
||
int nUnlockSkillBookItemID; // ¾ð¶ôÇÏ´Â ½ºÅ³ºÏÀÇ ¾ÆÀÌÅÛ ID
|
||
int nUnlockPrice; // µ·À¸·Î ¾ð¶ôÇÒ ¶§ ºñ¿ë.
|
||
int nExclusiveID; // ÀÌ ¾ÆÀ̵𰡠°°Àº °ªÀÎ ½ºÅ³Àº °°ÀÌ ¹è¿ï ¼ö ¾ø´Ù.
|
||
int nGlobalCoolTime; // ±Û·Î¹ú ½ºÅ³ ÄðŸÀÓ (#36858)
|
||
int nGlobalSkillGroup; // ±Û·Î¹ú ½ºÅ³ ±×·ì (#36858)
|
||
std::vector<TSkillLevelData> vLevelDataList;
|
||
|
||
TSkillData()
|
||
{
|
||
nSkillID =0;
|
||
memset(cNeedWeaponType, 0, sizeof(cNeedWeaponType));
|
||
nMaxLevel = 0;
|
||
cSkillType = 0;
|
||
cDurationType = 0;
|
||
cTargetType = 0;
|
||
cDissolvable = 0;
|
||
nNeedJobID = 0;
|
||
bDefaultLocked = false;
|
||
nUnlockSkillBookItemID = 0;
|
||
nUnlockPrice = 0;
|
||
nExclusiveID = 0;
|
||
nGlobalCoolTime = 0;
|
||
nGlobalSkillGroup = 0;
|
||
}
|
||
};
|
||
|
||
struct TSkillTreeData
|
||
{
|
||
int nSkillID;
|
||
int nTreeSlotIndex;
|
||
int nParentSkillID[ 3 ];
|
||
int nNeedParentSkillLevel[ 3 ];
|
||
#if defined(PRE_ADD_SKILL_LEVELUP_LIMIT_BY_SP)
|
||
int nNeedBasicSP;
|
||
int nNeedFirstSP;
|
||
int nNeedSecondSP;
|
||
#endif // #if defined(PRE_ADD_SKILL_LEVELUP_LIMIT_BY_SP)
|
||
#if defined( PRE_ADD_ONLY_SKILLBOOK )
|
||
bool bNeedSkillBook;
|
||
#endif // #if defined( PRE_ADD_ONLY_SKILLBOOK )
|
||
};
|
||
|
||
// npc ´ëÈ °ü·Ã ±¸Á¶Ã¼
|
||
struct TALK_QUESTION
|
||
{
|
||
std::wstring szQuestion;
|
||
};
|
||
|
||
struct TALK_ANSWER
|
||
{
|
||
std::wstring szLinkTarget;
|
||
std::wstring szLinkIndex;
|
||
std::wstring szAnswer;
|
||
bool bOtherTargetLink; // ´Ù¸¥ ÅäÅ©ÆÄÀÏ·Î ¸µÅ© ÇÏ´Â °æ¿ì true
|
||
};
|
||
|
||
struct TALK_PARAGRAPH
|
||
{
|
||
std::wstring szIndex;
|
||
TALK_QUESTION Question;
|
||
std::vector<TALK_ANSWER> Answers;
|
||
};
|
||
|
||
// key - ¹®´Ü½ºÆ®¸µÀ妽º, second - ¹®´Ü
|
||
typedef std::map<std::wstring, TALK_PARAGRAPH> TALK_PARAGRAPH_MAP;
|
||
typedef TALK_PARAGRAPH_MAP::iterator TALK_PARAGRAPH_MAP_IT;
|
||
|
||
// key - ´ë»çxml ÆÄÀÏ À̸§, second - ´ë»çÀüü
|
||
typedef std::map<std::wstring, TALK_PARAGRAPH_MAP> TALK_MAP;
|
||
typedef TALK_MAP::iterator TALK_MAP_IT;
|
||
|
||
#include <set>
|
||
|
||
// key - ¹®´ÜÀÀ´ä½ºÆ®¸µÀ妽º (´ÜÁö Ŭ¶óÀÌ¾ðÆ® ´ë»ç¿äû ¹«°á¼º üũ ¿À·ù¸Þ½ÃÁö¸¦ ¸·´Â ¿ëµµ)
|
||
typedef std::set<std::wstring> TALK_ANSWER_SET;
|
||
typedef TALK_ANSWER_SET::iterator TALK_ANSWER_SET_IT;
|
||
|
||
// key - ´ë»çxml ÆÄÀÏ À̸§, second - ¹®´ÜÀÀ´ä½ºÆ®¸µÁýÇÕ (´ÜÁö Ŭ¶óÀÌ¾ðÆ® ´ë»ç¿äû ¹«°á¼º üũ ¿À·ù¸Þ½ÃÁö¸¦ ¸·´Â ¿ëµµ)
|
||
typedef std::map<std::wstring, TALK_ANSWER_SET> TALK_ANSWER_MAP;
|
||
typedef TALK_ANSWER_MAP::iterator TALK_ANSWER_MAP_IT;
|
||
|
||
// Äù½ºÆ® º¸»ó ¾ÆÀÌÅÛ Å×À̺í Á¤º¸
|
||
// µ·°ú ¾ÆÀÌÅÛ 6Á¾·ù ±îÁö ¼¼ÆÃÇÒ ¼ö ÀÖ´Ù. nItemID °ú nItemCount´Â ¼¼Æ®ÀÌ´Ù.
|
||
|
||
struct TQuestRewardBase
|
||
{
|
||
struct _ITEMSET
|
||
{
|
||
int nItemID;
|
||
int nItemCount;
|
||
int nItemOptionTableID;
|
||
};
|
||
};
|
||
|
||
struct TQuestReward : public TQuestRewardBase
|
||
{
|
||
UINT nIndex; // º¸»óÅ×À̺í À妽º
|
||
UINT nStringIndex; // º¸»óÅ×ÀÌºí ½ºÆ®¸µ
|
||
char cType; // º¸»óŸÀÔ 1À̸é Àüüº¸»ó / 2¸é ¼±Åú¸»ó
|
||
char cSelectMax; // ¼±Åú¸»óÀϰæ¿ì ¸î°³±îÁö ¼±ÅÃÇÒ°ÍÀÎÁö.
|
||
UINT nCoin; // º¸»ó±Ý¾×
|
||
int nExp; // º¸»ó °æÇèÄ¡
|
||
int nQuestID; // Äù½ºÆ® ID
|
||
int nQuestStep; // Äù½ºÆ® ¿Ï·á ½Ã ½ºÅÜ
|
||
BYTE nClass; // º¸»ó Ŭ·¡½º
|
||
_ITEMSET ItemArray[QUESTREWARD_INVENTORYITEMMAX];
|
||
_ITEMSET LevelCapItemArray[MAX_QUEST_LEVEL_CAP_REWARD];
|
||
int nMailID;
|
||
int nFatigue;
|
||
};
|
||
|
||
struct TQuestLevelCapReward : public TQuestRewardBase
|
||
{
|
||
UINT uIndex;
|
||
char cType;
|
||
char cClassID;
|
||
_ITEMSET Items[MAX_QUEST_LEVEL_CAP_REWARD];
|
||
};
|
||
|
||
struct TCompleteEventQuest
|
||
{
|
||
short wCompleteCount;
|
||
int nScheduleID;
|
||
};
|
||
|
||
// Shop
|
||
struct TShopItem
|
||
{
|
||
int nItemID; // »óÁ¡ ¾ÆÀÌÅÛ ¾ÆÀ̵ð
|
||
int nCount; // »óÁ¡ ¾ÆÀÌÅÛ ¼ö·®
|
||
int nMaxCount; // ¾ÆÀÌÅÛ ÃÖ´ë¼ö·®
|
||
int nPrice; // ¾ÆÀÌÅÛ °¡°Ý
|
||
int buyLimitCount;
|
||
#if defined (PRE_ADD_COMBINEDSHOP_PERIOD)
|
||
int nPeriod;
|
||
#endif
|
||
#if defined( PRE_ADD_LIMITED_SHOP )
|
||
int nShopLimitReset;
|
||
#endif
|
||
};
|
||
|
||
struct TShopTabData
|
||
{
|
||
int nTabID;
|
||
std::vector<TShopItem> vShopItem; // SHOPTABMAX
|
||
TShopTabData()
|
||
{
|
||
Clear();
|
||
}
|
||
void Clear()
|
||
{
|
||
nTabID = 0;
|
||
vShopItem.clear();
|
||
}
|
||
};
|
||
|
||
struct TShopData
|
||
{
|
||
int nShopID; // ¼¥ ¾ÆÀ̵ð (npc°¡ °¡Áö°í ÀÖ´Â ¾ÆÀ̵ð¿Í ºñ±³Çؼ ¿¬°á)
|
||
std::vector<TShopTabData> vShopTabData; // SHOPITEMMAX
|
||
TShopData()
|
||
{
|
||
nShopID = 0;
|
||
}
|
||
};
|
||
|
||
// Skill Shop
|
||
struct TSkillShopItem
|
||
{
|
||
int nSkillID; // ½ºÅ³¾ÆÀ̵ð
|
||
int nPrice; // ½ºÅ³ °¡°Ý
|
||
};
|
||
|
||
struct TSkillShopData
|
||
{
|
||
int nShopID; // ¼¥ ¾ÆÀ̵ð (npc°¡ °¡Áö°í ÀÖ´Â ¾ÆÀ̵ð¿Í ºñ±³Çؼ ¿¬°á)
|
||
TSkillShopItem SkillShopItem[SKILLSHOPITEMMAX]; // ÃÖ´ë 10°³¹Û¿¡ ¾ÈµÈ´Ù
|
||
};
|
||
|
||
// Enchant
|
||
const int ENCHANTITEMMAX = 5;
|
||
struct TEnchantLevelData
|
||
{
|
||
int nItemID;
|
||
char cLevel;
|
||
#ifdef PRE_FIX_MEMOPT_ENCHANT
|
||
int nNeedItemTableID;
|
||
int nStateTableID;
|
||
int nNeedCoin;
|
||
#else
|
||
char cEnchantProb;
|
||
char cBreakRatio;
|
||
char cMinDownLevel;
|
||
char cMaxDownLevel;
|
||
int nNeedItemID[ENCHANTITEMMAX];
|
||
int nNeedItemCount[ENCHANTITEMMAX];
|
||
int nNeedCoin;
|
||
int nFailResultItemID;
|
||
int nPotentialID;
|
||
char cPotentialProb;
|
||
int nProtectItemCount;
|
||
#if defined(PRE_ADD_ENCHANTSHIELD_CASHITEM)
|
||
int nShieldItemCount; // »óÀ§°Èº¸È£Á©¸®¿ë(´Ù¿î±×·¹À̵åx)
|
||
#endif
|
||
#endif // PRE_FIX_MEMOPT_ENCHANT
|
||
};
|
||
|
||
struct TEnchantData
|
||
{
|
||
int nEnchantID;
|
||
char cCount;
|
||
std::map<char, TEnchantLevelData*> pMapLevelData;
|
||
};
|
||
|
||
#ifdef PRE_FIX_MEMOPT_ENCHANT
|
||
struct TEnchantNeedItemData
|
||
{
|
||
char cEnchantProb;
|
||
char cBreakRatio;
|
||
char cMinDownLevel;
|
||
char cMaxDownLevel;
|
||
int nNeedItemID[ENCHANTITEMMAX];
|
||
int nNeedItemCount[ENCHANTITEMMAX];
|
||
float fUpStateRatio;
|
||
int nFailResultItemID;
|
||
int nProtectItemCount;
|
||
#if defined(PRE_ADD_ENCHANTSHIELD_CASHITEM)
|
||
int nShieldItemCount; // »óÀ§°Èº¸È£Á©¸®¿ë(´Ù¿î±×·¹À̵åx)
|
||
#endif
|
||
};
|
||
#endif // PRE_FIX_MEMOPT_ENCHANT
|
||
|
||
struct TPotentialDataItem
|
||
{
|
||
int nItemID;
|
||
int nPotentailOffset;
|
||
int nPotentialNo;
|
||
int nProb;
|
||
|
||
int nSkillID;
|
||
int nSkillLevel;
|
||
int nSkillUsingType;
|
||
};
|
||
|
||
struct TPotentialData
|
||
{
|
||
int nPotentialID;
|
||
int nTotalProb;
|
||
std::vector<TPotentialDataItem*> pVecItemData;
|
||
};
|
||
|
||
// Exchange
|
||
struct TExchangeData
|
||
{
|
||
int nInvenIndex; // Àκ¥ À妽º
|
||
short wCount; // ¸î°³ ³Ö¾ú´ÂÁö
|
||
INT64 biSerial;
|
||
};
|
||
|
||
#ifdef PRE_ADD_GACHA_JAPAN
|
||
// gachapon japan
|
||
struct TGachaponShopInfoByJob_JP
|
||
{
|
||
int nGachaponTableID; // °¡ÃÆù Å×À̺í ID
|
||
int nGachaponIndex; // °¡ÃÆù ¼¥ À妽º.
|
||
int nJobClassID; // ÀÌ °¡ÃÆù¿¡¼ µå¶øÇØÁÖ´Â ¾ÆÀÌÅÛµéÀÇ Á÷¾÷
|
||
int nPartsLinkDropTableID[ CASHEQUIPMAX ];
|
||
};
|
||
|
||
struct TGachaponData_JP
|
||
{
|
||
int nGachaponIndex; // °¡ÃÆù ¼¥ À妽º. npc Å×ÀÌºí¿¡ ¾²ÀÎ À妽º¸¦ À̰ɷΠãÀ½. Å×À̺í À妽º ¾Æ´Ô.
|
||
TGachaponShopInfoByJob_JP GachaponShopInfo[ CLASSKINDMAX ];
|
||
};
|
||
#endif // PRE_ADD_GACHA_JAPAN
|
||
|
||
struct TCostumeMix
|
||
{
|
||
int nMinScore;
|
||
int nDropID;
|
||
};
|
||
|
||
//community
|
||
//getsimple characterdata patialy enum type
|
||
enum eReqCharacterPartialy
|
||
{
|
||
_REQCHARACTERPARTIALY_FRIEND,
|
||
};
|
||
|
||
//Friend
|
||
struct TFriendGroup:public TBoostMemoryPool<TFriendGroup>
|
||
{
|
||
UINT nGroupDBID;
|
||
WCHAR wszGroupName[FRIEND_GROUP_NAMELENMAX];
|
||
};
|
||
|
||
struct TFriend:public TBoostMemoryPool<TFriend>
|
||
{
|
||
UINT nFriendAccountDBID;
|
||
INT64 biFriendCharacterDBID;
|
||
UINT nGroupDBID;
|
||
|
||
TCommunityLocation Location;
|
||
|
||
WCHAR wszCharacterName[NAMELENMAX];
|
||
WCHAR wszGroupName[FRIEND_GROUP_NAMELENMAX];
|
||
WCHAR wszFriendMemo[FRIEND_MEMO_LEN_MAX];
|
||
#ifdef PRE_ADD_DOORS
|
||
bool bMobileAuthentication;
|
||
#endif //#ifdef PRE_ADD_DOORS
|
||
};
|
||
|
||
//UserState
|
||
enum eCummunityState //ÃÊ´ë ¹Þ´Â´Ù ¾È¹Þ´Â´Ù ÂÊÁö ¹Þ°Ú´Ù ¾È¹Þ°Ú´Ù µîµî
|
||
{
|
||
_COMMUNITY_NONE = 0,
|
||
_COMMUNITY_MSG_PERMIT, //¸ðµç ¸Þ¼¼Áö ¹Þ¾ÆÈ¿~
|
||
_COMMUNITY_MSG_NOTPERMIT,//¸Þ¼¼Áö ¾È¹Þ¾ÆÈ¿~ ³ªÁ» ³»¹ö·Á µÎ»ï!
|
||
};
|
||
|
||
struct sWorldUserState
|
||
{
|
||
WCHAR wszCharacterName[NAMELENMAX];
|
||
INT64 biCharacterDBID; //ÀÏ´ÜÀº Ȥ½¬³ª ÇØ¼ ÈÊÈÊ
|
||
int nChannelID; //
|
||
int nMapIdx;
|
||
int nLocationState; //eLocationState
|
||
int nCummunityState; //eCummunityState
|
||
};
|
||
|
||
//ServiceManager NoticeType
|
||
enum eSMNoticeType
|
||
{
|
||
_NOTICETYPE_ALL = 0,
|
||
_NOTICETYPE_WORLD,
|
||
_NOTICETYPE_EACHSERVER,
|
||
_NOTICETYPE_CHANNEL,
|
||
_NOTICETYPE_ZONE,
|
||
};
|
||
|
||
//VoiceChannelReqType
|
||
enum eVoiceChannelReqType
|
||
{
|
||
_VOICECHANNEL_REQTYPE_PARTY,
|
||
_VOICECHANNEL_REQTYPE_PVP,
|
||
//¸Ó ÀÌ·±½ÄÀ¸·Î »ý±âÁö ¾ÊÀ»±î³ª..
|
||
//_VOICECHANNELTYPE_GUILD,
|
||
//_VOICECHANNELTYPE_PRIVATE,
|
||
};
|
||
|
||
//Invite PartyInfo
|
||
struct TInvitePartyInfo
|
||
{
|
||
TPARTYID PartyID;
|
||
int nMapIdx;
|
||
BYTE cLimitLevelMin;
|
||
#if defined( PRE_PARTY_DB )
|
||
#else
|
||
BYTE cLimitLevelMax;
|
||
#endif // #if defined( PRE_PARTY_DB )
|
||
BYTE cPartyMemberMax;
|
||
BYTE cPartyMemberCount;
|
||
BYTE cPartyAvrLevel;
|
||
WCHAR wszPartyName[PARTYNAMELENMAX];
|
||
};
|
||
|
||
// PvP
|
||
struct TPvPMapTable
|
||
{
|
||
UINT uiGameType; // PvPCommon::GameType
|
||
std::vector<UINT> vGameModeTableID; // PvPGameModeTableID
|
||
std::vector<UINT> vNumOfPlayerOption; // Àοø¼ö ¿É¼Ç
|
||
bool bIsBreakInto; // ³ÀÔ°¡´ÉFlag
|
||
UINT uiItemUsageType; // PvPCommon::ItemUsageType
|
||
bool bIsAllowItemDrop; // ¾ÆÀÌÅÛµå·Ó Flag
|
||
bool bIsGuildBattleGround; // ±æµåÀü¿¡¼ »ç¿ëÇÒ¼ö ÀÖ´ÂÁö Flag
|
||
bool bIsReleaseShow; // ¸±¸®Áî¹öÀü¿¡¼³ëÃâ
|
||
LadderSystem::MatchType::eCode MatchType;
|
||
|
||
// Function
|
||
bool CheckMaxUser( const BYTE cMaxUser ) const
|
||
{
|
||
for( UINT i=0 ; i<vNumOfPlayerOption.size() ; ++i )
|
||
{
|
||
if( vNumOfPlayerOption[i] == cMaxUser )
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
bool CheckGameModeTableID( const UINT uiTableID ) const
|
||
{
|
||
for( UINT i=0 ; i<vGameModeTableID.size() ; ++i )
|
||
{
|
||
if( vGameModeTableID[i] == uiTableID )
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
bool CheckBreakIntoOption( const BYTE cBreakIntoFlag ) const
|
||
{
|
||
if( cBreakIntoFlag )
|
||
{
|
||
if( !bIsBreakInto )
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
};
|
||
|
||
struct TPvPGameModeTable
|
||
{
|
||
int nItemID;
|
||
UINT uiGameMode; // PvPCommon::GameMode
|
||
std::vector<UINT> vWinCondition;
|
||
std::vector<UINT> vPlayTimeSec;
|
||
UINT uiRespawnTimeSec;
|
||
UINT uiRespawnNoDamageTimeSec;
|
||
UINT uiRespawnHPPercent;
|
||
UINT uiRespawnMPPercent;
|
||
UINT uiWinXPPerRound;
|
||
UINT uiLoseXPPerRound;
|
||
UINT uiItemDropTableID;
|
||
bool bIsLevelRegulation;
|
||
bool bIsReleaseShow; // ¸±¸®Áî¹öÀü¿¡¼³ëÃâ
|
||
UINT uiMedalExp;
|
||
UINT uiNumOfPlayersMin;
|
||
UINT uiNumOfPlayersMax;
|
||
std::vector<UINT> vVictoryExp;
|
||
std::vector<UINT> vVictoryBonusRate;
|
||
std::vector<UINT> vDefeatExp;
|
||
std::vector<UINT> vDefeatBonusRate;
|
||
LadderSystem::MatchType::eCode LadderMatchType;
|
||
int iRewardItemID;
|
||
int nFatigueConTime;
|
||
int nFatigueConValue;
|
||
int nFatigueConExp;
|
||
int nFatigueConMedal;
|
||
int iNeedInven;
|
||
int iSkillSetting;
|
||
bool bIsSelectableRegulation;
|
||
bool bIsDefaultRegulation;
|
||
int nBattleGroundTableID;
|
||
bool bAllowedUserCreateMode;
|
||
#if defined( PRE_ADD_RACING_MODE ) || defined( PRE_ADD_PVP_TOURNAMENT )
|
||
int nDefaultRewardItem;
|
||
int nDefaultRewardValue;
|
||
std::vector<int> vRankRewardItem;
|
||
std::vector<int> vRankRewardValue;
|
||
#endif // #if defined( PRE_ADD_RACING_MODE ) || defined( PRE_ADD_PVP_TOURNAMENT )
|
||
|
||
// Function
|
||
bool CheckWinCondition( const UINT uiWinCondition ) const
|
||
{
|
||
if( vWinCondition.empty() )
|
||
return true;
|
||
|
||
for( UINT i=0 ; i<vWinCondition.size() ; ++i )
|
||
{
|
||
if( vWinCondition[i] == uiWinCondition )
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
bool CheckPlayTimeSec( const UINT uiPlayTime ) const
|
||
{
|
||
if( vPlayTimeSec.empty() )
|
||
return true;
|
||
|
||
for( UINT i=0 ; i<vPlayTimeSec.size() ; ++i )
|
||
{
|
||
if( vPlayTimeSec[i] == uiPlayTime )
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
// ½ÇÆÐ½Ã -1 ¸®ÅÏ
|
||
int GetWinconditionIndex( const UINT uiWinCondition ) const
|
||
{
|
||
for( UINT i=0 ; i<vWinCondition.size() ; ++i )
|
||
{
|
||
if( vWinCondition[i] == uiWinCondition )
|
||
return i;
|
||
}
|
||
return -1;
|
||
}
|
||
|
||
bool CheckMaxUser( const UINT uiMaxUser ) const
|
||
{
|
||
return (uiMaxUser >= uiNumOfPlayersMin && uiMaxUser <= uiNumOfPlayersMax);
|
||
}
|
||
};
|
||
|
||
struct TPvPGameStartConditionTable
|
||
{
|
||
UINT uiMinTeamPlayerNum; // ÃÖ¼Ò ½ÃÀÛ ÆÀ Àοø
|
||
UINT uiMaxTeamPlayerDiff; // ÃÖ´ë ¾çÆÀ Àοø Çã¿ë ¼ö
|
||
|
||
short Check( const UINT uiATeam, const UINT uiBTeam, const bool bRandomTeam ) const
|
||
{
|
||
// ÃÖ¼Ò ½ÃÀÛ ÆÀ Àοø °Ë»ç
|
||
if( uiATeam < uiMinTeamPlayerNum || uiBTeam < uiMinTeamPlayerNum )
|
||
return ERROR_PVP_CANTSTART_LESS_MINTEAMPLAYER;
|
||
|
||
if (!bRandomTeam) // ·£´ýÆÀÀÌ ¾Æ´Ñ °æ¿ì ó¸®ÇÑ´Ù.
|
||
{
|
||
// ÃÖ´ë ¾çÆÀ Àοø Çã¿ë ¼ö °Ë»ç
|
||
UINT uiDiff = ::abs( static_cast<int>(uiATeam-uiBTeam) );
|
||
if( uiDiff > uiMaxTeamPlayerDiff )
|
||
return ERROR_PVP_CANTSTART_MORE_MAXDIFFTEAMPLAYER;
|
||
}
|
||
|
||
|
||
return ERROR_NONE;
|
||
}
|
||
};
|
||
|
||
struct TPvPRankTable
|
||
{
|
||
UINT uiXP;
|
||
#ifdef PRE_MOD_PVPRANK
|
||
BYTE cType; //PvPCommon::RankTable ÂüÁ¶
|
||
BYTE cMinRange; //rate or rank
|
||
BYTE cMaxRange; //rate or rank
|
||
|
||
TPvPRankTable()
|
||
{
|
||
uiXP = 0;
|
||
cType = PvPCommon::RankTable::InitValue;
|
||
cMinRange = 0;
|
||
cMaxRange = 0;
|
||
}
|
||
#endif //#ifdef PRE_MOD_PVPRANK
|
||
};
|
||
|
||
struct TAppellationData
|
||
{
|
||
int nAppellationID;
|
||
int nArrayIndex;
|
||
int nColor;
|
||
int nLevelLimit;
|
||
int nType;
|
||
#if defined( PRE_ADD_NEWCOMEBACK )
|
||
int nSkillItemID;
|
||
#endif
|
||
#if defined( PRE_MOD_APPELLATIONBOOK_RENEWAL)
|
||
std::vector<int> nUseCollectionBookIndex;
|
||
#endif // #if defined( PRE_MOD_APPELLATIONBOOK_RENEWAL)
|
||
};
|
||
|
||
// ¹Ì¼Ç ½Ã½ºÅÛ °ü·Ã
|
||
struct TEventCondition
|
||
{
|
||
char cEvent;
|
||
char cType[5];
|
||
int nParam[5];
|
||
char cOperator[5];
|
||
bool bCheckType;
|
||
};
|
||
|
||
struct TMissionData
|
||
{
|
||
bool bActivate;
|
||
int nType; // ¹Ì¼ÇŸÀÔ(eMissionType)
|
||
int nMailID;
|
||
int nRewardAppellation;
|
||
int nRewardPoint;
|
||
bool bIsAchieveNotice;
|
||
TEventCondition GainCondition;
|
||
TEventCondition AchieveCondition;
|
||
};
|
||
|
||
struct TDailyMissionData
|
||
{
|
||
int nMailID;
|
||
int nRewardAppellation;
|
||
int nRewardPoint;
|
||
TEventCondition AchieveCondition;
|
||
int nCounterParam;
|
||
char cCounterOperator;
|
||
int nItemID;
|
||
int nType;
|
||
int nTypeParam;
|
||
__time64_t tStartDate;
|
||
#if defined(PRE_ADD_WEEKLYEVENT_MISSION_ENDTIME)
|
||
__time64_t tEndDate;
|
||
#endif // #if defined(PRE_ADD_WEEKLYEVENT_MISSION_ENDTIME)
|
||
};
|
||
|
||
#if defined(PRE_ADD_REMOTE_QUEST)
|
||
struct TRemoteQuestData
|
||
{
|
||
bool bActivate;
|
||
int nIndex;
|
||
int nQuestID;
|
||
bool bPreQuestCheckType;
|
||
std::vector<int> nVecPreQuestCondition;
|
||
TEventCondition GainCondition;
|
||
};
|
||
#endif
|
||
|
||
#if defined(PRE_ADD_ACTIVEMISSION)
|
||
struct TActiveMissionData
|
||
{
|
||
int nIndex;
|
||
bool bActivate;
|
||
int nMailID;
|
||
TEventCondition AchieveCondition;
|
||
};
|
||
#endif
|
||
|
||
// Collection
|
||
const char CollectionAppellationMax = 10;
|
||
struct TCollectionBookData
|
||
{
|
||
int nID;
|
||
std::vector<int> nVecAppellationArrayIndex;
|
||
int nRewardAppellationArrayIndex;
|
||
#if defined(PRE_MOD_APPELLATIONBOOK_RENEWAL)
|
||
int nMailID[2]; // 0 - 50% ³Ñ°åÀ» ¶§ º¸³»ÁÙ ¸ÞÀÏ ID, 1- Īȣ Ä÷º¼Ç ¿Ï¼º½Ã º¸»ó MailID
|
||
#endif //#if defined(PRE_MOD_APPELLATIONBOOK_RENEWAL)
|
||
};
|
||
|
||
// TaxTable
|
||
struct TTaxData
|
||
{
|
||
char cTaxType; // ¼¼±ÝÁ¾·ù (TaxType_PostTax)
|
||
int nLevelStart; // ½ÃÀÛ ·¹º§
|
||
int nLevelEnd; // ³¡ ·¹º§
|
||
int nAmountStart; // ½ÃÀÛ±Ý¾× (°ñµå´ÜÀ§)
|
||
int nAmountEnd; // ³¡±Ý¾×
|
||
float fRate; // ¼¼À²
|
||
int nTaxAmount; // ¼¼¾×
|
||
};
|
||
|
||
// Seal
|
||
const BYTE SEALENCHANTMAX = 16; // ³ë°ÈºÎÅÍ 15°±îÁö.
|
||
struct TSealCountData
|
||
{
|
||
int nType1;
|
||
int nType2;
|
||
int nLevel[SEALENCHANTMAX];
|
||
char cSuccessRate[SEALENCHANTMAX];
|
||
};
|
||
|
||
// PCBang
|
||
const BYTE PCParamMax = 2;
|
||
struct TPCBangParam
|
||
{
|
||
int nParam[PCParamMax];
|
||
};
|
||
|
||
struct TPCBangData
|
||
{
|
||
char cType; // PCBang ÇýÅà Á¾·ù (ePCBangType)
|
||
std::vector<TPCBangParam> VecPCBangParam;
|
||
std::vector<TPCBangParam> VecPremiumPCBangParam;
|
||
std::vector<TPCBangParam> VecGoldPCBangParam;
|
||
std::vector<TPCBangParam> VecSilverPCBangParam;
|
||
std::vector<TPCBangParam> VecRedPCBangParam;
|
||
};
|
||
|
||
// CashShop
|
||
const BYTE COMMODITYITEMMAX = 5;
|
||
const BYTE COMMODITYLINKMAX = 5;
|
||
struct TCashCommodityData
|
||
{
|
||
int nSN;
|
||
#if defined(_JP)
|
||
std::string strJPSN;
|
||
#endif // #if defined(_JP)
|
||
BYTE cCategory;
|
||
int nSubCategory;
|
||
int nItemID[COMMODITYITEMMAX]; // ItemTable ¾ÆÀÌÅÛ ID
|
||
int nLinkSN[COMMODITYLINKMAX]; // ¿¬°è»óǰ
|
||
std::string strName;
|
||
short wPeriod; // ±â°£
|
||
int nPrice; // °¡°Ý
|
||
int nCount; // ±¸¸Å½Ã ÁÖ¾îÁö´Â °³¼ö
|
||
int nPriority; // ij½Ã¼¥¿¡ Ç¥½ÃµÇ´Â ¿ì¼±¼øÀ§
|
||
bool bOnSale; // ÆÇ¸Å»óÅÂ
|
||
bool bOnSaleReal; // ÁøÂ¥(?)ÆÇ¸Å»óÅÂ
|
||
char cState; // HOT, NEWµî »óÅ ǥ½Ã¿ë
|
||
bool bLimit; // ÇÑÁ¤ ÆÇ¸Å
|
||
bool bReserveGive; // Àû¸³±Ý Á¦°ø ¿©ºÎ
|
||
int nReserve; // ±¸¸Å½Ã ÁÖ¾îÁö´Â Àû¸³±Ý
|
||
int nValidity; // À¯È¿±â°£
|
||
bool bReserveAble; // Àû¸³±ÝÀ¸·Î »ì¼ö ÀÖ´ÂÁö ¿©ºÎ
|
||
bool bPresentAble; // ¼±¹° °¡´É ¿©ºÎ
|
||
char cItemSort; // ¾ÆÀÌÅÛÁ¾·ù
|
||
int nPriceFix; // Á¤°¡
|
||
bool bCartAble; // Àå¹Ù±¸´Ï¿¡ ´ãÀ» ¼ö ÀÖ´ÂÁö
|
||
bool bVIPSell; // VIP Àü¿ë ÆÇ¸Å ¿©ºÎ
|
||
int nVIPLevel; // VIP µî±Þ
|
||
bool bAutomaticPay; // ÀÚµ¿°áÁ¦ ¿©ºÎ
|
||
int nAutomaticPaySale; // ÀÚµ¿°áÁ¦ ÈÄ ÇÒÀÎÀû¿ë
|
||
int nVIPPoint; // ±¸¸Å½Ã Áö±ÞÇÏ´Â VIPPoint
|
||
int nOverlapBuy; // Áߺ¹±¸¸Å¹æÁö
|
||
#if defined(PRE_ADD_CASH_REFUND)
|
||
bool bNoRefund; // û¾à öȸ ºÒ°¡´É¿©ºÎ(true : ºÒ°¡´É)
|
||
#endif
|
||
#if defined(PRE_ADD_CASHSHOP_CREDIT)
|
||
bool bCreditAble; // ¹ÌÄîºô¸µ
|
||
int nCreditAbleLevel; // ¹ÌÄîºô¸µ Å©·¹µ÷·¹º§
|
||
#endif // #if defined(PRE_ADD_CASHSHOP_CREDIT)
|
||
#if defined(PRE_ADD_SALE_COUPON)
|
||
bool bUseCoupon;
|
||
#endif //#if defined(PRE_ADD_SALE_COUPON)
|
||
#if defined( PRE_ADD_NEW_MONEY_SEED )
|
||
bool bSeedAble;
|
||
int nSeed;
|
||
bool bSeedGive;
|
||
#endif
|
||
|
||
TCashCommodityData()
|
||
{
|
||
nSN=0; cCategory=0; nSubCategory =0;
|
||
memset(nItemID, 0, sizeof(nItemID));
|
||
memset(nLinkSN, 0, sizeof(nLinkSN));
|
||
wPeriod=0; nPrice=0; nCount=0; nPriority=0;
|
||
bOnSale=false; bOnSaleReal=false; cState=0;
|
||
bLimit=false; bReserveGive=false; nReserve=0;
|
||
nValidity=0; bReserveAble=false; bPresentAble=false;
|
||
cItemSort=0; nPriceFix=0; bCartAble=false;
|
||
bVIPSell=false; nVIPLevel=0; bAutomaticPay=false;
|
||
nAutomaticPaySale=0; nVIPPoint=0;
|
||
nOverlapBuy =0;
|
||
|
||
#if defined(PRE_ADD_CASH_REFUND)
|
||
bNoRefund = true; // ±âº» ºÒ°¡´É
|
||
#endif
|
||
#if defined(PRE_ADD_CASHSHOP_CREDIT)
|
||
bCreditAble = false;
|
||
nCreditAbleLevel = 0;
|
||
#endif // #if defined(PRE_ADD_CASHSHOP_CREDIT)
|
||
#if defined(PRE_ADD_SALE_COUPON)
|
||
bUseCoupon = false;
|
||
#endif // #if defined(PRE_ADD_SALE_COUPON)
|
||
#if defined( PRE_ADD_NEW_MONEY_SEED )
|
||
bSeedAble = false;
|
||
nSeed = 0;
|
||
bSeedGive = false;
|
||
#endif
|
||
}
|
||
};
|
||
|
||
struct TCashPackageData
|
||
{
|
||
int nSN; // ÆÐŰÁöÆÇ¸ÅSN
|
||
std::vector<int> nVecCommoditySN;
|
||
|
||
TCashPackageData()
|
||
{
|
||
nSN = 0;
|
||
nVecCommoditySN.clear();
|
||
}
|
||
};
|
||
|
||
struct TCashLimitData
|
||
{
|
||
int nSN; // ÇÑÁ¤ÆÇ¸ÅÇÒ »óǰ SN
|
||
time_t tStartDate; // _StartDate ½ÃÀÛÀÏ
|
||
time_t tEndDate; // _EndDate Á¾·áÀÏ
|
||
int nBuyAbleCount; // ij¸¯ÅÍ´ç ±¸¸Å°¡´ÉȽ¼ö
|
||
#if defined(PRE_ADD_LIMITED_CASHITEM)
|
||
int nLimitedSellCount; //°¹¼öÇÑÁ¤¾ÆÀÌÅÛ!
|
||
#endif //#if defined(PRE_ADD_LIMITED_CASHITEM)
|
||
};
|
||
|
||
struct TVIPData
|
||
{
|
||
int nVipID; // VIPTable¿¡¼ÀÇ ID
|
||
int nMonthItemSN; // ij½Ã ¾ÆÀÌÅÛ »óǰ ³Ñ¹ö (30ÀÏ °áÁ¦½Ã Çѹø ÁÖ±â)
|
||
int nMailID[4]; // 0:¼ºñ½º¸¸·á 7ÀÏÀü, 1:¼ºñ½º¸¸·á 1ÀÏÀü, 2:¼ºñ½º¸¸·á½Ã, 3:ÀÚµ¿°áÁ¦½Ã ij½Ã ºÎÁ·ÇÒ¶§
|
||
int nAutoPayItemSN; // ÀÚµ¿°áÁ¦ÇÒ¶§ °áÁ¦ÇÒ ¾ÆÀÌÅÛSN
|
||
};
|
||
|
||
// DL Table
|
||
struct TDLMapData
|
||
{
|
||
int nTotalRound;
|
||
int nFloor;
|
||
|
||
#if defined( PRE_ADD_CHALLENGE_DARKLAIR )
|
||
bool bChallengeDarkLair;
|
||
#endif // #if defined( PRE_ADD_CHALLENGE_DARKLAIR )
|
||
};
|
||
|
||
struct TDLClearDataItem
|
||
{
|
||
int nLevelMin;
|
||
int nLevelMax;
|
||
int nRoundMin;
|
||
int nRoundMax;
|
||
int nRewardExperience;
|
||
int nShowBoxCount;
|
||
int nSelectBoxCount;
|
||
char cTreasureBoxRatio[4];
|
||
int nRewardItemID[4];
|
||
int nReturnWorldSetID;
|
||
int nReturnWorldGateID;
|
||
int nRewardGP;
|
||
};
|
||
|
||
struct TDLClearData
|
||
{
|
||
std::vector<TDLClearDataItem*> pVecClearItem;
|
||
};
|
||
|
||
// Levelup Event
|
||
struct TLevelupEvent
|
||
{
|
||
enum eEventType
|
||
{
|
||
Levelup = 1, // ÀÏ¹Ý ·¹º§¾÷À̺¥Æ®
|
||
ShandaPromotion = 2, // ¼¢´Ù ÇÁ·Î¸ð¼ÇÀ̺¥Æ®
|
||
CombackUser = 3, // º¹±ÍÀ¯ÀúÀ̺¥Æ®
|
||
LevelupNew = 4, // ·¹º§¾÷À̺¥Æ® »õ°Å (Çѹø ¹ÞÀ¸¸é ´õÀÌ»ó ¸ø¹Þ´Â ¹öÁ¯)
|
||
ComeBackUserInven = 5, // ±ÍȯÀÚ¿¡°Ô ¹Ù·Î ³Ö¾îÁÖ´Â ¾ÆÀÌÅÛ Å¸ÀÔ
|
||
NewbieQuitReward = 6, //½Å±Ô À¯Àú Á¢¼Ó Á¾·á º¸»ó
|
||
NewbieReconnectReward = 7, //½Å±Ô À¯Àú ÀçÁ¢¼Ó º¸»ó
|
||
ComeBackUserQuitReward = 8, //±ÍȯÀÚ Á¢¼Ó Á¾·á º¸»ó
|
||
};
|
||
|
||
int nLevel; // Player ij¸¯ÅÍÀÇ ·¹º§
|
||
char cClassID; // Ŭ·¡½º
|
||
BYTE cJob;
|
||
int nMailID;
|
||
int nCashMailID;
|
||
int nEventType; // eEventType
|
||
|
||
TLevelupEvent()
|
||
{
|
||
nLevel = 0;
|
||
cClassID = 0;
|
||
nMailID = 0;
|
||
nCashMailID = 0;
|
||
cJob = 0;
|
||
}
|
||
};
|
||
|
||
struct TItemOptionTableData
|
||
{
|
||
int iEnchant;
|
||
int iOption;
|
||
int iPotential;
|
||
TItemOptionTableData()
|
||
{
|
||
iEnchant = 0;
|
||
iOption = 0;
|
||
iPotential = 0;
|
||
}
|
||
};
|
||
|
||
#if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
|
||
|
||
struct TReputeTableData
|
||
{
|
||
#if defined( PRE_ADD_REPUTATION_EXPOSURE )
|
||
int iMissionID;
|
||
int iNpcPresentRepute1; // ¼±¹°1 Áö±Þ È£°¨µµ ´Þ¼º Á¶°Ç
|
||
int iNpcPresentRepute2; // ¼±¹°2 Áö±Þ È£°¨µµ ´Þ¼º Á¶°Ç
|
||
int iNpcPresentID1; // NpcPresentRepute1 ´Þ¼º ½Ã NPC°¡ ÁÖ´Â ¼±¹° 1 ItemID
|
||
int iNpcPresentID2; // NpcPresentRepute1 ´Þ¼º ½Ã NPC°¡ ÁÖ´Â ¼±¹° 2 ItemID
|
||
#else
|
||
std::vector<int> iQuestIDs;
|
||
#endif // #if defined( PRE_ADD_REPUTATION_EXPOSURE )
|
||
|
||
int iMaxFavor; // È£ÀÇ ÃÖ´ëÄ¡
|
||
int iTakeFavorPerDay; // 1ÀÏ´ç ±ðÀ̴ ȣÀÇ ¼öÄ¡
|
||
int iMaxMalice; // ¾ÇÀÇ ÃÖ´ëÄ¡
|
||
int iAddMalicePerDay; // 1ÀÏ´ç ¿Ã¶ó°¡´Â ¾ÇÀÇ ¼öÄ¡
|
||
int iPresentIDArr[6]; // ¹ÞÀ» ¼ö ÀÖ´Â ¼±¹° ¸®½ºÆ®
|
||
std::vector<int> vFavorNpcID; // È£ÀÇ NPC ¸®½ºÆ®
|
||
std::vector<int> vMaliceNpcID; // ¾ÇÀÇ NPC ¸®½ºÆ®
|
||
int iFavorGroupBomb;
|
||
int iMaliceGroupBomb;
|
||
int iMailID[NpcReputation::Common::MaxMailCount];
|
||
int iMailRand[NpcReputation::Common::MaxMailCount];
|
||
int iPlusItemID;
|
||
int iPlusProb;
|
||
int iUnionID;
|
||
int iPresentPointArr[6]; // ¼±¹°¸¶´Ù ¹ÞÀ»¼ö ÀÖ´Â ¿¬ÇÕÆ÷ÀÎÆ®
|
||
|
||
TReputeTableData()
|
||
{
|
||
#if defined( PRE_ADD_REPUTATION_EXPOSURE )
|
||
iMissionID = 0;
|
||
iNpcPresentRepute1 = 0;
|
||
iNpcPresentRepute2 = 0;
|
||
iNpcPresentID1 = 0;
|
||
iNpcPresentID2 = 0;
|
||
#else
|
||
#endif // #if defined( PRE_ADD_REPUTATION_EXPOSURE )
|
||
iMaxFavor = 0;
|
||
iTakeFavorPerDay = 0;
|
||
iMaxMalice = 0;
|
||
iAddMalicePerDay = 0;
|
||
iFavorGroupBomb = 0;
|
||
iMaliceGroupBomb = 0;
|
||
for( UINT i=0 ; i<_countof(iPresentIDArr) ; ++i )
|
||
iPresentIDArr[i] = 0;
|
||
for( UINT i=0 ; i<NpcReputation::Common::MaxMailCount ; ++i )
|
||
{
|
||
iMailID[i] = 0;
|
||
iMailRand[i] = 0;
|
||
}
|
||
vFavorNpcID.clear();
|
||
vMaliceNpcID.clear();
|
||
|
||
iPlusItemID = 0;
|
||
iPlusProb = 0;
|
||
iUnionID = 0;
|
||
for( UINT i=0 ; i<_countof(iPresentPointArr) ; ++i )
|
||
iPresentPointArr[i] = 0;
|
||
}
|
||
|
||
int GetUnionPointByPresent (const int iPresentID)
|
||
{
|
||
for( UINT i=0 ; i<_countof(iPresentIDArr) ; ++i )
|
||
{
|
||
if( iPresentIDArr[i] == iPresentID )
|
||
{
|
||
// Ȥ½Ã ¸ô¶ó¼ »çÀÌÁî °Ë»ç Çѹø´õ!
|
||
if (0 <= i && i < _countof(iPresentPointArr))
|
||
return iPresentPointArr[i];
|
||
}
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
bool CheckPresentID( const int iPresentID )
|
||
{
|
||
for( UINT i=0 ; i<_countof(iPresentIDArr) ; ++i )
|
||
{
|
||
if( iPresentIDArr[i] == iPresentID )
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
bool bIsFavorNpc( const int iNpcID )
|
||
{
|
||
for( UINT i=0 ; i<vFavorNpcID.size() ; ++i )
|
||
{
|
||
if( vFavorNpcID[i] == iNpcID )
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
bool bIsMaliceNpc( const int iNpcID )
|
||
{
|
||
for( UINT i=0 ; i<vMaliceNpcID.size() ; ++i )
|
||
{
|
||
if( vMaliceNpcID[i] == iNpcID )
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
};
|
||
|
||
struct TPresentTableData
|
||
{
|
||
enum eType
|
||
{
|
||
Normal = 0,
|
||
Cash = 1,
|
||
Coin = 2,
|
||
Max,
|
||
};
|
||
|
||
eType Type;
|
||
int iTypeID;
|
||
int iCount;
|
||
int iAddFavorPoint;
|
||
int iTakeMalicePoint;
|
||
int iFavorGroupPoint;
|
||
int iMaliceGroupPoint;
|
||
|
||
TPresentTableData()
|
||
{
|
||
Type = Max;
|
||
iTypeID = 0;
|
||
iCount = 0;
|
||
iAddFavorPoint = 0;
|
||
iTakeMalicePoint = 0;
|
||
iFavorGroupPoint = 0;
|
||
iMaliceGroupPoint = 0;
|
||
}
|
||
};
|
||
|
||
struct TMailTableData
|
||
{
|
||
DBDNWorldDef::MailTypeCode::eCode Code;
|
||
bool IsCash;
|
||
int nSenderUIStringIndex;
|
||
int nTitleUIStringIndex;
|
||
int nTextUIStringIndex;
|
||
int ItemIDArr[MAILATTACHITEMMAX];
|
||
int ItemCountArr[MAILATTACHITEMMAX];
|
||
int ItemSNArr[MAILATTACHITEMMAX];
|
||
int nPresentMoney;
|
||
#if defined(PRE_SPECIALBOX)
|
||
int nKeepBoxReceive;
|
||
int nKeepBoxType;
|
||
int nKeepBoxLevelMin;
|
||
int nKeepBoxLevelMax;
|
||
int nKeepBoxClass;
|
||
#endif // #if defined(PRE_SPECIALBOX)
|
||
|
||
TMailTableData()
|
||
{
|
||
Code = static_cast<DBDNWorldDef::MailTypeCode::eCode>(0);
|
||
IsCash = false;
|
||
nSenderUIStringIndex = 0;
|
||
nTitleUIStringIndex = 0;
|
||
nTextUIStringIndex = 0;
|
||
nPresentMoney = 0;
|
||
memset( ItemIDArr, 0, sizeof(ItemIDArr) );
|
||
memset( ItemCountArr, 0, sizeof(ItemCountArr) );
|
||
memset( ItemSNArr, 0, sizeof(ItemSNArr) );
|
||
#if defined(PRE_SPECIALBOX)
|
||
nKeepBoxReceive = 0;
|
||
nKeepBoxType = 0;
|
||
nKeepBoxLevelMin = 0;
|
||
nKeepBoxLevelMax = 0;
|
||
nKeepBoxClass = 0;
|
||
#endif // #if defined(PRE_SPECIALBOX)
|
||
}
|
||
};
|
||
|
||
struct TStoreBenefitData
|
||
{
|
||
// ¾Æ·¡ÀÇ ¼ø¼´Â StoreBenefit Å×À̺íÀÇ Á¤ÀÇ¿Í ¸ÂÃá °ÍÀ̱⠶§¹®¿¡ Àý´ë·Î ¼ø¼°¡ ¹Ù²î¸é ¾ÈµÊ.
|
||
enum eType
|
||
{
|
||
EnchantFeeDiscount = NpcReputation::StoreBenefit::EnchantFeeDiscount,
|
||
RepairFeeDiscount = NpcReputation::StoreBenefit::RepairFeeDiscount,
|
||
SellingPriceUp = NpcReputation::StoreBenefit::SellingPriceUp,
|
||
BuyingPriceDiscount = NpcReputation::StoreBenefit::BuyingPriceDiscount,
|
||
FishProficiencyUp = NpcReputation::StoreBenefit::FishProficiencyUp,
|
||
CookProficiencyUp = NpcReputation::StoreBenefit::CookProficiencyUp,
|
||
CultivateProficiencyUp = NpcReputation::StoreBenefit::CultivateProficiencyUp,
|
||
Max = NpcReputation::StoreBenefit::Max,
|
||
};
|
||
|
||
int iNpcID;
|
||
eType Type;
|
||
int aiFavorThreshold[ STORE_BENEFIT_MAX ];
|
||
int aiAdjustPercent[ STORE_BENEFIT_MAX ];
|
||
|
||
TStoreBenefitData( void ) : iNpcID( 0 ), Type( Max )
|
||
{
|
||
memset( aiFavorThreshold, 0, sizeof(aiFavorThreshold) );
|
||
memset( aiAdjustPercent, 0, sizeof(aiAdjustPercent) );
|
||
}
|
||
};
|
||
|
||
#endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
|
||
|
||
struct TShopPurchaseType
|
||
{
|
||
Shop::PurchaseType::eCode PurchaseType;
|
||
int iPurchaseItemID;
|
||
int iPurchaseItemValue;
|
||
};
|
||
|
||
struct TCombinedShopTableData
|
||
{
|
||
TShopItem ShopItem;
|
||
TShopPurchaseType PurchaseType[Shop::Max::PurchaseType];
|
||
Shop::PurchaseLimitType::eCode PurchaseLimitType;
|
||
int iPurchaseLimitValue;
|
||
#if defined(PRE_SAMPLEITEMNPC)
|
||
int nSampleVersion; // »ùÇþÆÀÌÅÛ È¸Â÷
|
||
#endif //#if defined(PRE_SAMPLEITEMNPC)
|
||
};
|
||
|
||
struct TMasterSystemDecreaseTableData
|
||
{
|
||
int iPupilLevel;
|
||
int iPupilFavor;
|
||
int iFavorUpDecreaseRespectPoint;
|
||
int iFavorDownDecreaseRespectPoint;
|
||
int iMasterSuccessMailID;
|
||
int iMasterFailureMailID;
|
||
int iPupilSuccessMailID;
|
||
int iPupilFailureMailID;
|
||
|
||
int GetDecreaseRespectPoint( int iFavorPoint )
|
||
{
|
||
if( iFavorPoint >= iPupilFavor)
|
||
return iFavorUpDecreaseRespectPoint;
|
||
return iFavorDownDecreaseRespectPoint;
|
||
}
|
||
};
|
||
|
||
struct TMasterSystemGainTableData
|
||
{
|
||
int iFavorPoint;
|
||
int iRepectPoint;
|
||
};
|
||
|
||
#if defined( PRE_ADD_SECONDARY_SKILL )
|
||
|
||
struct TSecondarySkillTableData
|
||
{
|
||
int iSkillID;
|
||
SecondarySkill::Type::eType Type;
|
||
SecondarySkill::SubType::eType SubType;
|
||
SecondarySkill::ExecuteType::eType ExecuteType;
|
||
};
|
||
|
||
struct TSecondarySkillLevelTableData
|
||
{
|
||
int iSkillID;
|
||
SecondarySkill::Grade::eType Grade;
|
||
int iLevel;
|
||
int iExp;
|
||
int iNextID;
|
||
int iParam;
|
||
};
|
||
|
||
struct TSecondarySkillRecipeTableData
|
||
{
|
||
public:
|
||
int iManufactureItemID[SecondarySkill::ManufactureSkill::MaxManufactureItemTypeCount];
|
||
int iMinExp[SecondarySkill::ManufactureSkill::MaxManufactureItemTypeCount];
|
||
int iMaxExp[SecondarySkill::ManufactureSkill::MaxManufactureItemTypeCount];
|
||
SecondarySkill::Grade::eType RequireGrade;
|
||
int iRequireSkillLevel;
|
||
int iToolItemID[SecondarySkill::ManufactureSkill::MaxToolItemCount];
|
||
int iMasterExp;
|
||
int iStartExp;
|
||
int iMaxTime; // ´ÜÀ§(ms)
|
||
int iSuccessProbability;
|
||
int iSuccessUpExp;
|
||
int iRecipeUpExp;
|
||
int iMaterialItemID[SecondarySkill::ManufactureSkill::MaxMaterialItemCount];
|
||
int iMaterialItemCount[SecondarySkill::ManufactureSkill::MaxMaterialItemCount];
|
||
int iSuccessCount;
|
||
|
||
// °æÇèÄ¡·Î »ý»êµÉ ItemID ¾ò±â
|
||
int GetManufactureItemID( int iExp, int iMaxValue )
|
||
{
|
||
int iExpRate = static_cast<int>(iExp/static_cast<float>(iMaxValue)*100);
|
||
|
||
for( int i=0 ; i<SecondarySkill::ManufactureSkill::MaxManufactureItemTypeCount ; ++i )
|
||
{
|
||
if( iExpRate >= iMinExp[i] && iExpRate <= iMaxExp[i] )
|
||
return iManufactureItemID[i];
|
||
}
|
||
|
||
_ASSERT_EXPR(0, L"[GetManufactureItemID] can not find ItemID");
|
||
return -1;
|
||
}
|
||
};
|
||
|
||
#endif // #if defined( PRE_ADD_SECONDARY_SKILL )
|
||
|
||
|
||
#ifdef PRE_ADD_CASHFISHINGITEM
|
||
struct TFishingMeritInfo
|
||
{
|
||
int nRodItemID;
|
||
|
||
bool bUseCashBait;
|
||
INT64 biBaitSerial;
|
||
int nBaitIndex;
|
||
|
||
int nMeritReduceFishingTime;
|
||
int nMeritSuccessRate;
|
||
};
|
||
#endif //#ifdef PRE_ADD_CASHFISHINGITEM
|
||
|
||
struct TFarmCultivateTableData
|
||
{
|
||
int iCultivateMaxTimeSec;
|
||
int iMaxWater;
|
||
int iConsumeWater;
|
||
int iHarvestNeedItemID;
|
||
int iHarvestDropRate[Farm::Max::HARVESTITEM_COUNT];
|
||
int iHarvestDropTableID;
|
||
int iSkillPointPlant; // ¾¾¾Ñ½É±â ½Ã °æÇèÄ¡
|
||
int iSkillPointWater; // ¹°Áֱ⠽à °æÇèÄ¡
|
||
int iCatalystCount; // ÇÊ¿ä ¼ºÀåÃËÁøÁ¦ °³¼ö
|
||
SecondarySkill::Grade::eType RequiredSkillGrade;
|
||
int iRequiredSkillLevel;
|
||
int iOverlap;
|
||
};
|
||
|
||
struct TFishingTableData
|
||
{
|
||
int nMaxTime;
|
||
#ifdef PRE_ADD_CASHFISHINGITEM
|
||
int nAutoMaxTime;
|
||
#endif //#ifdef PRE_ADD_CASHFISHINGITEM
|
||
int nPullingTargetMin;
|
||
int nPullingTargetMax;
|
||
int nPullingTargetSpeed;
|
||
int nPullingTargetUpTime;
|
||
int nSkillPointSuccess;
|
||
int nSkillPointFailure;
|
||
int nSuccessProbability;
|
||
int nSuccessDropTableID;
|
||
};
|
||
|
||
struct TFishingPattern
|
||
{
|
||
int nPatternID;
|
||
int nProbabillity;
|
||
};
|
||
|
||
struct TFishingPointTableData
|
||
{
|
||
int nSecondarySkillClass; //³¬½Ãº¸Á¶½ºÅ³µî±Þ
|
||
int nSecondarySkillLevel; //³¬½Ãº¸Á¶½ºÅ³·¹º§
|
||
int nRequireItemType1;
|
||
int nRequireItemType2;
|
||
TFishingPattern Pattern[Fishing::Max::FISHINGPATTERNMAX];
|
||
};
|
||
|
||
struct TFishingAreaTableData
|
||
{
|
||
int nMatchedMapID;
|
||
int nMatchedFishingAreaID;
|
||
int nFishingPointID;
|
||
};
|
||
|
||
|
||
|
||
struct TJobTableData
|
||
{
|
||
char cJobNumber;
|
||
char cBaseClass;
|
||
char cParentJob;
|
||
float afMaxUsingSP[ 5 ];
|
||
char cClass;
|
||
};
|
||
|
||
struct TGlyphSkillData
|
||
{
|
||
int nGlyphID;
|
||
int nGlyphType;
|
||
int nSkillID;
|
||
int nSkillLevelID;
|
||
};
|
||
|
||
struct TGlyphSlotData
|
||
{
|
||
int nID;
|
||
char cSlotID;
|
||
char cLevelLimit;
|
||
char cSlotType;
|
||
bool IsCash;
|
||
};
|
||
|
||
struct TGlyphChargeData
|
||
{
|
||
char cGlyphType; // 1: °È¹®Àå 2: ½ºÅ³¹®Àå 3: Ư¼ö½ºÅ³¹®Àå (eGlyphType)
|
||
char cGlyphRank; // 1: ¸ÅÁ÷ 2: ·¹¾î 3: ¿¡ÇÈ 4: À¯´ÏÅ© (eItemRank)
|
||
int nCharge;
|
||
};
|
||
|
||
struct TCharmItem
|
||
{
|
||
#if defined(PRE_FIX_68828)
|
||
int nCharmID; // ÂüÅ×À̺í ID
|
||
#endif
|
||
int nItemID; // ¾ÆÀÌÅÛ
|
||
int nCount; // À¯Àú°¡ ȹµæÇÒ °³¼ö
|
||
int nProb; // È®·ü
|
||
int nPeriod; // ±â°£
|
||
int nAccumulationProb;
|
||
int nGold;
|
||
bool bMsg;
|
||
};
|
||
|
||
struct TCharmItemData
|
||
{
|
||
int nCharmNo; // ¸Å·Â¾ÆÀÌÅÛ ¹øÈ£
|
||
std::vector<TCharmItem> CharmItemList;
|
||
};
|
||
|
||
const BYTE CharmItemKeyMax = 5;
|
||
struct TCharmItemKeyData
|
||
{
|
||
int nCharmItemID; // »óÀÚ ¾ÆÀÌÅÛ ¾ÆÀ̵ð
|
||
std::vector<int> nKeyList;
|
||
};
|
||
|
||
struct TCharmCountData
|
||
{
|
||
int nID;
|
||
int nMin;
|
||
int nMax;
|
||
};
|
||
|
||
#if defined (PRE_ADD_CHAOSCUBE)
|
||
struct TChaosStuffItem
|
||
{
|
||
int nItemID;
|
||
int nCount;
|
||
int nChaosNo;
|
||
};
|
||
|
||
struct TChaosResultItem
|
||
{
|
||
int nItemID; // ¾ÆÀÌÅÛ
|
||
int nCount; // À¯Àú°¡ ȹµæÇÒ °³¼ö
|
||
int nProb; // È®·ü
|
||
int nPeriod; // ±â°£
|
||
int nAccumulationProb;
|
||
int nGold;
|
||
bool bMsg;
|
||
};
|
||
|
||
struct TChaosItemData
|
||
{
|
||
int nChaosNo;
|
||
std::vector<TChaosResultItem> ChaosItemList;
|
||
|
||
};
|
||
#endif // #if defined (PRE_ADD_CHAOSCUBE)
|
||
|
||
//ServerMonitor
|
||
enum eServerMonitorLevel
|
||
{
|
||
SERVERMONITOR_LEVEL_NONE = 0,
|
||
SERVERMONITOR_LEVEL_MONITOR, //µ¿Á¢Á¤º¸¿Í ¼¹öÀÇ»óÅÂ
|
||
SERVERMONITOR_LEVEL_ADMIN, //µ¿Á¢Á¤º¸¿Í ¼¹ö»óÅ ¹× ÇÁ·Î¼¼½º ½ÃÀÛ¸¸ °¡´É
|
||
SERVERMONITOR_LEVEL_SUPERADMIN, //µ¿Á¢Á¤º¸¿Í ¼¹ö»óÅ ¹× ¸ðµçÄÁÆ®·Ñ °¡´É
|
||
};
|
||
|
||
enum eServerMonitorNotice
|
||
{
|
||
SERVERMONITOR_UPDATENOTICE_CHANNELINFO,
|
||
SERVERMONITOR_UPDATENOTICE_SERVERINFO,
|
||
SERVERMONITOR_UPDATENOTICE_MERITINFO,
|
||
SERVERMONITOR_UPDATENOTICE_WOLRDINFO,
|
||
};
|
||
|
||
enum eSIDConnectionType
|
||
{
|
||
SID_CONNECTION_TYPE_LOG = 1,
|
||
SID_CONNECTION_TYPE_DB,
|
||
};
|
||
|
||
struct TPromotionData
|
||
{
|
||
int nID;
|
||
int nConditionType; //ePromotionConditionType
|
||
int nConditionValue;
|
||
int nPromotionType; //ePromotionType
|
||
int nRewardValue; //Percent
|
||
};
|
||
|
||
struct TUserPromotionData
|
||
{
|
||
int nType; //ePromotionType
|
||
int nValue; //Percent
|
||
};
|
||
|
||
struct TSchedule
|
||
{
|
||
char cHour;
|
||
char cMinute;
|
||
int nCycle;
|
||
};
|
||
|
||
|
||
struct TGuildLevel
|
||
{
|
||
int nLevel;
|
||
int nReqGold;
|
||
int nReqGuildPoint;
|
||
int nDailyGuildPointLimit;
|
||
int nDailyMissionPointLimit;
|
||
bool bApplicable;
|
||
};
|
||
|
||
struct TGuildWarPoint
|
||
{
|
||
int nRank;
|
||
int nRewardGuildPoint;
|
||
};
|
||
|
||
struct TGuildWarMapInfo
|
||
{
|
||
UINT uiMapTableID;
|
||
char cGuildWarUseMonth;
|
||
};
|
||
|
||
struct TGuildWarEventInfo
|
||
{
|
||
//char cEventStep;
|
||
__time64_t tBeginTime;
|
||
__time64_t tEndTime;
|
||
};
|
||
// ±æµåÀü º¸»ó ¸ÞÀϰü·Ã
|
||
struct TGuildWarRewardData
|
||
{
|
||
char cType; // º¸»ó ŸÀÔ..eGuildWarRewardType
|
||
char cClass; // Ŭ·¡½º(¿ö¸®¾î,¾ÆÃ³, ¼Ò¼¸®½º, Ŭ·¡¸¯)
|
||
int nMailID; // ¿ìÆí ¾ÆÀ̵ð
|
||
int nPresentID; // ¼±¹°ÇÔ ¾ÆÀ̵ð
|
||
int nGuildFestivalPoint; // º»¼±¿¡¼ Áö±ÞÇÒ ±æµåÃàÁ¦Æ÷ÀÎÆ®
|
||
int nGuildPoint; // º»¼±¿¡¼ Áö±ÞÇÒ ±æµåÆ÷ÀÎÆ®
|
||
};
|
||
|
||
|
||
struct TPeriodQuestDate
|
||
{
|
||
int nPeriodType;
|
||
__time64_t tAssignDate;
|
||
};
|
||
|
||
struct TExchangeTrade
|
||
{
|
||
int nItemID;
|
||
int nCategoryType;
|
||
int nGroupID;
|
||
int ExchangeType;
|
||
};
|
||
|
||
struct TPvPMissionRoom
|
||
{
|
||
int nItemID;
|
||
int nGroupID;
|
||
int nMapID;
|
||
int nModeID;
|
||
int nWinCondition;
|
||
int nPlayTime;
|
||
int nMaxPlayers;
|
||
int nStartPlayers;
|
||
int nRoomNameIndex;
|
||
bool bDropItem;
|
||
#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
||
int nChannelType;
|
||
#endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
||
};
|
||
|
||
typedef std::vector<TPvPMissionRoom> TVecPvPMissionRoom;
|
||
|
||
struct TGhoulConditionData
|
||
{
|
||
int nItemID;
|
||
int nItemIdx;
|
||
int nPlayerMaxNum[PvPCommon::Common::GhouConditionColCount];
|
||
int nGhoulCount[PvPCommon::Common::GhouConditionColCount];
|
||
int nMatchingMutationGroupID[PvPCommon::Common::GhouConditionColCount];
|
||
};
|
||
|
||
struct TMonsterMutationGroup
|
||
{
|
||
int nGroupID;
|
||
int nGourpIdx;
|
||
int nMonsterID[PvPCommon::Common::MonsterMutationColCount];
|
||
int nProbability[PvPCommon::Common::MonsterMutationColCount];
|
||
};
|
||
|
||
struct TMonsterMutationData
|
||
{
|
||
int nMutationID;
|
||
int nMutationIdx;
|
||
int nMutationActorID;
|
||
|
||
int nMutationHP;
|
||
int nMutationStrPMax;
|
||
int nMutationStrMMax;
|
||
int nMutationDefP;
|
||
int nMutationDefM;
|
||
int nMutationStiff;
|
||
|
||
int nMutationStiffResis;
|
||
int nMutationCriticalResis;
|
||
int nMutationStunResis;
|
||
|
||
int nMutationWeaponIdx1;
|
||
int nMutationWeaponIdx2;
|
||
int nMutationSkillTableID;
|
||
int nMutationSuperArmor;
|
||
|
||
int nSizeMin;
|
||
int nSizeMax;
|
||
int nMoveSpeed;
|
||
};
|
||
|
||
struct TMonsterMutationSkill
|
||
{
|
||
int nMonsterID;
|
||
int nMonsterIdx;
|
||
int nMonsterSkillIndex[PvPCommon::Common::MonsterMutationSkillColCount];
|
||
int nMonsterSkillLevel[PvPCommon::Common::MonsterMutationSkillColCount];
|
||
};
|
||
|
||
struct TOccupationModeInfo
|
||
{
|
||
int nVictoryCondition[PvPCommon::Common::MaximumVitoryCondition]; //PvPCommon::BattleGroundVictoryState
|
||
int nVictoryParam[PvPCommon::Common::MaximumVitoryCondition]; //PvPCommon::BattleGroundVictoryState
|
||
int nBossID[PvPCommon::TeamIndex::Max]; //»ý¼ºº¸½º¾ÆÀ̵ð
|
||
int nBossSpawnAreaID[PvPCommon::TeamIndex::Max]; //º¸½º»ý¼º½Ã ½ºÆùÀ§Ä¡
|
||
};
|
||
|
||
struct TBattleGourndModeInfo
|
||
{
|
||
int nID;
|
||
int nWaitingMin;
|
||
int nFinishingMin;
|
||
int nPvPSkillPoint;
|
||
int nMaximumResourceLimit;
|
||
int nAllOcuupationBonusGain;
|
||
int nOccupationBonusGain[PvPCommon::Common::MaximumCapturePosition];
|
||
|
||
int nCaptureScore;
|
||
int nStealScore;
|
||
int nKillScore;
|
||
int nClimaxTime;
|
||
int nClimaxRespawnTime;
|
||
|
||
TOccupationModeInfo ModeInfo;
|
||
};
|
||
|
||
struct TPositionAreaInfo
|
||
{
|
||
int nID;
|
||
int nMapID;
|
||
int nPvPModeID;
|
||
int nAreaID;
|
||
int nGainResourceTermTick; //Á¡·É½Ã ȹµæÅÒ
|
||
int nGainResource; //ȹƯÅҽà ȹµæ·®
|
||
int nRequireTryTick; //ȹµæ½Ãµµ½Ã Ŭ¸¯»óÅÂÁö¼Ó À¯ÁöÇÊ¿ä½Ã°£
|
||
int nCompleteOccupationTick; //Ŭ¸¯¿Ï·áÈÄ Á¡·É±Ç ³Ñ¾î°¡±â ÀüÀÇ ´ë±â½Ã°£
|
||
int nBonusBuffID;
|
||
//Ŭ¶óÀ̸·½º~
|
||
int nClimaxGainTermTick;
|
||
int nClimaxGainVal;
|
||
int nClimaxTryTick;
|
||
int nClimaxCompleteOccupationTick;
|
||
};
|
||
|
||
struct TBattleGroundEffectValue
|
||
{
|
||
int nSkillID;
|
||
int nSkillLevel;
|
||
int nNeedSkillPoint; //ȹµæ½ÃÇÊ¿äÆ÷ÀÎÆ®
|
||
int nUseResPoint; //½ºÅ³»ç¿ë½Ã ¼Ò¸ð Á¡·ÉÀü Æ÷ÀÎÆ®
|
||
std::string strEffectValue[PvPCommon::Common::MaximumEffectCount];
|
||
int nEffectValueDuration[PvPCommon::Common::MaximumEffectCount];
|
||
//int nMonsterID;
|
||
//int nSummonDist;
|
||
std::string strActionName;
|
||
int nCoolTime;
|
||
|
||
void Reset()
|
||
{
|
||
nSkillID = 0;
|
||
nSkillLevel = 0;
|
||
nNeedSkillPoint = 0; //ȹµæ½ÃÇÊ¿äÆ÷ÀÎÆ®
|
||
nUseResPoint = 0; //½ºÅ³»ç¿ë½Ã ¼Ò¸ð Á¡·ÉÀü Æ÷ÀÎÆ®
|
||
for (int i = 0; i < PvPCommon::Common::MaximumEffectCount; i++)
|
||
{
|
||
strEffectValue[i].clear();;
|
||
nEffectValueDuration[i] = 0;
|
||
}
|
||
|
||
//nMonsterID = 0;
|
||
//nSummonDist = 0;
|
||
strActionName.clear();
|
||
nCoolTime = 0;
|
||
}
|
||
};
|
||
|
||
struct TBattleGroundSkillInfo
|
||
{
|
||
int nSkillID;
|
||
int nSkillMaxLevel;
|
||
int nSkillType; //CDnSkill::SkillTypeEnum //Á¡·ÉÀü ½ºÅ³Àº ½ºÅ³Å¸ÀÔ¿¡ ±×´Ú ¿µÇâÀ» ¹ÞÁö ¾ÊÁö¸¸ Ãß°¡È®Àå½Ã ÇÊ¿äÇÒ±î ÇØ¼ ÀоîµÒ
|
||
int nSkillDurationType; //CDnSkill::DurationTypeEnum
|
||
int nSkillTargetType; //CDnSkill::TargetTypeEnum
|
||
int nEffectType[PvPCommon::Common::MaximumEffectCount];
|
||
int nEffectApplyType[PvPCommon::Common::MaximumEffectCount];
|
||
int nProcess; //ÇÁ·Î¼¼½ºÅ¸ÀÔÀº Çϳª¸¸ »ç¿ë
|
||
int nCanDuplicate; //Áßø°¡´É?
|
||
};
|
||
|
||
struct TBattleGroundSkill
|
||
{
|
||
};
|
||
|
||
struct TUnionReputeBenefitData
|
||
{
|
||
int nItemID;
|
||
int nPeriod;
|
||
int nBenefitType[NpcReputation::Common::MaxBenefitCount];
|
||
int nBenefitNum[NpcReputation::Common::MaxBenefitCount];
|
||
};
|
||
|
||
struct TGuildMarkData
|
||
{
|
||
int nItemID;
|
||
int nType;
|
||
bool bCash;
|
||
bool bMarkOnly;
|
||
bool bMarkView;
|
||
};
|
||
|
||
struct TPlayerCommonLevelTableInfo
|
||
{
|
||
int iFatigue10000Ratio; // 10000¹èÀ²
|
||
float fMasterGainExp;
|
||
//int nMasterGainItemID;
|
||
//int nMasterGainItemCount;
|
||
float fAddGainExp;
|
||
float fDefense;
|
||
float fCritical;
|
||
float fFinalDamage;
|
||
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
||
int iTalismanCost; // Å»¸®½º¸¸ ÀåÂø ÇØÁ¦, À§Ä¡±³È¯ ºñ¿ë
|
||
#endif
|
||
};
|
||
|
||
struct TMasterSysFeelTableInfo
|
||
{
|
||
int nMinFeel;
|
||
int nMaxFeel;
|
||
int nAddExp; //(%°ªÀÓ)
|
||
};
|
||
|
||
struct TGlobalEventData
|
||
{
|
||
int nItemID;
|
||
int nCollectItemID;
|
||
int nScheduleID;
|
||
int nCollectTotalCount;
|
||
int nNoticeCount[MAX_NOTICE_WORLDEVENT];
|
||
bool bCheckNotice[MAX_NOTICE_WORLDEVENT];
|
||
|
||
time_t tCollectStartDate;
|
||
time_t tCollectEndDate;
|
||
time_t tRewardDate;
|
||
};
|
||
|
||
struct TEveryDayEventData
|
||
{
|
||
int nEventID;
|
||
int nEventOnOff;
|
||
int nSquenceDateCount;
|
||
int nMailID;
|
||
int nCashMailID;
|
||
int nNumber;
|
||
time_t tStartDate;
|
||
time_t tEndDate;
|
||
};
|
||
|
||
enum eDBJobSystem //g_szDBJobSystem
|
||
{
|
||
DBJOB_GUILDWAR_INIT = 0, // ±æµåÀü ÃʱâÈ
|
||
DBJOB_GUILDWAR_STATS, // ±æµåÀü Åë°è
|
||
DBJOB_SYSTEM_MAX,
|
||
};
|
||
|
||
enum eDBJobSystemStatus
|
||
{
|
||
JOB_STATUS_RESERVE, // ¿¹¾à
|
||
JOB_STATUS_COMPLETED, // ¿Ï·á
|
||
JOB_STATUS_DOING, // ½ÇÇàÁß
|
||
JOB_STATUS_FAIL, // ½ÇÆÐ
|
||
};
|
||
|
||
struct TGuildRewardItemData
|
||
{
|
||
int nItemID; // ±æµåº¸»óÅ×ÀÌºí¿¡ ÀÖ´Â ¾ÆÀ̵ð
|
||
short nNeedGuildLevel; // ±¸ÀÔÇϱâÀ§ÇÑ ±æµå·¹º§
|
||
int nNeedGold; // ±¸ÀÔÇϱâÀ§ÇÑ °ñµå
|
||
int nItemType; // ±æµåº¸»ó¾ÆÀÌÅÛ Å¸ÀÔ
|
||
int nTypeParam1;
|
||
int nTypeParam2;
|
||
bool bCheckInven; // ÀÌ¹Ì ±¸ÀÔÇѰÇÁö üũ
|
||
bool bEternity; // 0:±â°£Á¦ 1:¿µ±¸
|
||
int nPeriod; // ±â°£
|
||
bool bCheckMaster; // ¸¶½ºÅÍüũ ¿©ºÎ
|
||
int nCheckType; // ÇÊ¿ä Á¶°Ç üũ(0:NONE 1:ITEMID 2:±æµå¸¶Å©
|
||
int nCheckID; // ÇÊ¿äÇÑ ÀÌÀü ¾ÆÀÌÅÛ¾ÆÀ̵ð
|
||
};
|
||
struct TExpData
|
||
{
|
||
int nExperience;
|
||
int nEventExperience;
|
||
int nPcBangExperience;
|
||
int nVIPExperience;
|
||
int nPromotionExperience;
|
||
int nItemExperience;
|
||
int nGuildExp;
|
||
TExpData()
|
||
{
|
||
nExperience = 0;
|
||
nEventExperience = 0;
|
||
nPcBangExperience = 0;
|
||
nVIPExperience = 0;
|
||
nPromotionExperience = 0;
|
||
nItemExperience = 0;
|
||
nGuildExp = 0;
|
||
}
|
||
void set(float Exp, float EventBonusExp = 0, float PcBangExp = 0, float VIPExp = 0, float PromotionBonusExp = 0, float ItemExp = 0, float GuildExp = 0)
|
||
{
|
||
nExperience = (int)Exp;
|
||
nEventExperience = (int)EventBonusExp;
|
||
nPcBangExperience = (int)PcBangExp;
|
||
nVIPExperience = (int)VIPExp;
|
||
nPromotionExperience = (int)PromotionBonusExp;
|
||
nItemExperience = (int)ItemExp;
|
||
nGuildExp = (int)GuildExp;
|
||
}
|
||
};
|
||
#if defined(PRE_ADD_SALE_COUPON)
|
||
struct TSaleCouponData
|
||
{
|
||
int nItemID; // ÄíÆù ID
|
||
int nUseItemSN[MAX_SALE_USEITEM]; // ÄíÆùÀÌ Àû¿ëµÉ ¾ÆÀÌÅÛ SN
|
||
};
|
||
#endif
|
||
|
||
#if defined( PRE_PARTY_DB )
|
||
|
||
namespace Party
|
||
{
|
||
struct QueryOutPartyType
|
||
{
|
||
enum eCode
|
||
{
|
||
Normal = 0,
|
||
Disconnect,
|
||
Kick,
|
||
EternityKick,
|
||
};
|
||
};
|
||
|
||
struct AddPartyAndMemberGame
|
||
{
|
||
Party::Data PartyData;
|
||
UINT nKickedMemberList[PARTYKICKMAX];
|
||
INT64 biCharacterDBID[PARTYMAX];
|
||
UINT nSessionID[PARTYMAX];
|
||
#if defined( PRE_ADD_NEWCOMEBACK )
|
||
bool bCheckComebackAppellation[PARTYMAX];
|
||
#endif
|
||
};
|
||
|
||
struct PartyMemberVillageData
|
||
{
|
||
UINT nAccountDBID;
|
||
INT64 biCharacterDBID;
|
||
BYTE cMemberIndex;
|
||
BYTE cVoiceAvailable;
|
||
#if defined( PRE_ADD_NEWCOMEBACK )
|
||
bool bCheckComebackAppellation;
|
||
#endif
|
||
UINT nMutedList[PARTYCOUNTMAX];
|
||
};
|
||
struct AddPartyAndMemberVillage
|
||
{
|
||
Party::Data PartyData;
|
||
UINT nVoiceChannelID;
|
||
WCHAR wszPartyName[PARTYNAMELENMAX];
|
||
UINT nKickedMemberList[PARTYKICKMAX];
|
||
PartyMemberVillageData MemberData[PARTYMAX];
|
||
};
|
||
};
|
||
|
||
#endif // #if defined( PRE_PARTY_DB )
|
||
|
||
#if defined( PRE_ADD_NAMEDITEM_SYSTEM )
|
||
struct TNamedItemData
|
||
{
|
||
int nItemID; // ³×Àӵ徯ÀÌÅÛ¾ÆÀ̵ð
|
||
int nMaxCount; // ÃÖ´ë °¹¼ö
|
||
int nSwapItemID; // ´ëüÇÒ ¾ÆÀÌÅÛ¾ÆÀ̵ð
|
||
};
|
||
namespace EffectSkillNameSpace
|
||
{
|
||
struct SearchType
|
||
{
|
||
enum eType
|
||
{
|
||
ItemType = 0,
|
||
ItemID,
|
||
SkillID,
|
||
};
|
||
};
|
||
struct BuffType
|
||
{
|
||
enum eType
|
||
{
|
||
Partybuff = 0,
|
||
SelfBuff,
|
||
};
|
||
};
|
||
struct ShowEffectType
|
||
{
|
||
enum eType
|
||
{
|
||
NONEEFFECT = 0,
|
||
BUFFEFFECT,
|
||
SPELLEFFECT,
|
||
};
|
||
};
|
||
};
|
||
#endif
|
||
|
||
#ifdef PRE_ADD_EXCHANGE_POTENTIAL
|
||
struct TPotentialTransferData
|
||
{
|
||
int nItemID;
|
||
int nExtractItemLevel;
|
||
int nExtractItemRank;
|
||
int nInjectItemLevel;
|
||
int nInjectItemRank;
|
||
int nConsumptionCount;
|
||
int nMainType;
|
||
int nSubType;
|
||
};
|
||
#endif //#ifdef PRE_ADD_EXCHANGE_POTENTIAL
|
||
|
||
#if defined(PRE_ADD_INSTANT_CASH_BUY)
|
||
const int CashBuyShortcutMax = 10;
|
||
struct TCashBuyShortcutData
|
||
{
|
||
int nType;
|
||
int nAllowMapTypes;
|
||
int nShow;
|
||
std::vector<int> nSNList;
|
||
};
|
||
#endif // #if defined(PRE_ADD_INSTANT_CASH_BUY)
|
||
|
||
#if defined(PRE_ADD_EXCHANGE_ENCHANT)
|
||
struct TExchangeEnchantData
|
||
{
|
||
BYTE cRank; // ¾ÆÀÌÅÛ µî±Þ
|
||
BYTE cLevelLimit; // Á¦ÇÑ ·¹º§
|
||
BYTE cEnchantLevel; // °È ·¹º§
|
||
int nNeedCoin; // ¼ö¼ö·á
|
||
int nNeedItemID1; // ÇÊ¿ä¾ÆÀÌÅÛ1
|
||
short wNeedItemCount1; // ÇÊ¿ä¾ÆÀÌÅÛ Ä«¿îÆ®1
|
||
int nNeedItemID2; // ÇÊ¿ä¾ÆÀÌÅÛ2
|
||
short wNeedItemCount2; // ÇÊ¿ä¾ÆÀÌÅÛ Ä«¿îÆ®2
|
||
};
|
||
#endif //#if defined(PRE_ADD_EXCHANGE_ENCHANT)
|
||
|
||
#if defined( PRE_WORLDCOMBINE_PARTY )
|
||
namespace WorldCombineParty
|
||
{
|
||
enum eType
|
||
{
|
||
MAXSKILLCOUNT = 2,
|
||
};
|
||
|
||
struct WrldCombinePartyData
|
||
{
|
||
BYTE cIndex; // À妽º
|
||
BYTE cGroupIndex; // ±×·ìÀ妽º
|
||
WCHAR wszPartyName[PARTYNAMELENMAX];
|
||
int nWorldMap; // ¿ùµåÁ¸
|
||
int nTargetMap; // Ÿ°Ù¸Ê(±âÁذª)
|
||
ePartyType PartyType; // ÆÄƼŸÀÔ
|
||
BYTE cPartyMemberMax;
|
||
int nItemID; // ÀÔÀå±Ç¾ÆÀÌÅÛ
|
||
TDUNGEONDIFFICULTY Difficulty;
|
||
TPARTYITEMLOOTRULE ItemLootRule; //ePartyItemLootRule ÂüÁ¶
|
||
TITEMRANK ItemRank; //¾ÆÀÌÅÛ·©Å©(·çÆ®·ê±âȹÂüÁ¶)
|
||
BYTE cUserLvLimitMin; //¹Î¸Æ½º°ªÀÌ ÀÖ´Ü´Ù.
|
||
int iBitFlag;
|
||
int nSkillID[MAXSKILLCOUNT]; // ½ºÅ³¾ÆÀ̵ð
|
||
};
|
||
}
|
||
#endif
|
||
|
||
#if defined(PRE_ADD_PCBANG_RENTAL_ITEM)
|
||
struct TPcBangRentItem
|
||
{
|
||
int nItemID;
|
||
BYTE cLevelStart;
|
||
BYTE cLevelEnd;
|
||
BYTE cClassID;
|
||
BYTE cJob;
|
||
BYTE cGrade;
|
||
int nItemOption;
|
||
};
|
||
#endif
|
||
|
||
#if defined( PRE_PRIVATECHAT_CHANNEL )
|
||
struct TPrivateChatChannelInfo
|
||
{
|
||
INT64 nPrivateChatChannelID;
|
||
WCHAR wszName[PrivateChatChannel::Common::MaxNameLen];
|
||
INT64 biMasterCharacterDBID;
|
||
int nMemberCount;
|
||
int nPassWord;
|
||
};
|
||
|
||
struct TPrivateChatChannelMember
|
||
{
|
||
time_t tJoinDate;
|
||
UINT nAccountDBID;
|
||
INT64 biCharacterDBID;
|
||
bool bMaster;
|
||
WCHAR wszCharacterName[NAMELENMAX];
|
||
};
|
||
|
||
struct TPrivateMemberDelServer
|
||
{
|
||
INT64 nPrivateChatChannelID;
|
||
INT64 biCharacterDBID;
|
||
WCHAR wszCharacterName[NAMELENMAX];
|
||
};
|
||
#endif
|
||
|
||
#if defined(PRE_ADD_WEEKLYEVENT)
|
||
namespace WeeklyEvent
|
||
{
|
||
struct TWeeklyEventData
|
||
{
|
||
int nStartTime;
|
||
int nEndTime;
|
||
BYTE cRaceType; // eRaceType
|
||
BYTE cClassType; // eClass
|
||
int nEventType;
|
||
int nValue; // %°ª
|
||
};
|
||
|
||
struct TWeeklyEvent
|
||
{
|
||
int nDayOfWeek; // eDayType
|
||
std::vector<TWeeklyEventData> VecEventData;
|
||
};
|
||
|
||
enum eDayType
|
||
{
|
||
Monday = 1,
|
||
Tuesday = 2,
|
||
Wednesday = 3,
|
||
Thursday = 4,
|
||
Friday = 5,
|
||
Saturday = 6,
|
||
Sunday = 7,
|
||
};
|
||
|
||
enum eRaceType
|
||
{
|
||
Player = 1,
|
||
Monster = 2,
|
||
};
|
||
|
||
enum eEventType
|
||
{
|
||
Event_1 = 1, // 1. hp»ó½Â ¹× Ç϶ô
|
||
Event_2 = 2, // 2. °ø°Ý·Â °È ¹× ¾àÈ
|
||
Event_3 = 3, // 3. ¹æ¾î·Â °È ¹× ¾àÈ
|
||
Event_4 = 4, // 4. °È È®·ü Áõ°¡
|
||
Event_5 = 5, // 5. °æÇèÄ¡ Áõ°¡
|
||
Event_6 = 6, // 6. ÆÄƼÀ¯Áö °æÇèÄ¡ Áõ°¡
|
||
Event_7 = 7, // 7. Ä£±¸ °æÇèÄ¡ Áõ°¡ (ÀýÄ£¾Æ´Ô, ¼·ÎÄ£±¸)
|
||
Event_8 = 8, // 8. È£°¨µµ Áõ°¡
|
||
Event_9 = 9, // 9. ¿¬ÇÕ Æ÷ÀÎÆ®È¹µæ·® Áõ°¡
|
||
Event_10 = 10, // 10. ¾ÆÀÌÅÛ µå¶ø·ü Áõ°¡
|
||
};
|
||
}
|
||
#endif // #if defined(PRE_ADD_WEEKLYEVENT)
|
||
|
||
#if defined( PRE_ADD_TOTAL_LEVEL_SKILL )
|
||
namespace TotalLevelSkill
|
||
{
|
||
struct TTotalSkillLevelTable
|
||
{
|
||
int nSkillID;
|
||
int nTotalLevelLimit;
|
||
int nUseLevelLimit;
|
||
int nSkillType;
|
||
};
|
||
struct TTotalSkillBlowTable
|
||
{
|
||
int nSkillID;
|
||
int nBlowID;
|
||
float fBlowValue;
|
||
int nBlowValue; // ³óÀå ¾ÆÀÌÅÛ ¾ÆÀÌµð‹š¹®¿¡ »ç¿ë
|
||
};
|
||
struct TTotalSkillSlotTable
|
||
{
|
||
int nSlotIndex;
|
||
int nLevelLimit;
|
||
bool bCash;
|
||
};
|
||
}
|
||
#endif
|
||
|
||
#if defined(PRE_SPECIALBOX)
|
||
struct TProvideItemData
|
||
{
|
||
int nCashSN;
|
||
int nItemID;
|
||
int nCount;
|
||
int nSealCount;
|
||
int nOption;
|
||
};
|
||
|
||
struct TKeepBoxProvideItemData
|
||
{
|
||
int nType;
|
||
std::vector<TProvideItemData> VecProvideItem;
|
||
};
|
||
#endif // #if defined(PRE_SPECIALBOX)
|
||
|
||
#ifdef PRE_ADD_JOINGUILD_SUPPORT
|
||
struct TGuildSupportData
|
||
{
|
||
int nID;
|
||
int nJoinMinLevel; //ÃÖÃʱæµå°¡ÀԽà ÃÖ¼Ò·¹º§
|
||
int nJoinMaxLevel; //ÃÖÃʱæµå°¡ÀԽà ÃÖ´ë·¹º§
|
||
int nFirstJoinMailID; //ÃÖÃʰ¡ÀԽà º¸»ó¸ÞÀϾÆÀ̵ð
|
||
int nMaxLevelGuildSupportMailID; //ÃÖÃʰ¡ÀÔÇÑ ±æµå¿¡¼ ¸¸·¦½Ã º¸»ó¾ÆÀ̵ð
|
||
};
|
||
#endif //#ifdef PRE_ADD_JOINGUILD_SUPPORT
|
||
|
||
#if defined( PRE_FIX_67546 )
|
||
|
||
struct TChannelDBInfo
|
||
{
|
||
int nDBConnectionID;
|
||
BYTE cThreadID;
|
||
};
|
||
|
||
struct TDBConnectionInfo
|
||
{
|
||
int nThreadCount[THREADMAX];
|
||
};
|
||
|
||
#endif
|
||
#if defined( PRE_WORLDCOMBINE_PVP )
|
||
|
||
struct TWorldPvPMissionRoom
|
||
{
|
||
int nItemID;
|
||
int nMapID;
|
||
BYTE cModeID;
|
||
int nWinCondition;
|
||
int nPlayTime;
|
||
BYTE cMaxPlayers;
|
||
int nStartPlayers;
|
||
int nRoomNameIndex;
|
||
bool bDropItem;
|
||
USHORT unRoomOptionBit;
|
||
WorldPvPMissionRoom::Common::eReqType eWorldReqType;
|
||
int nMinLevel;
|
||
int nMaxLevel;
|
||
int nChannelType;
|
||
WCHAR wszRoomName[PARTYNAMELENMAX];
|
||
int nRoomPW;
|
||
};
|
||
|
||
struct TWorldPvPRoomDBData
|
||
{
|
||
int nDBRoomID;
|
||
int nWorldID;
|
||
int nServerID;
|
||
int nRoomID;
|
||
BYTE cModeID;
|
||
WCHAR wszRoomName[PARTYNAMELENMAX];
|
||
BYTE cMaxPlayers;
|
||
int nMapID;
|
||
int nWinCondition;
|
||
UINT nPlayTimeSec;
|
||
bool bBreakIntoFlag;
|
||
bool bDropItem;
|
||
bool bRegulationFlag;
|
||
bool bObserverFlag;
|
||
bool bRandomFlag;
|
||
BYTE cMinLevel;
|
||
BYTE cMaxLevel;
|
||
int nPassWord;
|
||
int nRoomMemberCount;
|
||
BYTE cChannelType;
|
||
};
|
||
|
||
typedef std::vector<TWorldPvPMissionRoom> TVecWorldPvPMissionRoom;
|
||
|
||
#endif
|
||
|
||
#if defined(PRE_ADD_STAGE_CLEAR_ADD_REWARD)
|
||
struct TBonusDropTable
|
||
{
|
||
int nIndex;
|
||
int nMapID; //¸ÊID
|
||
int nDropType;
|
||
int nNeedItemID[3]; //ÇÊ¿äÇÑ ¿¼è ¾ÆÀÌÅÛ ID
|
||
int nDropItemGroupID[3]; //µå¶øµÉ µå¶ø¾ÆÀÌÅÛ±×·ìID
|
||
};
|
||
#endif // #if defined(PRE_ADD_STAGE_CLEAR_ADD_REWARD)
|
||
|
||
namespace ActozCommon
|
||
{
|
||
struct CharacterStatus
|
||
{
|
||
enum eCharacterStatus
|
||
{
|
||
Revive = 0,
|
||
Create = 0,
|
||
Delete = 1,
|
||
};
|
||
};
|
||
|
||
struct UpdateType
|
||
{
|
||
enum eUpdateType
|
||
{
|
||
Login = 1,
|
||
Logout = 2,
|
||
Levelup = 3,
|
||
Sync = 4,
|
||
};
|
||
};
|
||
};
|
||
|
||
#if defined(PRE_ADD_STAGE_CLEAR_ENCHANT_REWARD)
|
||
struct TItemDropEnchantData
|
||
{
|
||
int nIndex; //IDX
|
||
int nDropID; // ItemDropTableÀÇ ID¿Í ¸ÅĪµÇ´Â °ª
|
||
int nEnchantCount; //ÀÎæƮ°¡ ¸î°³ÀÎÁö Ä«¿îÆ®
|
||
int nEnchantOption[20]; //ÀÎæƮ Á¤º¸
|
||
int nEnchantProb[20]; //ÀÎæƮ°¡ ¼±ÅÃµÉ È®·ü
|
||
};
|
||
#endif // #if defined(PRE_ADD_STAGE_CLEAR_ENCHANT_REWARD)
|
||
|
||
#if defined( PRE_ALTEIAWORLD_EXPLORE )
|
||
struct TAlteiaWorldMapInfo
|
||
{
|
||
int nIndex;
|
||
int nMapID;
|
||
TDUNGEONDIFFICULTY Difficulty;
|
||
};
|
||
#endif // #if defined( PRE_ALTEIAWORLD_EXPLORE )
|
||
|
||
#if defined( PRE_ADD_STAMPSYSTEM )
|
||
namespace StampSystem
|
||
{
|
||
struct ChallengeType
|
||
{
|
||
enum eType
|
||
{
|
||
DailyQuest = 1,
|
||
DailyMission = 2,
|
||
};
|
||
};
|
||
|
||
struct RewardCount
|
||
{
|
||
enum eCount
|
||
{
|
||
Day3 = 3,
|
||
Day5 = 5,
|
||
};
|
||
};
|
||
|
||
struct TStampChallenge // ½ºÅÆÇÁ µµÀü°úÁ¦
|
||
{
|
||
BYTE cType;
|
||
std::set<int> setAssignmentID; // µµÀü°úÁ¦ ¸ñ·Ï
|
||
int nMailID4; // 3ÀÏ º¸»ó
|
||
int nMailID7; // 5ÀÏ º¸»ó
|
||
};
|
||
|
||
struct TStampTableData // ½ºÅÆÇÁ Å×À̺í
|
||
{
|
||
INT64 biStartTime;
|
||
std::vector<TStampChallenge> vChallengeList;
|
||
};
|
||
}
|
||
#endif // #if defined( PRE_ADD_STAMPSYSTEM )
|
||
|
||
#if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
|
||
struct TPrevPotentialData
|
||
{
|
||
int nItemID; //¾ÆÀÌÅÛ ID
|
||
INT64 nSerial; //½Ã¸®¾ó
|
||
char cPotential; //ÀÌÀü ÀáÀç·Âµ¥ÀÌÅÍ
|
||
char cOption; //ÀÌÀü ÀáÀç·Âµ¥ÀÌÅÍ
|
||
char cNowPotential; //»õ·Î ºÎ¿©µÈ ÀáÀç·Â
|
||
char cPotentialMoveCount; //(ÀÌÀü)ÀáÀç ÀÌÀü Ä«¿îÆ®
|
||
INT64 nPotentialItemSerial; //ÀáÀç·Â ºÎ¿©¿¡ »ç¿ëÇÑ ÄÚµå ½Ã¸®¾ó
|
||
int nPotentialItemID; //ÀáÀç·Â ºÎ¿©¿¡ »ç¿ëÇÑ ¾ÆÀÌÅÛ ID
|
||
};
|
||
#endif // #if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
|
||
|
||
struct TEffectItemData
|
||
{
|
||
int nItemSN;
|
||
int nItemID;
|
||
int nCount;
|
||
bool bFail;
|
||
INT64 nGiftDBID;
|
||
};
|
||
|
||
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
||
struct TTalismanData
|
||
{
|
||
int nTalismanID;
|
||
int nType;
|
||
int nPeriod;
|
||
};
|
||
|
||
struct TTalismanSlotData
|
||
{
|
||
bool bService;
|
||
int nLevel;
|
||
int nAmount;
|
||
int nItem;
|
||
int nNeedItemCount;
|
||
float fEfficiency;
|
||
int nType;
|
||
};
|
||
#endif
|
||
|
||
#if defined( PRE_PVP_GAMBLEROOM )
|
||
|
||
struct TPvPGambleRoomData
|
||
{
|
||
int nRoomIndex;
|
||
bool bRegulation;
|
||
BYTE cGambleType;
|
||
int nPrice;
|
||
};
|
||
|
||
struct TPvPGambleRoomWinData
|
||
{
|
||
INT64 biCharacterDBID;
|
||
int nPrice;
|
||
};
|
||
|
||
#endif // #if defined( PRE_PVP_GAMBLEROOM )
|
||
|
||
#if defined(PRE_ADD_EQUIPLOCK)
|
||
struct TDBLockItemInfo
|
||
{
|
||
BYTE cItemCode;
|
||
BYTE cItemSlotIndex;
|
||
INT64 biItemSerial;
|
||
EquipItemLock::TLockItem ItemData;
|
||
};
|
||
#endif // #if defined(PRE_ADD_EQUIPLOCK)
|
||
|
||
#if defined( PRE_ADD_STAGE_WEIGHT )
|
||
struct TStageWeightData
|
||
{
|
||
float fHPRate;
|
||
float fAttackRate;
|
||
float fSuperArmorRate;
|
||
float fItemDropRate;
|
||
};
|
||
#endif // #if defined( PRE_ADD_STAGE_WEIGHT )
|
||
|
||
#if defined( PRE_ADD_CHARACTERCHECKSUM )
|
||
struct CheckSumReason
|
||
{
|
||
enum eReason
|
||
{
|
||
LogoutCharacter = 1,
|
||
C2C_KeepGameMoney = 2,
|
||
C2C_TransferGameMoney = 3,
|
||
};
|
||
};
|
||
#endif // #if defined( PRE_ADD_CHARACTERCHECKSUM )
|
||
|
||
#if defined(PRE_ADD_STAGECLEAR_TIMECHECK)
|
||
namespace StageClearCheckTime
|
||
{
|
||
enum eCheckMinTime // ÃÖ¼Ò Å¬¸®¾î ŸÀÓ
|
||
{
|
||
CheckMinTime = 60 * 1000, // 1ºÐ
|
||
};
|
||
enum eAbuseCount // Áõ°¡ÇÒ AbuseCount°ª
|
||
{
|
||
AbuseCount = 10,
|
||
};
|
||
// CheckTimeÀ» »ç¿ëÇÏÁö ¾ÊÀ» ¸Ê(º¸½º¸ÊID¸¦ ±âÁØÀ¸·Î ÆÇº°ÇÑ´Ù
|
||
struct IgnoreMapIndex
|
||
{
|
||
enum eIgnoreMapIndex
|
||
{
|
||
MAP_CHAOSE_FIELD_BossA = 15157, //È¥µ·ÀÇ Æ´ ÆÄ¸£¸¶
|
||
MAP_CHAOSE_FIELD_32Lv_BossA = 15167, //È¥µ·ÀÇ Æ´ ¹ÙÀ̶ó
|
||
MAP_CHAOSE_FIELD_24Lv_BossA = 15174, // È¥µ·ÀÇ Æ´ Ä«¸»¶ó
|
||
};
|
||
};
|
||
};
|
||
#endif // #if defined(PRE_ADD_STAGECLEAR_TIMECHECK)
|