Files
Sun1602/ProgramCommon/ChaosZoneSystem/PacketStruct_ChaosZoneSystem.h
2022-10-26 12:25:11 +08:00

1204 lines
33 KiB
C

#ifndef _PROGRAMCOMMON_PACKETSTRUCT_CHAOSZONESYSTEM_H_
#define _PROGRAMCOMMON_PACKETSTRUCT_CHAOSZONESYSTEM_H_
// _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND
#include "PacketStruct_CG.h"
#include "const.h"
//--------------------------------------------------------------------------------------------------
enum eCG_CHAOS_ZONE_ZONE_CG
{
CG_CHAOS_ZONE_ZONE_JOIN_ACK,
CG_CHAOS_ZONE_ZONE_LEAVE_ACK
};
struct MSG_CG_CHAOS_ZONE_ZONE : MSG_CG_CHAOS_ZONE_PACKET
{
BYTE packet_type;
MSG_CG_CHAOS_ZONE_ZONE()
{
category_type = kCategoryZone;
}
};
struct MSG_CG_CHAOS_ZONE_ZONE_JOIN_ACK : MSG_CG_CHAOS_ZONE_ZONE
{
MAPCODE map_code;
ChaosZoneType chaos_zone_type;
MSG_CG_CHAOS_ZONE_ZONE_JOIN_ACK()
{
packet_type = CG_CHAOS_ZONE_ZONE_JOIN_ACK;
}
};
//--------------------------------------------------------------------------------------------------
enum eBATTLEGROUND_PACKET_TYPE_CG
{
CG_BATTLE_GROUND_RESERVATION_SYN = 0, //전장 예약접수 신청
CG_BATTLE_GROUND_RESERVATION_ACK, //전장 예약접수 응답
CG_BATTLE_GROUND_RESERVATION_BRD, //전장 예약접수 BRD
CG_BATTLE_GROUND_RESERVATION_CANCEL_SYN, //전장 예약취소 신청
CG_BATTLE_GROUND_RESERVATION_CANCEL_ACK, //전장 예약취소 응답
CG_BATTLE_GROUND_MATCHING_RESULT_BRD, //전장 1차매칭 BRD
CG_BATTLE_GROUND_ABNORMAL_EXIT_USER_REMOVE_SYN, //비정상 접속종료 시 유저 제거
CG_BATTLE_GROUND_ABNORMAL_EXIT_USER_RETURN_SYN, //비정상 접속종료 시 복귀
CG_BATTLE_GROUND_TEAM_INFO_CMD, // 팀정보 통보(개인)
CG_BATTLE_GROUND_TEAM_INFO_BRD, // 팀정보 통보(우리팀 + 상대팀 모두)
CG_BATTLE_GROUND_RESURECTION_REFUSE_SYN, // 부활대기 거부상태
CG_BATTLE_GROUND_RESURECTION_REFUSE_CANCEL_SYN, // 부활대기 거부 취소
CG_BATTLE_GROUND_STATE_RESURECTION_CMD, // 부활상태 명령(상태+시간)
CG_BATTLE_GROUND_STRONGPOINT_STATE_BRD, // 거점 상태 BRD
CG_BATTLE_GROUND_STRONGPOINT_VICTORY_POINT_BRD, // 거점 점수 BRD
CG_BATTLE_GROUND_FINISH_RESULT_BRD, // 전장 승패 여부
CG_BATTLE_GROUND_TIME_INFO_CMD, // 전장 시간 정보
CG_BATTLE_GROUND_GET_OPEN_TIME_SYN, // 전장 오픈시간 얻기
CG_BATTLE_GROUND_GET_OPEN_TIME_ACK, // 전장 오픈시간 알려주기
CG_BATTLE_GROUND_BATTLE_STATE_NOTIFY_BRD,
CG_BATTLE_GROUND_INITIATE_VOTE_SYN, // 전장 추방 투표 발의
CG_BATTLE_GROUND_INITIATE_VOTE_NAK, // 전장 추방 투표 발의 실패
CG_BATTLE_GROUND_INITIATE_VOTE_BRD, // 전장 추방 투표 발의 BRD
CG_BATTLE_GROUND_VOTE_STATUS_BRD, // 전장 투표 현황 BRD
CG_BATTLE_GROUND_VOTE_SYN, // 전장 투표
CG_BATTLE_GROUND_VOTE_RESULT_BRD, // 전장 투표 결과
CG_BATTLE_GROUND_VANP_PLAYER_CMD, // 전장 강제 추방 명령
//_NA_008679_20160202_REWORK_BATTLEGROUND
CG_BATTLE_GROUND_FALSENAME_CMD, // 전장 플레이어 가명 전달
CG_BATTLE_GROUND_RESERVATION_COUNT_SYN, // 전장 예약자 요청
};
struct MSG_CG_BATTLE_GROUND_PACKET : MSG_CG_CHAOS_ZONE_PACKET
{
eBATTLEGROUND_PACKET_TYPE_CG packet_type;
MSG_CG_BATTLE_GROUND_PACKET()
{
category_type = kCategoryBattleGround;
}
};
//--------------------------------------------------------------------------------------------------
// CG Client <-> AgentServer
struct MSG_CG_BATTLE_GROUND_RESERVATION_SYN : MSG_CG_BATTLE_GROUND_PACKET
{
MAPCODE map_code; //>>맵코드
bool is_healer; //>>힐러여부
MSG_CG_BATTLE_GROUND_RESERVATION_SYN()
{
packet_type = CG_BATTLE_GROUND_RESERVATION_SYN;
map_code = 0;
is_healer = false;
}
};
struct MSG_CG_BATTLE_GROUND_RESERVATION_ACK : MSG_CG_BATTLE_GROUND_PACKET
{
RC::eBATTLE_GROUND_RESULT result_code;
WORD battle_ground_reservation_key;
MSG_CG_BATTLE_GROUND_RESERVATION_ACK()
{
packet_type = CG_BATTLE_GROUND_RESERVATION_ACK;
}
};
struct MSG_CG_BATTLE_GROUND_RESERVATION_BRD : MSG_CG_BATTLE_GROUND_PACKET
{
WORD current_reservation_memeber_count;
MSG_CG_BATTLE_GROUND_RESERVATION_BRD()
{
current_reservation_memeber_count = 0;
packet_type = CG_BATTLE_GROUND_RESERVATION_BRD;
}
};
//_NA_008679_20160202_REWORK_BATTLEGROUND
struct MSG_CG_BATTLE_GROUND_RESERVATION_COUNT_SYN : MSG_CG_BATTLE_GROUND_PACKET
{
MAPCODE map_code;
MSG_CG_BATTLE_GROUND_RESERVATION_COUNT_SYN()
{
map_code = 0;
packet_type = CG_BATTLE_GROUND_RESERVATION_COUNT_SYN;
}
};
struct MSG_CG_BATTLE_GROUND_RESERVATION_CANCEL_SYN : MSG_CG_BATTLE_GROUND_PACKET
{
MSG_CG_BATTLE_GROUND_RESERVATION_CANCEL_SYN()
{
packet_type = CG_BATTLE_GROUND_RESERVATION_CANCEL_SYN;
}
};
struct MSG_CG_BATTLE_GROUND_RESERVATION_CANCEL_ACK : MSG_CG_BATTLE_GROUND_PACKET
{
RC::eBATTLE_GROUND_RESULT result_code;
MSG_CG_BATTLE_GROUND_RESERVATION_CANCEL_ACK()
{
packet_type = CG_BATTLE_GROUND_RESERVATION_CANCEL_ACK;
}
};
struct MSG_CG_BATTLE_GROUND_MATCHING_RESULT_BRD : MSG_CG_BATTLE_GROUND_PACKET
{
BYTE result_type;
MAPCODE map_code;
MSG_CG_BATTLE_GROUND_MATCHING_RESULT_BRD()
{
packet_type = CG_BATTLE_GROUND_MATCHING_RESULT_BRD;
result_type = 0;
map_code = 0;
}
};
struct MSG_CG_BATTLE_GROUND_ABNORMAL_EXIT_USER_REMOVE_SYN : MSG_CG_BATTLE_GROUND_PACKET
{
MSG_CG_BATTLE_GROUND_ABNORMAL_EXIT_USER_REMOVE_SYN()
{
packet_type = CG_BATTLE_GROUND_ABNORMAL_EXIT_USER_REMOVE_SYN;
}
};
struct MSG_CG_BATTLE_GROUND_TEAM_INFO_CMD : MSG_CG_BATTLE_GROUND_PACKET
{
WORD team_key;
MSG_CG_BATTLE_GROUND_TEAM_INFO_CMD()
{
packet_type = CG_BATTLE_GROUND_TEAM_INFO_CMD;
}
};
struct MSG_CG_BATTLE_GROUND_TEAM_INFO_BRD : MSG_CG_BATTLE_GROUND_PACKET
{
BYTE member_count;
BATTLE_GROUND_TEAM_MEMBER_INFO member_list[20];
MSG_CG_BATTLE_GROUND_TEAM_INFO_BRD()
{
packet_type = CG_BATTLE_GROUND_TEAM_INFO_BRD;
member_count = 0;
memset(member_list, 0, sizeof(member_list));
}
};
struct MSG_CG_BATTLE_GROUND_RESURECTION_REFUSE_SYN : MSG_CG_BATTLE_GROUND_PACKET
{
MSG_CG_BATTLE_GROUND_RESURECTION_REFUSE_SYN()
{
packet_type = CG_BATTLE_GROUND_RESURECTION_REFUSE_SYN;
}
};
struct MSG_CG_BATTLE_GROUND_RESURECTION_REFUSE_CANCEL_SYN : MSG_CG_BATTLE_GROUND_PACKET
{
MSG_CG_BATTLE_GROUND_RESURECTION_REFUSE_CANCEL_SYN()
{
packet_type = CG_BATTLE_GROUND_RESURECTION_REFUSE_CANCEL_SYN;
}
};
struct MSG_CG_BATTLE_GROUND_STATE_RESURECTION_CMD : MSG_CG_BATTLE_GROUND_PACKET
{
DWORD player_object_key;
BattleGroundPlayerState player_state;
DWORD resurection_time;
MSG_CG_BATTLE_GROUND_STATE_RESURECTION_CMD()
{
player_object_key = 0;
packet_type = CG_BATTLE_GROUND_STATE_RESURECTION_CMD;
player_state = kPlayerStateNone;
resurection_time = 0;
}
};
struct MSG_CG_BATTLE_GROUND_STRONGPOINT_STATE_BRD : MSG_CG_BATTLE_GROUND_PACKET
{
BATTLE_GROUND_STRONGPOINT_INFO strongpoint_info;
MSG_CG_BATTLE_GROUND_STRONGPOINT_STATE_BRD()
{
packet_type = CG_BATTLE_GROUND_STRONGPOINT_STATE_BRD;
memset(&strongpoint_info, 0, sizeof(strongpoint_info));
}
};
struct MSG_CG_BATTLE_GROUND_STRONGPOINT_VICTORY_POINT_BRD : MSG_CG_BATTLE_GROUND_PACKET
{
BATTLE_GROUND_TEAM_SCORE_INFO team_score_info[2];
MSG_CG_BATTLE_GROUND_STRONGPOINT_VICTORY_POINT_BRD()
{
packet_type = CG_BATTLE_GROUND_STRONGPOINT_VICTORY_POINT_BRD;
}
};
struct MSG_CG_BATTLE_GROUND_ABNORMAL_EXIT_USER_RETURN_SYN : MSG_CG_BATTLE_GROUND_PACKET
{
DWORD strongpoint_count;
BATTLE_GROUND_STRONGPOINT_INFO strongpoint_info[3]; // 현재는 3개이지만 추후 추가 가능..
MSG_CG_BATTLE_GROUND_ABNORMAL_EXIT_USER_RETURN_SYN()
{
packet_type = CG_BATTLE_GROUND_ABNORMAL_EXIT_USER_RETURN_SYN;
strongpoint_count = 0;
memset(&strongpoint_info, 0, sizeof(strongpoint_info));
}
};
struct MSG_CG_BATTLE_GROUND_FINISH_RESULT_BRD : MSG_CG_BATTLE_GROUND_PACKET
{
eBATTLEGROUND_RESULT result_type;
MSG_CG_BATTLE_GROUND_FINISH_RESULT_BRD()
{
result_type = eBG_RESULT_NONE;
packet_type = CG_BATTLE_GROUND_FINISH_RESULT_BRD;
}
};
struct MSG_CG_BATTLE_GROUND_TIME_INFO_CMD : MSG_CG_BATTLE_GROUND_PACKET
{
DWORD elapsed_time;
MAPCODE map_code;
MSG_CG_BATTLE_GROUND_TIME_INFO_CMD()
{
packet_type = CG_BATTLE_GROUND_TIME_INFO_CMD;
elapsed_time = 0;
map_code = 0;
}
};
// _NA_006538_BATTLE_GROUND_TIME_CONTROL_SYSTEM
struct MSG_CG_BATTLE_GROUND_GET_OPEN_TIME_SYN : MSG_CG_BATTLE_GROUND_PACKET
{
MSG_CG_BATTLE_GROUND_GET_OPEN_TIME_SYN()
{
packet_type = CG_BATTLE_GROUND_GET_OPEN_TIME_SYN;
}
};
struct MSG_CG_BATTLE_GROUND_GET_OPEN_TIME_ACK : MSG_CG_BATTLE_GROUND_PACKET
{
JoinBattleGroundState join_state;
DWORD join_time;
MSG_CG_BATTLE_GROUND_GET_OPEN_TIME_ACK()
{
packet_type = CG_BATTLE_GROUND_GET_OPEN_TIME_ACK;
join_state = kNone;
join_time = INFINITE;
}
};
// _NA_006577_BATTLE_GROUND_BATTLE_STATE_NOTIFY
struct MSG_CG_BATTLE_GROUND_BATTLE_STATE_NOTIFY_BRD : MSG_CG_BATTLE_GROUND_PACKET
{
TCHAR kill_payer_name[MAX_CLIENT_CHARNAME_LENGTH];
TCHAR death_payer_name[MAX_CLIENT_CHARNAME_LENGTH];
bool is_series_kill; // 연속킬 여부
WORD series_kill_count; // 연속 킬 수
bool is_series_kill_block; // 연속킬 차단 여부
#ifdef _NA_006599_20130401_BATTLEGROUND_PKPOINT
BYTE pk_point;
BATTLE_GROUND_TEAM_SCORE_INFO team_score_info[2];
#endif
MSG_CG_BATTLE_GROUND_BATTLE_STATE_NOTIFY_BRD()
{
packet_type = CG_BATTLE_GROUND_BATTLE_STATE_NOTIFY_BRD;
memset(&kill_payer_name, 0, _countof(kill_payer_name));
memset(&death_payer_name, 0, _countof(death_payer_name));
is_series_kill = false;
series_kill_count = 0;
is_series_kill_block = false;
#ifdef _NA_006599_20130401_BATTLEGROUND_PKPOINT
pk_point = 0;
#endif
}
};
// _NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM
struct MSG_CG_BATTLE_GROUND_INITIATE_VOTE_SYN : MSG_CG_BATTLE_GROUND_PACKET
{
TCHAR van_payer_name[MAX_CLIENT_CHARNAME_LENGTH];
MSG_CG_BATTLE_GROUND_INITIATE_VOTE_SYN()
{
packet_type = CG_BATTLE_GROUND_INITIATE_VOTE_SYN;
memset(&van_payer_name, 0, _countof(van_payer_name));
}
};
struct MSG_CG_BATTLE_GROUND_INITIATE_VOTE_NAK : MSG_CG_BATTLE_GROUND_PACKET
{
RC::eBATTLE_GROUND_RESULT result;
MSG_CG_BATTLE_GROUND_INITIATE_VOTE_NAK()
{
packet_type = CG_BATTLE_GROUND_INITIATE_VOTE_NAK;
#ifdef _NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM
result = RC::RC_BATTLE_GROUND_INITIATE_VOTE_FAIL;
#endif // _NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM
}
};
struct MSG_CG_BATTLE_GROUND_INITIATE_VOTE_BRD : MSG_CG_BATTLE_GROUND_PACKET
{
TCHAR van_payer_name[MAX_CLIENT_CHARNAME_LENGTH];
MSG_CG_BATTLE_GROUND_INITIATE_VOTE_BRD()
{
packet_type = CG_BATTLE_GROUND_INITIATE_VOTE_BRD;
memset(&van_payer_name, 0, _countof(van_payer_name));
}
};
struct MSG_CG_BATTLE_GROUND_VOTE_STATUS_BRD : MSG_CG_BATTLE_GROUND_PACKET
{
TCHAR van_payer_name[MAX_CLIENT_CHARNAME_LENGTH];
BYTE yes_count;
BYTE no_count;
DWORD remain_vote_time;
MSG_CG_BATTLE_GROUND_VOTE_STATUS_BRD()
{
packet_type = CG_BATTLE_GROUND_VOTE_STATUS_BRD;
memset(&van_payer_name, 0, _countof(van_payer_name));
yes_count = 0;
no_count = 0;
remain_vote_time = 0;
}
};
struct MSG_CG_BATTLE_GROUND_VOTE_SYN : MSG_CG_BATTLE_GROUND_PACKET
{
bool vote_result;
MSG_CG_BATTLE_GROUND_VOTE_SYN()
{
packet_type = CG_BATTLE_GROUND_VOTE_SYN;
vote_result = true;
}
};
struct MSG_CG_BATTLE_GROUND_VOTE_RESULT_BRD : MSG_CG_BATTLE_GROUND_PACKET
{
bool vote_result;
TCHAR van_payer_name[MAX_CLIENT_CHARNAME_LENGTH];
MSG_CG_BATTLE_GROUND_VOTE_RESULT_BRD()
{
packet_type = CG_BATTLE_GROUND_VOTE_RESULT_BRD;
vote_result = false;
memset(&van_payer_name, 0, _countof(van_payer_name));
}
};
struct MSG_CG_BATTLE_GROUND_VANP_PLAYER_CMD : MSG_CG_BATTLE_GROUND_PACKET
{
MSG_CG_BATTLE_GROUND_VANP_PLAYER_CMD()
{
packet_type = CG_BATTLE_GROUND_VANP_PLAYER_CMD;
}
};
struct MSG_CG_BATTLE_GROUND_FALSENAME_CMD : MSG_CG_BATTLE_GROUND_PACKET
{
TCHAR false_name[MAX_CLIENT_CHARNAME_LENGTH];
SLOTCODE false_costume;
MSG_CG_BATTLE_GROUND_FALSENAME_CMD()
{
packet_type = CG_BATTLE_GROUND_FALSENAME_CMD;
false_costume = 0;
}
};
//--------------------------------------------------------------------------------------------------
enum eFREEPVP_PACKET_TYPE_CG
{
CG_FREE_PVP_ROOM_LIST_SYN = 0, // 방 리스트
CG_FREE_PVP_ROOM_LIST_ACK,
CG_FREE_PVP_CREATE_ROOM_SYN, // 방생성
CG_FREE_PVP_CREATE_ROOM_ACK,
CG_FREE_PVP_JOIN_ROOM_SYN, // 방 조인
CG_FREE_PVP_JOIN_ROOM_COUNT_CMD,
CG_FREE_PVP_JOIN_ROOM_ACK,
CG_FREE_PVP_RESURRECTION_SYN, // 부활
};
struct MSG_CG_FREE_PVP_PACKET : MSG_CG_CHAOS_ZONE_PACKET
{
eFREEPVP_PACKET_TYPE_CG packet_type;
MSG_CG_FREE_PVP_PACKET()
{
category_type = kCategoryFreePVP;
}
};
struct MSG_CG_FREE_PVP_ROOM_LIST_SYN : MSG_CG_FREE_PVP_PACKET
{
MSG_CG_FREE_PVP_ROOM_LIST_SYN()
{
packet_type = CG_FREE_PVP_ROOM_LIST_SYN;
}
};
struct MSG_CG_FREE_PVP_ROOM_LIST_ACK : MSG_CG_FREE_PVP_PACKET
{
BYTE count_of_list;//현재 전달되는 리스트 수
FreePVPRoomInfo free_pvp_room_info[100];
MSG_CG_FREE_PVP_ROOM_LIST_ACK()
{
packet_type = CG_FREE_PVP_ROOM_LIST_ACK;
count_of_list = 0;
ZeroMemory(free_pvp_room_info,sizeof(free_pvp_room_info));
}
uint16_t GetSize() const
{
const size_t MinSize = sizeof(*this) - sizeof(free_pvp_room_info);
return static_cast<uint16_t>(MinSize + sizeof(free_pvp_room_info[0]) * count_of_list);
}
};
struct MSG_CG_FREE_PVP_CREATE_ROOM_SYN : MSG_CG_FREE_PVP_PACKET
{
BaseFreePVPRoomInfo base_free_pvp_info;
MSG_CG_FREE_PVP_CREATE_ROOM_SYN()
{
packet_type = CG_FREE_PVP_CREATE_ROOM_SYN;
ZeroMemory(&base_free_pvp_info, sizeof(base_free_pvp_info));
}
};
struct MSG_CG_FREE_PVP_CREATE_ROOM_ACK : MSG_CG_FREE_PVP_PACKET
{
RC::eFREE_PVP_RESULT result_code;
MSG_CG_FREE_PVP_CREATE_ROOM_ACK()
{
packet_type = CG_FREE_PVP_CREATE_ROOM_ACK;
}
};
struct MSG_CG_FREE_PVP_JOIN_ROOM_SYN : MSG_CG_FREE_PVP_PACKET
{
KEYTYPE join_room_key; //Join하려는 룸 키값(index)
bool is_private_room; //비밀방 여부
TCHAR password[MAX_ROOMPASSWORD_LENGTH+1]; //파티룸 비밀 번호
MSG_CG_FREE_PVP_JOIN_ROOM_SYN()
{
packet_type = CG_FREE_PVP_JOIN_ROOM_SYN;
join_room_key = 0;
is_private_room = false;
}
uint16_t GetSize() const
{
const size_t MinSize = sizeof(*this) - sizeof(password);
if (is_private_room == true)
{
return static_cast<uint16_t>(MinSize + sizeof(password[0]) * _countof(password));
}
else
{
return static_cast<uint16_t>(MinSize);
}
}
};
struct MSG_CG_FREE_PVP_JOIN_ROOM_COUNT_CMD : MSG_CG_FREE_PVP_PACKET
{
MSG_CG_FREE_PVP_JOIN_ROOM_COUNT_CMD()
{
packet_type = CG_FREE_PVP_JOIN_ROOM_COUNT_CMD;
}
};
struct MSG_CG_FREE_PVP_JOIN_ROOM_ACK : MSG_CG_FREE_PVP_PACKET
{
RC::eFREE_PVP_RESULT result_code;
FreePVPRoomInfo free_pvp_room_info;
MSG_CG_FREE_PVP_JOIN_ROOM_ACK()
{
packet_type = CG_FREE_PVP_JOIN_ROOM_ACK;
ZeroMemory(&free_pvp_room_info,sizeof(free_pvp_room_info));
}
};
struct MSG_CG_FREE_PVP_RESURRECTION_SYN : MSG_CG_FREE_PVP_PACKET
{
MSG_CG_FREE_PVP_RESURRECTION_SYN()
{
packet_type = CG_FREE_PVP_RESURRECTION_SYN;
}
};
#ifdef _NA_007065_20140217_CHAOSZONE_GOLDRUSH
//--------------------------------------------------------------------------------------------------
enum eGOLDRUSH_PACKET_TYPE_CG
{
CG_GOLDRUSH_RESERVATION_SYN = 0, //전장 예약접수 신청
CG_GOLDRUSH_RESERVATION_ACK, //전장 예약접수 응답
CG_GOLDRUSH_RESERVATION_BRD, //전장 예약접수 BRD
CG_GOLDRUSH_RESERVATION_CANCEL_SYN, //전장 예약취소 신청
CG_GOLDRUSH_RESERVATION_CANCEL_ACK, //전장 예약취소 응답
CG_GOLDRUSH_TEAM_INFO_CMD, // 팀정보통보(개인)
CG_GOLDRUSH_TEAM_INFO_BRD, // 팀정보통보(우리팀+ 상대팀모두)
CG_GOLDRUSH_ABNORMAL_EXIT_USER_REMOVE_SYN, //비정상 접속종료 시 유저 제거
CG_GOLDRUSH_ABNORMAL_EXIT_USER_RETURN_SYN, //비정상 접속종료 시 복귀
CG_GOLDRUSH_STATE_RESURECTION_CMD, // 부활상태명령(상태+시간)
CG_GOLDRUSH_FINISH_RESULT_BRD, // 전장승패여부
CG_GOLDRUSH_TIME_INFO_CMD, // 전장시간정보
//CG_GOLDRUSH_GET_OPEN_TIME_SYN, // 전장오픈시간얻기
// CG_GOLDRUSH_GET_OPEN_TIME_ACK, // 전장오픈시간알려주기
CG_GOLDRUSH_BATTLE_STATE_NOTIFY_BRD,
CG_GOLDRUSH_MONSTERKILL_NOTIFY_BRD,
CG_GOLDRUSH_TEAM_SCORE_INFO_BRD, // 팀 골드포인트 변경시, 알림 (1개팀의 정보만 보낸다)
CG_GOLDRUSH_TOTAL_TEAM_POINT_BRD,
CG_GOLDRUSH_INITIATE_VOTE_SYN, // 전장 추방 투표 발의
CG_GOLDRUSH_INITIATE_VOTE_NAK, // 전장 추방 투표 발의 실패
CG_GOLDRUSH_INITIATE_VOTE_BRD, // 전장 추방 투표 발의 BRD
CG_GOLDRUSH_VOTE_STATUS_BRD, // 전장 투표 현황 BRD
CG_GOLDRUSH_VOTE_SYN, // 전장 투표
CG_GOLDRUSH_VOTE_RESULT_BRD, // 전장 투표 결과
CG_GOLDRUSH_VANP_PLAYER_CMD, // 전장 강제 추방 명령
};
struct MSG_CG_GOLDRUSH_PACKET : MSG_CG_CHAOS_ZONE_PACKET
{
eGOLDRUSH_PACKET_TYPE_CG packet_type;
MSG_CG_GOLDRUSH_PACKET()
{
category_type = eCHAOSZONE_CATEGORY_GOLDRUSH;
}
};
struct MSG_CG_GOLDRUSH_RESERVATION_SYN : MSG_CG_GOLDRUSH_PACKET
{
MAPCODE map_code; //>>맵코드
bool is_healer; //>>힐러여부
MSG_CG_GOLDRUSH_RESERVATION_SYN()
{
packet_type = CG_GOLDRUSH_RESERVATION_SYN;
map_code = 0;
is_healer = false;
}
};
struct MSG_CG_GOLDRUSH_RESERVATION_ACK : MSG_CG_GOLDRUSH_PACKET
{
RC::eBATTLE_GROUND_RESULT result_code;
WORD goldrush_reservation_key;
MSG_CG_GOLDRUSH_RESERVATION_ACK()
{
packet_type = CG_GOLDRUSH_RESERVATION_ACK;
}
};
struct MSG_CG_GOLDRUSH_RESERVATION_BRD : MSG_CG_GOLDRUSH_PACKET
{
WORD current_reservation_memeber_count;
MSG_CG_GOLDRUSH_RESERVATION_BRD()
{
current_reservation_memeber_count = 0;
packet_type = CG_GOLDRUSH_RESERVATION_BRD;
}
};
struct MSG_CG_GOLDRUSH_RESERVATION_CANCEL_SYN : MSG_CG_GOLDRUSH_PACKET
{
MSG_CG_GOLDRUSH_RESERVATION_CANCEL_SYN()
{
packet_type = CG_GOLDRUSH_RESERVATION_CANCEL_SYN;
}
};
struct MSG_CG_GOLDRUSH_RESERVATION_CANCEL_ACK : MSG_CG_GOLDRUSH_PACKET
{
RC::eBATTLE_GROUND_RESULT result_code;
MSG_CG_GOLDRUSH_RESERVATION_CANCEL_ACK()
{
packet_type = CG_GOLDRUSH_RESERVATION_CANCEL_ACK;
}
};
struct MSG_CG_GOLDRUSH_TEAM_INFO_CMD : MSG_CG_GOLDRUSH_PACKET
{
WORD team_key;
MSG_CG_GOLDRUSH_TEAM_INFO_CMD()
{
packet_type = CG_GOLDRUSH_TEAM_INFO_CMD;
}
};
struct MSG_CG_GOLDRUSH_TEAM_INFO_BRD : MSG_CG_GOLDRUSH_PACKET
{
BYTE member_count;
GOLDRUSH_TEAM_MEMBER_INFO member_list[20];
MSG_CG_GOLDRUSH_TEAM_INFO_BRD()
{
packet_type = CG_GOLDRUSH_TEAM_INFO_BRD;
member_count = 0;
memset(member_list, 0, sizeof(member_list));
}
};
// 비정상종료유저 관련 패킷
struct MSG_CG_GOLDRUSH_ABNORMAL_EXIT_USER_REMOVE_SYN : MSG_CG_GOLDRUSH_PACKET
{
MSG_CG_GOLDRUSH_ABNORMAL_EXIT_USER_REMOVE_SYN()
{
packet_type = CG_GOLDRUSH_ABNORMAL_EXIT_USER_REMOVE_SYN;
}
};
struct MSG_CG_GOLDRUSH_ABNORMAL_EXIT_USER_RETURN_SYN : MSG_CG_GOLDRUSH_PACKET
{
// 양 팀의 총 골드포인트값을 보낸다
// 골드러시 시작 시 점수갱신을 위한 패킷
struct GoldrushTeamInfo
{
ChaosZoneTeam team_key;
WORD total_gold_point;
GoldrushTeamInfo() : team_key(kChaosZoneTeamNone), total_gold_point(0) {}
};
DWORD remained_time; // (ms)
GoldrushTeamInfo team_info[2];
MSG_CG_GOLDRUSH_ABNORMAL_EXIT_USER_RETURN_SYN() : remained_time(0)
{
packet_type = CG_GOLDRUSH_ABNORMAL_EXIT_USER_RETURN_SYN;
}
};
// 부활관련 패킷
struct MSG_CG_GOLDRUSH_STATE_RESURECTION_CMD : MSG_CG_GOLDRUSH_PACKET
{
DWORD player_object_key;
BattleGroundPlayerState player_state;
DWORD resurection_time;
MSG_CG_GOLDRUSH_STATE_RESURECTION_CMD()
{
player_object_key = 0;
packet_type = CG_GOLDRUSH_STATE_RESURECTION_CMD;
player_state = kPlayerStateNone;
resurection_time = 0;
}
};
// 전장 결과
struct MSG_CG_GOLDRUSH_FINISH_RESULT_BRD : MSG_CG_GOLDRUSH_PACKET
{
eBATTLEGROUND_RESULT result_type;
MSG_CG_GOLDRUSH_FINISH_RESULT_BRD()
{
result_type = eBG_RESULT_NONE;
packet_type = CG_GOLDRUSH_FINISH_RESULT_BRD;
}
};
// 전장 시간관련
struct MSG_CG_GOLDRUSH_TIME_INFO_CMD : MSG_CG_GOLDRUSH_PACKET
{
DWORD elapsed_time;
MAPCODE map_code;
MSG_CG_GOLDRUSH_TIME_INFO_CMD()
{
packet_type = CG_GOLDRUSH_TIME_INFO_CMD;
elapsed_time = 0;
map_code = 0;
}
};
// _NA_006538_BATTLE_GROUND_TIME_CONTROL_SYSTEM
/*
struct MSG_CG_GOLDRUSH_GET_OPEN_TIME_SYN : MSG_CG_GOLDRUSH_PACKET
{
MSG_CG_GOLDRUSH_GET_OPEN_TIME_SYN()
{
packet_type = CG_GOLDRUSH_GET_OPEN_TIME_SYN;
}
};
struct MSG_CG_GOLDRUSH_GET_OPEN_TIME_ACK : MSG_CG_GOLDRUSH_PACKET
{
JoinBattleGroundState join_state;
DWORD join_time;
MSG_CG_GOLDRUSH_GET_OPEN_TIME_ACK()
{
packet_type = CG_GOLDRUSH_GET_OPEN_TIME_ACK;
join_state = kNone;
join_time = INFINITE;
}
};
*/
struct MSG_CG_GOLDRUSH_BATTLE_STATE_NOTIFY_BRD : MSG_CG_GOLDRUSH_PACKET
{
TCHAR kill_player_name[MAX_CLIENT_CHARNAME_LENGTH];
TCHAR dead_player_name[MAX_CLIENT_CHARNAME_LENGTH];
bool is_killer_monster; //킬러 캐릭터가 몬스터인가? 몬스터이면 killer_team에 정보를 넣지않는다
bool is_series_kill; // 연속킬 여부
WORD series_kill_count; // 연속 킬 수
bool is_series_kill_block; // 연속킬 차단 여부
WORD steal_gold;
GOLDRUSH_TEAM_SCORE_INFO killer_team;
GOLDRUSH_TEAM_SCORE_INFO dead_team;
MSG_CG_GOLDRUSH_BATTLE_STATE_NOTIFY_BRD()
{
packet_type = CG_GOLDRUSH_BATTLE_STATE_NOTIFY_BRD;
memset(&kill_player_name, 0, _countof(kill_player_name));
memset(&dead_player_name, 0, _countof(dead_player_name));
is_series_kill = false;
is_killer_monster = false;
series_kill_count = 0;
is_series_kill_block = false;
steal_gold = 0;
}
};
struct MSG_CG_GOLDRUSH_MONSTERKILL_NOTIFY_BRD : MSG_CG_GOLDRUSH_PACKET
{
TCHAR kill_player_name[MAX_CLIENT_CHARNAME_LENGTH];
MONSTERCODE dead_monster_code;
WORD get_goldpoint;
bool is_boss_monster;
GOLDRUSH_TEAM_SCORE_INFO killer_team;
MSG_CG_GOLDRUSH_MONSTERKILL_NOTIFY_BRD() : is_boss_monster(false), get_goldpoint(0), dead_monster_code(0)
{
packet_type = CG_GOLDRUSH_MONSTERKILL_NOTIFY_BRD;
memset(&kill_player_name, 0, _countof(kill_player_name));
}
};
struct MSG_CG_GOLDRUSH_TEAM_SCORE_INFO_BRD : MSG_CG_GOLDRUSH_PACKET
{
// 1개팀의 골드등급정보 제공
// 비정상적인 플레이어 종료, 플레이어 추방 시의 팀정보 갱신
WORD get_goldpoint; // 각 플레이어가 받는 골드포인트
GOLDRUSH_TEAM_SCORE_INFO team;
MSG_CG_GOLDRUSH_TEAM_SCORE_INFO_BRD() : get_goldpoint(0) {
packet_type = CG_GOLDRUSH_TEAM_SCORE_INFO_BRD;
}
};
struct MSG_CG_GOLDRUSH_TOTAL_TEAM_POINT_BRD : MSG_CG_GOLDRUSH_PACKET
{
// 양 팀의 총 골드포인트값을 보낸다
// 골드러시 시작 시 점수갱신을 위한 패킷
struct GoldrushTeamInfo
{
ChaosZoneTeam team_key;
WORD total_gold_point;
GoldrushTeamInfo() : team_key(kChaosZoneTeamNone), total_gold_point(0) {}
};
GoldrushTeamInfo team_info[2];
MSG_CG_GOLDRUSH_TOTAL_TEAM_POINT_BRD() {
packet_type = CG_GOLDRUSH_TOTAL_TEAM_POINT_BRD;
}
};
// VOTE System
struct MSG_CG_GOLDRUSH_INITIATE_VOTE_SYN : MSG_CG_GOLDRUSH_PACKET
{
TCHAR van_payer_name[MAX_CLIENT_CHARNAME_LENGTH];
MSG_CG_GOLDRUSH_INITIATE_VOTE_SYN()
{
packet_type = CG_GOLDRUSH_INITIATE_VOTE_SYN;
memset(&van_payer_name, 0, _countof(van_payer_name));
}
};
struct MSG_CG_GOLDRUSH_INITIATE_VOTE_NAK : MSG_CG_GOLDRUSH_PACKET
{
RC::eBATTLE_GROUND_RESULT result;
MSG_CG_GOLDRUSH_INITIATE_VOTE_NAK()
{
packet_type = CG_GOLDRUSH_INITIATE_VOTE_NAK;
result = RC::RC_BATTLE_GROUND_INITIATE_VOTE_FAIL;
}
};
struct MSG_CG_GOLDRUSH_INITIATE_VOTE_BRD : MSG_CG_GOLDRUSH_PACKET
{
TCHAR van_payer_name[MAX_CLIENT_CHARNAME_LENGTH];
MSG_CG_GOLDRUSH_INITIATE_VOTE_BRD()
{
packet_type = CG_GOLDRUSH_INITIATE_VOTE_BRD;
memset(&van_payer_name, 0, _countof(van_payer_name));
}
};
struct MSG_CG_GOLDRUSH_VOTE_STATUS_BRD : MSG_CG_GOLDRUSH_PACKET
{
TCHAR van_payer_name[MAX_CLIENT_CHARNAME_LENGTH];
BYTE yes_count;
BYTE no_count;
DWORD remain_vote_time;
MSG_CG_GOLDRUSH_VOTE_STATUS_BRD()
{
packet_type = CG_GOLDRUSH_VOTE_STATUS_BRD;
memset(&van_payer_name, 0, _countof(van_payer_name));
yes_count = 0;
no_count = 0;
remain_vote_time = 0;
}
};
struct MSG_CG_GOLDRUSH_VOTE_SYN : MSG_CG_GOLDRUSH_PACKET
{
bool vote_result;
MSG_CG_GOLDRUSH_VOTE_SYN()
{
packet_type = CG_GOLDRUSH_VOTE_SYN;
vote_result = true;
}
};
struct MSG_CG_GOLDRUSH_VOTE_RESULT_BRD : MSG_CG_GOLDRUSH_PACKET
{
bool vote_result;
TCHAR van_payer_name[MAX_CLIENT_CHARNAME_LENGTH];
MSG_CG_GOLDRUSH_VOTE_RESULT_BRD()
{
packet_type = CG_GOLDRUSH_VOTE_RESULT_BRD;
vote_result = false;
memset(&van_payer_name, 0, _countof(van_payer_name));
}
};
struct MSG_CG_GOLDRUSH_VANP_PLAYER_CMD : MSG_CG_GOLDRUSH_PACKET
{
MSG_CG_GOLDRUSH_VANP_PLAYER_CMD()
{
packet_type = CG_GOLDRUSH_VANP_PLAYER_CMD;
}
};
#endif //_NA_007065_20140217_CHAOSZONE_GOLDRUSH
//----------------------------------------------------------------------------------------------
#ifdef _NA_008334_20150608_SONNENSCHEIN
enum eSONNENSCHEIN_PACKET_TYPE_CG
{
CG_SONNENSCHEIN_CREATE_SYN = 0,
CG_SONNENSCHEIN_CREATE_ACK,
CG_SONNENSCHEIN_ENTER_CHECK_SYN,
CG_SONNENSCHEIN_ENTER_CHECK_ACK,
CG_SONNENSCHEIN_BEGIN_STAMP_BRD,
CG_SONNENSCHEIN_CANCEL_STAMP_BRD,
CG_SONNENSCHEIN_ENTERPLAYER_LIST_SYN,
CG_SONNENSCHEIN_ENTERPLAYER_LIST_ACK,
};
struct MSG_CG_SONNENSCHEIN_PACKET : MSG_CG_CHAOS_ZONE_PACKET
{
eSONNENSCHEIN_PACKET_TYPE_CG packet_type;
MSG_CG_SONNENSCHEIN_PACKET()
{
category_type = eCHAOSZONE_CATEGORY_SONNENSCHEIN;
}
};
struct MSG_CG_SONNENSCHEIN_CREATE_SYN : MSG_CG_SONNENSCHEIN_PACKET
{
MSG_CG_SONNENSCHEIN_CREATE_SYN()
{
packet_type = CG_SONNENSCHEIN_CREATE_SYN;
}
};
struct MSG_CG_SONNENSCHEIN_CREATE_ACK : MSG_CG_SONNENSCHEIN_PACKET
{
MSG_CG_SONNENSCHEIN_CREATE_ACK()
{
packet_type = CG_SONNENSCHEIN_CREATE_ACK;
result_code = RC::RC_SONNENSCHEIN_FAILED;
}
RC::eSONNENSCHEIN_RESULT result_code;
};
struct MSG_CG_SONNENSCHEIN_ENTER_CHECK_SYN : MSG_CG_SONNENSCHEIN_PACKET
{
MSG_CG_SONNENSCHEIN_ENTER_CHECK_SYN()
{
packet_type = CG_SONNENSCHEIN_ENTER_CHECK_SYN;
entrance_item_code = 0;
}
SLOTCODE entrance_item_code;
};
struct MSG_CG_SONNENSCHEIN_ENTER_CHECK_ACK : MSG_CG_SONNENSCHEIN_PACKET
{
MSG_CG_SONNENSCHEIN_ENTER_CHECK_ACK()
{
packet_type = CG_SONNENSCHEIN_ENTER_CHECK_ACK;
result_code = RC::RC_SONNENSCHEIN_FAILED;
sonnenschein_mapcode = 0;
}
RC::eSONNENSCHEIN_RESULT result_code;
MAPCODE sonnenschein_mapcode;
};
struct MSG_CG_SONNENSCHEIN_BEGIN_STAMP_BRD : MSG_CG_SONNENSCHEIN_PACKET
{
MSG_CG_SONNENSCHEIN_BEGIN_STAMP_BRD()
{
packet_type = CG_SONNENSCHEIN_BEGIN_STAMP_BRD;
stamp_id = 0;
}
WzID stamp_id;
};
struct MSG_CG_SONNENSCHEIN_CANCEL_STAMP_BRD : MSG_CG_SONNENSCHEIN_PACKET
{
MSG_CG_SONNENSCHEIN_CANCEL_STAMP_BRD()
{
packet_type = CG_SONNENSCHEIN_CANCEL_STAMP_BRD;
stamp_id = 0;
}
WzID stamp_id;
};
struct MSG_CG_SONNENSCHEIN_ENTERPLAYER_LIST_SYN : MSG_CG_SONNENSCHEIN_PACKET
{
MSG_CG_SONNENSCHEIN_ENTERPLAYER_LIST_SYN()
{
packet_type = CG_SONNENSCHEIN_ENTERPLAYER_LIST_SYN;
}
};
struct MSG_CG_SONNENSCHEIN_ENTERPLAYER_LIST_ACK : MSG_CG_SONNENSCHEIN_PACKET
{
MSG_CG_SONNENSCHEIN_ENTERPLAYER_LIST_ACK()
{
packet_type = CG_SONNENSCHEIN_ENTERPLAYER_LIST_ACK;
enter_player_count = 0;
ZeroMemory(enter_player_list, sizeof(enter_player_list));
}
CHARGUID enter_player_list[MAX_GUILD_MEMBER_NUM];
INT enter_player_count;
};
#endif //_NA_008334_20150608_SONNENSCHEIN
//----------------------------------------------------------------------------------------------
#ifdef _NA_008543_20151027_ONE_DAYS_GUILD_MISSION
enum eONEDAYSGUILDMISSION_PACKET_TYPE_CG
{
CG_ONEDAYSGUILDMISSION_CREATE_SYN = 0,
CG_ONEDAYSGUILDMISSION_CREATE_ACK,
CG_ONEDAYSGUILDMISSION_ENTER_CHECK_SYN,
CG_ONEDAYSGUILDMISSION_ENTER_CHECK_ACK,
CG_ONEDAYSGUILDMISSION_BEGIN_STAMP_BRD,
CG_ONEDAYSGUILDMISSION_CANCEL_STAMP_BRD,
CG_ONEDAYSGUILDMISSION_ENTERPLAYER_LIST_SYN,
CG_ONEDAYSGUILDMISSION_ENTERPLAYER_LIST_ACK,
CG_ONEDAYSGUILDMISSION_TIME_STATE_INFO_BRD, // 전장시간정보
CG_ONEDAYSGUILDMISSION_ABNORMAL_EXIT_USER_RETURN_SYN,
CG_ONEDAYSGUILDMISSION_PLAYER_INFO_BRD,
CG_ONEDAYSGUILDMISSION_STATE_RESURECTION_CMD,
};
struct MSG_CG_ONEDAYSGUILDMISSION_PACKET : MSG_CG_CHAOS_ZONE_PACKET
{
eONEDAYSGUILDMISSION_PACKET_TYPE_CG packet_type;
MSG_CG_ONEDAYSGUILDMISSION_PACKET()
{
category_type = eCHAOSZONE_CATEGORY_ONEDAYSGUILDMISSION;
}
};
struct MSG_CG_ONEDAYSGUILDMISSION_CREATE_SYN : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
MSG_CG_ONEDAYSGUILDMISSION_CREATE_SYN()
{
packet_type = CG_ONEDAYSGUILDMISSION_CREATE_SYN;
}
};
struct MSG_CG_ONEDAYSGUILDMISSION_CREATE_ACK : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
MSG_CG_ONEDAYSGUILDMISSION_CREATE_ACK()
{
packet_type = CG_ONEDAYSGUILDMISSION_CREATE_ACK;
result_code = RC::RC_ONEDAYSGUILDMISSION_FAILED;
}
RC::eONEDAYSGUILDMISSION_RESULT result_code;
};
struct MSG_CG_ONEDAYSGUILDMISSION_ENTER_CHECK_SYN : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
MSG_CG_ONEDAYSGUILDMISSION_ENTER_CHECK_SYN()
{
packet_type = CG_ONEDAYSGUILDMISSION_ENTER_CHECK_SYN;
entrance_item_code = 0;
}
SLOTCODE entrance_item_code;
};
struct MSG_CG_ONEDAYSGUILDMISSION_ENTER_CHECK_ACK : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
MSG_CG_ONEDAYSGUILDMISSION_ENTER_CHECK_ACK()
{
packet_type = CG_ONEDAYSGUILDMISSION_ENTER_CHECK_ACK;
result_code = RC::RC_ONEDAYSGUILDMISSION_FAILED;
onedaysguildmissin_mapcode = 0;
}
RC::eONEDAYSGUILDMISSION_RESULT result_code;
MAPCODE onedaysguildmissin_mapcode;
};
struct MSG_CG_ONEDAYSGUILDMISSION_BEGIN_STAMP_BRD : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
MSG_CG_ONEDAYSGUILDMISSION_BEGIN_STAMP_BRD()
{
packet_type = CG_ONEDAYSGUILDMISSION_BEGIN_STAMP_BRD;
stamp_id = 0;
}
WzID stamp_id;
};
struct MSG_CG_ONEDAYSGUILDMISSION_CANCEL_STAMP_BRD : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
MSG_CG_ONEDAYSGUILDMISSION_CANCEL_STAMP_BRD()
{
packet_type = CG_ONEDAYSGUILDMISSION_CANCEL_STAMP_BRD;
stamp_id = 0;
}
WzID stamp_id;
};
struct MSG_CG_ONEDAYSGUILDMISSION_ENTERPLAYER_LIST_SYN : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
MSG_CG_ONEDAYSGUILDMISSION_ENTERPLAYER_LIST_SYN()
{
packet_type = CG_ONEDAYSGUILDMISSION_ENTERPLAYER_LIST_SYN;
}
};
struct MSG_CG_ONEDAYSGUILDMISSION_ENTERPLAYER_LIST_ACK : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
MSG_CG_ONEDAYSGUILDMISSION_ENTERPLAYER_LIST_ACK()
{
packet_type = CG_ONEDAYSGUILDMISSION_ENTERPLAYER_LIST_ACK;
event_state_ = 0;
remain_time_ = 0;
stand_by_user_list_cnt = 0;
ZeroMemory(stand_by_user_list, sizeof(stand_by_user_list));
enter_player_count = 0;
ZeroMemory(enter_player_list, sizeof(enter_player_list));
}
BYTE event_state_;
DWORD remain_time_; //밀리세컨드
CHARGUID stand_by_user_list[MAX_GUILD_MEMBER_NUM];
INT stand_by_user_list_cnt;
CHARGUID enter_player_list[MAX_GUILD_MEMBER_NUM];
INT enter_player_count;
};
struct MSG_CG_ONEDAYSGUILDMISSION_TIME_STATE_INFO_BRD : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
BYTE event_state_;
DWORD remain_time_; //밀리세컨드
MSG_CG_ONEDAYSGUILDMISSION_TIME_STATE_INFO_BRD()
{
packet_type = CG_ONEDAYSGUILDMISSION_TIME_STATE_INFO_BRD;
event_state_ = 0;
remain_time_ = 0;
}
};
struct MSG_CG_ONEDAYSGUILDMISSION_ABNORMAL_EXIT_USER_RETURN_SYN : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
DWORD remained_time; //밀리세컨드
MSG_CG_ONEDAYSGUILDMISSION_ABNORMAL_EXIT_USER_RETURN_SYN()
{
packet_type = CG_ONEDAYSGUILDMISSION_ABNORMAL_EXIT_USER_RETURN_SYN;
remained_time = 0;
}
};
struct MSG_CG_ONEDAYSGUILDMISSION_PLAYER_INFO_BRD : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
BYTE infoflag;
CHARGUID enter_player_guid;
MSG_CG_ONEDAYSGUILDMISSION_PLAYER_INFO_BRD()
{
packet_type = CG_ONEDAYSGUILDMISSION_PLAYER_INFO_BRD;
infoflag = 0; // 0: none, 1: Enter, 2: Leave
enter_player_guid = 0;
}
};
struct MSG_CG_ONEDAYSGUILDMISSION_STATE_RESURECTION_CMD : MSG_CG_ONEDAYSGUILDMISSION_PACKET
{
DWORD player_object_key;
BattleGroundPlayerState player_state;
DWORD resurection_time;
MSG_CG_ONEDAYSGUILDMISSION_STATE_RESURECTION_CMD()
{
player_object_key = 0;
packet_type = CG_ONEDAYSGUILDMISSION_STATE_RESURECTION_CMD;
player_state = kPlayerStateNone;
resurection_time = 0;
}
};
#endif //(_NA_008543_20151027_ONE_DAYS_GUILD_MISSION)
#endif //_PROGRAMCOMMON_PACKETSTRUCT_CHAOSZONESYSTEM_H_