4104 lines
95 KiB
C
4104 lines
95 KiB
C
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include "DNPacket.h"
|
|||
|
|
#include "MemPool.h"
|
|||
|
|
|
|||
|
|
/*--------------------------------------------------------------------------
|
|||
|
|
Server<EFBFBD>ʿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>(?)
|
|||
|
|
--------------------------------------------------------------------------*/
|
|||
|
|
|
|||
|
|
// 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; // <20><><EFBFBD><EFBFBD>ƮŸ<C6AE><C5B8> Ÿ<><C5B8>
|
|||
|
|
|
|||
|
|
const int LOGINCOUNTMAX = 64; // <20><> <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
const int LOGINCONCOUNTINFOTERM = (1*30*1000); // <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD> (<28><><EFBFBD><EFBFBD>:ms)
|
|||
|
|
const int LOGINSERVERLISTSORTTERM = (1*3*1000); // <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD> (<28><><EFBFBD><EFBFBD>:ms)
|
|||
|
|
const int MASTERCOUNTMAX = 10; // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
const int DELETECHAR_WAITTIME_MINUTE = 7*24*60; // 7<><37>
|
|||
|
|
const BYTE PROCESSCOUNT = 40; // <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ ó<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
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; // <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> ũ<><C5A9>
|
|||
|
|
const int GAMEDELAYSIZE = 200; // <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD> <20>α<EFBFBD> <20>ִ<EFBFBD> ũ<><C5A9>
|
|||
|
|
|
|||
|
|
const int SERVERDETACHPACKETSIZE = 1024*40; // <20><>Ŷ<EFBFBD><C5B6><EFBFBD>۽<EFBFBD> <20><><EFBFBD>ۻ<EFBFBD><DBBB><EFBFBD><EFBFBD><EFBFBD>ũ<EFBFBD><C5A9>
|
|||
|
|
//const variable.
|
|||
|
|
#ifdef _FINAL_BUILD
|
|||
|
|
const unsigned long RUDP_CONNECT_TIME_LIMIT_FOR_PARTY = 120 * 1000; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD>
|
|||
|
|
const unsigned long RUDP_CONNECT_TIME_LIMIT_FOR_SINGLE = 120 * 1000;
|
|||
|
|
const unsigned long WAIT_FOR_ANOTHER_USER_TIME_LIMIT = 15 * 1000; //<2F><><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϰ<EFBFBD> <20>ٸ<EFBFBD><D9B8>ο<EFBFBD><CEBF><EFBFBD> <20><><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD> <20>ð<EFBFBD>
|
|||
|
|
const unsigned long WAIT_FOR_LOAD_TIME_LIMIT = 60 * 1000; //<2F><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD>̽<EFBFBD><CCBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD> <20>ð<EFBFBD>
|
|||
|
|
const unsigned long GOGO_SING_TO_PLAY_FOR_WAIT_TIME_LIMIT = 2 * 60 * 1000; //Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20>ε<EFBFBD><CEB5><EFBFBD> <20><>ũ<EFBFBD><C5A9> <20><><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD> <20>ð<EFBFBD>
|
|||
|
|
const unsigned long GOGO_SING_TO_FARMPLAY_FOR_WAIT_TIME_LIMIT = 5 * 60 * 1000; //<2F><><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><>ŭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#else
|
|||
|
|
const unsigned long RUDP_CONNECT_TIME_LIMIT_FOR_PARTY = 60 * 1000; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD>
|
|||
|
|
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; //<2F><><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><>ŭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
const int EACH_GAMESERVER_MAX_ROOM_COUNT = 20;
|
|||
|
|
const int EACH_GAMESERVER_MAX_USER_COUNT = 100;
|
|||
|
|
|
|||
|
|
const int INTERVALDELETE_TIMINGTICK = 1000 * 60; //1<><31><EFBFBD><EFBFBD>??...-_-;
|
|||
|
|
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; // <20>ٽ<EFBFBD><D9BD><EFBFBD> 5<><35> <20><><EFBFBD><EFBFBD> üũ -> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲٶ<D9B2><D9B6><EFBFBD> <20>ؼ<EFBFBD> <20>ٲ<EFBFBD> -> 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ø<EFBFBD>
|
|||
|
|
const int CHECKRESPONSETICK = 60000 * 3; // <20>ٽ<EFBFBD><D9BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> (3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?)
|
|||
|
|
|
|||
|
|
const int CHECKGPKFIRSTTICK = 1000 * 60 * 2; // <20><><EFBFBD><EFBFBD> <20>˻<EFBFBD>Ÿ<EFBFBD>̹<EFBFBD>
|
|||
|
|
const int CHECKGPKTICK = 60000;
|
|||
|
|
const int MANAGEDMAX = 20;
|
|||
|
|
|
|||
|
|
#if !defined(_FINAL_BUILD)
|
|||
|
|
const DWORD CHECK_TCP_PING_TICK = 1000*30*1; // 1<><31>
|
|||
|
|
const DWORD CHECK_UDP_PING_TICK = 1000*30*1; // 1<><31>
|
|||
|
|
#else //#if !defined(_FINAL_BUILD)
|
|||
|
|
const DWORD CHECK_TCP_PING_TICK = 1000*60*1; // 1<><31>
|
|||
|
|
const DWORD CHECK_UDP_PING_TICK = 1000*60*1; // 1<><31>
|
|||
|
|
#endif //#if !defined(_FINAL_BUILD)
|
|||
|
|
|
|||
|
|
#if defined(_CH)
|
|||
|
|
const int CHECKLOGINUSERKICKTICK = 30 * 60 * 1000; // <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 30<33><30> <20><><EFBFBD><EFBFBD> <20>ӹ<EFBFBD><D3B9><EFBFBD> <20><><EFBFBD><EFBFBD>!(<28>߱<EFBFBD><DFB1><EFBFBD>)
|
|||
|
|
#else
|
|||
|
|
const int CHECKLOGINUSERKICKTICK = 15 * 60 * 1000; // <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 15<31><35> <20><><EFBFBD><EFBFBD> <20>ӹ<EFBFBD><D3B9><EFBFBD> <20><><EFBFBD><EFBFBD>!
|
|||
|
|
#endif //#if defined(_CH)
|
|||
|
|
const int CHECKNOTAUTHLOGINUSERKICKTICK = 5 * 60 * 1000; // <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ü 5<><35> <20><><EFBFBD><EFBFBD> <20>ӹ<EFBFBD><D3B9><EFBFBD> <20><><EFBFBD><EFBFBD>!
|
|||
|
|
|
|||
|
|
const unsigned int DEFAULTUSERSESSIONID = 10000;
|
|||
|
|
|
|||
|
|
const unsigned int CASHDELUSERDELAY_LIMITTICK = (4*30*1000);
|
|||
|
|
|
|||
|
|
// DB <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
const int DBQUERYSTREAMDATAMAX = (36*1024); // DB <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> ũ<><C5A9> : DB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٷ<EFBFBD> <20>۽ŵǴ<C5B5> <20><><EFBFBD><EFBFBD> ť<><C5A5> <20><><EFBFBD><EFBFBD> <20><> <20>ϰ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ü <20><> <20><><EFBFBD><EFBFBD> ū <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> ũ<>Ⱑ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
const unsigned int DBQUERYAUTOCHKSUM = 0xE41C723F; // DB <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ȭ ó<><C3B3> <20><> üũ<C3BC><C5A9>
|
|||
|
|
|
|||
|
|
const int QUESTINVENBLANKCHECKMIN = 2; // <20><><EFBFBD><EFBFBD>Ʈ <20>κ<EFBFBD><CEBA>丮 üũ <20><> <20><EFBFBD><DEBD><EFBFBD> <20><EFBFBD><DFBC><EFBFBD> <20>Ǵ<EFBFBD> <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
const float MAX_ITEMPRICE_RATE = 0.5f;
|
|||
|
|
|
|||
|
|
#if defined(_FINAL_BUILD)
|
|||
|
|
const int BEGINAUTHLIMITSEC = (9*10); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ѽð<D1BD> (<28><><EFBFBD><EFBFBD>:<3A><>, 0 <20><><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ?)
|
|||
|
|
const int CHECKAUTHLIMITSEC = (6*10); // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ѽð<D1BD> (<28><><EFBFBD><EFBFBD>:<3A><>)
|
|||
|
|
const int BEGINAUTHLIMITTERM = (BEGINAUTHLIMITSEC*1000); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD> (<28><><EFBFBD><EFBFBD>:ms)
|
|||
|
|
//const int CHECKAUTHLIMITTERM = (CHECKAUTHLIMITSEC*1000); // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD> (<28><><EFBFBD><EFBFBD>:ms)
|
|||
|
|
const int CHECKAUTHLIMITTERM = (1*30*1000); // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD> (<28><><EFBFBD><EFBFBD>:ms) // P.S.> <20><><EFBFBD><EFBFBD>, PVP <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> ª<><C2AA> <20><><EFBFBD><EFBFBD>
|
|||
|
|
#else // _FINAL_BUILD
|
|||
|
|
const int BEGINAUTHLIMITSEC = (6*10); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ѽð<D1BD> (<28><><EFBFBD><EFBFBD>:<3A><>, 0 <20><><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ?)
|
|||
|
|
const int CHECKAUTHLIMITSEC = (4*10); // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ѽð<D1BD> (<28><><EFBFBD><EFBFBD>:<3A><>)
|
|||
|
|
const int BEGINAUTHLIMITTERM = (BEGINAUTHLIMITSEC*1000); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD> (<28><><EFBFBD><EFBFBD>:ms)
|
|||
|
|
//const int CHECKAUTHLIMITTERM = (CHECKAUTHLIMITSEC*1000); // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD> (<28><><EFBFBD><EFBFBD>:ms)
|
|||
|
|
const int CHECKAUTHLIMITTERM = (1*20*1000); // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD> (<28><><EFBFBD><EFBFBD>:ms) // P.S.> <20><><EFBFBD><EFBFBD>, PVP <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> ª<><C2AA> <20><><EFBFBD><EFBFBD>
|
|||
|
|
#endif // _FINAL_BUILD
|
|||
|
|
|
|||
|
|
const int RESETAUTHLISTMAX = (1000); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ ũ<><C5A9> (<28><><EFBFBD><EFBFBD>!!! - <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD> <20>۽<EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><>Ŷ ũ<>⸦ <20><><EFBFBD><EFBFBD> <20>ʾƾ<CABE> <20><>)
|
|||
|
|
const int RESETAUTHLISTTERM = (1*1000); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD><DBBE>ֱ<EFBFBD> (<28><><EFBFBD><EFBFBD>:ms)
|
|||
|
|
const int RESETAUTHSERVERTERM = (5*1000); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD><DBBE>ֱ<EFBFBD> (<28><><EFBFBD><EFBFBD>:ms)
|
|||
|
|
const int RESETAUTHWORLDCHECKTERM = (5*1000); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD><DBBE>ֱ<EFBFBD> (<28><><EFBFBD><EFBFBD>:ms)
|
|||
|
|
const int RESETAUTHWORLDLIMITTERM = (2*30*1000); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ <20><><EFBFBD>ѽð<D1BD> (<28><><EFBFBD><EFBFBD>:ms)
|
|||
|
|
|
|||
|
|
const int GETAUTHUSERCOUNT = 1000 * 10; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<><C4AB>Ʈ ȹ<><C8B9><EFBFBD>ֱ<EFBFBD>
|
|||
|
|
|
|||
|
|
const int GUILDMGRCHKTERM = (5*1000); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ <20>ֱ<EFBFBD>
|
|||
|
|
const int GUILDMGRUPDTERM = (10*1000); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֱ<EFBFBD>
|
|||
|
|
const int GUILDCHKMEMBTERM = (30*1000); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ <20>ֱ<EFBFBD>
|
|||
|
|
const int GUILDCHKRESCTERM = (30*1000); // <20><><EFBFBD><EFBFBD> <20>ڿ<EFBFBD><DABF>ݳ<EFBFBD> üũ <20>ֱ<EFBFBD>
|
|||
|
|
const int GUILDREQINFOTERM = (60*1000); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û üũ <20>ֱ<EFBFBD>
|
|||
|
|
const int GUILDRFSVIEWTERM = (10*1000); // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֱ<EFBFBD>
|
|||
|
|
const int GUILDAPLPOINTTERM = (10*1000); // <20><><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ DB <20><><EFBFBD><EFBFBD> <20>ֱ<EFBFBD>
|
|||
|
|
const int GUILDCHKRESCLIMIT = (2*30*1000); // <20><><EFBFBD><EFBFBD> <20>ڿ<EFBFBD><DABF>ݳ<EFBFBD> üũ <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
const int PERIODQUESTTERM = (60*1000); // <20>Ⱓ<EFBFBD><E2B0A3> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20>ֱ<EFBFBD>
|
|||
|
|
|
|||
|
|
const int PERIODGUILDWARTERM = (60*1000); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֱ<EFBFBD>
|
|||
|
|
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, // <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
SERVERTYPE_DB, // DB <20><><EFBFBD><EFBFBD>
|
|||
|
|
SERVERTYPE_VILLAGE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
SERVERTYPE_GAME, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
SERVERTYPE_MASTER, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
SERVERTYPE_LOG, // <20>α<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
SERVERTYPE_MAX,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum ePatchType
|
|||
|
|
{
|
|||
|
|
PATCHTYPE_LOGIN, // <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
PATCHTYPE_DB, // DB <20><><EFBFBD><EFBFBD>
|
|||
|
|
PATCHTYPE_VILLAGE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
PATCHTYPE_GAME, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
PATCHTYPE_MASTER, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
PATCHTYPE_LOG, // <20>α<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
PATCHTYPE_PATCHER, // ESM
|
|||
|
|
PATCHTYPE_CASH, // ij<><C4B3> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
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, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ؽ<EFBFBD>)
|
|||
|
|
CONNECTIONKEY_CASH,
|
|||
|
|
CONNECTIONKEY_BILLING, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ۺ<EFBFBD><DBBA><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
CONNECTIONKEY_SERVICEPATCHER,
|
|||
|
|
CONNECTIONKEY_SERVERMONITOR,
|
|||
|
|
CONNECTIONKEY_TW_AUTHLOGIN, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD> 1 - Authorization : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3>, <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, ij<><C4B3> <20>ܿ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ ?) üũ)
|
|||
|
|
CONNECTIONKEY_TW_AUTHLOGOUT, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD> 2 - Logout : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>αƿ<D7BE> ó<><C3B3>)
|
|||
|
|
CONNECTIONKEY_TW_QUERY,
|
|||
|
|
CONNECTIONKEY_TW_SHOPITEM,
|
|||
|
|
CONNECTIONKEY_TW_COUPON, // <20><><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CONNECTIONKEY_TW_COUPON_ROLLBACK, // <20><><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD>..¡<><EFBFBD><D7B7><EFBFBD><EFBFBD>͵<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ٴ<EFBFBD>..<2E><>
|
|||
|
|
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<69><6E><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>°<EFBFBD>
|
|||
|
|
{
|
|||
|
|
STATE_NONE,
|
|||
|
|
|
|||
|
|
// login
|
|||
|
|
STATE_CHECKVERSION,
|
|||
|
|
STATE_CHECKLOGIN, // <20><><EFBFBD>̵<EFBFBD> <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD> Ȯ<>λ<EFBFBD><CEBB><EFBFBD>
|
|||
|
|
STATE_SERVERLIST,
|
|||
|
|
STATE_WAITUSER, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
STATE_CHARLIST, // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
|||
|
|
STATE_CHANNELLIST,
|
|||
|
|
STATE_CONNECTVILLAGE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ӱ<EFBFBD><D3B0>ɻ<EFBFBD><C9BB><EFBFBD>
|
|||
|
|
STATE_CONNECTGAME, // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ӱ<EFBFBD><D3B0>ɻ<EFBFBD><C9BB><EFBFBD>
|
|||
|
|
STATE_RECONNECTLOGIN, // <20><>Ŀ<EFBFBD><C4BF>Ʈ <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// master
|
|||
|
|
STATE_CHECKVILLAGE, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ư<EFBFBD> <20>ǹǷ<C7B9> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>˴ϴ<CBB4>.
|
|||
|
|
STATE_CHECKGAME, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A1> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>. <20><><EFBFBD><EFBFBD>
|
|||
|
|
STATE_CHECKRECONNECTLOGIN, //ij<><C4B3><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>â<EFBFBD><C3A2><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A1> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>. <20><><EFBFBD><EFBFBD>
|
|||
|
|
STATE_VILLAGE, // village<67><65><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD>
|
|||
|
|
STATE_GAME, // game<6D><65><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD>
|
|||
|
|
STATE_LOGIN, // login<69><6E><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD>
|
|||
|
|
|
|||
|
|
// village
|
|||
|
|
STATE_LOADUSERDATA, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DB<44><42><EFBFBD><EFBFBD> <20>ҷ<EFBFBD><D2B7>Դ<EFBFBD><D4B4><EFBFBD>
|
|||
|
|
STATE_READY, // <20>ʵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>غ<EFBFBD> <20>Ϸ<EFBFBD>
|
|||
|
|
STATE_READYTOVILLAGE, // village <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ű涧 (<28>غ<EFBFBD><D8BA>ܰ<EFBFBD>)
|
|||
|
|
STATE_READYTOGAME, // game<6D><65><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A5> (<28>غ<EFBFBD><D8BA>ܰ<EFBFBD>)
|
|||
|
|
STATE_READYTOLOGIN, // login<69><6E><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A5> (<28>غ<EFBFBD><D8BA>ܰ<EFBFBD>)
|
|||
|
|
STATE_MOVETOVILLAGE, // village <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ű涧
|
|||
|
|
STATE_MOVETOGAME, // game<6D><65><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A5>
|
|||
|
|
STATE_MOVETOLOGIN, // login<69><6E><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A5>
|
|||
|
|
STATE_MOVESAMECHANNEL, // <20><><EFBFBD><EFBFBD> ä<><C3A4> <20>̵<EFBFBD>
|
|||
|
|
|
|||
|
|
#if defined(_HSHIELD)
|
|||
|
|
HSHIELD_NONE = 0,
|
|||
|
|
HSHIELD_RESPONSEVERSION = 1, // checkversion <20><>Ŷ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
HSHIELD_RECONNECTLOGIN, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
HSHIELD_LOADUSER, // <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
HSHIELD_REQUEST, // _AhnHS_MakeRequest <20><>û<EFBFBD><C3BB><EFBFBD><EFBFBD>
|
|||
|
|
HSHIELD_RESPONSE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
#endif // _HSHIELD
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//enumulation
|
|||
|
|
//GameRoom
|
|||
|
|
enum eGameRoomState
|
|||
|
|
{
|
|||
|
|
_GAME_STATE_NONE, //<2F><><EFBFBD><EFBFBD>!
|
|||
|
|
_GAME_STATE_READY2CONNECT, //<2F>ʱ<EFBFBD>ȭ <20>Ϸ<EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD>
|
|||
|
|
_GAME_STATE_CONNECT2CHECKAUTH, //DB <20><> <20>̿<EFBFBD><CCBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ
|
|||
|
|
_GAME_STATE_CONNECT2LOAD, //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD>! <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD>·<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
_GAME_STATE_LOAD2SYNC, //Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD> <20>غ<EFBFBD><D8BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
_GAME_STATE_SYNC2SYNC,
|
|||
|
|
_GAME_STATE_SYNC2PLAY, //<2F>÷<EFBFBD><C3B7>̴<EFBFBD><CCB4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
_GAME_STATE_PLAY, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
|||
|
|
|
|||
|
|
_GAME_STATE_CANCEL_LOADING, //<2F><><EFBFBD><EFBFBD><D7B6><EFBFBD><EFBFBD><EFBFBD> <20>δ<EFBFBD><CEB4><EFBFBD> <20><>ũ
|
|||
|
|
_GAME_STATE_DESTROYED, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
|||
|
|
_GAME_STATE_FARM_NONE, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD>Դϴ<D4B4>. <20><><EFBFBD><EFBFBD> <20><>ƾ<EFBFBD><C6BE> <20><EFBFBD> <20>Ϲݰ<CFB9> <20>ٸ<EFBFBD><D9B8><EFBFBD> <20>귯<EFBFBD><EAB7AF><EFBFBD>ϴ<EFBFBD> _GAME_STATE_PLAY<41><59><EFBFBD>ʹ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
_GAME_STATE_FARM_READY2LOAD, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD>
|
|||
|
|
_GAME_STATE_FARM_LOAD2PLAY, //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20>Ҵ<DEBE>. <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD> <20>˸<EFBFBD><CBB8><EFBFBD>
|
|||
|
|
_GAME_STATE_FARM_PAUSE, //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>~
|
|||
|
|
_GAME_STATE_PVP_SYNC2GAMEMODE, //<2F>Ǻ<EFBFBD><C7BA><EFBFBD><EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>¿<EFBFBD><C2BF><EFBFBD> <20><><EFBFBD>۽<EFBFBD><DBBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>dzʶٰ<CAB6> <20><><EFBFBD><EFBFBD><EFBFBD>ް<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20>Ѿ<D1BE><EEB0A1> <20>߰<EFBFBD><DFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//GameSession
|
|||
|
|
enum eGameSessionState
|
|||
|
|
{
|
|||
|
|
SESSION_STATE_NONE,
|
|||
|
|
SESSION_STATE_READY, //<2F><>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȵǾ<C8B5> <20><><EFBFBD><EFBFBD>
|
|||
|
|
SESSION_STATE_RUDP_CONNECTED,
|
|||
|
|
SESSION_STATE_CONNECTED, //<2F><><EFBFBD><EFBFBD> <20>Ǿ<EFBFBD><C7BE><EFBFBD>!
|
|||
|
|
SESSION_STATE_LOAD, //<2F><><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD>մϴ<D5B4>.
|
|||
|
|
SESSION_STATE_LOADED, //<2F><><EFBFBD>ӷε<D3B7><CEB5>Ϸ<EFBFBD>!
|
|||
|
|
SESSION_STATE_WAIT_TO_READY, //Ready <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ٸ<EFBFBD>
|
|||
|
|
SESSION_STATE_READY_TO_SYNC, //Sync <20>غ<EFBFBD> <20>Ϸ<EFBFBD>!
|
|||
|
|
SESSION_STATE_SYNC_READY_2_DELAY, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBC><EFBFBD>ó<EFBFBD><C3B3><EFBFBD>غ<EFBFBD><D8BA><EFBFBD> <20>ȵǻ<C8B5><C7BB>¿<EFBFBD><C2BF><EFBFBD> <20><EFBFBD><DEBC><EFBFBD><EFBFBD><EFBFBD> <20>ҽ<DEBE><D2BD>ϴ<EFBFBD>.
|
|||
|
|
SESSION_STATE_READY_TO_PLAY, //Sync 2 Play
|
|||
|
|
SESSION_STATE_GAME_PLAY, //<2F><><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>!
|
|||
|
|
SESSION_STATE_READY_TO_VILLAGE, //game -> village (<28>غ<EFBFBD><D8BA>ܰ<EFBFBD>)
|
|||
|
|
SESSION_STATE_READY_TO_LOGIN, //game -> login char select (<28>غ<EFBFBD><D8BA>ܰ<EFBFBD>)
|
|||
|
|
SESSION_STATE_RECONNECTLOGIN, //game -> login char select
|
|||
|
|
SESSION_STATE_SERVER_CHANGE, //<2F><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>! <20>̵<EFBFBD><CCB5>Ϸ<EFBFBD><CFB7>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
SESSION_STATE_DISCONNECTED, //©<><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! (tcp<63><70><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
//SESSION_STATE_CRASH, //ũ<><C5A9><EFBFBD><EFBFBD>!
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 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, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_GAUNTLET, // <20><>Ʋ<EFBFBD><C6B2>
|
|||
|
|
WEAPON_AXE, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_HAMMER, // <20>ظ<EFBFBD>
|
|||
|
|
WEAPON_SMALLBOW, // <20>ұ<EFBFBD>
|
|||
|
|
WEAPON_BIGBOW, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_CROSSBOW, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_STAFF, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_BOOK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_ORB, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_PUPPET, // <20>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_MACE, // <20><><EFBFBD>̽<EFBFBD>
|
|||
|
|
WEAPON_FLAIL, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_WAND, // <20>ϵ<EFBFBD>
|
|||
|
|
WEAPON_SHIELD, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_ARROW, // ȭ<><C8AD>
|
|||
|
|
WEAPON_CANNON, // ij<><C4B3>
|
|||
|
|
WEAPON_BUBBLEGUN, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_GLOVE, // <20>۷<EFBFBD><DBB7><EFBFBD>
|
|||
|
|
WEAPON_FAN, // <20><>ä
|
|||
|
|
WEAPON_CHAKRAM, // <20><>ũ<EFBFBD><C5A9>
|
|||
|
|
WEAPON_CHARM, // <20><>
|
|||
|
|
WEAPON_SCIMITER, // <20>ù<EFBFBD><C3B9><EFBFBD>
|
|||
|
|
WEAPON_DAGGER, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
WEAPON_CROOK, // ũ<><C5A9>
|
|||
|
|
WEAPON_SPEAR,
|
|||
|
|
WEAPON_RESERVED1,
|
|||
|
|
WEAPON_BRACELET,
|
|||
|
|
WEAPON_KNUCKLE,
|
|||
|
|
WEAPON_RESERVED2,
|
|||
|
|
WEAPON_CLAW,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum eParts
|
|||
|
|
{
|
|||
|
|
PARTS_FACE, //
|
|||
|
|
PARTS_HAIR,
|
|||
|
|
PARTS_HELMET, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
PARTS_BODY, // <20><>ü
|
|||
|
|
PARTS_LEG, // <20><>ü
|
|||
|
|
PARTS_HAND, // <20><>
|
|||
|
|
PARTS_FOOT, // <20><>
|
|||
|
|
PARTS_NECKLACE,
|
|||
|
|
PARTS_EARRING,
|
|||
|
|
PARTS_RING,
|
|||
|
|
PARTS_RING2,
|
|||
|
|
PARTS_CREST,
|
|||
|
|
PARTS_FULLSET, // Ǯ<><C7AE>Ʈ
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum eQuestDataType
|
|||
|
|
{
|
|||
|
|
QUESTDATA_STATE = 1, // <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
|||
|
|
QUESTDATA_STEP, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
|||
|
|
QUESTDATA_JOURNAL, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum eEtcType // DNEtc table Type
|
|||
|
|
{
|
|||
|
|
ETC_NONE,
|
|||
|
|
ETC_QUICKSLOT, // TQuickSlot QuickSlot[QUICKSLOTMAX]; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>â (10<31><30><EFBFBD><EFBFBD> 2<><32>)
|
|||
|
|
ETC_JOB, // USHORT wJobArray[JOBMAX]; // <20><><EFBFBD><EFBFBD> (0: <20><>ó<EFBFBD><C3B3> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>~ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
ETC_NOTIFIER, // int Notifier[Notifier_MaxCount]; // <20>˸<EFBFBD><CBB8><EFBFBD> (quest, mission)
|
|||
|
|
ETC_DUNGEONCLEAR, // TDungeonClearData DungeonClear[DUNGEONCLEARMAX]; // <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> (120<32><30>)
|
|||
|
|
ETC_ETERNITYITEM, // USHORT wEternityItem[ETERNITYITEMMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ETC_EQUIPDELAYTIME, // int nEquipDelayTime[EQUIPMAX]; // equip index<65><78> <20><><EFBFBD>õ<EFBFBD> cooltime
|
|||
|
|
ETC_EQUIPREMAINTIME, // int nEquipRemainTime[EQUIPMAX];
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum eAuthType
|
|||
|
|
{
|
|||
|
|
AUTHTYPE_BEGINAUTH, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
AUTHTYPE_STOREAUTH, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
AUTHTYPE_CHECKAUTH, // <20><><EFBFBD><EFBFBD> üũ
|
|||
|
|
AUTHTYPE_RESETAUTH, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
AUTHTYPE_CNT,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum eAbuseCode
|
|||
|
|
{
|
|||
|
|
ABUSE_NONE = 0,
|
|||
|
|
ABUSE_MOVE_SERVERS, // <20><><EFBFBD><EFBFBD> <-> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
ABUSE_MOVE_INSKY, // <20><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
|
|||
|
|
ABUSE_HACKSHIELD, // <20>ٽ<EFBFBD><D9BD>忡<EFBFBD><E5BFA1> <20><><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><CCBF><EFBFBD>
|
|||
|
|
ABUSE_TWN_EXTENDLOG, // <20>븸<EFBFBD><EBB8B8> <20>߰<EFBFBD> <20>αװ<CEB1> #48714 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
#if defined( PRE_ADD_CHARACTERCHECKSUM )
|
|||
|
|
ABUSE_CHARACTER_CHECKSUM, // #80315 ij<><C4B3><EFBFBD><EFBFBD> üũ<C3BC><C5A9> <20>̻<EFBFBD> <20>߰<EFBFBD>
|
|||
|
|
#endif // #if defined( PRE_ADD_CHARACTERCHECKSUM )
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct WorldUserState
|
|||
|
|
{
|
|||
|
|
enum eCode
|
|||
|
|
{
|
|||
|
|
Add = 0,
|
|||
|
|
Delete,
|
|||
|
|
Modify,
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
namespace DBDNMembership
|
|||
|
|
{
|
|||
|
|
struct OrderStatusCode
|
|||
|
|
{
|
|||
|
|
enum eOrderStatusCode
|
|||
|
|
{
|
|||
|
|
SuccessPayment = 1, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> & pickup <20><><EFBFBD><EFBFBD>
|
|||
|
|
Success = 2, // <20><><EFBFBD>ſϷ<C5BF>
|
|||
|
|
FailPayment = 3, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
namespace DBDNWorldDef
|
|||
|
|
{
|
|||
|
|
struct CharacterExpChangeCode
|
|||
|
|
{
|
|||
|
|
enum eCharacterExpChangeCode
|
|||
|
|
{
|
|||
|
|
Quest = 1, // : <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> -> FKey = QuestID
|
|||
|
|
Dungeon = 2, // : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> -> FKey = PartyID or NULL
|
|||
|
|
Cheat = 3, // : ġƮ -> FKey = NULL
|
|||
|
|
Admin = 4, // : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Eternity = 5, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> FKey = ItemSerial
|
|||
|
|
PvP = 6, // : PvP <20>Ƿε<C7B7> <20><><EFBFBD><EFBFBD> -> FKey = NULL
|
|||
|
|
DungeonMonster = 7, // :<3A><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ġ -> FKey = PartyID or NULL( <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD> <20><><EFBFBD><EFBFBD>..DB<44><42> <20>Ѿ<D1BE><EEB0A5><EFBFBD><EFBFBD> Dungeon <20><><EFBFBD><EFBFBD> Convert <20>ȴ<EFBFBD>. )
|
|||
|
|
Item = 8, // : <20><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> FKey = ItemID
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct CharacterLevelChangeCode
|
|||
|
|
{
|
|||
|
|
enum eCharacterLevelChangeCode
|
|||
|
|
{
|
|||
|
|
Normal = 1, // : <20>Ϲ<EFBFBD>
|
|||
|
|
Cheat = 2, // : ġƮ
|
|||
|
|
Admin = 3, // : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct CoinChangeCode
|
|||
|
|
{
|
|||
|
|
enum eCoinChangeCode // <20><><EFBFBD><EFBFBD> : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>÷<EFBFBD><C3B7>, â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ȱ<EFBFBD>, <20><>ȯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ȯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ų <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SP<53><50> <20><><EFBFBD>ԵǾ<D4B5> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
|||
|
|
{
|
|||
|
|
DoNotDBSave = 0,
|
|||
|
|
QuestReward = 1, // : <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> (FKey: QuestID)
|
|||
|
|
PickUp = 2, // : <20>Ⱦ<EFBFBD> (FKey: PartyID or NULL)
|
|||
|
|
Cheat = 3, // : ġƮ (FKey: NULL)
|
|||
|
|
Admin = 4, // : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (FKey: AuditLogID)
|
|||
|
|
Use = 5, // : <20><><EFBFBD><EFBFBD> (FKey: NULL)
|
|||
|
|
// 6: <20><><EFBFBD><EFBFBD><EFBFBD>۽<EFBFBD>÷<EFBFBD><C3B7> (FKey: MailID)
|
|||
|
|
// 7: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7> (FKey: MailID)
|
|||
|
|
InvenToWare = 8, // : â<><C3A2> <20>Ա<EFBFBD> (FKey: NULL)
|
|||
|
|
WareToInven = 9, // : â<><C3A2> <20><><EFBFBD><EFBFBD> (FKey: NULL)
|
|||
|
|
// 10: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ȱ<EFBFBD> (FKey: NpcID)
|
|||
|
|
// 11: <20><>ȯ <20>Ա<EFBFBD> (FKey: CharacterID)
|
|||
|
|
// 12: <20><>ȯ <20><><EFBFBD><EFBFBD> (FKey: CharacterID)
|
|||
|
|
QuestSub = 13, // <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> (FKey: QuestID)
|
|||
|
|
RepairItem = 14, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (FKey: ItemSerial)
|
|||
|
|
// 15: <20><>ȯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (FKey: NULL)
|
|||
|
|
// 16: <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (FKey: ItemEnchantLogID)
|
|||
|
|
// 17: <20><>ų <20><><EFBFBD><EFBFBD> (FKey: SkillID)
|
|||
|
|
// 18: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (FKey: ItemSerial)
|
|||
|
|
DisjointTax = 19, // <20><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD> (FKey: NULL)
|
|||
|
|
// 20: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (FKey: MailID)
|
|||
|
|
// 21: <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (FKey: TradeID)
|
|||
|
|
// 22: <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (FKey: TradeID)<29><>
|
|||
|
|
// 23: <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǹű<C7B8> (FKey: TradeID)
|
|||
|
|
// 24: <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD> <20>ŷ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (FKey: TradeID)
|
|||
|
|
CompoundTax = 25, // <20><><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD> (FKey: NULL)
|
|||
|
|
// 26: ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (FKey: NULL)
|
|||
|
|
MaxLevelExperienceTransGold = 27, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ġ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (FKey: NULL)
|
|||
|
|
Present = 28, // <20><><EFBFBD><EFBFBD> (FKey: NpcID)
|
|||
|
|
// 29: <20><><EFBFBD><EFBFBD> â<><C3A2> (FKey: GuildID)
|
|||
|
|
GuildLevelup = 30, // 30: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> (FKey: GuildID)
|
|||
|
|
InvenToGuildWare = 31, // 31: <20><><EFBFBD><EFBFBD> â<><C3A2> <20>Ա<EFBFBD> (FKey: GuildID)
|
|||
|
|
GuildWareToInven = 32, // 32: <20><><EFBFBD><EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD> (FKey: GuildID)
|
|||
|
|
GuildRewardBuy = 33, // 33: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (FKey: GuildItemID)
|
|||
|
|
Donation = 34, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
// 35: (DOORS) <20><><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 36: (DOORS) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 37: (DOORS) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 38: (DOORS) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 39: (DOORS) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 40: (DOORS) <20><><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 41: (DOORS) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 42: (DOORS) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 43: (DOORS) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 44: (DOORS) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CharmItem = 45, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (FKey: ItemID)
|
|||
|
|
ChaosItem = 46, // ī<><C4AB><EFBFBD><EFBFBD> ť<><C5A5> (FKey: ItemID)
|
|||
|
|
SpecialBox = 47, // Ư<><C6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (FKey: EventRewardID)
|
|||
|
|
// 48: <20><><EFBFBD><EFBFBD>â<EFBFBD><C3A2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 49: C2C <20><><EFBFBD><EFBFBD>
|
|||
|
|
// 50: C2C ȸ<><C8B8>
|
|||
|
|
// 51: C2C <20>ŷ<EFBFBD>
|
|||
|
|
TalismanSlotOpen = 52, // 52: Ż<><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(FKey: <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD>)
|
|||
|
|
TalismanSlotChange = 53, // 53: Ż<><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ <20>̵<EFBFBD>
|
|||
|
|
|
|||
|
|
GamblePrice=55, // 55: <20><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
GambleFirstWinner=56, // 56: <20><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD> 1<><31> <20><><EFBFBD><EFBFBD>
|
|||
|
|
GambleSecondWinner=57, // 56: <20><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD> 2<><32> <20><><EFBFBD><EFBFBD>
|
|||
|
|
DWC = 58, // 58: DWC ij<><C4B3><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
enum ePetalChangeCode
|
|||
|
|
{
|
|||
|
|
GambleEnterPetal= 9, // 9: <20><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD> <20><>Ż <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
GambleFirstWinPetal= 12, // 12: <20><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD> 1<><31> <20><>Ż <20><><EFBFBD><EFBFBD>
|
|||
|
|
GambleSecondWinPetal= 13, // 13: <20><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD> 2<><32> <20><>Ż <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct CoinTypeCode
|
|||
|
|
{
|
|||
|
|
enum eCoinTypeCode
|
|||
|
|
{
|
|||
|
|
Coin = 1, // : <20><><EFBFBD><EFBFBD>
|
|||
|
|
WarehouseCoin = 2, // : â<><C3A2> <20><><EFBFBD><EFBFBD>
|
|||
|
|
RebirthCoin = 3, // : <20><>Ȱ <20><><EFBFBD><EFBFBD>
|
|||
|
|
PCBangRebirthCoin = 4, // : PC<50><43> <20><>Ȱ <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct EquipmentAttributeCode
|
|||
|
|
{
|
|||
|
|
enum eEquipmentAttributeCode
|
|||
|
|
{
|
|||
|
|
DelayTime = 1, // : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD>
|
|||
|
|
RemainTime = 2, // : Remain <20>ð<EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct FatigueTypeCode
|
|||
|
|
{
|
|||
|
|
enum eFatigueTypeCode
|
|||
|
|
{
|
|||
|
|
PCBang = 1, // : PC<50><43> <20>Ƿε<C7B7>
|
|||
|
|
Daily = 2, // : <20><><EFBFBD><EFBFBD> <20>Ƿε<C7B7>
|
|||
|
|
Weekly = 3, // : <20>ְ<EFBFBD> <20>Ƿε<C7B7>
|
|||
|
|
Event = 4, // <20>̺<EFBFBD>Ʈ <20>Ƿε<C7B7>
|
|||
|
|
VIP = 5, // VIP<49>Ƿε<C7B7>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
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, // : <20><><EFBFBD><EFBFBD>Ʈȹ<C6AE><C8B9>
|
|||
|
|
Progress = 1, // : <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct SkillPointCode
|
|||
|
|
{
|
|||
|
|
enum eSkillPointCode
|
|||
|
|
{
|
|||
|
|
LevelUp = 1, // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
EternityItem = 2, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Repair = 10, // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct SkillChangeCode
|
|||
|
|
{
|
|||
|
|
enum eSkillChangeCode
|
|||
|
|
{
|
|||
|
|
Gain = 1, // : <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>Ʈ ȹ<><C8B9>
|
|||
|
|
Use = 2, // : <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> & <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
|||
|
|
Reset = 3, // : <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
|||
|
|
GainByQuest = 4, // : <20><>ų ȹ<><C8B9> (<28><><EFBFBD><EFBFBD>Ʈ)
|
|||
|
|
GainByDungeon = 5, // : <20><>ų ȹ<><C8B9> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
GainByBook = 6, // : <20><>ų ȹ<><C8B9> (<28><>ų<EFBFBD><C5B3>)
|
|||
|
|
GainByEvent = 7, // : <20><>ų ȹ<><C8B9> (<28>̺<EFBFBD>Ʈ)
|
|||
|
|
GainByAdmin = 8, // : <20><>ų ȹ<><C8B9> (by <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
DelByDrop = 9, // : <20><>ų <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
|||
|
|
DelByQuest = 10, // : <20><>ų <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>Ʈ)
|
|||
|
|
DelByEvent = 11, // : <20><>ų <20><><EFBFBD><EFBFBD> (<28>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>)
|
|||
|
|
DelByAdmin = 12, // : <20><>ų <20><><EFBFBD><EFBFBD> (by <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
ModSkillLevelByAdmin = 13, // : <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (by <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
GainByBuy = 14, // 14<31><34>ųȹ<C5B3><C8B9>(<28><><EFBFBD><EFBFBD>)
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TradeStatusCode
|
|||
|
|
{
|
|||
|
|
enum eTradeStatusCode
|
|||
|
|
{
|
|||
|
|
Sell = 0, // : <20>Ǹ<EFBFBD><C7B8><EFBFBD>
|
|||
|
|
CompleteSellByItem = 1, // : <20>ǸſϷ<C5BF>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
CompleteSellByCoin = 2, // : <20>ǸſϷ<C5BF>(<28>Ǹű<C7B8> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
CancelSell = 3, // : <20>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Expire = 4, // : <20>Ⱓ<EFBFBD><E2B0A3><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct AddMaterializedItem
|
|||
|
|
{
|
|||
|
|
enum eCode
|
|||
|
|
{
|
|||
|
|
Pick = 1, // 1=<3D>ݱ<EFBFBD> -> FKey: PartyID or NULL
|
|||
|
|
Mission = 2, // 2=<3D>̼<EFBFBD> -> FKey: MissionID
|
|||
|
|
QuestReward = 3, // 3=<3D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> -> FKey: QuestID
|
|||
|
|
Present = 4, // 4=<3D><><EFBFBD><EFBFBD> -> FKey: PurchaseID
|
|||
|
|
PointBuy = 5, // 5=<3D>ΰ<EFBFBD><CEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> -> FKey: NPCID
|
|||
|
|
CashBuy = 6, // 6=ij<><C4B3> <20><><EFBFBD><EFBFBD> -> FKey: PurchaseID
|
|||
|
|
ReserveMoneyBuy = 7, // 7=<3D><>Ż <20><><EFBFBD><EFBFBD> -> FKey: PurchaseID
|
|||
|
|
GetGachaResultCashItem_JP = 9, // 9=<3D>Ϻ<EFBFBD> <20><>í <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ij<><C4B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
GMGive = 10, // 10=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> -> FKey: AuditLogID
|
|||
|
|
ItemDecompose = 11, // 11=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> -> FKey: NPCID
|
|||
|
|
// ItemEnchantFail = 12, // 12=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȭ <20><><EFBFBD><EFBFBD> -> FKey: ItemEnchantID
|
|||
|
|
ItemCompound = 13, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
RandomItem = 14, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
DungeonReward = 15, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
PvPReward = 16, // pvp<76><70><EFBFBD><EFBFBD>
|
|||
|
|
CharacterCreate = 17, // <20>⺻<EFBFBD><E2BABB><EFBFBD><EFBFBD>
|
|||
|
|
SystemMail = 18, // <20>ý<EFBFBD><C3BD>۸<EFBFBD><DBB8><EFBFBD> (<28>̼Ǻ<CCBC><C7BA><EFBFBD>)
|
|||
|
|
FixedItem = 19, // ij<><C4B3><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>, <20>Ӹ<EFBFBD>) - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>Ӹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EEBEB2> -> FKey: ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۽ø<DBBD><C3B8><EFBFBD> (<28>κ<EFBFBD><CEBA><EFBFBD> <20>ִ¾<D6B4>)
|
|||
|
|
CostumeMix = 21, // <20>ڽ<EFBFBD>Ƭ <20>ռ<EFBFBD>
|
|||
|
|
FishingReward = 22, // <20><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
|
Harvest = 23, // <20><>Ȯ
|
|||
|
|
Cheat = 24, // ġƮ
|
|||
|
|
PvPLadderPoint = 25, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
UnionPoint = 26, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
Trigger = 27, // Ʈ<><C6AE><EFBFBD><EFBFBD>
|
|||
|
|
GuildWarFestivalPoint = 28, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
Repurchase = 29,
|
|||
|
|
GuildReversionItem = 30,
|
|||
|
|
CostumeRandomMixItem = 31,
|
|||
|
|
BestFriendItem = 34,
|
|||
|
|
COMEBACKREWARD = 35, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
SpecialBoxReward = 36,
|
|||
|
|
NewbieGameQuitReward = 37, //<2F>ű<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
NewbiewReConnectReward = 38, //<2F>ű<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
ComebackGameQuitReward = 39, //<2F><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
SeedPointBuy = 40, //<2F>õ<EFBFBD><C3B5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct MailTypeCode
|
|||
|
|
{
|
|||
|
|
enum eCode
|
|||
|
|
{
|
|||
|
|
Normal = MailType::NormalMail, // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Mission = MailType::MissionMail, // <20>̼<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Admin = MailType::AdminMail, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
EventMail = MailType::EventMail, // <20>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
|||
|
|
VIP = MailType::VIPMail, // VIP
|
|||
|
|
MasterSystem = MailType::MasterSystemMail, // <20><><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
|
|||
|
|
NpcReputaion = MailType::NpcReputationMail, // NPCȣ<43><C8A3><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
|
|||
|
|
Quest = MailType::Quest, // <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
GuildWarReward = MailType::GuildWarReward, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
SpecialBox_Account = MailType::SpecialBox_Account, // Ư<><C6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8>
|
|||
|
|
SpecialBox_Character = MailType::SpecialBox_Character, // Ư<><C6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD><5F>ij<EFBFBD><C4B3><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8>
|
|||
|
|
Cadge = MailType::Cadge, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
GuildMaxLevelReward = MailType::GuildMaxLevelReward,// <20><><EFBFBD>ʱ<EFBFBD><CAB1>尡<EFBFBD><E5B0A1> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
AppellationBookReward = MailType::AppellationBookReward, // Īȣ <20>÷<EFBFBD><C3B7>Ǻ<EFBFBD> <20>Ϸ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct UseItem
|
|||
|
|
{
|
|||
|
|
enum eUseItemCode
|
|||
|
|
{
|
|||
|
|
DoNotDBSave = 0,
|
|||
|
|
Use = 1, // 1=<3D>Ҹ<EFBFBD><D2B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Destroy = 2, // 2=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
DeCompose = 4, // 4=<3D><><EFBFBD><EFBFBD>
|
|||
|
|
Present = 5, // 5=<3D><><EFBFBD><EFBFBD>
|
|||
|
|
GuildReversionItem = 6, // 6=<3D><><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD> <20>߹<EFBFBD><DFB9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ͼӾ<CDBC><D3BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
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, // <20><>Ȯâ<C8AE><C3A2>
|
|||
|
|
ServerWare = 17, // <20><><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2>
|
|||
|
|
ServerWareCash = 18, // <20><><EFBFBD><EFBFBD> ij<><C4B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2>
|
|||
|
|
Talisman = 19, // Ż<><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
PeriodInventory = 20,
|
|||
|
|
PeriodWarehouse = 21,
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct PetType
|
|||
|
|
{
|
|||
|
|
enum eCode
|
|||
|
|
{
|
|||
|
|
Vehicle = 1,
|
|||
|
|
Pet = 2,
|
|||
|
|
SATIETY_PET = 3,
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct PayMethodCode
|
|||
|
|
{
|
|||
|
|
enum eCode
|
|||
|
|
{
|
|||
|
|
Coin = 1, // 1: <20><><EFBFBD><EFBFBD>
|
|||
|
|
Cash = 2, // 2: ij<><C4B3>
|
|||
|
|
Petal = 3, // 3: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Coupon = 4, // 4: <20><><EFBFBD><EFBFBD>
|
|||
|
|
Admin = 5, // 5: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Quest = 6, // 6: <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>
|
|||
|
|
Mission = 7, // 7: <20>̼Ǻ<CCBC><C7BA><EFBFBD>
|
|||
|
|
LevelupEvent = 8, // 8=ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
VIP = 9, // 9 : VIP <20><><EFBFBD><EFBFBD>
|
|||
|
|
PvP = 10, // 10 : PVP <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
Union_Commerical = 11, // 11 : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
Union_Royal = 12, // 12 : <20>ռ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
Union_Liberty = 13, // 13 : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
Cash_NexonUSA = 14, // 14 : <20>ؽ<EFBFBD><D8BD>Ƹ<C6B8>ī ij<><C4B3>
|
|||
|
|
Event = 15, // 15 : <20>̺<EFBFBD>Ʈ
|
|||
|
|
GuildWar_Festival = 16, // 16 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
GuildWar_Reward = 17, // 17 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Comeback = 19, // 18 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BestFriend = 20, // 20 : <20><>ģ
|
|||
|
|
BeginnerGuild = 21, // 21 : <20>ʺ<EFBFBD><CABA>ڱ<EFBFBD><DAB1><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
GuildSupport = 22, // 22 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ActiveMission = 23, // 23 : <20><>Ƽ<EFBFBD><C6BC><EFBFBD>̼<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
#if defined( PRE_ADD_STAMPSYSTEM )
|
|||
|
|
Stamp = 24, // 24 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
#endif // #if defined( PRE_ADD_STAMPSYSTEM )
|
|||
|
|
#if defined( PRE_ADD_NEW_MONEY_SEED )
|
|||
|
|
SeedPoint = 25, // 25 : <20>õ<EFBFBD><C3B5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
#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, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
Character, // ij<><C4B3><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
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, // <20>ڽ<EFBFBD><DABD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
MyMasterInfo, // <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
OptionalMasterInfo, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ư<><C6AF> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
#if defined( PRE_ADD_SECONDARY_SKILL )
|
|||
|
|
|
|||
|
|
struct SecondarySkillTypeCode
|
|||
|
|
{
|
|||
|
|
enum eCode
|
|||
|
|
{
|
|||
|
|
ProductionSkill = SecondarySkill::Type::ProductionSkill, // <20><><EFBFBD>꽺ų
|
|||
|
|
ManufactureSkill = SecondarySkill::Type::ManufactureSkill, // <20><><EFBFBD>۽<EFBFBD>ų
|
|||
|
|
CommonSkill = SecondarySkill::Type::CommonSkill, // <20><><EFBFBD>뽺ų
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
#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, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
SeedPoint = 6, // <20>õ<EFBFBD> <20>Ӵ<EFBFBD>
|
|||
|
|
Max,
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
struct GuildWarRewardType
|
|||
|
|
{
|
|||
|
|
enum eGuildWarRewardType
|
|||
|
|
{
|
|||
|
|
GuildWarFestivalWin = 1, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
GuildWarFestivalLose, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>
|
|||
|
|
GuildWarFinalUnder4, // <20><><EFBFBD><EFBFBD> 4<><34><EFBFBD≯<EFBFBD>
|
|||
|
|
GuildWarFinal4, // <20><><EFBFBD><EFBFBD> 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
GuildWarFinal2, // <20><><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
GuildWarFinalWin, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>
|
|||
|
|
GuildWarFinalAbnormalLose, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?)
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
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, //<2F>׳<EFBFBD> <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD> <20>Ӵ<EFBFBD> <20><EFBFBD><D7B7><EFBFBD>
|
|||
|
|
_GAMESERVER_AFFINITYTYPE_HYBRYD, //<2F>Ǻ<EFBFBD><C7BA>ǵ<EFBFBD> <20>ް<EFBFBD> <20><> <20>ƿ<DEBE>
|
|||
|
|
_GAMESERVER_AFFINITYTYPE_PVP, //<2F>Ǻ<EFBFBD><C7BA>Ǹ<EFBFBD> <20>ƿ<DEBE>
|
|||
|
|
_GAMESERVER_AFFINITYTYPE_FARM, //<2F><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>!
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 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 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
eChSndaAuthFlag_UseECard = (1 << 1), // ECard <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
#endif // _CH
|
|||
|
|
|
|||
|
|
// structure -----------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
struct TChannelInfo
|
|||
|
|
{
|
|||
|
|
USHORT nChannelID; //<2F>Ҵ<EFBFBD><D2B4><EFBFBD> ä<><C3A4>(<28>ʵ<EFBFBD>)<29><><EFBFBD>̵<EFBFBD>
|
|||
|
|
USHORT nChannelIdx;
|
|||
|
|
USHORT nMapIdx; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
|||
|
|
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; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
|||
|
|
char cWorldID;
|
|||
|
|
WCHAR wszWorldName[WORLDNAMELENMAX];
|
|||
|
|
UINT nWorldMaxUser; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD>
|
|||
|
|
USHORT nDefaultMaxUser;
|
|||
|
|
bool bOnline; // online, offline <20><><EFBFBD><EFBFBD>ǥ<EFBFBD>ÿ<EFBFBD>
|
|||
|
|
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;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> float<61><74> <20>ٷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ʴ´<CAB4>. Ŭ<><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ǥ<EFBFBD><C7A5> *1000<30><30> <20>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
struct TPosition
|
|||
|
|
{
|
|||
|
|
int nX;
|
|||
|
|
int nY;
|
|||
|
|
int nZ;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TLocation
|
|||
|
|
{
|
|||
|
|
UINT nMapIndex;
|
|||
|
|
TPosition Pos;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// npc, user object<63><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ش<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κи<CEBA>
|
|||
|
|
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; // Ŭ<><C5AC><EFBFBD><EFBFBD>
|
|||
|
|
int cDarkClass; // rlkt_dark dark class :)
|
|||
|
|
int cDarkClassJobID; // rlkt_dark dark class :)
|
|||
|
|
int nCreateMapIndex; // ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
|
int nCreateMapStartPositionX[DEFAULTPOSITIONMAX]; // ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ X
|
|||
|
|
int nCreateMapStartPositionY[DEFAULTPOSITIONMAX]; // ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ Y
|
|||
|
|
int nCreateMapStartRadius[DEFAULTPOSITIONMAX]; // <20>ݰ<EFBFBD>
|
|||
|
|
|
|||
|
|
int nCreateTutorialMapIndex; // ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ʃ<>丮<EFBFBD><E4B8AE> <20><> <20>ε<EFBFBD><CEB5><EFBFBD> (GameServer<65><72>)
|
|||
|
|
int nCreateTutorialGateNo; // ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ʃ<>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD>Ʈ (GameServer<65><72>)
|
|||
|
|
|
|||
|
|
int nDefaultBody; // <20>⺻<EFBFBD><E2BABB>
|
|||
|
|
int nDefaultLeg; // <20>⺻<EFBFBD>ٸ<EFBFBD>
|
|||
|
|
int nDefaultHand; // <20>⺻<EFBFBD><E2BABB>
|
|||
|
|
int nDefaultFoot; // <20>⺻<EFBFBD><E2BABB>
|
|||
|
|
int nFace[DEFAULTPARTSMAX]; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nHair[DEFAULTPARTSMAX]; // <20>Ӹ<EFBFBD>
|
|||
|
|
int nHelmet[DEFAULTPARTSMAX]; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nBody[DEFAULTPARTSMAX]; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nLeg[DEFAULTPARTSMAX]; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nHand[DEFAULTPARTSMAX]; // <20><>
|
|||
|
|
int nFoot[DEFAULTPARTSMAX]; // <20><>
|
|||
|
|
int nWeapon[WEAPONMAX]; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
DWORD dwHairColor[DEFAULTHAIRCOLORMAX];
|
|||
|
|
DWORD dwSkinColor[DEFAULTSKINCOLORMAX];
|
|||
|
|
DWORD dwEyeColor[DEFAULTEYECOLORMAX];
|
|||
|
|
|
|||
|
|
int nDefaultItemID[DEFAULTITEMMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nDefaultItemCount[DEFAULTITEMMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
int nDefaultSkillID[DEFAULTSKILLMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų
|
|||
|
|
|
|||
|
|
TQuickSlot DefaultQuickSlot[DEFAULTQUICKSLOTMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D4B0><EFBFBD>
|
|||
|
|
int nDefaultGestureID[DEFAULTGESTUREMAX]; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ó
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#if defined( PRE_ADD_DWC )
|
|||
|
|
struct TDWCCreateData
|
|||
|
|
{
|
|||
|
|
BYTE cClassID; // <20>⺻ Ŭ<><C5AC><EFBFBD><EFBFBD> ID
|
|||
|
|
BYTE cJobCode1; // 1<><31> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> ID
|
|||
|
|
BYTE cJobCode2; // 2<><32> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> ID
|
|||
|
|
BYTE cLevel;
|
|||
|
|
int nExp;
|
|||
|
|
int nCreateMapIndex; // ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
|
int nCreateMapStartPositionX[DEFAULTPOSITIONMAX]; // ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ X
|
|||
|
|
int nCreateMapStartPositionY[DEFAULTPOSITIONMAX]; // ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ Y
|
|||
|
|
int nCreateMapStartRadius[DEFAULTPOSITIONMAX]; // <20>ݰ<EFBFBD>
|
|||
|
|
|
|||
|
|
int nDefaultBody; // <20>⺻<EFBFBD><E2BABB>
|
|||
|
|
int nDefaultLeg; // <20>⺻<EFBFBD>ٸ<EFBFBD>
|
|||
|
|
int nDefaultHand; // <20>⺻<EFBFBD><E2BABB>
|
|||
|
|
int nDefaultFoot; // <20>⺻<EFBFBD><E2BABB>
|
|||
|
|
int nEquipArray[EQUIPMAX]; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
DWORD dwHairColor;
|
|||
|
|
DWORD dwSkinColor;
|
|||
|
|
DWORD dwEyeColor;
|
|||
|
|
|
|||
|
|
int nDefaultItemID[DEFAULTITEMMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nDefaultItemCount[DEFAULTITEMMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
int nDefaultSkillID[DEFAULTSKILLMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų
|
|||
|
|
|
|||
|
|
TQuickSlot DefaultQuickSlot[DEFAULTQUICKSLOTMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D4B0><EFBFBD>
|
|||
|
|
int nDefaultGestureID[DEFAULTGESTUREMAX]; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ó
|
|||
|
|
short nSkillPoint; // <20><>ų <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
int nGold; // <20><><EFBFBD><EFBFBD> - <20>ʿ<EFBFBD> <20><><EFBFBD>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
#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; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ͽý<CDBD><C3BD><EFBFBD>
|
|||
|
|
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; //<2F><><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD>
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_ADD_VEHICLE_SPECIAL_ACTION)
|
|||
|
|
bool bVehicleSpecalActionMode;
|
|||
|
|
#endif
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TCoinCountData
|
|||
|
|
{
|
|||
|
|
BYTE cLevel;
|
|||
|
|
int nRebirthCoin[WORLDCOUNTMAX]; // <20><>Ȱ<EFBFBD><C8B0><EFBFBD><EFBFBD>
|
|||
|
|
int nCashRebirthCoin[WORLDCOUNTMAX]; // <20><>Ȱij<C8B0><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nRebirthCoinLimit; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD>
|
|||
|
|
int nCashRebirthCoinLimit; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD>
|
|||
|
|
int nVIPRebirthCoin; // VIP<49><50>Ȱ<EFBFBD><C8B0><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TActorData
|
|||
|
|
{
|
|||
|
|
int nActorID;
|
|||
|
|
BYTE cClass; // <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
const int QUEST_MAX_CNT = 20;
|
|||
|
|
struct TNpcData
|
|||
|
|
{
|
|||
|
|
int nNpcID;
|
|||
|
|
int nParam[2];
|
|||
|
|
WCHAR wszName[EXTDATANAMELENMAX];
|
|||
|
|
char szTalkFile[256]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD>
|
|||
|
|
char szScriptFile[256]; // script <20><><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD>
|
|||
|
|
int QuestIndexArr[QUEST_MAX_CNT]; // <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
|
TActorData ActorData;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TItemData
|
|||
|
|
{
|
|||
|
|
int nItemID;
|
|||
|
|
WCHAR wszItemName[EXTDATANAMELENMAX];
|
|||
|
|
int nType; // Ÿ<><C5B8>
|
|||
|
|
int nTypeParam[3]; // Ÿ<><C5B8><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BYTE cLevelLimit; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BYTE cRank; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
BYTE cReversion; // <20>ͼӿ<CDBC><D3BF><EFBFBD>
|
|||
|
|
bool IsCash; // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD>
|
|||
|
|
bool IsDestruction; // <20>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool IsAuthentication; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nAmount; // <20>ݾ<EFBFBD>
|
|||
|
|
int nSellAmount; // <20>Ǹűݾ<C5B1>
|
|||
|
|
int nOverlapCount; // <20><>ø<EFBFBD><C3B8><EFBFBD><EFBFBD>
|
|||
|
|
std::vector<int> nNeedJobClassList; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
int nSkillID; // <20><>ų <20>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
|
char cSkillLevel; // <20><>ų <20><><EFBFBD><EFBFBD>
|
|||
|
|
char cSkillUsingType; // <20><>ų <20><><EFBFBD><EFBFBD> Ÿ<><C5B8>
|
|||
|
|
int nMaxCoolTime; // <20>ִ<EFBFBD> <20><>Ÿ<EFBFBD><C5B8> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><>)
|
|||
|
|
int nEnchantID; // <20><>æƮ<C3A6><C6AE><EFBFBD>̵<EFBFBD>
|
|||
|
|
int nAllowMapType; // <20><><EFBFBD>밡<EFBFBD><EBB0A1><EFBFBD><EFBFBD> <20><> Ÿ<><C5B8>
|
|||
|
|
char cSealCount; // <20>к<EFBFBD> Ƚ<><C8BD>
|
|||
|
|
int nSealID; // SealCountTableID
|
|||
|
|
int nNeedBuyItemID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
int nNeedBuyItemCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۰<EFBFBD><DBB0><EFBFBD>
|
|||
|
|
int nNeedPvPRank; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ʿ<EFBFBD><CABF><EFBFBD> PvP <20><>ũ
|
|||
|
|
bool IsSealed; // ȹ<><C8B9> <20><> <20>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nCashTradeCount; // ij<>þ<EFBFBD><C3BE><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD>
|
|||
|
|
bool IsEnableCostumeMix;
|
|||
|
|
int nApplicableValue;
|
|||
|
|
bool IsCollectingEvent; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> API<50><49> ȣ<><EFBFBD><E2BFA9>
|
|||
|
|
int nExchangeCode; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<>װ<EFBFBD><D7B0><EFBFBD> ID
|
|||
|
|
int iNeedBuyLadderPoint;
|
|||
|
|
int iUseLevelLimit;
|
|||
|
|
int iNeedBuyUnionPoint;
|
|||
|
|
int iNeedBuyGuildWarPoint;
|
|||
|
|
bool bRebuyable;
|
|||
|
|
int nPeriod;
|
|||
|
|
#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
bool IsWStorage; // <20><><EFBFBD><EFBFBD> â<><C3A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
#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; // <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8>
|
|||
|
|
int nLength; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nDurability; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nDurabilityRepairCoin; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nPermitJob[10];
|
|||
|
|
bool bOneType;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TPartData
|
|||
|
|
{
|
|||
|
|
int nPartIndex;
|
|||
|
|
int nParts; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nDurability; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nDurabilityRepairCoin; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nPermitJob[10];
|
|||
|
|
std::vector<int> nSubPartsList; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>ѹ<EFBFBD><D1B9><EFBFBD>)
|
|||
|
|
|
|||
|
|
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 <20><><EFBFBD><EFBFBD>(?)<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> Ű<><C5B0>
|
|||
|
|
int nPetSkillID1; //
|
|||
|
|
int nPetSkillID2;
|
|||
|
|
int nRange; // <20><>ĵ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20≯<EFBFBD><CCB8><EFBFBD> <20>ݱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
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; // <20>Ҹ<EFBFBD> <20>ð<EFBFBD>(second)
|
|||
|
|
int nFullTic; // ƽ<><C6BD> <20>Ҹ<EFBFBD><D2B8><EFBFBD>
|
|||
|
|
BYTE cFullTimeLogOut; // <20>αƿ<D7BE><C6BF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ⱚ
|
|||
|
|
int nFullMaxCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> max<61><78>ġ
|
|||
|
|
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; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ο<EFBFBD> <20>ѹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#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; // <20><>
|
|||
|
|
short wAgility; // <20><>ø
|
|||
|
|
short wIntelligence; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
short wStamina; // <20>ǰ<EFBFBD>
|
|||
|
|
int nExperience; // <20><><EFBFBD><EFBFBD>ġ
|
|||
|
|
int nFatigue; // <20>Ƿε<C7B7>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TStat
|
|||
|
|
{
|
|||
|
|
USHORT wStr;
|
|||
|
|
USHORT wDex;
|
|||
|
|
USHORT wInt;
|
|||
|
|
USHORT wHealth;
|
|||
|
|
USHORT wLuck;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TSkillLevelData
|
|||
|
|
{
|
|||
|
|
char cSkillLevel; // <20><>ų <20><><EFBFBD><EFBFBD>
|
|||
|
|
char cLevelLimit; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
//int nNeedJobClass; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> <20><>ų <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
int nDelayTime; // <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ms)
|
|||
|
|
int nAddRange; // <20>߰<EFBFBD> <20><><EFBFBD>Ÿ<EFBFBD>(cm)
|
|||
|
|
int nNeedItemID; // <20>Ҹ<EFBFBD><D2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nNeedItemDecreaseCount; // <20>Ҹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nDecreaseHP; // <20>Ҹ<EFBFBD>HP
|
|||
|
|
int nDecreaseSP; // <20>Ҹ<EFBFBD>SP
|
|||
|
|
int nNeedSkillPoint;
|
|||
|
|
int nEffectClassValue1Duration;
|
|||
|
|
float nMagicDamage; //rlkt_damage
|
|||
|
|
float nPhyDamage; //rlkt_damage
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TSkillData
|
|||
|
|
{
|
|||
|
|
int nSkillID; // <20><>ųid
|
|||
|
|
char cNeedWeaponType[ 2 ]; // <20>ʿ乫<CABF><E4B9AB>
|
|||
|
|
int nMaxLevel; // <20>ִ뷹<D6B4><EBB7B9>
|
|||
|
|
char cSkillType; // <20><>ųŸ<C5B3><C5B8>
|
|||
|
|
char cDurationType; // <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8>
|
|||
|
|
char cTargetType; // Ÿ<><C5B8>Ÿ<EFBFBD><C5B8>
|
|||
|
|
char cDissolvable; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nNeedJobID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
bool bDefaultLocked; // <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nUnlockSkillBookItemID; // <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
|
|||
|
|
int nUnlockPrice; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.
|
|||
|
|
int nExclusiveID; // <20><> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>.
|
|||
|
|
int nGlobalCoolTime; // <20>۷ι<DBB7> <20><>ų <20><>Ÿ<EFBFBD><C5B8> (#36858)
|
|||
|
|
int nGlobalSkillGroup; // <20>۷ι<DBB7> <20><>ų <20><EFBFBD> (#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 <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ü
|
|||
|
|
struct TALK_QUESTION
|
|||
|
|
{
|
|||
|
|
std::wstring szQuestion;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TALK_ANSWER
|
|||
|
|
{
|
|||
|
|
std::wstring szLinkTarget;
|
|||
|
|
std::wstring szLinkIndex;
|
|||
|
|
std::wstring szAnswer;
|
|||
|
|
bool bOtherTargetLink; // <20>ٸ<EFBFBD> <20><>ũ<EFBFBD><C5A9><EFBFBD>Ϸ<EFBFBD> <20><>ũ <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> true
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TALK_PARAGRAPH
|
|||
|
|
{
|
|||
|
|
std::wstring szIndex;
|
|||
|
|
TALK_QUESTION Question;
|
|||
|
|
std::vector<TALK_ANSWER> Answers;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// key - <20><><EFBFBD>ܽ<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>, second - <20><><EFBFBD><EFBFBD>
|
|||
|
|
typedef std::map<std::wstring, TALK_PARAGRAPH> TALK_PARAGRAPH_MAP;
|
|||
|
|
typedef TALK_PARAGRAPH_MAP::iterator TALK_PARAGRAPH_MAP_IT;
|
|||
|
|
|
|||
|
|
// key - <20><><EFBFBD><EFBFBD>xml <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>, second - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü
|
|||
|
|
typedef std::map<std::wstring, TALK_PARAGRAPH_MAP> TALK_MAP;
|
|||
|
|
typedef TALK_MAP::iterator TALK_MAP_IT;
|
|||
|
|
|
|||
|
|
#include <set>
|
|||
|
|
|
|||
|
|
// key - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>佺Ʈ<E4BDBA><C6AE><EFBFBD>ε<EFBFBD><CEB5><EFBFBD> (<28><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û <20><><EFBFBD>Ἲ üũ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>뵵)
|
|||
|
|
typedef std::set<std::wstring> TALK_ANSWER_SET;
|
|||
|
|
typedef TALK_ANSWER_SET::iterator TALK_ANSWER_SET_IT;
|
|||
|
|
|
|||
|
|
// key - <20><><EFBFBD><EFBFBD>xml <20><><EFBFBD><EFBFBD> <20≯<EFBFBD>, second - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>佺Ʈ<E4BDBA><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û <20><><EFBFBD>Ἲ üũ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>뵵)
|
|||
|
|
typedef std::map<std::wstring, TALK_ANSWER_SET> TALK_ANSWER_MAP;
|
|||
|
|
typedef TALK_ANSWER_MAP::iterator TALK_ANSWER_MAP_IT;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6<><36><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>. nItemID <20><> nItemCount<6E><74> <20><>Ʈ<EFBFBD>̴<EFBFBD>.
|
|||
|
|
|
|||
|
|
struct TQuestRewardBase
|
|||
|
|
{
|
|||
|
|
struct _ITEMSET
|
|||
|
|
{
|
|||
|
|
int nItemID;
|
|||
|
|
int nItemCount;
|
|||
|
|
int nItemOptionTableID;
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TQuestReward : public TQuestRewardBase
|
|||
|
|
{
|
|||
|
|
UINT nIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
|
UINT nStringIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD> <20><>Ʈ<EFBFBD><C6AE>
|
|||
|
|
char cType; // <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> 1<≯<EFBFBD> <20><>ü<EFBFBD><C3BC><EFBFBD><EFBFBD> / 2<><32> <20><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|||
|
|
char cSelectMax; // <20><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD> <20><EFBFBD><EEB0B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ұ<EFBFBD><D2B0><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
UINT nCoin; // <20><><EFBFBD><EFBFBD><EFBFBD>ݾ<EFBFBD>
|
|||
|
|
int nExp; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ġ
|
|||
|
|
int nQuestID; // <20><><EFBFBD><EFBFBD>Ʈ ID
|
|||
|
|
int nQuestStep; // <20><><EFBFBD><EFBFBD>Ʈ <20>Ϸ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
BYTE nClass; // <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD>
|
|||
|
|
_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; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
|||
|
|
int nCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nMaxCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nPrice; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
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; // <20><> <20><><EFBFBD>̵<EFBFBD> (npc<70><63> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
std::vector<TShopTabData> vShopTabData; // SHOPITEMMAX
|
|||
|
|
TShopData()
|
|||
|
|
{
|
|||
|
|
nShopID = 0;
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// Skill Shop
|
|||
|
|
struct TSkillShopItem
|
|||
|
|
{
|
|||
|
|
int nSkillID; // <20><>ų<EFBFBD><C5B3><EFBFBD>̵<EFBFBD>
|
|||
|
|
int nPrice; // <20><>ų <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TSkillShopData
|
|||
|
|
{
|
|||
|
|
int nShopID; // <20><> <20><><EFBFBD>̵<EFBFBD> (npc<70><63> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
TSkillShopItem SkillShopItem[SKILLSHOPITEMMAX]; // <20>ִ<EFBFBD> 10<31><30><EFBFBD>ۿ<EFBFBD> <20>ȵȴ<C8B5>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 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; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ٿ<EFBFBD><D9BF><EFBFBD><D7B7>̵<EFBFBD>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; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ٿ<EFBFBD><D9BF><EFBFBD><D7B7>̵<EFBFBD>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; // <20>κ<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
|
short wCount; // <20> <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
INT64 biSerial;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#ifdef PRE_ADD_GACHA_JAPAN
|
|||
|
|
// gachapon japan
|
|||
|
|
struct TGachaponShopInfoByJob_JP
|
|||
|
|
{
|
|||
|
|
int nGachaponTableID; // <20><>í<EFBFBD><C3AD> <20><><EFBFBD>̺<EFBFBD> ID
|
|||
|
|
int nGachaponIndex; // <20><>í<EFBFBD><C3AD> <20><> <20>ε<EFBFBD><CEB5><EFBFBD>.
|
|||
|
|
int nJobClassID; // <20><> <20><>í<EFBFBD><C3AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD><DBB5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nPartsLinkDropTableID[ CASHEQUIPMAX ];
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TGachaponData_JP
|
|||
|
|
{
|
|||
|
|
int nGachaponIndex; // <20><>í<EFBFBD><C3AD> <20><> <20>ε<EFBFBD><CEB5><EFBFBD>. npc <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20>̰ɷ<CCB0> ã<><C3A3>. <20><><EFBFBD>̺<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20>ƴ<EFBFBD>.
|
|||
|
|
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 //<2F>ʴ<EFBFBD> <20>´<DEB4> <20>ȹ´<DEB4> <20><><EFBFBD><EFBFBD> <20>ްڴ<DEB0> <20>ȹްڴ<DEB0> <20><><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
_COMMUNITY_NONE = 0,
|
|||
|
|
_COMMUNITY_MSG_PERMIT, //<2F><><EFBFBD><EFBFBD> <20><EFBFBD><DEBC><EFBFBD> <20><EFBFBD>ȿ~
|
|||
|
|
_COMMUNITY_MSG_NOTPERMIT,//<2F><EFBFBD><DEBC><EFBFBD> <20>ȹ<C8B9>ȿ~ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>λ<EFBFBD>!
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct sWorldUserState
|
|||
|
|
{
|
|||
|
|
WCHAR wszCharacterName[NAMELENMAX];
|
|||
|
|
INT64 biCharacterDBID; //<2F>ϴ<EFBFBD><CFB4><EFBFBD> Ȥ<><C8A4><EFBFBD><EFBFBD> <20>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
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,
|
|||
|
|
//<2F><> <20>̷<EFBFBD><CCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>..
|
|||
|
|
//_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; // <20>ο<EFBFBD><CEBF><EFBFBD> <20>ɼ<EFBFBD>
|
|||
|
|
bool bIsBreakInto; // <20><><EFBFBD><EFBFBD><D4B0><EFBFBD>Flag
|
|||
|
|
UINT uiItemUsageType; // PvPCommon::ItemUsageType
|
|||
|
|
bool bIsAllowItemDrop; // <20><><EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD><DBB5><EFBFBD> Flag
|
|||
|
|
bool bIsGuildBattleGround; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD> Flag
|
|||
|
|
bool bIsReleaseShow; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
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; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
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;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>н<EFBFBD> -1 <20><><EFBFBD><EFBFBD>
|
|||
|
|
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; // <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ο<EFBFBD>
|
|||
|
|
UINT uiMaxTeamPlayerDiff; // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ο<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
|
|||
|
|
|
|||
|
|
short Check( const UINT uiATeam, const UINT uiBTeam, const bool bRandomTeam ) const
|
|||
|
|
{
|
|||
|
|
// <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ο<EFBFBD> <20>˻<EFBFBD>
|
|||
|
|
if( uiATeam < uiMinTeamPlayerNum || uiBTeam < uiMinTeamPlayerNum )
|
|||
|
|
return ERROR_PVP_CANTSTART_LESS_MINTEAMPLAYER;
|
|||
|
|
|
|||
|
|
if (!bRandomTeam) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>.
|
|||
|
|
{
|
|||
|
|
// <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ο<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>˻<EFBFBD>
|
|||
|
|
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 <20><><EFBFBD><EFBFBD>
|
|||
|
|
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)
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// <20>̼<EFBFBD> <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
struct TEventCondition
|
|||
|
|
{
|
|||
|
|
char cEvent;
|
|||
|
|
char cType[5];
|
|||
|
|
int nParam[5];
|
|||
|
|
char cOperator[5];
|
|||
|
|
bool bCheckType;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TMissionData
|
|||
|
|
{
|
|||
|
|
bool bActivate;
|
|||
|
|
int nType; // <20>̼<EFBFBD>Ÿ<EFBFBD><C5B8>(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% <20>Ѱ<EFBFBD><D1B0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ID, 1- Īȣ <20>÷<EFBFBD><C3B7><EFBFBD> <20>ϼ<EFBFBD><CFBC><EFBFBD> <20><><EFBFBD><EFBFBD> MailID
|
|||
|
|
#endif //#if defined(PRE_MOD_APPELLATIONBOOK_RENEWAL)
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// TaxTable
|
|||
|
|
struct TTaxData
|
|||
|
|
{
|
|||
|
|
char cTaxType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TaxType_PostTax)
|
|||
|
|
int nLevelStart; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nLevelEnd; // <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nAmountStart; // <20><><EFBFBD>۱ݾ<DBB1> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
int nAmountEnd; // <20><><EFBFBD>ݾ<EFBFBD>
|
|||
|
|
float fRate; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nTaxAmount; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// Seal
|
|||
|
|
const BYTE SEALENCHANTMAX = 16; // <20>밭ȭ<EBB0AD><C8AD><EFBFBD><EFBFBD> 15<31><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
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 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (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 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
|
|||
|
|
int nLinkSN[COMMODITYLINKMAX]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ
|
|||
|
|
std::string strName;
|
|||
|
|
short wPeriod; // <20>Ⱓ
|
|||
|
|
int nPrice; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nCount; // <20><><EFBFBD>Ž<EFBFBD> <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nPriority; // ij<>ü<EFBFBD><C3BC><EFBFBD> ǥ<>õǴ<C3B5> <20>켱<EFBFBD><ECBCB1><EFBFBD><EFBFBD>
|
|||
|
|
bool bOnSale; // <20>ǸŻ<C7B8><C5BB><EFBFBD>
|
|||
|
|
bool bOnSaleReal; // <20><>¥(?)<29>ǸŻ<C7B8><C5BB><EFBFBD>
|
|||
|
|
char cState; // HOT, NEW<45><57> <20><><EFBFBD><EFBFBD> ǥ<>ÿ<EFBFBD>
|
|||
|
|
bool bLimit; // <20><><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD>
|
|||
|
|
bool bReserveGive; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nReserve; // <20><><EFBFBD>Ž<EFBFBD> <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nValidity; // <20><>ȿ<EFBFBD>Ⱓ
|
|||
|
|
bool bReserveAble; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
bool bPresentAble; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
char cItemSort; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nPriceFix; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
bool bCartAble; // <20><><EFBFBD>ٱ<EFBFBD><D9B1>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD><D6B4><EFBFBD>
|
|||
|
|
bool bVIPSell; // VIP <20><><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nVIPLevel; // VIP <20><><EFBFBD><EFBFBD>
|
|||
|
|
bool bAutomaticPay; // <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nAutomaticPaySale; // <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nVIPPoint; // <20><><EFBFBD>Ž<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> VIPPoint
|
|||
|
|
int nOverlapBuy; // <20>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>
|
|||
|
|
#if defined(PRE_ADD_CASH_REFUND)
|
|||
|
|
bool bNoRefund; // û<><C3BB> öȸ <20>Ұ<EFBFBD><D2B0>ɿ<EFBFBD><C9BF><EFBFBD>(true : <20>Ұ<EFBFBD><D2B0><EFBFBD>)
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_ADD_CASHSHOP_CREDIT)
|
|||
|
|
bool bCreditAble; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nCreditAbleLevel; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><C5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#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; // <20>⺻ <20>Ұ<EFBFBD><D2B0><EFBFBD>
|
|||
|
|
#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; // <20><>Ű<EFBFBD><C5B0><EFBFBD>Ǹ<EFBFBD>SN
|
|||
|
|
std::vector<int> nVecCommoditySN;
|
|||
|
|
|
|||
|
|
TCashPackageData()
|
|||
|
|
{
|
|||
|
|
nSN = 0;
|
|||
|
|
nVecCommoditySN.clear();
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TCashLimitData
|
|||
|
|
{
|
|||
|
|
int nSN; // <20><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD> <20><>ǰ SN
|
|||
|
|
time_t tStartDate; // _StartDate <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
time_t tEndDate; // _EndDate <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nBuyAbleCount; // ij<><C4B3><EFBFBD>ʹ<EFBFBD> <20><><EFBFBD>Ű<EFBFBD><C5B0><EFBFBD>Ƚ<EFBFBD><C8BD>
|
|||
|
|
#if defined(PRE_ADD_LIMITED_CASHITEM)
|
|||
|
|
int nLimitedSellCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
|||
|
|
#endif //#if defined(PRE_ADD_LIMITED_CASHITEM)
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TVIPData
|
|||
|
|
{
|
|||
|
|
int nVipID; // VIPTable<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
|
|||
|
|
int nMonthItemSN; // ij<><C4B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǰ <20>ѹ<EFBFBD> (30<33><30> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ѹ<EFBFBD> <20>ֱ<EFBFBD>)
|
|||
|
|
int nMailID[4]; // 0:<3A><><EFBFBD><EFBFBD><F1BDBAB8><EFBFBD> 7<><37><EFBFBD><EFBFBD>, 1:<3A><><EFBFBD><EFBFBD><F1BDBAB8><EFBFBD> 1<><31><EFBFBD><EFBFBD>, 2:<3A><><EFBFBD><EFBFBD><F1BDBAB8><EFBFBD><EFBFBD><EFBFBD>, 3:<3A>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3> <20><><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD>
|
|||
|
|
int nAutoPayItemSN; // <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>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, // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ
|
|||
|
|
ShandaPromotion = 2, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>θ<EFBFBD><CEB8><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ
|
|||
|
|
CombackUser = 3, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ
|
|||
|
|
LevelupNew = 4, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> (<28>ѹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̻<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
ComeBackUserInven = 5, // <20><>ȯ<EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20>ٷ<EFBFBD> <20>־<EFBFBD><D6BE>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<><C5B8>
|
|||
|
|
NewbieQuitReward = 6, //<2F>ű<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
NewbieReconnectReward = 7, //<2F>ű<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
ComeBackUserQuitReward = 8, //<2F><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
int nLevel; // Player ij<><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
char cClassID; // Ŭ<><C5AC><EFBFBD><EFBFBD>
|
|||
|
|
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; // <20><><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int iNpcPresentRepute2; // <20><><EFBFBD><EFBFBD>2 <20><><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int iNpcPresentID1; // NpcPresentRepute1 <20><EFBFBD> <20><> NPC<50><43> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> 1 ItemID
|
|||
|
|
int iNpcPresentID2; // NpcPresentRepute1 <20><EFBFBD> <20><> NPC<50><43> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> 2 ItemID
|
|||
|
|
#else
|
|||
|
|
std::vector<int> iQuestIDs;
|
|||
|
|
#endif // #if defined( PRE_ADD_REPUTATION_EXPOSURE )
|
|||
|
|
|
|||
|
|
int iMaxFavor; // ȣ<><C8A3> <20>ִ<EFBFBD>ġ
|
|||
|
|
int iTakeFavorPerDay; // 1<>ϴ<EFBFBD> <20><><EFBFBD>̴<EFBFBD> ȣ<><C8A3> <20><>ġ
|
|||
|
|
int iMaxMalice; // <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD>ġ
|
|||
|
|
int iAddMalicePerDay; // 1<>ϴ<EFBFBD> <20>ö<C3B6> <20><><EFBFBD><EFBFBD> <20><>ġ
|
|||
|
|
int iPresentIDArr[6]; // <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
std::vector<int> vFavorNpcID; // ȣ<><C8A3> NPC <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
std::vector<int> vMaliceNpcID; // <20><><EFBFBD><EFBFBD> NPC <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
int iFavorGroupBomb;
|
|||
|
|
int iMaliceGroupBomb;
|
|||
|
|
int iMailID[NpcReputation::Common::MaxMailCount];
|
|||
|
|
int iMailRand[NpcReputation::Common::MaxMailCount];
|
|||
|
|
int iPlusItemID;
|
|||
|
|
int iPlusProb;
|
|||
|
|
int iUnionID;
|
|||
|
|
int iPresentPointArr[6]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
|
|||
|
|
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 )
|
|||
|
|
{
|
|||
|
|
// Ȥ<><C8A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD> <20>ѹ<EFBFBD><D1B9><EFBFBD>!
|
|||
|
|
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
|
|||
|
|
{
|
|||
|
|
// <20>Ʒ<EFBFBD><C6B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> StoreBenefit <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20><><EFBFBD>ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̱<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲ<EFBFBD><D9B2><EFBFBD> <20>ȵ<EFBFBD>.
|
|||
|
|
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; // <20><><EFBFBD>þ<EFBFBD><C3BE><EFBFBD><EFBFBD><EFBFBD> ȸ<><C8B8>
|
|||
|
|
#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; // <20><><EFBFBD><EFBFBD>(ms)
|
|||
|
|
int iSuccessProbability;
|
|||
|
|
int iSuccessUpExp;
|
|||
|
|
int iRecipeUpExp;
|
|||
|
|
int iMaterialItemID[SecondarySkill::ManufactureSkill::MaxMaterialItemCount];
|
|||
|
|
int iMaterialItemCount[SecondarySkill::ManufactureSkill::MaxMaterialItemCount];
|
|||
|
|
int iSuccessCount;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ItemID <20><><EFBFBD><EFBFBD>
|
|||
|
|
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; // <20><><EFBFBD>ѽɱ<D1BD> <20><> <20><><EFBFBD><EFBFBD>ġ
|
|||
|
|
int iSkillPointWater; // <20><><EFBFBD>ֱ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>ġ
|
|||
|
|
int iCatalystCount; // <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
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; //<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>
|
|||
|
|
int nSecondarySkillLevel; //<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>
|
|||
|
|
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: <20><>ȭ<EFBFBD><C8AD><EFBFBD><EFBFBD> 2: <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD> 3: Ư<><C6AF><EFBFBD><EFBFBD>ų<EFBFBD><C5B3><EFBFBD><EFBFBD> (eGlyphType)
|
|||
|
|
char cGlyphRank; // 1: <20><><EFBFBD><EFBFBD> 2: <20><><EFBFBD><EFBFBD> 3: <20><><EFBFBD><EFBFBD> 4: <20><><EFBFBD><EFBFBD>ũ (eItemRank)
|
|||
|
|
int nCharge;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TCharmItem
|
|||
|
|
{
|
|||
|
|
#if defined(PRE_FIX_68828)
|
|||
|
|
int nCharmID; // <20><><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD> ID
|
|||
|
|
#endif
|
|||
|
|
int nItemID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȹ<><C8B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nProb; // Ȯ<><C8AE>
|
|||
|
|
int nPeriod; // <20>Ⱓ
|
|||
|
|
int nAccumulationProb;
|
|||
|
|
int nGold;
|
|||
|
|
bool bMsg;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TCharmItemData
|
|||
|
|
{
|
|||
|
|
int nCharmNo; // <20>ŷ¾<C5B7><C2BE><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ
|
|||
|
|
std::vector<TCharmItem> CharmItemList;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
const BYTE CharmItemKeyMax = 5;
|
|||
|
|
struct TCharmItemKeyData
|
|||
|
|
{
|
|||
|
|
int nCharmItemID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
|||
|
|
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; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȹ<><C8B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nProb; // Ȯ<><C8AE>
|
|||
|
|
int nPeriod; // <20>Ⱓ
|
|||
|
|
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, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD>
|
|||
|
|
SERVERMONITOR_LEVEL_ADMIN, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>μ<EFBFBD><CEBC><EFBFBD> <20><><EFBFBD>۸<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
SERVERMONITOR_LEVEL_SUPERADMIN, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
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;
|
|||
|
|
};
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD>
|
|||
|
|
struct TGuildWarRewardData
|
|||
|
|
{
|
|||
|
|
char cType; // <20><><EFBFBD><EFBFBD> Ÿ<><C5B8>..eGuildWarRewardType
|
|||
|
|
char cClass; // Ŭ<><C5AC><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ó, <20>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD>, Ŭ<><C5AC><EFBFBD><EFBFBD>)
|
|||
|
|
int nMailID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
|||
|
|
int nPresentID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
|||
|
|
int nGuildFestivalPoint; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
int nGuildPoint; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
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]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
|
|||
|
|
int nBossSpawnAreaID[PvPCommon::TeamIndex::Max]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
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; //<2F><><EFBFBD>ɽ<EFBFBD> ȹ<><C8B9><EFBFBD><EFBFBD>
|
|||
|
|
int nGainResource; //ȹƯ<C8B9>ҽ<EFBFBD> ȹ<>淮
|
|||
|
|
int nRequireTryTick; //ȹ<><C8B9><EFBFBD>õ<EFBFBD><C3B5><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ʿ<EFBFBD><CABF>ð<EFBFBD>
|
|||
|
|
int nCompleteOccupationTick; //Ŭ<><C5AC><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> <20><><EFBFBD>ɱ<EFBFBD> <20>Ѿ<D1BE><EEB0A1> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>
|
|||
|
|
int nBonusBuffID;
|
|||
|
|
//Ŭ<><C5AC><EFBFBD≯<EFBFBD><CCB8><EFBFBD>~
|
|||
|
|
int nClimaxGainTermTick;
|
|||
|
|
int nClimaxGainVal;
|
|||
|
|
int nClimaxTryTick;
|
|||
|
|
int nClimaxCompleteOccupationTick;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TBattleGroundEffectValue
|
|||
|
|
{
|
|||
|
|
int nSkillID;
|
|||
|
|
int nSkillLevel;
|
|||
|
|
int nNeedSkillPoint; //ȹ<><C8B9><EFBFBD><EFBFBD><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
int nUseResPoint; //<2F><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ҹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
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; //ȹ<><C8B9><EFBFBD><EFBFBD><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
nUseResPoint = 0; //<2F><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ҹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
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 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3> <20><>ųŸ<C5B3>Կ<EFBFBD> <20>״<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD>Ȯ<EFBFBD><C8AE><EFBFBD><EFBFBD> <20>ʿ<EFBFBD><CABF>ұ<EFBFBD> <20>ؼ<EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD>
|
|||
|
|
int nSkillDurationType; //CDnSkill::DurationTypeEnum
|
|||
|
|
int nSkillTargetType; //CDnSkill::TargetTypeEnum
|
|||
|
|
int nEffectType[PvPCommon::Common::MaximumEffectCount];
|
|||
|
|
int nEffectApplyType[PvPCommon::Common::MaximumEffectCount];
|
|||
|
|
int nProcess; //<2F><><EFBFBD>μ<EFBFBD><CEBC><EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD> <20>ϳ<EFBFBD><CFB3><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nCanDuplicate; //<2F><>ø<EFBFBD><C3B8><EFBFBD><EFBFBD>?
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
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<30><30><EFBFBD><EFBFBD>
|
|||
|
|
float fMasterGainExp;
|
|||
|
|
//int nMasterGainItemID;
|
|||
|
|
//int nMasterGainItemCount;
|
|||
|
|
float fAddGainExp;
|
|||
|
|
float fDefense;
|
|||
|
|
float fCritical;
|
|||
|
|
float fFinalDamage;
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
int iTalismanCost; // Ż<><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><>ġ<EFBFBD><C4A1>ȯ <20><><EFBFBD><EFBFBD>
|
|||
|
|
#endif
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TMasterSysFeelTableInfo
|
|||
|
|
{
|
|||
|
|
int nMinFeel;
|
|||
|
|
int nMaxFeel;
|
|||
|
|
int nAddExp; //(%<25><><EFBFBD><EFBFBD>)
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
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, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ
|
|||
|
|
DBJOB_GUILDWAR_STATS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
DBJOB_SYSTEM_MAX,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum eDBJobSystemStatus
|
|||
|
|
{
|
|||
|
|
JOB_STATUS_RESERVE, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
JOB_STATUS_COMPLETED, // <20>Ϸ<EFBFBD>
|
|||
|
|
JOB_STATUS_DOING, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
JOB_STATUS_FAIL, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TGuildRewardItemData
|
|||
|
|
{
|
|||
|
|
int nItemID; // <20><><EFBFBD>庸<EFBFBD><E5BAB8><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
|||
|
|
short nNeedGuildLevel; // <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>巹<EFBFBD><E5B7B9>
|
|||
|
|
int nNeedGold; // <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nItemType; // <20><><EFBFBD>庸<EFBFBD><E5BAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<><C5B8>
|
|||
|
|
int nTypeParam1;
|
|||
|
|
int nTypeParam2;
|
|||
|
|
bool bCheckInven; // <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD><D1B0><EFBFBD> üũ
|
|||
|
|
bool bEternity; // 0:<3A>Ⱓ<EFBFBD><E2B0A3> 1:<3A><><EFBFBD><EFBFBD>
|
|||
|
|
int nPeriod; // <20>Ⱓ
|
|||
|
|
bool bCheckMaster; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>üũ <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nCheckType; // <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD> üũ(0:NONE 1:ITEMID 2:<3A><><EFBFBD>帶ũ
|
|||
|
|
int nCheckID; // <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD><DBBE>̵<EFBFBD>
|
|||
|
|
};
|
|||
|
|
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; // <20><><EFBFBD><EFBFBD> ID
|
|||
|
|
int nUseItemSN[MAX_SALE_USEITEM]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 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; // <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD><DBBE>̵<EFBFBD>
|
|||
|
|
int nMaxCount; // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nSwapItemID; // <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD><DBBE>̵<EFBFBD>
|
|||
|
|
};
|
|||
|
|
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; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
BYTE cLevelLimit; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
BYTE cEnchantLevel; // <20><>ȭ <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nNeedCoin; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nNeedItemID1; // <20>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
|||
|
|
short wNeedItemCount1; // <20>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<><C4AB>Ʈ1
|
|||
|
|
int nNeedItemID2; // <20>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2
|
|||
|
|
short wNeedItemCount2; // <20>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<><C4AB>Ʈ2
|
|||
|
|
};
|
|||
|
|
#endif //#if defined(PRE_ADD_EXCHANGE_ENCHANT)
|
|||
|
|
|
|||
|
|
#if defined( PRE_WORLDCOMBINE_PARTY )
|
|||
|
|
namespace WorldCombineParty
|
|||
|
|
{
|
|||
|
|
enum eType
|
|||
|
|
{
|
|||
|
|
MAXSKILLCOUNT = 2,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct WrldCombinePartyData
|
|||
|
|
{
|
|||
|
|
BYTE cIndex; // <20>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
|
BYTE cGroupIndex; // <20><EFBFBD><D7B7>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
|
WCHAR wszPartyName[PARTYNAMELENMAX];
|
|||
|
|
int nWorldMap; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int nTargetMap; // Ÿ<>ٸ<EFBFBD>(<28><><EFBFBD>ذ<EFBFBD>)
|
|||
|
|
ePartyType PartyType; // <20><>ƼŸ<C6BC><C5B8>
|
|||
|
|
BYTE cPartyMemberMax;
|
|||
|
|
int nItemID; // <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
TDUNGEONDIFFICULTY Difficulty;
|
|||
|
|
TPARTYITEMLOOTRULE ItemLootRule; //ePartyItemLootRule <20><><EFBFBD><EFBFBD>
|
|||
|
|
TITEMRANK ItemRank; //<2F><><EFBFBD><EFBFBD><EFBFBD>۷<EFBFBD>ũ(<28><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>ȹ<EFBFBD><C8B9><EFBFBD><EFBFBD>)
|
|||
|
|
BYTE cUserLvLimitMin; //<2F>θƽ<CEB8><C6BD><EFBFBD><EFBFBD><EFBFBD> <20>ִܴ<D6B4>.
|
|||
|
|
int iBitFlag;
|
|||
|
|
int nSkillID[MAXSKILLCOUNT]; // <20><>ų<EFBFBD><C5B3><EFBFBD>̵<EFBFBD>
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
#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; // %<25><>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
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<68><70><EFBFBD><EFBFBD> <20><> <20>϶<EFBFBD>
|
|||
|
|
Event_2 = 2, // 2. <20><><EFBFBD>ݷ<EFBFBD> <20><>ȭ <20><> <20><>ȭ
|
|||
|
|
Event_3 = 3, // 3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȭ <20><> <20><>ȭ
|
|||
|
|
Event_4 = 4, // 4. <20><>ȭ Ȯ<><C8AE> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Event_5 = 5, // 5. <20><><EFBFBD><EFBFBD>ġ <20><><EFBFBD><EFBFBD>
|
|||
|
|
Event_6 = 6, // 6. <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ġ <20><><EFBFBD><EFBFBD>
|
|||
|
|
Event_7 = 7, // 7. ģ<><C4A3> <20><><EFBFBD><EFBFBD>ġ <20><><EFBFBD><EFBFBD> (<28><>ģ<EFBFBD>ƴ<EFBFBD>, <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>)
|
|||
|
|
Event_8 = 8, // 8. ȣ<><C8A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
Event_9 = 9, // 9. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈȹ<C6AE>淮 <20><><EFBFBD><EFBFBD>
|
|||
|
|
Event_10 = 10, // 10. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
#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; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
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; //<2F><><EFBFBD>ʱ<EFBFBD><CAB1>尡<EFBFBD>Խ<EFBFBD> <20>ּҷ<D6BC><D2B7><EFBFBD>
|
|||
|
|
int nJoinMaxLevel; //<2F><><EFBFBD>ʱ<EFBFBD><CAB1>尡<EFBFBD>Խ<EFBFBD> <20>ִ뷹<D6B4><EBB7B9>
|
|||
|
|
int nFirstJoinMailID; //<2F><><EFBFBD>ʰ<EFBFBD><CAB0>Խ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD><CFBE>̵<EFBFBD>
|
|||
|
|
int nMaxLevelGuildSupportMailID; //<2F><><EFBFBD>ʰ<EFBFBD><CAB0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>忡<EFBFBD><E5BFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
|
|||
|
|
};
|
|||
|
|
#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; //<2F><>ID
|
|||
|
|
int nDropType;
|
|||
|
|
int nNeedItemID[3]; //<2F>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
|
|||
|
|
int nDropItemGroupID[3]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۱<DBB1>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<6C><65> ID<49><44> <20><>Ī<EFBFBD>Ǵ<EFBFBD> <20><>
|
|||
|
|
int nEnchantCount; //<2F><>æƮ<C3A6><C6AE> <20><EFBFBD><EEB0B3><EFBFBD><EFBFBD> ī<><C4AB>Ʈ
|
|||
|
|
int nEnchantOption[20]; //<2F><>æƮ <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nEnchantProb[20]; //<2F><>æƮ<C3A6><C6AE> <20><><EFBFBD>õ<EFBFBD> Ȯ<><C8AE>
|
|||
|
|
};
|
|||
|
|
#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 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
BYTE cType;
|
|||
|
|
std::set<int> setAssignmentID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nMailID4; // 3<><33> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int nMailID7; // 5<><35> <20><><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
struct TStampTableData // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD>
|
|||
|
|
{
|
|||
|
|
INT64 biStartTime;
|
|||
|
|
std::vector<TStampChallenge> vChallengeList;
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
#endif // #if defined( PRE_ADD_STAMPSYSTEM )
|
|||
|
|
|
|||
|
|
#if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
|
|||
|
|
struct TPrevPotentialData
|
|||
|
|
{
|
|||
|
|
int nItemID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
|
|||
|
|
INT64 nSerial; //<2F>ø<EFBFBD><C3B8><EFBFBD>
|
|||
|
|
char cPotential; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
char cOption; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
char cNowPotential; //<2F><><EFBFBD><EFBFBD> <20>ο<EFBFBD><CEBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
char cPotentialMoveCount; //(<28><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ī<><C4AB>Ʈ
|
|||
|
|
INT64 nPotentialItemSerial; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ο<EFBFBD><CEBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD>
|
|||
|
|
int nPotentialItemID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ο<EFBFBD><CEBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 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 // <20>ּ<EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> Ÿ<><C5B8>
|
|||
|
|
{
|
|||
|
|
CheckMinTime = 60 * 1000, // 1<><31>
|
|||
|
|
};
|
|||
|
|
enum eAbuseCount // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AbuseCount<6E><74>
|
|||
|
|
{
|
|||
|
|
AbuseCount = 10,
|
|||
|
|
};
|
|||
|
|
// CheckTime<6D><65> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49><44> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǻ<EFBFBD><C7BA>Ѵ<EFBFBD>
|
|||
|
|
struct IgnoreMapIndex
|
|||
|
|
{
|
|||
|
|
enum eIgnoreMapIndex
|
|||
|
|
{
|
|||
|
|
MAP_CHAOSE_FIELD_BossA = 15157, //ȥ<><C8A5><EFBFBD><EFBFBD> ƴ <20>ĸ<EFBFBD><C4B8><EFBFBD>
|
|||
|
|
MAP_CHAOSE_FIELD_32Lv_BossA = 15167, //ȥ<><C8A5><EFBFBD><EFBFBD> ƴ <20><><EFBFBD>̶<EFBFBD>
|
|||
|
|
MAP_CHAOSE_FIELD_24Lv_BossA = 15174, // ȥ<><C8A5><EFBFBD><EFBFBD> ƴ ī<><C4AB><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
#endif // #if defined(PRE_ADD_STAGECLEAR_TIMECHECK)
|