6168 lines
No EOL
196 KiB
C++
6168 lines
No EOL
196 KiB
C++
#pragma once
|
||
|
||
#include "DNItemTypeDef.h"
|
||
|
||
#include "Version.h"
|
||
namespace SecondPassword
|
||
{
|
||
static char* GetVersion()
|
||
{
|
||
#if defined (_WORK)
|
||
return "1.1111.0";
|
||
#else
|
||
return szVersion;
|
||
#endif
|
||
}
|
||
}
|
||
|
||
/*--------------------------------------------------------------------------
|
||
Client, Server 공통으로 쓰는 define
|
||
--------------------------------------------------------------------------*/
|
||
//DRAGON GEMS
|
||
const int MAX_GEM_LIST = 500; //to be incrased if necessary
|
||
|
||
//DARK JOBS
|
||
const int DARK_DEFAULT_LEVEL = 60; //RLKT_DARK, Start level for Dark Class !
|
||
const int DARK_JOBMAX = 11; //RLKT_DARK Max job + dark avenger +silver
|
||
|
||
const int CLIENTPACKETMAX = 4096;
|
||
|
||
const char WORLDCOUNTMAX = 110; // 총 월드 개수
|
||
const char VILLAGECOUNTMAX = 12; // 총 빌리지 서버 개수
|
||
const short VILLAGECHANNELMAX = 255; // 빌리지 채널맥수
|
||
const short NETLAUNCHERLISTMAX = 100; // 런처보고용 맥수
|
||
const short MERITINFOMAX = 100; // 메리트 테이블 맥스
|
||
const short STATECOUNTMAX = 100; // 모니터보고용 스테이트맥스
|
||
const char GAMECOUNTMAX = 64; // 총 게임 서버 개수
|
||
const short REPORTGAMEINFOMAX = 300; //게임서버 인원정보 보내는 맥스
|
||
|
||
const unsigned char CHANNELNAMEMAX = 128; //채널이름맥스
|
||
const unsigned char SERVERINFOCOUNTMAX = 30;
|
||
const int SERVERCONTROLMAX = 200; // 서버모니터에서 서비스 컨트롤 항목 맥스
|
||
|
||
const int EXCUTELENMAX = 64; //
|
||
const int EXCUTECMDMAX = 2048 * 2;
|
||
|
||
const char SERVERVERSIONMAX = 16; // 서버 버젼 길이
|
||
|
||
const BYTE IPLENMAX = 32;
|
||
const int MACHINEIDMAX = 16;
|
||
const BYTE NHNNETCAFECODEMAX = 12;
|
||
const BYTE MACADDRLENMAX = 20;
|
||
|
||
#if defined (_KR) || defined(_KRAZ)
|
||
const BYTE IDLENMAX = 32; // 계정명
|
||
#elif defined(_CH)
|
||
const BYTE IDLENMAX = 41; // 계정명
|
||
#elif defined (_TH)
|
||
const BYTE IDLENMAX = 33; // 아지아솝흐트 계정사이즈 (널포인터포함)
|
||
#elif defined (_ID)
|
||
const BYTE IDLENMAX = 13; // 꾸레옹 계정사이즈
|
||
#else
|
||
const BYTE IDLENMAX = 32; // 계정명
|
||
#endif
|
||
|
||
const int ONEDAYSEC = 60*60*24;
|
||
|
||
const int SNDAOAPASSPORTMAX = 1024; // SNDA OA 인증 패스포트 최대 길이 (SNDA OA 인증)
|
||
|
||
const int SECONDAUTHIGNOREPERIOD = 3; //day
|
||
#if defined (_TH) || defined(_ID)
|
||
const BYTE PASSWORDLENMAX = 33; // 아지아솝흐트 패스워드 사이즈 (널포인터포함), 인도네시아 MD5(
|
||
#else //#if defined (_TH)
|
||
const BYTE PASSWORDLENMAX = 31;
|
||
#endif //#if defined (_TH)
|
||
const BYTE DOMAINLENMAX = 9; // 아지아솝흐트 도메인 사이즈 (널포인터포함)(어디계정인지?) THPP : Thai PlayparkID, THAS : Thai AsiaSoftID, THTC : Thai TCGID
|
||
const BYTE KREONKEYMAX = 40; // 크레온 PC Cafe Key Max
|
||
const BYTE MAILRUOTPMAX = 65; // 러시아 인증 OTP길이 (NULL포함)
|
||
|
||
#if defined (_KR) || defined(_KRAZ)
|
||
const BYTE CHARNAMEMIN = 2; // 캐릭터이름 최소글자
|
||
#elif defined( _US ) || defined(_SG) || defined(_TH) || defined(_ID) || defined(_RU) || defined (_EU)
|
||
const BYTE CHARNAMEMIN = 4; // 캐릭터이름 최소글자
|
||
#else
|
||
const BYTE CHARNAMEMIN = 2;
|
||
#endif
|
||
|
||
#if defined(_TH)
|
||
const BYTE CHARSIZEMAX = 5; // 태국의 글자크기 매직상수값(한 글자가 최대 5개의 버퍼 사용)
|
||
#else
|
||
const BYTE CHARSIZEMAX = 1;
|
||
#endif
|
||
|
||
#if defined(_TH)
|
||
const BYTE NAMELENMAX = 30; // 캐릭명 널문자 포함
|
||
#else // #if defined(_TH)
|
||
const BYTE NAMELENMAX = 17; // 캐릭명 널문자 포함
|
||
#endif // #if defined(_TH)
|
||
const BYTE WORLDNAMELENMAX = 64; // 월드이름
|
||
const BYTE EXTDATANAMELENMAX = 128; // EXT DATA에 쓰이는 이름들 길이
|
||
const BYTE CHERRYLOGINIDMAX = 81; // 싱말 로그인 아이디최대(이메일도 가능) 널문자 포함
|
||
|
||
const USHORT CHATLENMAX = 512; // chat max
|
||
const BYTE MAILNAMELENMAX = 33; // 우편용 캐릭터이름 (널문자포함)
|
||
|
||
const int RESERVEDPERIOD_CHARNAME = 7; // 변경전 캐릭터 이름이 보존되는 기간
|
||
const int NEXTPERIOD_CHARNAME = 7; // 최근 이름 변경 일자로부터 다음 이름 변경이 가능한 기간 제한. 단위 : day
|
||
const BYTE CHANGECODE_CHARNAME = 2; // 캐릭터 이름 변경 아이템 사용 코드
|
||
|
||
#if defined(_EU)
|
||
const short PARTYNAMELENMAX = 26; // 25자
|
||
#else // #if defined(_EU)
|
||
const short PARTYNAMELENMAX = 21; // 파티명 최대 20
|
||
#endif // #if defined(_EU)
|
||
const int MAXPARTYPASSWORD = 9999;
|
||
#if defined( PRE_PARTY_DB )
|
||
#else
|
||
const BYTE PARTYPASSWORDMAX = 5;
|
||
#endif // #if defined( PRE_PARTY_DB )
|
||
//const char PARTYMAX = 32; // 파티원 최대(PvP포함, 공격대포함) 이제 이름 바까야 할듯? ㅋ
|
||
const char PARTYMAX = 48; // 파티원 최대(PvP포함, 공격대포함) 이제 이름 바까야 할듯? ㅋ
|
||
|
||
#if defined (PRE_ADD_BESTFRIEND)
|
||
const short BESTFRIENDMEMOMAX = 40;
|
||
#endif // #if defined (PRE_ADD_BESTFRIEND)
|
||
|
||
const char PARTYCOUNTMAX = 8; // 최대 인원 정보는 PARTYMAX를 사용 게임내에 사용되는 Party의 MemberMax는 PARTYCOUNTMAX를 사용한다
|
||
const char NORMPARTYCOUNTMAX = 4; // 일반파티 최대인원
|
||
const char NORMPARTYCOUNTMIN = 2; // 일반파티 최소인원
|
||
const char RAIDPARTYCOUNTMAX = 8; // 공격대파티 최대인원
|
||
const char RAIDPARTYCOUNTMIN = 5; // 공격대파티 최소인원
|
||
|
||
enum ePartyType
|
||
{
|
||
_NORMAL_PARTY = 0, //일반 4인파티
|
||
_RAID_PARTY_8 = 1, //레이드용 8인파티
|
||
#if defined( PRE_WORLDCOMBINE_PARTY )
|
||
_WORLDCOMBINE_PARTY = 2, // 월드통합 파티
|
||
#endif // #if defined( PRE_WORLDCOMBINE_PARTY )
|
||
_PARTY_TYPE_MAX
|
||
};
|
||
|
||
#if defined(PRE_EXPANDGATE)
|
||
const char WORLDMAP_GATECOUNT = 15;
|
||
#else
|
||
const char WORLDMAP_GATECOUNT = 10;
|
||
#endif
|
||
const char PARTYKICKMAX = 10; //파티 정보 이동시 가저가는 리스트
|
||
const BYTE ISOLATELISTMAX = 100; //차단자 최대수
|
||
#ifdef PRE_PARTY_DB
|
||
#else
|
||
const int PARTYSORTCONDITIONMAX = 3; // 파티 리스트 조건검색시 최대 검색인자 수
|
||
#endif
|
||
const int PERMITMAPPASSCLASSMAX = 10; //맵입장 조건 검사를 패스하는 클래스 아이디 리스트 맥스
|
||
|
||
const LONG GAMEINVITEWAITTIME = 1000 * 60 * 2;
|
||
|
||
const int PARTYLISTOFFSET = 7; //파티리스트 페이지 오프셋
|
||
const int QUICKPARTYCOUNTMAX = 20; //퀵조인시 수집최대 값
|
||
|
||
const char CHATROOMMAX = 20; // 채팅방 최대 인원
|
||
|
||
const INT64 COINMAX = 50000000000; // 최대코인값 42억
|
||
|
||
const INT64 GUILDWARE_COINMAX = COINMAX / 2;
|
||
|
||
const BYTE UNSEQUENCEPACKET = 0; //순차적패킷아님
|
||
const BYTE COMPRESSPACKET = 2; //압축되어진 패킷
|
||
const BYTE COMPRESSMINSIZE = 30; //압축을 하기위한 미니멈사이즈 압축을 행하였을 경우 효과를 얻기위한 최소사이즈
|
||
//절대적수치는 아님 1만바이트가 모두 순차적이지 않은 난수로 되어 있다면 지지데쓰
|
||
|
||
const short RESTRAINTREASONMAX = 300; //유저제재 사유(이유)에 대한 사이즈맥스값
|
||
const short RESTRAINTREASONFORDOLISMAX = 100; //유저제재 사유(이유)에 대한 사이즈맥스값(DOLIS표기값)
|
||
const BYTE RESTRAINTMAX = 10; //제재최대값
|
||
|
||
#if defined (_US) || defined (_SG) || defined(_ID)
|
||
const BYTE PROFILEGREETINGLEN = 50; // 프로필 자기소개(인사말) 최대 길이 (널문자 제외)
|
||
#else //#if defined (_US) || defined (_SG)
|
||
const BYTE PROFILEGREETINGLEN = 24; // 프로필 자기소개(인사말) 최대 길이
|
||
#endif //#if defined (_US) || defined (_SG)
|
||
// item
|
||
const BYTE INVENTORYMAX = 150; // 일반아이템 인벤용
|
||
const BYTE WAREHOUSEMAX = 150; // 일반아이템 창고용
|
||
const BYTE QUESTINVENTORYMAX = 60; // 퀘스트 인벤용
|
||
|
||
const BYTE DEFAULTINVENTORYMAX = 30; // 기본 인벤 개수
|
||
const BYTE DEFAULTWAREHOUSEMAX = 10; // 기본 창고 개수
|
||
|
||
const BYTE PERIODINVENTORYMAX = 30;
|
||
const BYTE PERIODWAREHOUSEMAX = 30;
|
||
|
||
const BYTE INVENTORYTOTALMAX = INVENTORYMAX + PERIODINVENTORYMAX;
|
||
const BYTE WAREHOUSETOTALMAX = WAREHOUSEMAX + PERIODWAREHOUSEMAX;
|
||
|
||
const BYTE CASHINVENTORYMAX = 150; // 캐쉬아이템 인벤용
|
||
const BYTE CASHINVENTORYDBMAX = 200; // 캐쉬아이템 인벤용
|
||
const BYTE CASHINVENTORYPAGEMAX = 100; // 캐쉬인벤 1페이지 맥스값
|
||
|
||
const BYTE MAXDELEXPIREITEM = 150;
|
||
|
||
const BYTE VEHICLEINVENTORYPAGEMAX = 50; // 탈것 인벤 1페이지 맥스값
|
||
|
||
const BYTE MISSINGITEMMAX = 50; //
|
||
|
||
#if defined( PRE_ADD_SKILLSLOT_EXTEND )
|
||
const BYTE QUICKSLOTMAX = 60; // 단축 슬롯창 12칸씩 2줄 x 2(기본스킬 + 확장스킬) + 1중(제스처 소셜액션용)
|
||
const BYTE QUICKSLOTSEPARATE = 48; // 제스쳐
|
||
#else // #if defined( PRE_ADD_SKILLSLOT_EXTEND )
|
||
const BYTE QUICKSLOTMAX = 50; // 단축 슬롯창 10칸씩 2줄 + 1중(제스처 소셜액션용)
|
||
const BYTE QUICKSLOTSEPARATE = 40; // 제스쳐
|
||
#endif // #if defined( PRE_ADD_SKILLSLOT_EXTEND )
|
||
|
||
const BYTE SKILLMAX = 100; // 스킬 최대 개수
|
||
const BYTE GESTUREMAX = 100; // 제스처 최대 개수
|
||
|
||
const BYTE SKILLPRESETMAX = 3; // 저장스킬프리셋 최대갯수
|
||
const BYTE SKILLPRESETNAMEMAX = 13; // 저장스킬프리셋이름 최대
|
||
|
||
const BYTE CASHGLYPHSLOTMAX = 3; //캐쉬 문장 슬롯 최대 갯수
|
||
|
||
#if defined( PRE_ADD_NAMEDITEM_SYSTEM )
|
||
const BYTE EFFECTSKILLMAX = 50; // 이펙트 스킬 최대 갯수
|
||
#endif
|
||
#if defined(PRE_ADD_MACHINA) && defined(PRE_ADD_LENCEA) && defined(PRE_ADD_ASSASSIN) && defined(PRE_ADD_KALI) && defined(PRE_ADD_ACADEMIC)
|
||
const BYTE CLASSKINDMAX = 9; // kat 2016
|
||
#elif defined(PRE_ADD_LENCEA) && defined(PRE_ADD_ASSASSIN) && defined(PRE_ADD_KALI) && defined(PRE_ADD_ACADEMIC)
|
||
const BYTE CLASSKINDMAX = 8; //
|
||
#elif defined(PRE_ADD_ASSASSIN) && defined(PRE_ADD_KALI) && defined(PRE_ADD_ACADEMIC)
|
||
const BYTE CLASSKINDMAX = 7; // 워리어, 아처, 소서리스, 클레릭, 아카데믹, 칼리, 어쌔씬
|
||
#elif defined(PRE_ADD_KALI) && defined(PRE_ADD_ACADEMIC)
|
||
const BYTE CLASSKINDMAX = 6; // 워리어, 아처, 소서리스, 클레릭, 아카데믹, 칼리
|
||
#elif defined(PRE_ADD_ACADEMIC)
|
||
const BYTE CLASSKINDMAX = 5; // 워리어, 아처, 소서리스, 클레릭, 아카데믹
|
||
#else
|
||
const BYTE CLASSKINDMAX = 4; // 워리어, 아처, 소서리스, 클레릭
|
||
#endif // #ifdef PRE_ADD_ACADEMIC
|
||
//job max changed to 10 from 8
|
||
const BYTE JOBMAX = 10; // 전직 최대개수(?) // 이거 네이밍이 혼란의 여지가 많다..나중에 바꾸던가..해야할듯......
|
||
const BYTE JOB_KIND_MAX = 100; // 최대 직업 개수
|
||
const BYTE CHARLEVELMAX = 100; // 캐릭터 레벨 최대값
|
||
|
||
const BYTE DailyCreateCharacterMax = 7; // 하루에 만들 수 있는 캐릭수
|
||
|
||
#if !defined(PRE_MOD_SELECT_CHAR)
|
||
#if defined(_JP)
|
||
const BYTE CreateCharacterDefaultCountMax = 8; // 캐릭생성 맥스 - 일본만 기본 8개로 확장 20110908
|
||
#else // #if defined(_JP)
|
||
const BYTE CreateCharacterDefaultCountMax = 4; // 캐릭생성 맥스
|
||
#endif // #if defined(_JP)
|
||
#endif // #if defined(PRE_MOD_SELECT_CHAR)
|
||
|
||
#if defined(PRE_MOD_SELECT_CHAR)
|
||
const BYTE CHARCOUNTMAX = 50; // 캐릭터 만드는 최대개수
|
||
#else // #if defined(PRE_MOD_SELECT_CHAR)
|
||
const BYTE CHARCOUNTMAX = 30; // 캐릭터 만드는 최대개수
|
||
#endif // #if defined(PRE_MOD_SELECT_CHAR)
|
||
|
||
#if defined(PRE_ADD_CHANNELNAME)
|
||
const BYTE CHANNELLANGUAGEMAX = 4; // 채널 언어명
|
||
#endif //#if defined(PRE_ADD_CHANNELNAME)
|
||
const BYTE MAPNAMELENMAX = 64; // 맵이름 최대갯수
|
||
|
||
const BYTE DEFAULTITEMMAX = 25; // 캐릭터 생성시 넣어줄 아이템 최대개수
|
||
const BYTE DEFAULTPARTSMAX = 10; // 캐릭터 생성시 비교할 기본 파츠 최대개수
|
||
const BYTE DEFAULTPOSITIONMAX = 10; // 캐릭터 생성시 시작위치 최대개수
|
||
const BYTE DEFAULTSKILLMAX = 10; // 캐릭터 생성시 넣어줄 스킬
|
||
const BYTE DEFAULTUNLOCKSKILLMAX = 20; // 캐릭터 생성시 넣어줄 언락스킬
|
||
#if defined(PRE_ADD_SKILLSLOT_EXTEND)
|
||
const BYTE DEFAULTQUICKSLOTMAX = 60; // 캐릭터 생성시 퀵슬롯 최대개수
|
||
#else // #if defined(PRE_ADD_SKILLSLOT_EXTEND)
|
||
const BYTE DEFAULTQUICKSLOTMAX = 50; // 캐릭터 생성시 퀵슬롯 최대개수
|
||
#endif // #if defined(PRE_ADD_SKILLSLOT_EXTEND)
|
||
const BYTE WEAPONMAX = 2; // 무기 최대개수
|
||
const BYTE DEFAULTGESTUREMAX = 10; // 캐릭터 생성시 넣어줄 기본제스처(소셜액션)갯수
|
||
const BYTE DEFAULTHAIRCOLORMAX = 5; //rlkt ioncrease
|
||
const BYTE DEFAULTSKINCOLORMAX = 4; //here 4!
|
||
const BYTE DEFAULTEYECOLORMAX = 5;
|
||
|
||
const BYTE SHOPTABMAX = 6; // 상점 텝 최대개수
|
||
const BYTE SHOPITEMMAX = 60; // 상점 아이템 최대 개수
|
||
//const BYTE REBUYITEMMAX = 25; // 재매입 개수
|
||
const BYTE SKILLSHOPITEMMAX = 10; // 스킬 상점 아이템 최대 개수
|
||
|
||
const BYTE SENDDROPITEMLISTMAX = 30; // 난입시 DropItem 한번에 보내는 최대 개수
|
||
|
||
const BYTE SENDCHATROOMVIEWMAX = 10; // 난입시 ChatRoomView 한번에 보내는 최대 개수
|
||
|
||
const BYTE MAILTITLELENMAX = 30; // 우편 제목
|
||
const BYTE MAILDATELENMAX = 20; // 우편 날짜
|
||
const BYTE MAILTEXTLENMAX = 198; // 우편 내용
|
||
const BYTE MAILBOXMAX = 30; // 우편함 맥스 일단 100개
|
||
const BYTE MAILATTACHITEMMAX = 5; // 편지쓰기 아이템 맥스 5개
|
||
const char MAILPAGEMAX = 6;
|
||
|
||
const BYTE MARKETPAGEMAX = 5; // 1페이지 맥스값
|
||
const BYTE MARKETMAX = 5 * 10; // 마켓 리스트 맥스 (5 * 10페이지)
|
||
const int MYMARKETMAX = 25; // 내 마켓 리스트
|
||
|
||
const int MARKETREGISTERMAX = 100; // 마켓등록 최대개수
|
||
const int MARKETSELLSUCCESSMAX = 1000000000; // 판매성공횟수
|
||
const int MARKETSELLFAILUREMAX = 1000000000; // 판매실패횟수
|
||
const int MARKETREGISTERTAXMAX = 1000000000; // 누적 등록 수수료
|
||
const int MARKETSELLTAXMAX = 1000000000; // 누적 판매 수수료
|
||
|
||
const int SALEABORTLISTMAX = 30; // 판매중지 리스트 최대값
|
||
|
||
const int CARTLISTMAX = 10; // 장바구니 최대개수
|
||
const int PREVIEWCARTLISTMAX = 20; // 미리보기 장바구니 최대개수
|
||
const int GIFTMESSAGEMAX = 51; // 선물창 메모 (국가별로 나누기 귀찮아서 50으로 통일)
|
||
const int GIFTBOXLISTMAX = 100; // 선물창
|
||
const int GIFTPAGEMAX = 8;
|
||
#if defined(_TW) || defined (_SG)
|
||
const int COUPONMAX = 21; // 대만 쿠폰
|
||
#else
|
||
const int COUPONMAX = 31; // 쿠폰
|
||
#endif
|
||
const int PACKAGEITEMMAX = 20;
|
||
const int COUPONITEMMAX = 10; // 쿠폰 아이템 최대수
|
||
const int PUBLISHERORDERKEYMAX = 32 + 1; // 퍼블리셔 발급 주문번호 최대 크기
|
||
|
||
const BYTE SEARCHWORDMAX = 3; // 검색 단어 최대개수
|
||
const BYTE SEARCHLENMAX = 50; // 무인상점 검색
|
||
const BYTE EXCHANGEMAX = 10; // 개인거래 맥스값
|
||
|
||
const BYTE COMPOUNDITEMMAX = 10; // 문장 보옥 합성시 최대 보옥 갯수
|
||
|
||
const BYTE DUNGEONCLEARMAX = 120; // 던젼 클리어 개수
|
||
const BYTE NESTCLEARMAX = 50; // nest 클리어
|
||
|
||
const int MAXPARTYDICEGAMENUMBER = 100; // 파티 아이템 분배 시 나올 수 있는 최대 주사위 숫자
|
||
const int NPCPRESENTMAX = 50; // Npc 선물 최대 갯수
|
||
|
||
const int MISSIONMAX = 10000;
|
||
const int APPELLATIONMAX = 10000;
|
||
const BYTE PERIODAPPELLATIONMAX = 50; //기간제 칭호 최대 갯수
|
||
const int LASTMISSIONACHIEVEMAX = 3;
|
||
|
||
const int MISSIONMAX_BITSIZE = MISSIONMAX / 8;
|
||
const int TIMEEVENTMAX = 20;
|
||
|
||
const int PCBangMissionMax = 20;
|
||
const int DAILYMISSIONMAX = 15; // 일단 15개로 늘립니다.
|
||
const int WEEKLYMISSIONMAX = 15; // 일단 15개로 늘립니다.
|
||
const int GUILDWARMISSIONMAX = 15;
|
||
const int GUILDCOMMONMISSIONMAX = 5;
|
||
const int WEEKENDEVENTMISSIONMAX = 15;
|
||
const int WEEKENDREPEATMISSIONMAX = 15;
|
||
#if defined(PRE_ADD_MONTHLY_MISSION)
|
||
const int MONTHLYMISSIONMAX = 5;
|
||
#endif // #if defined(PRE_ADD_MONTHLY_MISSION)
|
||
|
||
const int VIEWCASHEQUIPMAX_BITSIZE = 4;
|
||
const int APPELLATIONMAX_BITSIZE = APPELLATIONMAX / 8;
|
||
|
||
const int MISSIONREWARDITEMMAX = 3;
|
||
|
||
const int MAXDICERANGE = 1000;
|
||
const int VOICEUPDATETIME = 1000;
|
||
|
||
const int LIFESPANMAX = 5 * 365 * 24 * 60; // 5년 (분)
|
||
const int REMOVECASHWAITINGTIME = 7 * 24 * 60; // 7일 (분으로 계산)
|
||
|
||
const int ITEMDROP_DEPTH = 8;
|
||
const int MAXITEMDROPFIELD = 20; // 코스튬 합성 시 드랍할 수 있는 결과물 필드의 최대 개수
|
||
#if defined(_KR) || defined(_KRAZ)
|
||
const int MAXCOSMIXSTUFF = 2; // 코스튬 합성 재료 아이템 최대 개수
|
||
#else
|
||
const int MAXCOSMIXSTUFF = 5; // 코스튬 합성 재료 아이템 최대 개수
|
||
#endif // _KR
|
||
|
||
#if defined (PRE_ADD_BESTFRIEND)
|
||
const int BESTFRIENDMEMO_MAX = 40; // 절친 메모 최대크기
|
||
const int BESTFRIEND_CLOSETIME = 4 * 24 * 60 * 60; // 4일 (초)
|
||
#endif // #if defined (PRE_ADD_BESTFRIEND)
|
||
|
||
#if defined( PRE_ALTEIAWORLD_EXPLORE )
|
||
const int MAXALTEIADICENUMBER = 6; // 알테이아 주사위 최대 크기
|
||
#endif
|
||
|
||
enum eCostumeDesignMixStuffType
|
||
{
|
||
eCDMST_ABILITY,
|
||
eCDMST_DESIGN,
|
||
eCDMST_MAX
|
||
};
|
||
#ifdef PRE_ADD_COSRANDMIX
|
||
const int MAX_COSTUME_RANDOMMIX_STUFF = 2; // 코스튬 랜덤 합성 시 재료아이템 최대 개수
|
||
#endif
|
||
|
||
#if defined (PRE_ADD_CHAOSCUBE)
|
||
const int MAX_CHAOSCUBE_STUFF = 10;
|
||
#endif
|
||
|
||
// 캐쉬템으로 판매되는 가챠폰 코인 아이템 아이디.
|
||
const int JP_GACHACOIN_ITEM_ID = 1107345408;
|
||
|
||
// 영구적용 아이템으로 사용된는 비약 아이템 아이디.
|
||
const int ETERNITY_ITEM_STR_ITEM_ID = 302006280;
|
||
const int ETERNITY_ITEM_DEX_ITEM_ID = 302007304;
|
||
const int ETERNITY_ITEM_INT_ITEM_ID = 302008328;
|
||
const int ETERNITY_ITEM_CON_ITEM_ID = 302009352;
|
||
const int ETERNITY_ITEM_ALL_ITEM_ID = 302050312;
|
||
const int ETERNITY_ITEM_SP_ITEM_ID = 302051336;
|
||
|
||
const BYTE ITEMCATAGORY_MAX = 50;
|
||
const BYTE ITEMEXCHANGEGROUP_MAX = 50;
|
||
const BYTE ITEMJOB_MAX = 10;
|
||
|
||
const BYTE PVPMISSIONROOMGROUP_MAX = 50;
|
||
|
||
//community
|
||
#ifdef PRE_ADD_SHOWOPTION_PVPMARK
|
||
const BYTE DISPLAYOPTIONCOUNT = 15;
|
||
#else
|
||
const BYTE DISPLAYOPTIONCOUNT = 14;
|
||
#endif
|
||
const BYTE COMMDISPLAYOPTIONCOUNT = 3;
|
||
const BYTE COMMOPTIONCOUNT = 8;
|
||
|
||
//Friend
|
||
const int FRIEND_MAXCOUNT = 100;
|
||
const int FRIEND_GROUP_MAX = 10;
|
||
const int FRIEND_GROUP_NAMELENMAX = 50;
|
||
const int FRIEND_MEMO_LEN_MAX = 64;
|
||
|
||
//Chat
|
||
const int CHAT_PAPERING_CHECKTIME = 3; // 3초안에
|
||
const int CHAT_PAPERING_CHECKCOUNT = 3; // 3번 말하면,
|
||
const int CHAT_PAPERING_RESTRICTIONTIME = 30; // 30초 제재
|
||
|
||
//Gesture
|
||
const int GESTURE_PAPERING_CHECKTIME = 3; // 3초안에
|
||
const int GESTURE_PAPERING_CHECKCOUNT = 3; // 3번 사용하면,
|
||
const int GESTURE_PAPERING_RESTRICTIONTIME = 10;// 10초 제재
|
||
const int GESTURE_UNLOCKLV_CASH = -1; // 캐시아이템을 통한 제스쳐 해제
|
||
|
||
//Guild
|
||
const int GUILDDBID_DEF = 0; // 길드 DBID (없음)
|
||
const int GUILDUID_DEF = 0; // 길드 UID (없음)
|
||
const int GUILDSIZE_DEF = 20; // 길드 기본크기
|
||
const int SENDGUILDMEMBER_MAX = 100; // 길드원 한번에 보내는 최대 크기
|
||
const int GUILDSIZE_MAX = 300; // 길드 최대크기 (= 기본크기 + 추가크기)
|
||
|
||
//RLKT Incrase Guild Name
|
||
const int GUILDNAME_MAX = 20+1; // 20자
|
||
/*#if defined(_RU)
|
||
const int GUILDNAME_MAX = 14+1; // [러시아] 길드 이름 최대크기 ( 4 ~ 14자 ) + 널문자 포함
|
||
#elif defined(_SG) || defined(_US) || defined(_EU)
|
||
const int GUILDNAME_MAX = 20+1; // 20자
|
||
#else
|
||
const int GUILDNAME_MAX = 10*CHARSIZEMAX+1; // 길드 이름 최대크기 + 널문자 포함 (태국때문에 CHARSIZEMAX 곱해야함)
|
||
#endif */ // _RU
|
||
|
||
const int GUILDNOTICE_MAX = 40; // 길드 공지 최대크기
|
||
const int GUILDMONEY_MAX = 1000000000; // 길드 자금 최대크기
|
||
const int GUILDCREATECHARLEVEL_DEF = 9; // 길드 창설가능 기본레벨
|
||
const int GUILDPARAMTEXT_MAX = 40; // 길드 파라메터 텍스트 최대크기
|
||
const int GUILDHISTORYTEXT_MAX = 40; // 길드 히스토리 텍스트 최대크기(길드홈페이지도 같이 쓰고있으므로 바꿀떄 체크해야함)
|
||
const int GUILDHISTORYLIST_MAX = 20; // 길드 히스토리 목록 최대크기
|
||
const int GUILDROLENAME_MAX = 6; // 길드 역할이름 최대크기
|
||
const int GUILDMEMBINTRODUCE_MAX = 40; // 길드원 자기소개 최대크기
|
||
const int GUILDMNGRSIZE_DEF = 100; // 길드 관리자의 자원준비 기본크기
|
||
const int GUILDCMMPTR_MAX = 1000000000; // 길드 일반 포인트 최대크기
|
||
const int GUILDLDDPTR_MAX = 1000000000; // 길드 래더 포인트 최대크기
|
||
const BYTE GUILD_WAREHOUSE_MAX = 150; // 길드 최대 창고크기
|
||
const BYTE GUILD_WAREHOUSE_HISTORYLIST_MAX = 20; // 길드 창고 히스토리 최대 크기
|
||
const int GUILDRECRUITINTRODUCE = 190; // 길드모집게시판 소개글
|
||
const int GUILDWARPOINT_DEF = 2500; // 길드전 기본 포인트
|
||
const short GUILDWARSCHEDULE_DEF = -1;
|
||
const int GUILDHOMEPAGE = 40; // 길드모집게시판 홈페이지 주소
|
||
|
||
#ifdef PRE_ADD_GETITEM_WITH_RANDOMVALUE
|
||
const int RANDOMGIVE_CHARMITEM_MAX = 100;
|
||
#endif //#ifdef PRE_ADD_GETITEM_WITH_RANDOMVALUE
|
||
|
||
//event
|
||
#if defined(PRE_ADD_WORLD_EVENT)
|
||
const short EVENTLISTMAX = 100; //한월드 이벤트 설정 최대값
|
||
#else
|
||
const short EVENTLISTMAX = 20; //한월드 이벤트 설정 최대값
|
||
#endif //#if defined(PRE_ADD_WORLD_EVENT)
|
||
const short EVENTCLEARBONUSMAX = 5; //스테이지 클리어시 이벤트 중첩최대값
|
||
|
||
const int CHATROOMNAME_MAX = 14; // 채팅방 이름 최대 길이
|
||
const BYTE CHATROOMPASSWORDMAX = 4; // 채팅방 패스워드 최대 길이
|
||
|
||
const int ITEMSKILLMAXCOOLTIME = 7 * 24 * 60 * 60;// 스킬 최대 쿨타임
|
||
|
||
enum eGuildMedalType // 길드 메달 타입
|
||
{
|
||
GUILDMEDAL_TYPE_GOLD = 0, // 금
|
||
GUILDMEDAL_TYPE_SILVER, // 은
|
||
GUILDMEDAL_TYPE_BRONZE, // 동
|
||
GUILDMEDAL_TYPE_CNT,
|
||
};
|
||
|
||
enum eGuildRoleType // 길드 직책 타입 (P.S.> 새로운 멤버는 반드시 뒤에 추가해야 함)
|
||
{
|
||
GUILDROLE_TYPE_MASTER = 0, // 길드장
|
||
GUILDROLE_TYPE_SUBMASTER, // 길드부장
|
||
GUILDROLE_TYPE_SENIOR, // 선임
|
||
GUILDROLE_TYPE_REGULAR, // 정식
|
||
GUILDROLE_TYPE_JUNIOR, // 신입
|
||
GUILDROLE_TYPE_CNT,
|
||
};
|
||
|
||
enum eGuildAuthType // 길드 권한 타입 (P.S.> 새로운 멤버는 반드시 뒤에 추가해야 하며 int 에 비트 플래그로 기록되므로 전체 개수가 이에 영향을 받는 것에 주의 필요)
|
||
{
|
||
GUILDAUTH_TYPE_EXILE = 0, // 추방
|
||
GUILDAUTH_TYPE_NOTICE = 1, // 공지
|
||
GUILDAUTH_TYPE_INVITE = 2, // 초대
|
||
GUILDAUTH_TYPE_BATTLE = 3, // 전투
|
||
GUILDAUTH_TYPE_WAREHOUSE = 4, // 창고 <미사용>
|
||
GUILDAUTH_TYPE_SKILL = 5, // 스킬
|
||
|
||
GUILDAUTH_TYPE_STOREITEM = 6, // 아이템 보관
|
||
GUILDAUTH_TYPE_TAKEITEM = 7, // 아이템 꺼내기
|
||
GUILDAUTH_TYPE_WITHDRAW = 8, // 출금
|
||
GUILDAUTH_TYPE_HOMEPAGE = 9, // 홈페이지 변경
|
||
GUILDAUTH_TYPE_CNT,
|
||
};
|
||
|
||
enum eGuildUpdateType // 길드 정보 변경 타입 INT_1 INT_2 INT_3 INT_4 INT64_1 TEXT(40)
|
||
{
|
||
GUILDUPDATE_TYPE_NOTICE = 0, // 공지 변경 - - - - - 공지내용
|
||
GUILDUPDATE_TYPE_ROLENAME, // 직급 이름 변경 직급번호 - - - - 직급이름
|
||
GUILDUPDATE_TYPE_ROLEAUTH, // 직급 권한 변경 직급번호 권한플래그 아이템제한 코인제한 - -
|
||
GUILDUPDATE_TYPE_GUILDWAR, // 길드전 참여, 우승횟수 증가 참여횟수증가 우승횟수증가 - - - -
|
||
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
|
||
GUILDUPDATE_TYPE_HOMEPAGE, // 홈페이지 변경 - - - - - 홈페이지
|
||
#endif
|
||
GUILDUPDATE_TYPE_CNT,
|
||
};
|
||
|
||
enum eGuildMemberUpdateType // 길드원 정보 변경 타입 INT_1 INT_2 INT64_1 TEXT(40)
|
||
{
|
||
GUILDMEMBUPDATE_TYPE_INTRODUCE = 0, // 자기소개 변경 (길드원 자신) - - - 소개내용
|
||
GUILDMEMBUPDATE_TYPE_ROLE, // 직급 변경 (길드장 → 길드원 ?) 직급번호 (길드장 제외) 캐릭터레벨 - -
|
||
GUILDMEMBUPDATE_TYPE_GUILDMASTER, // 길드장 위임 (길드장 → 길드원 ?) - - - -
|
||
GUILDMEMBUPDATE_TYPE_CMMPOINT, // 일반 포인트 증가/감소 (기여/사용) 증감/사용 (IN/OUT) 누적 (OUT) - -
|
||
GUILDMEMBUPDATE_TYPE_JOBCODE, // 길드원 직업 변경 직업코드
|
||
GUILDMEMBUPDATE_TYPE_LOGINOUT, // 길드원 로그인 로그아웃 로그아웃:_LOCATION_NONE
|
||
// 로그인 :_LOCATION_MOVE
|
||
GUILDMEMBUPDATE_TYPE_CNT,
|
||
};
|
||
|
||
enum eGuildHistoryType // 길드 히스토리 타입 INT_1 INT_2 INT64_1 TEXT(40)
|
||
{
|
||
GUILDHISTORY_TYPE_BEGIN =0,
|
||
GUILDHISTORY_TYPE_CREATE =1, // 길드 창설 - - - -
|
||
GUILDHISTORY_TYPE_LEVELUP =2, // 길드 레벨업 길드레벨 - - -
|
||
GUILDHISTORY_TYPE_JOIN =3, // 길드원 가입 - - - 캐릭터이름
|
||
GUILDHISTORY_TYPE_LEAVE =4, // 길드원 탈퇴 - - - 캐릭터이름
|
||
GUILDHISTORY_TYPE_EXILE =5, // 길드원 추방 - - - 캐릭터이름
|
||
GUILDHISTORY_TYPE_ROLECHNG =6, // 길드원 직급변경 직급번호 - - 캐릭터이름
|
||
GUILDHISTORY_TYPE_MEMBLEVELUP=7, // 길드원 레벨업 (10레벨) 길드원레벨 - - 캐릭터이름
|
||
GUILDHISTORY_TYPE_ITEMENCT =8, // 길드원 고강화 성공 강화단계 아이템번호 길드원캐릭터ID 캐릭터이름
|
||
GUILDHISTORY_TYPE_CLOSE =9, // 길드폐쇄 - - -
|
||
GUILDHISTORY_TYPE_WARESIZE =10, // 길드 창고크기 변경 최종크기 - - 캐릭터이름
|
||
GUILDHISTORY_TYPE_RENAME =11, // 길드 이름 변경 - - - 변경전이름,변경후이름
|
||
GUILDHISTORY_TYPE_RECRUITSTART =12, // 길드모집 시작 - - - -
|
||
GUILDHISTORY_TYPE_RECRUITEND =13, // 길드모집 종료 - - - -
|
||
GUILDHISTORY_TYPE_CNT,
|
||
|
||
// 아래 값은 사용하지 않습니다.
|
||
GUILDHISTORY_TYPE_SKILLGAIN, // 길드 스킬 획득 - - - 스킬이름
|
||
GUILDHISTORY_TYPE_SKILLENFC, // 길드 스킬 강화 - - - 스킬이름
|
||
GUILDHISTORY_TYPE_MARKGAIN, // 길드 마크 획득 전경번호 후경번호 클라이언트이미지 -
|
||
GUILDHISTORY_TYPE_MARKCHNG, // 길드 마크 변경 전경번호 후경번호 클라이언트이미지 -
|
||
GUILDHISTORY_TYPE_MISSION, // 길드 미션 성공 미션번호 - - 미션이름
|
||
};
|
||
|
||
const char g_GuildHistoryLevel[GUILDHISTORY_TYPE_CNT] = {
|
||
0, // 길드 시작
|
||
1, // 길드 창설
|
||
2, // 길드 레벨업
|
||
3, // 길드원 가입
|
||
4, // 길드원 탈퇴
|
||
5, // 길드원 추방
|
||
6, // 길드원 직급변경
|
||
7, // 길드원 레벨업
|
||
8, // 길드원 고강화 성공
|
||
9, // 길드원 폐쇄
|
||
10, // 길드원 창고크기변경
|
||
11, // 길드 이름 변경
|
||
12, // 길드모집 시작
|
||
13, // 길드모집 종료
|
||
};
|
||
|
||
enum eGuildRewardEffect //길드 적용 효과 타입
|
||
{
|
||
GUILDREWARDEFFECT_TYPE_BEGIN = 0,
|
||
GUILDREWARDEFFECT_TYPE_GUILDITEM = 1, // 치장형아이템
|
||
GUILDREWARDEFFECT_TYPE_MAKEGUILDMARK = 2, // 길드마크제작
|
||
GUILDREWARDEFFECT_TYPE_MAXGUILDWARE = 3, // 길드창고슬롯증가
|
||
GUILDREWARDEFFECT_TYPE_MAXMEMBER = 4, // 길드원수제한증가
|
||
GUILDREWARDEFFECT_TYPE_EXTRAEXP = 5, // 추가경험치
|
||
GUILDREWARDEFFECT_TYPE_EXTRAPVPEXP = 6, // 추가콜로세움경험치
|
||
GUILDREWARDEFFECT_TYPE_EXTRAFESTPOINT = 7, // 추가길드축제포인트
|
||
GUILDREWARDEFFECT_TYPE_EXTRAWAREGOLD = 8, // 사냥종료 후 길드창고에 골드 입금--
|
||
GUILDREWARDEFFECT_TYPE_EXTRAUNIONPOINT = 9, // 추가연합포인트
|
||
GUILDREWARDEFFECT_TYPE_MOVESPEED = 10, // 안전지역 이동속도증가--
|
||
GUILDREWARDEFFECT_TYPE_VEHICLESPEED = 11, // 탈 것 이동속도 증가--
|
||
GUILDREWARDEFFECT_TYPE_REDUCEDURABILITYRATIO = 12, // 내구도 소모 비율 감소
|
||
GUILDREWARDEFFECT_TYPE_WAREREPAIRCOST = 13, // 길드창고에서 수리비용 사용--
|
||
#if defined( PRE_ADD_GUILDREWARDITEM )
|
||
GUILDREWARDEFFECT_TYPE_ADDSKILLTYPE1 = 14, // 힘, 민첩, 지혜, 건강순이지만 서버에서는 따로 타입 안따고 데이터로 관리
|
||
GUILDREWARDEFFECT_TYPE_ADDSKILLTYPE2 = 15,
|
||
GUILDREWARDEFFECT_TYPE_ADDSKILLTYPE3 = 16,
|
||
GUILDREWARDEFFECT_TYPE_ADDSKILLTYPE4 = 17,
|
||
#endif
|
||
GUILDREWARDEFFECT_TYPE_CNT,
|
||
};
|
||
enum eGuildRewardUpdateType
|
||
{
|
||
GUILDREWARDEFFECT_ADDTYPE_NEW = 0, // 생성
|
||
GUILDREWARDEFFECT_ADDTYPE_Add = 1, // 추가
|
||
GUILDREWARDEFFECT_ADDTYPE_EXCHANGE = 2, // 대체
|
||
};
|
||
enum eGuildCheckType
|
||
{
|
||
GUILD_REWARDITEM_CHECKTYPE_NONE = 0, // 조건없음
|
||
GUILD_REWARDITEM_CHECKTYPE_PREVITEM = 1, // 이전아이템(길드효과아이템체크)
|
||
GUILD_REWARDITEM_CHECKTYPE_GUILDMARK = 2, // 길드마크
|
||
};
|
||
//date
|
||
const int DATELENMAX = 32;
|
||
|
||
|
||
//serverlauncher nickname max
|
||
const BYTE SRVLAUNCHERNICKNAMEMAX = 50;
|
||
|
||
//serverprocess authorize string max for servermonitorcenter connection
|
||
const int SRVPROCESSAUTHORSTRMAX = 100;
|
||
|
||
//announce message max size
|
||
const int ANNOUNCEMSG_MAX = 200;
|
||
|
||
const int MONITORSERVERNODESEND_MAX = 10;
|
||
|
||
const int MONITOR_PATCHPATH_MAX = 128;
|
||
|
||
|
||
// 퀘스트 보상아이템 최대 갯수
|
||
const int QUESTREWARD_INVENTORYITEMMAX = 6;
|
||
|
||
const int MAX_QUEST_LEVEL_CAP_REWARD = 2;
|
||
const int MAX_PERIODQUEST_LIST = 100;
|
||
const int MAX_PERIODQUEST_DISTRIBUTION = 10;
|
||
const int PERIODQUEST_WAITTIME = 6000;
|
||
const int MAX_PERIODQUEST_PROCESSMIN = 2; // 2분
|
||
const int MAX_NOTICE_WORLDEVENT = 10;
|
||
|
||
const int PLAYER_MAX_LEVEL = CHARLEVELMAX; // CHARLEVELMAX 과 같음...
|
||
|
||
#if defined(PRE_ADD_SALE_COUPON)
|
||
const int MAX_SALE_USEITEM = 20;
|
||
#endif
|
||
|
||
#if defined(_CLIENT)
|
||
#ifdef PRE_MEMORY_SHUFFLE
|
||
#if !defined(_FINAL_BUILD)
|
||
#define SW_MSDT_ASSERT // assert() 발생
|
||
#define SW_MSDT_NOTINCLUDE_COMPILESAFETY
|
||
#define SW_MSDT_ERRORCHECK_ORIGINVALUE
|
||
#endif // _FINAL_BUILD
|
||
#include "MemoryShuffleDataType.h"
|
||
static MSDT_DECL(float) s_fDefaultFps = 60.f;
|
||
#else // PRE_MEMORY_SHUFFLE
|
||
static float s_fDefaultFps = 60.f;
|
||
#endif // PRE_MEMORY_SHUFFLE
|
||
#else // _CLIENT
|
||
static float s_fDefaultFps = 60.f;
|
||
#endif // _CLIENT
|
||
|
||
const int QUESTMEMOMAX = 10;
|
||
const int EVENTQUESTMAX = 20;
|
||
|
||
const int QUESTMEMOREWARDCHECK = QUESTMEMOMAX; // 퀘스트 보상 무한수령을 방지하기 위해 퀘스트 메모의 특정 인덱스를 할당, 퀘스트 보상 지급횟수 기록용으로 사용
|
||
|
||
typedef int TP_QUESTID;
|
||
typedef char TP_QUESTMEMO;
|
||
|
||
typedef char TP_JOB;
|
||
|
||
enum eStoreExternalType
|
||
{
|
||
EXTERNALTYPE_MASTER = 1,
|
||
EXTERNALTYPE_DATABASE,
|
||
EXTERNALTYPE_SERVICEMANAGER,
|
||
EXTERNALTYPE_CASH,
|
||
};
|
||
|
||
enum eNation
|
||
{
|
||
NATION_KOREA = 1,
|
||
NATION_KOREATEST,
|
||
NATION_JAPAN = 11,
|
||
NATION_CHINA = 21,
|
||
NATION_TAIWAN = 111,
|
||
NATION_USA = 41,
|
||
NATION_SINGAPORE = 51,
|
||
NATION_THAILAND = 61,
|
||
NATION_INDONESIA = 71,
|
||
NATION_RUSSIA = 81,
|
||
NATION_EUROPE = 91,
|
||
};
|
||
|
||
struct GameTaskType
|
||
{
|
||
enum eType
|
||
{
|
||
Normal = 0,
|
||
PvP,
|
||
DarkLair,
|
||
Farm,
|
||
Max,
|
||
};
|
||
};
|
||
|
||
enum eReqInfoType
|
||
{
|
||
REQINFO_TYPE_SINGLE = 0, // 싱글
|
||
REQINFO_TYPE_SINGLE_SAMEDEST, // 같은 빌리지로 이동시
|
||
REQINFO_TYPE_PARTY, // 파티
|
||
REQINFO_TYPE_PVP, // PvP
|
||
REQINFO_TYPE_PVP_BREAKINTO, // PvP난입
|
||
REQINFO_TYPE_PARTY_BREAKINTO, //파티초대 나중에 난입도 들어갈라나?
|
||
REQINFO_TYPE_FARM, //농장
|
||
REQINFO_TYPE_LADDER, // 래더
|
||
REQINFO_TYPE_LADDER_OBSERVER, // 래더 옵져버(난입)
|
||
};
|
||
|
||
enum eBridgeState {
|
||
BridgeUnknown,
|
||
LoginToVillage,
|
||
VillageToGame,
|
||
VillageToLogin,
|
||
VillageToVillage,
|
||
GameToVillage,
|
||
GameToLogin,
|
||
GameToGame,
|
||
GameToGame_Direct,
|
||
LoginToGame,
|
||
Exit,
|
||
};
|
||
|
||
enum eCommunityAcceptableOptionType
|
||
{
|
||
_CA_OPTIONTYPE_ACCEPT = 0,
|
||
_CA_OPTIONTYPE_DENYALL,
|
||
_CA_OPTIONTYPE_FRIEND_GUILD_ACCEPT,
|
||
};
|
||
|
||
enum eGameOptionAcceptableCheckType
|
||
{
|
||
_ACCEPTABLE_CHECKTYPE_PARTYINVITE,
|
||
_ACCEPTABLE_CHECKTYPE_GUILDINVITE,
|
||
_ACCEPTABLE_CHECKTYPE_TRADEREQUEST,
|
||
_ACCEPTABLE_CHECKTYPE_DUELREQUEST,
|
||
_ACCEPTABLE_CHECKTYPE_LADDERINVITE,
|
||
_ACCEPTABEL_CHECKTYPE_QUICKPVPINVITE,
|
||
};
|
||
|
||
#if defined(_KR)
|
||
enum eAuthResult
|
||
{
|
||
// Initialize = 41
|
||
INIT_OK = 0, // 정상적으로 도메인 인증 성공
|
||
INIT_DUPLICATE = 1, // 이미 해당 도메인번호로 인증받은 세션이 존재 (기존 도메인 접속 정보도 끊는다.)
|
||
INIT_ILLEGAL_DOMAIN = 2, // 인증서버에 등록되지 않은 도메인 번호
|
||
INIT_ERROR = 99, // 알수없는 오류
|
||
|
||
Result_Forbidden = 0, // 금지된 경로로 접속. 게임서버는 해당사용자를 끊고 Logout패킷을 인증서버에 보낸다.
|
||
Result_Allowed = 1, // 허용. 게임 가능하고, 인증서버에 더 이상 패킷을 보낼 필요 없다.
|
||
Result_Trial = 2, // 체험판. 게임 가능 여부는 게임 정책에 따라 판단한다. 게임을 할 수 없이 끊는다면 Logout패킷을 인증서버에 보낸다
|
||
Result_Terminate = 3, // 종료. 주로 시간제를 사용하다가 시간이 소진될 경우 인증서버에서 통보하기 위해 사용된다. 게임 서버는 해당 사용자에 대한 처리 작업 후 인증서버로 Logout신호를 보낸다.
|
||
Result_Message = 4, // 게임 중에 인증서버에서 게임서버로 메시지를 보낼 때 사용한다
|
||
|
||
AddressDesc_M = 'M', // 정량PC방 (Prepaid)
|
||
AddressDesc_F = 'F', // 정액PC방 (Flatcafe)
|
||
AddressDesc_I = 'I', // 체험판 (Internet)
|
||
|
||
ChargeType_R = 'R', // 과금 (과금을 처리하는 사용자)
|
||
ChargeType_E = 'E', // 비과금 (과금을 처리하지 않는 사용자)
|
||
|
||
Option_NoOption = 0, // 기본값
|
||
Option_AddressNotAllowed = 1, // 허용된 ip가 아닙니다.
|
||
Option_AddressMaxConnected = 2, // ip당 가능한 접속수를 넘었습니다.
|
||
Option_AccountNotAllowed = 4, // 허용된 id가 아닙니다
|
||
Option_AccountMaxConnected = 5, // 개인 최대접속 id수를 넘었습니다.
|
||
Option_WelcomeAddress = 11, // pc방 계약으로 접속하였습니다.
|
||
Option_WelcomeTrial = 13, // 체험판 접속입니다.
|
||
Option_WelcomePrepaid = 17, // pc방 정량제 접속입니다. 이때 argument = 남은시간
|
||
Option_PrepaidExhausted = 19, // pc방 정량제 시간이 소진되었습니다.
|
||
Option_DifferentIpNotAllowed = 27, // pc방 프리미엄 적용대상이 아닙니다. 넥슨 Pc방 고객센터로 문의바랍니다. (Local Ip와 Server Ip가 다르고 정량제 유저일 경우)
|
||
Option_AccountMachineIDBlocked = 28, // 불법사용자 머신ID차단
|
||
Option_AccountShutdowned = 31, // 청소년 선택적 셧다운 타임존에 제한된 접속입니다.
|
||
};
|
||
#endif // _KR
|
||
|
||
enum eError
|
||
{
|
||
ERROR_UNKNOWN_HEADER = -3, // 처리 하지 않는 패킷 수신(이걸로 리턴하면 컨넥션이 끊어집니다 유저인경우)
|
||
ERROR_INVALIDPACKET = -2, // 비정상적인 패킷(이걸로 리턴하면 컨넥션이 끊어집니다 유저인경우)
|
||
ERROR_DB = -1, // 일반 디비 에러
|
||
ERROR_NONE = 0, // ok
|
||
ERROR_NONE_ROWCOUNT = 1, // 1은 비워놓쟈~ (DB쪽 ROWCOUNT체크값)
|
||
|
||
//대략 100번까지 서버간의 에러메세지
|
||
ERROR_GENERIC_INVALIDREQUEST = 2, //기본적인에러임 대부분의 잘못된 요청인경우
|
||
ERROR_GENERIC_UNKNOWNERROR = 3, //알 수 없는 오류입니다.
|
||
ERROR_GENERIC_DUPLICATEUSER = 4, //중복 로그인
|
||
ERROR_GENERIC_DUPLICATESESSIONID = 5, //중복 세션아이디
|
||
ERROR_GENERIC_USER_NOT_FOUND = 6, //유저가 존재하지 않습니다.
|
||
ERROR_GENERIC_DBCON_NOT_FOUND = 7, //데이타베이스 연결이 원활하지 않습니다.
|
||
ERROR_GENERIC_VILLAGECON_NOT_FOUND = 8, //서버 연결이 원활하지 않습니다.
|
||
ERROR_GENERIC_MASTERCON_NOT_FOUND = 9, // 서버 연결이 원활하지 않습니다.
|
||
ERROR_GENERIC_GAMECON_NOT_FOUND = 10, //서버 연결이 원활하지 않습니다.
|
||
ERROR_GENERIC_WORLDFULLY_CAPACITY = 11, //월드인원이 가득참
|
||
ERROR_GENERIC_HACKSHIELD = 12, // 핵쉴드 에러
|
||
ERROR_GENERIC_TIME_WAIT = 13, // 잠시 후 다시 시도해주세요.
|
||
ERROR_GENERIC_LEVELLIMIT = 14, // 레벨제한
|
||
|
||
ERROR_DB_SYSTEM = 99, // 데이터베이스 시스템 에러가 발생하였습니다.
|
||
|
||
//UI String Match Enumulation
|
||
//Login Message Starting at 100
|
||
ERROR_LOGIN_FAIL = 100, // "로그인 에러 입니다"
|
||
ERROR_LOGIN_VERSION_UNMATCH = 101, // "버전이 맞지 않습니다"
|
||
ERROR_LOGIN_ID_PASS_UNMATCH = 102, // "아이디, 패스워드가 맞지 않습니다."
|
||
ERROR_LOGIN_SELECT_SERVER = 103, // "서버를 선택하여 주십시오."
|
||
ERROR_LOGIN_SELECT_CHARACTER = 104, // "캐릭터를 선택하여 주십시오."
|
||
ERROR_LOGIN_SELECT_CHANNEL = 105, // "채널을 선택하여 주십시오."
|
||
ERROR_LOGIN_CHARACTERNAME_ALREADY_EXIST = 106, // "이미 존재 하는 캐릭터 이름입니다."
|
||
ERROR_LOGIN_CHARACTER_DELETED = 107, // "캐릭터를 삭제하였습니다"
|
||
ERROR_LOGIN_ALREADY_LOGEDIN = 108, // "중복 로그인 입니다."
|
||
ERROR_LOGIN_CHARACTERLIST_ERROR = 109, // "캐릭터 리스트를 불러오지 못했습니다."
|
||
ERROR_LOGIN_CANNOT_CREATE_CHARACTER_ANYMORE = 110, // "더 이상 캐릭터를 생성 할 수 없습니다."
|
||
ERROR_LOGIN_PARTS_NOT_FOUND = 111, // "캐릭터 파츠가 존재하지 않습니다."
|
||
ERROR_LOGIN_CHARACTER_INDEX_UNMATCH = 112, // "캐릭터 인덱스가 맞지 않습니다."
|
||
ERROR_LOGIN_CREATE_CHARACTER_FAIL = 113, // "캐릭터 생성에 실패 하였습니다."
|
||
ERROR_LOGIN_PROHIBITWORD = 114, // 만들 수 없는 이름입니다. (금칙어)
|
||
ERROR_LOGIN_FCM_PROTECTED = 115, // 중국 피로도 경고문 (입력미완료)
|
||
ERROR_LOGIN_FCM_LIMITED = 116, // 중국 피로도 경고문 (미성년)
|
||
ERROR_117 = 117, // 접속시간이 아닙니다.
|
||
ERROR_LOGIN_ERASE_CHARACTER_FAIL_GUILDMASTER = 118, // 현재 길드 마스터이므로 캐릭터를 삭제할 수 없습니다.
|
||
ERROR_LOGIN_CANNOT_CREATE_CHARACTER_TODAY = 119, // "오늘은 더 이상 캐릭터를 생성 할 수 없습니다."
|
||
ERROR_LOGIN_HAIRCOLOR_NOT_FOUND = 120,
|
||
ERROR_LOGIN_SKINCOLOR_NOT_FOUND = 121,
|
||
ERROR_LOGIN_EYECOLOR_NOT_FOUND = 122,
|
||
ERROR_LOGIN_SDOUA_NEED_INFO = 123, // 중국 상세정보 입력 필요
|
||
ERROR_LOGIN_AUTHCHECK_INVALID_ARGUMENT = 124, // 1: Argument is not valid
|
||
ERROR_LOGIN_AUTHCHECK_INVALID_PASSPORT = 125, // 2: NexonPassport is not valid
|
||
//ERROR_LOGIN_AUTHCHECK_ERROR_TIMEOUT = 126, // 3: [obsolete] same as AUTHCHECK_ERROR_EXPIRED
|
||
ERROR_LOGIN_AUTHCHECK_EXPIRED = 126, // 3: NexonPassport is valid, but arleady expired
|
||
ERROR_LOGIN_AUTHCHECK_AUTH_SERVER_SHUTDOWN = 127, // 4: Authentication server is shutdown
|
||
ERROR_LOGIN_AUTHCHECK_UNSUPPORTED_LOCALE = 128, // 5: Unsupported Locale ID
|
||
ERROR_LOGIN_AUTHCHECK_SET_LOCALE_NEEDED = 129, // 6: call AuthCheck_SetLocale first
|
||
ERROR_LOGIN_AUTHCHECK_NO_SERVER_INFORMATION = 130, // 7: no server information in config file
|
||
ERROR_LOGIN_AUTHCHECK_USER_IP_MISMATCHED = 131, // 8: client ip address is mismatched with sso servers data
|
||
ERROR_LOGIN_AUTHCHECK_NO_DECRYPTION_KEY = 132, // 9: There is no passport decryption key. Check AuthCheck_LoadKey function or key file.
|
||
ERROR_LOGIN_AUTHCHECK_LOW_LEVEL_PASSPORT = 133, // 10: passport level is lower than minimum passport level
|
||
ERROR_LOGIN_AUTHCHECK_GAMECODE_MISMATCHED = 134, // 11: Mismatch between the caller's gamecode and the passport's gamecode.
|
||
ERROR_LOGIN_AUTHCHECK_SESSION_NOT_EXIST = 135, // 12: User session data not exists. ( Maybe timeout or something. )
|
||
ERROR_LOGIN_AUTHCHECK_DISCONNECTED = 136, // 13: User IP or session key missmatched with current login session. Maybe logged out by another session.
|
||
ERROR_LOGIN_AUTHCHECK_SERVER_FAILED = 137, // 100: Internal error.
|
||
ERROR_LOGIN_CANNOT_CREATE_DWCCHARACTER_EXIST = 138, // DWC 캐릭터를 이미 가지고 있다.
|
||
ERROR_LOGIN_CANNOT_FIND_DWCCHARACTER = 139, // DWC 캐릭터를 만들었지만 캐릭터 목록에서 찾을 수 없다.
|
||
ERROR_LOGIN_DWC_WRONG_DATE = 140, // DWC 기간이 아니다.
|
||
ERROR_LOGIN_CANNOT_CREATE_DWCCHARACTER_LIMITLEVEL = 141,// DWC 캐릭터를 만들기 위해 필요한 캐릭터 레벨이 부족하다.
|
||
|
||
//Character Message Starting at 200
|
||
ERROR_CHARACTER_QUICKSLOT_NOTFOUND = 200, // "퀵슬롯이 존재하지 않습니다."
|
||
ERROR_FCMSTATE = 201, // 피로시간이므로 안됨(?)
|
||
ERROR_CHARACTER_DATA_NOT_LOADED_SELF = 202, // 자신의 캐릭터 데이터가 아직 로딩 중입니다.
|
||
ERROR_CHARACTER_DATA_NOT_LOADED_OPPOSITE = 203, // 상대방 캐릭터 데이터가 아직 로딩 중입니다.
|
||
|
||
//Party Message Starting at 300
|
||
ERROR_PARTY_CREATE_FAIL = 300, //파티생성실패
|
||
ERROR_PARTY_DELETE_FAIL = 301, //파티 삭제가 실패하였습니다.
|
||
ERROR_PARTY_JOINFAIL = 302, //파티에 참가 할 수 없습니다.
|
||
ERROR_PARTY_JOINFAIL_ZONLEVEL_SHORTAGE = 303, //월드존레벨 미달
|
||
ERROR_PARTY_JOINFAIL_CHARACTERLEVEL_SHORTAGE = 304, //캐릭터레벨미달
|
||
ERROR_PARTY_JOINFAIL_PASSWORDINCORRECT = 305, //비밀번호 맞지 않음
|
||
ERROR_PARTY_LEAVEFAIL = 306, //파티나가기 실패
|
||
ERROR_PARTY_STARTSTAGE_FAIL = 307, //게임을 시작 할 수 없습니다.
|
||
ERROR_PARTY_INVITEFAIL = 308, //초대에 실패하였습니다.
|
||
ERROR_PARTY_INVITEFAIL_ALREADY_HAS_PARTY = 309, //대상이 파티에 속해 있어 초대할 수 없습니다.
|
||
ERROR_PARTY_INVITEFAIL_ZONLEVEL_SHORTAGE = 310, //존레벨이 낮아 초대할 수 없습니다.
|
||
ERROR_PARTY_INVITEFAIL_CHARACTERLEVEL_SHORTAGE = 311, //캐릭터레벨이 낮아 초대 할 수 없습니다.
|
||
ERROR_PARTY_INVITEFAIL_ALREADY_INVITED = 312, //이미 초대된 대상입니다.
|
||
ERROR_PARTY_INVITEFAIL_DESTUSER_NOTFOUND = 313, //대상이 존재하지 않습니다.
|
||
ERROR_PARTY_KICKFAIL = 314, //강퇴실패
|
||
ERROR_PARTY_LEADER_APPOINTMENTFAIL = 315, //파티장임명실패
|
||
ERROR_PARTY_MOVECHANNELFAIL = 316, //채널이동실패
|
||
ERROR_PARTY_JOINFAIL_INREADYSTATE = 317, //레디상태에서 파티참가 할 수 없음
|
||
ERROR_PARTY_KICKOK = 318, // 강퇴성공(?)
|
||
ERROR_PARTY_JOINFAIL_PARTYMEMBER_ALREADY_MAX = 319, //파티인원이 가득차서 파티에 참가 할 수 없습니다.
|
||
ERROR_PARTY_JOINFAIL_YOU_ARE_KICKEDUSER = 320, //추방당한 파티에 재가입할 수 없습니다.
|
||
ERROR_PARTY_QUICKJOINFAIL_THERE_IS_NOMATCH_PARTY = 321, //가입할만한 파티가 없숨다~
|
||
ERROR_PARTY_CREATE_FAIL_NEED_PARTYNAME = 322, //파티이름이 있어야 만들꺼 아니냐
|
||
ERROR_PARTY_CREATE_FAIL_PASSWORD_ERR = 323, //패스워드제한이라는 것도 있는 게임이야 잘넣어
|
||
ERROR_PARTY_CREATE_FAIL_RESTRICT_LEVEL_ERROR = 324, //제한레벨잘넣어
|
||
ERROR_PARTY_JOINFAIL_CHARACTERLEVEL_OVER = 325, //캐릭터레벨제한
|
||
ERROR_PARTY_KICKFAIL_DEST_IS_YOU = 326, //나자신을 킥할 수 없음
|
||
ERROR_PARTY_MODIFYINFO_FAIL = 327, //정보변경실패
|
||
ERROR_PARTY_MODIFYINFO_FAIL_NEED_NAME = 328, //파티이름이 있어야 변경가능
|
||
ERROR_PARTY_MODIFYINFO_FAIL_PASSWORD_ERR = 329, //패스워드잘넣어
|
||
ERROR_PARTY_MODIFYINFO_FAIL_RESTRICT_LEVEL_ERROR = 330, //제한사항잘넣어
|
||
ERROR_PARTY_LIST_ERROR = 331, //차티리스트에러
|
||
ERROR_PARTY_STARTSTAGE_FAIL_ACTLEVEL_SHORTAGE = 332, //월드존레벨이 낮아 던전에 입장할 수 없습니다.
|
||
ERROR_PARTY_STARTSTAGE_FAIL_FATIGUE_SHORTAGE = 333, //피로도가 부족하여 던전에 입장하실 수 없습니다.
|
||
ERROR_PARTY_INVITEFAIL_DESTUSER_SITUATION_NOTALLOWED = 334, //대상이 초대받을 수 있는 상황이 아님
|
||
ERROR_PARTY_STARTSTAGE_FAIL_DUNGEONNEEDITEM_SHORTAGE = 335, //던전입장 아이템부족
|
||
ERROR_PARTY_DUNGEONWARPOUT_FAIL_ITEMSHARING = 336, //던전 클리어 후 워프 실패 : 파티 아이템 분배중
|
||
ERROR_PARTY_DUNGEONWARPOUT_FAIL_QUEST = 337, //던전 클리어 후 워프 실패 : 파티원 중 퀘스트 미완료
|
||
ERROR_PARTY_NOTFOUND_MEMBERINFO = 338, //파티정보가 없습니다.
|
||
ERROR_PARTY_CONDITION_MATCHED_LIST_NOT_FOUND = 339, //정렬조건에 맞는 파티가 없습니다.
|
||
ERROR_PARTY_INVITEFAIL_DIFFCHANNEL = 340, //채널이틀릴경우 파티초대불가능.
|
||
ERROR_PARTY_INVITEFAIL_DEST_USER_NOWREADY = 341, //레디상태인 캐릭터는 초대할 수 없습니다.
|
||
ERROR_PARTY_INVITEFAIL_DESTLOCATION_NOT_SAME = 342, //초대의 대상이 다른 마을에 있음
|
||
ERROR_PARTY_INVITEFAIL_DESTINVITE_DENIED = 343, //대상이 초대를 거부했습니다.
|
||
ERROR_PARTY_INVITEFAIL_ALREADYINVITED = 344, //초대중입니다. 재초대불가능
|
||
ERROR_PARTY_INVITEAGREEFAIL = 345, //초대에 응했는데 파티참가에 실패함
|
||
ERROR_PARTY_ASKJOIN_FAIL = 346, //참가신청의 일반적인 실패
|
||
ERROR_PARTY_ASKJOIN_PARTY_NOTFOUND = 347, //신청자가 파티에 참가해있지 않음
|
||
ERROR_PARTY_ASKJOIN_DEST_DIFFMAP = 348, //대상이 다른마을에 있습니다.
|
||
ERROR_PARTY_ASKJOIN_RESULT_AGREE_FAIL = 349, //파티신청에대한 수락실패
|
||
ERROR_PARTY_ASKJOIN_RESULT_PARTYLEADER_DENIED = 350, //파티신청 거부
|
||
ERROR_PARTY_SWAPINDEX_FAIL = 351, //파티위치이동 실패
|
||
ERROR_PARTY_REFRESHGATEFAIL_REQRETREAT = 352, //월드존 파티초대중 던전게이트요청시 뒤로 물러나기 요청
|
||
ERROR_PARTY_CANT_ENTERGATE = 353, //게이트에 입장에 문제가 생겨 워프시킵니다.
|
||
ERROR_PARTY_ASKJOIN_DESTUSER_SITUATION_NOTALLOWED = 354, //대상이 현재 파티 신청을 받을 수 없습니다.
|
||
ERROR_PARTY_PARTYLIST_OVERFLOW = 355, // 요청받은 페이지가 없습니다.
|
||
ERROR_PARTY_GM_JOINFAIL_LADDERROOM = 356, // 래더방에 있는 유저에 추적할 수 없습니다. 래더 관전을 이용해주세요.
|
||
ERROR_PARTY_REFRESHLIST_TIMERESTRAINT = 357, // 파티리스트 요청 시간 제한
|
||
ERROR_PARTY_STARTSTAGE_FAIL_EXCEED_TRY_COUNT = 358, // 입장 횟수 초과
|
||
ERROR_PARTY_STARTSTAGE_FAIL_NOT_AVAILABLE_TIME = 359, // 입장 제한 시간
|
||
|
||
|
||
//Item&shop Message Starting at 400
|
||
ERROR_ITEM_FAIL = 400, //아이템에러
|
||
ERROR_ITEM_NOTFOUND = 401, //존재하지 않는 아이템
|
||
ERROR_ITEM_NOTFOUND1 = 1688801,
|
||
ERROR_ITEM_INDEX_UNMATCH = 402, //인덱스가 맞지 않다
|
||
ERROR_ITEM_EQUIPMISMATCH = 403, //장착위치가 맞지 않습니다.
|
||
ERROR_ITEM_OVERFLOW = 404, //아이템 갯수 넘어 갔습니다.
|
||
ERROR_ITEM_INVENTORY_NOTENOUGH = 405, //인벤토리공간이 부족합니다.
|
||
ERROR_ITEM_UNCOUNTABLE = 406, //겹쳐지는 아이템이 아닙니다.
|
||
ERROR_ITEM_ALREADY_EXIST = 407, //같은 인덱스의 아이템 존재함
|
||
ERROR_ITEM_INSUFFICIENCY_MONEY = 408, //돈부족
|
||
ERROR_ITEM_SOULBOUND = 409, //귀속아이템입니다.
|
||
ERROR_ITEM_EMBLEM_COMPOUND_FAIL = 410, //문장 조합 실패
|
||
ERROR_ITEM_ITEM_COMPOUND_FAIL = 411, //아이템 조합 실패
|
||
ERROR_ITEM_REPAIR = 412, // 수리할께 하나도 없다
|
||
ERROR_ITEM_ENCHANTFAIL = 413, // (해당 아이템은 강화할 수 없습니다)
|
||
ERROR_ITEM_INSUFFICIENCYCOUNT = 414, // 아이템 개수가 모자라다
|
||
ERROR_ITEM_INVENTOWARE01 = 415, // 자신이 가지고 있는 액수보다 초과함
|
||
ERROR_ITEM_INVENTOWARE02 = 416, // 창고의 보관가능 액수 초과
|
||
ERROR_ITEM_WARETOINVEN01 = 417, // 창고 액수보다 초과해서 꺼내려고함
|
||
ERROR_ITEM_WARETOINVEN02 = 418, // 소지 가능 금액을 초과해서 꺼낼 수 없음
|
||
ERROR_ITEM_CAN_NOT_DISJOINT = 419, // 분해할 수 없는 아이템임!
|
||
ERROR_ITEM_OVERFLOWMONEY = 420, // 돈초과
|
||
ERROR_ITEM_REBIRTH_CASHCOIN_SHORT_FAIL = 421, // 캐쉬코인이 부족하여 부활시킬 수 없음
|
||
ERROR_ITEM_EMBLEM_COMPOUND_POSSIBILITY_FAIL = 422, // 문장보옥 조합 시도 확률로 실패됨.
|
||
ERROR_ITEM_EMBLEM_COMPOUND_NOT_ENOUGH_MONEY = 423, // 문장보옥 조합에서 돈이 모자람.
|
||
ERROR_ITEM_EMBLEM_COMPOUND_NOT_ENOUGH_ITEM = 424, // 문장보옥 조합에서 재료 아이템 부족
|
||
ERROR_ITEM_EMBLEM_COMPOUND_NOT_MATCH_SLOT = 425, // 문장보옥 조합에서 슬롯이 맞지 않음.
|
||
ERROR_ITEM_EMBLEM_COMPOUND_NOT_ENOUGH_ITEM_COUNT = 426, // 문장보옥 조합에서 슬롯은 맞으나 아이템 갯수가 부족함.
|
||
ERROR_ITEM_EMBLEM_COMPOUND_NOT_MATCH_PLATE_WITH_ITEM_COMPOUND_INDEX = 427, // 문장보옥 조합에서 플레이트가 수행하는 아이템 조합 리스트에 입력받은 조합 인덱스 없음.
|
||
ERROR_ITEM_ITEM_COMPOUND_POSSIBILITY_FAIL = 428, // 아이템 조합 시도 확률로 실패됨.
|
||
ERROR_ITEM_ITEM_COMPOUND_NOT_ENOUGH_MONEY = 429, // 아이템 조합에서 돈이 모자람.
|
||
ERROR_ITEM_ITEM_COMPOUND_NOT_ENOUGH_ITEM = 430, // 아이템 조합에서 재료 아이템 부족
|
||
ERROR_ITEM_ITEM_COMPOUND_NOT_MATCH_SLOT = 431, // 아이템 조합에서 슬롯이 맞지 않음.
|
||
ERROR_ITEM_ITEM_COMPOUND_NOT_ENOUGH_ITEM_COUNT = 432, // 문장보옥 조합에서 슬롯은 맞으나 아이템 갯수가 부족함.
|
||
ERROR_ITEM_ENCHANT_POSSIBILITYFAIL_BREAKITEM = 433, // 강화확률실패 아이템파괴
|
||
ERROR_ITEM_REMOVE_DISALLOWANCE = 434, // 파괴불가
|
||
ERROR_ITEM_ENCHANT_POSSIBILITYFAIL_DOWNLEVEL = 435, // 강화확률실패 강화레벨 다운
|
||
ERROR_ITEM_NEED_PARTY_SHARING_SOULBOUND = 436, // 귀속 아이템으로 파티 분배가 필요
|
||
ERROR_ITEM_INSUFFICIENCY_ITEM = 437, // 아이템부족
|
||
ERROR_ITEM_PVPLEVEL = 438, // PvP 레벨 부족해서 장착할 수 없음
|
||
ERROR_ITEM_UNABLE_EQUIP_NO_SOUL_BOUND = 439, // 개봉되지 않아서 장착할 수 없음
|
||
ERROR_ITEM_UNSEAL_ALREADY = 440, // 이미 개봉된 아이템
|
||
ERROR_ITEM_ENCHANT_POSSIBILITYFAIL_DOWNLEVELZERO = 441, // 강화확률실패 강화레벨 다운량이 0
|
||
ERROR_ITEM_REBIRTHCOIN_50 = 442, // 부활서 50개까지 소유
|
||
ERROR_ITEM_DONT_HAVE_SKILL_TO_RESET = 443, // 초기화할 스킬이 없음.
|
||
ERROR_ITEM_ALREADY_HAVE_HIGHER_JOB_SKILL = 444, // 초기화 하려고 하는 스킬의 직업보다 상위 차수의 직업의 스킬을 이미 찍었음.
|
||
ERROR_ITEM_MISMATCH_RESET_SKILL_JOB = 445, // 스킬리셋 캐쉬템에 지정된 초기화 하려고 하는 스킬의 직업 차수와 현재 캐릭터의 직업과 맞지 않음.
|
||
ERROR_ITEM_DONTMOVE = 446, // 이동할 수 없습니다(?)
|
||
ERROR_ITEM_SEAL_ALREADY = 447, // 이미 봉인된 아이템
|
||
ERROR_ITEM_SEALCOUNT_ZERO = 448, // 재봉인 횟수가 0이다.
|
||
ERROR_ITEM_COSMIX_FAIL = 449, // 코스튬 합성 실패(일반)
|
||
ERROR_ITEM_COSMIX_FAIL_STUFF = 450, // 코스튬 합성 실패(재료 아이템 이상)
|
||
ERROR_ITEM_COSMIX_STUFF_COUNT = 451, // 코스튬 합성 재료 개수 부족 혹은 초과
|
||
ERROR_ITEM_COSMIX_OPEN_FAIL = 452, // 코스튬 합성창 열기 실패
|
||
ERROR_ITEM_COSMIX_CLOSE_FAIL = 453, // 코스튬 합성창 닫기 실패
|
||
ERROR_ITEM_COSMIX_NO_RESULT = 454, // 코스튬 합성 실패(결과물 정보 이상)
|
||
ERROR_ITEM_COSMIX_OPTION = 455, // 코스튬 합성 실패(옵션 정보 이상)
|
||
ERROR_GLYPH_SLOTLIMITLEVEL = 456, // 캐릭레벨이 낮아 슬롯에 넣을 수 없다
|
||
ERROR_GLYPH_LIMITLEVEL = 457, // 캐릭레벨이 낮아 문장을 장착(?)할 수 없다
|
||
ERROR_ITEM_POTENTIAL_INVALIDTYPE = 458, // 잠제력 적용 불가능한 타입입니다.
|
||
ERROR_GLYPH_SAMETYPEPARAM = 459, // 동일계열문장
|
||
ERROR_ITEM_NEEDKEY = 460, // 열쇠 필요하다
|
||
ERROR_ITEM_APPELLATIONGAIN_EXIST = 461, // 이미 존재하는 칭호입니다.
|
||
ERROR_ITEM_EQUIP_CRC_FAIL = 462, // 아이템 데이터 오류로 인한 장착 실패
|
||
ERROR_ITEM_CANNOT_USE_INPARTY = 463, // 파티 상태에서는 사용이 불가능한 아이템입니다.
|
||
ERROR_ITEM_CANNOT_CHANGE_SAMENAME = 464, // 기존 캐릭터명과 동일한 이름으로 변경 할 수 없습니다.
|
||
ERROR_ITEM_ENCHANTJEWEL_INVALIDTYPE = 465, // 인챈트 직행아이템 적용이 불가능한 타입입니다.
|
||
ERROR_ITEM_INSUFFICIENCY_LADDERPOINT = 466, // 래더포인트부족
|
||
ERROR_ITEM_INSUFFICIENCY_UNIONPOINT = 467, // 연합포인트부족
|
||
ERROR_ITEM_SEAL_FAIL_BY_RANDOM = 468, // 랜덤돌려서 봉인 실패.
|
||
ERROR_ITEM_CANNOT_CHANGE_GUILDMARK = 469, // 길드마크 변경 실패
|
||
ERROR_ITEM_INSUFFICIENCY_GUILDWARPOINT = 470, // 길드축제포인트부족
|
||
ERROR_ITEM_INSUFFICIENCY_ITEMTYPE_REMOTEENCHANT = 471, // 원격강화아이템 없음
|
||
ERROR_ITEM_DESIGNMIX_FAIL = 472, // 코스튬 디자인 합성 실패(일반)
|
||
ERROR_ITEM_DESIGNMIX_FAIL_STUFF = 473, // 코스튬 디자인 합성 실패(재료 아이템 이상)
|
||
ERROR_ITEM_DESIGNMIX_STUFF_COUNT = 474, // 코스튬 디자인 합성 재료 개수 부족 혹은 초과
|
||
ERROR_ITEM_DESIGNMIX_OPEN_FAIL = 475, // 코스튬 디자인 합성창 열기 실패
|
||
ERROR_ITEM_DESIGNMIX_CLOSE_FAIL = 476, // 코스튬 디자인 합성창 닫기 실패
|
||
ERROR_ITEM_DESIGNMIX_NO_RESULT = 477, // 코스튬 디자인 합성 실패(결과물 정보 이상)
|
||
ERROR_ITEM_CHANGEJOB_ILLEGAL_STATE = 478, // 직업 변경 아이템을 사용할 수 있는 상태가 아닐 경우
|
||
ERROR_ITEM_INSUFFICIENTY_JOBID = 479, // 직업제한
|
||
ERROR_ITEM_INSUFFICIENTY_LEVEL = 480, // 레벨제한
|
||
ERROR_ITEM_INSUFFICIENTY_PVPRANK = 481, // PvP랭크제한
|
||
ERROR_ITEM_INSUFFICIENTY_GUILDLEVEL = 482, // 길드레벨제한
|
||
ERROR_ITEM_INSUFFICIENTY_LADDERGRADEPOINT = 483, // 래더평점제한
|
||
ERROR_ITEM_BUY_OVERFLOW_COUNT = 484, // 구입 가능 수량 초과.
|
||
ERROR_ITEM_CANNOT_CHANGE_SAME_PET_NAME = 485, // 기존 캐릭터명과 동일한 이름으로 변경 할 수 없습니다.
|
||
ERROR_ITEM_ALREADY_EXPIRED = 486, // 이미 파기 되었습니다.
|
||
ERROR_ITEM_PREITEM_REQUEST = 487, // 이전 아이템이 필요합니다.
|
||
ERROR_ITEM_BETTEREFFECT_ITEM = 488, // 더 좋은 효과가 적용 중입니다.
|
||
ERROR_ITEM_GUILDMARK_REQUIRE = 489, // 길드마크가 필요합니다.
|
||
ERROR_ITEM_GUILDMARK_EXIST = 490, // 이미 길드마크 존재합니다.
|
||
ERROR_ITEM_RANDOMMIX_FAIL = 491, // 코스튬 랜덤 합성 실패(일반)
|
||
ERROR_ITEM_RANDOMMIX_FAIL_STUFF = 492, // 코스튬 랜덤 합성 실패(재로 아이템 이상)
|
||
ERROR_ITEM_RANDOMMIX_STUFF_COUNT = 493, // 코스튬 랜덤 합성 재료 개수 부족 혹은 초과
|
||
ERROR_ITEM_RANDOMMIX_OPEN_FAIL = 494, // 코스튬 랜덤 합성창 열기 실패
|
||
ERROR_ITEM_RANDOMMIX_CLOSE_FAIL = 495, // 코스튬 랜덤 합성창 닫기 실패
|
||
ERROR_ITEM_ALREADY_GUILDITEM = 496, // 이미 가지고 있는 아이템입니다.
|
||
ERROR_ITEM_RANDOMMIX_NORANKITEM_FAIL = 497, // 코스튬 랜덤 합성 랭크에 맞는 아이템이 없음
|
||
ERROR_ITEM_OVERFLOW_CHARMCOIN = 498, // 골드량을 줄이고 다시 시도해 주세요.
|
||
ERROR_ITEM_INSUFFICIENTY_PERIOD_RECOVERYCASH = 499, // 기간이 지나서 복구할 수 없습니다.
|
||
|
||
//Trade & Mail & Market Message Starting at 500
|
||
ERROR_SHOP_NOTFOUND = 500, //상점이 존재하지 않습니다.
|
||
ERROR_SHOP_SLOTITEM_NOTFOUND = 501, //상점의 물품이 존재하지 않습니다.
|
||
ERROR_SHOP_DATANOTFOUND = 502, //샵데이타가 없어요
|
||
ERROR_MAIL_INSUFFICIENCY_MONEY = 503, //소지금액부족
|
||
ERROR_MAIL_ATTACHITEMFAIL = 504, //아이템 첨부 실패
|
||
ERROR_MAIL_CHARACTERNOTFOUND = 505, //받을 사람이 없어요
|
||
ERROR_MAIL_ATTACHEDTHING_EXIST = 506, //첨부되어 있는 것이 있어요
|
||
ERROR_MAIL_DOESNOTEXIST_ATTACHED_THING = 507, //첨부되어 있는 것인 없습니다.
|
||
ERROR_MARKET_COUNTOVER = 508, //마켓에 더이상 등록이 안되요
|
||
ERROR_MARKET_DOESNOTEXIST_REGISTITEM = 509, //등록된 마켓아이템이 없습니다.
|
||
ERROR_MARKET_SOLDITEM = 510, //이미팔린아이템
|
||
ERROR_MARKET_ISNOT_SOLDITEM = 511, //팔린아이템이 아닙니다.
|
||
ERROR_EXCHANGE_USERNOTFOUND = 512, //거래할대상이 없음
|
||
ERROR_EXCHANGE_FAIL = 513, //거래실패
|
||
ERROR_MAIL_DONTSENDYOURSELF = 514, // 자신에게 보낼 수 없습니다.
|
||
ERROR_SHOP_NOTFORSALE = 515, // 파는 아이템이 아닙니다
|
||
ERROR_MARKET_REGISTITEMFAIL = 516, // 등록할 아이템이 아닙니다
|
||
ERROR_EXCHANGE_ITEMFAIL = 517, // 교환할 아이템이 아닙니다
|
||
ERROR_EXCHANGE_SENDERCANCEL = 518, // 거래요청 보낸사람이 다시 취소할때
|
||
ERROR_EXCHANGE_OVERFLOWMONEY = 519, // 소지 가능금액 넘어서 거래 실패
|
||
ERROR_SHOP_OVERFLOWMONEY = 520, // 소지 가능금액 넘어서 판매 실패
|
||
ERROR_MAIL_ATTACHITEM_OVERFLOW = 521, // 소지품 창에 빈 칸이 없습니다.
|
||
ERROR_MAIL_ATTACHMONEY_OVERFLOW = 522, // 소지할 수 있는 돈을 초과하여 꺼낼 수 없습니다.
|
||
ERROR_MAIL_CANT_RECVMAIL = 523, // 대상이 우편을 받을 수 없습니다.
|
||
ERROR_MAIL_CANT_RECVCASHPRESENT = 524, // 대상이 선물을 받을 수 없습니다.
|
||
ERROR_EXCHANGE_CANTEXCHANGE = 525, // 대상이 거래를 요청받을 수 없습니다.
|
||
ERROR_ITEM_INVENTOEQUIP_FAIL = 526, // 지금은 아이템을 장비할 수 없습니다
|
||
ERROR_ITEM_EQUIPTOINVEN_FAIL = 527, // 지금은 장비를 해제할 수 없습니다
|
||
ERROR_CASHSHOP_RESERVE_NOTENOUGH = 528, // 적립금 부족합니다.
|
||
ERROR_CASHSHOP_RESERVE_DISABLE = 529, // 적립금으로 살 수 없는 아이템입니다.
|
||
ERROR_CASHSHOP_OPEN = 530, // 캐쉬샵이 열려있어 나갈 수 없습니다?
|
||
ERROR_CASHSHOP_COUNTOVER = 531, // 더이상 살 수 없다
|
||
ERROR_CASHSHOP_CASH_NOTENOUGH = 532, // 캐쉬가 부족합니다.
|
||
ERROR_CASHSHOP_CALLGM = 533, // 구입한 상품을 받는 데 실패했습니다. 고객센터로 문의 부탁드립니다.
|
||
ERROR_CASHSHOP_DONTSENDYOURSELF = 534, // 자기자신한테 선물을 보낼 수 없다.
|
||
ERROR_GIFT_COUNTOVER_INVEN = 535, // (인벤)더이상 받을 수 없다
|
||
ERROR_GIFT_COUNTOVER_WARE = 536, // (창고)더이상 받을 수 없다
|
||
ERROR_GIFT_COUNTOVER_REBIRTHCOIN = 537, // (부활서)더이상 받을 수 없다
|
||
ERROR_GIFT_NOTFORSALE = 538, // 선물할 수 없는 아이템이다
|
||
ERROR_GACHAPON_JP_MISMATCH_JOBCLASS = 539, // 일본 가챠폰. 결과로 나온 아이템이 요청한 직업과 같지 않음. 패킷 핵일 가능성이 높음.
|
||
ERROR_GACHAPON_JP_NOT_ENOUGH_COIN = 540, // 일본 가챠폰. 코인이 모자라서 실패임.
|
||
ERROR_GACHAPON_JP_INVALID_SHOP_ID = 541, // 일본 가챠폰. 잘못된 가챠폰 인덱스
|
||
ERROR_CASHSHOP_PROHIBITSALE = 542, // 판매중지된 상품입니다
|
||
ERROR_GACHAPON_JP_INVALID_RESULT_ITEM = 543, // 일본 가챠폰. 결과로 나온 아이템 정보를 서버에서 찾을 수 없음.
|
||
ERROR_VIP_FAIL = 544, // VIP만 살수있다?
|
||
ERROR_MARKET_INVALIDPERIOD = 545, // 사용가능한 판매기간이 아닙니다.
|
||
ERROR_MARKET_CANNOTUSE_PREMIUM = 546, // 프리미엄 서비스를 사용할 수 없습니다.
|
||
ERROR_CASHSHOP_DUPLICATE_GESTURE = 547, // 이미 가지고 있는 제스쳐는 구매할수 없습니다.
|
||
ERROR_CASHSHOP_USE_AGREEMENT = 548, // 캐시샵 이용동의를 하신후 이용하실수 있습니다
|
||
ERROR_MARKET_REGISTPREMIUM = 549, // 거래소 이용권 소지자에 한해 등록가능
|
||
ERROR_MARKET_REGISTVIP = 550, // VIP만 등록가능
|
||
// GuildWare
|
||
ERROR_ITEM_NOT_MOVE_TO_GUILDWARE = 551, // 아이템을 길드창고에 옮길 수 없습니다.
|
||
ERROR_ITEM_NOT_TAKE_FROM_GUILDWARE = 552, // 길드창에서 아이템을 가져올 수 없습니다.
|
||
ERROR_GUILDWARE_NOT_READY = 553, // 길드창고 준비중입니다.
|
||
ERROR_MAX_WITHDRAW_GUILDCOIN = 554, // 하루동안 인출할 수 있는 최대 금액을 초과하였습니다.
|
||
ERROR_MAX_TAKE_GUILDITEM = 555, // 하루동안 꺼낼 수 있는 최대 아이템 횟수를 초과하였습니니다.
|
||
ERROR_FULL_GUILDWARE = 556, // 길드창고가 가득차 아이템을 넣을 수 없습니다
|
||
ERROR_CASHSHOP_NXACREDITGIFT = 557, // NX Credit으로는 선물할 수 없습니다
|
||
ERROR_CASHSHOP_NXACREDIT = 558, //
|
||
ERROR_ALREADY_MAXGUILDWARE = 559, // 더 이상 길드창고를 확장할 수 없습니다.
|
||
// Cash
|
||
ERROR_CASHSHOP_GIFTCOUNTOVER = 560, // "해당 상품은 중복해서 보유할 수 없으므로, 선물을 받을 수 없습니다."
|
||
ERROR_ITEM_NOT_MOVE_TO_WARE = 561, // 창고에 넣을 수 없는 아이템 입니다.
|
||
|
||
|
||
//Quest Message Starting at 600
|
||
ERROR_QUEST_CANCELFAIL = 600, //퀘스트 삭제 실패
|
||
ERROR_QUEST_SETACTIVEFAIL = 601, //퀘스트 설정실패
|
||
ERROR_QUEST_NOTFOUND = 602, //퀘스트 없음
|
||
ERROR_QUEST_REWARD_FAIL = 603, //퀘스트 보상요청 실패
|
||
ERROR_QUEST_FCM = 604, // 피로시간 이후 퀘스트 수락/완료/보상이 제한됩니다. 휴식해라...-_;
|
||
ERROR_QUEST_INVENTORY_NOTENOUGH = 605, //퀘스트 인벤토리 공간이 부족합니다.
|
||
ERROR_QUEST_INVENTORY_ALMOSTFULL = 606, //퀘스트 인벤토리 공간이 거의 다 찼습니다.
|
||
ERROR_QUEST_FULLOFCOUNT_PLAYING = 607, //퀘스트 보유량을 초과하여 더 이상 퀘스트를 받을 수 없습니다.
|
||
ERROR_QUEST_ALREADY_PLAYING = 608, //이미 진행중인 퀘스트
|
||
ERROR_QUEST_NEST_HELPER = 609, //네스트 도우미 중에는 퀘스트 수락/완료/보상이 제한됩니다.
|
||
ERROR_QUEST_CANT_ADD_QUEST_FROM_ITEM = 610, //해당아이템으로 받을 수 있는 퀘스트는 이미 완료되었습니다.
|
||
|
||
|
||
//Chat Message Starting at 700
|
||
ERROR_CHAT = 700,
|
||
ERROR_CHAT_USERNOTFOUND = 701,
|
||
ERROR_CHAT_DONTSAYYOURSELF = 702,
|
||
ERROR_CHAT_MOBILESENDED = 703,
|
||
|
||
//ChatRoom Starting at 750
|
||
ERROR_CHATROOM = 750,
|
||
ERROR_CHATROOM_UNKNOWNUSER = 751, // 방에 없는 유저이다.
|
||
ERROR_CHATROOM_NOMORESPACE = 752, // 방이 다 찼음
|
||
ERROR_CHATROOM_ALREADYINROOM = 753, // 이미 방에 참여중이다.
|
||
ERROR_CHATROOM_CANNOTENTER = 754, // 방에 입장 할수 없습니다.
|
||
ERROR_CHATROOM_WRONGPASSWORD = 755, // 패스워드가 틀립니다.
|
||
ERROR_CHATROOM_FAILEDMAKEROOM = 756, // 방 생성 실패
|
||
ERROR_CHATROOM_INVALIDCHATROOM = 757, // 방 오류! - 그런 방은 없습니다.
|
||
ERROR_CHATROOM_ALREADYLEADER = 758, // 이미 방장입니다.
|
||
ERROR_CHATROOM_ANOTHERROOM = 759, // 다른 채팅방에 참여중입니다.
|
||
ERROR_CHATROOM_CANNOTLEAVELEADER = 760, // 방장은 방에 인원이 남은경우 나갈수 없습니다.
|
||
ERROR_CHATROOM_ONLYLEADER = 761, // 방장만 할수 있는 기능입니다.
|
||
ERROR_CHATROOM_KICKEDFOREVER = 762, // 방에서 영구추방되어 들어갈 수 없습니다.
|
||
|
||
//Skill Message Starting at 800
|
||
ERROR_SKILL_ACQUIREFAIL = 800, //스킥획득실패
|
||
ERROR_SKILL_DELETEFAIL = 801, //스킬삭제실패
|
||
ERROR_SKILL_ISNOT_YOURS = 802, //스킬을소유하고있지 않습니다.
|
||
ERROR_SKILL_LEVELUPFAIL_ISNOT_YOURS = 803, //스킬을소유하고있지 않아 스킬업실패
|
||
ERROR_SKILL_LEVELUPFAIL_INSUFFICIENCY_SKILLPOINT = 804, //스킬포인트부족
|
||
ERROR_SKILL_LEVELUPFAIL_INSUFFICIENCY_CHARACTERLEVEL = 805, //캐릭터레벨부족
|
||
ERROR_SKILL_LEVELUPFAIL_ALREADY_MAX = 806, //이미 맥스레벨입니다.
|
||
ERROR_SKILL_LEVELUPFAIL_INVALID_SKILLPOINT = 807, // 유효하지 않은 스킬 포인트니다..(실제 사용 스킬포인트보다 보유 포인트보다 적거나 테이블의 스킬 레벨업시에 필요한 스킬 포인트 데이터와 다름)
|
||
ERROR_SKILL_LEVELUPFAIL_EQUIPITEMSKILL = 808, // 장비아이템 스킬은 레벨업 할 수 없습니다.
|
||
ERROR_SKILL_LEVELUPFAIL_TOGGLE_AURA_ON = 809, // 토글되었거나 오라가 발동중인 스킬은 레벨업 불가능.
|
||
ERROR_SKILL_UNLOCK_ALREADY_OPEN = 810, // 이미 언락된 스킬임.
|
||
ERROR_SKILL_UNLOCK_FAIL = 811, // 언락 실패... 작업중임. 추후에 세분화.
|
||
ERROR_SKILL_UNLOCK_MISMATCH_JOB = 812, // 직업이 맞지 않아 언락 실패.
|
||
ERROR_SKILL_ACQUIRE_FAIL_ISNOT_YOURS = 820, // 보유하고 있지 않은 스킬을 획득하려고 함.
|
||
ERROR_SKILL_ACQUIRE_FAIL_NOT_ENOUGH_SKILLPOINT = 821, // 스킬을 획득할 때 필요한 포인트가 모자람. (테이블에 정의된 스킬 레벨 1의 필요 SP)
|
||
ERROR_SKILL_ACQUIRE_FAIL_DONT_HAVE_PARENT_SKILL = 822, // 선행 스킬을 갖고 있지 않아서 스킬 획득 실패.
|
||
ERROR_SKILL_ACQUIRE_FAIL_NOT_ENOUGH_PARENT_SKILL_LEVEL = 823, // 선행 스킬의 레벨이 충족되지 않음.
|
||
ERROR_SKILL_ACQUIRE_FAIL_NOT_ENOUGH_CHAR_LEVEL = 824, // 캐릭터 요구 레벨이 충족되지 않아서 스킬획득 실패.
|
||
ERROR_SKILL_ACQUIRE_FAIL_MISMATCH_JOB = 825,
|
||
ERROR_SKILL_UNLOCK_NOT_ENOUGH_MONEY = 826, // 돈으로 스킬 언락하려하는데 돈이 모자라서 언락 실패.
|
||
ERROR_SKILL_ACQUIRE_FAIL_EXCLUSIVE = 827, // 동시에 배울 수 없는 궁극기 스킬을 획득하려 요청이 왔을 때.
|
||
|
||
//Friend Message Starting at 900
|
||
ERROR_FRIEND_GETLISTFAIL = 900, //친구리스트얻기실패
|
||
ERROR_FRIEND_GROUP_ALREADYMAX = 901, //더이상그룹추가할수없음
|
||
ERROR_FRIEND_ALREADYMAX = 902, //더이상친구추가할수없음
|
||
ERROR_FRIEND_DESTUSER_ALREADYFRIEND = 903, //대상과이미친구
|
||
ERROR_FRIEND_USERNOTFOUND = 904, //대상이없음
|
||
ERROR_FRIEND_FRIEND_NORFOUND = 905, //대상이 친구가 아님
|
||
ERROR_FRIEND_GROUP_NOTFOUND = 906, //그룹이 없습니다.
|
||
ERROR_FRIEND_ADDFRIENDFAIL = 907, //친구추가실패
|
||
ERROR_FRIEND_ADDGROUPFAIL = 908, //친구그룹추가실패
|
||
ERROR_FRIEND_DELETEFRIENDFAIL = 909, //친구삭제실패
|
||
ERROR_FRIEND_DELETEGROUPFAIL = 910, //친구그룹삭제실패
|
||
ERROR_FRIEND_CANT_ADDFRIEND = 911, //대상을 친구로 추가 할 수 없습니다.
|
||
|
||
//Isolate Message Starting at 950
|
||
ERROR_ISOLATE_REQUESTFAIL = 950, //차단자에게 요청보냄
|
||
ERROR_ISOLATE_ADDFAIL = 951, //차단실패
|
||
ERROR_ISOLATE_ALREADYADDED = 952, //이미 차단되어 있음
|
||
ERROR_ISOLATE_DELFAIL = 953, //차단삭제실패
|
||
|
||
//Guild Message Starting at 1000
|
||
ERROR_GUILD_YOUR_NOT_BELONGANYGUILD = 1000, // 소속된 길드 없음
|
||
ERROR_GUILD_YOUR_ALREADY_BELONGTOGUILD = 1001, // 소속된 길드 있음
|
||
ERROR_GUILD_NAME_ALREADYEXIST = 1002, // 이미 있는 길드이름
|
||
ERROR_GUILD_CREATEFAIL = 1003, // 길드 생성 실패
|
||
ERROR_GUILD_YOURNOT_INVITED = 1004, // 초대받지 않았음 // 사용하지 않음 ?
|
||
ERROR_GUILD_LEAVEFAIL = 1005, // 길드 탈퇴 실패 // 사용하지 않음 ?
|
||
ERROR_GUILD_HAS_NO_AUTHORITY = 1006, // 권한 없음
|
||
ERROR_GUILD_INFOUPDATEFAIL = 1007, // 길드 정보변경 실패
|
||
ERROR_GUILD_GRADEINFO_UPDATEFAIL = 1008, // 길드직급 정보변경 실패 // 사용하지 않음 ?
|
||
ERROR_GUILD_USERINFO_UPDATEFAIL = 1009, // 길드원 정보변경 실패
|
||
ERROR_GUILD_NOTEXIST_GUILD = 1010, // 존재하지 않는 길드
|
||
ERROR_GUILD_NOTEXIST_GUILDMEMBER = 1011, // 존재하지 않는 길드원
|
||
ERROR_GUILD_NOTEXIST_GUILDMASTER = 1012, // 존재하지 않는 길드장
|
||
ERROR_GUILD_ONLYAVAILABLE_GUILDMASTER = 1013, // 길드장만 가능
|
||
ERROR_GUILD_NOTAVAILABLE_GUILDMASTER = 1014, // 길드장은 불가
|
||
ERROR_GUILD_NOTEXIST_OPPOSITEUSER = 1015, // 상대방이 존재하지 않음
|
||
ERROR_GUILD_ALREADYINGUILD_OPPOSITEUSER = 1016, // 상대방이 이미 길드에 가입되어 있음
|
||
ERROR_GUILD_REFUESED_GUILDINVITATION = 1017, // 상대방이 초대 거절
|
||
ERROR_GUILD_NOTOURGUILD_OPPOSITEUSER = 1018, // 상대방이 길드원이 아님
|
||
ERROR_GUILD_CANTINVITE_YOURSELF = 1019, // 자기 자신은 초대할 수 없음
|
||
ERROR_GUILD_CANTEXILE_YOURSELF = 1020, // 자기 자신은 추방할 수 없음
|
||
ERROR_GUILD_ALREADYINGUILD_ACCOUNT = 1021, // 길드에 이미 가입된 계정
|
||
ERROR_GUILD_LACKOFCOUNT_CMMPOINT = 1022, // 길드 일반 포인트 부족
|
||
ERROR_GUILD_FULLOFCOUNT_CMMPOINT = 1023, // 길드 일반 포인트 초과
|
||
ERROR_GUILD_LACKOFCOUNT_LDDPOINT = 1024, // 길드 래더 포인트 부족
|
||
ERROR_GUILD_FULLOFCOUNT_LDDPOINT = 1025, // 길드 래더 포인트 초과
|
||
ERROR_GUILD_LACKOFCOUNT_MONEY = 1026, // 길드 자금 부족
|
||
ERROR_GUILD_FULLOFCOUNT_MONEY = 1027, // 길드 자금 초과
|
||
ERROR_GUILD_STILLEXIST_MONEY = 1028, // 길드 자원이 아직 존재함
|
||
ERROR_GUILD_LACKOFCOUNT_LEVEL = 1029, // 길드 레벨 최저 도달
|
||
ERROR_GUILD_FULLOFCOUNT_LEVEL = 1030, // 길드 레벨 최대 도달
|
||
ERROR_GUILD_LACKOFCOUNT_ADDSIZE = 1031, // 길드 추가 수용인원 최저 도달
|
||
ERROR_GUILD_FULLOFCOUNT_ADDSIZE = 1032, // 길드 추가 수용인원 최대 도달
|
||
ERROR_GUILD_CANTADD_GUILDMEMBER = 1033, // 길드 전체 수용인원 초과 (수용가능 인원 부족)
|
||
ERROR_GUILD_CANTDISMISS_MONEY = 1034, // 길드 해체 불가 (자금 존재)
|
||
ERROR_GUILD_CANTDISMISS_ITEM = 1035, // 길드 해체 불가 (아이템 존재)
|
||
ERROR_GUILD_CANTDISMISS_GUILDMEMBER = 1036, // 길드 해체 불가 (길드원 존재)
|
||
ERROR_GUILD_FAILADD_GUILDMEMBER = 1037, // 길드원 추가 실패
|
||
ERROR_GUILD_ALREADYDISMISS_GUILD = 1038, // 이미 해체된 길드
|
||
ERROR_GUILD_INVALIDCHANGE_GUILDINFO = 1039, // 길드 정보 변경 요청이 잘못되었음
|
||
ERROR_GUILD_LACKOFCOND_GUILDINFO = 1040, // 길드 정보를 변경할 수 있는 조건이 부족
|
||
ERROR_GUILD_INVALIDCHANGE_GUILDMEMBINFO = 1041, // 길드원 정보 변경 요청이 잘못되었음
|
||
ERROR_GUILD_LACKOFCOND_GUILDMEMBINFO = 1042, // 길드원 정보를 변경할 수 있는 조건이 부족
|
||
ERROR_GUILD_NOTEXIST_GUILDINFO = 1043, // 존재하지 않는 길드 정보 (서버상에 존재 여부)
|
||
ERROR_GUILD_NOTEXIST_GUILDMEMBERINFO = 1044, // 존재하지 않는 길드원 정보 (서버상에 존재 여부)
|
||
ERROR_GUILD_ALREADYINGUILD_CHARACTER = 1045, // 특정 길드에 이미 가입된 캐릭터
|
||
ERROR_GUILD_LACKOFCOUNT_GUILDMEMBER = 1046, // 길드 인원 부족
|
||
ERROR_GUILD_LACKOFCOUNT_SELFMONEY = 1047, // 길드 활동 자금 부족 (개인자금)
|
||
ERROR_GUILD_LACKOFCOUNT_GUILDMONEY = 1048, // 길드 활동 자금 부족 (길드자금)
|
||
ERROR_GUILD_LACKOFCOUNT_CREATEMONEY = 1049, // 길드 창설 자금 부족
|
||
ERROR_GUILD_FAILADD_LEVEL = 1050, // 길드 레벨 증가 실패
|
||
ERROR_GUILD_LACKOFCOUNT_CREATELEVEL = 1051, // 길드 창설 레벨 부족
|
||
ERROR_GUILD_FAILADD_SIZE = 1052, // 길드 추가 모집인원 증가 실패
|
||
ERROR_GUILD_STILLEXIST_MEMBER = 1053, // 길드원이 아직 존재함
|
||
ERROR_GUILD_CANTRENAME_SAME = 1054, // 현재 소속된 길드명을 사용할 수 없습니다.
|
||
ERROR_GUILDWAR_NOT_REWARD_STEP = 1055, // 길드전 보상 기간이 아님.
|
||
ERROR_GUILD_DAILYLIMIT = 1056, // 일일 제한에 도달하여 더 이상 길드포인트를 획득할 수 없습니다
|
||
ERROR_GUILD_INVALIDWARE = 1057, // 길드 창고를 이용할 수 없습니다.
|
||
ERROR_GUILD_LACKOFCOUNT_GUILDLEVEL = 1058, // 길드보상 아이템 구입시 길드 레벨 부족으로 실패
|
||
ERROR_GUILD_CANTACCEPT_GUILDINVITATION = 1059, // 대상이 현재 길드 초대를 받을 수 없습니다
|
||
|
||
// PvP Message Starting at 1100
|
||
ERROR_PVP_CREATEROOM_FAILED = 1100, // PvP 방 생성 실패
|
||
ERROR_PVP_MODIFYROOM_FAILED = 1101, // PvP 방 변경 실패
|
||
ERROR_PVP_ALREADY_PVPROOM = 1102, // 이미PvP에 있음
|
||
ERROR_PVP_LEAVE_FAILED = 1103, // PvP 방에서 나가기 실패
|
||
ERROR_PVP_JOINROOM_NOTFOUNDROOM = 1104, // PvP 조인할 방을 찾을 수 없음
|
||
ERROR_PVP_JOINROOM_INVALIDPW = 1105, // PvP 조인할 방 비밀번호 틀림
|
||
ERROR_PVP_JOINROOM_MAXPLAYER = 1106, // PvP 조일할 방 최대인원
|
||
ERROR_PVP_JOINROOM_BANUSER = 1107, // PvP 조일할 방 추방유저
|
||
ERROR_PVP_JOINROOM_FAILED = 1108, // PvP 방 조인 실패
|
||
ERROR_PVP_CANTMOVECHANNEL_PARTYSTATE = 1109, // 파티상태에서 채널이동 할수 없음
|
||
ERROR_PVP_FORCELEAVEROOM_MASTERSERVER_DOWN = 1110, // 마스터 서버 다운으로 강제로 방에서 나옴
|
||
ERROR_PVP_CANTSTART_LESS_MINTEAMPLAYER = 1111, // 최소 시작 팀 인원 보다 적음
|
||
ERROR_PVP_CANTSTART_MORE_MAXDIFFTEAMPLAYER = 1112, // 양팀 인원 차이 허용 수 넘음
|
||
ERROR_PVP_STARTPVP_FAILED = 1113, // PvP시작 실패
|
||
ERROR_PVP_CANTCHANGETEAM_NOSLOT = 1114, // 슬롯이 없어서 팀변경 못함
|
||
ERROR_PVP_JOINROOM_LEVELLIMIT = 1115, // PvP 레벨제한으로 입장 못함
|
||
ERROR_PVP_JOINROOM_MAXOBSERVER = 1116, // PvP 조인할 방 최대 옵져버
|
||
ERROR_PVP_CANTCHANGETEAM_CHANGECAPTAIN_FAILED = 1117, // 방장 할 사람이 없어서 옮길 수 없음
|
||
ERROR_PVP_CANTCHANGETEAM_LEVELLIMIT = 1118, // 게임참여 레벨제한으로 팀을 옮길 수 없음
|
||
ERROR_PVP_JOINROOM_DONTALLOW_EVENTROOM_OBSERVER = 1119, // 이벤트 방에서는 관전하기 불가능합니다.
|
||
ERROR_PVP_SWAPTEAM_MEMBERINDEX_FAIL = 1120, // PvP팀멤버인덱스 변경실패
|
||
ERROR_PVP_CHANGEMEMBERGRADE_FAIL = 1121, // PvP GuildWar 대장 부대장 임명 실패
|
||
ERROR_PVP_TRYACQUIREPOINT_FAIL = 1122, // 획득요청 실패
|
||
ERROR_PVP_TRYACQUIRESKILL_FAIL = 1123, // 스킬획득실패
|
||
ERROR_PVP_TRYACQUIRESKILL_FAIL_AUTH = 1124, // 스킬획득요청 권한이 없습니다.
|
||
ERROR_PVP_INITSKILL_FAIL = 1125, // 점령전 스킬초기화 실패
|
||
ERROR_PVP_USESKILL_FAIL = 1126, // 점령전 스킬사용실패
|
||
ERROR_PVP_SWAPSKILLINDEX_FAIL = 1127, // 점령전 퀵슬롯 인덱스 이동 실패
|
||
ERROR_PVP_STARTPVP_FAIL_READYMASTER = 1128, // 점령전일 경우 모든팀의 마스터가 레뒤상태여야함
|
||
ERROR_PVP_GUILDWAR_SECONDARYMASTER_ASIGNFAIL = 1129,// 임명인원 제한 넘음
|
||
ERROR_PVP_QUICK_USERNOTFOUND = 1131, // 1:1 결투신청할 대상이 없음
|
||
ERROR_PVP_QUICK_FAIL = 1132, // 1:1 결투신청 실패
|
||
ERROR_PVP_QUICK_CANTINVITE = 1133, // 대상이 결투를 요청받을 수 없습니다.
|
||
ERROR_PVP_QUICK_DENY = 1134, // 상대방이 결투신청을 거절 하였습니다.
|
||
ERROR_PVP_QUICK_MY_LEVEL = 1135, // 내 레벨이 낮아 결투를 할 수 없습니다.
|
||
ERROR_PVP_QUICK_OTHER_LEVEL = 1136, // 상대방이 레벨이 낮아 결투를 할 수 없습니다.
|
||
ERROR_PVP_LIST_LEVEL_LIMIT = 1137, // 레벨이 낮아 PVP 입장할 수 없음..
|
||
ERROR_PVP_CHANGELEVEL_FAIL = 1138, // 채널변경실패!
|
||
ERROR_PVP_JOINFAIL_MISMATCHCHANNEL = 1139, // 방입장실패 채널이 맞지 않습니다.
|
||
ERROR_PVP_SWAP_TOURNAMENT_INDEX_FAIL = 1140, // 토너먼트 자리 바꾸기 실패
|
||
ERROR_PVP_GAMBLEROOM_NOTCOIN = 1141, // 보유중인 골드가 부족하여 입장할 수 없습니다
|
||
ERROR_PVP_GAMBLEROOM_NOTPETAL = 1142, // 보유중인 페탈이 부족하여 입장할 수 없습니다
|
||
|
||
// HAN auth
|
||
ERROR_HAN_AUTHSVR_0 = 1200, // OK
|
||
ERROR_HAN_AUTHSVR_OK = 1201, // 성공
|
||
ERROR_HAN_AUTHSVR_ARGUMENT_INVALID = 1202, // 전달된 인자가 올바르지 않습니다.
|
||
ERROR_HAN_AUTHSVR_INITED_ALREADY = 1203, // 이미 모듈이 초기화 되었습니다.
|
||
ERROR_HAN_AUTHSVR_INITED_NOT = 1204, // 모듈이 초기화 되지 않았습니다.
|
||
ERROR_HAN_AUTHSVR_INITED_FAIL = 1205, // 모듈 초기화에 실패했습니다.
|
||
ERROR_HAN_AUTHSVR_CONNPOOL_CREATEFAIL = 1206, // 커넥션 풀 생성에 실패했습니다.
|
||
ERROR_HAN_AUTHSVR_GETCONNECTION_FAIL = 1207, // 커넥션 얻기에 실패했습니다
|
||
ERROR_HAN_AUTHSVR_OPENCONNECTION_FAIL = 1208, // 커넥션 열기에 실패했습니다.
|
||
ERROR_HAN_AUTHSVR_SENDCONNECTION_FAIL = 1209, // send 에 실패했습니다.
|
||
ERROR_HAN_AUTHSVR_RECVCONNECTION_FAIL = 1210, // receive 에 실패했습니다.
|
||
ERROR_HAN_AUTHSVR_RETURNVALUE_INVALID = 1211, // 인증서버로부터 리턴 값이 부적절합니다.
|
||
ERROR_HAN_AUTHSVR_AUTHSTRING_INVALID = 1212, // AuthString 가 부적절합니다.
|
||
ERROR_HAN_AUTHSVR_DLL_UNEXPECTED = 1213, // 예상치 못한 오류가 발생했습니다.
|
||
ERROR_HAN_AUTHSVR_PARAM_INVALID = 1214, // 인증서버로 전달된 인자가 올바르지 않습니다.
|
||
ERROR_HAN_AUTHSVR_IP_INVALID = 1215, // IP주소가 올바르지 않습니다.
|
||
ERROR_HAN_AUTHSVR_MEMBERID_INVALID = 1216, // 사용자 아이디가 올바르지 않습니다.
|
||
ERROR_HAN_AUTHSVR_PASSWORD_INCORRECT = 1217, // 사용자 비밀번호가 올바르지 않습니다.
|
||
ERROR_HAN_AUTHSVR_PASSWORD_MISMATCHOVER = 1218, // 비밀번호 입력오류횟수 초과
|
||
ERROR_HAN_AUTHSVR_MEMBERID_NOTEXIST = 1219, // 존재하지 않는 사용자 입니다
|
||
ERROR_HAN_AUTHSVR_SYSTEM_ERROR = 1220, // 인증서버에 시스템오류가 발생했습니다.
|
||
ERROR_HAN_AUTHSVR_COOKIE_SETTINGERR = 1221, // 쿠키가 올바르지 않습니다.
|
||
ERROR_HAN_AUTHSVR_COOKIE_NOTEXIST = 1222, // 쿠키가 존재하지 않습니다.
|
||
ERROR_HAN_AUTHSVR_COOKIE_TIMEOUT = 1223, // 쿠키가 만료되었습니다.
|
||
|
||
// Han Billing
|
||
ERROR_HAN_BILLING_OK = 1230, // 정상
|
||
// +) fault from Billing Server
|
||
ERROR_HAN_BILLING_GAMECODE_NOTEXIST = 1231, // GAMEID 가 없습니다.
|
||
ERROR_HAN_BILLING_USERNO_NOTEXIST = 1232, // User Number 가 없습니다.
|
||
ERROR_HAN_BILLING_CMD_NOTEXIST = 1233, // 빌링 커맨드가 없습니다.
|
||
ERROR_HAN_BILLING_ORDNO_NOTEXIST = 1234, // 주문번호가 없습니다.
|
||
ERROR_HAN_BILLING_SCD_NOTEXIST = 1235, // 상품코드가 없습니다.
|
||
ERROR_HAN_BILLING_SNAME_NOTEXIST = 1236, // 상품 이름이 없습니다.
|
||
ERROR_HAN_BILLING_QTY_NOTEXIST = 1237, // 상품 개수가 없습니다.
|
||
ERROR_HAN_BILLING_AMT_NOTEXIST = 1238, // 구매가격이 없습니다.
|
||
ERROR_HAN_BILLING_IP_NOTEXIST = 1239, // 클라이언트 IP 주소가 없습니다.
|
||
ERROR_HAN_BILLING_USERNO_INVALID = 1240, // User Number이 올바르지 않습니다.
|
||
ERROR_HAN_BILLING_BUY_FAIL = 1241, // 이 주문번호로는 결제 되지 않았습니다.
|
||
ERROR_HAN_BILLING_GAMECODE_INVALID = 1242, // 게임아이디가 올바르지 않습니다.
|
||
ERROR_HAN_BILLING_BALANCE_INSUFFICIENT = 1243, // 잔액이 부족합니다.
|
||
ERROR_HAN_BILLING_CMD_UNEXPECTED = 1244, // 예상치 못한 커맨드를 수신했습니다.
|
||
ERROR_HAN_BILLING_DB_CONNECTFAIL = 1245, // 빌링 DB 접속에 실패했습니다.
|
||
ERROR_HAN_BILLING_SVR_UNEXPECTED = 1246, // 빌링시스템 예상치 못한 오류가 발생했습니다.
|
||
// -) fault from function / this system
|
||
ERROR_HAN_BILLING_ARGUMENT_INVALID = 1247, // 전달된 인자가 올바르지 않습니다.
|
||
ERROR_HAN_BILLING_INITED_ALREADY = 1248, // 모듈이 이미 초기화 되었습니다.
|
||
ERROR_HAN_BILLING_INITED_NOT = 1249, // 모듈이 초기화 되지 않았습니다.
|
||
ERROR_HAN_BILLING_INITED_FAIL = 1250, // 모듈 초기화에 실패했습니다.
|
||
ERROR_HAN_BILLING_INITED_FAILBALANCE = 1256, // 잔액조회커넥션 초기화에 실패했습니다.
|
||
ERROR_HAN_BILLING_INITED_FAILBUY = 1257, // 구매커넥션 초기화에 실패했습니다.
|
||
ERROR_HAN_BILLING_INITED_FAILCONFIRM = 1258, // 결제확인커넥션 초기화에 실패했습니다.
|
||
ERROR_HAN_BILLING_GETCONN_FAILBALANCE = 1259, // 잔액조회 커넥션 얻기에 실패했습니다.
|
||
ERROR_HAN_BILLING_GETCONN_FAILBUY = 1260, // 구매 커넥션 얻기에 실패했습니다.
|
||
ERROR_HAN_BILLING_GETCONN_FAILCONFIRM = 1261, // 결제확인 커넥션 얻기에 실패했습니다.
|
||
ERROR_HAN_BILLING_OPENREQ_FAIL = 1262, // Request 오픈에 실패했습니다.
|
||
ERROR_HAN_BILLING_SENDREQ_FAIL = 1263, // 빌링 정보 Send 에 실패했습니다.
|
||
ERROR_HAN_BILLING_RECVRESULT_FAIL = 1264, // 빌링정보 Recv 에 실패했습니다.
|
||
ERROR_HAN_BILLING_RECVRESULT_INVALID = 1265, // 서버로부터 전달된 빌링정보가 올바르지 않습니다.
|
||
ERROR_HAN_BILLING_INITED_FAILBILLNO = 1266,
|
||
ERROR_HAN_BILLING_GETCONN_FAILBILLNO = 1267,
|
||
ERROR_HAN_BILLING_INITED_FAILBILLNOACC = 1268,
|
||
ERROR_HAN_BILLING_GETCONN_FAILBILLNOACC = 1269,
|
||
ERROR_HAN_BILLING_DLL_UNEXPECTED = 1270, // 모듈 내에서 예상치 못한 오류가 발생했습니다.
|
||
// 4.2 HanBillingGetBillNoAcc() 고유 Return Value
|
||
// +) fault from TGS
|
||
ERROR_HAN_BILLING_GETBILLNO_NEED_PARAM = 1271, // 필수 파라미터가 누락되었습니다.
|
||
ERROR_HAN_BILLING_GETBILLNO_IP_MISMATCH = 1272, // IP가 틀립니다.
|
||
ERROR_HAN_BILLING_GETBILLNO_USERID_MISMATCH = 1273, // 사용자 ID가 틀립니다.
|
||
ERROR_HAN_BILLING_GETBILLNO_DB_CONN_ERROR = 1274, // DB 연결에 실패했습니다.
|
||
ERROR_HAN_BILLING_GETBILLNO_USER_NOTEXIST = 1275, // 등록되지 않은 사용자입니다.
|
||
ERROR_HAN_BILLING_GETBILLNO_COOKIE_ERROR = 1276, // cookie 오류
|
||
ERROR_HAN_BILLING_GETBILLNO_COOKIE_IS_EMPTY = 1277, // cookie가 비었습니다.
|
||
ERROR_HAN_BILLING_GETBILLNO_COOKIE_TIMEOUT = 1278, // 만료된 cookie입니다.
|
||
|
||
//Auth Message Starting at 1300
|
||
ERROR_AUTH_CERTIFYINGSTEP1_CHECK = 1300, // 인증정보 체크 시 오류가 발생하였습니다.
|
||
ERROR_AUTH_SERVERID_CHECK = 1301, // 인증정보 체크 시 오류가 발생하였습니다.
|
||
ERROR_AUTH_CERTIFYINGKEY_CHECK = 1302, // 인증정보 체크 시 오류가 발생하였습니다.
|
||
ERROR_AUTH_CERTIFYINGKEY_SET = 1303, // 인증정보 지정 시 오류가 발생하였습니다.
|
||
ERROR_AUTH_AUTHLIMITSEC_EXCEED = 1304, // 인증정보 체크 시 오류가 발생하였습니다.
|
||
ERROR_AUTH_ACCOUNTID_NOTEXIST = 1305, // 인증정보 체크 시 오류가 발생하였습니다.
|
||
ERROR_AUTH_WORLDID_SET = 1306, // 인증정보 지정 시 오류가 발생하였습니다.
|
||
ERROR_AUTH_SESSIONID_SET = 1307, // 인증정보 지정 시 오류가 발생하였습니다.
|
||
ERROR_AUTH_CERTIFYINGSTEP2_CHECK = 1308, // 인증정보 체크 시 오류가 발생하였습니다.
|
||
ERROR_AUTH_WORLDID_CHECK = 1309, // 인증정보 체크 시 오류가 발생하였습니다.
|
||
ERROR_AUTH_SESSIONID_CHECK = 1310, // 인증정보 체크 시 오류가 발생하였습니다.
|
||
|
||
// NexonPCBang
|
||
ERROR_NEXONAUTH_I0 = 1400, // 프리미엄 적용PC방이 아닙니다. 이용중인PC방의 담당자에게 문의해 주시기 바랍니다.
|
||
ERROR_NEXONAUTH_M17 = 1401, // 프리미엄 해택 내용 및 이벤트 내용(이벤트 내용 이미지 구현이 어려울 경우 텍스트로 보여줌)
|
||
ERROR_NEXONAUTH_I3 = 1402, // PC방 정액제 기간이 만료되어 게임이 종료됩니다. 이용중인PC방의 담당자에게 문의해 주시기 바랍니다.
|
||
ERROR_NEXONAUTH_I19 = 1403, // PC방 정량제 시간이 만료되어 게임이 종료됩니다. 이용중인PC방의 담당자에게 문의해 주시기 바랍니다.
|
||
ERROR_NEXONAUTH_I2 = 1404, // IP당 허용 접속자 수가 초과 되었습니다. 이용중인PC방의 담당자에게 문의해 주시기 바랍니다
|
||
ERROR_NEXONAUTH_I27 = 1405, // PC방 프리미엄 적용 대상이 아닙니다. 넥슨PC방 고객센터로 문의 바랍니다
|
||
ERROR_NEXONAUTH = 1406, // PC방 관련 전반적인 에러값
|
||
ERROR_NEXONAUTH_I28 = 1407, // 불법사용자 머신ID차단
|
||
// ERROR_NEXONAUTH_I17, // PC방 정량제 잔여 시간이 OO시간 OO분 남았습니다
|
||
ERROR_NEXONAUTH_SHUTDOWNED_3 = 1408, // 청소년 보호법에 따라 0시부터 6시까지는 만 16세 이하 유저는 게임을 사용할 수 없습니다.
|
||
|
||
// Nexon Billing
|
||
ERROR_NEXONBILLING_0 = 1410, // 오류
|
||
ERROR_NEXONBILLING_99 = 1411, // DB오류
|
||
ERROR_NEXONBILLING_255 = 1412, // maintenance
|
||
|
||
ERROR_NEXONBILLING_2 = 1413, // 중복결제에러
|
||
ERROR_NEXONBILLING_3 = 1414, // 상품 총구매 수량 초과
|
||
ERROR_NEXONBILLING_4 = 1415, // 상품 구매 개수 초과
|
||
ERROR_NEXONBILLING_5 = 1416, // 재 구매 일수 미만
|
||
ERROR_NEXONBILLING_10 = 1417, // 추첨(복권) 상품에 대한 이벤트가 유효하지 않음
|
||
ERROR_NEXONBILLING_11 = 1418, // 추첨(복권) 상품에 대한 당첨 알고리즘이 유효하지 않음
|
||
ERROR_NEXONBILLING_21 = 1419, // cart가 없음
|
||
ERROR_NEXONBILLING_22 = 1420, // 사용제한된 게임
|
||
ERROR_NEXONBILLING_23 = 1421, // 총판매수량 제한됨
|
||
ERROR_NEXONBILLING_24 = 1422, // 주문수량제한됨(구매자)
|
||
ERROR_NEXONBILLING_25 = 1423, // 재주문가능기간아님(구매자)
|
||
ERROR_NEXONBILLING_26 = 1424, // 선물할수없는 상품
|
||
ERROR_NEXONBILLING_27 = 1425, // 주문수량제한됨(받는사람)
|
||
ERROR_NEXONBILLING_28 = 1426, // 재주문가능기간아님(받는사람)
|
||
ERROR_NEXONBILLING_35 = 1427, // 결제수단 오류
|
||
ERROR_NEXONBILLING_51 = 1428, // 사용된 쿠폰
|
||
ERROR_NEXONBILLING_52 = 1429, // 기간만료 (관리자의 의한 임의 쿠폰 기간 만료)
|
||
ERROR_NEXONBILLING_54 = 1430, // 쿠폰 취소 (사용자 측면에서의 만료)
|
||
ERROR_NEXONBILLING_61 = 1431, // 쿠폰 정보 에러( 쿠폰 서비스 코드 불일치, 아이템 정보 존재 하지 않음, 계약 상태 유효 하지 않음, 계약 정보 없음, 계약 유형 불일치 등의 오류가 발생 시)
|
||
ERROR_NEXONBILLING_62 = 1432, // 쿠폰번호가 올바르지 못함
|
||
ERROR_NEXONBILLING_63 = 1433, // 게임 불일치
|
||
ERROR_NEXONBILLING_65 = 1434, // 쿠폰 기간 만료.
|
||
ERROR_NEXONBILLING_66 = 1435, // 특정 사용자를 위한 쿠폰에서 다른 사용자가 쿠폰을 이용을 함.
|
||
ERROR_NEXONBILLING_81 = 1436, // 쿠폰사용회수제한체크오류
|
||
ERROR_NEXONBILLING_82 = 1437, // 쿠폰사용회수제한입력오류
|
||
ERROR_NEXONBILLING_100 = 1438, // PC방이 아닌데 PC방 쿠폰 입력 했다. 그러나 유효한 쿠폰이기는 하다.
|
||
ERROR_NEXONBILLING_101 = 1439, // PC방이 아닌데 PC방 쿠폰 입력 했다. 그리고 사용된 쿠폰이다.
|
||
ERROR_NEXONBILLING_102 = 1440, // PC방이 아닌데 PC방 쿠폰 입력 했다. 그리고 만료된 것이다.
|
||
ERROR_NEXONBILLING_103 = 1441, // PC방이 아닌데 PC방 쿠폰 입력 했다. 그리고 발행 취소된 쿠폰이다
|
||
ERROR_NEXONBILLING_149 = 1442, // 쿠폰 처리 오류(쿠폰디비등)
|
||
|
||
ERROR_NEXONBILLING_1000 = 1443, // 선물 한도를 초과함
|
||
ERROR_NEXONBILLING_1001 = 1444, // 선물 연령 제한
|
||
ERROR_NEXONBILLING_1002 = 1445, // 선물 발송 제한된 사용자
|
||
ERROR_NEXONBILLING_1003 = 1446, // 선물 수령 제한된 사용자
|
||
ERROR_NEXONBILLING_11001 = 1447, // 해당아이템 구매한도 초과
|
||
ERROR_NEXONBILLING_11002 = 1448, // 해당게임 사용자 캐시 잠금 활성화로 인한 구매불가
|
||
ERROR_NEXONBILLING_12001 = 1449, // 블록된 유저
|
||
ERROR_NEXONBILLING_12002 = 1450, // 회원정보를 찾을 수 없음
|
||
ERROR_NEXONBILLING_12040 = 1451, // 잔액부족
|
||
ERROR_NEXONBILLING_12044 = 1452, // 충전금액을 사용할 수 있는 기간이 지났을 때
|
||
ERROR_NEXONBILLING_120043 = 1453, // 구매 가능한 아이템이 아닙니다.
|
||
ERROR_NEXONBILLING_120062 = 1454, // 구매 불가능한 상태의 사용자 입니다.
|
||
|
||
ERROR_NEXONBILLING_REFUND_2 = 1455, // 환불가능 갯수보다 요청갯수가 큼
|
||
ERROR_NEXONBILLING_REFUND_3 = 1456, // 구매한지 7일이 초과된 상품
|
||
ERROR_NEXONBILLING_REFUND_4 = 1457, // 패키지중 일부를 수령함
|
||
ERROR_NEXONBILLING_REFUND_5 = 1458, // 가격이 0원인 상품
|
||
ERROR_NEXONBILLING_REFUND_10 = 1459, // 중복된 RequestID
|
||
ERROR_NEXONBILLING_REFUND_11 = 1460, // 존재하지 않는 OrderNo
|
||
ERROR_NEXONBILLING_REFUND_12 = 1461, // 존재하지 않는 ProductNo
|
||
|
||
//Nexon GioSecure
|
||
ERROR_NEXONAUTH_GIO_TERMINATE = 1470, // 위치기반 게임이용차단(게임 도중)
|
||
ERROR_NEXONAUTH_GIO_BAN = 1471, // 위치기반 게임이용차단(로그인시)
|
||
|
||
ERROR_NEXONAUTH_SHUTDOWNED_1 = 1472, // 나이 정보를 확인 중 오류가 발생하였습니다. 잠시 후 다시 로그인하여 주십시오.
|
||
ERROR_NEXONAUTH_SHUTDOWNED_2 = 1473, // 실명인증을 받지 않은 회원이거나 넥슨닷컴 회원이 아닙니다.
|
||
// ERROR_NEXONAUTH_SHUTDOWNED_3 = 1408, 위에 이미 있음
|
||
ERROR_NEXONAUTH_SHUTDOWNED_4 = 1474, // 선택적 셧다운제에 의해 게임이용이 차단됩니다.
|
||
ERROR_NEXONAUTH_SHUTDOWNED_99 = 1475, // 게임이용이 차단됩니다.
|
||
|
||
//ServiceManager
|
||
ERROR_SM_UNKNOWN_OPERATING_TYPE = 1500, // 알 수 없는 메세지입니다.
|
||
ERROR_SM_TERMINATE_BUSY = 1501, // 서비스를 죽이는 중입니다.
|
||
ERROR_SM_NETLAUNCHER_INSUFFISIENCY = 1502, // 구성되어야 하는 런처가 전부 준비되어 있지 않습니다.
|
||
ERROR_SM_STARTEACH_FAILED = 1503, // 서비스 개별시작이 실패하였습니다.
|
||
ERROR_SM_SELECTED_NETLAUNCHER_NOTFOUND = 1504, // 서비스 런처개별시작할 런처가 존재하지 않습니다.
|
||
ERROR_SM_NETLAUNCHER_NOTFOUND = 1505, // 동작중인 넷런처가 없습니다.
|
||
ERROR_SM_TERMINATE_SERVICE_NOTFOUND = 1506, // 동작을 중지시킬 서비스가 없습니다.
|
||
ERROR_SM_MAKEDUMP_FAIL = 1507,
|
||
ERROR_SM_CHANNELCONTROL_FAIL = 1508,
|
||
ERROR_SM_GAMECONTROL_FAIL = 1509,
|
||
ERROR_SM_UNMATCHED_REQ = 1510, // 컨테이너 버전이 틀린 요청입니다.
|
||
ERROR_SM_LOGINFAIL = 1511,
|
||
ERROR_SM_LOGINFAIL_VERSIONUNMATCHED = 1512, // 버전이 틀립니다.
|
||
ERROR_SM_YOU_ARE_NOT_ALLOWED_LEVEL = 1513, // 해당 커맨드에 대하여 허가받지 않은 요청입니다.
|
||
ERROR_SM_LOGINFAIL_LEVEL_DUPLICATED = 1514, // 해당 아이디는 중복로그인이 불가합니다.
|
||
|
||
// MasterSystem
|
||
ERROR_MASTERSYSTEM_MASTERAPPLICATION_PENALTY = 1600, // 스승 참여 페널티 기간이라 참여할 수 없음
|
||
ERROR_MASTERSYSTEM_MASTERUSER_OFFLINE = 1601,
|
||
ERROR_MASTERSYSTEM_LEAVE_DESTUSER_OFFLINE = 1602, // 사제 끊을 때 대상 유저가 Offline 상태임
|
||
ERROR_MASTERSYSTEM_LEAVE_DESTUSER_CANTSTATE = 1603, // 사제 끊을 때 대상 유저가 끊을 수 없는 상태임
|
||
ERROR_MASTERSYSTEM_LEAVE_FAILED = 1604, // 사제 끊기 실패( 공용 에러 )
|
||
ERROR_MASTERSYSTEM_RECALL_SAMECHANNEL = 1605,
|
||
ERROR_MASTERSYSTEM_RECALL_CANTSTATUS = 1606, // 소환 할 수 없는 상태
|
||
ERROR_MASTERSYSTEM_RECALL_FAILED = 1607,
|
||
ERROR_MASTERSYSTEM_RECALL_REJECT = 1608, // 소환 거부
|
||
ERROR_MASTERSYSTEM_JOIN_DENY = 1609, // 사제지간 거부
|
||
ERROR_MASTERSYSTEM_CANT_JOINSTATE = 1610, // 사제지간 맺을 수 없는 상태
|
||
|
||
//ERROR_VEHICLE_DONOTHAVE_VEHICLE = 1700, // 탈것을 가지고 있지 않습니다.
|
||
//ERROR_VEHICLE_DONOTRIDE_VEHICLE = 1701, // 탈것에 타고 있지 않습니다.
|
||
|
||
// Gamania - AUTH, BILLING
|
||
ERROR_GAMANIA_INVALID_ID_OR_PASSWORD = 1800, // 잘못된 ID or 패스워드
|
||
ERROR_GAMANIA_NO_SUCH_ACCOUNT = 1801, // 존재하지 않는 계정입니다.
|
||
ERROR_GAMANIA_NO_SUCH_SERVICE = 1802, // 존재하지 않는 서비스
|
||
ERROR_GAMANIA_NO_ENOUGH_POINT = 1803, // 포인트가 부족합니다.
|
||
ERROR_GAMANIA_WRONG_EVENTOTP = 1804, // EVENT OTP가 틀렸습니다.
|
||
ERROR_GAMANIA_WRONG_OTP = 1805, // OTP가 틀렸습니다.
|
||
ERROR_GAMANIA_ACCOUNT_LOCK = 1806, // 계정이 잠겨 있습니다.
|
||
ERROR_GAMANIA_SERVICE_NOT_AVAILABLE = 1807, // 게임서비스가 활성화 되지 않았습니다.
|
||
ERROR_GAMANIA_TIME_OUT = 1808, // 타임아웃
|
||
ERROR_GAMANIA_CONTRACT_BLOCK = 1809, // 계약종료
|
||
ERROR_GAMANIA_ALREADY_LOGIN = 1810, // 이미 로그인 되어있음.
|
||
ERROR_GAMANIA_ALREADY_WAITING = 1811, // 이미 인증요청중
|
||
//쿠폰관련
|
||
ERROR_GAMANIA_COUPON_UNAVAILABE = 1812, // 해당 쿠폰은 사용중지된 쿠폰입니다.
|
||
ERROR_GAMANIA_COUPON_EXPIRED = 1813, // 쿠폰 기한 만료
|
||
ERROR_GAMANIA_COUPON_WRONG = 1814, // 쿠폰 입력 에러
|
||
ERROR_GAMANIA_COUPON_WRONG_WORLD = 1815, // 이 쿠폰은 해당 서버에서 사용이 불가능합니다.
|
||
|
||
ERROR_GAMANIA_COUPON_AVAILABE = 1816, // 쿠폰을 사용하지 않은 상태입니다.
|
||
ERROR_GAMANIA_COUPON_USED = 1817, // 쿠폰이 이미 사용된 상태입니다.
|
||
ERROR_GAMANIA_COUPON_EXCHANGING = 1818, // 쿠폰 교환중입니다.
|
||
ERROR_GAMANIA_COUPON_USED_DATE = 1819, // 이미 특정 기간중 교환 완료. 자세한 내용은 홈피 참조
|
||
ERROR_GAMANIA_COUPON_NOT_START_USE = 1820, // 쿠폰 교환이 아직 시작되지 않음. 자세한 내용은 홈피 참조.
|
||
ERROR_GAMANIA_COUPON_REINPUT = 1821, // 아이템 지급 애러. 쿠폰 넘버 재 입력 바람.
|
||
ERROR_GAMANIA_COUPON_ACCOUNT = 1822, // 해당 쿠폰은 사용한 계정에서 사용 불가.
|
||
ERROR_GAMANIA_COUPON_WORD = 1823, // 쿠폰 사용 가능 획수 초과
|
||
ERROR_GAMANIA_COUPON_COUNT = 1824, // 쿠폰 사용 제한 횟수 초과
|
||
ERROR_GAMANIA_SPECIAL_CHAR = 1825, // 특수문자는 사용할 수 없습니다.
|
||
|
||
// 보조스킬
|
||
ERROR_SECONDARYSKILL_ADDRECIPE_FAILED = 1900, // 보조스킬 레시피 추가 실패
|
||
ERROR_SECONDARYSKILL_DELETE_FAILED = 1901, // 보조스킬 제거 실패
|
||
ERROR_SECONDARYSKILL_DELETERECIPE_FAILED = 1902, // 보조스킬 레시피 제거 실패
|
||
ERROR_SECONDARYSKILL_EXTRACTRECIPE_FAILED = 1903, // 보조스킬 레시피 추출 실패
|
||
ERROR_SECONDARYSKILL_MANUFACTURE_FAILED = 1904, // 보조스킬 제작 실패(일반적인 에러)
|
||
ERROR_SECONDARYSKILL_MANUFACTURE_PROBABILITY_FAILED = 1905, // 보조스킬 제작 확률에 의한 실패
|
||
ERROR_SECONDARYSKILL_MANUFACTURE_DONTALLOWMAP = 1906, // 보조스킬 제작시 허용하지 않는 맵
|
||
ERROR_SECONDARYSKILL_ADDRECIPE_MAX = 1907, // 최대 레시피
|
||
ERROR_SECONDARYSKILL_ADDRECIPE_DUPLICATE = 1908, // 레시피 중복
|
||
ERROR_SECONDARYSKILL_DELETE_FAILED_DONTALLOWMAP = 1909, // 보조스킬 삭제 허용하지 않는 맵입니다.
|
||
|
||
// 농장
|
||
ERROR_FARM_CANT_START_PLANTSTATE = 2000, // 식물 심을 수 없는 상태
|
||
ERROR_FARM_CANT_START_PLANTSTATE_MAXFIELDCOUNT = 2001, // 식물 심을 수 없는 상태(최대수제한)
|
||
ERROR_FARM_CANT_CANCEL_PLANTSTATE = 2002, // 식물 심는거 취소할 수 없는 상태
|
||
ERROR_FARM_CANT_COMPLETE_PLANTSTATE = 2003, // 식물 심는거 완료할 수 없는 상태
|
||
ERROR_FARM_CANT_COMPLETE_PLANTSTATE_MAXFIELDCOUNT = 2004, // 식물 심는거 완료할 수 없는 상태(최대수제한)
|
||
ERROR_FARM_CANT_START_HARVESTSTATE = 2005, // 식물 수확할 수 없는 상태
|
||
ERROR_FARM_CANT_CANCEL_HARVESTSTATE = 2006, // 식물 수확 취소할 수 없는 상태
|
||
ERROR_FARM_CANT_COMPLETE_HARVESTSTATE = 2007, // 식물 수확 완료할 수 없는 상태
|
||
ERROR_FARM_CANT_START_ADDWATERSTATE = 2008, // 식물 물을 줄 수 없는 상태
|
||
ERROR_FARM_CANT_CANCEL_ADDWATERSTATE = 2009, // 식물 물주는거 취소할 수 없는 상태
|
||
ERROR_FARM_CANT_COMPLETE_ADDWATERSTATE = 2010, // 식물 물주는거 완료할 수 없는 상태
|
||
ERROR_FARM_CANT_PLANT_OVERLAPCOUNT = 2011, // 특정 아이템 한번에 심을 수 있는 개수 넘어감
|
||
ERROR_FARM_INVALID_VIP = 2012, // Vip 아님
|
||
ERROR_FARM_CANT_START_PLANTSTATE_MAXPRIVATEFIELDCOUNT = 2013, // 식물 심는거 완료할 수 없는 상태(개인구역최대수제한)
|
||
ERROR_FARM_CANT_START_PLANTSTATE_DOWNSCALEFARM = 2014, // 폐쇄중인 농장
|
||
ERROR_FARM_INVALUD_CHAMPIONGUILD = 2015, // 우승길드 아님
|
||
ERROR_FARM_CANT_START_PLANTSTATE_GUILDCHAMPION_TIMELIMIT = 2016,// 우승길드 시간 제한
|
||
|
||
//낚시
|
||
ERROR_FISHING_FAIL = 2050, //낚시상태에 대한 일반적인 에러
|
||
ERROR_FISHING_INSUFFICIENCY_FISHINGSKILL_LEVEL = 2051, //낚시스킬레벨부족
|
||
ERROR_FISHING_INSUFFICIENCY_FISHINGSKILL_GRADE = 2052, //낚시스킬등급부족
|
||
ERROR_FISHING_INSUFFICIENCY_FISHING_ROD = 2053, //낚시대가 없어요
|
||
ERROR_FISHING_INSUFFICIENCY_FISHING_BAIT = 2054, //낚시미끼가 없어요
|
||
ERROR_FISHING_INSUFFICIENCY_INVENTORY = 2055, //조과를 담을 인벤이 없어요
|
||
ERROR_FISHING_CASTBAIT_FAIL = 2056, //낚시시작에 대한 기본적인에러
|
||
ERROR_FISHING_STOPFISHING_FAIL = 2057, //낚시종료실패
|
||
ERROR_FISHING_FAIL_ISNOT_FISHINGAREA = 2058, //낚시영역이 아님
|
||
|
||
// Shanda Cash
|
||
// Author
|
||
ERROR_SHANDAAUTHOR_100201 = 2100, // -100201 = PT 계정 에러 ptId format error
|
||
ERROR_SHANDAAUTHOR_100202 = 2101, // -100202 게임 ID 에러 appId error
|
||
ERROR_SHANDAAUTHOR_100203 = 2102, // -100203 파티션 ID 에러 areaId error
|
||
ERROR_SHANDAAUTHOR_100206 = 2103, // -100206 계정이 존재하지 않음 Account not exist
|
||
ERROR_SHANDAAUTHOR_100207 = 2104, // -100207 파티션 ID 존재하지 않음 areaId not exist
|
||
ERROR_SHANDAAUTHOR_100208 = 2105, // -100208 게임 ID 존재하지 않음 appId not exist
|
||
ERROR_SHANDAAUTHOR_100210 = 2106, // -100210 기타 기록을 찾지 못한 에러 other error
|
||
ERROR_SHANDAAUTHOR_100213 = 2107, // -100213 sdid 너무 길거나 영문문자가 포함됨 sdId format error
|
||
ERROR_SHANDAAUTHOR_100299 = 2108, // -100299 DB 에러 DB error
|
||
ERROR_SHANDAAUTHOR_120101 = 2109, // -120101 숫자 계정이 너무 길거나 영문문자가 포함됨 sndaID format error
|
||
ERROR_SHANDAAUTHOR_120102 = 2110, // -120102 PT 계정이 너무 길거나 전부 다 숫자임 ptId format error
|
||
ERROR_SHANDAAUTHOR_120103 = 2111, // -120103 유저 계정에 대응되는 accountid 에러 accountID error
|
||
ERROR_SHANDAAUTHOR_120104 = 2112, // -120104 잔액 에러 balance error
|
||
ERROR_SHANDAAUTHOR_120105 = 2113, // -120105 과금 타입 에러 paytypeId error
|
||
ERROR_SHANDAAUTHOR_120108 = 2114, // -120108 LBS 로컬 DB에 해당 데이터가 없음 no data in LBS DB
|
||
ERROR_SHANDAAUTHOR_120109 = 2115, // -120109 기타 에러 other errror
|
||
ERROR_SHANDAAUTHOR_120111 = 2116, // -120111 게임 ID 에러 appId error
|
||
ERROR_SHANDAAUTHOR_120112 = 2117, // -120112 네트워크 상태 에러 Net status error
|
||
ERROR_SHANDAAUTHOR_120113 = 2118, // -120113 메시지 에러(메시지 내용 에러) data body error
|
||
ERROR_SHANDAAUTHOR_129999 = 2119, // -129999 DB 에러 DB error
|
||
// Account
|
||
ERROR_SHANDAACCOUNT_102601 = 2120, // -102601 과금 메시지 상태 에러 Status error
|
||
ERROR_SHANDAACCOUNT_102602 = 2121, // -102602 과금 타입 에러 Paytype error
|
||
ERROR_SHANDAACCOUNT_102603 = 2122, // -102603 과금 금액이 0보다 작음 Amount error
|
||
ERROR_SHANDAACCOUNT_102613 = 2123, // -102613 패킷 log 시간이 5일전임 Calltime error
|
||
ERROR_SHANDAACCOUNT_102604 = 2124, // -102604 PT 계정이 존재하지 않음 Account not exist
|
||
ERROR_SHANDAACCOUNT_102605 = 2125, // -102605 게임 파티션 계정이 존재하지 않음 balance not exist
|
||
ERROR_SHANDAACCOUNT_102609 = 2126, // -102609 sdid 너무 길거나 영문문자가 포함됨 sdId format error
|
||
ERROR_SHANDAACCOUNT_102610 = 2127, // -102610 소비 타입 에러 appType error
|
||
ERROR_SHANDAACCOUNT_102611 = 2128, // -102611 커플링 타입 에러, 반드시 1,2 여야 함 coupletype error
|
||
ERROR_SHANDAACCOUNT_102612 = 2129, // -102612 begintime이 endtime보다 작거나 같아야 함 begintime must samll to endtime
|
||
ERROR_SHANDAACCOUNT_102615 = 2130, // -102615 amount = 0 Amount is 0
|
||
ERROR_SHANDAACCOUNT_102617 = 2131, // -102617 기타 에러 other error
|
||
ERROR_SHANDAACCOUNT_102699 = 2132, // -102699 DB 에러 DB error
|
||
ERROR_SHANDAACCOUNT_120201 = 2133, // -120201 숫자 계정이 너무 길거나 영문문자가 포함됨 sndaID format error
|
||
ERROR_SHANDAACCOUNT_120202 = 2134, // -120202 PT 계정이 너무 길거나 전부 다 숫자임 ptId format error
|
||
ERROR_SHANDAACCOUNT_120203 = 2135, // -120203 과금 수량 포맷 에러 Amount error
|
||
ERROR_SHANDAACCOUNT_120204 = 2136, // -120204 패킷 업로드 시간간격 에러 period error
|
||
ERROR_SHANDAACCOUNT_120205 = 2137, // -120205 계정이 존재하지 않음 ID not exist
|
||
ERROR_SHANDAACCOUNT_120206 = 2138, // -120206 통합 기록이 없음 no union data
|
||
ERROR_SHANDAACCOUNT_120207 = 2139, // -120207 지급 타입 에러 paytypeId error
|
||
ERROR_SHANDAACCOUNT_120208 = 2140, // -120208 숫자 계정이 존재하지 않음 sndaID not exist
|
||
ERROR_SHANDAACCOUNT_120209 = 2141, // -120209 기타 파라미터 포맷 에러 other param format error
|
||
ERROR_SHANDAACCOUNT_120210 = 2142, // -120210 orderid 중복 orderid error
|
||
ERROR_SHANDAACCOUNT_120211 = 2143, // -120211 serviceid 에러 appId error
|
||
ERROR_SHANDAACCOUNT_120212 = 2144, // -120212 네트워크 상태 에러 net status error
|
||
ERROR_SHANDAACCOUNT_120213 = 2145, // -120213 cache flag 에러 flag error
|
||
ERROR_SHANDAACCOUNT_120214 = 2146, // -120214 상태 파라미터 에러 status error
|
||
ERROR_SHANDAACCOUNT_120215 = 2147, // -120215 한개 sessionid에 여러개 기록이 존재 Data repeat
|
||
ERROR_SHANDAACCOUNT_120216 = 2148, // -120216 ptid와 sessionid가 매치되지 않음 ptId and sessid error
|
||
ERROR_SHANDAACCOUNT_120217 = 2149, // -120217 PT 계정이 존재하지 않음 ptID not exist
|
||
// ERROR_SHANDAACCOUNT_129999, // -129999 시스템 에러+sqlcode other error
|
||
// 유저 숫자계정
|
||
ERROR_SHANDABILLING_200101 = 2150, // SDIDLONGER -200101 입력길이 초과 long
|
||
ERROR_SHANDABILLING_200102 = 2151, // SDIDNULL -200102 비어있음 null
|
||
ERROR_SHANDABILLING_200103 = 2152, // SDIDILLEGAL -200103 불법 문자열이 포함됨 format error
|
||
ERROR_SHANDABILLING_200199 = 2153, // SDIDOTHER -200199 기타 에러 other error
|
||
// 유저 PT 계정
|
||
ERROR_SHANDABILLING_200201 = 2154, // PTIDLONGER -200201 입력길이 초과 long
|
||
ERROR_SHANDABILLING_200202 = 2155, // PTIDNULL -200202 비어있음 null
|
||
ERROR_SHANDABILLING_200203 = 2156, // PTIDILLEGAL -200203 불법 문자열이 포함됨 format error
|
||
ERROR_SHANDABILLING_200204 = 2157, // PTIDALLNUM -200204 전부 다 숫자거나 숫자로 시작됨 format error
|
||
ERROR_SHANDABILLING_200299 = 2158, // PTIDOTHER -200299 기타 에러 other error
|
||
// 서비스 타입 ID
|
||
ERROR_SHANDABILLING_200301 = 2159, // SERVIDLONGER -200301 입력길이 초과 long
|
||
ERROR_SHANDABILLING_200302 = 2160, // SERVIDNULL -200302 비어있음 null
|
||
ERROR_SHANDABILLING_200303 = 2161, // SERVIDILLEGAL -200303 불법 문자열이 포함됨 format error
|
||
ERROR_SHANDABILLING_200399 = 2162, // SERVIDOTHER -200399 기타 에러 other error
|
||
// 게임 파티션 ID
|
||
ERROR_SHANDABILLING_200401 = 2163, // AREAIDLONGER -200401 입력길이 초과 long
|
||
ERROR_SHANDABILLING_200402 = 2164, // AREAIDNULL -200402 비어있음 null
|
||
ERROR_SHANDABILLING_200403 = 2165, // AREAIDILLEGAL -200403 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_200499 = 2166, // AREAIDOTHER -200499 기타 에러 other error
|
||
// 세션 id
|
||
ERROR_SHANDABILLING_200501 = 2167, // SESSIDLONGER -200501 입력길이 초과 long
|
||
ERROR_SHANDABILLING_200502 = 2168, // SESSIDNULL -200502 비어있음 null
|
||
ERROR_SHANDABILLING_200503 = 2169, // SESSIDILLEGAL -200503 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_200504 = 2170, // SESSIDERRFORMAT -200504 포멧 에러(조합 불법) format error
|
||
ERROR_SHANDABILLING_200599 = 2171, // SESSIDOTHER -200599 기타 에러 other error
|
||
// 데이터패킷 id
|
||
ERROR_SHANDABILLING_200601 = 2172, // UNIQUEIDLONGER -200601 입력길이 초과 long
|
||
ERROR_SHANDABILLING_200602 = 2173, // UNIQUEIDNULL -200602 비어있음 null
|
||
ERROR_SHANDABILLING_200603 = 2174, // UNIQUEIDILLEGAL -200603 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_200604 = 2175, // UNIQUEIDERRFORMAT -200604 포멧 에러(조합 불법) format error
|
||
ERROR_SHANDABILLING_200605 = 2176, // UNIQUEIDREPEAT -200605 uniqueid 중복됨 id repeat
|
||
ERROR_SHANDABILLING_200699 = 2177, // UNIQUEIDOTHER -200699 기타 에러 null
|
||
// 월드 ID
|
||
ERROR_SHANDABILLING_200801 = 2178, // GROUPIDLONGER -200801 입력길이 초과 long
|
||
ERROR_SHANDABILLING_200802 = 2179, // GROUPIDNULL -200802 비어있음 null
|
||
ERROR_SHANDABILLING_200803 = 2180, // GROUPIDILLEGAL -200803 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_200899 = 2181, // GROUPIDOTHER -200899 기타 에러 other error
|
||
// 시작시간
|
||
ERROR_SHANDABILLING_201301 = 2182, // BEGINTIMELONGER -201301 입력길이 초과 long
|
||
ERROR_SHANDABILLING_201302 = 2183, // BEGINTIMENULL -201302 비어있음 null
|
||
ERROR_SHANDABILLING_201303 = 2184, // BEGINTIMEILLEGAL -201303 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_201304 = 2185, // BEGINTIMEERRLONGFOMAT -201304 포맷 에러, YYYY-MM-DD hh:mi:ss 포맷이어야 함 format error
|
||
ERROR_SHANDABILLING_201305 = 2186, // BEGINTIMEERRSHORTFOMAT -201305 불법 문자 포함됨,YYYY-MM-DD 포맷이어야 함 format error
|
||
ERROR_SHANDABILLING_201399 = 2187, // BEGINTIMEOTHER -201399 기타 에러 other error
|
||
// 종료시간
|
||
ERROR_SHANDABILLING_201401 = 2188, // ENDTIMELONGER -201401 입력길이 초과 long
|
||
ERROR_SHANDABILLING_201402 = 2189, // ENDTIMENULL -201402 비어있음 null
|
||
ERROR_SHANDABILLING_201403 = 2190, // ENDTIMEILLEGAL -201403 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_201404 = 2191, // ENDTIMEERRLONGFOMAT -201404 포맷 에러, YYYY-MM-DD hh:mi:ss 포맷이어야 함 format error
|
||
ERROR_SHANDABILLING_201405 = 2192, // ENDTIMEERRSHORTFOMAT -201405 불법 문자 포함됨,YYYY-MM-DD 포맷이어야 함 format error
|
||
ERROR_SHANDABILLING_201406 = 2193, // ENDTIMEERRVALUE -201406 종료시간이 시작시간보다 큼 error value
|
||
ERROR_SHANDABILLING_201499 = 2194, // ENDTIMEOTHER -201499 기타 에러 other error
|
||
// 데이터 패킷 id
|
||
ERROR_SHANDABILLING_201501 = 2195, // ORDERIDLONGER -201501 입력길이 초과 long
|
||
ERROR_SHANDABILLING_201502 = 2196, // ORDERIDNULL -201502 비어있음 null
|
||
ERROR_SHANDABILLING_201503 = 2197, // ORDERIDILLEGAL -201503 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_201504 = 2198, // ORDERIDERRFORMAT -201504 포맷 에러(조합 불법) format error
|
||
ERROR_SHANDABILLING_201505 = 2199, // ORDERIDREPEAT -201505 orderid중복 ID repeat
|
||
ERROR_SHANDABILLING_201599 = 2200, // ORDERIDOTHER -201599 기타 에러 other error
|
||
// 과금 타입
|
||
ERROR_SHANDABILLING_201901 = 2202, // PAYTYPELONGER -201901 입력길이 초과 long
|
||
ERROR_SHANDABILLING_201902 = 2203, // PAYTYPENULL -201902 비어있음 null
|
||
ERROR_SHANDABILLING_201903 = 2204, // PAYTYPEILLEGAL -201903 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_201904 = 2205, // PAYTYPEERRVALUE -201904 입력 에러(특정값을 가지지 않음) error value
|
||
ERROR_SHANDABILLING_201999 = 2206, // PAYTYPEOTHER -201999 기타 에러 other error
|
||
// 소비 타입
|
||
ERROR_SHANDABILLING_202001 = 2207, // APPTYPELONGER -202001 입력길이 초과 long
|
||
ERROR_SHANDABILLING_202002 = 2208, // APPTYPENULL -202002 비어있음 null
|
||
ERROR_SHANDABILLING_202003 = 2209, // APPTYPEILLEGAL -202003 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_202004 = 2210, // APPTYPEERRVALUE -202004 입력 에러(특정값을 가지지 않음) error value
|
||
ERROR_SHANDABILLING_202099 = 2211, // APPTYPEOTHER -202099 기타 에러 other error
|
||
// 커플링 타입
|
||
ERROR_SHANDABILLING_202101 = 2212, // COUPLETYPELONGER -202101 입력길이 초과 long
|
||
ERROR_SHANDABILLING_202102 = 2213, // COUPLETYPENULL -202102 비어있음 null
|
||
ERROR_SHANDABILLING_202103 = 2214, // COUPLETYPEILLEGAL -202103 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_202104 = 2215, // COUPLETYPEERRVALUE -202104 입력 에러(특정값을 가지지 않음) error value
|
||
ERROR_SHANDABILLING_202199 = 2216, // COUPLETYPEOTHER -202199 기타 에러 other error
|
||
// 금액
|
||
ERROR_SHANDABILLING_202201 = 2217, // AMOUNTLONGER -202201 입력길이 초과 long
|
||
ERROR_SHANDABILLING_202202 = 2218, // AMOUNTNULL -202202 비어있음 null
|
||
ERROR_SHANDABILLING_202203 = 2219, // AMOUNTILLEGAL -202203 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_202204 = 2220, // AMOUNTNEGATIVE -202204 마이너스 숫자 입력 error value
|
||
ERROR_SHANDABILLING_202205 = 2221, // AMOUNTZERO -202205 0을 입력 error value
|
||
ERROR_SHANDABILLING_202206 = 2222, // AMOUNTERRVALUE -202206 입력한 숫자가 너무 큼 error value
|
||
ERROR_SHANDABILLING_202299 = 2223, // AMOUNTOTHER -202299 기타 에러 other error
|
||
// 빌링 할인율
|
||
ERROR_SHANDABILLING_202301 = 2224, // DISCOUNTLONGER -202301 입력길이 초과 long
|
||
ERROR_SHANDABILLING_202302 = 2225, // DISCOUNTNULL -202302 비어있음 null
|
||
ERROR_SHANDABILLING_202303 = 2226, // DISCOUNTILLEGAL -202303 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_202399 = 2227, // DISCOUNTOTHER -202399 기타 에러 other error
|
||
// 클라이언트 IP 주소
|
||
ERROR_SHANDABILLING_202501 = 2228, // IPLONGER -202501 입력길이 초과 long
|
||
ERROR_SHANDABILLING_202502 = 2229, // IPNULL -202502 비어있음 null
|
||
ERROR_SHANDABILLING_202503 = 2230, // IPILLEGAL -202503 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_202504 = 2231, // IPERRVALUE -202504 입력 에러(지정 범위내에 없음) error value
|
||
ERROR_SHANDABILLING_202599 = 2232, // IPOTHER -202599 기타 에러 other error
|
||
// 상태
|
||
ERROR_SHANDABILLING_204401 = 2233, // STATUSLONGER -204401 입력길이 초과 long
|
||
ERROR_SHANDABILLING_204402 = 2234, // STATUSNULL -204402 비어있음 null
|
||
ERROR_SHANDABILLING_204403 = 2235, // STATUSILLEGAL -204403 불법 문자 포함됨 format error
|
||
ERROR_SHANDABILLING_204404 = 2236, // STATUSERRVALUE -204404 입력 에러(지정한 값과 일치하지 않음) error value
|
||
ERROR_SHANDABILLING_204499 = 2237, // STATUSOTHER -204499 기타 에러 other error
|
||
// 유저 uid
|
||
ERROR_SHANDABILLING_200211 = 2238, // UIDLONGER -200211 입력길이 초과 long
|
||
// CBS서비스 처리
|
||
ERROR_SHANDABILLING_300001 = 2239, // CBSDB_IS_DISCONNECT -300001 cbs DB 접속 에러 sql connect error
|
||
ERROR_SHANDABILLING_300102 = 2240, // CBSDB_PROC_ERROR -300002 cbs sql 실행 에러 sql error
|
||
ERROR_SHANDABILLING_300103 = 2241, // UNAUTHOR_OPERATION -300003 권한 부여하지 않은 요청 패킷 타입 unauthor
|
||
ERROR_SHANDABILLING_300201 = 2242, // AMOUNT_NOT_MATCHING -300201 금액 불일치 amount error
|
||
ERROR_SHANDABILLING_390001 = 2243, // RES_TIMEOUT -390001 응답 시간 초과 response time out
|
||
// 통신 반환-API
|
||
ERROR_SHANDABILLING_401001 = 2244, // SOCKDISCONNECT -401001 socket 연결 끊김 socket disconnect
|
||
ERROR_SHANDABILLING_401002 = 2245, // SOCKIP_OR_PORTERR -401002 서버 ip/port 에러 IP Port error
|
||
ERROR_SHANDABILLING_401003 = 2246, // SOCKCONNECTFAIL -401003 socket 연결 실패 socket connect fail
|
||
ERROR_SHANDABILLING_401004 = 2247, // SOCKLOCALFAILED -401004 로컬 초기화 SOCKET 실패 initial fail
|
||
ERROR_SHANDABILLING_401005 = 2248, // SNDBUF_OVERFLOW -401005 발송 buffer overflow send buffer overflow
|
||
ERROR_SHANDABILLING_401006 = 2249, // RCVBUF_OVERFLOW -401006 접수 buffer overflow recive buffer overflow
|
||
ERROR_SHANDABILLING_401007 = 2250, // TMOBUF_OVERFLOW -401007 timeout buffer overflow timeout buffer overflow
|
||
ERROR_SHANDABILLING_401008 = 2251, // LSOCKDISCONNECT -401008 통신 에러 socket error
|
||
ERROR_SHANDABILLING_401011 = 2252, // NOINITCLIENT -401011 클라이언트 초기화하지 않음 client without initial
|
||
// QUEUE 처리
|
||
ERROR_SHANDABILLING_402001 = 2253, // QUEUECACHEFULL -402001 행렬 cache full queue cache full
|
||
ERROR_SHANDABILLING_402002 = 2254, // QUEUELOCKERROR -402002 행렬 lock 에러 queue lock error
|
||
ERROR_SHANDABILLING_402003 = 2255, // QUEUEOPERATEERROR -402003 행렬 Push/Pop 전송 파라미터 에러(빈 pointer) queue param error
|
||
ERROR_SHANDABILLING_402004 = 2256, // QUEUEEMPTY -402004 행렬이 비어있음, Pop 데이터 없음 queue null
|
||
ERROR_SHANDABILLING_402005 = 2257, // QUEUEDATAERR -402005 cache 내용 에러, 길이가 cache 가능 범위 초과 등 queue data error
|
||
// 데이터 전송
|
||
ERROR_SHANDABILLING_403001 = 2258, // USERDATALENERROR -403001 유저 데이터 Push 길이와 서비스 구조 길이 불일치 data length error
|
||
ERROR_SHANDABILLING_403002 = 2259, // COMMUDATAERROR -403002 접수한 통신 데이터 패킷 암호화 에러 encrypt error
|
||
// POINTER insert
|
||
ERROR_SHANDABILLING_404001 = 2260, // POINTERNULL -404001 빈 pointer 삽입(pointer가 필요한 곳에서 빈 pointer를 접수할 수 없음) point null
|
||
// 데이터 encode/decode
|
||
ERROR_SHANDABILLING_405001 = 2261, // ENCRYPTERROR -405001 암호화 에러 encrypt error
|
||
ERROR_SHANDABILLING_405002 = 2262, // DECRYPTERROR -405002 암호해제 에러 decrypt error
|
||
// 설정정보
|
||
ERROR_SHANDABILLING_406001 = 2263, // PARAMPATHERROR -406001 cache 혹은 annular 파일 경로 에러 path error
|
||
ERROR_SHANDABILLING_406002 = 2264, // CONFLOADFAILED -406002 설정 파일 로딩 실패 fail to load ini
|
||
ERROR_SHANDABILLING_406003 = 2265, // CONFGETFAILED -406003 설정 서버에서 설정 획득 실패 fail to get ini
|
||
ERROR_SHANDABILLING_406004 = 2266, // RELOADFAILED -406004 로딩 실패 fail to reload
|
||
// 설정서버 접속 정보
|
||
ERROR_SHANDABILLING_407001 = 2267, // ERR_MSG_TYPE -407001 요청 메시지 중 메시지 타입 에러 message type error
|
||
ERROR_SHANDABILLING_407002 = 2268, // IP_NOT_EXIST -407002 요청 메시지 중 hostIP가 없음 hostip not exist
|
||
ERROR_SHANDABILLING_407003 = 2269, // ID_NOT_EXIST -407003 요청 메시지 중 hostId가 없음 hostid not exist
|
||
ERROR_SHANDABILLING_407004 = 2270, // SYS_FLAG_INVALID -407004 OS flag 에러 system flag error
|
||
ERROR_SHANDABILLING_407005 = 2271, // MSG_LEN_ERR -407005 요청 메시지 길이 에러 message length error
|
||
ERROR_SHANDABILLING_407006 = 2272, // CANNOTCONNECTDB -407006 DB 연결 실패 db connect error
|
||
ERROR_SHANDABILLING_407099 = 2273, // UNKNOWNED_ERR -407099 기타 에러 other error
|
||
// 기타
|
||
ERROR_SHANDABILLING_499999 = 2280, // UNDECLARE_ERROR -499999 기타 에러 other error
|
||
|
||
//래더시스템
|
||
ERROR_ALREADY_LADDERROOM = 2300, // 이미 래더방에 있습니다.
|
||
ERROR_INVALIDUSER_LADDERROOM = 2301, // 래더룸에 없는 잘못된 유저입니다.
|
||
ERROR_LADDERSYSTEM_CANT_MATCHINGCANCLE_ROOMSTATE = 2302, // 매칭취소요청을 할 수 없는 State 입니다.
|
||
ERROR_LADDERSYSTEM_CANT_MATCHING_ROOMSTATE = 2303, // 매칭요청을 할 수 없는 State 입니다.
|
||
ERROR_LADDERSYSTEM_NOLEADER = 2304, // 래더방 리더가 아닙니다.
|
||
ERROR_LADDERSYSTEM_CANT_ENTER_LEVELLIMIT = 2305, // 레벨제한으로 래더 입장할 수 없음
|
||
ERROR_LADDERSYSTEM_CANT_EXIST_ROOMLIST_PAGE = 2306, // 존재하지 않는 룸리스트 페이지 요청
|
||
ERROR_LADDERSYSTEM_CANT_EXIST_ROOM = 2307, // 존재하지 않는 방입니다.
|
||
ERROR_LADDERSYSTEM_CANT_OBSERVER_ROOMSTATE = 2308, // 옵져버로 참여할 수 없는 방상태입니다.
|
||
ERROR_LADDERSYSTEM_LADDERPOINT_INVALID = 2309,
|
||
ERROR_LADDERSYSTEM_EXHIBITION_DURATION = 2310, // 시범경기기간임
|
||
ERROR_LADDERSYSTEM_NOTENOUGH_USER = 2311, // 유저수가 충분하지 않음
|
||
ERROR_LADDERSYSTEM_CANT_INVITESTATE = 2312, // 래더방에 초대할 수 없는 상태입니다.
|
||
ERROR_LADDERSYSTEM_CANT_RECVINVITESTATE = 2313, // 대상자가 래더방에 초대받을 수 없는 상태입니다.
|
||
ERROR_LADDERSYSTEM_ROOM_FULLUSER = 2314, // 래더방이 Full임
|
||
ERROR_LADDERSYSTEM_INVALID_INVITEUSER = 2315, // 초대받지 않은 유저임
|
||
ERROR_LADDERSYSTEM_CANT_JOIN_ROOMSTATE = 2316, // 초대받아 Join 할 수 없는 상태
|
||
ERROR_LADDERSYSTEM_INVITE_DENY = 2317, // 초대 거부
|
||
ERROR_LADDERSYSTEM_CANT_INVITE_LEVELLIMIT = 2318, // 레벨제한으로 래더 초대할 수 없음
|
||
ERROR_LADDERSYSTEM_CANT_KICKOUT_ROOMSTATE = 2319, // 유저 내쫒을 수 없는 방상태
|
||
ERROR_LADDERSYSTEM_KICKOUT = 2320, // 방장에 의해 쫒겨남
|
||
ERROR_LADDERSYSTEM_INVITING = 2321, // 초대중인 상태임
|
||
|
||
// 길드전
|
||
ERROR_GUILDWAR_CANTADD_GUILDMEMBER = 2400, // 길드전 기간에는 가입이 불가능합니다.
|
||
ERROR_GUILDWAR_CANTLEAVE_GUILDMEMBER = 2401, // 길드전 기간에는 탈퇴가 불가능합니다.
|
||
ERROR_GUILDWAR_CANTEXILE_GUILDMEMBER = 2402, // 길드전 기간에는 추방이 불가능합니다.
|
||
ERROR_GUILDWAR_CANTDISMISS = 2403, // 길드전 기간에는 길드해체가 불가능합니다.
|
||
ERROR_GUILDWAR_CANTENROLL = 2404, // 길드전 신청기간이 아닙니다.
|
||
ERROR_GUILDWAR_ALREADY_ENROLL = 2405, // 이미 길드전 신청을 했습니다.
|
||
ERROR_GUILDWAR_ALREADY_VOTE = 2406, // 이미 인기투표를 하셨습니다.
|
||
ERROR_GUILDWAR_CANT_VOTE = 2407, // 인기투표를 할수가 없습니다.
|
||
ERROR_GUILDWAR_CANT_COMPENSATION = 2408, // 길드전 예선 보상을 받을 수가 없습니다.
|
||
ERROR_GUILDWAR_NOT_PRE_WIN = 2409, // 길드전 우승팀이 아닙니다.
|
||
ERROR_GUILDWAR_SKILL_COOLTIME = 2410, // 아직 우승스킬을 사용할 수 없습니다.
|
||
|
||
//Cashshop
|
||
ERROR_CASHSHOP_FAIL_PREVIEWEQUIP_GENERAL = 2500, // 코스튬을 장착할 수 없습니다. 다시 시작해 주세요.
|
||
ERROR_CASHSHOP_FAIL_PREVIEWEQUIP_CRC = 2501,
|
||
ERROR_CASHSHOP_FARMVIP_DUPLICATED = 2502, // 농장VIP 중복
|
||
|
||
//Cherry Auth (SG)
|
||
ERROR_CHERRY_AUTHFAIL = 2600, // 싱가폴인증실패
|
||
ERROR_CHERRY_AUTHSUCCESS = 2600, // 성공
|
||
ERROR_CHERRY_AUTHBLOCKED = 2600, // 잠김?
|
||
ERROR_CHERRY_AUTHSUSPENDED = 2600, // 휴면?
|
||
ERROR_CHERRY_AUTHOTHER = 2600, // ?????
|
||
ERROR_CHERRY_NOTALLOWED_SPECIALCHAR = 2600, // 특수문자 사용불가?
|
||
ERROR_CHERRY_NO_SUCH_ACCOUNT = 2600, // 계정 없음
|
||
|
||
//Cherry Billing (SG)
|
||
ERROR_CHERRY_COUPON_ALREADY = 2700, // 쿠폰이 이미 사용된 상태입니다.
|
||
ERROR_CHERRY_COUPON_EXPRIED = 2700, // 쿠폰 기한 만료
|
||
ERROR_CHERRY_COUPON_INVALID = 2700, // 쿠폰 입력 에러
|
||
ERROR_CHERRY_COUPON_AND_CHARACTERID_MISMATCH = 2700, // 쿠폰 캐릭터 아이디 미스매치
|
||
|
||
// 튕긴(?) 파티 복구
|
||
ERROR_CANT_RESTORE_PARTY_STATE = 2800, // 다시 파티 합류 할 수 없는 상태(?)입니다.
|
||
ERROR_CANT_EXSIT_BACKUPPARTYINFO = 2801, // 복구 할 파티 정보가 없음
|
||
|
||
// Pet
|
||
ERROR_CANT_RECALL_PET_STATUS = 2900, // 펫 소환할 수 없는 상태
|
||
ERROR_PETNAME_SHORTAGE_2 = 2901, // 펫이름이 짧아 생성 할 수 없음 (2자이상)
|
||
ERROR_PETNAME_SHORTAGE_4 = 2902, // 펫이름이 짧아 생성 할 수 없음 (4자이상)
|
||
ERROR_PETNAME_PROHIBIT = 2903, // 허용하지 않는 문자가 존재합니다.
|
||
ERROR_PETFOOD_FAIL_MAX = 2904, // 만복도가 가득차서 먹을 수 없음
|
||
ERROR_PETFOOD_FAIL_NORMAL = 2905, // 일반 먹이는 90%이상 먹을수 없음.
|
||
|
||
// Gamania - AUTH, BILLING
|
||
ERROR_ASIASOFT_INVALID_REQUEST = 3000, // 잘못된 요청
|
||
ERROR_ASIASOFT_INVALID_USERID = 3001, // 존재하지 않는 계정입니다.
|
||
ERROR_ASIASOFT_USER_ID_NOT_FOUND = 3002, // 유저아이디가 없음(위와 다른게 머임? ㅋ 일단 리턴코드가 존재하므로)
|
||
ERROR_ASIASOFT_WORNG_PASSWORD = 3003, // 패스워드가 틀렸다함
|
||
ERROR_ASIASOFT_DISABLE_USER = 3004, // 이게 블럭인가? (Optional)이라고 붙어있음
|
||
ERROR_ASIASOFT_DATABASE_ERROR = 3005, // 아지아솝흐트 뒤뷔에러
|
||
ERROR_ASIASOFT_UNEXPECTED_ERROR = 3006, // 아지아솝흐트 예기치 않은 에러
|
||
ERROR_ASIASOFT_OTP_FAILED = 3007, // OTP안데때
|
||
|
||
ERROR_ASIASOFT_NO_SUCH_SERVICE = 3008, // 존재하지 않는 서비스
|
||
ERROR_ASIASOFT_NO_ENOUGH_POINT = 3009, // 포인트가 부족합니다.
|
||
ERROR_ASIASOFT_WRONG_EVENTOTP = 3010, // EVENT OTP가 틀렸습니다.
|
||
ERROR_ASIASOFT_WRONG_OTP = 3011, // OTP가 틀렸습니다.
|
||
ERROR_ASIASOFT_ACCOUNT_LOCK = 3012, // 계정이 잠겨 있습니다.
|
||
ERROR_ASIASOFT_SERVICE_NOT_AVAILABLE = 3013, // 게임서비스가 활성화 되지 않았습니다.
|
||
ERROR_ASIASOFT_TIME_OUT = 3014, // 타임아웃
|
||
ERROR_ASIASOFT_CONTRACT_BLOCK = 3015, // 계약종료
|
||
ERROR_ASIASOFT_ALREADY_LOGIN = 3016, // 이미 로그인 되어있음.
|
||
ERROR_ASIASOFT_ALREADY_WAITING = 3017, // 이미 인증요청중
|
||
ERROR_ASIASOFT_SPECIAL_CHAR = 3018, // 특수문자는 사용할 수 없습니다.
|
||
|
||
//Donation
|
||
ERROR_NOT_AVAILABLE_DONATION_TIME = 3100, // 기부를 할 수 없는 시간입니다.
|
||
|
||
//Potential
|
||
ERROR_EXCHANGEPOTENTIAL_OK = 3200, // 성공~
|
||
ERROR_EXCHANGEPOTENTIAL_FAIL = 3201, // 잠재력 교환은 전반적인 에러 실패!
|
||
ERROR_EXCHANGEPOTENTIAL_EXTRACT_ITEM_VALIDATION_FAIL = 3202, // 잠재력을 뽑을 아이템 확인 실패
|
||
ERROR_EXCHANGEPOTENTIAL_INJECT_ITEM_VALIDATION_FAIL = 3203, // 잠재력을 넣을 아이템 확인 실패
|
||
ERROR_EXCHANGEPOTENTIAL_ITEM_COMPARE_VALIDATION_FAIL = 3204, // 아이템간 비교 확인 실패(랜크, 파츠, 타입등)
|
||
ERROR_EXCHANGEPOTENTIAL_MOVEABLECOUNT_EXPIRED = 3205, // 포텐셜이동 횟수 제한
|
||
|
||
// ExchangeEnchant
|
||
ERROR_EXCHANGE_ENCHANT_FAIL = 3206, // 강화 이동 실패
|
||
ERROR_EXCHANGE_ENCHANT_REQ_MONEY = 3207, // 필요 소지금 부족
|
||
ERROR_EXCHANGE_ENCHANT_REQ_ITEM = 3208, // 필요 아이템 부족
|
||
|
||
// BestFriend
|
||
ERROR_BESTFRIEND_REGISTFAIL_DESTUSER_SITUATION_NOTALLOWED = 3300, // 절친 등록을 할 수 있는 상태가 아님
|
||
ERROR_BESTFRIEND_NOTEXIST_OPPOSITEUSER = 3301, // 상대방이 존재하지 않음
|
||
ERROR_BESTFRIEND_REFUESED_REGISTRATION = 3302, // 등록 거절
|
||
ERROR_BESTFRIEND_ALREADY_REGISTERED = 3303, // 이미 절친상태입니다.
|
||
ERROR_BESTFRIEND_NOT_REGISTERED = 3304, // 절친상태가 아닙니다.
|
||
ERROR_BESTFRIEND_NOTSEARCH = 3305, // 유저를 찾지 못했습니다
|
||
ERROR_BESTFRIEND_NOTHAVE_REGISTITEM = 3306, // 절친 등록서를 가지고 있지 않습니다.
|
||
ERROR_BESTFRIEND_HAVE_REWARDITEM = 3307, // 이미 절친 보상 아이템을 가지고 있습니다.
|
||
ERROR_BESTFRIEND_SELFSEARCH = 3308, // 자기자신을 절친검색할 수 없습니다.
|
||
ERROR_BESTFRIEND_SELFREGIST = 3309, // 자기자신을 절친등록할 수 없습니다.
|
||
|
||
// Kreon - AUTH, BILLING
|
||
ERROR_KREON_INVALID_REQUEST = 3400, // 잘못된 요청
|
||
ERROR_KREON_INVALID_USERID = 3401, // 존재하지 않는 계정입니다.
|
||
ERROR_KREON_WRONG_PASSWORD = 3402, // 패스워드가 틀렸다함
|
||
ERROR_KREON_BLOCK_GEMSCOOL = 3403, // GEMSCOOL 블럭(모든 게임 블럭)
|
||
ERROR_KREON_BLOCK_DN = 3404, // 드네 블럭(드네만 블럭)
|
||
ERROR_KREON_ACCOUNT_LOCKED = 3405, // 계정 잠김(로그인 실패 5번 이상시)
|
||
ERROR_KREON_INTERNAL_ERR = 3406, // 크레온 내부 오류
|
||
ERROR_KREON_INTERNAL_DB_ERR = 3407, // 크레온 내부 DB 에러
|
||
|
||
ERROR_KREON_NOT_ALLOWD_IP = 3408, // 허용되지 않은 IP
|
||
ERROR_KREON_NO_ENOUGH_POINT = 3409, // 잔액 부족
|
||
ERROR_KREON_LIMIT_AMOUNT = 3410, // 회원의 등급에 설정 되어 있는 월 결제 한도 금액을 초과 했을 경우
|
||
ERROR_KREON_PG_LIMIT_AMOUNT = 3411, // PG의 결제 한도 금액을 초과 했을 경우
|
||
ERROR_KREON_BLOCK_PCCAFE = 3412, // 접속이 차단되어 있는 PC방입니다. 관련 문의는 겜스쿨 프리미엄 와르넷 관리자에게 문의하시기 바랍니다.
|
||
|
||
// 중복 로그인 메세지
|
||
ERROR_DUPLICATEUSER_INGAME = 3413, // 다른 장소에서 로그인 되어 접속이 종료됩니다.
|
||
|
||
// MailRU - Auth
|
||
ERROR_MAILRU_INVALID_REQUEST = 3500, // 잘못된 요청
|
||
ERROR_MAILRU_WORNG_PASSWORD = 3501, // ID/OTP 해시가 틀림(인증실패)
|
||
ERROR_MAILRU_BLOCK = 3502, // 밴 당한 유저
|
||
ERROR_MAILRU_ERROR = 3503, // AUth Error
|
||
|
||
// EU - Auth
|
||
ERROR_EUAUTH_SPECIALCHAR = ERROR_ASIASOFT_SPECIAL_CHAR, // ERROR_ASIASOFT_SPECIAL_CHAR = 3018, // 특수문자는 사용할 수 없습니다. - 어차피 다 같은 UISTRING 아시아소프트꺼 갔다 씁니다.
|
||
|
||
// 알테이아 대륙탐험 메세지
|
||
ERROR_ALTEIAWORLD_ENTERLIMITTIME = 3600, // 진입불가 시간
|
||
ERROR_ALTEIAWORLD_NOTEXISTUSER = 3601, // 유저가 없습니다.
|
||
|
||
// 탈리스만 메세지
|
||
ERROR_TALISMAN_FAIL = 3700, // 탈리스만 에러
|
||
ERROR_TALISMAN_FAIL_LOACTE = 3701, // 탈리스만 에러, 해당위치에서 사용할 수 없음
|
||
ERROR_TALISMAN_DUPLICATE = 3702, // 같은 종류 탈리스만 중복 장착 오류
|
||
ERROR_TALISMAN_EQUIP_FAIL = 3703, // 탈리스만 장착 실패
|
||
ERROR_TALISMAN_SLOT_ALERADY_OPEN = 3704, // 슬롯이 이미 열려있음
|
||
ERROR_TALISMAN_SLOT_NOT_OPEND = 3705, // 탈리스만 슬롯이 오픈되지 않았음
|
||
ERROR_TALISMAN_SLOT_NOT_SERVICE = 3706, // 서비스 되지 않는 슬롯임
|
||
ERROR_TALISMAN_SLOT_LIMITLEVEL = 3707, // 캐릭레벨이 낮아 슬롯에 넣을 수 없다
|
||
ERROR_TALISMAN_LIMITLEVEL = 3708, // 캐릭레벨이 낮아 장착할 수 없다
|
||
|
||
// DWC 메세지
|
||
ERROR_DWC_FAIL = 3800, // DWC 에러
|
||
ERROR_DWC_PERMIT_FAIL = 3801, // DWC 권한이 없음
|
||
ERROR_DWC_ALREADY_HASTEAM = 3802, // 이미 팀에 가입되어 있음
|
||
ERROR_DWC_PROHIBITWORD = 3803, // 사용할 수 없는 이름
|
||
ERROR_DWC_CANT_INVITE_YOURESELF = 3804, // 스스로를 초대할 수 없음
|
||
ERROR_DWC_DUPLICATION_JOB = 3805, // 이미 같은 직업이 팀에 존재
|
||
ERROR_DWC_CANTADD_TEAMMEMBER = 3806, // 더이상 초대할 수 없음
|
||
ERROR_DWC_CANTACCEPT_TEAMINVITATION = 3807, // 대상이 현재 팀 초대를 받을 수 없음
|
||
ERROR_DWC_CANTACCEPT_JOINTEAM = 3808, // 팀장이 가입을 받을 수 없는상태
|
||
ERROR_DWC_REFUESED_TEAMINVITATION = 3809, // 팀 초대를 거절했음
|
||
ERROR_DWC_NOT_DWC_CHARACTER = 3810, // 대상이 존재하지 않거나 DWC 케릭터가 아닙니다.
|
||
ERROR_DWC_HAVE_NOT_TEAM = 3811, // 팀에 소속되어 있지 않음
|
||
ERROR_DWC_HAS_NO_AUTHORITY = 3812, // 명령 권한이 없음
|
||
ERROR_DWC_NOTEXIST_TEAMINFO = 3813, // 팀정보가 존재하지 않음
|
||
ERROR_DWC_NOT_SAME_TEAM = 3814, // 같은 팀이 아닙니다.
|
||
ERROR_DWC_LADDER_MATCH_CLOSED = 3815, // 매칭 가능한 시간이 아닙니다.
|
||
ERROR_DWC_CLOSED = 3816, // DWC 기간이 아닙니다.
|
||
ERROR_DWC_LIMIT = 3817, // DWC 케릭터는 사용할 수 없습니다.
|
||
ERROR_DWC_CANT_LEAVE_TEAM = 3818, // 팀원이 플레이 중일때 팀을 탈퇴하거나 해체할 수 없음
|
||
|
||
// Seed 메시지
|
||
ERROR_SEED_MAXPOINT = 3900, // 더 이상 시드를 보유할 수 없습니다.
|
||
ERROR_SEED_INSUFFICIENCY_SEEDPOINT = 3901, // 시드포인트부족
|
||
ERROR_CASHSHOP_SEED_DISABLE = 3902, // 시드로 살 수 없는 아이템입니다.
|
||
|
||
//etc
|
||
// Error메세지
|
||
ERROR_NOT_AVAILABLE_CHECK_RANKING_TIME = 7500, // 초기화 시간 동안에는 랭킹 정보를 확인할 수 없음(다크레어)
|
||
ERROR_FARM_ENTERANCE_CONDITION = 7531, // 농장구역 입장조건을 만족하지 못했습니다. 다시 한번 입장조건을 확인해주세요.
|
||
|
||
//PrivateChatChannel
|
||
ERROR_ALREADY_CHANNELNAME = 7810, // 이미 존재하는 채널 이름입니다.
|
||
ERROR_INVALID_CHANNELNAME = 7811, // 잘못된 형식의 채널이름입니다.
|
||
ERROR_INVALID_CHANNELNAMELENGTH = 7812, // 2-10자 이내의 채널 제목을 입력해주세요
|
||
ERROR_DUPLICATE_CHANNELJOIN = 7813, // 1개 이상의 채널에 참여할 수 없습니다.
|
||
ERROR_NOTEXIST_CHANNELNAME = 7815, // 존재하지 않는 채널 이름입니다.
|
||
ERROR_INVALID_PRIVATECHATCHANNELPASSWORD = 7819, // 잘못된 비밀번호를 입력하셨습니다.
|
||
ERROR_NOTEXIST_INVITEUSER = 7820, // 초대할 유저가 존재하지 않습니다.
|
||
ERROR_ALREADY_JOINCHANNEL = 7821, // 이미 채널에 참여하고 있습니다.
|
||
ERROR_INVALID_PIRVATECHATMEMBERNAME = 7824, // 추방할 유저가 존재하지 않습니다.
|
||
ERROR_NOTEXIST_CHANNELMEMBER = 7825, // 방장으로 위임할 유저가 존재하지 않습니다.
|
||
ERROR_MAX_CHANNELMEMBER = 7828, // 채널의 제한인원을 초과하였습니다.
|
||
|
||
#if defined( PRE_ADD_PVP_COMBOEXERCISE )
|
||
// PvP - ComboExerciseMode
|
||
ERROR_CANT_USE_RECALLMONSTER = 7938, // 이동 중에는 사용할 수 없습니다.
|
||
#endif // #if defined( PRE_ADD_PVP_COMBOEXERCISE )
|
||
#if defined(PRE_ADD_EQUIPLOCK)
|
||
ERROR_ITEM_LOCKITEM_NOTUPGRADE = 8388, // 잠금 상태에서는 강화가 불가능합니다.
|
||
ERROR_ITEM_LOCKITEM_NOTMOVE = 8389, // 잠금 상태에서는 장비 변경이 불가능 합니다. 잠금을 해제한 후 시도해주세요
|
||
#endif // #if defined(PRE_ADD_EQUIPLOCK)
|
||
|
||
// 꽉차서 끼어넣기 애매한거...
|
||
ERROR_GIFT_COUNTOVER_GLYPH = 10000, // (문장)더이상 받을 수 없다
|
||
ERROR_GIFT_COUNTOVER_FARMEXTEND = 10001, // (농지확장)더이상 받을 수 없다.
|
||
ERROR_CANT_USE_ITEM_DAYILY = 10002, // 피로도아이템 횟수체크
|
||
ERROR_ITEM_RANDOMMIX_FAIL_MONEY = 10003, // 수수료가 부족하여 합성할 수 없습니다.
|
||
ERROR_ITEM_RANDOMMIX_FAIL_MIXER = 10004, // 올바른 합성기가 사용되지 않아 합성할 수 없습니다.
|
||
#if defined( PRE_ADD_PVP_EXPUP_ITEM )
|
||
ERROR_CANT_USE_PVPEXPUPITEM_DAILY = 10005, // 콜로세움 경험치 증가 아이템 일일 사용 횟수 초과
|
||
ERROR_CANT_USE_PVPEXPUPITEM_LEVEL = 10006, // 콜로세움 경험치 증가 아이템 계급 미달
|
||
#endif // #if defined( PRE_ADD_PVP_EXPUP_ITEM )
|
||
ERROR_GIFT_COUNTOVER_TALISMAN = 10007, // (탈리스만)더이상 받을 수 없다
|
||
|
||
// 디비 에러값 영역 100000 ~ 199999 (이건 쓰지마세요)
|
||
ERROR_SECONDAUTH_CHECK_MAXFAILED = 101125, // 연속적으로 최대설정 수치 이상 틀려서 에러.
|
||
ERROR_SECONDAUTH_CHECK_OLDPWINVALID = 101126, // 기존 2차 인증 비밀번호가 일치하지 않습니다.
|
||
ERROR_SECONDAUTH_CHECK_FAILED = 101127, // 2차 인증 비밀번호가 일치하지 않습니다.
|
||
ERROR_SECONDAUTH_NOTEXIST = 101128, // 2차 인증 비밀번호가 설정되어 있지 않습니다.
|
||
ERROR_DB_CHANGENAME_NEXTDAY = 101191, // 캐릭터 이름을 다시 변경하시려면 7일간 기다려야 합니다.
|
||
ERROR_DB_RESTRICTED_IP = 101194, // 아이피당 접속제한 갯수초과
|
||
ERROR_IS_NOT_DOORS_ACCOUNT = 101115, // 도어스인증되어진 계정이 아님
|
||
ERROR_ALREADY_EVENTREWARDRECEIVER = 101203, // 이미 이벤트 보상을 받은 캐릭터입니다.
|
||
ERROR_ALTEIAWORLD_AGAINSENDTICKET = 103369, // 해당 캐릭터에겐 이미 보물지도 조각을 보냈습니다
|
||
ERROR_ALTEIAWORLD_NOTEXIST_SENDCHARACTER = 103370, // 보내는 캐릭터가 존재하지 않습니다.
|
||
ERROR_ALTEIAWORLD_NOTEXIST_RECVCHARACTER = 103371, // 받을 캐릭터가 존재하지 않습니다.
|
||
ERROR_ALTEIAWORLD_SENDTICKET_MAXCOUNT = 103372, // 보물지도를 보낼수 있는 최대수량이 넘었습니다.
|
||
|
||
ERROR_DB_DWC_PERMIT_FAIL = 103357, // DWC 케릭터가 아니거나 존재하지 않음
|
||
ERROR_DB_DWC_NAME_ALREADYEXIST = 103358, // 이미 존재하는 DWC 팀명
|
||
ERROR_DB_DWC_ALREADY_HASTEAM = 103359, // 이미 팀에 가입되어 있음
|
||
ERROR_DB_DWC_USER_NOT_FOUND = 103360, // 존재하지 않는 케릭터
|
||
ERROR_DB_DWC_TEAM_NOT_FOUND = 103361, // 존재하지 않는 팀
|
||
ERROR_DB_DWC_DEL_AFTER_LEAVE_DWCTEAM = 103376, // DWC 팀에 가입되어있는 케릭터는 삭제할 수 없음
|
||
};
|
||
|
||
enum eServerMsgIndex
|
||
{
|
||
SERVERMSG_INDEX125 = 125, // 피로도를 다 사용해서 길드 축제 미션은 더 이상 완료되지 않습니다
|
||
SERVERMSG_INDEX626 = 626, // 레벨 업 보상 상자를 획득 했습니다. 캐시 선물함을 확인하세요.
|
||
SERVERMSG_INDEX6211 = 6211, // PC방 대여 아이템이 제거되었습니다. 장착하고 있었던 경우, 장비 아이템이 사라진 상태가 되오니, 꼭 확인해 주세요.
|
||
SERVERMSG_INDEX7884 = 7884, // 용자님의 귀환을 환영합니다.지금 바로 'I'키를 눌러 인벤트리 창을 열어서 캐시 탭을 확인해 보세요!
|
||
};
|
||
|
||
enum eAccountLevel
|
||
{
|
||
AccountLevel_New = 10, // 신입
|
||
AccountLevel_Intern = 15, // 인턴
|
||
AccountLevel_Monitoring = 20, // 모니터링
|
||
AccountLevel_Master = 30, // 마스터
|
||
AccountLevel_QA = 99, // QA
|
||
AccountLevel_Developer = 100, // 개발자
|
||
AccountLevel_DWC = 110, // DWC 대회용 계정
|
||
};
|
||
|
||
enum eAccountCmdAuth //int형..bit연산
|
||
{
|
||
CmdAuth_New = 1,
|
||
CmdAuth_Intern = 2,
|
||
CmdAuth_Monitoring = 4,
|
||
CmdAuth_Master = 8,
|
||
CmdAuth_QA = 16,
|
||
CmdAuth_Developer = 32,
|
||
};
|
||
|
||
//party
|
||
enum ePartyRefreshSubject
|
||
{
|
||
PARTYREFRESH_NONE, //딱히 표기 및 알림이 필요 없는 경우 (예:게임서버에 있다가 빌리지에 재진입시, 파티생성시 등)
|
||
PARTYREFRESH_CHANGE_LEADER,
|
||
PARTYREFRESH_MODIFY_INFO,
|
||
PARTYREFRESH_RETURNVILLAGE, //빌리지로 돌아올경우
|
||
};
|
||
|
||
enum eMapType
|
||
{
|
||
MAPTYPE_VILLAGE,
|
||
MAPTYPE_FIELD,
|
||
};
|
||
|
||
enum eDungeonClearType
|
||
{
|
||
DUNGEONCLEAR_F = 0,
|
||
DUNGEONCLEAR_D,
|
||
DUNGEONCLEAR_C,
|
||
DUNGEONCLEAR_B,
|
||
DUNGEONCLEAR_A,
|
||
DUNGEONCLEAR_S,
|
||
DUNGEONCLEAR_SS,
|
||
DUNGEONCLEAR_SSS,
|
||
};
|
||
|
||
enum eItemMoveType
|
||
{
|
||
MoveType_Equip = 1, // EQUIP <-> EQUIP
|
||
MoveType_Inven = 2, // INVEN <-> INVEN
|
||
MoveType_Ware = 3, // WARE <-> WARE
|
||
MoveType_QuestInven = 4, // QUEST INVEN <-> QUEST INVEN
|
||
MoveType_EquipToInven = 5, // EQUIP -> INVEN
|
||
MoveType_InvenToEquip = 6, // INVEN -> EQUIP
|
||
MoveType_InvenToWare = 7, // INVEN -> WARE
|
||
MoveType_WareToInven = 8, // WARE -> INVEN
|
||
MoveType_Pickup = 9, // 줍기
|
||
MoveType_Drop = 10, // 휴지통에 버리기
|
||
MoveType_Glyph = 11, // GLYPH <-> GLYPH
|
||
MoveType_GlyphToInven = 12, // GLYPH -> INVEN
|
||
MoveType_InvenToGlyph = 13, // INVEN -> GLYPH
|
||
|
||
// 길드창고
|
||
MoveType_GuildWare = 14, // GUILDWARE <-> GUILDWARE
|
||
MoveType_InvenToGuildWare = 15, // INVEN -> GUILDWARE
|
||
MoveType_GuildWareToInven = 16, // GUILDWARE -> INVEN
|
||
#ifdef PRE_ADD_JOINGUILD_SUPPORT
|
||
MoveType_MailToGuildWare = 17, // GuildMail -> GuildWare
|
||
#endif //#ifdef PRE_ADD_JOINGUILD_SUPPORT
|
||
#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
||
// 서버 창고
|
||
MoveType_InvenToServerWare = 18, // Inven -> ServerWare
|
||
MoveType_ServerWareToInven = 19, // ServerWare -> Inven
|
||
MoveType_CashToServerWare = 20, // Cash -> ServerWare
|
||
MoveType_ServerWareToCash = 21, // ServerWare -> Cash
|
||
|
||
#endif //#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
||
|
||
// 캐쉬쪽
|
||
MoveType_CashEquip = 30, // EQUIP <-> EQUIP
|
||
MoveType_CashInven = 31, // INVEN <-> INVEN
|
||
MoveType_CashEquipToCashInven = 32, // EQUIP -> INVEN
|
||
MoveType_CashInvenToCashEquip = 33, // INVEN -> EQUIP
|
||
MoveType_CashGlyph = 34, // GLYPH <-> GLYPH
|
||
MoveType_CashGlyphToCashInven = 35, // GLYPH -> INVEN
|
||
MoveType_CashInvenToCashGlyph = 36, // INVEN -> GLYPH
|
||
|
||
// 탈것
|
||
MoveType_VehicleBodyToVehicleInven = 40, // VehicleBody <-> VehicleInven
|
||
MoveType_VehicleInvenToVehicleBody = 41, // VehicleInven <-> VehicleBody
|
||
MoveType_VehiclePartsToCashInven = 42, // VehicleParts <-> CashInven
|
||
MoveType_CashInvenToVehicleParts = 43, // CashInven <-> VehicleParts
|
||
|
||
// 펫
|
||
MoveType_PetBodyToPetInven = 50, // PetBody <-> PetInven
|
||
MoveType_PetInvenToPetBody = 51, // PetInven <-> PetBody
|
||
MoveType_PetPartsToCashInven = 52, // PetParts <-> CashInven
|
||
MoveType_CashInvenToPetParts = 53, // CashInven <-> PetParts
|
||
|
||
// 탈리스만
|
||
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
||
MoveType_Talisman = 60, // TALISMAN <-> TALISMAN
|
||
MoveType_TalismanToInven = 61, // TALISMAN -> INVEN
|
||
MoveType_InvenToTalisman = 62, // INVEN -> TALISMAN
|
||
#endif
|
||
|
||
// 인벤에 새롭게 아이템 들어오는거 타입 (여기다 꼽사리..)
|
||
CREATEINVEN_PICKUP = 1, // 주워서 들어오는 경우
|
||
CREATEINVEN_QUEST, // 퀘스트 스크립트를 통해서 들어오는 경우
|
||
CREATEINVEN_ETC, // 위의 경우 이외에 나머지 경우
|
||
CREATEINVEN_PICKUP_DICE, // 귀속아이템 주사위 굴려서 얻는 경우
|
||
CREATEINVEN_REPURCHASE, // 재구매
|
||
};
|
||
|
||
enum eEquipType
|
||
{
|
||
EQUIP_FACE, // 얼굴
|
||
EQUIP_HAIR, // 머리
|
||
EQUIP_HELMET, // 헬멧
|
||
EQUIP_BODY, // 상의
|
||
EQUIP_LEG, // 하의
|
||
EQUIP_HAND, // 손
|
||
EQUIP_FOOT, // 발
|
||
EQUIP_NECKLACE,
|
||
EQUIP_EARRING,
|
||
EQUIP_RING1,
|
||
EQUIP_RING2,
|
||
EQUIP_WEAPON1, // 무기
|
||
EQUIP_WEAPON2,
|
||
|
||
EQUIPMAX, // 일반아이템 장비용
|
||
};
|
||
|
||
enum eCashEquipType
|
||
{
|
||
CASHEQUIPMIN,
|
||
CASHEQUIP_HELMET = CASHEQUIPMIN, // 헬멧(투구)
|
||
CASHEQUIP_BODY, // 상의
|
||
CASHEQUIP_LEG, // 하의
|
||
CASHEQUIP_HAND, // 손(장갑)
|
||
CASHEQUIP_FOOT, // 발(신발)
|
||
CASHEQUIP_NECKLACE, // 목걸이
|
||
CASHEQUIP_EARRING, // 귀걸이
|
||
CASHEQUIP_RING1, // 반지
|
||
CASHEQUIP_RING2, // 반지
|
||
CASHEQUIP_WING, // 날개/
|
||
CASHEQUIP_TAIL, // 꼬리
|
||
CASHEQUIP_FACEDECO, // 얼굴장식
|
||
CASHEQUIP_FAIRY, // 정령
|
||
CASHEQUIP_WEAPON1, // 무기
|
||
CASHEQUIP_WEAPON2,
|
||
CASHEQUIP_EFFECT, // 공통 이펙트 (탈것, 펫 등등...)
|
||
CASHEQUIPMAX,
|
||
|
||
HIDEHELMET_BITINDEX = 31, // 캐시장비 전환 마지막 비트플래그(VIEWCASHEQUIPMAX_BITSIZE * 8 - 1)
|
||
};
|
||
|
||
enum eItemRank
|
||
{
|
||
ITEMRANK_D, // NORMAL
|
||
ITEMRANK_C, // MAGIC
|
||
ITEMRANK_B, // RARE
|
||
ITEMRANK_A, // EPIC
|
||
ITEMRANK_S, // UNIQUE
|
||
ITEMRANK_SS, // HEROIC
|
||
ITEMRANK_SSS, // NAMED
|
||
ITEMRANK_MAX,
|
||
ITEMRANK_NONE, // Note : 파티 루팅 구분 용도로만 쓰임.
|
||
};
|
||
|
||
enum eItemPositionType
|
||
{
|
||
ITEMPOSITION_NONE,
|
||
ITEMPOSITION_EQUIP = 1, // 장비창
|
||
ITEMPOSITION_INVEN, // 인벤창
|
||
ITEMPOSITION_WARE, // 창고창
|
||
ITEMPOSITION_QUESTINVEN, // 퀘스트 인벤창
|
||
// Cash관련
|
||
ITEMPOSITION_CASHEQUIP, // 장비창(캐쉬)
|
||
ITEMPOSITION_CASHINVEN, // 인벤창(캐쉬)
|
||
|
||
ITEMPOSITION_CASHREMOVE, // 인벤창(캐쉬삭제)
|
||
|
||
ITEMPOSITION_GLYPH, // 문장
|
||
ITEMPOSITION_VEHICLE, // 탈것인벤
|
||
ITEMPOSITION_SERVERWARE, // 서버창고
|
||
ITEMPOSITION_SERVERWARECASH, // 서버캐쉬창고
|
||
|
||
ITEMPOSITION_TALISMAN, // 탈리스만
|
||
|
||
ITEMPOSITION_GUILD = 1, // 길드창고창
|
||
};
|
||
|
||
enum eGlyphType
|
||
{
|
||
GLYPETYPE_NONE = 0,
|
||
GLYPETYPE_ENCHANT = 1,
|
||
GLYPETYPE_SKILL = 2,
|
||
GLYPETYPE_SPECIALSKILL = 3,
|
||
GLYPHTYPE_ALL = 4,
|
||
#if defined(PRE_ADD_DRAGON_FELLOWSHIP_GLYPH)
|
||
GLYPHTYPE_DRAGON = 5, // 드래곤 원정대
|
||
#endif // #if defined(PRE_ADD_DRAGON_FELLOWSHIP_GLYPH)
|
||
};
|
||
|
||
enum eGlyph
|
||
{
|
||
GLYPH_ENCHANT1, // 문장 - 강화
|
||
GLYPH_ENCHANT2,
|
||
GLYPH_ENCHANT3,
|
||
GLYPH_ENCHANT4,
|
||
GLYPH_ENCHANT5,
|
||
GLYPH_ENCHANT6,
|
||
GLYPH_ENCHANT7,
|
||
GLYPH_ENCHANT8,
|
||
GLYPH_SKILL1, // 문장 - 스킬
|
||
GLYPH_SKILL2,
|
||
GLYPH_SKILL3,
|
||
GLYPH_SKILL4,
|
||
GLYPH_SPECIALSKILL, // 문장 - 특수스킬
|
||
GLYPH_CASH1, // 문장 - 캐쉬
|
||
GLYPH_CASH2,
|
||
GLYPH_CASH3,
|
||
// GLYPHMAX 와 CASH 사이에 다른거 들어오면 안됩니다. -- 김밥 --
|
||
#if defined(PRE_ADD_DRAGON_FELLOWSHIP_GLYPH)
|
||
GLYPH_DRAGON1,
|
||
GLYPH_DRAGON2,
|
||
GLYPH_DRAGON3,
|
||
GLYPH_DRAGON4,
|
||
#endif //#if defined(PRE_ADD_DRAGON_FELLOWSHIP_GLYPH)
|
||
GLYPHMAX,
|
||
};
|
||
|
||
#if defined(PRE_ADD_DRAGON_FELLOWSHIP_GLYPH)
|
||
const int GLYPH_CASH_TOTAL_MAX = 3;
|
||
const int GLYPH_DRAGON_TOTAL_MAX = 4;
|
||
#endif //#if defined(PRE_ADD_DRAGON_FELLOWSHIP_GLYPH)
|
||
|
||
enum eTalisman
|
||
{
|
||
TALISMAN_CASH1 = 0,
|
||
TALISMAN_CASH2 = 1,
|
||
TALISMAN_CASH3 = 2,
|
||
TALISMAN_CASH4 = 3,
|
||
TALISMAN_CASH_MAX = TALISMAN_CASH4,
|
||
|
||
TALISMAN_BASIC_START = 4,
|
||
TALISMAN_BASIC_END = 11,
|
||
|
||
TALISMAN_EXPANSION_START = 12,
|
||
|
||
TALISMAN_MAX = 28,
|
||
|
||
// 확장슬롯을 32개 이상 확장하려면 CDNUserItem::m_nTalismanOpenFlag 의 자료구조형식을 변경해야 합니다.
|
||
TALISMAN_EXPANSION_SLOT_LIMIT = 32,
|
||
};
|
||
|
||
enum eTalismanSlotType
|
||
{
|
||
TALISMAN_BASIC = 0,
|
||
TALISMAN_EXPANSION = 1,
|
||
TALISMAN_CASH_EXPANSION = 2,
|
||
};
|
||
|
||
enum ePartyItemLootRule
|
||
{
|
||
ITEMLOOTRULE_NONE = 0,
|
||
ITEMLOOTRULE_RANDOM,
|
||
ITEMLOOTRULE_LEADER,
|
||
ITEMLOOTRULE_INORDER,
|
||
ITEMLOOTRULE_OWNER,
|
||
ITEMLOOTRULE_MAX,
|
||
};
|
||
|
||
enum eChatType
|
||
{
|
||
CHATTYPE_NORMAL = 1, // 일반적인 대화
|
||
CHATTYPE_PARTY, // 파티 대화
|
||
CHATTYPE_PRIVATE, // 귓속말
|
||
CHATTYPE_GUILD, // 길드 대화 - 길드패킷은 구조가 달라서 SCChat구조체 대신 S
|
||
CHATTYPE_CHANNEL, // 채널 대화(거래채널등은 추가가 될까요?)
|
||
CHATTYPE_SYSTEM, // 시스템
|
||
CHATTYPE_WORLD, // 월드 대화
|
||
CHATTYPE_NOTICE, // 공지
|
||
CHATTYPE_TEAMCHAT, // 팀채팅
|
||
|
||
//CHATTYPE_NOTICEZONE, // 맵공지
|
||
CHATTYPE_GM, // 운영자 대화
|
||
CHATTYPE_PARTY_GM, // 운영자 파티 대화
|
||
CHATTYPE_PRIVATE_GM, // 운영자 귓말
|
||
CHATTYPE_DICE,
|
||
CHATTYPE_CHATROOM, // 채팅방 메시지
|
||
CHATTYPE_RAIDNOTICE, // 공격대 공지
|
||
CHATTYPE_BLIND, // 블라인드 보내는 메세지
|
||
CHATTYPE_GUILDWAR, // 길드전 모드 내에서 쓰이는 메세지
|
||
CHATTYPE_PRIVATE_MOBILE,// 모바일 귓말
|
||
CHATTYPE_PRIVATECHANNEL,// 사설채널 대화
|
||
CHATTYPE_GUILD_MOBILE, // 모바일 길드 대회
|
||
|
||
//CHATTYPE_DWCZONE
|
||
CHATTYPE_DWC_PRIVATE, // DWC 케릭간 귓속말 -> 서버 사이드에서만 사용합니다. 클라이언트에겐 CHATTYPE_PRIVATE 으로 전송
|
||
CHATTYPE_DWC_TEAM, // DWC 팀 채팅
|
||
|
||
CHATTYPE_WORLD_POPMSG, // 월드 대화(전령 붉은새)
|
||
|
||
// 전체적인 시스템 메시지
|
||
WORLDCHATTYPE_ENCHANTITEM = 1, // 강화아이템
|
||
WORLDCHATTYPE_MISSION, // 미션
|
||
WORLDCHATTYPE_CHARMITEM, // 매력아이템
|
||
WORLDCHATTYPE_DONATION,
|
||
WORLDCHATTYPE_NAMEDITEM, // 네임드아이템획득메시지
|
||
WORLDCHATTYPE_CHAOSITEM, // 카오스아이템
|
||
WORLDCHATTYPE_BESTFRIEND, // 절친 알림
|
||
WORLDCHATTYPE_CHOICEITEM, // 초이스아이템
|
||
WORLDCHATTYPE_DIRECTPARTYBUFF, // 파티원버프아이템(파티원들에게만 전송)
|
||
WORLDCHATTYPE_COSMIX, // 코스튬합성
|
||
WORLDCHATTYPE_COSMIX888, // 코스튬합성
|
||
};
|
||
|
||
enum eQuickSlotType
|
||
{
|
||
QUICKSLOTTYPE_NONE, // none
|
||
QUICKSLOTTYPE_ITEM, // item
|
||
QUICKSLOTTYPE_SKILL, // skill
|
||
QUICKSLOTTYPE_GESTURE, // Gesture
|
||
QUICKSLOTTYPE_SECONDARYSKILL, // SecondarySkill(낚시, 요리)
|
||
QUICKSLOTTYPE_VEHICLE_PET,
|
||
};
|
||
|
||
struct MailType
|
||
{
|
||
enum ReadState
|
||
{
|
||
NoRead = 0, // 읽지않은상태
|
||
Read = 1, // 읽은상태
|
||
};
|
||
|
||
enum Attach
|
||
{
|
||
AttachItem = 1, // 아이템 첨부상태
|
||
};
|
||
|
||
enum Delivery
|
||
{
|
||
Normal = 1, // 일반편지
|
||
Premium = 2, // 프리미엄
|
||
ReplyGift = 3, // 선물회신
|
||
};
|
||
|
||
enum Kind
|
||
{
|
||
NormalMail = 1, // 일반편지
|
||
MissionMail = 2, // 미션편지
|
||
AdminMail = 3, // 관리자 메일
|
||
EventMail = 4, // 이벤트 메일
|
||
VIPMail = 5, // VIP
|
||
MasterSystemMail = 6, // 사제시스템
|
||
NpcReputationMail = 7, // NPC호감도시스템
|
||
Quest = 8, // Quest
|
||
GuildWarReward = 9, // 길드전 보상 우편
|
||
SpecialBox_Account = 10, // 특수보관함_계정타겟
|
||
SpecialBox_Character = 11, // 특수보관함_현캐릭터타겟
|
||
Cadge = 18, // 조르기
|
||
GuildMaxLevelReward = 19, // 최초길드가입 만랩 길드 보상
|
||
AppellationBookReward = 20, // 칭호컬렉션북 완료 보상
|
||
};
|
||
};
|
||
|
||
enum eSortType
|
||
{
|
||
MARKETSORT_ITEM_DESC = 0, // 아이템 내림차순
|
||
MARKETSORT_ITEM_ASC, // 아이템 오름차순
|
||
MARKETSORT_LEVEL_DESC, // 레벨 내림차순
|
||
MARKETSORT_LEVEL_ASC, // 레벨 오름차순
|
||
MARKETSORT_PRICE_DESC, // 가격 내림차순
|
||
MARKETSORT_PRICE_ASC, // 가격 오름차순
|
||
MARKETSORT_ONEPRICE_DESC, // 개당 가격 내림차순
|
||
MARKETSORT_ONEPRICE_ASC, // 개당 가격 오름차순
|
||
MARKETSORT_ITEMGRADE_DESC, // 강화 내림차순
|
||
MARKETSORT_ITEMGRADE_ASC, // 강화 오름차순
|
||
};
|
||
|
||
// Quest관련
|
||
// TCount
|
||
enum EnumCountingType
|
||
{
|
||
CountingType_None = 0,
|
||
CountingType_MyMonsterKill = 1,
|
||
CountingType_AllMonsterKill = 2,
|
||
CountingType_Item = 3,
|
||
CountingType_SymbolItem = 4,
|
||
CountingType_StageClear = 5,
|
||
CountingType_Max
|
||
};
|
||
|
||
// TQuest
|
||
enum EnumQuestType
|
||
{
|
||
QuestType_Min = 0,
|
||
QuestType_SubQuest = 1,
|
||
QuestType_MainQuest = 2,
|
||
QuestType_PeriodQuest = 3,
|
||
QuestType_RemoteQuest = 4,
|
||
QuestType_Max,
|
||
};
|
||
|
||
enum EnumRemoteQuestType
|
||
{
|
||
RemoteQuestType_Normal = 0,
|
||
RemoteQuestType_Meta = 1,
|
||
};
|
||
|
||
enum EnumQuestState
|
||
{
|
||
QuestState_None = 0,
|
||
QuestState_Playing = 1,
|
||
QuestState_Recompense = 2 //원격퀘스트의 완료 플래그로만 사용중 - 2012-09-11 by stupidfox.
|
||
};
|
||
|
||
enum EnumPeriodQuestResetType
|
||
{
|
||
PERIODQUEST_RESET_EVENT = 0, // 이벤트
|
||
PERIODQUEST_RESET_DAILY = 1, // 일일
|
||
PERIODQUEST_RESET_WORLD = 2, // 월드
|
||
PERIODQUEST_RESET_WEEKLY = 7, // 주간
|
||
PERIODQUEST_RESET_MAX,
|
||
};
|
||
|
||
enum EnumPeriodQuestTime
|
||
{
|
||
PERIODQUEST_TIME_START = 0,
|
||
PERIODQUEST_TIME_END = 1,
|
||
PERIODQUEST_TIME_MAX = 2,
|
||
};
|
||
|
||
enum EnumQuestRecompenseType
|
||
{
|
||
QuestRecompense_None = 0,
|
||
QuestRecompense_All = 1,
|
||
QuestRecompense_Select = 2
|
||
};
|
||
|
||
enum EnumExtraType
|
||
{
|
||
ExtraType_None = 0,
|
||
ExtraType_Counting = 1,
|
||
};
|
||
|
||
enum eDailyMissionType // Daily Mission
|
||
{
|
||
DAILYMISSION_DAY = 1, // 일일 미션
|
||
DAILYMISSION_WEEK = 2, // 주간 미션
|
||
DAILYMISSION_GUILDWAR = 3, // 길드전 미션
|
||
DAILYMISSION_PCBANG = 4, // 피씨방 미션
|
||
DAILYMISSION_GUILDCOMMON = 5, // 길드일반 미션
|
||
DAILYMISSION_WEEKENDEVENT = 6, // 주말 이벤트 미션
|
||
DAILYMISSION_WEEKENDREPEAT = 7, // 반복미션
|
||
#if defined( PRE_ADD_MONTHLY_MISSION )
|
||
DAILYMISSION_MONTH = 8, //월간 미션
|
||
#endif // #if defined( PRE_ADD_MONTHLY_MISSION )
|
||
};
|
||
|
||
// 중국 피로도
|
||
enum eFCMState
|
||
{
|
||
// 피로도 상태값
|
||
FCMSTATE_NONE = 0,
|
||
FCMSTATE_HALF = 1, // 50% (3 - 5시간, 30분마다 알림)
|
||
FCMSTATE_ZERO = 2, // 0% (5시간 이상, 15분마다 알림)
|
||
};
|
||
|
||
|
||
enum eExchangeButton
|
||
{
|
||
EXCHANGE_REGIST = 1, // 등록
|
||
EXCHANGE_CONFIRM, // 확인
|
||
};
|
||
|
||
enum eLeaveType
|
||
{
|
||
LEAVE_LOGOUT, // 로그아웃
|
||
LEAVE_MOVE, // 이동
|
||
};
|
||
|
||
// 2차인증
|
||
namespace SecondAuth
|
||
{
|
||
struct Common
|
||
{
|
||
enum
|
||
{
|
||
#if defined( _JP )
|
||
LimitCount = 3, // 2차 인증 연속 실패 기준 값
|
||
#else
|
||
LimitCount = 10, // 2차 인증 연속 실패 기준 값
|
||
#endif // #if defined( _JP )
|
||
PWMaxLength = 4, // 2차 비밀번호 최대 길이
|
||
NotifyDate = 3, // 2차 인증 알림 기준 일자
|
||
RestraintReasonID = 5,
|
||
#if defined( _JP )
|
||
RestraintTimeMin = 30,
|
||
#else
|
||
RestraintTimeMin = 10,
|
||
#endif // #if defined( _JP )
|
||
};
|
||
};
|
||
|
||
struct DBMsg
|
||
{
|
||
enum
|
||
{
|
||
ShowDialog = 101139, // 2차 인증 재알림 금지 기간이 지나서 메세지 보여준다.
|
||
};
|
||
};
|
||
}
|
||
|
||
// PvP
|
||
namespace PvPCommon
|
||
{
|
||
struct CaptainType
|
||
{
|
||
enum eCode
|
||
{
|
||
Captain = 0,
|
||
GroupCaptain,
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct RoomOption
|
||
{
|
||
enum eCode
|
||
{
|
||
None = 0,
|
||
BreakInto = 1,
|
||
DropItem = (1<<1),
|
||
ShowHP = (1<<2),
|
||
RandomTeam = (1<<3),
|
||
NoRegulation = (1<<4),
|
||
AllKill_RandomOrder = (1<<5),
|
||
#ifdef PRE_MOD_PVPOBSERVER
|
||
AllowObserver = (1<<6),
|
||
#endif //#ifdef PRE_MOD_PVPOBSERVER
|
||
};
|
||
};
|
||
|
||
struct RoomType
|
||
{
|
||
enum eRoomType
|
||
{
|
||
beginner,
|
||
regular,
|
||
#if defined(PRE_ADD_DWC)
|
||
dwc, //dwc 일반
|
||
#endif
|
||
max,
|
||
};
|
||
};
|
||
|
||
struct Common
|
||
{
|
||
enum
|
||
{
|
||
MaxObserverPlayer = 4, // 옵져버 최대 인원
|
||
ExtendMaxObserverPlayer = 16, // 옵져버 최대 인원
|
||
//MaxPlayer = PARTYMAX+MaxObserverPlayer, // 최대 인원( 옵져버 인원 추가 )
|
||
MaxPlayer = PARTYMAX, // 최대 인원( 옵져버 인원 추가 )
|
||
MaxPVPPlayer = PARTYMAX, // PVP게임형식의 최대인원
|
||
MaxTeamPVPPlayer = MaxPVPPlayer/4, // 한팀당 최대 인원수 (여러팀이 싸우는 모드가 나올시에는 바뀔수 있음)
|
||
MaxRoomCount = 1000, // 최대 방 개수
|
||
RoomPerPage = 10, // 한 페이지 당 룸 개수
|
||
PvPVillageStartPositionGateNo = 1, // PvP 마을 입장시 시작 위치 게이트번호
|
||
PvPVillageToLobbyGateNo = 2, // PvP 마을->로비 이동시 게이트 번호
|
||
RoomListRefreshGapTime = 5000, // PvP방목록 갱신 시간
|
||
GameModeStartDelta = 3, // PvP게임모드 시작시 카운트 시간(초)
|
||
RoundModeFinishDelta = 10, // PvP 1라운드 끝났을 때 다음 라운드까지 시간간격(초)
|
||
#if defined(PRE_ADD_MACHINA)
|
||
MaxClass = 9,
|
||
#elif defined(PRE_ADD_ASSASSIN) && defined(PRE_ADD_KALI) && defined(PRE_ADD_ACADEMIC)
|
||
MaxClass = 7,
|
||
#elif defined(PRE_ADD_KALI) && defined(PRE_ADD_ACADEMIC)
|
||
MaxClass = 6, // PlayerActor 클래스 최대 수
|
||
#elif defined(PRE_ADD_ACADEMIC)
|
||
MaxClass = 5, // PlayerActor 클래스 최대 수
|
||
#else
|
||
MaxClass = 4, // PlayerActor 클래스 최대 수
|
||
#endif // #if defined( PRE_ADD_ACADEMIC )
|
||
MaxRank = 26, // 최대 PvP Rank 등급
|
||
RegulationLevel = 99, // 보정레벨
|
||
NormalXPMinPlayerCount = 6, // 정상XP를 받기 위한 최소 플레이어 수
|
||
PvPFinishAutoClose = 18, // PvP모드 종료 후 자동 닫기 버튼 시간(초)
|
||
PvPFinishScoreOpenDelay = 3, // PvP모드 종료 후 Score판 열리는 딜레이(초)
|
||
MonsterMutationColCount = 20, // 몬스터변신그룹컬럼카운트
|
||
#if defined( PRE_ADD_ACADEMIC )
|
||
MonsterMutationSkillColCount = 120,
|
||
#else
|
||
MonsterMutationSkillColCount = 30,
|
||
#endif // #if defined( PRE_ADD_ACADEMIC )
|
||
GhouConditionColCount = 6,
|
||
RoundStartMutationTimeSec = 10,
|
||
DefaultGuildCount = 2, // 2개팀 이상의 복수팀 대전이 나와 변수 생기기전 까지 최소팀카운트
|
||
MaximumGuildWarSecondCaptain = 3, // 길드전 부대장 맥스카운트
|
||
MaximumCapturePosition = 4, // 점령(길드전) 포지션 맥스
|
||
MaximumVitoryCondition = 5,
|
||
ReservedGuildSkillJobID = 2000, // 기존 스킬테이블 이용을 위해서 길드전용 스킬 잡아이디 예약 기존잡아이디는 999이상 사용안뎀 원선씨와 이야기 완료
|
||
MaximumEffectCount = 7,
|
||
DoorCount = 3,
|
||
DamagePrintTime = 60000,
|
||
PvPBeginnerMedalMultipleFactor = 2,
|
||
PvPStateAdjustmentTerm = (60 * 1000 * 10),
|
||
PvPAbsoluteRankCountMax = 101,
|
||
#if defined(PRE_ADD_PVP_TOURNAMENT)
|
||
PvPTournamentUserMax = 32, // 32강이 최고임
|
||
#endif
|
||
};
|
||
};
|
||
#if defined(PRE_ADD_PVP_TOURNAMENT)
|
||
struct Tournament
|
||
{
|
||
enum eStep
|
||
{
|
||
TOURNAMENT_NONE = 0,
|
||
TOURNAMENT_FINAL = 2,
|
||
TOURNAMENT_4 = 4,
|
||
TOURNAMENT_8 = 8,
|
||
TOURNAMENT_16 = 16,
|
||
TOURNAMENT_32 = 32,
|
||
};
|
||
};
|
||
#endif
|
||
|
||
struct BanType
|
||
{
|
||
enum eBanType
|
||
{
|
||
Normal = 0, // 일반추방
|
||
Permanence, // 영구추방
|
||
};
|
||
};
|
||
|
||
struct LeaveType
|
||
{
|
||
enum eLeaveType
|
||
{
|
||
Normal = 0, // 일반
|
||
Ban, // 추방
|
||
PermanenceBan, // 영구추방
|
||
DestroyRoom, // 방파괴
|
||
};
|
||
};
|
||
|
||
struct GameType
|
||
{
|
||
enum
|
||
{
|
||
PvP = 0,
|
||
COOP,
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct GameMode
|
||
{
|
||
enum
|
||
{
|
||
PvP_Respawn = 0,
|
||
PvP_Round = 1,
|
||
PvP_Captain = 2,
|
||
PvP_IndividualRespawn = 3,
|
||
COOP_Defense = 6,
|
||
COOP_Survival = 7,
|
||
PvP_Zombie_Survival = 11,
|
||
PvP_GuildWar = 12,
|
||
PvP_Occupation = 13,
|
||
PvP_AllKill = 14,
|
||
PvP_Racing = 15,
|
||
#ifdef PRE_ADD_PVP_TOURNAMENT
|
||
PvP_Tournament = 16,
|
||
#endif
|
||
|
||
#if defined( PRE_ADD_PVP_COMBOEXERCISE )
|
||
PvP_ComboExercise = 17,
|
||
#endif
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct RoomSortType
|
||
{
|
||
enum
|
||
{
|
||
Index = 0, // 방번호 정렬
|
||
GameMode, // 게임모드 정렬
|
||
MapIndex, // 맵인덱스 정렬
|
||
NumOfPlayer, // 인원수 정렬
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct WaitUserList
|
||
{
|
||
struct Common
|
||
{
|
||
enum
|
||
{
|
||
MaxPerPage = 12,
|
||
};
|
||
};
|
||
|
||
struct SortType
|
||
{
|
||
enum eSortType
|
||
{
|
||
Null = 0,
|
||
PvPLevel,
|
||
Job,
|
||
Level,
|
||
Name,
|
||
MAX,
|
||
};
|
||
};
|
||
|
||
struct WaitUserInfo
|
||
{
|
||
BYTE cPvPLevel; // PvP 등급
|
||
BYTE cJob; // 직업
|
||
BYTE cLevel; // 레벨
|
||
#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
||
BYTE cType; //채널타입
|
||
#endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
||
WCHAR wszCharName[NAMELENMAX]; // 이름
|
||
};
|
||
|
||
struct Repository
|
||
{
|
||
WaitUserInfo WaitUserList[Common::MaxPerPage];
|
||
};
|
||
};
|
||
|
||
struct ItemUsageType
|
||
{
|
||
enum
|
||
{
|
||
PvPItemOnly = 0,
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct RoomState
|
||
{
|
||
enum
|
||
{
|
||
None = 0, // 아무 상태 아님
|
||
Password = 1, // 비밀방
|
||
Starting = (1<<1), // 시작중
|
||
Syncing = (1<<2), // 동기화중
|
||
Playing = (1<<3), // 플레이중
|
||
Finished = (1<<4), // 게임모드종료
|
||
NoMoreBreakInto = (1<<5), // 더이상 난입 못함
|
||
// Mask
|
||
CantBanMask = (Starting|Syncing|Playing|Finished|NoMoreBreakInto), // 추방 할 수 없는 RoomState
|
||
CantModifyRoom = (Starting|Syncing|Playing|Finished|NoMoreBreakInto), // 방편집 할 수 없는 RoomState
|
||
};
|
||
};
|
||
|
||
struct UserState
|
||
{
|
||
enum
|
||
{
|
||
None = 0, // 아무 상태 아님
|
||
Captain = 1, // 방장
|
||
Ready = (1<<1), // 레뒤
|
||
Starting = (1<<2), // 시작중
|
||
Syncing = (1<<3), // 동기화중
|
||
Playing = (1<<4), // 게임중.
|
||
GuildWarCaptain = (1<<5), // 대장
|
||
GuildWarSedcondCaptain = (1<<6), // 부장.
|
||
GroupCaptain = (1<<7), // 조장
|
||
// Mask
|
||
CantBanMask = (Starting|Syncing|Playing), // 추방 할 수 없는 UserState
|
||
CantLeaveMask = (Ready|Starting|Syncing|Playing), // 나갈 수 없는 UserState
|
||
};
|
||
};
|
||
|
||
struct TxtMax
|
||
{
|
||
enum
|
||
{
|
||
RoomName = 32,
|
||
RoomPW = 4,
|
||
};
|
||
};
|
||
|
||
struct Team
|
||
{
|
||
enum eTeam
|
||
{
|
||
StartIndex = 1000,
|
||
A = 1000,
|
||
B = 1001,
|
||
EndIndex = 1001,
|
||
Others,
|
||
Observer = StartIndex+PARTYMAX+100,
|
||
Human = A,
|
||
Zombie = B,
|
||
Max,
|
||
};
|
||
|
||
struct TPvPTeamIndex
|
||
{
|
||
UINT nTeam;
|
||
UINT nAccountDBID[PARTYMAX];
|
||
};
|
||
|
||
struct TPvPGuildWarInfo
|
||
{
|
||
USHORT nTeam;
|
||
UINT nGuildDBID;
|
||
int nQualifyingScore;
|
||
};
|
||
};
|
||
|
||
struct GAMA_Command
|
||
{
|
||
enum
|
||
{
|
||
DeleteGameRoom = 0,
|
||
FinishGameMode,
|
||
NoMoreBreakInto,
|
||
Max,
|
||
};
|
||
};
|
||
|
||
// PvPCommon::TeamIndex 는 PvPCommon::Team 을 배열로 갖고 있을 때 접근하기 위한 배열인덱스이다. PvPCommon::Team 이랑 혼동되지 않게 주의하자.
|
||
struct TeamIndex
|
||
{
|
||
enum eCode
|
||
{
|
||
A = 0,
|
||
B,
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct Check
|
||
{
|
||
enum
|
||
{
|
||
None = 0,
|
||
CheckStartConditionTable = 1, // PvPStartConditonTable 체크
|
||
CheckTimeOver = (1<<1), // TimeOver 체크
|
||
CheckTeamMemberZero = (1<<2), // 한팀 다 나갔는지 체크
|
||
CheckScore = (1<<3), // 스코어 체크
|
||
AllCheck = 0xFFFF, // 모두 체크
|
||
};
|
||
};
|
||
|
||
struct FinishReason
|
||
{
|
||
enum eCode
|
||
{
|
||
AchieveWinCondition = 0, // 승리조건 달성
|
||
TimeOver, // 시간종료
|
||
OpponentTeamAllGone, // 상대팀 모두 나감
|
||
OpponentTeamAllDead, // 상대팀 모두 죽음
|
||
OpponentCaptainGone, // 상대팀 대장 나감
|
||
OpponentCaptainDead, // 상대팀 대장 죽음
|
||
LadderDraw, // 래더 무승부
|
||
LadderNoGame,
|
||
OpponentTeamBossDead, // 상대팀 보스몹 죽음
|
||
OpponentTeamScoreLimit, // 상대팀 스코어리밋 도달
|
||
OpponentTeamResourceLimit, // 상대팀 리소스리밋 도달
|
||
OpponentTeamQualifierScore, // ???????????
|
||
OpponentTeamForceWin,
|
||
#if defined( PRE_ADD_RACING_MODE )
|
||
RacingAllFinish, // 모든 유저가 꼴인함.
|
||
#endif // #if defined( PRE_ADD_RACING_MODE )
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct FinishDetailReason
|
||
{
|
||
enum eCode
|
||
{
|
||
None = 0,
|
||
SuperiorHPWin, // HP 우세승
|
||
SuperiorContinuousWin, // 연승 우세승
|
||
HPnContinuousWinDraw, // HP,연승 동률 무승부
|
||
};
|
||
};
|
||
|
||
struct BattleGroundVictoryState
|
||
{
|
||
enum eBattleGroundVictoryState
|
||
{
|
||
None = 0, //아앙~
|
||
BossKill = 1, //보스몬스터킬
|
||
Score = (1<<1), //점수(킬카운트 등)
|
||
Resource = (1<<2), //자원획득
|
||
QualifierScore = (1<<3), //예선전 점수로 ???
|
||
};
|
||
};
|
||
|
||
struct OccupationSystemState
|
||
{
|
||
enum eOccupationSystemState
|
||
{
|
||
None,
|
||
Wait,
|
||
Play,
|
||
End,
|
||
};
|
||
};
|
||
|
||
struct OccupationState
|
||
{
|
||
enum eOccupationState
|
||
{
|
||
None = 0, //아무소유아님
|
||
Own = 1, //소유중
|
||
Try = (1<<1), //소유시도중
|
||
MoveWait = (1<<2), //소유이동대기
|
||
CantTryMask = (Try), // 나갈 수 없는 UserState
|
||
};
|
||
};
|
||
|
||
struct OccupantType
|
||
{
|
||
enum eOccupantType
|
||
{
|
||
Actor = 0,
|
||
Team,
|
||
};
|
||
};
|
||
|
||
struct OccupationVictoryCondition
|
||
{
|
||
enum eOccupationVictoryCondition
|
||
{
|
||
None,
|
||
BossKill = 1,
|
||
ScoreLimit,
|
||
TeamQualifierScore,
|
||
ResourceLimit,
|
||
};
|
||
};
|
||
|
||
struct OccupationScoreType
|
||
{
|
||
enum eOccupationScoreType
|
||
{
|
||
None,
|
||
Kill,
|
||
Acquire,
|
||
StealAcquire,
|
||
};
|
||
};
|
||
|
||
//CDNSkill에 있는 것과 같은 식이지만 테이블 분리해놨으므로 분리한다.
|
||
struct OccupationSkillTargetType
|
||
{
|
||
enum eOccupationSkillTargetType
|
||
{
|
||
Team = 5,
|
||
};
|
||
};
|
||
|
||
struct OccuaptionSkillEffectTartgetType
|
||
{
|
||
enum eOccuaptionSkillEffectTartgetType
|
||
{
|
||
Team = 5,
|
||
};
|
||
};
|
||
|
||
struct OccupationLogWinType
|
||
{
|
||
enum eOccupationLogWinType
|
||
{
|
||
TimeOut = 0,
|
||
LimitResource = 1,
|
||
};
|
||
};
|
||
|
||
struct QueryUpdatePvPDataType
|
||
{
|
||
enum eCode
|
||
{
|
||
FinishGameMode = 0,
|
||
GoPvPLobby,
|
||
GoSelectChar,
|
||
Disconnect,
|
||
#if defined(PRE_MOD_PVP_LADDER_XP)
|
||
FinishLadder, //래더게임 종료시 xp 추가
|
||
#endif
|
||
#if defined( PRE_ADD_PVP_EXPUP_ITEM )
|
||
UseExpupItem,
|
||
#endif // #if defined( PRE_ADD_PVP_EXPUP_ITEM )
|
||
Max,
|
||
};
|
||
};
|
||
|
||
#ifdef PRE_MOD_PVPRANK
|
||
struct RankTable
|
||
{
|
||
enum eType
|
||
{
|
||
ExpValue = 0,
|
||
RateValue,
|
||
AbsoluteRankValue,
|
||
InitValue = 100,
|
||
};
|
||
};
|
||
#endif //#ifdef PRE_MOD_PVPRANK
|
||
|
||
#pragma pack(push, 1)
|
||
struct UserInfo
|
||
{
|
||
UINT uiSessionID;
|
||
int iJobID;
|
||
BYTE cLevel;
|
||
BYTE cPvPLevel;
|
||
USHORT usTeam; // PvPCommon::Team
|
||
UINT uiUserState; // PvPCommon::UserState
|
||
char cSlotIndex;
|
||
BYTE cCharacterNameLen;
|
||
WCHAR wszCharacterName[NAMELENMAX];
|
||
};
|
||
|
||
struct UserInfoList
|
||
{
|
||
UINT uiSessionID[Common::MaxPlayer];
|
||
int iJobID[Common::MaxPlayer];
|
||
BYTE cLevel[Common::MaxPlayer];
|
||
BYTE cPvPLevel[Common::MaxPlayer];
|
||
USHORT usTeam[Common::MaxPlayer]; // PvPCommon::Team
|
||
char cTeamIndex[Common::MaxPlayer];
|
||
UINT uiUserState[Common::MaxPlayer]; // PvPCommon::UserState
|
||
BYTE cCharacterNameLen[Common::MaxPlayer];
|
||
WCHAR wszBuffer[NAMELENMAX*Common::MaxPlayer];
|
||
};
|
||
|
||
struct RoomInfo
|
||
{
|
||
UINT uiIndex; // 방인덱스
|
||
UINT uiMapIndex; // 맵인덱스
|
||
UINT uiGameModeTableID; // 게임모드 테이블ID
|
||
UINT uiWinCondition;
|
||
UINT uiPlayTimeSec;
|
||
BYTE cMaxUserCount; // 최대인원
|
||
BYTE cRoomState; // PvPCommon::RoomState
|
||
BYTE cRoomNameLen;
|
||
BYTE cMinLevel;
|
||
BYTE cMaxLevel;
|
||
USHORT unRoomOptionBit;
|
||
int nEventID;
|
||
BYTE cMinUserCount;
|
||
bool bIsGuildWarSystem;
|
||
#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
||
BYTE cRoomType;
|
||
#endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
||
#ifdef PRE_MOD_PVPOBSERVER
|
||
bool bExtendObserver;
|
||
#endif //#ifdef PRE_MOD_PVPOBSERVER
|
||
#if defined( PRE_WORLDCOMBINE_PVP )
|
||
int nWorldPvPRoomType;
|
||
#endif
|
||
#ifdef PRE_PVP_GAMBLEROOM
|
||
BYTE cGambleType;
|
||
int nGamblePrice;
|
||
#endif // PRE_PVP_GAMBLEROOM
|
||
WCHAR wszBuffer[TxtMax::RoomName];
|
||
};
|
||
|
||
struct RoomInfoList
|
||
{
|
||
UINT uiPvPIndex[Common::RoomPerPage]; // PvPIndex
|
||
UINT uiMapIndex[Common::RoomPerPage]; // MapIndex
|
||
UINT uiGameModeTableID[Common::RoomPerPage];
|
||
BYTE cRoomState[Common::RoomPerPage]; // PvPCommon::RoomState
|
||
BYTE cRoomNameLen[Common::RoomPerPage];
|
||
BYTE cCurUserCount[Common::RoomPerPage]; // 현재 유저 수
|
||
BYTE cMaxUserCount[Common::RoomPerPage]; // 최대 유저 수
|
||
USHORT unWinCondition[Common::RoomPerPage]; // 승리조건
|
||
BYTE cMinLevel[Common::RoomPerPage];
|
||
BYTE cMaxLevel[Common::RoomPerPage];
|
||
USHORT unRoomOptionBit[Common::RoomPerPage];
|
||
int nEventID[Common::RoomPerPage];
|
||
UINT nGuildDBID[Common::RoomPerPage][PvPCommon::TeamIndex::Max]; //0이면 무시 아닐경우 해당 길드전용방
|
||
#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
||
BYTE cRoomType[Common::RoomPerPage]; //PvPCommon::RoomType
|
||
#endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
|
||
#ifdef PRE_MOD_PVPOBSERVER
|
||
bool bExtendObserver[Common::RoomPerPage];
|
||
#endif //#ifdef PRE_MOD_PVPOBSERVER
|
||
#if defined( PRE_WORLDCOMBINE_PVP )
|
||
int nWorldPvPRoomType[Common::RoomPerPage];
|
||
#endif
|
||
#if defined( PRE_PVP_GAMBLEROOM )
|
||
BYTE cGambleType[Common::RoomPerPage];
|
||
int nGamblePrice[Common::RoomPerPage];
|
||
#endif // #if defined( PRE_PVP_GAMBLEROOM )
|
||
WCHAR wszBuffer[Common::RoomPerPage*TxtMax::RoomName];
|
||
};
|
||
|
||
struct OccupationStateInfo
|
||
{
|
||
int nAreaID;
|
||
int nOccupationState; //PvPCommon::OccupationState
|
||
|
||
UINT nOwnedUniqueID; //소유시점 성공유저
|
||
short nOwnedTemID; //현재소유팀
|
||
|
||
UINT nTryUniqueID; //시도자 PvPCommon::OccupationState이 try상태일경우
|
||
short nTryTeamID;
|
||
|
||
UINT nMoveWaitUniqueID; //이동대기상태 성공시킨 유저
|
||
short nMoveWaitTeamID; //이동대기상태팀
|
||
};
|
||
|
||
struct OccupationSkillSlotInfo
|
||
{
|
||
int nTeam;
|
||
char cSlotIndex[QUICKSLOTMAX];
|
||
int nSkillID[QUICKSLOTMAX];
|
||
ULONG nSKillUseElapsedTick[QUICKSLOTMAX]; //사용뒤 경과시간 0이면 사용한적 없음
|
||
};
|
||
|
||
struct AllKillMode
|
||
{
|
||
struct Time
|
||
{
|
||
enum eCode
|
||
{
|
||
SelectPlayerTick = 10000, // 출전 플레이어 고르는 시간
|
||
};
|
||
};
|
||
|
||
struct WinBonus
|
||
{
|
||
enum eCode
|
||
{
|
||
HPPercent = 10, // 승리시 보너스 HP 퍼센트
|
||
SPPercent = 10, // 승리시 보너스 SP 퍼센트
|
||
|
||
};
|
||
};
|
||
};
|
||
|
||
#pragma pack(pop)
|
||
|
||
//=============================================================================================
|
||
// Function
|
||
//=============================================================================================
|
||
|
||
static bool CheckTeam( const USHORT usTeam )
|
||
{
|
||
if( usTeam >= Team::A && usTeam <= Team::B )
|
||
return true;
|
||
if( usTeam == PvPCommon::Team::Observer )
|
||
return true;
|
||
return false;
|
||
}
|
||
|
||
static TeamIndex::eCode Team2Index( Team::eTeam Team )
|
||
{
|
||
switch( Team )
|
||
{
|
||
case Team::A: return TeamIndex::A;
|
||
case Team::B: return TeamIndex::B;
|
||
}
|
||
return TeamIndex::Max;
|
||
}
|
||
|
||
static Team::eTeam TeamIndex2Team( TeamIndex::eCode TeamIdx )
|
||
{
|
||
switch( TeamIdx )
|
||
{
|
||
case TeamIndex::A: return Team::A;
|
||
case TeamIndex::B: return Team::B;
|
||
}
|
||
return Team::Max;
|
||
}
|
||
|
||
//blondy
|
||
const int s_iMaxRoundNum = 7;
|
||
//blondy end
|
||
};
|
||
|
||
#if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
|
||
|
||
// NPC 호감도
|
||
namespace NpcReputation
|
||
{
|
||
struct Common
|
||
{
|
||
enum
|
||
{
|
||
MaxFavorEffectNpcCount = 5, // NPC 호감도에 최대로 영향줄 수 있는 수
|
||
MaxMaliceEffectNpcCount = 5, // NPC 호감도에 최대로 영향줄 수 있는 수
|
||
MaxEffectNpcCount = MaxFavorEffectNpcCount+MaxMaliceEffectNpcCount+1,
|
||
|
||
MaxMailCount = 12,
|
||
MaxMailRandValue = 1000000000,
|
||
MaxBenefitCount = 6,
|
||
};
|
||
};
|
||
|
||
struct StoreBenefit
|
||
{
|
||
// 아래의 순서는 StoreBenefit 테이블의 정의와 맞춘 것이기 때문에 절대로 순서가 바뀌면 안됨.
|
||
enum
|
||
{
|
||
EnchantFeeDiscount = 0,
|
||
RepairFeeDiscount,
|
||
SellingPriceUp,
|
||
BuyingPriceDiscount,
|
||
FishProficiencyUp, // 낚시 숙련도 증가
|
||
CookProficiencyUp, // 요리 숙련도 증가
|
||
CultivateProficiencyUp, // 재배 숙력도 증가
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct UnionType
|
||
{
|
||
enum
|
||
{
|
||
Commercial = 0,
|
||
Liberty,
|
||
Royal,
|
||
Etc,
|
||
Max,
|
||
};
|
||
};
|
||
};
|
||
|
||
// npc 가 선물로 받는 아이템 종류의 최대 갯수. 현재 테이블에 6개의 종류까지 지정할 수 있다.
|
||
const int MAX_ACCEPT_NPC_PRESENT_VARIATION_COUNT = 6;
|
||
|
||
// 퀘스트 보상으로 호감도 올려주는 경우 UI 표시용으로 사용하는 잡템 ID
|
||
// 실제 인벤에 들어가지 않게 막는다.
|
||
const int NPC_FAVOR_QUEST_REWARD_FAVOR_UP_ITEM_ID = 400204; // 호감도 올려주는 보상.
|
||
const int NPC_FAVOR_QUEST_REWARD_BROMIDE_ITEM_ID = 400250; // 브로마이드 보상.
|
||
|
||
// 호감도 상점혜택 % 데이터 쌍 최대 갯수
|
||
const BYTE STORE_BENEFIT_MAX = 10;
|
||
|
||
#endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
|
||
|
||
// 사제 시스템
|
||
namespace MasterSystem
|
||
{
|
||
struct Common
|
||
{
|
||
enum
|
||
{
|
||
RefreshCacheTimeSec = 30, // 서버<->DB M/W 간 캐싱시간(초)
|
||
};
|
||
};
|
||
|
||
struct Max
|
||
{
|
||
enum
|
||
{
|
||
MasterCount = 3, // 최대 스승 수
|
||
#if defined(_CH) || defined(_WORK)
|
||
PupilCount = 10, // 최대 제자 수
|
||
#else
|
||
PupilCount = 3, // 최대 제자 수
|
||
#endif // #if defined(_CH) || defined(_WORK)
|
||
OppositeCount = (MasterCount > PupilCount) ? MasterCount : PupilCount,
|
||
MasterPageRowCount = 7, // 스승 리스트업 Row 개수
|
||
SelfIntrotuctionLen = (30+1), // 스승 등록시 자기 소개 최대 글자 수
|
||
MasterAndClassmateCount = MasterCount+((PupilCount-1)*MasterCount),
|
||
RequestLocationCount = ((MasterAndClassmateCount > PupilCount) ? MasterAndClassmateCount : PupilCount),
|
||
};
|
||
};
|
||
|
||
struct Penalty
|
||
{
|
||
enum
|
||
{
|
||
PupilLeavePenaltyDay = 1, // 제자가 스승을 떠났을 때 페널티 날짜(일)
|
||
PupilLeavePenaltySec = PupilLeavePenaltyDay*24*60*60, // 제자가 스승을 떠났을 때 페널티 날짜(초)
|
||
MasterLeavePenaltyDay = 3, // 스승이 제자를 추방했을 때 페널티 날짜(일)
|
||
PupilLeaveSkipPenaltyDay = 3, // 스승이 제자 추방할 때 페널티 안받는 날짜(일)
|
||
PupilLeaveSkipPenaltySec = PupilLeaveSkipPenaltyDay*24*60*60, // 스승이 제자 추방할 때 페널티 안받는 날짜(초)
|
||
};
|
||
};
|
||
|
||
struct MasterClassmateKind
|
||
{
|
||
enum eCode
|
||
{
|
||
Master = 1,
|
||
Classmate,
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct RequestLocation
|
||
{
|
||
enum eCode
|
||
{
|
||
Pupil = 1,
|
||
MasterAndClassmate,
|
||
ClassmateInfo,
|
||
MyMasterInfo,
|
||
};
|
||
};
|
||
|
||
struct Reward
|
||
{
|
||
enum
|
||
{
|
||
PupilCountExpBonusRate = 10,
|
||
};
|
||
};
|
||
|
||
struct EventType
|
||
{
|
||
enum eCode
|
||
{
|
||
Init = 0,
|
||
VillageFirstConnect,
|
||
Join,
|
||
Graduate,
|
||
Graduated,
|
||
Leave,
|
||
DungeonClear,
|
||
};
|
||
};
|
||
};
|
||
|
||
namespace LadderSystem
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCode
|
||
{
|
||
StartMsgCount = 5,
|
||
RoomListPerPage = 12,
|
||
MaxObserver = 4,
|
||
RankingTop = 10,
|
||
InviteValidTick = 5000, // 초대 유효 시간
|
||
};
|
||
};
|
||
|
||
struct Stats
|
||
{
|
||
enum eCode
|
||
{
|
||
InitGradePoint = 1500, // 초기 평점
|
||
MinGradePoint = 600, // 최소 평점
|
||
};
|
||
};
|
||
|
||
struct Exchange
|
||
{
|
||
enum eCode
|
||
{
|
||
MinGamePlay = 10, // 최소 게임 수
|
||
};
|
||
};
|
||
|
||
struct MatchResult
|
||
{
|
||
enum eCode
|
||
{
|
||
None = 0,
|
||
Win,
|
||
Lose,
|
||
Draw,
|
||
};
|
||
};
|
||
|
||
struct MatchType
|
||
{
|
||
enum eCode
|
||
{
|
||
None = 0,
|
||
_1vs1 = 1,
|
||
_2vs2,
|
||
_3vs3,
|
||
_4vs4,
|
||
#if defined(_RU)
|
||
MaxCount = _1vs1,
|
||
#else
|
||
MaxCount = _3vs3,
|
||
#endif
|
||
MaxMatchType = _4vs4, // 최대 인원 매치 타입
|
||
#if defined(PRE_ADD_DWC)
|
||
_3vs3_DWC = 100,
|
||
_3vs3_DWC_PRACTICE = 101,
|
||
#endif
|
||
};
|
||
};
|
||
|
||
static bool bIsServiceMatchType( LadderSystem::MatchType::eCode Type )
|
||
{
|
||
switch( Type )
|
||
{
|
||
#if defined(PRE_ADD_DWC)
|
||
case MatchType::_3vs3_DWC:
|
||
case MatchType::_3vs3_DWC_PRACTICE:
|
||
#endif
|
||
case MatchType::_1vs1:
|
||
#if defined(_RU)
|
||
// None
|
||
#else
|
||
case MatchType::_2vs2:
|
||
case MatchType::_3vs3:
|
||
case MatchType::_4vs4:
|
||
#endif
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
static int GetNeedTeamCount( LadderSystem::MatchType::eCode Type )
|
||
{
|
||
switch( Type )
|
||
{
|
||
case LadderSystem::MatchType::_1vs1:
|
||
case LadderSystem::MatchType::_2vs2:
|
||
case LadderSystem::MatchType::_3vs3:
|
||
case LadderSystem::MatchType::_4vs4:
|
||
{
|
||
return static_cast<int>(Type);
|
||
}
|
||
#if defined(PRE_ADD_DWC)
|
||
case LadderSystem::MatchType::_3vs3_DWC:
|
||
case LadderSystem::MatchType::_3vs3_DWC_PRACTICE:
|
||
{
|
||
return LadderSystem::MatchType::_3vs3;
|
||
}
|
||
#endif
|
||
default: return 0;
|
||
}
|
||
}
|
||
|
||
struct RoomState
|
||
{
|
||
enum eCode
|
||
{
|
||
None = 0,
|
||
WaitUser = 1, // 팀설정 위해 유저 기다리는 상태( 이때부터 정상방으로 간주됨 )
|
||
WaitMatching = (1<<1), // 매칭대기중
|
||
Matched = (1<<2), // 매치됨
|
||
Starting = (1<<3), // 시작준비중
|
||
Syncing = (1<<4), // 동기화중
|
||
Playing = (1<<5), // 플레이중
|
||
GameFinished = (1<<6), // 게임끝남
|
||
GameRoomDestroy = (1<<7), // 게임룸파괴
|
||
Observer = (1<<8), // 옵져버
|
||
};
|
||
};
|
||
|
||
struct Reason
|
||
{
|
||
enum eCode
|
||
{
|
||
Disconnect, // 접속끊음
|
||
LeaveRoom, // 스스로 나감(?)
|
||
KickOut, // 쫒겨남
|
||
};
|
||
};
|
||
|
||
struct RoomStateReason
|
||
{
|
||
enum eCode
|
||
{
|
||
ERROR_NONE = 0,
|
||
CANT_CREATE_GAMEROOM = 1,
|
||
MAX_OBSERVER,
|
||
};
|
||
};
|
||
};
|
||
|
||
namespace RankingSystem
|
||
{
|
||
const BYTE RANKINGPAGEMAX = 10; // 한페이지에 출력될 Item 최대개수.
|
||
const BYTE RANKINGPAGECOUNT = 5; // 리스트 Page 최대개수.
|
||
const BYTE RANKINGMAX = RANKINGPAGEMAX * RANKINGPAGECOUNT; // 랭킹 리스트 Item 최대맥스.
|
||
};
|
||
|
||
// DarkLair
|
||
namespace DarkLair
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
MaxPlayer = 4, // 다크레어 최대 이용 인원
|
||
DarkLairPositionGateNo = 1,
|
||
};
|
||
};
|
||
|
||
struct Rank
|
||
{
|
||
enum eRank
|
||
{
|
||
SelectTop = 5, // 몇 위 까지 보여줄것인지 수
|
||
SelectRankBoardTop = 10, // 다크레어 랭킹 게시판에 보여질 개수
|
||
MaxRank = 10000, // 최대랭킹
|
||
};
|
||
};
|
||
enum
|
||
{
|
||
TopFloorAbstractMapIndex = 1000000000
|
||
};
|
||
};
|
||
|
||
// Vehicle
|
||
namespace Vehicle
|
||
{
|
||
struct Slot
|
||
{
|
||
enum eVehicleSlot
|
||
{
|
||
Body = 0,
|
||
Saddle = 1, // 탈것: 안장
|
||
Hair = 2, // 탈것: 갈기(useitem)
|
||
Max,
|
||
|
||
Sundries = 255,
|
||
};
|
||
};
|
||
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
VehicleEquipBody = 255,
|
||
};
|
||
|
||
enum eVehicleValue
|
||
{
|
||
ROTATE_ANGLEPOWER = 50,
|
||
ROTATE_YAWDELTA = 2,
|
||
};
|
||
};
|
||
|
||
struct Parts
|
||
{
|
||
enum eVehicleParts
|
||
{
|
||
Default = -1,
|
||
Saddle = 0,
|
||
Hair = 1,
|
||
};
|
||
|
||
enum eVehiclePartsColorType
|
||
{
|
||
BodyColor = 0,
|
||
};
|
||
};
|
||
};
|
||
|
||
// Pet
|
||
namespace Pet
|
||
{
|
||
struct Slot
|
||
{
|
||
enum ePetSlot
|
||
{
|
||
Body = Vehicle::Slot::Body,
|
||
Accessory1 = Vehicle::Slot::Saddle, //악세사리1
|
||
Accessory2 = Vehicle::Slot::Hair, //악세사리2
|
||
Max = Vehicle::Slot::Max,
|
||
|
||
Sundries = Vehicle::Slot::Sundries,
|
||
};
|
||
};
|
||
|
||
struct Skill
|
||
{
|
||
enum ePetSkill
|
||
{
|
||
Primary = 0,
|
||
Secondary = 1,
|
||
Max = 2,
|
||
};
|
||
};
|
||
|
||
struct Type
|
||
{
|
||
enum ePetType
|
||
{
|
||
ePETTYPE_EXPIREDATE = 0x00000001,
|
||
ePETTYPE_SATIETY = 0x00000010,
|
||
};
|
||
};
|
||
struct Satiety
|
||
{
|
||
enum eSatietySelection
|
||
{
|
||
SatietySelection0 = 0,
|
||
SatietySelection1 = 30,
|
||
SatietySelection2 = 50,
|
||
SatietySelection3 = 80,
|
||
SatietySelection4 = 100
|
||
};
|
||
};
|
||
const int MAX_SATIETY_SELECTION = 5;
|
||
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
PetEquipBody = 254,
|
||
};
|
||
};
|
||
|
||
struct Parts
|
||
{
|
||
enum ePetParts
|
||
{
|
||
Default = Vehicle::Parts::Default,
|
||
PetAccessory1 = Vehicle::Parts::Saddle,
|
||
PetAccessory2 = Vehicle::Parts::Hair,
|
||
};
|
||
|
||
enum ePetPartsColorType
|
||
{
|
||
BodyColor = 0,
|
||
NoseColor = 1,
|
||
};
|
||
};
|
||
|
||
const float PetExpRate = 0.1f;
|
||
};
|
||
|
||
#if defined( PRE_ADD_SECONDARY_SKILL )
|
||
|
||
namespace SecondarySkill
|
||
{
|
||
struct Max
|
||
{
|
||
enum eMax
|
||
{
|
||
LearnProductionSkill = 1,
|
||
LearnManufactureSkill = 1,
|
||
LearnCommonSkill = 1,
|
||
LearnSecondarySkill = LearnProductionSkill+LearnManufactureSkill+LearnCommonSkill, // 동시에 배울수 있는 최대 보조 스킬 수
|
||
LearnCookingRecipe = 20, // 요리 레시피 수
|
||
LearnManufactureRecipe = LearnCookingRecipe, // 생산스킬 중 최대 레시피 스킬 수
|
||
};
|
||
};
|
||
|
||
struct Type
|
||
{
|
||
enum eType
|
||
{
|
||
ManufactureSkill = 1, // 제작스킬
|
||
ProductionSkill = 2, // 생산스킬
|
||
CommonSkill = 3, // 공용스킬
|
||
};
|
||
};
|
||
|
||
struct SubType
|
||
{
|
||
enum eType
|
||
{
|
||
CookingSkill = 1, // 요리스킬
|
||
CultivationSkill = 2, // 재배스킬
|
||
FishingSkill = 3, // 낚시스킬
|
||
};
|
||
};
|
||
|
||
struct ExecuteType
|
||
{
|
||
enum eType
|
||
{
|
||
Passive = 1, // 액티브
|
||
Active = 2, // 패시브
|
||
};
|
||
};
|
||
|
||
struct Grade
|
||
{
|
||
enum eType
|
||
{
|
||
Beginning = 1, // 초급
|
||
Intermediate, // 중급
|
||
Advanced, // 고급
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct ManufactureSkill
|
||
{
|
||
enum eType
|
||
{
|
||
MaxManufactureItemTypeCount = 5, // 최대 제작 아이템 결과물 타입 수
|
||
MaxToolItemCount = 5, // 최대 도구 아이템 수
|
||
MaxMaterialItemCount = 5, // 최대 재료 아이템 수
|
||
};
|
||
};
|
||
};
|
||
|
||
#endif // #if defined( PRE_ADD_SECONDARY_SKILL )
|
||
|
||
namespace Farm
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
#if defined( _FINAL_BUILD )
|
||
SEED_UPDATE_SEC = (5*60), // 씨앗 업데이트 간격
|
||
#else
|
||
SEED_UPDATE_SEC = (1*60), // 씨앗 업데이트 간격
|
||
#endif // #if defined( _FINAL_BUILD )
|
||
#if defined( PRE_ADD_VIP_FARM )
|
||
VIP_GROWING_BOOST_ITEMID = 348334082, // VIP 농장용 성장 촉진제
|
||
VIP_FARM_ITEMID = 1107396608, // VIP 농장 입장 아이템
|
||
#endif // #if defined( PRE_ADD_VIP_FARM )
|
||
#ifdef PRE_MOD_OPERATINGFARM
|
||
OPERATINGFARM_LIMIT = (1000 * 60 * 5),
|
||
#endif //#ifdef PRE_MOD_OPERATINGFARM
|
||
};
|
||
};
|
||
|
||
struct AreaType
|
||
{
|
||
enum eType
|
||
{
|
||
Public = 0, // 공용구역
|
||
Private = 1, // 개인구역
|
||
};
|
||
};
|
||
|
||
#if defined( PRE_ADD_VIP_FARM ) || defined( PRE_ADD_FARM_DOWNSCALE )
|
||
struct Attr
|
||
{
|
||
enum eType
|
||
{
|
||
None = 0,
|
||
Vip = 1,
|
||
GuildChampion = 2,
|
||
DownScale = 4,
|
||
};
|
||
};
|
||
#endif // #if defined( PRE_ADD_VIP_FARM ) || defined( PRE_ADD_FARM_DOWNSCALE )
|
||
|
||
struct Max
|
||
{
|
||
enum eMax
|
||
{
|
||
HARVESTITEM_COUNT = 3, // 한 씨앗에서 최대로 나올 수 있는 수
|
||
HARVESTDEPOT_COUNT = 35, // 수확 창고 페이지 얻어오는 최대 수량
|
||
PLANTING_TICK = 3000, // 씨앗 Planting 시간
|
||
HARVESTING_TICK = 3000, // 씨앗 Harvesting 시간
|
||
ADDWATERING_TICK = 3000, // AddWatering 시간
|
||
EXTRA_SERVER_TICK = 1500, // 서버에서 사용하는 추가 시간
|
||
ATTACHITEM_KIND = 20, // 부가아이템 최대 종류 수량
|
||
PLANTING_ATTACHITEM = 30, // 식물심기 할 때 부가아이템 최대 수량
|
||
FARMCOUNT = 100, // 최대 농장 수
|
||
FIELDCOUNT = 200, // 최대 필드 수
|
||
FIELDCOUNT_PERCHARACTER = 30, // 캐릭터가 소유권을 가질 수 있는 최대 필드 수
|
||
FARMNAMELEN = (24+1), // 농장 최대 이름 길이
|
||
WAREHOUSE_DEFAULT_KEEPING_DAY = 15, // 농장창고 기본 보관일
|
||
PRIVATEFIELDCOUNT = 5, // 개인최대구역
|
||
PRIVATEPLANTCOUNT = 1, // 일반유저 개인구역 최대수
|
||
};
|
||
};
|
||
|
||
struct AreaState
|
||
{
|
||
enum eState
|
||
{
|
||
NONE, // 아무상태 아님
|
||
PLANTING, // 씨앗 심는 중
|
||
GROWING, // 씨앗 심고 자라는 중
|
||
COMPLETED, // 열매(?) 맺은 상태
|
||
HARVESTING, // 수확하는 상태
|
||
HARVESTED, // 수확 된 상태
|
||
// SubState
|
||
ADDWATER, // 물주는중
|
||
};
|
||
};
|
||
|
||
struct ActionType
|
||
{
|
||
enum eType
|
||
{
|
||
START = 0, // 시작
|
||
CANCEL, // 취소
|
||
COMPLETE, // 완료
|
||
};
|
||
};
|
||
|
||
struct ServerSyncType
|
||
{
|
||
enum eType
|
||
{
|
||
FIELDCOUNT = 0,
|
||
FIELDLIST,
|
||
WAREHOUSE_ITEMCOUNT,
|
||
};
|
||
};
|
||
|
||
const std::string StartPositionStr = "StartPosition";
|
||
const float ElapsedSyncPer = 0.9f;
|
||
};
|
||
|
||
namespace Fishing
|
||
{
|
||
struct Status
|
||
{
|
||
enum eStatus
|
||
{
|
||
FISHING_STATUS_NONE,
|
||
FISHING_STATUS_IDLE,
|
||
FISHING_STATUS_READY, //바로시작가능한 상태
|
||
FISHING_STATUS_FISHING,
|
||
FISHING_STATUS_REWARD,
|
||
};
|
||
};
|
||
|
||
struct Max
|
||
{
|
||
enum eMax
|
||
{
|
||
FISHINGPATTERNMAX = 10, // 낚시포인트테이블 패턴최대
|
||
};
|
||
};
|
||
|
||
struct Cast
|
||
{
|
||
enum eCast
|
||
{
|
||
CASTNONE, //
|
||
CASTAUTO, //자동낚시
|
||
CASTMANUAL, //수동낚시
|
||
};
|
||
};
|
||
|
||
struct Control
|
||
{
|
||
enum eControl
|
||
{
|
||
CONTROL_NONE, //놓았을때
|
||
CONTROL_PULLING, //눌렀을때
|
||
};
|
||
};
|
||
|
||
const int FISHINGCHECKPERIODTICK = 200;
|
||
const int FISHINGMAXGAUGE = 1000 * 100;
|
||
const int FISHINGSYNCTERM = 1 * 1000;
|
||
};
|
||
|
||
|
||
|
||
namespace PCBang
|
||
{
|
||
struct Type
|
||
{
|
||
enum ePCBangType // PCBang 혜택 타입
|
||
{
|
||
Exp = 0, // PCBang 경험치
|
||
Appellation = 1, // PCBang 호칭
|
||
Fatigue = 2, // 피로도
|
||
RebirthCoin = 3, //
|
||
MissionReward = 4,
|
||
NestClearCount = 5,
|
||
ClearBox = 6, // pcbang상자 갯수
|
||
MissionFatigue = 7, // 피로도 미션
|
||
MissionRebirthCoin = 8, // 부활석 미션
|
||
MissionRewardCash = 9,
|
||
};
|
||
};
|
||
|
||
struct Grade
|
||
{
|
||
enum ePCBangGrade
|
||
{
|
||
None = 0,
|
||
Normal = 1, // 일반
|
||
Red = 2,
|
||
Silver = 3,
|
||
Gold = 4,
|
||
Premium = 5,
|
||
};
|
||
};
|
||
};
|
||
|
||
namespace Cash
|
||
{
|
||
struct PaymentRules
|
||
{
|
||
enum ePaymentRules
|
||
{
|
||
None = 0,
|
||
Total = 1,
|
||
Credit = 2,
|
||
Prepaid = 3,
|
||
Petal = 4,
|
||
Seed = 5,
|
||
};
|
||
};
|
||
};
|
||
|
||
#ifdef PRE_ADD_LIMITED_CASHITEM
|
||
namespace LimitedCashItem
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
DitributingTerm = 5000,
|
||
DefaultPacketCount = 200,
|
||
};
|
||
};
|
||
|
||
struct TLimitedQuantityCashItem
|
||
{
|
||
int nProductID;
|
||
int nSaleCount; //팔린갯수다
|
||
};
|
||
|
||
struct TChangedLimitedQuantity
|
||
{
|
||
int nProductID;
|
||
short nMaxCount;
|
||
};
|
||
};
|
||
#endif //#ifdef PRE_ADD_LIMITED_CASHITEM
|
||
|
||
// GlobalEnum.h 이동
|
||
namespace GlobalEnum
|
||
{
|
||
enum TileTypeEnum
|
||
{
|
||
None,
|
||
DryGround,
|
||
ShortGrass,
|
||
LongGrass,
|
||
Stone,
|
||
WetGround,
|
||
Sand,
|
||
Snow,
|
||
Water,
|
||
Temp1,
|
||
Temp2,
|
||
Temp3,
|
||
Temp4,
|
||
Temp5,
|
||
TileTypeEnum_Amount = 14,
|
||
};
|
||
|
||
enum ClientSessionTypeEnum
|
||
{
|
||
Unknown,
|
||
Tcp,
|
||
Udp,
|
||
Auto,
|
||
};
|
||
|
||
// Village Channel Info
|
||
enum eChannelAttribute
|
||
{
|
||
CHANNEL_ATT_NORMAL = 0x00,
|
||
CHANNEL_ATT_PVP = 0x01,
|
||
CHANNEL_ATT_PVPLOBBY = 0x02,
|
||
CHANNEL_ATT_MERITBONUS = 0x04,
|
||
CHANNEL_ATT_GM = 0x08,
|
||
CHANNEL_ATT_DARKLAIR = 0x10,
|
||
CHANNEL_ATT_FARMTOWN = 0x20,
|
||
CHANNEL_ATT_DWC = 0X40,
|
||
CHANNEL_ATT_USELASTMAPINDEX = (CHANNEL_ATT_PVP|CHANNEL_ATT_GM|CHANNEL_ATT_DARKLAIR|CHANNEL_ATT_PVPLOBBY|CHANNEL_ATT_FARMTOWN),
|
||
};
|
||
|
||
enum eMeritBonus
|
||
{
|
||
MERIT_BONUS_NONE = 0,
|
||
MERIT_BONUS_COMPLETEEXP = 1,
|
||
};
|
||
|
||
enum eMapTypeEnum
|
||
{
|
||
MAP_UNKNOWN,
|
||
MAP_VILLAGE,
|
||
MAP_WORLDMAP,
|
||
MAP_DUNGEON,
|
||
};
|
||
|
||
enum eMapSubTypeEnum
|
||
{
|
||
MAPSUB_NONE,
|
||
MAPSUB_NEST,
|
||
MAPSUB_PVPVILLAGE,
|
||
MAPSUB_PVPLOBBY,
|
||
MAPSUB_EVENT,
|
||
MAPSUB_FARM,
|
||
MAPSUB_CHAOSFIELD,
|
||
MAPSUB_DARKLAIR,
|
||
MAPSUB_NESTNORMAL, // #47865 네스트 연습모드용 맵 서브타입.
|
||
MAPSUB_DARKLAIRWORLDZONE,
|
||
MAPSUB_TREASURESTAGE,
|
||
MAPSUB_FELLOWSHIP,
|
||
};
|
||
|
||
struct AllowItemMapType
|
||
{
|
||
enum
|
||
{
|
||
Village = 0x0001,
|
||
WorldMap = 0x0002,
|
||
Dungeon = 0x0004,
|
||
PvP = 0x0008,
|
||
DarkLair = 0x0010,
|
||
Nest = 0x0020,
|
||
};
|
||
};
|
||
|
||
enum eDefaultStartGate
|
||
{
|
||
DEFAULT_STARTPOSITION_GATENO = 1,
|
||
};
|
||
};
|
||
|
||
//UserState
|
||
enum eLocationState
|
||
{
|
||
_LOCATION_NONE = 0, //옵후 라인 입니다
|
||
_LOCATION_MOVE, //서버 이동중인 상태도 체킹해야 할까? 해서 일단 맹글어 봅뉘다
|
||
_LOCATION_LOGIN,
|
||
_LOCATION_VILLAGE,
|
||
_LOCATION_GAME,
|
||
};
|
||
|
||
#if defined(PRE_ADD_WORLD_EVENT)
|
||
namespace WorldEvent
|
||
{
|
||
enum eJobClassType
|
||
{
|
||
All = 0,
|
||
Warrior = 1,
|
||
Archer = 2,
|
||
Soceress = 3,
|
||
Cleric = 4,
|
||
Academic = 5,
|
||
Kali = 6,
|
||
};
|
||
|
||
enum eDetailEventType
|
||
{
|
||
EVENT_NONE = 0, //0
|
||
EVENT1 = 1, //1. 몬스터사망시 경험치(파티)
|
||
EVENT2 = 2, //2. 몬스터사망시 경험치
|
||
EVENT3 = 3, //3. 스테이지클리어 경험치
|
||
EVENT4 = 4, //4. 연합 포인트획득량 증가
|
||
EVENT5 = 5, //5. 아이템 드랍률 증가
|
||
EVENT6 = 6, //6. 피로도 지급
|
||
EVENT7 = 7, //7. 강화 확률 증가
|
||
EVENT8 = 8, //8. 2차인증
|
||
EVENT9 = 9, //9. 파티유지
|
||
EVENT10 = 10, //10. 친구끼리 파티
|
||
};
|
||
};
|
||
#else //#endif //#if defined(PRE_ADD_WORLD_EVENT)
|
||
//Event Type
|
||
enum eEventType1
|
||
{
|
||
_EVENT_1_NONE = 0,
|
||
_EVENT_1_EXP = 1,
|
||
_EVENT_1_FATIGUE = 2,
|
||
_EVENT_1_DROPITEM = 3,
|
||
_EVENT_1_QUEST = 4,
|
||
_EVENT_1_PVPEVENTROOM = 5,
|
||
#if defined( PRE_ADD_REBIRTH_EVENT )
|
||
_EVENT_1_REBIRTH = 6, // 부활제한 해제 이벤트
|
||
#endif //
|
||
};
|
||
|
||
enum eEventType2
|
||
{
|
||
_EVENT_2_NONE = 0,
|
||
_EVENT_2_MONSTERDIE = 1, //exp
|
||
_EVENT_2_CLEAR = 2, //exp
|
||
_EVENT_2_EXTEND_FATIGUE = 3, //event용 추가 피로도
|
||
};
|
||
|
||
enum eEventType3
|
||
{
|
||
_EVENT_3_NONE = 0,
|
||
_EVENT_3_PARTY = 1,
|
||
_EVENT_3_SECONDAUTH = 2,
|
||
_EVENT_3_UPKEEPPARTY = 3, //파티유지용
|
||
_EVENT_3_FRIENDPARTY = 4, //절친?용
|
||
_EVENT_3_EKEYANDECARD = 5, //중국용 ekey, ecard용
|
||
_EVENT_3_CLASSEXP = 6, //클래스별 차등 보너스 경험치 설정
|
||
};
|
||
#endif //#if defined(PRE_ADD_WORLD_EVENT)
|
||
|
||
enum eRebirthType
|
||
{
|
||
_REBIRTH_SELF,
|
||
_REBIRTH_REBIRTHER,
|
||
_REBIRTH_REBIRTHEE
|
||
};
|
||
|
||
enum eTaxType
|
||
{
|
||
TAX_NONE,
|
||
TAX_POST, // 우편세금
|
||
TAX_TRADEREGISTER, // 무인거래소 등록 수수료
|
||
TAX_TRADESELLING, // 무인거래소 판매 수수료
|
||
TAX_POSTDEFAULT, // 우편 발송시 기본 수수료 (1회 1번 우표값)
|
||
TAX_DEAL, // 유저간 거래 세금
|
||
TAX_RESERVE, // [사용안함]
|
||
TAX_TRADEREGISTER_CASH, // 무인거래소 캐시아이템 사용시 등록 수수료
|
||
TAX_TRADEPETALSELLING, // 무인거래소 페탈 판매 수수료
|
||
TAX_WSTORAGE, // 서버창고 수수료
|
||
};
|
||
|
||
enum eMissionType
|
||
{
|
||
MissionType_Normal, // 일반 미션
|
||
MissionType_MetaShow, // 메타업적이면서 클라이언트에 보임
|
||
MissionType_MetaHide, // 메타업적이면서 클라이언트에 안보임
|
||
MissionType_Quest, // 퀘스트에서 연계되서 사용되는 미션. 클라이언트에서 안보임
|
||
MissionType_EventPopUp, // 이벤트 팝업 (MissionTable 테이블에 팝업용 필드 대신 Type값 이용)
|
||
MissionType_HelpAlarm, // 헬프 알람
|
||
MissionType_TimeEvent, // 타임 이벤트 미션
|
||
};
|
||
|
||
enum eRestraintType
|
||
{
|
||
_RESTRAINTTYPE_NONE = 0, //none
|
||
_RESTRAINTTYPE_BLOCK, //account block
|
||
_RESTRAINTTYPE_CHAT, //chat block
|
||
_RESTRAINTTYPE_TRADE, //trade blcok(include market)
|
||
};
|
||
|
||
enum eVoiceChannelType
|
||
{
|
||
_VOICECHANNEL_TYPE_SPARTIAL, //with 3d sound
|
||
_VOICECHANNEL_TYPE_NONESPARTIAL, //none 3d sound
|
||
};
|
||
|
||
enum eVoiceJoinType
|
||
{
|
||
_VOICEJOINTYPE_NONE,
|
||
_VOICEJOINTYPE_TALKONLY,
|
||
_VOICEJOINTYPE_LISTENONLY,
|
||
_VOICEJOINTYPE_TALK_N_LISTEN,
|
||
};
|
||
|
||
enum eBroadcastingEffect
|
||
{
|
||
EffectType_None = 0,
|
||
EffectType_Enchant = 1,
|
||
EffectType_Compound = 2,
|
||
EffectType_Emblem = 3,
|
||
EffectType_Random = 4,
|
||
#ifdef PRE_ADD_SECONDARY_SKILL
|
||
EffectType_Plant = 5,
|
||
EffectType_Water = 6,
|
||
EffectType_Harvest = 7,
|
||
EffectType_Cooking_Making = 8,
|
||
EffectType_Cooking_Finish = 9,
|
||
EffectType_Fishing = 10,
|
||
#endif // PRE_ADD_SECONDARY_SKILL
|
||
|
||
EffectState_None = 0,
|
||
EffectState_Start = 1, // 시도
|
||
EffectState_Success = 2, // 성공
|
||
EffectState_Fail = 3, // 강화파괴, 제작실패(리소스 이름때문에 변경)
|
||
EffectState_SoftFail = 4, // 강화중간실패(등급 하락)
|
||
EffectState_Open = 5, // 랜덤아이템 open시도
|
||
EffectState_VeryGood = 6, // 랜덤아이템
|
||
EffectState_Good = 7, // 랜덤아이템
|
||
EffectState_Normal = 8, // 랜덤아이템
|
||
EffectState_Bad = 9, // 랜덤아이템
|
||
EffectState_Cancel = 10, // 취소
|
||
};
|
||
|
||
enum eChatRoomType // 채팅방 타입
|
||
{
|
||
CHATROOMTYPE_NONE = 0, // 초기값(의미없음)
|
||
CHATROOMTYPE_NORMAL = 1, // 일반
|
||
CHATROOMTYPE_TRADE = 2, // 거래
|
||
CHATROOMTYPE_PR = 3, // PR
|
||
};
|
||
|
||
enum eChatRoomAllow // 입장가능 타입
|
||
{
|
||
CHATROOMALLOW_ALL, // 모두
|
||
CHATROOMALLOW_FRIEND, // 친구
|
||
CHATROOMALLOW_GUILD, // 길드
|
||
CHATROOMALLOW_FRIENDANDGUILD, // 친구 & 길드
|
||
};
|
||
|
||
enum eChatRoomLeave
|
||
{
|
||
CHATROOMLEAVE_NONE = 0, // 의미없는 초기값
|
||
CHATROOMLEAVE_KICKED,
|
||
CHATROOMLEAVE_LEAVE,
|
||
CHATROOMLEAVE_DESTROYROOM,
|
||
CHATROOMLEAVE_FOREVERKICKED,
|
||
};
|
||
|
||
typedef INT64 MONEY_TYPE;
|
||
typedef int TAX_TYPE;
|
||
|
||
typedef int ITEMCLSID;
|
||
typedef INT64 ITEMSERIALID;
|
||
|
||
typedef INT64 CASH_TYPE;
|
||
typedef int CASHITEM_SN;
|
||
|
||
#define ITEMCLSID_NONE 0
|
||
|
||
|
||
inline int GetCashRemainTime(INT64 biSerial)
|
||
{
|
||
return (int)(biSerial & 0x00000000ffffffff);
|
||
}
|
||
|
||
enum eItemReversion
|
||
{
|
||
ITEMREVERSION_NONE = 0,
|
||
ITEMREVERSION_BELONG = 1, //귀속
|
||
ITEMREVERSION_TRADE = 2,
|
||
ITEMREVERSION_GUILD = 3, //길드귀속아이템
|
||
//ITEMREVERSION_GAIN = 2, // 귀속인가 아닌가로 시스템 통합 commented by kalliste 100113
|
||
};
|
||
|
||
//ServiceManager
|
||
enum eServiceState
|
||
{
|
||
_SERVICE_STATE_OFFLINE = 0,
|
||
_SERVICE_STATE_CREATE,
|
||
_SERVICE_STATE_ONLINE,
|
||
_SERVICE_STATE_TERMINATED,
|
||
};
|
||
|
||
enum eServiceStartType
|
||
{
|
||
_SERVICE_START_ALL,
|
||
_SERVICE_START_EACH,
|
||
_SERVICE_START_EACH_BY_LAUNCHERID,
|
||
};
|
||
|
||
enum eServiceStopType
|
||
{
|
||
_SERVICE_STOP_ALL,
|
||
_SERVICE_STOP_ALL_FORCE,
|
||
_SERVICE_STOP_EACH,
|
||
_SERVICE_STOP_EACH_FORCE,
|
||
_SERVICE_STOP_EACH_BY_LAUNCHERID,
|
||
_SERVICE_STOP_EACH_FORCE_BY_LAUNCHERID,
|
||
};
|
||
|
||
enum eBanFileType
|
||
{
|
||
_BANTYPE_ACCOUNTNAME,
|
||
_BANTYPE_ACCOUNTID,
|
||
_BANTYPE_CHARACTERNAME,
|
||
_BANTYPE_MAX,
|
||
};
|
||
|
||
const int SMIDLENMAX = 16; // 서비스 매니저 / 모니터 인증 ID 최대 길이
|
||
const int SMPASSLENMAX = 16; // 서비스 매니저 / 모니터 인증 비번 최대 길이
|
||
|
||
#define MAKE_SM_SVRCHN(pSVRID, pCHNID) MAKELONGLONG(pCHNID, pSVRID) // 채널 정보 관리 시 키로 사용하는 서버/채널 ID 를 조합
|
||
#define GET_SM_SVR(pSVRCHN) HILONG(pSVRCHN) // 채널 정보 관리 시 키에서 서버 ID 를 추출
|
||
#define GET_SM_CHN(pSVRCHN) LOLONG(pSVRCHN) // 채널 정보 관리 시 키에서 채널 ID 를 추출
|
||
|
||
const int WAITPROCESSMAX = 500; //대기열 프로세스맥스
|
||
|
||
enum ePromotionType
|
||
{
|
||
PROMOTIONTYPE_NONE = 0,
|
||
PROMOTIONTYPE_MONSTERKILL,
|
||
PROMOTIONTYPE_STAGECLEAR,
|
||
PROMOTIONTYPE_DECREASEFATIGUE,
|
||
PROMOTIONTYPE_MAX,
|
||
};
|
||
|
||
enum ePromotionConditionType
|
||
{
|
||
PROMOTION_CONDTIONTYPE_NONE = 0,
|
||
PROMOTION_CONDTIONTYPE_MAXLEVEL,
|
||
};
|
||
|
||
enum eNpcTalkString
|
||
{
|
||
NPCTALK_START = 0, // NPCTALK_START은 0으로 항상 유지바랍니다.
|
||
NPCTALK_COMPLETECUTSCENE,
|
||
NPCTALK_END,
|
||
};
|
||
|
||
static std::wstring NpcTalkStringGroup[NPCTALK_END]=
|
||
{
|
||
L"start", // 0번째 스트링은 항상 "start"로 유지바랍니다.
|
||
L"completecutscene",
|
||
};
|
||
|
||
#if defined(PRE_ADD_ENCHANTSHIELD_CASHITEM)
|
||
enum eEnchantGuardType
|
||
{
|
||
ENCHANT_ITEM_NONE = 0,
|
||
ENCHANT_ITEM_GUARD, // 강화 보호젤리 (파괴x)
|
||
ENCHANT_ITEM_SHIELD, // 상위 강화보호 젤리(파괴x, 다운x)
|
||
};
|
||
#endif
|
||
|
||
namespace Partner
|
||
{
|
||
struct Type
|
||
{
|
||
enum eType
|
||
{
|
||
None = 0,
|
||
MS,
|
||
Max,
|
||
};
|
||
};
|
||
}
|
||
|
||
const int GUILDWAR_FINALS_TEAM_MAX = 16; // 16강 기준 16팀
|
||
const int GUILDWAR_DAILY_AWARD_MAX = 7; // 일자별 시상내역
|
||
const int REQ_GUILDWARINFO_TICK_MAX=30*1000; // 응답 재요청 Tick
|
||
const int GUILDWAR_DB_JOB_SYSTEM_RESULT_REQ_MAX=60*1000; // 신청기간, 본선 시작후 1분 경과때 마다 DBJob 결과 가져오기
|
||
const int GUILDWAR_TOURNAMENT_GROUP_MAX = GUILDWAR_FINALS_TEAM_MAX/2; // 토너먼트 그룹
|
||
const int GUILDWAR_TRIAL_POINT_TEAM_MAX = 24; // 예선전 점수 보여줄 24개팀.
|
||
|
||
#if defined(_FINAL_BUILD)
|
||
const int GUILDWAR_FINAL_ROOMSTRAT_TICK_MAX=5*60*1000; // 방이 만들어 진후 방이 시작되는 시간..5분
|
||
const int GUILDWAR_PRE_WIN_SKILL_COOLTIME=60*2*1000; // 길드전 우승스킬 쿨타임 2분
|
||
const int GUILDWAR_TRIAL_POINT_REFRESH_TICK_MAX=10*60*1000; // 10분에 한번씩 가져오기
|
||
const int GUILDWAR_SECRET_TERM_SECOND=24*60*60; // 시크릿 발동, 해제 시간..(second)
|
||
#else
|
||
const int GUILDWAR_FINAL_ROOMSTRAT_TICK_MAX=60*1000; // 방이 만들어 진후 방이 시작되는 시간..
|
||
const int GUILDWAR_PRE_WIN_SKILL_COOLTIME=30*1000; // 길드전 우승스킬 쿨타임
|
||
const int GUILDWAR_TRIAL_POINT_REFRESH_TICK_MAX=60*1000; // 1분에 한번씩 가져오기
|
||
const int GUILDWAR_SECRET_TERM_SECOND=5*60; // 시크릿 발동, 해제 시간..(second)
|
||
#endif // #if defined(_FINAL_BUILD)
|
||
|
||
const float GUILDWAR_SECRET_SATRT_RATE = 0.1f; // 시크릿 발동
|
||
const float GUILDWAR_SECRET_END_RATE = 0.02f; // 시크릿 해제
|
||
|
||
struct sGroup
|
||
{
|
||
int nTeamNum; // Nubmer니까 인덱스 구할려면 -1
|
||
int nOpeningPoint; // 예선점수
|
||
int nTournamentPoint; // 중간점수
|
||
};
|
||
|
||
struct sTournamentGroup
|
||
{
|
||
sGroup ATeam;
|
||
sGroup BTeam;
|
||
UINT unPvPIndex;
|
||
DWORD dwStartTick;
|
||
};
|
||
|
||
enum eGuildWarStepType
|
||
{
|
||
GUILDWAR_STEP_NONE = 0,
|
||
GUILDWAR_STEP_PREPARATION, // 신청기간
|
||
GUILDWAR_STEP_TRIAL, // 예선기간
|
||
GUILDWAR_STEP_REWARD, // 보상기간 (본선포함)
|
||
GUILDWAR_STEP_END,
|
||
};
|
||
|
||
enum eGuildWarEventType
|
||
{
|
||
GUILDWAR_EVENT_START = 0, // 시작
|
||
GUILDWAR_EVENT_END = 1, // 끝
|
||
GUILDWAR_EVENT_MAX = 2,
|
||
};
|
||
|
||
//차수 1=결승, 2=4강, 3=8강, 4=16강
|
||
enum eGuildFinalPart
|
||
{
|
||
GUILDWAR_FINALPART_NONE =0,
|
||
GUILDWAR_FINALPART_FINAL,
|
||
GUILDWAR_FINALPART_4,
|
||
GUILDWAR_FINALPART_8,
|
||
GUILDWAR_FINALPART_16,
|
||
GUILDWAR_FINALPART_MAX,
|
||
};
|
||
|
||
enum eGuildWarRankingType
|
||
{
|
||
GUILDWAR_RANKINGTYPE_TOTAL = 0, // 대상
|
||
GUILDWAR_RANKINGTYPE_SUPPRESSION, // 토벌
|
||
GUILDWAR_RANKINGTYPE_CAPTURE, // 포획
|
||
GUILDWAR_RANKINGTYPE_HARVEST, // 포획
|
||
GUILDWAR_RANKINGTYPE_COOKING, // 요리
|
||
GUILDWAR_RANKINGTYPE_PVP, // 전투
|
||
GUILDWAR_RANKINGTYPE_MAX,
|
||
};
|
||
|
||
enum eGuildWarSettingStep
|
||
{
|
||
REQ_NONE, // 아무 상태아님
|
||
REQ_SCHEDULE, // 전체 스케쥴 요청단계
|
||
REQ_FINAL_SCHEDULE, // 본선 스케쥴 요청단계
|
||
REQ_PRE_WIN, // 지난 차수 승리길드 요청
|
||
REQ_TEAM_POINT, // 청팀, 홍팀 점수요청
|
||
REQ_ALL_COMPLETE, // 모든 정보 셋팅 완료
|
||
};
|
||
|
||
enum eGuildWarTeamType
|
||
{
|
||
GUILDWAR_TEAM_BLUE = 1, // 블루팀
|
||
GUILDWAR_TEAM_RED, // 레드팀
|
||
};
|
||
|
||
enum eGuildWarRewardForCharacter
|
||
{
|
||
GUILDWAR_REWARD_CHAR_PRESENT = 0, // 예선 선물
|
||
GUILDWAR_REWARD_CHAR_MAIL, // 예선 메일
|
||
GUILDWAR_REWARD_CHAR_POINT, // 예선 축제포인트
|
||
GUILDWAR_REWARD_CHAR_MAX,
|
||
};
|
||
|
||
enum eGuildWarRewardForGuild
|
||
{
|
||
GUILDWAR_REWARD_GUILD_SKILL = 0, // 본선 스킬?
|
||
GUILDWAR_REWARD_GUILD_PRESENT, // 본선 선물(Queue)
|
||
GUILDWAR_REWARD_GUILD_MAIL, // 본선 메일(Queue)
|
||
GUILDWAR_REWARD_GUILD_TRIAL_POINT, // 예선 길드 포인트
|
||
GUILDWAR_REWARD_GUILD_FINAL_POINT, // 본선 길드 포인트
|
||
GUILDWAR_REWARD_GUILD_MAX,
|
||
};
|
||
|
||
enum eGuildPointType // 길드 포인트타입
|
||
{
|
||
GUILDPOINTTYPE_STAGE = 1, // 스테이지
|
||
GUILDPOINTTYPE_MISSION = 2, // 미션
|
||
GUILDPOINTTYPE_WAR = 3, // 길드전
|
||
GUILDPOINTTYPE_MAX = 4,
|
||
};
|
||
|
||
struct TAppellationTime
|
||
{
|
||
int nArrayID; //칭호
|
||
__time64_t tExpireDate; //기간
|
||
};
|
||
|
||
struct TCashGlyphData
|
||
{
|
||
BYTE cActiveGlyph; // 문장 슬롯 활성화 상태
|
||
__time64_t tGlyphExpireDate; // 문장 슬롯 기간
|
||
};
|
||
|
||
#if defined( PRE_ADD_SHORTCUT_HELP_DIALOG )
|
||
enum eShortCutHelpDlgType
|
||
{
|
||
HELP_SHORTCUT_CONTROL_KEY = 1,
|
||
HELP_SHORTCUT_CHAR_SET_PLATE,
|
||
HELP_SHORTCUT_CREATE_PLATE,
|
||
HELP_SHORTCUT_DESTROY_PLATE,
|
||
HELP_SHORTCUT_SET_APPELLATION,
|
||
HELP_SHORTCUT_SKILL,
|
||
HELP_SHORTCUT_POTENTIAL,
|
||
HELP_SHORTCUT_ITEM_UPGRADE,
|
||
HELP_SHORTCUT_ITEM_CREATE,
|
||
HELP_SHORTCUT_ITEM_DISJOINT,
|
||
HELP_SHORTCUT_PARTY_PLAY,
|
||
HELP_SHORTCUT_FRIEND,
|
||
HELP_SHORTCUT_PUPILLIST,
|
||
HELP_SHORTCUT_GUILD,
|
||
HELP_SHORTCUT_QUEST,
|
||
HELP_SHORTCUT_STAGE,
|
||
HELP_SHORTCUT_MARKET,
|
||
HELP_SHORTCUT_MAIL,
|
||
HELP_SHORTCUT_VEHICLE,
|
||
HELP_SHORTCUT_PET,
|
||
HELP_SHORTCUT_REPUTATION,
|
||
HELP_SHORTCUT_FARM,
|
||
HELP_SHORTCUT_FISHING,
|
||
HELP_SHORTCUT_COOK,
|
||
HELP_SHORTCUT_MASTER,
|
||
HELP_SHORTCUT_PVP,
|
||
HELP_SHORTCUT_PRIVATE_CHAT,
|
||
#ifdef PRE_ADD_TALISMAN_SYSTEM
|
||
HELP_SHORTCUT_TALISMAN,
|
||
#endif
|
||
};
|
||
#endif // PRE_ADD_SHORTCUT_HELP_DIALOG
|
||
|
||
#if defined( PRE_ADD_INSTANT_CASH_BUY )
|
||
enum eInstantCashShopBuyType
|
||
{
|
||
INSTANT_BUY_NONE = -1,
|
||
INSTANT_BUY_SEAL = 0,
|
||
INSTANT_BUY_ITEMUPGRADE,
|
||
INSTANT_BUY_DEATH,
|
||
INSTANT_BUY_INVEN,
|
||
INSTANT_BUY_STORAGE,
|
||
INSTANT_BUY_POTENTRANS,
|
||
INSTANT_BUY_PET,
|
||
INSTANT_BUY_TRADE,
|
||
INSTANT_BUY_SKILL,
|
||
INSTANT_BUY_FARM,
|
||
INSTANT_BUY_AUTOUNPACK,
|
||
INSTANT_BUY_PLATE,
|
||
INSTANT_BUY_PETEXTEND,
|
||
};
|
||
|
||
enum eInstantShowType
|
||
{
|
||
INSTANT_BUY_HIDE = 0,
|
||
INSTANT_BUY_SHOW,
|
||
INSTANT_BUY_DISABLE
|
||
};
|
||
|
||
const int InstantCashShopTypeMin = 50;
|
||
|
||
#endif // PRE_ADD_INSTANT_CASH_BUY
|
||
|
||
enum eDragonNestType
|
||
{
|
||
None = 0,
|
||
SeaDragon = 1,
|
||
GreenDragon = 2,
|
||
DesertDragon = 3,
|
||
Max,
|
||
};
|
||
|
||
enum eTrace
|
||
{
|
||
TRACE_CHARACTERNAME = 0,
|
||
TRACE_ACCOUNTDBID,
|
||
TRACE_CHRACTERDBID,
|
||
};
|
||
|
||
enum eWindowState
|
||
{
|
||
WINDOW_NONE = 0,
|
||
WINDOW_EXCHANGE = 1, // 거래
|
||
WINDOW_CASHSHOP = (1<<1), // 캐쉬샵
|
||
WINDOW_COSMIX = (1<<2), // 코스튬 합성
|
||
WINDOW_DESIGNMIX = (1<<3), // 코스튬 디자인 합성
|
||
WINDOW_BLIND = (1<<4), // 블라인드 상태(NPC대화, 일반강화, 아이템 조합, 메일, 상점, 무인상점)
|
||
WINDOW_PROGRESS = (1<<5), // 프로그레스 바 상태(랜덤주머니, 펫 등등)
|
||
WINDOW_ISACCEPT = (1<<6), // 수락 창이 뜬 상태..
|
||
WINDOW_RANDOMMIX = (1<<7), // 코스튬 랜덤 합성
|
||
#if defined( PRE_ALTEIAWORLD_EXPLORE )
|
||
WINDOW_ALTEIAWORLD = (1<<8), // 알테이아대륙탐험 창 열린 상태
|
||
#endif // #if defined( PRE_ALTEIAWORLD_EXPLORE )
|
||
};
|
||
|
||
struct TSourceData
|
||
{
|
||
int nItemID;
|
||
int nRemainTime;
|
||
};
|
||
|
||
namespace PartsMonster
|
||
{
|
||
struct Common
|
||
{
|
||
enum UI // UI 에서만 표시되는 파츠의 최대치 , 몬스터의 실제 파츠갯수와는 상관없다.
|
||
{
|
||
Max_PartsSize = 4,
|
||
};
|
||
};
|
||
}
|
||
|
||
enum ePartyModifyResult
|
||
{
|
||
_PARTY_MOD_RET_NONE = 0,
|
||
_PARTY_MOD_RET_ADD,
|
||
_PARTY_MOD_RET_DEL,
|
||
};
|
||
|
||
namespace CommonVariable
|
||
{
|
||
struct Type
|
||
{
|
||
enum eCode
|
||
{
|
||
AddFatigue = 1, // 피로도 추가
|
||
LastPartyDungeonInfo = 2, // 파티상태 이전 던전 서버 정보
|
||
AttendanceEvent = 3, // 출석이벤트
|
||
PvPOccupation_PlayCount = 4, // 점령전 플레이 수
|
||
PvPOccupation_WinCount = 5, // 점령전 승리 수
|
||
PvPOccupation_KillCount = 6, // 점령전 킬 수
|
||
PvPOccupation_OccupyArea = 7, // 점령전 거점 점령
|
||
PvPOccupation_StealArea = 8, // 점령전 거점 쟁탈
|
||
PvPAllKill_PlayCount = 9, // 올킬전 플레이 수
|
||
PvPAllKill_WinCount = 10, // 올킬전 승리 수
|
||
PvPAllKill_KillCount = 11, // 올킬전 킬 수
|
||
MOVESERVER_PARTYID = 12, // 서버 이동할때 임시로 저장할 PartyID
|
||
BESTFRIEND_GIFTBOXID = 13, // 절친 선물 박스ID
|
||
EXPUPITEM_COUNT = 14, // 절대값 경험치증가 아이템
|
||
LevelupEventNew = 15, // 레벨업이벤트 선물(한번 받으면 더이상 받을 수 없는거 체크)
|
||
LimitedShopWeek = 16, // 주간구매제한 상점 초기화
|
||
NotifyCompound = 17,
|
||
TotalLevelSkillMedal = 18, // 통합스킬레벨 메달획득갯수 일일제한
|
||
SampleDataVersion = 19,
|
||
SampleItem1 = 20,
|
||
SampleItem2 = 21,
|
||
SampleItem3 = 22,
|
||
SampleItem4 = 23,
|
||
SampleItem5 = 24,
|
||
SampleItem6 = 25,
|
||
SampleItem7 = 26,
|
||
SampleItem8 = 27,
|
||
SampleItem9 = 28,
|
||
SampleItem10 = 29,
|
||
MuteChatting = 30, // 체팅 금지
|
||
PvPExpupItem_UseCount = 31, // 콜로세움 경험치 증가 아이템 사용횟수
|
||
Max,
|
||
};
|
||
};
|
||
|
||
struct Data
|
||
{
|
||
Type::eCode Type;
|
||
INT64 biValue;
|
||
__time64_t tLastModifyDate;
|
||
};
|
||
}
|
||
|
||
namespace GhoulMode
|
||
{
|
||
struct PointType
|
||
{
|
||
enum eCode
|
||
{
|
||
PlayCount = 0, // 플레이 횟수
|
||
GhoulWin, // 구울 승리
|
||
HumanWin, // 인간 승리
|
||
TimeOver, // 인간 승리(타임 오버)
|
||
GhoulKill, // 구울 Kill
|
||
HumanKill, // 인간 Kill
|
||
HolyWaterUse, // 성수 사용
|
||
Max,
|
||
};
|
||
};
|
||
}
|
||
|
||
namespace BreakInto
|
||
{
|
||
struct Type
|
||
{
|
||
enum eCode
|
||
{
|
||
None = 0,
|
||
GMTrace = 1, // GM 추적
|
||
WorldZoneParty = 2, // 월드존 초대
|
||
PartyRestore = 3, // 파티 복구(?)
|
||
#if defined( PRE_PARTY_DB )
|
||
PartyJoin = 4, // 파티참여
|
||
#endif // #if defined( PRE_PARTY_DB )
|
||
#if defined( PRE_WORLDCOMBINE_PVP )
|
||
WorldPvPRoom = 5,
|
||
#endif
|
||
};
|
||
};
|
||
}
|
||
|
||
namespace AppellationColor
|
||
{
|
||
struct Type
|
||
{
|
||
enum eCode
|
||
{
|
||
White = 0,
|
||
Purple = 1,
|
||
Orange = 2, //기간제 캐쉬 칭호
|
||
Green = 3, //PC방 전용 칭호
|
||
};
|
||
};
|
||
}
|
||
|
||
namespace AppellationType
|
||
{
|
||
struct Type
|
||
{
|
||
enum eCode
|
||
{
|
||
Normal = 0,
|
||
Cash = 1,
|
||
Period = 2,
|
||
PCBang = 3,
|
||
Guild = 4,
|
||
BestFriend = 5,
|
||
ComeBack = 6, //귀환자 칭호
|
||
#ifdef PRE_ADD_GM_APPELLATION
|
||
GM = 7,
|
||
#endif // PRE_ADD_GM_APPELLATION
|
||
|
||
#ifdef PRE_ADD_GM_APPELLAThongse
|
||
hong = 88,
|
||
#endif // PRE_ADD_GM_APPELLATION
|
||
|
||
#ifdef PRE_ADD_GM_APPELLAchengse
|
||
jin = 99,
|
||
#endif // PRE_ADD_GM_APPELLATION
|
||
};
|
||
};
|
||
}
|
||
|
||
namespace IncreaseLifeType
|
||
{
|
||
struct Type
|
||
{
|
||
enum eCode
|
||
{
|
||
LifeStone = 0, //생명석
|
||
RebirthStone = 1, //부활석
|
||
};
|
||
};
|
||
}
|
||
|
||
namespace Ghost
|
||
{
|
||
struct Type
|
||
{
|
||
enum eCode
|
||
{
|
||
Normal = 0,
|
||
PartyRestore = 1,
|
||
};
|
||
};
|
||
}
|
||
|
||
namespace Shop
|
||
{
|
||
struct Type
|
||
{
|
||
enum eCode
|
||
{
|
||
Normal = 0, // 일반샵
|
||
LadderPoint, // 래더포인트샵
|
||
GuildPoint, // 길드전포인드샵
|
||
ReputePoint, // 호감도 포인트샵
|
||
|
||
Combined = 100, // 일반 통합(?) 샵
|
||
CombinedLadderPoint,// 래더 포인트 통합(?) 샵
|
||
CombinedGuildPoint, // 길드전포인트 통합(?) 샵
|
||
CombinedReputePoint,// 호감도포인트 통합(?) 샵
|
||
CombinedSeedPoint, // 시드샵
|
||
};
|
||
};
|
||
|
||
struct Max
|
||
{
|
||
enum eCode
|
||
{
|
||
PurchaseType = 2,
|
||
};
|
||
};
|
||
|
||
struct PurchaseType
|
||
{
|
||
enum eCode
|
||
{
|
||
None = 0,
|
||
Gold, // 골드
|
||
ItemID, // ItemID
|
||
LadderPoint, // 래더포인트
|
||
UnionPoint, // 연합포인트
|
||
GuildPoint, // 길드포인트
|
||
Sample, // 샘플아이템
|
||
Seed, // 귀속화폐(시드)
|
||
};
|
||
};
|
||
|
||
struct PurchaseLimitType
|
||
{
|
||
enum eCode
|
||
{
|
||
None = 0,
|
||
JobID, // JobID
|
||
Level, // 레벨
|
||
PvPRank, // PvP계급
|
||
GuildLevel, // 길드레벨
|
||
LadderGradePoint, // 래더평점( 1vs1 2vs2 .. 등 중 한개라도 넘으면 됨 )
|
||
};
|
||
};
|
||
|
||
struct Repurchase
|
||
{
|
||
enum eCode
|
||
{
|
||
MaxList = 30,
|
||
};
|
||
};
|
||
}
|
||
|
||
namespace DualSkill
|
||
{
|
||
struct Type
|
||
{
|
||
enum eSkillPage
|
||
{
|
||
None = -1,
|
||
Primary = 0,
|
||
Secondary = 1,
|
||
MAX,
|
||
};
|
||
};
|
||
}
|
||
|
||
#if defined(PRE_ADD_SKILL_LEVELUP_RESERVATION)
|
||
namespace ReservationSKillList
|
||
{
|
||
struct Type
|
||
{
|
||
enum eSkillReservation
|
||
{
|
||
UnLock = 1, // 최초 습득..Money 까임
|
||
Acquire = 2, // 초기화후 습득
|
||
LevelUp = 3, // 스킬 레벨업.
|
||
};
|
||
};
|
||
const int ReservationMax = 40;
|
||
}
|
||
#endif
|
||
|
||
namespace Item
|
||
{
|
||
struct SkillUsingType
|
||
{
|
||
enum eCode
|
||
{
|
||
None,
|
||
ApplyStateBlow,
|
||
ApplySkill,
|
||
Eternity, // 효과 영구 적용 아이템
|
||
SkillLevelUp, // 스킬 레벨업용 아이템
|
||
PrefixSkill, // 접두사 스킬용 아이템
|
||
};
|
||
};
|
||
}
|
||
|
||
#ifdef PRE_MOD_RESTRICT_IDENTITY_IP
|
||
namespace SimpleConfig
|
||
{
|
||
struct Type
|
||
{
|
||
enum eType
|
||
{
|
||
None = 0,
|
||
ConnectIPCountMax,
|
||
};
|
||
};
|
||
|
||
struct DefaultValue
|
||
{
|
||
enum Value
|
||
{
|
||
None = 0,
|
||
ConnectIPCountMax = 100,
|
||
};
|
||
};
|
||
|
||
struct ConfigData
|
||
{
|
||
char cCode;
|
||
int nValue;
|
||
};
|
||
const int ConfigDataCountMax = 100;
|
||
};
|
||
#endif //#ifdef PRE_MOD_RESTRICT_IDENTITY_IP
|
||
|
||
namespace PlayerCustomEventUI
|
||
{
|
||
const int PlayerCustomEventUIMax = 100;
|
||
};
|
||
|
||
namespace GuildRecruitSystem
|
||
{
|
||
struct Max
|
||
{
|
||
enum eType
|
||
{
|
||
MaxRequestCount = 3, // 길드모집게시판 최대 신청 갯수
|
||
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
|
||
GuildRecruitRowCount = 5, // 길드모집게시판 Row 개수
|
||
#else
|
||
GuildRecruitRowCount = 6, // 길드모집게시판 Row 개수
|
||
#endif
|
||
GuildRecruitCharacterRowCount = 50, // 길드모집게시판을 통해서 길드가입신청한 유저 목록 Row 개수
|
||
};
|
||
};
|
||
struct RegisterType
|
||
{
|
||
enum eType
|
||
{
|
||
RegisterOn, // 등록
|
||
RegisterMod, // 수정
|
||
RegisterOff, // 삭제
|
||
};
|
||
};
|
||
struct RequestType
|
||
{
|
||
enum eType
|
||
{
|
||
RequestOn, // 등록
|
||
RequestOff, // 해지
|
||
};
|
||
};
|
||
struct AcceptType
|
||
{
|
||
enum eType
|
||
{
|
||
AcceptOn, // 가입 승인
|
||
AcceptOff, // 가입 거절
|
||
};
|
||
};
|
||
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
|
||
struct PuposeCodeType // 길드목적
|
||
{
|
||
enum eType
|
||
{
|
||
AllCode, // 전체
|
||
FriendlyCode, // 친목
|
||
WarCode, // 전투
|
||
NestCode, // 네스트
|
||
PvPCode, // 콜로세움
|
||
};
|
||
};
|
||
struct SortType // 정렬방식
|
||
{
|
||
enum eType
|
||
{
|
||
GuildLevelDesc = 1, // 길드레벨 내림차순
|
||
GuildLevelAsc, // 길드레벨 오름차순
|
||
GuildMemberDesc,// 현재인원수 내림차순
|
||
GuildMemberAsc, // 현재인원수 오름차순
|
||
GuildNameDesc, // 길드명 내림차순
|
||
GuildNameAsc, // 길드명 오름차순
|
||
};
|
||
};
|
||
#endif
|
||
};
|
||
|
||
namespace AsiaAuth
|
||
{
|
||
struct Domain
|
||
{
|
||
enum eDomain
|
||
{
|
||
ThailandPlayParkID,
|
||
ThailandAsiaSoftID,
|
||
ThailandTCGID,
|
||
ThailandDomainMax,
|
||
};
|
||
};
|
||
|
||
static std::string strDomain[Domain::ThailandDomainMax] =
|
||
{
|
||
"THPP",
|
||
"THAS",
|
||
"THTC",
|
||
};
|
||
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
OTPRetCommond = 1002,
|
||
OTPLenMax = 6,
|
||
OTPTimeOut = 1000 * 10,
|
||
};
|
||
};
|
||
|
||
struct Auth
|
||
{
|
||
enum eAuth
|
||
{
|
||
AuthReturnCode = 0,
|
||
AuthDescription,
|
||
AuthMaster_ID,
|
||
AuthAkeyFlag,
|
||
AuthMaster_Akey_ID,
|
||
AuthSessionID,
|
||
AuthFormatCountMax,
|
||
};
|
||
};
|
||
|
||
struct OTP
|
||
{
|
||
enum eOTP
|
||
{
|
||
OTPCommand = 0,
|
||
OTPLength,
|
||
OTPStatus,
|
||
OTPMessage,
|
||
OTPEndPoint,
|
||
OTPFormatCountMax,
|
||
};
|
||
};
|
||
|
||
struct AuthResultCode
|
||
{
|
||
enum eAuthResultCode
|
||
{
|
||
None = -1234567,
|
||
Success = 0,
|
||
Invalid_Request = -1001,
|
||
Invalid_UserID = -1002,
|
||
User_Not_Found = -1003,
|
||
Worng_Password = -1004,
|
||
Disable_User = -1005,
|
||
Database_Error = -9009,
|
||
Unexpected_Error = -9010,
|
||
};
|
||
};
|
||
|
||
struct TAsiaSoftAuthInfo
|
||
{
|
||
int nAuthReturnCode; //참조 AsiaAuth::AuthResultCode
|
||
std::string strDescription;
|
||
std::string strDomain;
|
||
std::string strMasterID;
|
||
std::string strAkeyMasterID; //with itp
|
||
UINT nSessionID;
|
||
bool bAkeyOTPFlag; //need otp
|
||
|
||
TAsiaSoftAuthInfo()
|
||
{
|
||
nAuthReturnCode = AsiaAuth::AuthResultCode::None;
|
||
nSessionID = 0;
|
||
bAkeyOTPFlag = false;
|
||
}
|
||
};
|
||
};
|
||
|
||
namespace WarpVillage
|
||
{
|
||
struct WarpVillageInfo
|
||
{
|
||
int nMapIndex;
|
||
BYTE btLimitLevel;
|
||
|
||
WarpVillageInfo() {}
|
||
WarpVillageInfo(int nIndex, BYTE btLevel)
|
||
: nMapIndex(nIndex), btLimitLevel(btLevel)
|
||
{
|
||
|
||
}
|
||
};
|
||
};
|
||
|
||
namespace NestClear
|
||
{
|
||
struct Type
|
||
{
|
||
enum eNestClearType
|
||
{
|
||
Normal = 1, // 일반유저
|
||
PCBang = 2, // 피씨방에서 클리어 할 경우
|
||
};
|
||
};
|
||
};
|
||
|
||
namespace Gesture
|
||
{
|
||
struct Type
|
||
{
|
||
enum eGestureType
|
||
{
|
||
Normal = 0,
|
||
GuildWarWin = 1,
|
||
GuildRewardItem = 2,
|
||
};
|
||
};
|
||
}
|
||
|
||
#if defined (PRE_ADD_DONATION)
|
||
namespace Donation
|
||
{
|
||
const BYTE MAX_RANKING = 10;
|
||
|
||
struct Ranking
|
||
{
|
||
INT64 biCharacterID;
|
||
WCHAR wszCharacterName[NAMELENMAX];
|
||
BYTE btJobCode;
|
||
WCHAR wszGuildName[GUILDNAME_MAX];
|
||
INT64 nCoin;
|
||
};
|
||
};
|
||
#endif // #if defined (PRE_ADD_DONATION)
|
||
|
||
namespace Dungeon
|
||
{
|
||
struct Difficulty
|
||
{
|
||
enum eCode
|
||
{
|
||
Easy = 0,
|
||
Normal = 1,
|
||
Hard = 2,
|
||
Master = 3,
|
||
Abyss = 4,
|
||
Chaos = 5,
|
||
Hell = 6,
|
||
Max,
|
||
};
|
||
};
|
||
}
|
||
|
||
#if defined( PRE_PARTY_DB )
|
||
|
||
typedef INT64 TPARTYID;
|
||
|
||
namespace Party
|
||
{
|
||
struct Interval
|
||
{
|
||
enum eCode
|
||
{
|
||
GetListPartyTick = (3*1000),
|
||
};
|
||
};
|
||
|
||
struct Max
|
||
{
|
||
enum eCode
|
||
{
|
||
SearchWordLen = (20+1), // 검색어 최대 길이
|
||
WordSpacing= 5, // 검색어 띄어쓰기 최대 수
|
||
SearchWordHistory = 5, // 검색어 히스토리 최대 수
|
||
DetailSearchMapCount = 1, // 상세 검색 가능 맵 최대 수
|
||
WorldCombinePartyList = 2, // 월드통합파티 최대 개수
|
||
WorldCombinePartyBonus = 2 // 월드통합파티 보너스 최대 개수
|
||
};
|
||
};
|
||
|
||
struct LocationType
|
||
{
|
||
enum eCode
|
||
{
|
||
Village = 0,
|
||
Worldmap,
|
||
};
|
||
};
|
||
|
||
struct Constants
|
||
{
|
||
enum eCode
|
||
{
|
||
INVALID_PASSWORD = 0,
|
||
PARTY_LIST_REFRESH_SEC_CLIENT = 5,
|
||
MIN_SEARCH_WORD = 2,
|
||
INVALID_WORLDCOMBINE_TABLE_INDEX = -1,
|
||
INVALID_SERVERID = 0,
|
||
#ifdef PRE_MOD_REQ_JOIN_PARTY_ANSWER_MSG_APP
|
||
INCORRECT_PASSWORD = 10,
|
||
#endif
|
||
};
|
||
};
|
||
|
||
struct OrderType
|
||
{
|
||
enum eCode
|
||
{
|
||
LevelDesc = 0, // 입장레벨 내림차순
|
||
LevelAsc, // 입장레벨 오름차순
|
||
MemberCountDesc, // 인원수 내림차순
|
||
MemberCountAsc, // 인원수 오름차순
|
||
TargetMapDesc, // 목표 스테이지 내림차순
|
||
TargetMapAsc, // 목표 스테이지 오름차순
|
||
TargetMapDifficultyDesc, // 목표 스테이지 난이도 내림차순
|
||
TargetMapDifficultyAsc, // 목표 스테이지 난이도 오름차순
|
||
BonusDesc, // 보너스 내림차순
|
||
BonusAsc, // 보너스 오름차순
|
||
Max,
|
||
Default = LevelDesc,
|
||
};
|
||
};
|
||
|
||
struct StageOrderType
|
||
{
|
||
enum eCode
|
||
{
|
||
TargetMapAllDesc = 0, // 모든 맵 내림차순
|
||
TargetMapNestDesc, // 네스트맵 내림차순
|
||
TargetMapStageDesc, // 스테이지 내림차순
|
||
TargetMapEtcDesc, // 기타 내림차순
|
||
Max,
|
||
Default = TargetMapAllDesc,
|
||
};
|
||
};
|
||
|
||
struct KickKind
|
||
{
|
||
enum eCode
|
||
{
|
||
NormalKick = 0,
|
||
PermanentKick = 1,
|
||
};
|
||
};
|
||
|
||
struct Data
|
||
{
|
||
TPARTYID PartyID;
|
||
int iServerID;
|
||
Party::LocationType::eCode LocationType;
|
||
int iLocationID; // 마을:ChannelID, 월드존,던젼:MapID
|
||
ePartyType Type;
|
||
WCHAR wszPartyName[PARTYNAMELENMAX];
|
||
short nPartyMaxCount;
|
||
int iTargetMapIndex;
|
||
Dungeon::Difficulty::eCode TargetMapDifficulty;
|
||
int iBitFlag;
|
||
int iPassword;
|
||
BYTE cMinLevel;
|
||
ePartyItemLootRule LootRule;
|
||
eItemRank LootItemRank;
|
||
INT64 biLeaderCharacterDBID;
|
||
int iCurMemberCount;
|
||
int iUpkeepCount;
|
||
int iRoomID;
|
||
#if defined( PRE_WORLDCOMBINE_PARTY )
|
||
int nWorldSetID;
|
||
int nPrimaryIndex; // 월드통합파티 기준값(타켓맵)
|
||
#endif
|
||
#if defined( PRE_ADD_NEWCOMEBACK )
|
||
bool bCheckComeBackParty;
|
||
#endif
|
||
#ifdef PRE_ADD_BEGINNERGUILD
|
||
bool bPartyBeginnerGuild; //초보길드원끼리 파티원인지
|
||
#endif //#ifdef PRE_ADD_BEGINNERGUILD
|
||
|
||
void Clear()
|
||
{
|
||
// Zero 초기값들
|
||
PartyID = 0;
|
||
iServerID = 0;
|
||
iLocationID = 0;
|
||
memset( wszPartyName, 0, sizeof(wszPartyName) );
|
||
iTargetMapIndex = 0;
|
||
TargetMapDifficulty = Dungeon::Difficulty::Easy;
|
||
iBitFlag = 0;
|
||
cMinLevel = 0;
|
||
LootRule = ITEMLOOTRULE_NONE;
|
||
LootItemRank = ITEMRANK_D;
|
||
biLeaderCharacterDBID = 0;
|
||
iCurMemberCount = 0;
|
||
iUpkeepCount = 0;
|
||
iRoomID = 0;
|
||
|
||
// 그외
|
||
iPassword = Constants::INVALID_PASSWORD;
|
||
Type = _NORMAL_PARTY;
|
||
LocationType = LocationType::Village;
|
||
nPartyMaxCount = PARTYMAX;
|
||
#if defined( PRE_WORLDCOMBINE_PARTY )
|
||
nWorldSetID = 0;
|
||
nPrimaryIndex = 0;
|
||
#endif
|
||
#if defined( PRE_ADD_NEWCOMEBACK )
|
||
bCheckComeBackParty = false;
|
||
#endif
|
||
#ifdef PRE_ADD_BEGINNERGUILD
|
||
bPartyBeginnerGuild = false;
|
||
#endif //#ifdef PRE_ADD_BEGINNERGUILD
|
||
}
|
||
};
|
||
|
||
struct MemberData
|
||
{
|
||
INT64 biCharacterDBID;
|
||
WCHAR wszCharName[NAMELENMAX];
|
||
BYTE cLevel;
|
||
BYTE cJob;
|
||
bool bLeader;
|
||
#if defined( PRE_WORLDCOMBINE_PARTY )
|
||
int nWorldSetID;
|
||
#endif
|
||
bool bCheckComeback;
|
||
};
|
||
|
||
struct BitFlag
|
||
{
|
||
enum eCode
|
||
{
|
||
JobDice = 1, // 직업주사위 우선
|
||
Password = (1<<1), // 패스워드 설정 파티
|
||
WorldmapAllow = (1<<2), // 월드존 파티 허용
|
||
VoiceChat = (1<<3), // 보이스채팅
|
||
};
|
||
};
|
||
|
||
struct SortWeightIndex
|
||
{
|
||
enum eCode
|
||
{
|
||
SearchWordTitle = 10001,
|
||
SearchWordStage = 10002,
|
||
SearchWordDifficulty = 10003,
|
||
|
||
PublicParty = 20001,
|
||
PrivateParty = 20002,
|
||
|
||
DifficultyAbyss = 30001,
|
||
DifficultyMaster = 30002,
|
||
DifficultyHard = 30003,
|
||
DifficultyNormal = 30004,
|
||
DifficultyEasy = 30005,
|
||
DifficultyNone = 30006,
|
||
|
||
DifficultyAbyssOrderbyAsc = 31001,
|
||
DifficultyMasterOrderbyAsc = 31002,
|
||
DifficultyHardOrderbyAsc = 31003,
|
||
DifficultyNormalOrderbyAsc = 31004,
|
||
DifficultyEasyOrderbyAsc = 31005,
|
||
DifficultyNoneOrderbyAsc = 31006,
|
||
|
||
DifficultyAbyssOrderbyDesc = 32001,
|
||
DifficultyMasterOrderbyDesc = 32002,
|
||
DifficultyHardOrderbyDesc = 32003,
|
||
DifficultyNormalOrderbyDesc = 32004,
|
||
DifficultyEasyOrderbyDesc = 32005,
|
||
DifficultyNoneOrderbyDesc = 32006,
|
||
|
||
LevelLimit = 40001,
|
||
|
||
LevelLimitOrderbyAsc = 41001,
|
||
LevelLimitOrderbyDesc = 42001,
|
||
|
||
SameVillage = 50001,
|
||
ManaRidge = 50002,
|
||
PrairieTown = 50003,
|
||
CataractGateWay = 50004,
|
||
SaintHaven = 50005,
|
||
LotusMash = 50006,
|
||
|
||
PartyMemberCount = 60001,
|
||
|
||
PartyMemberCountOrderbyAsc = 61001,
|
||
PartyMemberCountOrderbyDesc = 62001,
|
||
|
||
TargetStage = 70001,
|
||
|
||
TargetStageAsc = 71001,
|
||
|
||
TargetStageDesc = 72001,
|
||
|
||
NestToggle = 100001,
|
||
StageToggle = 100002,
|
||
EtcToggle = 100003,
|
||
};
|
||
};
|
||
|
||
#if defined( PRE_WORLDCOMBINE_PARTY )
|
||
static bool bIsWorldCombineParty( ePartyType Type )
|
||
{
|
||
switch( Type )
|
||
{
|
||
case _WORLDCOMBINE_PARTY:
|
||
return true;
|
||
}
|
||
|
||
return false;
|
||
}
|
||
#endif // #if defined( PRE_WORLDCOMBINE_PARTY )
|
||
};
|
||
|
||
typedef Dungeon::Difficulty::eCode TDUNGEONDIFFICULTY;
|
||
typedef ePartyItemLootRule TPARTYITEMLOOTRULE;
|
||
typedef eItemRank TITEMRANK;
|
||
typedef INT64 TINSTANCEID; // PartyID,AccountID,RoomID 등등 다양한 용도에 의해 쓰임
|
||
|
||
#else
|
||
|
||
typedef UINT TPARTYID;
|
||
typedef char TDUNGEONDIFFICULTY;
|
||
typedef BYTE TPARTYITEMLOOTRULE;
|
||
typedef BYTE TITEMRANK;
|
||
typedef UINT TINSTANCEID; // PartyID,AccountID,RoomID 등등 다양한 용도에 의해 쓰임
|
||
|
||
#endif // #if defined( PRE_PARTY_DB )
|
||
|
||
#if defined( PRE_ADD_REVENGE )
|
||
namespace Revenge
|
||
{
|
||
struct RevengeTarget
|
||
{
|
||
enum eCode
|
||
{
|
||
eRevengeTarget_None = 0,
|
||
eRevengeTarget_Me,
|
||
eRevengeTarget_Target,
|
||
};
|
||
};
|
||
|
||
struct TargetReason
|
||
{
|
||
enum eCode
|
||
{
|
||
SetNewRevengeTarget = 0, //새로운 리벤지 타겟 대상 등록
|
||
SuccessRevenge = 1, //리벤지 성공
|
||
TargetLeaveGame = 2, //리벤지 타겟이 게임에서 나감
|
||
TargetLeaveRoom = 3, //리벤지 타겟이 PvP 룸에서 나감
|
||
NotPartedInPlay = 4, //타겟이 게임에 참여하지 않음(관전자)
|
||
ResetRevengeTarget = 10, //본인이 게임, 룸 에서 나가거나 관전자라서 리셋
|
||
};
|
||
|
||
};
|
||
|
||
enum
|
||
{
|
||
RevengeRewardMedalCount = 1, //리번지 성공시 보상 메달 수
|
||
RevengeConditionCount = 3, //리벤지에 등록되기 위한 킬 수
|
||
};
|
||
};
|
||
#endif // #if define( PRE_ADD_REVENGE )
|
||
|
||
#define CONVERT_TO_DUNGEONDIFFICULTY(n) static_cast<TDUNGEONDIFFICULTY>(n)
|
||
#define CONVERT_TO_PARTYITEMLOOTRULE(n) static_cast<TPARTYITEMLOOTRULE>(n)
|
||
#define CONVERT_TO_ITEMRANK(n) static_cast<TITEMRANK>(n)
|
||
|
||
namespace MultiLanguage
|
||
{
|
||
//머 예를들어 EU다 하면
|
||
#ifdef _EU
|
||
//Test
|
||
struct SupportLanguage
|
||
{
|
||
enum eSupportLanguage
|
||
{
|
||
Eng = 0, //0 is default
|
||
Ger,
|
||
Fra,
|
||
Esp,
|
||
NationMax,
|
||
};
|
||
};
|
||
|
||
static std::string NationString[SupportLanguage::NationMax] =
|
||
{
|
||
//eSupportNation의 갯수와 짝을 맞춘다~ 로드할때 접미 문장만들기용
|
||
"_ENG",
|
||
"_GER",
|
||
"_FRA",
|
||
"_ESP",
|
||
};
|
||
#else //#ifdef _EU
|
||
//Test
|
||
struct SupportLanguage
|
||
{
|
||
enum eSupportLanguage
|
||
{
|
||
Kor = 0, //0 is default
|
||
NationMax,
|
||
};
|
||
};
|
||
|
||
static std::string NationString[SupportLanguage::NationMax] =
|
||
{
|
||
//eSupportNation의 갯수와 짝을 맞춘다~ 로드할때 접미 문장만들기용
|
||
"_KOR",
|
||
};
|
||
#endif //#ifdef _EU
|
||
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
SerachCountMax = 10,
|
||
};
|
||
};
|
||
|
||
static SupportLanguage::eSupportLanguage eDefaultLanguage = static_cast<SupportLanguage::eSupportLanguage>(0);
|
||
};
|
||
|
||
#ifdef PRE_ADD_48714
|
||
namespace AbuseLog
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
#ifdef _TW
|
||
AbuseLog_Reached_MailID = 441, //바뀌지 않는다! 바뀌면 안덴다~
|
||
#else //#ifdef _TW
|
||
AbuseLog_Reached_MailID = 442, //바뀌지 않는다! 바뀌면 안덴다~
|
||
#endif //#ifdef _TW
|
||
|
||
};
|
||
};
|
||
};
|
||
#endif //#ifdef PRE_ADD_48714
|
||
|
||
#ifdef PRE_ADD_49660
|
||
// 클러릭 디바인 퍼니쉬먼트 스킬 ID
|
||
const int DVINE_PUNISHMENT_SKILL_ID = 3205;
|
||
#endif // #ifdef PRE_ADD_49660
|
||
#if defined(PRE_ADD_DOORS_PROJECT)
|
||
namespace Doors
|
||
{
|
||
struct CharacterAbility
|
||
{
|
||
enum eStateType
|
||
{
|
||
Strength =0, // 힘
|
||
Agility, // 민첩
|
||
Intelligence, // 지능
|
||
Stamina, // 건강
|
||
AttackPMin, // 물리공격력 Min
|
||
AttackPMax, // 물리공격력 Max
|
||
AttackMMin, // 마법공격력 Min
|
||
AttackMMax, // 마법공격력 Max
|
||
DefenseP, // 물리방어력
|
||
DefenseM, // 마법방어력
|
||
Stiff, // 경직력
|
||
StiffResistance, // 경직저항
|
||
Critical, // 크리티컬
|
||
CriticalResistance, // 크리티컬 저항
|
||
Stun, // 스턴
|
||
StunResistance, // 스턴 저항
|
||
FinalDamage, // 파이널 데미지
|
||
FireAttack, // 불속성 공격력
|
||
IceAttack, // 물속성 공격력
|
||
LightAttack, // 빛속성 공격력
|
||
DarkAttack, // 암흑속성 공격력
|
||
FireDefense, // 불속성 공격력
|
||
IceDefense, // 물속성 공격력
|
||
LightDefense, // 빛속성 공격력
|
||
DarkDefense, // 암흑속성 공격력
|
||
MoveSpeed, // 이동속도
|
||
MaxHP, // Max HP
|
||
MaxMP, // Max MP
|
||
MaxType,
|
||
};
|
||
};
|
||
}
|
||
#endif
|
||
|
||
namespace BeginnerGuild
|
||
{
|
||
struct Type
|
||
{
|
||
enum eType
|
||
{
|
||
Normal = 0,
|
||
Beginner = 1,
|
||
};
|
||
};
|
||
|
||
struct StringIndex
|
||
{
|
||
enum eStringIndex
|
||
{
|
||
GuildTitle = 1594, //초보자길드 타이틀 uistring Index
|
||
GuildNotice = 1386, //초보자길드 공지 uistring Index
|
||
GuildRegisterContents = 1598,
|
||
};
|
||
};
|
||
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
PartyBonusRate = 5, //초보자길드원끼리 파티시 추가 경험치
|
||
};
|
||
};
|
||
}
|
||
|
||
namespace WillSendMail
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
WIllMailPacketMax = 20, //뒤집어 쓰겠지?
|
||
WillSendMail_Memo_Size = 20, //디비는 30으로 잡혀있다.
|
||
WillSendMail_NoRecord_RetCode = 103326,
|
||
};
|
||
};
|
||
|
||
struct TWillSendInfo
|
||
{
|
||
int nMailID;
|
||
WCHAR wszMemo[WillSendMail::Common::WillSendMail_Memo_Size];
|
||
};
|
||
};
|
||
|
||
namespace Doors
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
AuthenticationKey_LenMax = 6,
|
||
};
|
||
};
|
||
};
|
||
|
||
#if defined( PRE_ADD_LIMITED_SHOP )
|
||
namespace LimitedShop
|
||
{
|
||
struct LimitedItemData
|
||
{
|
||
#if defined( PRE_FIX_74404 )
|
||
int nShopID;
|
||
#endif // #if defined( PRE_FIX_74404 )
|
||
int nItemID;
|
||
int nBuyCount;
|
||
int nResetCycle;
|
||
};
|
||
struct LimitedItemType
|
||
{
|
||
enum eCycle
|
||
{
|
||
Day = 1,
|
||
Week = 2,
|
||
};
|
||
};
|
||
}
|
||
#endif
|
||
|
||
#if defined( PRE_PRIVATECHAT_CHANNEL )
|
||
namespace PrivateChatChannel
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
WaitDBResult = -1,
|
||
MinNameLen = 2,
|
||
MaxNameLen = 11,
|
||
#if defined( _WORK )
|
||
MaxMemberCount = 10,
|
||
#else
|
||
MaxMemberCount = 100,
|
||
#endif
|
||
GetDBMaxChannel = 100,
|
||
MAXWORLDCOUNT = 5,
|
||
};
|
||
enum eModType
|
||
{
|
||
ChangePassWord = 1,
|
||
ChangeMaster,
|
||
ExitMember,
|
||
OutMember,
|
||
KickMember,
|
||
JoinMember,
|
||
EnterMember,
|
||
};
|
||
enum eReturnType
|
||
{
|
||
NeedPassWord = 1,
|
||
};
|
||
};
|
||
struct TMemberInfo
|
||
{
|
||
bool bMaster;
|
||
INT64 biCharacterDBID;
|
||
WCHAR wszCharacterName[NAMELENMAX];
|
||
};
|
||
}
|
||
#endif
|
||
#if defined( PRE_ADD_TOTAL_LEVEL_SKILL )
|
||
namespace TotalLevelSkill
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
MAXSLOTCOUNT = 4,
|
||
MAX_STATE_EFFECT_COUNT = 7,
|
||
};
|
||
enum eVillageEffectType
|
||
{
|
||
RepuTationIncrease = 260, // 호감도 증가
|
||
GrowingBoost = 262, // 농장 재배시간 단축
|
||
LadderPointSale = 263, // 래더포인트 할인
|
||
CookExpIncrease = 265, // 요리숙련도 증가
|
||
};
|
||
};
|
||
struct TTotalLevelSkillData
|
||
{
|
||
int nSlotIndex;
|
||
int nSkillID;
|
||
};
|
||
}
|
||
#endif
|
||
|
||
namespace SpecialBox
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
ListMax = 40, // 리스트 최대값
|
||
RewardAllMax = 10, // 보상 최대값
|
||
RewardSelectMax = 50, // 선택보상 최대값
|
||
};
|
||
|
||
enum eRequestDelay
|
||
{
|
||
DelayTime = 5,
|
||
};
|
||
};
|
||
|
||
struct TargetTypeCode
|
||
{
|
||
enum eTargetTypeCode
|
||
{
|
||
AccountAll = 1, // 1=계정전체
|
||
AccountSelect = 2, // 2=계정지정
|
||
CharacterAll = 3, // 3=캐릭터전체
|
||
CharacterSelect = 4, // 4=캐릭터지정
|
||
ConditionSelect = 5, // 5=조건지정
|
||
};
|
||
};
|
||
|
||
struct ReceiveTypeCode
|
||
{
|
||
enum eReceiveTypeCode
|
||
{
|
||
All = 1,
|
||
Select = 2,
|
||
};
|
||
};
|
||
};
|
||
|
||
#if defined( PRE_WORLDCOMBINE_PVP )
|
||
|
||
namespace WorldPvPMissionRoom
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
MaxDBDataCount = 100,
|
||
GetWorldPvPRoomTick = 30*1000,
|
||
WaitStartWorldPvPRoomSecond = 10,
|
||
WorldPvPRoomStartIndex = PvPCommon::Common::MaxRoomCount,
|
||
GMWorldPvPRoomStartIndex = PvPCommon::Common::MaxRoomCount + 100,
|
||
};
|
||
enum eReqType
|
||
{
|
||
NoneType = 0,
|
||
MissionRoom,
|
||
GMRoom,
|
||
};
|
||
};
|
||
}
|
||
|
||
#endif
|
||
|
||
namespace Login
|
||
{
|
||
struct CharacterSortCode
|
||
{
|
||
enum eCharacterSortCode
|
||
{
|
||
None = 0,
|
||
World = 1, // 1=월드,
|
||
Create = 2, // 2=생성,
|
||
Name = 3, // 3=이름,
|
||
Level = 4, // 4=레벨,
|
||
Job = 5, // 5=직업,
|
||
LastLogin = 6, // 6=최근 접속
|
||
Max,
|
||
};
|
||
};
|
||
};
|
||
|
||
namespace CostumeMix
|
||
{
|
||
struct RandomMix
|
||
{
|
||
enum eOpenType
|
||
{
|
||
OpenFail = -1,
|
||
OpenByItem = 0,
|
||
OpenByNpc
|
||
};
|
||
|
||
enum eConst
|
||
{
|
||
MixerCanMixPartsAll = -1,
|
||
MixerCanMixBasicParts = 0,
|
||
};
|
||
};
|
||
}
|
||
|
||
#if defined(PRE_ADD_ACTIVEMISSION)
|
||
namespace ActiveMission
|
||
{
|
||
enum ActiveMissionGainRate
|
||
{
|
||
NoneTypeActiveMissionGainRate = 13,
|
||
NoneTypeActiveMissionGainBonusRate = 15,
|
||
NestTypeActiveMissionGainRate = 5,
|
||
NestTypeActiveMissionGainBonusRate = 8,
|
||
};
|
||
|
||
enum ActiveMissionState
|
||
{
|
||
NOT_ASSIGNED = 0,
|
||
GAIN_MISSION = 1,
|
||
COMPLETE_MISSION = 2,
|
||
};
|
||
};
|
||
#endif
|
||
|
||
#ifdef PRE_FIX_PROP_SHOW_BY_TRIGGER
|
||
namespace PropDef
|
||
{
|
||
struct Option
|
||
{
|
||
enum eTypeWithPriority
|
||
{
|
||
eMinVisibleOption,
|
||
eRandomCreate = eMinVisibleOption,
|
||
eTrigger,
|
||
eMaxVisibleOption
|
||
};
|
||
|
||
enum eValue
|
||
{
|
||
NotSet = -1,
|
||
False,
|
||
True,
|
||
};
|
||
};
|
||
}
|
||
#endif
|
||
|
||
namespace Actoz
|
||
{
|
||
struct ShutdownType
|
||
{
|
||
enum eShutdownType
|
||
{
|
||
Force = 1, // 강제적
|
||
Selective = 2, // 선택적
|
||
};
|
||
};
|
||
}
|
||
|
||
namespace MapGateCondition
|
||
{
|
||
//오픈 시간 설정
|
||
enum eOpenDateTimeType
|
||
{
|
||
oDailyHours = 0, //매일 특정시간에만 열림
|
||
oDayOfWeek = 1, //지정한 요일에만 열림(0~6 : 일~토)
|
||
oDayOfWeekAndHours = 2, //특정 요일 & 시간
|
||
oDayOfWeekDuringFatigueTime = 3, //특정 요일 부터 피로도 리셋 시간까지
|
||
};
|
||
|
||
//클로즈 시간 설정
|
||
enum eCloseDateTimeType
|
||
{
|
||
cMonthlyHours = 10, //특정 날짜 & 시간
|
||
};
|
||
}
|
||
|
||
#ifdef PRE_ADD_SERVER_WAREHOUSE
|
||
namespace Storage
|
||
{
|
||
struct WorldServerStorage
|
||
{
|
||
enum eChargeType
|
||
{
|
||
eFeeCharge,
|
||
eFree
|
||
};
|
||
|
||
enum eInvenType
|
||
{
|
||
eNormal,
|
||
eCash
|
||
};
|
||
};
|
||
}
|
||
#endif
|
||
|
||
#if defined( PRE_ADD_GAMEQUIT_REWARD )
|
||
namespace GameQuitReward
|
||
{
|
||
struct RewardType
|
||
{
|
||
enum eType // 게임 종료 보상
|
||
{
|
||
None, //아무 보상없음
|
||
NewbieReward, //신규 유저 보상
|
||
ComeBackReward, //귀환자 보상
|
||
};
|
||
};
|
||
}
|
||
#endif // #if defined( PRE_ADD_GAMEQUIT_REWARD )
|
||
|
||
#if defined( PRE_ALTEIAWORLD_EXPLORE )
|
||
namespace AlteiaWorld
|
||
{
|
||
struct Info
|
||
{
|
||
enum eInfoType
|
||
{
|
||
JoinInfo,
|
||
PrivateGoldKeyRankInfo,
|
||
PrivatePlayTimeRankInfo,
|
||
GuildGoldKeyRankInfo,
|
||
SendTicketInfo,
|
||
};
|
||
};
|
||
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
MaxRankCount = 10, // 랭킹 최대 수
|
||
MaxSendCount = 10, // 입장권 선물 최대갯수
|
||
MoveNextMapTick = 10000, // 주사위 굴리고 다음맵으로 이동하기까지의 시간
|
||
};
|
||
};
|
||
|
||
struct ResetType
|
||
{
|
||
enum eResetType
|
||
{
|
||
DailyPlayCount = 1, // 일일 플레이횟수
|
||
WeeklyPlayCount, // 주간 플레이횟수
|
||
SendTicketList, // 입장권 보낸 목록
|
||
};
|
||
};
|
||
|
||
struct GoldKeyRankMemberInfo
|
||
{
|
||
int nRankIndex;
|
||
BYTE cJob;
|
||
WCHAR wszCharacterName[NAMELENMAX];
|
||
WCHAR wszGuildName[GUILDNAME_MAX]; // 길드 이름
|
||
int nGoldKeyCount;
|
||
};
|
||
|
||
struct PlayTimeRankMemberInfo
|
||
{
|
||
int nRankIndex;
|
||
BYTE cJob;
|
||
WCHAR wszCharacterName[NAMELENMAX];
|
||
WCHAR wszGuildName[GUILDNAME_MAX]; // 길드 이름
|
||
UINT nPlaySec;
|
||
};
|
||
|
||
struct GuildGoldKeyRankInfo
|
||
{
|
||
int nRankIndex;
|
||
int nGuildID;
|
||
WCHAR wszGuildName[GUILDNAME_MAX]; // 길드 이름
|
||
short wGuildMark; // 길드마크 문양
|
||
short wGuildMarkBG; // 길드마크 배경
|
||
short wGuildMarkBorder; // 길드마크 테두리
|
||
int nGoldKeyCount;
|
||
};
|
||
}
|
||
#endif // #if defined( PRE_ALTEIAWORLD_EXPLORE )
|
||
|
||
#if defined( PRE_ADD_STAMPSYSTEM )
|
||
namespace StampSystem
|
||
{
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
MaxWeekDayCount = 7, // 요일 갯수
|
||
MaxChallengeCount = 8, // 도전과제 최대갯수
|
||
MaxStampSlotCount = MaxChallengeCount * MaxWeekDayCount, // 스탬프 슬롯 갯수
|
||
};
|
||
};
|
||
|
||
struct StampCompleteInfo
|
||
{
|
||
BYTE cChallengeIndex; // 도전과제 Index
|
||
int nWeekDay; // 요일 (일=1,월=2,화=3,수=4,목=5,금=6,토=7)
|
||
};
|
||
};
|
||
#endif // #if defined( PRE_ADD_STAMPSYSTEM )
|
||
|
||
#if defined(PRE_ADD_DWC)
|
||
namespace DWC
|
||
{
|
||
enum eDWCWorld
|
||
{
|
||
DWCWorldID = 1,
|
||
};
|
||
|
||
enum eDWCMapID
|
||
{
|
||
DWCMapID = 44,
|
||
};
|
||
|
||
enum eDWCMember
|
||
{
|
||
DWC_MAX_MEMBERISZE = 3,
|
||
};
|
||
|
||
enum eDWCCharLevel
|
||
{
|
||
DWC_MAX_LEVEL = 40,
|
||
};
|
||
|
||
struct Common
|
||
{
|
||
enum eCommon
|
||
{
|
||
RankPageMaxSize = RankingSystem::RANKINGMAX,
|
||
};
|
||
};
|
||
|
||
enum DWCStatus
|
||
{
|
||
STATUS_NONE = 0, // 대회 기간이 아님.
|
||
STATUS_NORMAL = 1,
|
||
STATUS_PAUSE = 2,
|
||
STATUS_FORCE_TERMINATED = 3,
|
||
};
|
||
|
||
struct FindRankType
|
||
{
|
||
enum eFindRankType
|
||
{
|
||
TeamName = 0,
|
||
CharacterName,
|
||
};
|
||
};
|
||
}
|
||
#endif
|
||
|
||
#if defined(PRE_ADD_GUILD_CONTRIBUTION)
|
||
namespace GuildContribution
|
||
{
|
||
struct TGuildContributionRankingData
|
||
{
|
||
INT64 biCharacterDBID;
|
||
int nRank;
|
||
WCHAR wszCharacterName[NAMELENMAX];
|
||
BYTE cJobCode;
|
||
int nWeeklyGuildContributionPoint;
|
||
};
|
||
}
|
||
#endif // #if defined(PRE_ADD_GUILD_CONTRIBUTION)
|
||
|
||
#if defined( PRE_PVP_GAMBLEROOM )
|
||
|
||
const int SENDGAMBLEROOMWAITTICK = 5 * 60 * 1000; // 5분
|
||
|
||
namespace PvPGambleRoom
|
||
{
|
||
enum eGambleType
|
||
{
|
||
NoneType = 0,
|
||
Gold,
|
||
Petal,
|
||
};
|
||
enum eType
|
||
{
|
||
firstWinner = 0,
|
||
SecondWinner = 1,
|
||
Max = 2, // 보상 받는 유저수
|
||
};
|
||
}
|
||
#endif // #if defined( PRE_PVP_GAMBLEROOM )
|
||
|
||
#if defined(PRE_ADD_EQUIPLOCK)
|
||
namespace EquipItemLock
|
||
{
|
||
enum eLockStatus
|
||
{
|
||
None = 0,
|
||
Lock = 1,
|
||
RequestUnLock = 2,
|
||
};
|
||
|
||
struct TLockItem
|
||
{
|
||
EquipItemLock::eLockStatus eItemLockStatus; //0 : 아무상태도 아님, 1 잠금, 2 잠금해제
|
||
__time64_t tUnLockDate; //잠금 상태면 잠금일, 잠금 해제일이면 잠금 해제일로 사용함
|
||
__time64_t tUnLockRequestDate; //잠금 요청일
|
||
};
|
||
|
||
struct TLockItemInfo
|
||
{
|
||
BYTE cItemSlotIndex;
|
||
TLockItem ItemData;
|
||
};
|
||
}
|
||
#endif // #if defined(PRE_ADD_EQUIPLOCK)
|
||
|
||
#if defined(PRE_ADD_WORLD_MSG_RED)
|
||
namespace WorldChatUseItem
|
||
{
|
||
struct CashItemTypeParam
|
||
{
|
||
enum eItemTypeParam
|
||
{
|
||
BlueBird = 1,
|
||
YellowBird = 2,
|
||
RedBird = 3,
|
||
};
|
||
};
|
||
}
|
||
#endif // #if defined(PRE_ADD_WORLD_MSG_RED)
|
||
|
||
#if defined( PRE_ADD_MAINQUEST_UI )
|
||
namespace QuestRenewal
|
||
{
|
||
struct UIStyle
|
||
{
|
||
enum eStyle
|
||
{
|
||
Basic = 0,
|
||
Renewal = 1,
|
||
};
|
||
};
|
||
|
||
struct SelectType
|
||
{
|
||
enum eType
|
||
{
|
||
Select = 0, // 선택지
|
||
|
||
Continue = 2, // 계속
|
||
Accept = 3, // 수락
|
||
Complete = 4, // 완료
|
||
Finish = 5, // 대화종료
|
||
Return = 6, // 돌아가기
|
||
};
|
||
};
|
||
}
|
||
#endif // #if defined( PRE_ADD_MAINQUEST_UI ))
|