Files
2022-10-26 12:25:11 +08:00

180 lines
6.6 KiB
C

/** ServerConst.h : 서버에서만 사용하는 DEFINE값 정의
*/
#ifndef __SERVER_CONST_H__
#define __SERVER_CONST_H__
// 서버 종류
// 이 정보는 DBTable의 정보와 연구개발쪽과도 동기화가 이루어 져야 한다.
// 수정에 주의!!!!!!!
// Related : Global.h의 GetServerType2String()
enum eSERVER_TYPE
{
UNKNOWN_SERVER = 0,
AGENT_SERVER = 1,
FIELD_SERVER = 2,
BATTLE_SERVER = 3,
GAME_DBPROXY = 4,
WORLD_SERVER = 5,
MASTER_SERVER = 6,
GUILD_SERVER = 7,
ACCOUNT_DBPROXY = 8,
TOURNAMENT_SERVER = 9,
AUTH_AGENT_SERVER = 10, // TODO: DB에 넣기?
PORTAL_SERVER = 11, //14,
SOLARAUTH_SERVER = 12, //15,
SHOP_SERVER = 13, //16,
OP_SERVER = 25, //11, // WOPS(Webzen Online Portal Solution) Agent Server
TEMP_SERVER = 26, //12,
GAME_SERVER = 27, //< FIELD_SERVER와 BATTLE_SERVER를 통칭
AUTH_SERVER = 28,
LOGIN_FRONT_SERVER = 29,
BILLING_SERVER = 30,
CLIENT_SERVER = 31,
#ifdef _NA002635_GP_DP_PROTOCOL_UINIFICATION
RANKING_SERVER = GAME_DBPROXY,
#else
RANKING_SERVER = PORTAL_SERVER,
#endif
MAX_SERVER = 32,
};
enum eSERVER_STATE
{
SERVER_ABNORMAL_DISCONNECTED,
SERVER_BOOTING,
SERVER_NORMAL,
};
enum eDEBUGINFO_TYPE
{
eDEBUGINFO_TYPE_INVALID, // 이 값이 날라오면 디버그정보를 보내지 않음
eDEBUGINFO_TYPE_DAMAGE, // 데미지 디버그정보
eDEBUGINFO_TYPE_AGGRO, // 어그로 디버그정보(배틀레코드)
eDEBUGINFO_TYPE_MONSTERSKILL, // 몬스터 스킬정보
eDEBUGINFO_TYPE_MAX,
};
enum eAUTH_LOGOUT_REASON
{
AUTH_LOGOUT_NORMAL = 0, // 정상 로그아웃
AUTH_LOGOUT_AUTH_REQUEST = 1, // 인증서버의 요청으로 강제 로그아웃
AUTH_LOGOUT_USER_NOT_FOUND = 2, // 인증에서 보낸 유저를 찾을 수 없는 경우 게임Agent서버에서 강제 로그아웃
AUTH_LOGOUT_HACKING_USER = 3, // 스핵 등등의 해킹툴 사용 유저에 대한 게임Agent서버에서 강제 로그아웃
AUTH_LOGOUT_WRONG_AUTHKEY = 4, // 인증키가 일치하지 않은 유저의 접속으로 게임Agent서버에서 강제 로그아웃
AUTH_LOGOUT_WRONG_VERSION = 5, // 버전이 일치하지 않아 게임Agent서버에서 강제 로그아웃
AUTH_LOGOUT_ETC = 6,
};
enum eABUSE_TYPE
{
eABUSE_FORCED_DISCONNECT = 1, // 강제종료(강제종료 5회면 블락됨)
eABUSE_TEMPORARY_BLOCK = 2, // 임시블락(Master가 떠 있는 동안 블락)
eABUSE_WORKPLACE_IP_BLOCK = 3, // 작업장 IP BLOCK
eABUSE_DUPLICATE_ITEM_SERIAL = 4, // 아이템 중복시리얼 발생
eABUSE_CRASH_REPORT = 5, // 클라이언트 크래쉬 리포트
eABUSE_LOGIC_VIOLATION = 6, // 로직위반(로직위반 점수가 일정수치를 넘어가면 강제종료됨)
};
enum eABUSE_SUB_TYPE
{
eABUSE_SUB_FORCED_DISCONNECT = 0, // 어뷰징위반 누적으로인한 강제종료
eABUSE_SUB_TEMPORARY_BLOCK = 1, // 강제종료 누적으로인한 임시블락(마스터서버가 떠 있는 동안)
eABUSE_SUB_WORKPLACE_IP_BLOCK = 2, // 작업장 IP 블럭
eABUSE_SUB_DUPLICATE_ITEM_SERIAL_EXSIT = 3, // 아이템 중복 시리얼 존재
eABUSE_SUB_DUPLICATE_ITEM_SERIAL_GENERATE = 4, // 아이템 중복 시리얼 발급
eABUSE_SUB_CRASH_REPORT = 5, // 크래쉬 리포트
eABUSE_SUB_LOGIC_VIOLATION_ATTACK_SPEED = 6, // 공속 위반
eABUSE_SUB_LOGIC_VIOLATION_ATTACK_SEQUENCE = 7, // 공격순서 위반
eABUSE_SUB_LOGIC_VIOLATION_ATTACK_RANGE = 8, // 공격거리 위반
eABUSE_SUB_LOGIC_VIOLATION_ATTACK_TYPE = 9, // 공격타입 위반
eABUSE_SUB_LOGIC_VIOLATION_INVALID_POSITION = 10, // 좌표 이상
eABUSE_SUB_LOGIC_VIOLATION_NOT_SYNC_POSITION = 11, // 서버클라 위치동기화 위반
eABUSE_SUB_LOGIC_VIOLATION_MOVE_RANGE = 12, // 이동거리 위반
eABUSE_SUB_LOGIC_VIOLATION_MOVE_CRACKED_PACKET = 13, // 이동관련 크랙된 패킷
eABUSE_SUB_LOGIC_VIOLATION_MOVE_SPEED = 14, // 이속 위반
eABUSE_SUB_LOGIC_VIOLATION_SECURITY_QUERY_DISCONNECT = 15, // 보안쿼리 위반
eABUSE_SUB_LOGIC_VIOLATION_HEARTBEAT_DISCONNECT = 16, // 하트비트 위반
eABUSE_SUB_LOGIC_VIOLATION_HACKSHIELD_DISCONNECT = 17, // 핵쉴드 위반
eABUSE_SUB_LOGIC_VIOLATION_UNEXPECTED_PACKET = 18, // 예상하지 못한 패킷전송
eABUSE_SUB_LOGIC_VIOLATION_TEMPUSER_AUTH_DISCONNECT = 19, // TempUser 인증
eABUSE_SUB_LOGIC_VIOLATION_MISSION_REWARD = 20, // 미션보상 위반
eABUSE_SUB_LOGIC_VIOLATION_LOADING_TIME_SHORT = 21, // 로딩시간 위반(로딩시간이 너무 짧은경우)
eABUSE_SUB_LOGIC_VIOLATION_WRONG_SECTOR_WORLDSVR = 22, // 월드서버에서 잘못된 섹터 인덱스값에 대한 로그를 찍는경우
eABUSE_SUB_LOGIC_VIOLATION_USER_NONE_WORLDSVR = 23, // 게임서버에는 접속해 있는데 월드서버에는 유저가 없는 경우
eABUSE_SUB_LOGIC_VIOLATION_UNKNOWN_PROTOCOL = 24, // 전혀 엉뚱한 패킷 전송(툴이라면 오래된 버전의 패킷을 전송하는 경우를 들 수 있다.)
eABUSE_SUB_LOGIC_VIOLATION_ASSERTION_FLOW = 25, // 확정 플로우 위반
eABUSE_SUB_LOGIC_VIOLATION_HACKSHIELD_INVALID_STATUS_DISCONNECT = 26, // 핵쉴드 위반 V2 - (툴 가능성도 있지만 핵쉴드 패치 못받고 들어올 수 있는 경우)
eABUSE_SUB_MAX,
};
//MSG_DG_OTHER_EXIST_CHARNAME_SYN 참조!
enum eCHARNAME_QUERY_ACTION_TYPE
{
eCHARNAME_ACTION_SHOP_SEND_GIFT, //< 샵에서 아이템을 선물할때, 캐릭터존재여부 체크
eCHARNAME_ACTION_DEFAULT, // Added by __NA000000_SHOP_USERID_50_PASSING_PROC__
};
//__NA_0_20090627_HEIM_ACQUISITION_S2S_NOTIFICATION
// 게임 내 하임 획득 유형
enum eHEIM_ACQUISITION_TYPE
{
eHEIM_ACQUISITION_PICKUP, // 줍기
eHEIM_ACQUISITION_QUEST, // 보상
eHEIM_ACQUISITION_MISSION, // 미션
};
// __KR_001355_20090608_EXP_ACQUISITION_NOTIFICATION
enum eEXP_ACQUISITION_TYPE
{
eEXP_ACQUISITION_HUNTING, //사냥
eEXP_ACQUISITION_QUEST, //보상
eEXP_ACQUISITION_MISSION, //미션
};
//__NA_0_20090627_HEIM_CONSUMPTION_S2S_NOTIFICATION
// 게임 내 하임 소비 유형
enum eHEIM_CONSUMPTION_TYPE
{
eHEIM_CONSUMPTION_WAYPOINT, // 웨이포인트 이용
eHEIM_CONSUMPTION_RANKUP, // 랭크업 비용
eHEIM_CONSUMPTION_COMPOSITION, // 조합 비용
eHEIM_CONSUMPTION_REPAIR, // 아이템 수리 비용
eHEIM_CONSUMPTION_NPC_SHOP, // NPC 상점에서 아이템 구입 (재구입 제외)
eHEIM_CONSUMPTION_ENCHANT, // 인챈팅 비용
};
// __KR_001355_20090805_CHECK_GROUPSYSTEM_MSG
//20090805 현재 그룹 시스템에서 클라이언트로 그룹 관련 정보임을 알리는것으로 쓰임
enum eGAME_CONTENT_TYPE
{
GAME_CONTENT_NORMAL = 1, //기본 시스템
GAME_CONTENT_GROUPING = 2, //그룹 시스템
};
// NOTE: f101210.3L, moved from filtered eGM_STRING enumeration
enum eGM_STRING
{
GMSTR_NONE = 0,
//----------------------------------------------------------------------------------------------
GMSTR_TURNON,
GMSTR_TURNOFF,
//----------------------------------------------------------------------------------------------
GMSTR_MAX
};
#endif // __SERVER_CONST_H__