Files
Sun1602/Server/Common/Protocol_AG.h
T
2022-10-26 12:25:11 +08:00

403 lines
14 KiB
C

#ifndef __PROTOCOL_AG_H__
#define __PROTOCOL_AG_H__
//-------------------------------------------------------------------------------------------------------
// * Prefix
// C : Client
// G : Game Server
// M : Master Server
// D : DBP Server
//
// * Postfix
// SYN - Server에 요청
// ACK - 요청에 대한 허락
// NAK - 요청에 대한 거부
// CMD - Server의 명령
// BRD - Server가 동기화 관련 내용을 알림
// DBR - DBProxy에서만 사용함!
//
// * 프로토콜 Naming Rule
// Prefix_카테고리명_프로토콜명_Postfix
// ex) CG_CONNECTION_REGISTER_SYN
//
//-------------------------------------------------------------------------------------------------------
#include "Protocol_CG.h"
/// 카테고리
enum eAG_CATEGORY
{
AG_CONNECTION = CATEGORY_GENERATOR_200, //
AG_CHARINFO = CATEGORY_GENERATOR_201,
AG_SYNC = CATEGORY_GENERATOR_202,
AG_ZONE = CATEGORY_GENERATOR_203,
AG_PARTY = CATEGORY_GENERATOR_204,
AG_STATUS = CATEGORY_GENERATOR_205,
AG_GM = CATEGORY_GENERATOR_206,
AG_GUILD = CATEGORY_GENERATOR_207,
AG_CHUNTING = CATEGORY_GENERATOR_208,
AG_MISSION = CATEGORY_GENERATOR_209,
AG_CHAO = CATEGORY_GENERATOR_210,
AG_ITEM = CATEGORY_GENERATOR_211,
AG_EVENT = CATEGORY_GENERATOR_212,
AG_MAX = CATEGORY_GENERATOR_213,
};
enum eAG_SYNC_PROTOCOL
{
AG_SYNC_PLAYER_ENTER_SYN,
AG_SYNC_PLAYER_ENTER_ACK,
AG_SYNC_PLAYER_ENTER_NAK,
AG_SYNC_PLAYER_WARP_SYN,
AG_SYNC_PLAYER_WARP_ACK,
AG_SYNC_PLAYER_WARP_NAK,
};
enum eAG_CONNECTION_PROTOCOL
{
AG_CONNECTION_DISCONNECT_CMD, //< 클라이언트가 끊어 졌을 경우
AG_CONNECTION_UNREGISTER_CMD,
AG_WORLDSERVER_INFO_CMD, //< 게임서버에 월드서버의 접속유무를 전해준다.
//__NA000630_070910_G2A_PACKET_BROADCATER__
AG_CONNECTION_PACKET_BROADCASTER_ONEtoN_SYN, //< 게임서버에서 BROADCAST 되는 메시지를 AgentServer가 위임할 수 있는 패킷
//__NA_000839_20080129_PVP_OPTION
AG_CONNECTION_SERVER_INFO_CMD,
//_NA_0_20080530_ABUSING_USER_VERIFY_BY_WORLDSERVER
AG_WORLDSERVER_ABUSING_USER_VERIFY_QUERY_CMD,
//__NA_001093_20080623_SERVER_DISCONNECT_
AG_CONNECTION_DISCONNECT_SERVER_CMD, // 서버간의 연결이 끊어 졌을때 AgentServer 처리 예) GameServer와 DBP 같은
//__NA001334_090420_SERVER_SELECT_FACILITY__
AG_CONNECTION_SERVER_SELECT_CONTROL_SYN,
AG_CONNECTION_SERVER_SELECT_CONTROL_ACK,
//
AG_CONNECTION_DBCONNECT_UPDATE_CMD, // _NA000000_DBQUERY_REVERSAL_STATE_PREVENTION
AG_CONNECTION_GROUND_CMD, // NOTE: f110617.1L
};
enum eAG_CHARINFO_PROTOCOL
{
AG_CHARINFO_CHAR_CMD,
AG_CHARINFO_FIELD_POS_FOR_RETURN_PARTY_CMD, // 비정상 종료시 파티 복귀를 위해...
AG_CHARINFO_PCBANG_BILL_CMD, //_PCBANG_POLICY_CHANGE_POST_EXPIRED
AG_CHARINFO_PREMIUMSERVICE_BILL_CMD, // _NA_006413_20130201_PREMIUMSERVICE_ITEM
};
enum eAG_ZONE_PROTOCOL
{
AG_ZONE_LOBBY_CREATE_CMD,
AG_ZONE_HUNTING_CREATE_CMD,
AG_ZONE_MISSION_CREATE_CMD,
AG_ZONE_VILLAGE_CREATE_CMD,
AG_ZONE_PVP_CREATE_CMD,
AG_ZONE_CHUNTION_CREATE_CMD,
AG_ZONE_FIELD_CREATE_CMD,
AG_ZONE_ROOM_DESTROY_CMD,
AG_ZONE_ROOM_JOIN_CMD,
AG_ZONE_ROOM_JOIN_SYN,
AG_ZONE_ROOM_JOIN_ACK,
AG_ZONE_ROOM_JOIN_NAK,
AG_ZONE_ROOM_LEAVE_CMD,
AG_ZONE_ROOM_LEAVE_SYN,
AG_ZONE_ROOM_LEAVE_ACK,
AG_ZONE_ROOM_LEAVE_NAK,
AG_ZONE_MASTER_CHANGED_CMD,
AG_ZONE_MISSION_LEAVE_CMD,
AG_ZONE_PVP_INFO_CMD,
AG_ZONE_PORTAL_FIELD_MOVE_SYN,
AG_ZONE_PORTAL_FIELD_MOVE_ACK,
AG_ZONE_PORTAL_FIELD_MOVE_NAK,
AG_ZONE_CHUNTING_LEAVE_CMD, // 경쟁헌팅에서 강제추방
AG_ZONE_CHUNTING_COMPETITION_END_CMD, // 경쟁종료
AG_ZONE_RETURN_VILLAGE_SYN,
AG_ZONE_RETURN_VILLAGE_ACK,
AG_ZONE_RETURN_VILLAGE_NAK,
AG_ZONE_CHANGE_SPECIALTYPE_CMD, // 방의 SpecialType이 바뀜
AG_ZONE_CAN_CREATE_TOP_OF_TRIAL_SYN ,
AG_ZONE_CAN_CREATE_TOP_OF_TRIAL_ACK ,
AG_ZONE_CAN_CREATE_TOP_OF_TRIAL_NAK ,
// __NA001226_INSTANCE_DUNGEON_EXTENTION__
AG_ZONE_CAN_CREATE_INSTANCE_DUNGEON_SYN = AG_ZONE_CAN_CREATE_TOP_OF_TRIAL_SYN,
AG_ZONE_CAN_CREATE_INSTANCE_DUNGEON_ACK = AG_ZONE_CAN_CREATE_TOP_OF_TRIAL_ACK,
AG_ZONE_CAN_CREATE_INSTANCE_DUNGEON_NAK = AG_ZONE_CAN_CREATE_TOP_OF_TRIAL_NAK,
AG_ZONE_INSTANCE_CREATE_CMD,
AG_ZONE_TUTORIAL_SKIP_SYN ,
AG_ZONE_TUTORIAL_SKIP_ACK , // 이게 필요한지는 따져보자.
AG_ZONE_RETURN_TO_ROOM_INFO_SYN , // 방장이 있는 필드,위치등을 요청
AG_ZONE_RETURN_TO_ROOM_INFO_ACK , // 방장이 있는 필드,위치등을 요청에 대한 응답 (TRUE, FALSE 포함)
//AG_ZONE_RETURN_TO_ROOM_SYN ,
//AG_ZONE_RETURN_TO_ROOM_ACK ,
//__NA000844_080324_100LEVEL_CHAGNEUP_REBUILDING__
AG_ZONE_CAN_CREATE_100LEVEL_QUEST_MISSION_SYN , // '몽환의 구슬' 정보 + 방 만들기 정보 + 파티 조건 (100레벨 유저들
AG_ZONE_CAN_JOIN_100LEVEL_QUEST_MISSION_ACK , //
//__NA000941_080204_TASK_SURVIVAL_SOLOING_QUEST_SYSTEM__ // : 타락한 사원
AG_ZONE_SSQ_JOIN_INFO_SYN , //A->G
AG_ZONE_SSQ_JOIN_INFO_ACK , //G->A
AG_ZONE_SSQ_JOIN_SYN , //A->G
AG_ZONE_SSQ_JOIN_ACK , //G->A
AG_ZONE_SSQ_ROOM_CTRL_CMD , //G<->A // 방 생성/파괴, 기타 제어 정보, 복합 명령(CMD 성격, CMD+CMD(SYN, ACK)처리로도 이뤄진다.
AG_ZONE_SSQ_ROOM_INFO_BRD , //G->A->C
//AG_ZONE_SSQ_ROOM_INFO_SYN , //A->G
//__NA1279_1281_090209_TIMELINE_QUEST_BASED_MISSION__
AG_ZONE_QUEST_PORTAL_REQUEST_SYN , //G->A
AG_ZONE_QUEST_PORTAL_CONTROL_CMD , //A->G
AG_ZONE_QUEST_PORTAL_ENTER_SYN , //A->G
AG_ZONE_QUEST_PORTAL_ENTER_ACK , //G->A (SUCCESS|FAIL)
//__NA001281_BATTLEZONE_ENTER_CONSTRAINTS_CHANGE_IN_LOBBY__
AG_ZONE_CAN_CREATE_ROOM_SYN , //A->G //[TimeLine] 배틀존 제한 설정 변경에 따름.
AG_ZONE_CAN_CREATE_ROOM_ACK ,
AG_ZONE_LOBBY_CREATE_SYN , //C->A(forward with filtering)->G
AG_ZONE_LOBBY_CREATE_ACK , //G->A->C
AG_ZONE_LOBBY_JOIN_SYN , //C->A(forward with filtering)->G
AG_ZONE_LOBBY_JOIN_ACK , //G->A->C
//__NA000000_090622_MOB_ABILITY_CONTROL_CHANGE__
AG_ZONE_CHANGE_MONSTER_ABILITY_CMD , //A->G (Agent에 의한 인원 변동에 따른 능력치 조절 시점 조정
AG_ZONE_DOMINATION_FIELD_CREATE_CMD , // A->G 지역 점령전 맵 생성 특정채널에만 생성
AG_ZONE_DOMINATION_FIELD_INFO_SYN , // A->G 지역 점령전 정보(이벤트상태) 전달
AG_ZONE_DOMINATION_FIELD_INFO_ACK , // G->A 지역 점령전 정보(길드 정보) 전달
AG_ZONE_DOMINATION_FIELD_INFO_NAK ,
AG_ZONE_DOMINATION_REQ_KICK_CMD , // G->A 플레이어 1인을 강제 추방 한다.
// _NA_000038_20100316_VIEW_TO_JOINABLE_ROOM_IN_LOBBY
AG_ZONE_CHECK_MISSION_ROOM_LIST_SYN , // A->G 미션방 목록이 입장 가능한지 문의 요청
AG_ZONE_CHECK_MISSION_ROOM_LIST_ACK , // G->A 요청한 미션방 목록이 입장 가능한지 응답
//_NA_20110630_BATTLE_ZONE_RENEWAL
AG_ZONE_CAN_CREATE_ROOM_OF_PARTY_SYN ,
AG_ZONE_CAN_CREATE_ROOM_OF_PARTY_ACK ,
#ifdef _NA_006826_20130722_DOMINATION_RENEWAL
AG_ZONE_DOMINATION_NOTIFIER_BRD , // G->A 지역 점령전 전체 공지
#endif // _NA_006826_20130722_DOMINATION_RENEWAL
AG_ZONE_SPAFIELD_CREATE_CMD , //_NA_008069_20150210_ADD_SPA_SYSTEM
//_NA_008069_20150210_ADD_SPA_SYSTEM
AG_ZONE_SPA_ENTER_SYN ,
AG_ZONE_SPA_ENTER_ACK ,
AG_ZONE_SPA_LEAVE_SYN ,
AG_ZONE_SPA_LEAVE_ACK ,
};
enum eAG_PARTY_PROTOCOL
{
AG_PARTY_CREATE_CMD, // 파티 생성(게임서버에 파티생성을 지시한다.)
AG_PARTY_DESTROY_CMD, // 파티 소멸
AG_PARTY_JOIN_CMD, // 파티 가입
AG_PARTY_LEAVE_CMD, // 파티 탈퇴
AG_PARTY_CHANGE_MASTER_CMD, // 파티장 변경
AG_PARTY_ITEM_DISTRIBUTION_CHANGE_CMD,
AG_PARTY_JOIN_SYN,
AG_PARTY_JOIN_ACK,
AG_PARTY_JOIN_NAK,
AG_PARTY_LEAVE_BY_GUILDRELATION_SYN,
//////////////////////////////////////////////////////////////////////////
//__NA001336_090514_PARTY_NAVI_SUPPORT__
AG_PARTY_NAVI_INFO_BRD,
//_NA_20110630_BATTLE_ZONE_RENEWAL
AG_PARTY_CAN_CHANGE_OPTION_SYN,//옵션 변경 가능 여부 요청
AG_PARTY_CAN_CHANGE_OPTION_ACK,
AG_PARTY_CAN_CREATE_ROOM_SYN,//
AG_PARTY_CAN_CREATE_ROOM_ACK,
AG_PARTY_READY_STATE_SYN,
AG_PARTY_READY_STATE_ACK,
AG_PARTY_NOTIFY_PARTY_MEMBER_INFO_CMD,
AG_PARTY_PARTYROOM_ITEM_DELETE_CMD,
AG_PARTY_RESET_READY_STATE_CMD,
AG_PARTY_CAN_JOIN_ROOM_SYN,
AG_PARTY_CAN_JOIN_ROOM_ACK,
AG_PARTY_SEND_MEMBER_RENDER_INFO_CMD,
AG_CHAOS_ZONE_PACKET, //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND
};
enum eAG_STATUS_PROTOCOL
{
AG_STATUS_LEVEL_UP_CMD,
AG_STATUS_MAXHP_CHANGE_CMD,
AG_STATUS_HP_CHANGE_CMD,
AG_STATUS_DEAD_CMD,
AG_STATUS_RESURRECTION_CMD,
AG_STATUS_MP_CHANGE_CMD,
AG_STATUS_MAXMP_CHANGE_CMD,
AG_STATUS_DECREASE_DURA_CMD, // 내구도 감소
AG_STATUS_CHANGE_STATE_CMD,
AG_STATUS_PLAYING_TUTORIAL_CMD, // 튜토리얼 필드 제어, 튜토리얼 미션 제어용, 마을 코드 처리
AG_STATUS_INTERCEPTION_SYN,
AG_STATUS_INTERCEPTION_ACK,
AG_STATUS_INTERCEPTION_NAK,
//__NA001336_090514_PARTY_NAVI_SUPPORT__
AG_STATUS_CHAR_STAT_CHANGE_CMD, // 각종 스탯 변화 (HP/MP, (max)HP/MP...)
//__NA_001290_20090525_SHIELD_SYSTEM
AG_STATUS_MAXSD_CHANGE_CMD,
//__NA_0_20090627_HEIM_ACQUISITION_S2S_NOTIFICATION
AG_STATUS_HEIM_ACQUISITION_NTF, // 하임 획득 통지
//__NA_0_20090627_HEIM_CONSUMPTION_S2S_NOTIFICATION
AG_STATUS_HEIM_CONSUMPTION_NTF, // 하임 소비 통지
//__NA_001359_20090619_HEIM_LOTTO_SYSTEM
AG_STATUS_LOTTO_REWARD_SYN, // 하임 로또 상금 지급 요청
AG_STATUS_LOTTO_REWARD_ACK, // 하임 로또 상금 지급 응답
//__NA_001359_20090619_HEIM_LOTTO_SYSTEM && _NA_0_20100115_HEIM_LOTTO_TICKET_PURCHASE
AG_STATUS_LOTTO_TICKET_PURCHASE_SYN, // 하임 행운 복권용지 직접 구입 요청
AG_STATUS_LOTTO_TICKET_PURCHASE_ACK, // 하임 행운 복권용지 직접 구입 응답
//__KR_001355_20090608_GROUPINGSYSTEM_GW
AG_STATUS_GROUP_SET_MEMBERINFO_CMD, // 그룹 멤버 정보 세팅
AG_STATUS_GROUP_EXP_ACQUISITION_CMD, //경험치 획득 통지
AG_STATUS_GROUP_ADDEXP_CMD,
AG_STATUS_GROUP_ADDMONEY_CMD,
//_KR_001385_20091202_DOMINATION_RETURN_HEIM
AG_USER_DOMINATION_RETURNHIEM_CMD,
};
enum eAG_GM_PROTOCOL
{
AG_GM_TELEPORT_CMD, // 대상유저를 텔레포트 시킨다.
AG_GM_WHISPER_SET_CMD, // GM 귓속말 켬/끔(World로 패스)
AG_GM_USERCHAT_BLOCK_CMD, // 사용자 채팅 금지/허가(World로 패스)
AG_GM_CHAR_INFO_CMD, // 캐릭터 정보 요청 1. (GAME -> AGENT)
AG_GM_CHAR_INFO_SYN, // 캐릭터 정보 요청 2. (AGENT -> GAME)
AG_GM_CHAR_INFO_ACK,
AG_GM_CHAR_INFO_NAK, // 캐릭터 정보 요청
AG_GM_ROOM_INFO_CMD, // 방정보 요청
AG_GM_CHANNEL_INFO_CMD, // 채널정보 요청
AG_GM_CHANGE_ROOMTITLE_CMD, // 방제목 변경 요청
AG_GM_FORCE_DISCONNECT_CMD, // 강제 종료 (GAME -> AGENT SERVER)
AG_GM_FORCE_DISCONNECT_SYN, // 강제 종료 (AGENT -> GAME SERVER)
AG_GM_FORCE_DISCONNECT_ACK, // 강제 종료 (AGENT -> GAME SERVER)
AG_GM_FORCE_DISCONNECT_NAK, // 강제 종료 실패
AG_GM_SERVER_SHUTDOWN_CMD, //< 서버 종료
AG_GM_GO_CMD, // 이동
AG_GM_TRACKING_CMD, // 추적
AG_GM_TRACKING_REQUEST_INFO_SYN, // 추적대상의 정보 요청
AG_GM_NOTICE_CMD, // GM 공지
// __NA_001359_20090619_HEIM_LOTTO_SYSTEM
AG_GM_LOTTO_NUM_CMD, // 하임 로또 현재 회차 당첨 번호 보이기 명령
AG_GM_LOTTO_SETTLE_CMD, // 하임 로또 강제 추첨 명령
AG_GM_LOTTO_FUND_CMD, // 하임 로또 기금 적립 명령
// _NA001385_20090924_DOMINATION_BASE
AG_GM_DOMINATION_INIT_CMD, // 점령전 gm 명령어
//_NA004034_20120102_GUILD_POINT_SYSTEM
AG_GM_GUILD_RANKING_REFRESH, // 길드 랭킹 갱신
// _NA_006620_20130402_GM_BATTLE_GROUND_EVENT_GAME
AG_GM_BATTLE_GROUND_CMD, // 전장 관련 명령어
//_NA_008334_20150608_SONNENSCHEIN
AG_GM_SONNENSCHEIN_CMD, // sonnenschein 관련 명령
// _NA_008543_20151027_ONE_DAYS_GUILD_MISSION
AG_GM_ONEDAYSGUILDMISSION_CMD, // 일일 길드 미션 관련 명령
//몽앴실츰룐뵀 by:枷쟁팃숲 2021-06-28
AG_GM_FORCE_BLOCKUSER_CMD, // (GAME -> AGENT SERVER)
AG_GM_FORCE_BLOCKUSER_SYN, // (AGENT -> GAME SERVER)
AG_GM_FORCE_BLOCKUSER_ACK, // (AGENT -> GAME SERVER)
AG_GM_FORCE_BLOCKUSER_NAK,
};
enum eAG_GUILD_PROTOCOL
{
AG_GUILD_CREATE_ACK,
AG_GUILD_DESTROY_ACK,
AG_GUILD_JOIN_SUCCESS_CMD,
AG_GUILD_WITHDRAW_ACK,
AG_GUILD_KICKPLAYER_ACK,
};
enum eAG_CHUNTING_PROTOCOL
{
AG_CHUNTING_ENTER_TEAM_CMD, // 팀 등장
AG_CHUNTING_WIN_CMD, // 경쟁헌팅 승리횟수 Agent에 알림
AG_CHUNTING_START_COMPETITION_CMD, // 경쟁시작 알림
};
enum eAG_MISSION_PROTOCOL
{
AG_MISSION_STREAM_CMD,
AG_MISSION_CLEAR_CMD,
};
enum eAG_CHAO_PROTOCOL
{
AG_CHAO_REQUEST_REVENGEINFO_SYN, // 리벤지 정보 요청(G->A)
AG_CHAO_REQUEST_REVENGEINFO_ACK, // 리벤지 정보(A->G)
AG_CHAO_REQUEST_REVENGEINFO_NAK, // 리벤지 정보 전송 실패(A->G)
AG_CHAO_REMOVE_REVENGE_CHAR_CMD, // 리벤지 대상 삭제(클라이언트가 삭제했을 때)(A->G)
AG_CHAO_REMOVE_REVENGE_CHAR_SYN, // 리벤지 대상 한명 제거(PK를 통해 제거했을 때)(G->A)
AG_CHAO_REMOVE_REVENGE_CHAR_ACK, // 리벤지 대상 한명 제거 성공(A->G)
AG_CHAO_REMOVE_REVENGE_CHAR_NAK, // 리벤지 대상 한명 제거 실패(A->G)
AG_CHAO_ADD_REVENGE_CHAR_SYN, // 리벤지 대상 추가 요청(G->A)
AG_CHAO_ADD_REVENGE_CHAR_ACK, // 리벤지 대상 추가 성공(A->G)
AG_CHAO_ADD_REVENGE_CHAR_NAK, // 리벤지 대상 추가 실패(A->G)
AG_CHAO_CHANGE_CHAO_STATE_CMD, // 카오상태 변경
AG_CHAO_TRACK_REVENGE_CHAR_ACK, // 리벤지 대상 추적 성공
};
enum eAG_ITEM_PROTOCOL
{
AG_ITEM_PORTAL_ACK, // 스크롤 아이템 성공
AG_ITEM_CHANGE_SPECIAL_ITEM_OWN_CMD, // 스페셜 아이템 소유 변경
AG_ITEM_UNLOCK_CMD, // 해당 아이템을 Lock 해제(UNLOCK)
AG_ITEM_DECREASE_UNLOCK_CMD, // 해당 아이템을 감소 후 LOCK 해제(UNLOCK)
AG_ITEM_USE_DECREE_ITEM_SYN, // 해방군 포고문 1회 사용
AG_ITEM_USE_DECREE_ITEM_ACK, // 해방군 포고문 존재함
AG_ITEM_USE_DECREE_ITEM_NAK, // 해방군 포고문 존재안함
// _NA_20101011_HEIM_LOTTO_CASH_TICKET
AG_ITEM_USE_HEIM_LOTTO_TICKET_SYN, // 하임행운 캐시 응모권 사용 요청 (G->A)
AG_ITEM_USE_HEIM_LOTTO_TICKET_ACK, // 하임행운 캐시 응모권 사용 응답 (A->G)
};
enum eAG_EVENT
{
AG_EVENT_BUFF_EVENT_TIME_CONTROL_SYN , // toCLIENTs CG_ETC_BUFF_EVENT_TIME_CONTROL_BRD 요청
//_KR_0_20091021_FIRENDINVITATION_EXTEND = {
AG_EVENT_FRIENDINVITATE_INVITATELIST_CMD, ////A->G 내가 초대한 캐릭터 목록
AG_EVENT_RECALL_ACK, //리콜 성공
AG_EVENT_RECALL_NAK, //리콜 실패
//}
//_NA_20100812_INTEGRATE_SYSTEM_MEMO_DOMINATION
AG_EVENT_SYSTEMMEMO_SEND_CMD, //시스템 메모 저장 요청
#ifdef _NA_003027_20111013_HONOR_SYSTEM
AG_EVENT_TODAYQUEST_INFO_BRD, // 오늘의일일퀘스트 업데이트
#endif //_NA_003027_20111013_HONOR_SYSTEM
//_NA_007919_20141211_ADD_GMCOMMAND_EVENT
AG_EVENT_PEAKTIME_NOTIFY_BRD,
};
#endif // __PROTOCOL_AG_H__