Files
caliverse_server/Protocol/proto/ClientToGame.proto
2025-11-28 16:54:56 +09:00

4455 lines
111 KiB
Protocol Buffer

syntax = "proto3";
import "google/protobuf/timestamp.proto";
import "Define_Common.proto";
import "Define_Result.proto";
import "Define_ProgramVersion.proto";
import "Game_Define.proto";
message ClientToGameReq
{
//=============================================================================================
// REQ 패킷 정의
//=============================================================================================
message LoginReq {
string name = 1;
string otp = 2;
}
message LogoutReq {
}
message ChatReq {
ChatType type =1; // 1 지역 2 서버 3 전체 4 귓속말
string message = 2;
string toNickName = 3;
}
message CreateCharReq {
string name = 1;
string attr = 2;
}
message SelectCharReq {
string guid = 1;
}
message DeselectCharReq {
}
message DeleteCharReq {
string guid = 1;
}
message ListCharReq {
}
message CreateChatRoomReq {
repeated string allow_list = 1;
}
message JoinChatRoomReq {
int64 roomId = 1;
}
message LeaveChatRoomReq {
}
message MoveReq {
Pos pos = 1;
}
message JoinInstanceReq {
int32 landId = 1;
int32 buildingId = 2;
int32 floor = 3;
}
message LeaveInstanceReq {
}
message JoinInstanceRoomReq {
string roomId = 1;
Pos pos = 2;
}
message LeaveInstanceRoomReq {
}
message CancelInstanceEntryQueueReq {
}
message EnterMyHomeReq {
string myhomeOwnerNickname = 1;
}
message LeaveMyHomeReq {
}
message ExchangeMyHomeReq {
string myhomeGuid = 1;
}
message ExchangeMyHomePropReq {
string anchorGuid = 1;
string itmeGuid = 2;
}
message ExchangeLandPropReq {
int32 landId = 1;
string anchorGuid = 2;
string itemGuid = 3;
}
message ExchangeBuildingReq {
int32 landId = 1;
int32 buildingId = 2;
}
message ExchangeBuildingLFPropReq {
int32 buildingId = 1;
string anchorGuid = 2;
string itemGuid = 3;
}
message ExchangeInstanceReq {
int32 buildingId = 1;
int32 floor = 2;
int32 instanceId = 3;
}
message ExchangeSocialActionSlotReq {
int32 socialActionSlot = 1;
int32 socialActionId = 2;
}
message ExchangeEmotionSlotReq {
int32 emotionSlot = 1;
int32 emotionId = 2;
}
message UseItemReq {
string itemGuid = 1;
int32 count = 2;
}
message UseRandomBoxItemReq {
string itemGuid = 1;
}
message RemoveItemReq {
string itemGuid = 1;
int32 count = 2;
}
// 복장 장착하기
message EquipClothItemReq
{
uint32 cloth_slot = 1;
/* slot index
cloth_avatar = 5;
cloth_headwear = 6;
cloth_mask = 7;
cloth_bag = 8;
cloth_shoes = 9;
cloth_outer = 10;
cloth_tops = 11;
cloth_bottoms = 12;
cloth_gloves = 13;
cloth_earrings = 14;
cloth_neckless = 15;
cloth_socks = 16;
*/
string itemGuid = 2;
}
// 복장빼기
message UnequipClothItemReq
{
uint32 cloth_slot = 1;
/* slot index
cloth_avatar = 5;
cloth_headwear = 6;
cloth_mask = 7;
cloth_bag = 8;
cloth_shoes = 9;
cloth_outer = 10;
cloth_tops = 11;
cloth_bottoms = 12;
cloth_gloves = 13;
cloth_earrings = 14;
cloth_neckless = 15;
cloth_socks = 16;
*/
}
message WarpReq {
int32 warpId = 1;
}
message ClothInfoSaveReq
{
ClothInfo clothInfo = 2;
}
message AvatarInfoSaveReq
{
AvatarInfo avatarInfo = 1;
ClothInfo clothInfo = 2;
}
message EnterFittingRoomReq {
}
message LeaveFittingRoomReq {
}
message UseMountPropReq {
string anchorGuid = 1;
}
message EndUseMountPropReq {
string anchorGuid = 1;
}
message NewEnterFittingRoomReq {
}
message NewLeaveFittingRoomReq {
}
message UseSocialActionReq {
int32 socialActionId = 1;
}
message StopSocialActionReq {
}
message UseEmotionReq {
int32 emotionId = 1;
}
message StopEmotionReq {
}
message StartBuffReq
{
int32 buff_id = 1;
}
message StopBuffReq
{
int32 buff_id = 1;
}
message BuyItemReq{
int32 itemId = 1;
int32 count = 2;
}
message SocialActionTogetherReq {
string name = 1;
}
message EnterCESConcertReq{
int32 instanceId = 1;
}
message LeaveCESConcertReq{
}
message ChangeNickNameReq{
string NickName = 1;
}
message ChangeGameOptionReq{
repeated int32 valuesList = 1;
}
message SendMailReq{
string toNickName = 1;
string title = 2;
string mailText = 3;
string toGuid = 4;
}
message GetMailReq{
int32 mailType = 1;
}
message ReadMailReq{
string MailKey = 1;
}
message GetItemsMailReq{
string MailKey = 1;
}
message DeleteMailReq{
int32 mailType = 1;
string MailKey = 2;
}
message GetChannelListReq{
}
message MoveChannelReq{
int32 channel = 1;
}
message ExchangeMannequinDisplayItemReq{
string anchorGuid = 1;
string mannequinItemGuid = 2;
repeated int32 displayItemidList = 3;
}
message ElevatorFloorInfoReq{
int32 landId = 1;
int32 buildingId = 2;
}
message MoveWorldReq{
int32 worldId = 1;
}
message RegisterToolSlotReq {
int32 slotIndex = 1;
string itemGuid = 2;
}
message DeregisterToolSlotReq {
int32 slotIndex = 1;
string itemGuid = 2;
}
message ActivateToolItemReq {
int32 slotIndex = 1;
}
message DeactivateToolItemReq {
}
message UseToolItemReq {
int32 equipedToolItemStep = 1;
int32 equipedToolItemRandomState = 2;
int64 actionStartTime = 3;
}
message UseEquipedBuffReq {
int32 equopedBuffId = 1;
int32 equipedBuffStep = 2;
int32 equipedBuffRandomState = 3;
int64 actionStartTime = 4;
}
message ChangeStateReq {
int32 state = 1; // 0 : online 1 : sleep 2 : don't disturb
}
message TaxiReq
{
int32 departureTaxiId = 1;
int32 arrivalTaxiId = 2;
}
message GetCartReq
{
}
message AddCartReq
{
CartItemInfo itemInfo = 1;
}
message DelCartReq
{
repeated CartItemInfo itemInfos = 1;
}
message BuyCartReq
{
repeated CartItemInfo itemInfos = 1;
}
message GetFriendListReq
{
}
message GetFriendFolderListReq
{
}
message GetReceivedFriendRequestListReq {
}
message GetSendedFriendRequestListReq {
}
message GetBlockListReq {
}
message ConfirmNewFriendReq
{
repeated string guids = 1;
}
message DeleteFriendReq {
string guid = 1;
}
message ChangeFriendOrderReq {
int32 orderType = 1;
}
message SendFriendRequestReq {
string nickName = 1;
}
message ReplyReceivedFriendRequestReq {
string targetGuid = 1;
int32 acceptOrRefuse = 2;
}
message BlockUserReq {
string targetNickName = 1;
}
message InviteFriendToMyhomeReq {
repeated FriendNickNameInfo infos = 1;
}
message ReplyInviteToMyhomeReq {
}
message CreateFriendFolderReq {
string folderName = 1;
}
message ChangeFriendFolderNameReq {
string oldFolderName = 1;
string newFolderName = 2;
}
message HoldFriendFolderReq {
string folderName = 1;
}
message ReleaseFriendFolderReq {
string folderName = 1;
}
message DeleteFriendFolderReq
{
string folderName = 1;
}
message MoveFriendFolderUserReq
{
string guid = 1;
string folderName = 2;
}
message KickFriendsFromMyHomeReq
{
}
message ConfirmNewReceivedFriendRequestReq
{
repeated string guids = 1;
}
message RegisterTattooReq
{
string itemGuid = 1;
int32 slotIndex = 2;
}
message DeregisterTattooReq
{
string itemGuid = 1;
int32 slotIndex = 2;
}
message LevelUpTattooReq
{
string itemGuid = 1;
}
message ChangeAttributeTattooReq
{
string itemGuid = 1;
int32 slotIndex = 2;
}
message SaveVisibleTattooSlotReq
{
int32 slotIndex = 1;
int32 isVisible = 2;
}
message ReNameFriendFolderReq {
string folderName = 1;
string newFolderName = 2;
}
message CancelFriendRequestReq {
string guid = 1;
}
message CancelBlockReq {
string guid = 1;
}
message ReplyInviteMyhomeReq {
string instanceRoomId = 1;
int32 acceptOrRefuse = 2;
string senderId = 3;
}
message InvitePartyReq {
repeated string inviteUserNicknames = 1;
repeated string inviteUserGuids = 2;
}
message InvitePartyListReq {
}
message ReplyInvitePartyReq {
string invitePartyGuid = 1;
BoolType result = 2;
}
message LeavePartyReq {
}
message ExchangePartyNameReq {
string newPartyName = 1;
}
message ExchangePartyMemberMarkReq {
string partyMemberUserGuid = 1;
int32 markId = 2;
}
message BanPartyMemberReq {
string partyMemberUserGuid = 1;
}
message SummonPartyMemberReq {
string partyMemberUserGuid = 1;
}
message QuestAcceptReq {
int64 composedQuestId = 1;
}
message QuestRefuseReq {
int64 composedQuestId = 1;
}
message QuestAbandonReq {
int64 composedQuestId = 1;
}
message QuestTaskUpdateReq {
int64 composedQuestId = 1;
int32 activeIdx = 2;
}
message C2GS_REQ_QUEST_TASK_UPDATE {
int64 composedQuestId = 1;
string activeEvent = 2;
}
message GetClaimInfoReq {
}
message ClaimRewardReq {
int32 claimId = 1;
int32 claimType = 2;
}
message GetRewardReq {
}
message GetQuestMailReq {
}
message ReadQuestMailReq {
int64 composedQuestId = 1;
}
message QuestRewardReq {
int64 composedQuestId = 1;
}
message GetCurrencyInfoReq {
}
message ReplySummonPartyMemberReq {
SummonPartyMemberResultType result = 1;
}
message UserReportReq {
string targetNickName = 1;
string reason = 2;
string title = 3;
string detail = 4;
}
message RegisterMinimapMarkerReq{
CharPos markerPos = 1;
}
message DeregisterMinimapMarkerReq {
int32 mapId = 1;
}
message InvitePartySendListReq {
}
message SaveCharProfileReq {
string SNSLink = 1;
string message = 2;
}
message GetCharProfileReq {
string NickName = 1;
}
message SaveLanguageReq {
int32 language = 1;
}
message PartyVoteReq {
string voteInfo = 1;
}
message ReplyPartyVoteReq {
VoteType vote = 1;
}
message UseRewardPropReq {
string anchorGuid = 1;
}
message GetShopProductListReq {
int32 ShopID = 1;
}
message ShopPurchaseItemReq {
int32 ProductID = 1;
int32 ShopID = 2;
int32 Count = 3;
}
message GetRePurchaseListReq {
}
message RePurchaseItemReq {
string ItemGuid = 1;
}
message SellItemReq {
string ItemGuid = 1;
int32 Count = 2;
}
message UseMegaPhoneItemReq {
string ItemGuid = 1;
string message = 2;
}
message CreatePartyInstanceReq {
int32 landId = 1;
int32 buildingId = 2;
int32 floor = 3;
}
message JoinPartyInstanceReq {
}
message IntroCompleteReq {
}
message C2GS_REQ_ESCAPE_POSITION
{
}
message C2GS_REQ_NPC_DIALOGUE
{
int32 npcId = 1;
string dialogue = 2;
string dialogueResult = 3;
}
message C2GS_REQ_CUSTOM_DEFINED_UI_UPDATE
{
map<string, string> toUpdateUiDatas = 1;
}
message C2GS_REQ_CUSTOM_DEFINED_UI_DELETE
{
repeated string toDeleteUiDatas = 1;
}
message C2GS_REQ_REGISTER_TATTOOS
{
repeated TattooRagisterInfo tattooInfoList = 1;
}
message C2GS_REQ_START_CRAFT
{
string anchorGuid = 1;
int32 craftMetaId = 2;
string beaconGuid = 3;
Pos beaconPos = 4;
int32 craftCount = 5;
}
message C2GS_REQ_STOP_CRAFT
{
string anchorGuid = 1;
}
message C2GS_REQ_HELP_CRAFT
{
string anchorGuid = 1;
}
message C2GS_REQ_FINISH_CRAFT
{
string anchorGuid = 1;
}
// UGC NPC 생성 요청
message C2GS_REQ_UGC_NPC_CREATION
{
string bodyItemGuid = 1; // 주 소모 Body ITEM_GUID
repeated string materialItemGuids = 2; // 보조 재료로 사용될 ITEM_GUID
string title = 3; // 타이틀
string nickname = 4; // Ugc Npc 닉네임
string greeting = 5; // 인사말
string introduction = 6; // 자기소개
string description = 7; // 캐릭터 설명
string worldScenario = 8; // 세계관
int32 defaultSocialActionId = 9; // 기본 SocialAction Meta Id
repeated int32 habitSocialActionIds = 10; // 자주 사용하는 SocialAction Meta Id 목록
repeated int32 dialogueSocialActionIds = 11; // 대화중 기본 SocialAction Meta Id 목록
// <TattooSlotType : 0 ~ 3, BoolType>
map<int32, BoolType> tattooSlotVisibles = 12; // 타투 슬롯 보이기:true, 안보이기:false
repeated int32 hashTagMetaIds = 20; // 해시태그 목록 (검색용), BeaconTagData.xlsx 참조
}
message C2GS_REQ_PAGED_UGQ_FROM_BOARD //보드에서 텍스트 검색없이 보여지는 UGQs
{
UgqSearchCategoryType searchCategoryType = 1;
UgqSortType sortType = 2; //최신순, 좋아요 많은순, 북마크 많은순
int32 pageNumber = 3; //페이지 번호
}
message C2GS_REQ_UGQ_DETAIL_FROM_BOARD
{
//UgqQuestId UgqQuestId = 1;
int64 composedQuestId = 1;
}
message C2GS_REQ_SEARCHED_UGQ_FROM_BOARD //보드에서 텍스트 검색으로 찾는 UGQs
{
UgqSearchCategoryType searchCategoryType = 1;
UgqSearchType searchType = 2;
UgqSortType sortType = 3;
string searchText = 4; //UGQ 검색 문자열
int32 pageNumber = 5; //페이지 번호
}
message C2GS_REQ_UGQ_SPOTLIGHT_FROM_BOARD
{
}
message C2GS_REQ_UGQ_FROM_NPC
{
string npcGuid = 1;
}
message C2GS_REQ_UGQ_REGISTER_BOOKMARK
{
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_DEREGISTER_BOOKMARK
{
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_REGISTER_LIKE
{
//UgqQuestId ugqQuestId = 1;
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_DEREGISTER_LIKE
{
//UgqQuestId ugqQuestId = 1;
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_REPORT
{
//UgqQuestId ugqQuestId = 1;
int64 composedQuestId = 1;
string reportText = 2; //신고 상세 내역
}
message C2GS_REQ_UGQ_ASSIGN
{
//UgqQuestId ugqQuestId = 1;
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_REASSIGN
{
//UgqQuestId ugqQuestId = 1;
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_ABORT
{
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_TEST_ASSIGN
{
//UgqQuestId ugqQuestId = 1;
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_TEST_ABORT
{
//UgqQuestId ugqQuestId = 1;
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_TEST_COMPLETE
{
//UgqQuestId ugqQuestId = 1;
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_ABORT_BY_SELF
{
//UgqQuestId ugqQuestId = 1;
int64 composedQuestId = 1;
}
message C2GS_REQ_UGQ_RELOAD_STATE
{
}
// 추후 NPC 종류가 추가된다면 다음과 같은 패킷 구조로 개선 한다. - kangms
// C2GS_REQ_UGQ_FIND_NPC -> EntityType 체크
// <- GS2C_NTF_XXX_XXX_INFO : 해당 EntityType 정보 조회 및 통지
// <- GS2C_ACK_UGQ_FIND_NPC : 성공/실패 여부 위주로 전달 !!!
message C2GS_REQ_UGQ_FIND_NPC
{
string ownerGuid = 1; //beacon 소유주의 guid
string npcGuid = 2;
}
message C2GS_REQ_UGQ_SIMPLE_INFO
{
//UgqQuestId ugqQuestId = 1;
int64 composedQuestId = 1;
}
message C2GS_REQ_AICHAT_AUTH
{
}
//유료 시즌 패스 구매
message C2GS_REQ_BUY_CHARGED_SEASON_PASS
{
}
//시즌 패스 보상 수령
message C2GS_REQ_TAKE_SEASON_PASS_REWARD
{
int32 RewardGrade = 1; //보상 받을 리워드 Grade
}
message C2GS_REQ_SEARCH_NICKNAME
{
string searchString = 1;
int32 pageNum = 2; // 0: 닉네임 검색 1~: 검색된 닉네임 결과 페이지
}
// UGC NPC 터치 요청 : C2GS_REQ_NPC_TOUCH 적용후 아래 패킷 삭제 한다. - kangms
message C2GS_REQ_UGC_NPC_TOUCH
{
string toTouchUgcNpcMetaGuid = 1;
}
// UGC NPC Like 요청
message C2GS_REQ_UGC_NPC_LIKE
{
string npcGuid = 1; //beacon의 guid
string ownerGuid = 2; //beacon 소유주의 guid
}
message C2GS_REQ_SELECT_ADVERTISEMENT
{
int32 interiorId = 1;
}
message C2GS_REQ_SAVE_MYHOME_UGC
{
string myhomeGuid = 1;
string myhomeName = 2;
MyhomeUgcInfo myhomeUgcInfo = 3;
bytes image = 4;
}
message C2GS_REQ_DELETE_MYHOME
{
string myhomeGuid = 1;
}
message C2GS_REQ_RENAME_MYHOME
{
string myhomeGuid = 1;
string newMyhomeName = 2;
}
// UGC NPC 인기 순위 요청
message C2GS_REQ_UGC_NPC_RANK
{
UgcNpcRankType type = 1; // 조회할 rank Type ( Like, 대화, UGQ )
UgcNpcRankState state = 2; // 조회할 rank 상태 ( 누적 / 트랜드 )
}
// Npc 정보를 조회 요청
message C2GS_REQ_NPC_INFO
{
EntityType touchedNpcType = 1; // EntityType 참조 ( EntityType.Beacon, 추후 추가될 수 있다 !!! )
string npcUniqueId = 2; // npc 식별키, ( EntityType.Beacon 일경우 UgcNpcMetaGuid or EntityInstanceGuid )
string ownerUserGuid = 3; // npc 소유자 Guid ( EntityType.Beacon 일경우 UserGuid, 소유자가 없는 경우: 0 )
}
// C2GS_REQ_NPC_INFO 패킷 처리결과가 성공일 경우
// GS2C_ACK_NPC_INFO 패킷 송신전에 하기의 패킷이 먼저 통지 되어야 한다.
// GS2C_NTF_BEACON_DETAIL_INFO
// Npc를 필드에서 터치 요청
message C2GS_REQ_NPC_TOUCH
{
EntityType touchedNpcType = 5; // EntityType 참조 ( EntityType.Beacon, EntityType.FarmingProp 추후 추가될 수 있다 !!! )
string entityInstantGuid = 6; // 터치한 Npc Instant Guid, GS2C_NTF_NPC_IN_SIGHT.UgcNpcEntity.entityInstantGuid 전달된 Guid !!!
}
// C2GS_REQ_NPC_TOUCH 패킷 처리결과가 성공일 경우
// GS2C_ACK_NPC_TOUCH 패킷 송신전에 하기의 패킷이 먼저 통지 되어야 한다.
// GS2C_NTF_BEACON_INTERACTION_INFO
message C2GS_REQ_CALIUM_CONVERTER
{
}
message C2GS_REQ_LARGE_PACKET
{
string uid = 1;
int32 totalPacketCount = 2;
int32 packetIndex = 3;
bytes data = 4;
LargePacketProcess processType = 5;
}
message C2GS_REQ_CONVERT_MATERIAL_TO_CALIUM
{
// <SlotNo, Count> : 소모할 마테리얼 정보
map<int32, int32> useMaterials = 1;
}
// 파밍 시작 요청
message C2GS_REQ_FARMING_START
{
string farmingAnchorMetaId = 1; // MapMetaData에 있는 파밍 Anchor Id
int32 farmingActionTryCount = 2; // 파밍 실행 시도 횟수
FarmingSummonedEntityType toUseEntityType = 4; // 파밍시 선택할 엔티티의 종류
string toUseEnityGuid = 5; // 파밍시 사용할 엔티티의 Guid, FarmingSummonedEntityType.User : UserGuid, FarmingSummonedEntityType.Beacon : UgcNpcMetaGuid,
}
// 파밍 취소 요청
message C2GS_REQ_FARMING_CANCEL
{
string farmingAnchorMetaId = 1; // MapMetaData에 있는 파밍 Anchor Id
}
// UGC NPC 편집 요청
message C2GS_REQ_UGC_NPC_EDIT
{
string toEditUgcNpcMetaGuid = 1; // 편집할 UgcNpc 메타 Guid
string title = 2; // 타이틀
string greeting = 3; // 인사말
string introduction = 4; // 자기소개
string description = 5; // 캐릭터 설명
string worldScenario = 6; // 세계관
int32 defaultSocialActionId = 11; // 기본 SocialAction Meta Id
repeated int32 habitSocialActionIds = 12; // 자주 사용하는 SocialAction Meta Id 목록
repeated int32 dialogueSocialActionIds = 13; // 대화중 기본 SocialAction Meta Id 목록
repeated int32 hashTagMetaIds = 21; // 해시태그 목록 (검색용), BeaconTagData.xlsx 참조
repeated string materialItemGuids = 31; // 보조 재료로 사용될 ITEM_GUID, (UgcNpc에 새로 장착될 것들과 장착을 유지할 것들, 주의: 여기에 없는 것들은 모두 제거 대상 !!!)
// <TattooSlotType : 0 ~ 3, BoolType>
map<int32, BoolType> tattooSlotVisibles = 41; // 타투 슬롯 보이기:true, 안보이기:false
}
message C2GS_REQ_ENTER_MYHOME_EDIT_ROOM
{
string myhomeGuid = 1;
}
// 캐릭터 외형 커스터마이징 요청
message C2GS_REQ_CHARACTER_APPEARANCE_CUSTOMIZE
{
string toChangeCharacterGuid = 1; // 현재는 UserGuid 와 동일 !!!
AppearanceCustomization toApplyAppearCustomize = 2; // 적용할 외형 정보, 이 패킷에서는 AvatarInfo.Init 정보를 서버는 참조 및 변경하지 않는다 !!!
}
// 비컨 외형 커스터마이징 요청
message C2GS_REQ_BEACON_APPEARANCE_CUSTOMIZE
{
string toChangeUgcNpcMetaGuid = 1; // 변경할 UgcNpc 메타 Guid
AppearanceCustomization toApplyAppearCustomize = 2; // 적용할 외형 정보, 이 패킷에서는 AvatarInfo.Init 정보를 서버는 참조 및 변경하지 않는다 !!!
}
// 보유중인 비컨을 매각 요청
message C2GS_REQ_BEACON_SELL
{
string toSellUgcNpcMetaGuid = 1; // 매각할 UgcNpc 메타 Guid
}
message C2GS_REQ_RENTAL_LAND_INFOS
{
int32 worldId = 1;
}
message C2GS_REQ_RENTAL_FLOOR_INFOS
{
int32 landId = 1;
int32 buildingId = 2;
}
message C2GS_REQ_LAND_INFO
{
int32 landId = 1;
}
message C2GS_REQ_RENT_FLOOR
{
int32 landId = 1;
int32 buildingId = 2;
int32 floor = 3;
string myhomeGuid = 4;
string instanceName = 5;
int32 thumbnailImageId = 6;
int32 listImageId = 7;
int32 enterPlayerCount = 8;
int32 rentalPeriod = 9;
CurrencyType rentalCurrencyType = 10;
double rentalCurrencyAmount = 11;
}
message C2GS_REQ_CHANGE_SCREEN_PAGE
{
BoolType isIncrease = 1; // BoolType_True : 증가 / BoolType_False : 감소
BoolType isCustom = 2; // true : 설정 페이지 사용 , false : 설정 페이지 미사용
int32 customPage = 3; // 설정 페이지 Number
}
message C2GS_REQ_RENEWAL_SHOP_PRODUCTS {
int32 ShopID = 1;
}
message C2GS_REQ_ENTITY_STATE_DANCE_START{
string metaGuid = 1;
uint32 metaId = 2;
}
message C2GS_REQ_ENTITY_STATE_DANCE_END{
}
message C2GS_REQ_BEACON_APP_PROFILE_UPLOAD_ADDRESS
{
string beaconGuid = 1;
}
message C2GS_REQ_MODIFY_LAND_INFO
{
int32 landMetaId = 1;
string landName = 2;
string landDescription = 3;
string buildingName = 4;
string buildingDescription = 5;
CurrencyType rentalCurrencyType = 6;
double rentalCurrencyAmount = 7;
BoolType isRentalOpen = 8;
}
message C2GS_REQ_LAND_PROFIT_REPORT
{
int32 landMetaId = 1;
}
message C2GS_REQ_GAIN_LAND_PROFIT
{
int32 landMetaId = 1;
int32 floor = 2; // 0 : 모든 층 수익 획득, 1~ : 선택된 층 수익 획득
}
message C2GS_REQ_LAND_RENTAL_HISTORY
{
int32 landMetaId = 1;
}
message C2GS_REQ_LAND_PROFIT_HISTORY
{
int32 landMetaId = 1;
}
// 랜드 선택할 때 발생
// 랜드 경매 체크 요청
message C2GS_REQ_LAND_AUCTION_CHECK
{
int32 landMetaId = 1; // 체크 대상 LandData Meta Id
}
// 랜드 경매 입찰 요청
message C2GS_REQ_LAND_AUCTION_BID
{
int32 landMetaId = 1; // 경매 대상 LandData Meta Id
int32 auctionNumber = 2; // 경매 번호
LandAuctionBidType bidType = 5; // 입찰의 종류, Blind일 경우 최고 입찰가가 보다 높아야 한다 !!!
CurrencyType currencyType = 11; // 선택한 재화 종류
double bidPrice = 12; // 설정한 입찰가, GameConfigData.LandAuctionAskPriceLow, LandAuctionAskPriceMid, LandAuctionAskPriceHigh 참조
}
// 랜드 경매 모든 스케쥴 요청
message C2GS_REQ_LAND_AUCTION_SCHEDULE_ALL
{
}
// 랜드 경매 모든 히스토리 요청
message C2GS_REQ_LAND_AUCTION_HISTORY_ALL
{
}
message C2GS_REQ_CALIUM_EXCHANGER_INFO
{
}
message C2GS_REQ_CONVERT_EXCHANGER_CALIUM
{
double sapphire = 1; // 요청 사파이어 수
}
message C2GS_REQ_LAND_RENTAL_iNFO
{
int32 landMetaId = 1;
}
message C2GS_REQ_SWITCHING_PROP_STATE
{
}
message C2GS_REQ_PING
{
int32 idx = 1;
}
//비컨 개인 상점 아이템 등록
message C2GS_REQ_BEACON_SHOP_REGISTER_ITEM
{
string itemGuid = 1;
int32 itemAmount = 2;
double sellingPrice = 3;
string beaconGuid = 4;
}
//비컨 개인 상점 아이템 회수
message C2GS_REQ_BEACON_SHOP_RETURN_ITEM
{
string itemGuid = 1;
string beaconGuid = 2;
}
//비컨 개인 상점 아이템 구매
message C2GS_REQ_BEACON_SHOP_PURCHASE_ITEM
{
string itemGuid = 1;
int32 itemAmount = 2;
string beaconGuid = 3;
string beaconOwnerGuid = 4;
}
//비컨 개인 상점 아이템 판매 내역
message C2GS_REQ_BEACON_SHOP_GET_SOLD_RECORDS
{
string beaconGuid = 1;
}
//비컨 개인 상점 아이템 정산
message C2GS_REQ_BEACON_SHOP_RECEIVE_PAYMENT_FOR_SALES
{
string beaconGuid = 1;
}
//비컨 개인 상점 조회
message C2GS_REQ_BEACON_SHOP_SEARCH_ITEM
{
repeated int32 itemMetaids = 1;
int32 page = 2;
repeated SortInfo sortInfo = 3;
}
//비컨 아이템 정보 받아오기
message C2GS_REQ_BEACON_SHOP_GET_ITEM_INFOS
{
string beaconGuid = 1;
string beaconOwnerGuid = 2;
}
message C2GS_REQ_BEACON_SHOP_RECENT_REGISTER_ITEMS
{
}
message C2GS_REQ_MOVE_TO_BEACON
{
string beaconGuid = 1;
}
message C2GS_REQ_CONTENTS_MOVE
{
int32 contentsMenuId = 1;
}
message C2GS_REQ_RANKING_INFO
{
string rankingGuid = 1;
}
message C2GS_REQ_USE_COUPON
{
string couponNumber = 1;
}
message C2GS_REQ_DESTROY_WEAPON_OBJECT {
string anchorGuid = 1;
}
//=============================================================================================
// 배틀 관련 패킷 설정 시작
message C2GS_REQ_JOIN_BATTLE_INSTANCE
{
BattleInstanceType instanceType = 1; //Normal : 상시 인스턴스, Event : 시간 제한 있음
int32 landId = 2;
int32 buildingId = 3;
int32 floor = 4;
int32 eventId = 5;
google.protobuf.Timestamp packetCreateTime = 6;
}
message C2GS_REQ_LEAVE_BATTLE_INSTANCE
{
google.protobuf.Timestamp packetCreateTime = 1;
}
message C2GS_REQ_BATTLE_PLAYER_DEATH
{
string killerGuid = 1;
google.protobuf.Timestamp packetCreateTime = 2;
}
message C2GS_REQ_BATTLE_PLAYER_RESPAWN
{
google.protobuf.Timestamp packetCreateTime = 1;
}
message C2GS_REQ_BATTLE_OBJECT_INTERACTION
{
string anchorGuid = 1;
google.protobuf.Timestamp packetCreateTime = 2;
}
message C2GS_REQ_PREPARATION_FOR_LEAVING_BATTLE_INSTANCE
{
google.protobuf.Timestamp packetCreateTime = 1;
}
//배틀 관련 패킷 설정 종료
// ============================================================================================
//=============================================================================================
// GameMode 설정
message C2GS_REQ_GAME_OBJECT_INTERACTION
{
string anchorGuid = 1;
google.protobuf.Timestamp packetCreateTime = 2;
}
message C2GS_REQ_GAME_PLAYER_DEATH
{
string killerUserGuid = 1;
string deadUserGuid = 2;
GameModeDeadType deadType = 3;
google.protobuf.Timestamp packetCreateTime = 4;
}
message C2GS_REQ_GAME_PLAYER_RESPAWN
{
google.protobuf.Timestamp packetCreateTime = 1;
}
message C2GS_REQ_PREPARATION_FOR_LEAVING_GAME_INSTANCE
{
google.protobuf.Timestamp packetCreateTime = 1;
}
message C2GS_REQ_LEAVE_GAME_INSTANCE
{
google.protobuf.Timestamp packetCreateTime = 1;
}
message C2GS_REQ_GAME_MODE_LOAD_COMPLETE
{
}
// GameMode 종료
//=============================================================================================
// ============================================================================================
// Match 관련 메시지 설정
// ============================================================================================
// 매칭 예약 요청
message C2GS_REQ_MATCH_RESERVE
{
int32 gameModeId = 1; // 게임 모드 id
int32 eventId = 2;
string regionName = 3; // 리전
int32 regionPingMs = 4; // 해당 리전의 핑 측정 결과 밀리세컨드
int32 instanceId = 5; // 유저가 맵을 선택하는 경우 맵의 instanceId, 0인 경우 게임 모드에 따라 랜덤 또는 무시
}
// 매칭 취소 요청
message C2GS_REQ_MATCH_CANCEL
{
int32 gameModeId = 1; // 게임 모드 id - 서버에서 이미 알고 있지만, 확인 차원
}
//=============================================================================================
//=============================================================================================
// WorldEvent 월드이벤트 req
//=============================================================================================
message C2GS_REQ_WORLD_EVENT_CONTRIBUTION
{
int32 worldEventId = 1; // 월드 이벤트 id
}
//=============================================================================================
// REQ 패킷 설정
//=============================================================================================
oneof msg {
LoginReq loginReq = 1;
LogoutReq logoutReq = 2;
ChatReq chatReq = 3;
CreateCharReq createCharReq = 4;
SelectCharReq selectCharReq = 5;
DeselectCharReq deselectCharReq = 6;
DeleteCharReq deleteCharReq = 7;
ListCharReq listCharReq = 8;
CreateChatRoomReq createChatRoomReq = 9;
JoinChatRoomReq joinChatRoomReq = 10;
LeaveChatRoomReq leaveChatRoomReq = 11;
MoveReq moveReq = 12;
JoinInstanceReq joinInstanceReq = 13;
LeaveInstanceReq leaveInstanceReq = 14;
JoinInstanceRoomReq joinInstanceRoomReq = 15;
LeaveInstanceRoomReq leaveInstanceRoomReq = 16;
CancelInstanceEntryQueueReq cancelInstanceEntryQueueReq = 17;
EnterMyHomeReq enterMyHomeReq = 18;
LeaveMyHomeReq leaveMyHomeReq = 19;
ExchangeMyHomeReq exchangeMyHomeReq = 20;
ExchangeMyHomePropReq exchangeMyHomePropReq = 21;
ExchangeLandPropReq exchangeLandPropReq = 22;
ExchangeBuildingReq exchangeBuildingReq = 23;
ExchangeBuildingLFPropReq exchangeBuildingLFPropReq = 24;
ExchangeInstanceReq exchangeInstanceReq = 25;
ExchangeSocialActionSlotReq exchangeSocialActionSlotReq = 26;
UseItemReq useItemReq = 27;
RemoveItemReq removeItemReq = 28;
WarpReq warpReq = 29;
AvatarInfoSaveReq avatarInfoSaveReq = 30;
EnterFittingRoomReq enterFittingRoomReq = 31;
LeaveFittingRoomReq leaveFittingRoomReq = 32;
ExchangeEmotionSlotReq exchangeEmotionSlotReq = 33;
UseMountPropReq useMountPropReq = 34;
EndUseMountPropReq endUseMountPropReq = 35;
NewEnterFittingRoomReq newEnterFittingRoomReq = 36;
NewLeaveFittingRoomReq newLeaveFittingRoomReq = 37;
UseSocialActionReq useSocialActionReq = 38;
StopSocialActionReq stopSocialActionReq = 39;
UseEmotionReq useEmotionReq = 40;
StopEmotionReq stopEmotionReq = 41;
EquipClothItemReq equipClothItemReq = 42;
UnequipClothItemReq unequipClothItemReq = 43;
ClothInfoSaveReq clothInfoSaveReq = 44;
StartBuffReq startBuffReq =45;
StopBuffReq stopBuffReq =46;
BuyItemReq buyItemReq =47;
SocialActionTogetherReq socialActionTogetherReq = 48;
EnterCESConcertReq enterCESConcertReq = 51;
LeaveCESConcertReq leaveCESConcertReq = 52;
ChangeNickNameReq changeNickNameReq = 53;
ChangeGameOptionReq changeGameOptionReq = 54;
SendMailReq sendMailReq = 55;
GetMailReq getMailReq = 56;
ReadMailReq readMailReq = 57;
GetItemsMailReq getItemsMailReq = 58;
DeleteMailReq deleteMailReq = 59;
GetChannelListReq getChannelListReq = 60;
MoveChannelReq moveChannelReq = 61;
ExchangeMannequinDisplayItemReq exchangeMannequinDisplayItemReq = 62;
ElevatorFloorInfoReq elevatorFloorInfoReq = 63;
MoveWorldReq moveWorldReq = 64;
RegisterToolSlotReq registerToolSlotReq = 65;
DeregisterToolSlotReq deregisterToolSlotReq = 66;
ActivateToolItemReq activateToolItemReq = 67;
DeactivateToolItemReq deactivateToolItemReq = 68;
UseToolItemReq useToolItemReq = 69;
UseEquipedBuffReq useEquipedBuffReq = 70;
ChangeStateReq changeStateReq = 71;
TaxiReq taxiReq = 72;
GetCartReq getCartReq = 73;
AddCartReq addCartReq = 74;
DelCartReq delCartReq = 75;
BuyCartReq buyCartReq = 76;
GetFriendListReq getFriendListReq = 77;
GetFriendFolderListReq getFriendFolderListReq = 78;
GetReceivedFriendRequestListReq getReceivedFriendRequestListReq = 79;
GetSendedFriendRequestListReq getSendedFriendRequestListReq = 80;
GetBlockListReq getBlockListReq = 81;
ConfirmNewFriendReq confirmNewFriendReq = 82;
DeleteFriendReq deleteFriendReq = 83;
ChangeFriendOrderReq changeFriendOrderReq = 84;
SendFriendRequestReq sendFriendRequestReq = 85;
ReplyReceivedFriendRequestReq replyReceivedFriendRequestReq = 86;
BlockUserReq blockUserReq = 87;
InviteFriendToMyhomeReq inviteFriendToMyhomeReq = 88;
ReplyInviteToMyhomeReq replyInviteToMyhomeReq = 89;
CreateFriendFolderReq createFriendFolderReq = 90;
ChangeFriendFolderNameReq changeFriendFolderNameReq = 91;
HoldFriendFolderReq holdFriendFolderReq = 92;
ReleaseFriendFolderReq releaseFriendFolderReq = 93;
DeleteFriendFolderReq deleteFriendFolderReq = 94;
MoveFriendFolderUserReq moveFriendFolderUserReq = 95;
ConfirmNewReceivedFriendRequestReq confirmNewReceivedFriendRequestReq = 96;
ReNameFriendFolderReq reNameFriendFolderReq = 97;
CancelFriendRequestReq cancelFriendRequestReq = 98;
CancelBlockReq cancelBlockReq = 99;
RegisterTattooReq registerTattooReq = 100;
DeregisterTattooReq deregisterTattooReq = 101;
LevelUpTattooReq levelUpTattooReq = 102;
ChangeAttributeTattooReq changeAttributeTattooReq = 103;
ReplyInviteMyhomeReq replyInviteMyhomeReq = 104;
InvitePartyReq invitePartyReq = 105;
InvitePartyListReq invitePartyListReq = 106;
ReplyInvitePartyReq replyInvitePartyReq = 107;
LeavePartyReq leavePartyReq = 108;
ExchangePartyNameReq exchangePartyNameReq = 109;
ExchangePartyMemberMarkReq exchangePartyMemberMarkReq = 110;
BanPartyMemberReq banPartyMemberReq = 111;
SummonPartyMemberReq summonPartyMemberReq = 112;
GetCurrencyInfoReq getCurrencyInfoReq = 113;
QuestAcceptReq questAcceptReq = 114;
QuestTaskUpdateReq questTaskUpdateReq = 115;
ReplySummonPartyMemberReq replySummonPartyMemberReq = 116;
UserReportReq userReportReq = 117;
GetQuestMailReq getQuestMailReq = 118;
ReadQuestMailReq readQuestMailReq = 119;
RegisterMinimapMarkerReq registerMinimapMarkerReq = 120;
DeregisterMinimapMarkerReq deregisterMinimapMarkerReq = 121;
QuestRefuseReq questRefuseReq = 122;
QuestAbandonReq questAbandonReq = 123;
InvitePartySendListReq invitePartySendListReq = 124;
QuestRewardReq questRewardReq = 125;
SaveCharProfileReq saveCharProfileReq = 126;
GetCharProfileReq getCharProfileReq = 127;
SaveLanguageReq saveLanguageReq = 128;
SaveVisibleTattooSlotReq saveVisibleTattooSlotReq = 131;
PartyVoteReq partyVoteReq = 132;
ReplyPartyVoteReq replyPartyVoteReq = 133;
UseRewardPropReq useRewardPropReq = 134;
GetShopProductListReq getShopProductListReq = 135;
ShopPurchaseItemReq shopPurchaseItemReq = 136;
GetRePurchaseListReq getRePurchaseListReq = 137;
RePurchaseItemReq rePurchaseItemReq = 138;
SellItemReq sellItemReq = 139;
UseMegaPhoneItemReq useMegaPhoneItemReq = 140;
CreatePartyInstanceReq createPartyInstanceReq = 141;
JoinPartyInstanceReq joinPartyInstanceReq = 142;
GetClaimInfoReq getClaimInfoReq = 143;
ClaimRewardReq claimRewardReq = 144;
UseRandomBoxItemReq useRandomBoxItemReq = 145;
IntroCompleteReq introCompleteReq = 146;
KickFriendsFromMyHomeReq kickFriendsFromMyHomeReq = 148;
C2GS_REQ_ESCAPE_POSITION reqEscapePosition = 149;
C2GS_REQ_NPC_DIALOGUE reqNPCDialogue = 150;
C2GS_REQ_QUEST_TASK_UPDATE reqQuestTaskUpdate = 151;
C2GS_REQ_CUSTOM_DEFINED_UI_UPDATE reqCustomDefinedUIUpdate = 152;
C2GS_REQ_REGISTER_TATTOOS reqRegisterTattoos = 153;
C2GS_REQ_CUSTOM_DEFINED_UI_DELETE reqCustomDefinedUIDelete = 154;
C2GS_REQ_START_CRAFT reqStartCraft = 155;
C2GS_REQ_STOP_CRAFT reqStopCraft = 156;
C2GS_REQ_HELP_CRAFT reqHelpCraft = 157;
C2GS_REQ_FINISH_CRAFT reqFinishCraft = 158;
C2GS_REQ_UGC_NPC_CREATION reqUgcNpcCreation = 159;
C2GS_REQ_PAGED_UGQ_FROM_BOARD reqPagedUgqFromBoard = 160;
C2GS_REQ_SEARCHED_UGQ_FROM_BOARD reqSearchedUgqFromBoard = 161;
C2GS_REQ_UGQ_FROM_NPC reqUgqFromNpc = 162;
C2GS_REQ_UGQ_REGISTER_BOOKMARK reqUgqRegisterBookmark = 163;
C2GS_REQ_UGQ_DEREGISTER_BOOKMARK reqUgqDeregisterBookmark = 164;
C2GS_REQ_UGQ_REGISTER_LIKE reqUgqRegisterLike = 165;
C2GS_REQ_UGQ_DEREGISTER_LIKE reqUgqDeregisterLike = 166;
C2GS_REQ_UGQ_REPORT reqUgqReport = 167;
C2GS_REQ_UGQ_ASSIGN reqUgqAssign = 168;
C2GS_REQ_UGQ_REASSIGN reqUgqReAssign = 169;
C2GS_REQ_UGQ_ABORT reqUgqAbort = 170;
C2GS_REQ_UGQ_TEST_ABORT reqUgqTestAbort = 171;
C2GS_REQ_UGQ_TEST_COMPLETE reqUgqTestComplete = 172;
C2GS_REQ_AICHAT_AUTH reqAIChatAuth = 173;
C2GS_REQ_UGQ_DETAIL_FROM_BOARD reqUgqDetailFromBoard = 175;
C2GS_REQ_UGQ_ABORT_BY_SELF reqUgqAbortBySelf = 176;
C2GS_REQ_SEARCH_NICKNAME reqSearchNickname = 177;
C2GS_REQ_UGC_NPC_TOUCH reqUgcNpcTouch = 178;
C2GS_REQ_BUY_CHARGED_SEASON_PASS reqBuyChargedSeasonPass = 179;
C2GS_REQ_TAKE_SEASON_PASS_REWARD reqTakeSeasonPassReward = 180;
C2GS_REQ_UGQ_TEST_ASSIGN reqUgqTestAssign = 181;
C2GS_REQ_UGQ_RELOAD_STATE reqUgqReloadState = 183;
C2GS_REQ_UGC_NPC_LIKE reqUgcNpcLike = 184;
C2GS_REQ_UGQ_SPOTLIGHT_FROM_BOARD reqUgqSpotlightFromBoard = 185;
C2GS_REQ_UGQ_FIND_NPC reqUgqFindNpc = 186;
C2GS_REQ_SELECT_ADVERTISEMENT reqSelectAdvertisement = 187;
C2GS_REQ_UGQ_SIMPLE_INFO reqUgqSimpleInfo = 188;
C2GS_REQ_SAVE_MYHOME_UGC reqSaveMyhomeUgc = 189;
C2GS_REQ_DELETE_MYHOME reqDeleteMyhome = 190;
C2GS_REQ_RENAME_MYHOME reqRenameMyhome = 191;
C2GS_REQ_UGC_NPC_RANK reqUgcNpcRank = 192;
C2GS_REQ_NPC_INFO reqNpcInfo = 193;
C2GS_REQ_NPC_TOUCH reqNpcTouch = 194;
C2GS_REQ_CALIUM_CONVERTER reqCaliumConverter = 195;
C2GS_REQ_CONVERT_MATERIAL_TO_CALIUM reqConvertMaterialToCalium = 196;
C2GS_REQ_LARGE_PACKET reqLargePacket = 197;
C2GS_REQ_FARMING_START reqFarmingStart = 198;
C2GS_REQ_FARMING_CANCEL reqFarmingCancel = 199;
C2GS_REQ_UGC_NPC_EDIT reqUgcNpcEdit = 200;
C2GS_REQ_ENTER_MYHOME_EDIT_ROOM reqEnterMyhomeEditRoom = 201;
C2GS_REQ_CHARACTER_APPEARANCE_CUSTOMIZE reqCharacterAppearanceCustomize = 202;
C2GS_REQ_BEACON_APPEARANCE_CUSTOMIZE reqBeaconAppearanceCustomize = 203;
C2GS_REQ_BEACON_SELL reqBeaconSell = 204;
C2GS_REQ_RENTAL_LAND_INFOS reqRentalLandInfos = 205;
C2GS_REQ_RENTAL_FLOOR_INFOS reqRentalFloorInfos = 206;
C2GS_REQ_LAND_INFO reqLandInfo = 207;
C2GS_REQ_RENT_FLOOR reqRentFloor = 208;
C2GS_REQ_CHANGE_SCREEN_PAGE reqChangeScreenPage = 209;
C2GS_REQ_RENEWAL_SHOP_PRODUCTS reqRenewalShopProducts = 210;
C2GS_REQ_ENTITY_STATE_DANCE_START reqEntityStateDanceStart = 211;
C2GS_REQ_ENTITY_STATE_DANCE_END reqEntityStateDanceEnd = 212;
C2GS_REQ_BEACON_APP_PROFILE_UPLOAD_ADDRESS reqBeaconAppProfileLoadAddress = 213;
C2GS_REQ_MODIFY_LAND_INFO reqModifyLandInfo = 214;
C2GS_REQ_LAND_PROFIT_REPORT reqLandProfitReport = 215;
C2GS_REQ_GAIN_LAND_PROFIT reqGainLandProfit = 216;
C2GS_REQ_LAND_RENTAL_HISTORY reqLandRentalHistory = 217;
C2GS_REQ_LAND_PROFIT_HISTORY reqLandProfitHistory = 218;
C2GS_REQ_LAND_AUCTION_CHECK reqLandAuctionCheck = 219;
C2GS_REQ_LAND_AUCTION_BID reqLandAuctionBid = 220;
C2GS_REQ_LAND_AUCTION_SCHEDULE_ALL reqLandAuctionScheduleAll = 221;
C2GS_REQ_LAND_AUCTION_HISTORY_ALL reqLandAuctionHistoryAll = 222;
C2GS_REQ_CALIUM_EXCHANGER_INFO reqCaliumExchangerInfo = 223;
C2GS_REQ_CONVERT_EXCHANGER_CALIUM reqConvertExchangerCalium = 224;
C2GS_REQ_LAND_RENTAL_iNFO reqLandRentalInfo = 225;
C2GS_REQ_SWITCHING_PROP_STATE reqSwitchingPropState = 226;
C2GS_REQ_PING reqPing = 227;
C2GS_REQ_BEACON_SHOP_REGISTER_ITEM reqBeaconShopRegisterItem = 228;
C2GS_REQ_BEACON_SHOP_RETURN_ITEM reqBeaconShopReturnItem = 229;
C2GS_REQ_BEACON_SHOP_PURCHASE_ITEM reqBeaconShopPurchaseItem = 230;
C2GS_REQ_BEACON_SHOP_GET_SOLD_RECORDS reqBeaconShopGetSoldRecords = 231;
C2GS_REQ_BEACON_SHOP_RECEIVE_PAYMENT_FOR_SALES reqBeaconShopReceivePaymentForSales = 232;
C2GS_REQ_BEACON_SHOP_SEARCH_ITEM reqBeaconShopSearchItem = 233;
C2GS_REQ_BEACON_SHOP_GET_ITEM_INFOS reqBeaconShopGetItemInfos = 234;
C2GS_REQ_BEACON_SHOP_RECENT_REGISTER_ITEMS reqBeaconShopRecentRegisterItems = 235;
C2GS_REQ_MOVE_TO_BEACON reqMoveToBeacon = 236;
C2GS_REQ_CONTENTS_MOVE reqContentsMove = 237;
C2GS_REQ_RANKING_INFO reqRankingInfo = 238;
C2GS_REQ_USE_COUPON reqUseCoupon = 239;
C2GS_REQ_DESTROY_WEAPON_OBJECT reqDestroyWeaponObject = 240;
//=============================================================================================
// WorldEvent 월드이벤트 관련 패킷 정의
C2GS_REQ_WORLD_EVENT_CONTRIBUTION reqWorldEventContribution= 241;
//=============================================================================================
// Battle 관련 패킷 정의 - Pilot 이기 때문에 100000번 부터 시작
C2GS_REQ_JOIN_BATTLE_INSTANCE reqJoinBattleInstance = 100000;
C2GS_REQ_LEAVE_BATTLE_INSTANCE reqLeaveBattleInstance = 100001;
C2GS_REQ_BATTLE_PLAYER_DEATH reqBattlePlayerDeath = 100002;
C2GS_REQ_BATTLE_PLAYER_RESPAWN reqBattlePlayerRespawn = 100003;
C2GS_REQ_BATTLE_OBJECT_INTERACTION reqBattleObjectInteraction = 100004;
C2GS_REQ_PREPARATION_FOR_LEAVING_BATTLE_INSTANCE reqPreparationForLeavingInstance = 100005;
//=============================================================================================
// GameMode 관련 패킷 정의 - 일단 여기에 정의하고 개발 마무리 시점에 나중에 위로 올리던가 한다.
C2GS_REQ_GAME_OBJECT_INTERACTION reqGameObjectInteraction = 100010;
C2GS_REQ_GAME_PLAYER_DEATH reqGamePlayerDeath = 100011;
C2GS_REQ_GAME_PLAYER_RESPAWN reqGamePlayerRespawn = 100012;
C2GS_REQ_PREPARATION_FOR_LEAVING_GAME_INSTANCE reqPreparationForLeavingGameInstance = 100013;
C2GS_REQ_LEAVE_GAME_INSTANCE reqLeaveGameInstance = 100014;
C2GS_REQ_GAME_MODE_LOAD_COMPLETE reqGameModeLoadComplete = 100015;
//====================================================================================
// GameMatching 관련 패킷 정의
C2GS_REQ_MATCH_RESERVE reqMatchReserve = 110001;
C2GS_REQ_MATCH_CANCEL reqMatchCancel = 110002;
}
}
message ClientToGameRes
{
//=============================================================================================
// ACK 패킷 정의
//=============================================================================================
message LoginRes {
google.protobuf.Timestamp serverUtcTime = 1;
}
message LogoutRes {
}
message ChatRes {
ChatType type = 1;
string sender = 2;
string receiver = 3;
string receiverid = 4;
PlayerStateType receiverstate = 5;
string message = 6;
}
message CreateCharRes {
GameCharacter charData = 1;
}
message SelectCharRes {
int32 Id = 1;
GameCharacter charData = 2;
int32 worldId = 3;
}
message DeselectCharRes {
}
message DeleteCharRes {
}
message ListCharRes {
repeated GameCharacter charList = 1;
}
// 채팅룸 만들기
message CreateChatRoomRes {
string chatServerAddr = 1;
int32 chatServerPort = 2;
int64 roomId = 3;
}
// 채팅룸 조인
message JoinChatRoomRes {
string chatServerAddr = 1;
int32 chatServerPort = 2;
int64 roomId = 3;
}
// 채팅룸 나가기
message LeaveChatRoomRes {
}
message JoinInstanceRes {
ServerConnectInfo InstanceServerConnectInfo = 1;
}
message LeaveInstanceRes {
string gameServerAddr = 1;
int32 gameServerPort = 2;
string otp = 3;
}
message JoinInstanceRoomRes {
MeetingRoomInfo meetingRoom = 1;
}
message LeaveInstanceRoomRes {
}
message CancelInstanceEntryQueueRes {
}
message EnterMyHomeRes {
string instanceServerAddr = 1;
int32 instanceServerPort = 2;
string otp = 3;
string roomId = 4;
MyHomeInfo myhomeInfo = 5;
}
message LeaveMyHomeRes {
string gameServerAddr = 1;
int32 gameServerPort = 2;
string otp = 3;
}
message ExchagneMyHomeRes {
MyHomeInfo myhomeInfo = 1;
}
message ExchagneMyHomePropRes {
string anchorGuid = 1;
string itmeGuid = 2;
}
message ExchangeLandPropRes {
}
message ExchangeBuildingRes {
}
message ExchangeBuildingLFPropRes {
}
message ExchangeInstanceRes {
}
message ExchangeSocialActionSlotRes{
}
message ExchangeEmotionSlotRes{
}
message UseItemRes {
string itemGuid = 1;
int32 count = 2;
CommonResult commonResult = 5;
}
message UseRandomBoxItemRes {
CommonResult commonResult = 1;
}
message WarpRes
{
oneof place
{
ServerConnectInfo gameServerConnectInfo = 1;
ServerConnectInfo InstanceServerConnectInfo = 2;
Pos pos = 3;
}
repeated ItemGuidCount deleteItems = 4;
}
message AvatarInfoSaveRes
{
AvatarInfo avatarInfo = 1;
ClothInfo clothInfo = 2;
Inventory inventory = 3;
}
message ClothInfoSaveRes
{
ClothInfo clothInfo = 1;
}
message AddItemRes{
int32 index = 1; // 1 etc 2 Costume 3 인테리어
repeated Item item = 2;
}
message RemoveItemRes{
string itemGuid = 1; // 1 etc 2 Costume 3 인테리어
int32 count = 2;
}
message RemoveItemsRes{
int32 index = 1; // 1 etc 2 Costume 3 인테리어
repeated Item item = 2;
}
message EnterFittingRoomRes {
string instanceServerAddr = 1;
int32 instanceServerPort = 2;
string otp = 3;
string roomId = 4;
}
message LeaveFittingRoomRes {
string serverAddr = 1;
int32 serverPort = 2;
string otp = 3;
string roomId = 4;
}
message UseMountPropRes {
string anchorGuid = 1;
}
message EndUseMountPropRes {
string anchorGuid = 1;
}
message NewEnterFittingRoomRes {
}
message NewLeaveFittingRoomRes {
Pos pos = 1;
}
message EquipClothItemRes
{
uint32 cloth_slot = 1;
/* slot index
cloth_avatar = 1;
cloth_headwear = 2;
cloth_mask = 3;
cloth_bag = 4;
cloth_shoes = 5;
cloth_outer = 6;
cloth_tops = 7;
cloth_bottoms = 8;
cloth_gloves = 9;
cloth_earrings = 10;
cloth_neckless = 11;
cloth_socks = 12;
*/
string itemGuid = 2;
}
message UnequipClothItemRes
{
uint32 cloth_slot = 1;
/* slot index
cloth_avatar = 1;
cloth_headwear = 2;
cloth_mask = 3;
cloth_bag = 4;
cloth_shoes = 5;
cloth_outer = 6;
cloth_tops = 7;
cloth_bottoms = 8;
cloth_gloves = 9;
cloth_earrings = 10;
cloth_neckless = 11;
cloth_socks = 12;
*/
}
message UseSocialActionRes {
int32 socialActionId = 1;
}
message StopSocialActionRes {
}
message UseEmotionRes {
int32 emotionId = 1;
}
message StopEmotionRes {
}
message StartBuffRes
{
}
message StopBuffRes
{
}
message SocialActionTogetherRes {
int32 socialActionId = 1;
}
message ReadyToFoecedMoveRes {
oneof place
{
ServerConnectInfo ServerConnectInfo = 1;
Pos pos = 2;
}
}
message EnterCESConcertRes {
}
message LeaveCESConcertRes {
Pos pos = 1;
}
message ChangeNickNameRes {
string NickName = 1;
}
message ChangeGameOptionRes {
}
message SendMailRes {
MailInfo mailInfo = 1;
}
message GetMailRes {
int32 mailType = 1;
int32 sendCount = 2;
repeated MailInfo mailList = 3;
}
message ReadMailRes {
}
message GetItemsMailRes {
CommonResult commonResult = 1; // 각종 변화된 결과 정보들, Game_Define.CommonResult 참조
}
message DeleteMailRes {
}
message GetChannelListRes {
repeated ChannelInfo channelInfoList = 1;
}
message MoveChannelRes {
ServerConnectInfo gameServerConnectInfo = 1;
int32 possibleRemainingTime = 2; // 채널이동 남은 시간 (s)
}
message ExchangeMannequinDisplayItemRes{
}
message ElevatorFloorInfoRes{
repeated ElevatorFloorInfo list = 1;
}
message MoveWorldRes {
ServerConnectInfo gameServerConnectInfo = 1;
}
message RegisterToolSlotRes {
int32 slotIndex = 1;
string itemGuid = 2;
}
message DeregisterToolSlotRes {
int32 slotIndex = 1;
string itemGuid = 2;
}
message ActivateToolItemRes {
int32 slotIndex = 1;
}
message DeactivateToolItemRes {
}
message UseToolItemRes {
}
message UseEquipedBuffRes {
}
message ChangeStateRes {
}
message TaxiRes {
oneof place
{
ServerConnectInfo gameServerConnectInfo = 1;
ServerConnectInfo InstanceServerConnectInfo = 2;
Pos pos = 3;
}
CharInfo currencyInfo = 4;
}
message GetCartRes {
repeated CartItemInfo itemList = 1;
}
message AddCartRes {
CartItemInfo changeItem = 1;
}
message DelCartRes {
int32 isRemoveItem = 1;
}
message BuyCartRes {
repeated Item items = 1;
CharInfo currencyInfo = 2;
}
message GetFriendListRes
{
repeated FriendInfo friendList = 1;
}
message GetFriendFolderListRes
{
int32 folderOrderType = 1;
repeated FriendFolder friendFolderList = 2;
}
message GetReceivedFriendRequestListRes
{
repeated FriendRequestInfo requestList = 1;
}
message GetSendedFriendRequestListRes
{
repeated FriendRequestInfo requestList = 1;
}
message GetBlockListRes
{
repeated BlockInfo blockList = 1;
}
message ConfirmNewFriendRes
{
}
message DeleteFriendRes
{
}
message ChangeFriendOrderRes
{
}
message SendFriendRequestRes
{
FriendRequestInfo friendRequestInfo = 1;
}
message ReplyReceivedFriendRequestRes
{
string guid = 1;
}
message BlockUserRes
{
string nickName = 1;
string guid = 2;
}
message InviteFriendToMyhomeRes
{
repeated string successGuids = 1;
repeated FriendErrorMember failInfos = 2;
}
message ReplyInviteToMyhomeRes
{
}
message KickFriendsFromMyHomeRes
{
repeated string successGuids = 1;
repeated FriendErrorMember failInfos = 2;
}
message CreateFriendFolderRes
{
FriendFolder friendFolder = 1;
}
message ChangeFriendFolderNameRes
{
}
message HoldFriendFolderRes
{
FriendFolder friendFolder = 1;
}
message ReleaseFriendFolderRes
{
FriendFolder friendFolder = 1;
}
message DeleteFriendFolderRes
{
}
message MoveFriendFolderUserRes
{
}
message ConfirmNewReceivedFriendRequestRes
{
}
message ReNameFriendFolderRes
{
FriendFolder friendFolder = 1;
}
message CancelFriendRequestRes
{
}
message CancelBlockRes
{
string nickName = 1;
string guid = 2;
}
message RegisterTattooRes
{
string itemGuid = 1;
int32 slotIndex = 2;
}
message DeregisterTattooRes
{
int32 slotIndex = 1;
}
message LevelUpTattooRes
{
int32 isSuccess = 1;
repeated Item itemInfos = 2;
}
message ChangeAttributeTattooRes
{
repeated Item itemInfos = 1;
}
message SaveVisibleTattooSlotRes
{
int32 slotIndex = 1;
int32 isVisible = 2;
}
message BuyItemRes
{
repeated Item item = 1;
CharInfo currencyInfo = 2;
}
message ReplyInviteMyhomeRes
{
}
message InvitePartyRes {
repeated InvitePartyErrorMember errorMemberList = 1;
}
message InvitePartyListRes {
repeated InvitePartyState invitePartyList = 1;
}
message ReplyInvitePartyRes {
}
message LeavePartyRes {
}
message ExchangePartyNameRes {
}
message ExchangePartyMemberMarkRes {
}
message BanPartyMemberRes {
}
message SummonPartyMemberRes {
repeated ItemGuidCount items = 1;
}
message QuestAcceptRes {
int64 composedQuestId = 1;
int32 taskNum = 2;
repeated QuestMetaInfo questMetaInfos = 3;
}
message QuestRefuseRes {
int64 composedQuestId = 1;
}
message QuestAbandonRes {
int64 composedQuestId = 1;
}
message QuestRewardRes {
int64 composedQuestId = 1;
int32 replacedRewardGroupId = 2;
CommonResult commonResult = 3;
//repeated Item rewardItems = 3;
}
message QuestTaskUpdateRes {
int64 composedQuestId = 1;
repeated int32 activeIdxList = 2;
int32 hasCounter = 3;
int32 currentCounter = 6;
}
message GS2C_ACK_QUEST_TASK_UPDATE {
int64 composedQuestId = 1;
repeated string activeEventList = 2;
int32 hasCounter = 3;
int32 currentCounter = 4;
int32 currentTaskNum = 5;
CommonResult commonResult = 6;
}
message GetQuestMailRes {
repeated QuestMailInfo questMailList = 1;
}
message ReadQuestMailRes {
}
message GetClaimInfoRes {
int32 claimId = 1;
ClaimEventActiveInfo normalInfo = 2;
ClaimEventActiveInfo membershipInfo = 3;
}
message ClaimRewardRes {
int32 claimId = 1;
CommonResult commonResult = 2;
}
message GetCurrencyInfoRes {
CharInfo currencyInfo = 1;
}
message UserReportRes {
}
message ReplySummonPartyMemberRes {
ServerConnectInfo gameServerConnectInfo = 1;
}
message RegisterMinimapMarkerRes{
}
message DeregisterMinimapMarkerRes{
}
message InvitePartySendListRes {
repeated InvitePartySendState invitePartySendList = 1;
}
message SaveCharProfileRes {
}
message GetCharProfileRes {
string publicGuid = 1;
string nickName = 2;
int32 language = 3;
string SNSLink = 4;
string message = 5;
repeated AttributeInfo attributeinfo = 6;
}
message SaveLanguageRes {
}
message PartyVoteRes {
}
message ReplyPartyVoteRes {
}
message UseRewardPropRes {
string anchorGuid = 1;
CommonResult commonResult = 2;
}
message GetShopProductListRes {
ShopPacketInfo ProductInfo = 1;
}
message ShopPurchaseItemRes {
repeated Item items = 1;
CharInfo currencyInfo = 2;
repeated Item delItems = 3;
}
message GetRePurchaseListRes {
repeated SelledItem SelledItem = 1;
}
message RePurchaseItemRes {
repeated Item items = 1;
CharInfo currencyInfo = 2;
string repurchaseItemGuid = 3;
}
message SellItemRes {
string ItemGuid = 1;
int32 Count = 2;
CharInfo currencyInfo = 3;
}
message UseMegaPhoneItemRes {
string ItemGuid = 1;
int32 Count = 2;
}
message CreatePartyInstanceRes {
repeated ItemGuidCount items = 1;
}
message JoinPartyInstanceRes {
string instanceServerAddr = 1;
int32 instanceServerPort = 2;
string otp = 3;
string roomId = 4;
}
message IntroCompleteRes {
}
message GS2C_ACK_ESCAPE_POSITION
{
int64 remainTime = 1;
Pos movePosition = 2;
}
message GS2C_ACK_NPC_DIALOGUE
{
int32 npcId = 1;
string dialogue = 2;
string dialogueResult = 3;
}
message GS2C_ACK_CUSTOM_DEFINED_UI_UPDATE
{
map<string, string> updatedUiDatas = 1;
}
message GS2C_ACK_CUSTOM_DEFINED_UI_DELETE
{
repeated string deletedUiKeys = 1;
}
message GS2C_ACK_REGISTER_TATTOOS
{
repeated TattooRagisterInfo tattooInfoList = 1;
}
message GS2C_ACK_START_CRAFT
{
CraftInfo craftInfo = 1;
repeated Item items = 2;
Pos beaconPos = 3;
}
message GS2C_ACK_STOP_CRAFT
{
repeated Item items = 1;
string anchorGuid = 2;
string beaconGuid = 3;
}
message GS2C_ACK_HELP_CRAFT
{
repeated Item items = 1;
int32 helpCount = 2;
}
message GS2C_ACK_FINISH_CRAFT
{
repeated Item items = 1;
string anchorGuid = 2;
string beaconGuid = 3;
}
// UGC NPC 생성 요청에 대한 응답
message GS2C_ACK_UGC_NPC_CREATION
{
string ugcNpcMetaGuid = 1; // Ugc Npc Meta Id (GUID)
int32 bodyItemMetaId = 2; // ItemData.xlsx 참조
string title = 3; // 타이틀
string nickname = 4; // Ugc Npc 닉네임
string greeting = 5; // 인사말
string introduction = 6; // 자기소개
string description = 7; // 캐릭터 설명
string worldScenario = 8; // 세계관
int32 defaultSocialActionId = 9; // 기본 SocialAction Meta Id
repeated int32 habitSocialActionIds = 10; // 자주 사용하는 SocialAction Meta Id 목록
repeated int32 dialogueSocialActionIds = 11; // 대화중 기본 SocialAction Meta Id 목록
map<int32, TattooSlotInfo> tattooSlotInfos = 12; // 타투 관련 정보 목록
repeated int32 hashTagMetaIds = 20; // 해시태그 목록 (검색용), BeaconTagData.xlsx 참조
CommonResult commonResult = 21; // 각종 변화된 결과 정보들, Game_Define.CommonResult 참조
}
message GS2C_ACK_PAGED_UGQ_FROM_BOARD
{
UgqBoardSearchResult ugqBoardSearchResult = 1;
}
message GS2C_ACK_UGQ_DETAIL_FROM_BOARD
{
UgqBoardItemDetail ugqBoardItemDetail = 1;
}
message GS2C_ACK_SEARCHED_UGQ_FROM_BOARD
{
UgqBoardSearchResult ugqBoardSearchResult = 1;
}
message GS2C_ACK_UGQ_SPOTLIGHT_FROM_BOARD
{
UgqBoardSportlightResult spotlightResult = 1;
}
message GS2C_ACK_UGQ_FROM_NPC
{
}
message GS2C_ACK_UGQ_REGISTER_BOOKMARK
{
}
message GS2C_ACK_UGQ_DEREGISTER_BOOKMARK
{
}
message GS2C_ACK_UGQ_REGISTER_LIKE
{
}
message GS2C_ACK_UGQ_DEREGISTER_LIKE
{
}
message GS2C_ACK_UGQ_REPORT
{
}
message GS2C_ACK_UGQ_ASSIGN
{
repeated QuestInfo quests = 1;
repeated QuestMetaInfo questMetaInfos = 2;
repeated UgqGameQuestDataForClient ugqGameQuestDataForClients = 3;//대화 정보, 타이틀 정보
CommonResult commonResult = 4;
}
message GS2C_ACK_UGQ_REASSIGN
{
repeated QuestInfo quests = 1;
repeated QuestMetaInfo questMetaInfos = 2;
repeated UgqGameQuestDataForClient ugqGameQuestDataForClients = 3;
int64 deletedComposedQuestId = 4;
}
message GS2C_ACK_UGQ_ABORT
{
int64 composedQuestId = 1;
}
message GS2C_ACK_UGQ_TEST_ASSIGN
{
repeated QuestInfo quests = 1;
repeated QuestMetaInfo questMetaInfos = 2;
repeated UgqGameQuestDataForClient ugqGameQuestDataForClients = 3;//대화 정보, 타이틀 정보
}
message GS2C_ACK_UGQ_TEST_ABORT
{
}
message GS2C_ACK_UGQ_TEST_COMPLETE
{
int64 composedQuestId = 1;
}
message GS2C_ACK_UGQ_ABORT_BY_SELF
{
int64 composedQuestId = 1;
}
message GS2C_ACK_UGQ_RELOAD_STATE
{
repeated UgqCurrentState ugqCurrentState = 1;
}
message GS2C_ACK_UGQ_FIND_NPC
{
UgqNpcInfo ugcNpc = 1;
}
message GS2C_ACK_UGQ_SIMPLE_INFO
{
UgqGameQuestDataSimple simpleInfo = 1;
}
message GS2C_ACK_AICHAT_AUTH
{
string jwt = 1;
int32 leftTime = 2;
}
message GS2C_ACK_BUY_CHARGED_SEASON_PASS
{
CommonResult commonResult = 1;
}
message GS2C_ACK_TAKE_SEASON_PASS_REWARD
{
CommonResult commonResult = 1;
int32 takenRewardGrade = 2; // 시즌패스의 보상 받은 보상 등급
}
message GS2C_ACK_SEARCH_NICKNAME
{
int32 searchResultCount = 1;
int32 totalPage = 2;
int32 currentPage = 3;
repeated string nicknames = 4;
}
// UGC NPC 터치 요청 결과 : C2GS_REQ_NPC_TOUCH 적용후 아래 패킷 삭제 한다. - kangms
message GS2C_ACK_UGC_NPC_TOUCH
{
string ugcNpcMetaGuid = 1; // Ugc Npc Meta Id (GUID)
}
// UGC NPC Like 요청 결과
message GS2C_ACK_UGC_NPC_LIKE
{
string npcGuid = 1;
string ownerGuid = 2;
BoolType isLike = 3;
}
message GS2C_ACK_SELECT_ADVERTISEMENT
{
int32 index = 1;
}
message GS2C_ACK_SAVE_MYHOME_UGC
{
string myhomeGuid = 1;
string myhomeName = 2;
MyhomeUgcInfo myhomeUgcInfo = 3;
CommonResult commonResult = 4;
map<string, EntityStateInfo> modigyUgcNpcStateInfos = 5;
}
message GS2C_ACK_DELETE_MYHOME
{
string myhomeGuid = 1;
CommonResult commonResult = 2;
map<string, EntityStateInfo> modigyUgcNpcStateInfos = 3;
}
message GS2C_ACK_RENAME_MYHOME
{
string myhomeGuid = 1;
string newMyhomeName = 2;
}
message GS2C_ACK_LARGE_PACKET
{
string uid = 1;
int32 totalPacketCount = 2;
int32 packetIndex = 3;
bytes data = 4;
LargePacketProcess processType = 5;
}
// UGC NPC Rank 요청 결과
message GS2C_ACK_UGC_NPC_RANK
{
UgcNpcRankType type = 1; // 조회된 rank Type ( Like, 대화, UGQ )
UgcNpcRankState state = 2; // 조회된 rank 상태 ( 누적 / 트랜드 )
repeated UgcNpcRank ugcNpcRank = 3; // Rank 정보 리스트
}
// Npc 정보를 조회 요청 결과
message GS2C_ACK_NPC_INFO
{
string debugString = 1;
string npcUniqueId = 5; // npc 식별키, ( EntityType.Beacon 일경우 UgcNpcMetaGuid )
string ownerUserGuid = 6; // npc 소유자 Guid ( EntityType.Beacon 일경우 UserGuid, 소유자가 없는 경우: 0 )
}
// Npc를 필드에서 터치 요청 결과
message GS2C_ACK_NPC_TOUCH
{
string debugString = 1;
EntityType touchedNpcType = 5; // EntityType 참조 ( EntityType.Beacon, 추후 추가될 수 있다 !!! )
string entityInstantGuid = 6; // 터치한 Npc Instant Guid, GS2C_NTF_NPC_IN_SIGHT.UgcNpcEntity.entityInstantGuid 전달된 Guid !!!
}
message GS2C_ACK_CALIUM_CONVERTER
{
double calium = 1; // 총 Calium 수량
float caliumForUser = 2; // 1일 제공 Calium 수량 ( 1인 기준 )
float caliumEfficiency = 3; // 변환 에너지 효율
}
message GS2C_ACK_CONVERT_MATERIAL_TO_CALIUM
{
double totalCalium = 1; // 변경된 총 Calium 수량
float caliumForUser = 2; // 변경된 1일 제공 Calium 수량 ( 1인 기준 )
CharInfo currencyInfo = 3; // 변경된 재화 수량
repeated Item delItem = 4; // 소모된 MATERIAL 수량
}
// 파밍 시작 요청 결과
message GS2C_ACK_FARMING_START
{
string farmingAnchorMetaId = 1; // MapMetaData에 있는 파밍 Anchor Id
FarmingSummary farmingSummary = 2; // 파밍 요약 정보
CommonResult commonResult = 3; // 주요 결과 Delta 정보
}
// 파밍 취소 요청 결과
message GS2C_ACK_FARMING_CANCEL
{
string farmingAnchorMetaId = 1; // MapMetaData에 있는 파밍 Anchor Id
FarmingSummary farmingSummary = 2; // 파밍 요약 정보
}
// UGC NPC 편집 요청에 대한 응답
message GS2C_ACK_UGC_NPC_EDIT
{
string editedUgcNpcMetaGuid = 1; // 편집된 Ugc Npc Meta Id (GUID)
string title = 3; // 타이틀
string greeting = 5; // 인사말
string introduction = 6; // 자기소개
string description = 7; // 캐릭터 설명
string worldScenario = 8; // 세계관
int32 defaultSocialActionId = 11; // 기본 SocialAction Meta Id
repeated int32 habitSocialActionIds = 12; // 자주 사용하는 SocialAction Meta Id 목록
repeated int32 dialogueSocialActionIds = 13; // 대화중 기본 SocialAction Meta Id 목록
repeated int32 hashTagMetaIds = 21; // 해시태그 목록 (검색용), BeaconTagData.xlsx 참조
map<int32, TattooSlotInfo> tattooSlotInfos = 31; // 타투 관련 정보 목록
CommonResult commonResult = 41; // 각종 변화된 결과 정보들, Game_Define.CommonResult 참조
}
message GS2C_ACK_ENTER_MYHOME_EDIT_ROOM
{
string instanceServerAddr = 1;
int32 instanceServerPort = 2;
string otp = 3;
string roomId = 4;
}
// 캐릭터 외형 커스터마이징 결과
message GS2C_ACK_CHARACTER_APPEARANCE_CUSTOMIZE
{
string toChangeCharacterGuid = 1; // 현재는 UserGuid 와 동일 !!!
AppearanceCustomization appearCustomize = 2; // 성공시 적용된 외형 정보
CommonResult commonResult = 5; // 변경된 각종 정보들...
}
// 비컨 외형 커스터마이징 결과
message GS2C_ACK_BEACON_APPEARANCE_CUSTOMIZE
{
string toChangeUgcNpcMetaGuid = 1; // 변경할 UgcNpc 메타 Guid
AppearanceCustomization appearCustomize = 2; // 성공시 적용된 외형 정보
CommonResult commonResult = 5; // 변경된 각종 정보들...
}
// 비컨 매각 요청 결과
message GS2C_ACK_BEACON_SELL
{
string toSellUgcNpcMetaGuid = 1; // 매각할 UgcNpc 메타 Guid
CommonResult commonResult = 5; // 변경된 각종 정보들...
}
message GS2C_ACK_RENTAL_LAND_INFOS
{
map<int32, RentalLandInfo> rentalLandInfos = 1;
}
message GS2C_ACK_RENTAL_FLOOR_INFOS
{
map<int32, RentalFloorInfo> rentalFloorInfos = 1;
}
message GS2C_ACK_LAND_INFO
{
RentalLandInfo rentalLandInfo = 1;
}
message GS2C_ACK_RENT_FLOOR
{
CommonResult commonResult = 1;
}
message GS2C_ACK_CHANGE_SCREEN_PAGE
{
int32 screenPageNo = 1; // 변경된 Screen Page 번호
}
message GS2C_ACK_RENEWAL_SHOP_PRODUCTS {
ShopPacketInfo ProductInfo = 1;
CommonResult commonResult = 4;
}
message GS2C_ACK_ENTITY_STATE_DANCE_START {
uint32 metaId = 1;
}
message GS2C_ACK_ENTITY_STATE_DANCE_END {
}
message GS2C_ACK_BEACON_APP_PROFILE_UPLOAD_ADDRESS
{
string uploadAddress = 1;
}
message GS2C_ACK_MODIFY_LAND_INFO
{
}
message GS2C_ACK_LAND_PROFIT_REPORT
{
map<int32, FloorProfitInfo> floorProfits = 1;
}
message GS2C_ACK_GAIN_LAND_PROFIT
{
map<int32, FloorProfitInfo> floorProfits = 1;
CommonResult commonResult = 2;
}
message GS2C_ACK_LAND_RENTAL_HISTORY
{
repeated BuildingRentalHistoryInfo historyInfos = 1;
}
message GS2C_ACK_LAND_PROFIT_HISTORY
{
repeated BuildingProfitHistoryInfo historyInfos = 1;
}
// 랜드 경매 체크 요청 결과
message GS2C_ACK_LAND_AUCTION_CHECK
{
LandAuctionInfo landAutionInfo = 1;
LandAuctionBidType bidType = 6; // 입찰 상태, LandAuctionState.Started 상태일 경우 LanduActionBidType.None이 아니다 !!!
CurrencyType currencyType = 11; // 직전 나의 입찰한 재화 종류 (일반 입찰은 최고가인 경우 or 블라인드 입찰에 참여한 경우)
double bidPrice = 12; // 직전 나의 입찰가 (일반 입찰은 최고가인 경우 or 블라인드 입찰에 참여한 경우)
}
// 랜드 경매 입찰 요청 결과
message GS2C_ACK_LAND_AUCTION_BID
{
int32 landMetaId = 1; // 경매 대상 LandData Meta Id
LandAuctionBidType bidType = 5; // 입찰의 종류, Blind일 경우 최고 입찰가가 보다 높아야 한다 !!!
CommonResult commonResult = 11; // 각종 변화된 결과 정보들, Game_Define.CommonResult 참조
}
// 랜드 경매 모든 요청 결과
message GS2C_ACK_LAND_AUCTION_SCHEDULE_ALL
{
repeated LandAuctionSummary landAuctionsSummaries = 1;
}
// 랜드 경매 히스토리
message GS2C_ACK_LAND_AUCTION_HISTORY_ALL
{
repeated LandAuctionCompact landAuctionCompacts = 1;
}
message GS2C_ACK_CALIUM_EXCHANGER_INFO
{
double InflationRate = 1;
double FixedExchangeRate = 2;
google.protobuf.Timestamp nextEpochTime = 3;
}
message GS2C_ACK_CONVERT_EXCHANGER_CALIUM
{
CharInfo currencyInfo = 1; // 변경된 재화 수량
}
message GS2C_ACK_LAND_RENTAL_INFO
{
map<int32, BuildingFloorInfo> buildingFloorInfos = 1;
}
message GS2C_ACK_SWITCHING_PROP_STATE
{
repeated SwitchingPropState switchingPropState = 1;
}
message GS2C_ACK_PING
{
int32 idx = 1;
}
message GS2C_ACK_BEACON_SHOP_REGISTER_ITEM
{
string itemGuid = 1;
int32 itemMetaId = 2;
int32 itemAmount = 3;
double sellingPrice = 4;
string beaconGuid = 5;
google.protobuf.Timestamp sellingFinishTime = 6;
CommonResult commonResult = 7;
}
message GS2C_ACK_BEACON_SHOP_RETURN_ITEM
{
string itemGuid = 1;
string beaconGuid = 2;
CommonResult commonResult = 3;
}
message GS2C_ACK_BEACON_SHOP_PURCHASE_ITEM
{
string itemGuid = 1;
int32 itemAmount = 2;
string beaconGuid = 3;
CommonResult commonResult = 4;
}
message GS2C_ACK_BEACON_SHOP_GET_SOLD_RECORDS
{
repeated BeaconShopSoldRecordInfo beaconShopSoldRecordInfos = 1;
double totalGivenPrice = 2;
}
message GS2C_ACK_BEACON_SHOP_RECEIVE_PAYMENT_FOR_SALES
{
string beaconGuid = 1;
CommonResult commonResult = 2;
}
message GS2C_ACK_BEACON_SHOP_SEARCH_ITEM
{
repeated BeaconShopItemBoardInfo beaconShopItemBoardInfos = 1;
int32 currentPage = 2;
int32 totalPage = 3;
}
message GS2C_ACK_BEACON_SHOP_GET_ITEM_INFOS
{
repeated BeaconShopInfo beaconShopInfos = 1;
int32 dailyRegisterCount = 2;
int32 numOfReceiptNotReceived = 3;
}
message GS2C_ACK_BEACON_SHOP_RECENT_REGISTER_ITEMS
{
repeated BeaconShopItemBoardInfo recentRegisterBeaconShopItemBoardInfos = 1;
}
message GS2C_ACK_MOVE_TO_BEACON
{
ServerConnectInfo serverConnectInfo = 1;
CommonResult commonResult = 2;
}
message GS2C_ACK_CONTENTS_MOVE
{
oneof place
{
ServerConnectInfo gameServerConnectInfo = 1;
ServerConnectInfo InstanceServerConnectInfo = 2;
Pos pos = 3;
}
CommonResult commonResult = 4;
}
//=============================================================================================
// WorldEvent 월드이벤트 ack
//=============================================================================================
message GS2C_ACK_WORLD_EVENT_CONTRIBUTION
{
int32 worldEventId = 1; // 월드 이벤트 id
int32 contributionPoint = 2; // 기여도 포인트
int32 contributionPointMax = 3; // 기여도 포인트 최대
}
message GS2C_ACK_RANKING_INFO
{
string rankingGuid = 1;
google.protobuf.Timestamp nextRefreshTime = 2;
repeated RankInfo rankInfos = 3;
}
message GS2C_ACK_USE_COUPON
{
}
message GS2C_ACK_DESTROY_WEAPON_OBJECT
{
string anchorGuid = 1;
CommonResult commonResult = 2;
}
//=============================================================================================
// 배틀 관련 패킷 설정 시작
message GS2C_ACK_JOIN_BATTLE_INSTANCE
{
ServerConnectInfo InstanceServerConnectInfo = 1;
}
message GS2C_ACK_LEAVE_BATTLE_INSTANCE
{
string gameServerAddr = 1;
int32 gameServerPort = 2;
string otp = 3;
}
message GS2C_ACK_BATTLE_PLAYER_DEATH
{
}
message GS2C_ACK_BATTLE_PLAYER_RESPAWN
{
Pos pos = 1;
}
message GS2C_ACK_BATTLE_OBJECT_INTERACTION
{
string anchorGuid = 1;
}
message GS2C_ACK_PREPARATION_FOR_LEAVING_BATTLE_INSTANCE
{}
message GS2C_ACK_BATTLE_PING
{
google.protobuf.Timestamp packetProcessStartTime = 1;
google.protobuf.Timestamp beforSendAckTime = 2;
}
//배틀 관련 패킷 설정 종료
// ============================================================================================
// ============================================================================================
//게임모드 관련 패킷 설정 시작
message GS2C_ACK_GAME_OBJECT_INTERACTION
{
string anchorGuid = 1;
}
message GS2C_ACK_GAME_PLAYER_DEATH
{
}
message GS2C_ACK_GAME_PLAYER_RESPAWN
{
Pos pos = 1;
}
message GS2C_ACK_PREPARATION_FOR_LEAVING_GAME_INSTANCE
{}
message GS2C_ACK_LEAVE_GAME_INSTANCE
{
string gameServerAddr = 1;
int32 gameServerPort = 2;
string otp = 3;
}
message GS2C_ACK_GAME_MODE_LOAD_COMPLETE
{}
//게임모드 관련 패킷 설정 종료
// ============================================================================================
//============================================================
// Match
// 매칭 예약 응답
message GS2C_ACK_MATCH_RESERVE
{
MatchStatusInfo matchStatus = 1;
}
// 매칭 취소 응답
message GS2C_ACK_MATCH_CANCEL
{
}
//============================================================
//=============================================================================================
// ACK 패킷 설정
//=============================================================================================
ServerErrorCode errorCode = 1;
oneof msg {
LoginRes loginRes = 2;
LogoutRes logoutRes = 3;
ChatRes chatRes = 4;
CreateCharRes createCharRes = 5;
SelectCharRes selectCharRes = 6;
DeselectCharRes deselectCharRes = 7;
DeleteCharRes deleteCharRes = 8;
ListCharRes listCharRes = 9;
CreateChatRoomRes createChatRoomRes = 10;
JoinChatRoomRes joinChatRoomRes = 11;
LeaveChatRoomRes leaveChatRoomRes = 12;
JoinInstanceRes joinInstanceRes = 13;
LeaveInstanceRes leaveInstanceRes = 14;
JoinInstanceRoomRes joinInstanceRoomRes = 15;
LeaveInstanceRoomRes leaveInstanceRoomRes = 16;
CancelInstanceEntryQueueRes cancelInstanceEntryQueueRes = 17;
EnterMyHomeRes enterMyHomeRes = 18;
LeaveMyHomeRes leaveMyHomeRes = 19;
ExchagneMyHomeRes exchagneMyHomeRes = 20;
ExchagneMyHomePropRes exchagneMyHomePropRes = 21;
ExchangeLandPropRes exchangeLandPropRes = 22;
ExchangeBuildingRes exchangeBuildingRes = 23;
ExchangeBuildingLFPropRes exchangeBuildingLFPropRes = 24;
ExchangeInstanceRes exchangeInstanceRes = 25;
ExchangeSocialActionSlotRes exchangeSocialActionSlotRes = 26;
UseItemRes useItemRes = 27;
RemoveItemRes removeItemRes = 28;
WarpRes warpRes = 29;
AvatarInfoSaveRes avatarInfoSaveRes = 30;
EnterFittingRoomRes enterFittingRoomRes = 31;
LeaveFittingRoomRes leaveFittingRoomRes = 32;
AddItemRes addItemRes = 33;
ExchangeEmotionSlotRes exchangeEmotionSlotRes = 34;
UseMountPropRes useMountPropRes = 35;
EndUseMountPropRes endUseMountPropRes = 36;
NewEnterFittingRoomRes newEnterFittingRoomRes = 37;
NewLeaveFittingRoomRes newLeaveFittingRoomRes = 38;
EquipClothItemRes equipClothItemRes = 39;
UnequipClothItemRes unequipClothItemRes = 40;
UseSocialActionRes useSocialActionRes = 41;
StopSocialActionRes stopSocialActionRes = 42;
UseEmotionRes useEmotionRes = 43;
StopEmotionRes stopEmotionRes = 44;
ClothInfoSaveRes clothInfoSaveRes = 45;
StartBuffRes startBuffRes = 46;
StopBuffRes stopBuffRes = 47;
SocialActionTogetherRes socialActionTogetherRes = 48;
RemoveItemsRes removeItemsRes = 49;
ReadyToFoecedMoveRes readyToFoecedMoveRes = 51;
EnterCESConcertRes enterCESConcertRes = 52;
LeaveCESConcertRes leaveCESConcertRes = 53;
ChangeNickNameRes changeNickNameRes = 54;
ChangeGameOptionRes changeGameOptionRes = 55;
SendMailRes sendMailRes = 56;
GetMailRes getMailRes = 57;
ReadMailRes readMailRes = 58;
GetItemsMailRes getItemsMailRes = 59;
DeleteMailRes deleteMailRes = 60;
GetChannelListRes getChannelListRes = 61;
MoveChannelRes moveChannelRes = 62;
ExchangeMannequinDisplayItemRes exchangeMannequinDisplayItemRes = 63;
ElevatorFloorInfoRes elevatorFloorInfoRes = 64;
MoveWorldRes moveWorldRes = 65;
RegisterToolSlotRes registerToolSlotRes = 66;
DeregisterToolSlotRes deregisterToolSlotRes = 67;
ActivateToolItemRes activateToolItemRes = 68;
DeactivateToolItemRes deactivateToolItemRes = 69;
UseToolItemRes useToolItemRes = 70;
UseEquipedBuffRes useEquipedBuffRes = 71;
ChangeStateRes changeStateRes = 72;
TaxiRes taxiRes = 73;
GetCartRes getCartRes = 74;
AddCartRes addCartRes = 75;
DelCartRes delCartRes = 76;
BuyCartRes buyCartRes = 77;
GetFriendListRes getFriendListRes = 78;
GetFriendFolderListRes getFriendFolderListRes = 79;
GetReceivedFriendRequestListRes getReceivedFriendRequestListRes = 80;
GetSendedFriendRequestListRes getSendedFriendRequestListRes = 81;
GetBlockListRes getBlockListRes = 82;
ConfirmNewFriendRes confirmNewFriendRes = 83;
DeleteFriendRes deleteFriendRes = 84;
ChangeFriendOrderRes changeFriendOrderRes = 85;
SendFriendRequestRes sendFriendRequestRes = 86;
ReplyReceivedFriendRequestRes replyReceivedFriendRequestRes = 87;
BlockUserRes blockUserRes = 88;
InviteFriendToMyhomeRes inviteFriendToMyhomeRes = 89;
ReplyInviteToMyhomeRes replyInviteToMyhomeRes = 90;
CreateFriendFolderRes createFriendFolderRes = 91;
ChangeFriendFolderNameRes changeFriendFolderNameRes = 92;
HoldFriendFolderRes holdFriendFolderRes = 93;
ReleaseFriendFolderRes releaseFriendFolderRes = 94;
DeleteFriendFolderRes deleteFriendFolderRes = 95;
MoveFriendFolderUserRes moveFriendFolderUserRes = 96;
ConfirmNewReceivedFriendRequestRes confirmNewReceivedFriendRequestRes = 97;
ReNameFriendFolderRes reNameFriendFolderRes = 98;
CancelFriendRequestRes cancelFriendRequestRes = 99;
CancelBlockRes cancelBlockRes = 100;
RegisterTattooRes registerTattooRes = 101;
DeregisterTattooRes deregisterTattooRes = 102;
LevelUpTattooRes levelUpTattooRes = 103;
ChangeAttributeTattooRes changeAttributeTattooRes = 104;
BuyItemRes buyItemRes = 105;
ReplyInviteMyhomeRes replyInviteMyhomeRes = 106;
InvitePartyRes invitePartyRes = 107;
InvitePartyListRes invitePartyListRes = 108;
ReplyInvitePartyRes replyInvitePartyRes = 109;
LeavePartyRes leavePartyRes = 110;
ExchangePartyNameRes exchangePartyNameRes = 111;
ExchangePartyMemberMarkRes exchangePartyMemberMarkRes = 112;
BanPartyMemberRes banPartyMemberRes = 113;
SummonPartyMemberRes summonPartyMemberRes = 114;
GetCurrencyInfoRes getCurrencyInfoRes = 115;
QuestAcceptRes questAcceptRes = 116;
QuestTaskUpdateRes questTaskUpdateRes = 117;
ReplySummonPartyMemberRes replySummonPartyMemberRes = 118;
UserReportRes userReportRes = 119;
GetQuestMailRes getQuestMailRes = 120;
ReadQuestMailRes readQuestMailRes = 121;
RegisterMinimapMarkerRes registerMinimapMarkerRes = 122;
DeregisterMinimapMarkerRes deregisterMinimapMarkerRes = 123;
QuestRefuseRes questRefuseRes = 124;
QuestAbandonRes questAbandonRes = 125;
InvitePartySendListRes invitePartySendListRes = 126;
QuestRewardRes questRewardRes = 127;
SaveCharProfileRes saveCharProfileRes = 128;
GetCharProfileRes getCharProfileRes = 129;
SaveLanguageRes saveLanguageRes = 130;
SaveVisibleTattooSlotRes saveVisibleTattooSlotRes = 133;
PartyVoteRes partyVoteRes = 134;
ReplyPartyVoteRes replyPartyVoteRes = 135;
UseRewardPropRes useRewardPropRes = 136;
GetShopProductListRes getShopProductListRes = 137;
ShopPurchaseItemRes shopPurchaseItemRes = 138;
GetRePurchaseListRes getRePurchaseListRes = 139;
RePurchaseItemRes rePurchaseItemRes = 140;
SellItemRes sellItemRes = 141;
UseMegaPhoneItemRes useMegaPhoneItemRes = 142;
CreatePartyInstanceRes createPartyInstanceRes = 143;
JoinPartyInstanceRes joinPartyInstanceRes = 144;
GetClaimInfoRes getClaimInfoRes = 145;
ClaimRewardRes claimRewardRes = 146;
UseRandomBoxItemRes useRandomBoxItemRes = 147;
IntroCompleteRes introCompleteRes = 148;
KickFriendsFromMyHomeRes kickFriendsFromMyHomeRes = 150;
GS2C_ACK_ESCAPE_POSITION ackEscapePosition = 151;
GS2C_ACK_NPC_DIALOGUE ackNPCDialogue = 152;
GS2C_ACK_QUEST_TASK_UPDATE ackQuestTaskUpdate = 153;
GS2C_ACK_CUSTOM_DEFINED_UI_UPDATE ackCustomDefinedUIUpdate = 154;
GS2C_ACK_REGISTER_TATTOOS ackRegisterTattoos = 155;
GS2C_ACK_CUSTOM_DEFINED_UI_DELETE ackCustomDefinedUIDelete = 156;
GS2C_ACK_START_CRAFT ackStartCraft = 157;
GS2C_ACK_STOP_CRAFT ackStopCraft = 158;
GS2C_ACK_HELP_CRAFT ackHelpCraft = 159;
GS2C_ACK_FINISH_CRAFT ackFinishCraft = 160;
GS2C_ACK_UGC_NPC_CREATION ackUgcNpcCreation = 161;
GS2C_ACK_PAGED_UGQ_FROM_BOARD ackPagedUGQFromBoard = 162;
GS2C_ACK_SEARCHED_UGQ_FROM_BOARD ackSearchedUGQFromBoard = 163;
GS2C_ACK_UGQ_FROM_NPC ackUgqFromNpc = 164;
GS2C_ACK_UGQ_REGISTER_BOOKMARK ackUgqRegisterBookmark = 165;
GS2C_ACK_UGQ_DEREGISTER_BOOKMARK ackUgqDeregisterBookmark = 166;
GS2C_ACK_UGQ_REGISTER_LIKE ackUgqRegisterLike = 167;
GS2C_ACK_UGQ_DEREGISTER_LIKE ackUgqDeregisterLike = 168;
GS2C_ACK_UGQ_REPORT ackUgqReport = 169;
GS2C_ACK_UGQ_ASSIGN ackUgqAssign = 170;
GS2C_ACK_UGQ_REASSIGN ackUgqReAssign = 171;
GS2C_ACK_UGQ_ABORT ackUgqAbort = 172;
GS2C_ACK_UGQ_TEST_ABORT ackUgqTestAbort = 173;
GS2C_ACK_UGQ_TEST_COMPLETE ackUgqTestComplete = 174;
GS2C_ACK_AICHAT_AUTH ackAIChatAuth = 175;
GS2C_ACK_UGQ_DETAIL_FROM_BOARD ackUgqDetailFromBoard = 177;
GS2C_ACK_UGQ_ABORT_BY_SELF ackUgqAbortBySelf = 178;
GS2C_ACK_SEARCH_NICKNAME ackSearchNickname = 179;
GS2C_ACK_UGC_NPC_TOUCH ackUgcNpcTouch = 180;
GS2C_ACK_BUY_CHARGED_SEASON_PASS ackBuyChargedSeasonPass = 181;
GS2C_ACK_TAKE_SEASON_PASS_REWARD ackTakeSeasonPassReward = 182;
GS2C_ACK_UGQ_TEST_ASSIGN ackUgqTestAssign = 183;
GS2C_ACK_UGQ_RELOAD_STATE ackUgqReloadState = 185;
GS2C_ACK_UGC_NPC_LIKE ackUgcNpcLike = 186;
GS2C_ACK_UGQ_SPOTLIGHT_FROM_BOARD ackUgqSpotlightFromBoard = 187;
GS2C_ACK_UGQ_FIND_NPC ackUgqFindNpc = 188;
GS2C_ACK_SELECT_ADVERTISEMENT ackSelectAdvertisement = 189;
GS2C_ACK_UGQ_SIMPLE_INFO ackUgqSimpleInfo = 190;
GS2C_ACK_SAVE_MYHOME_UGC ackSaveMyhomeUgc = 191;
GS2C_ACK_DELETE_MYHOME ackDeleteMyhome = 192;
GS2C_ACK_RENAME_MYHOME ackRenameMyhome = 193;
GS2C_ACK_UGC_NPC_RANK ackUgcNpcRank = 194;
GS2C_ACK_NPC_INFO ackNpcInfo = 195;
GS2C_ACK_NPC_TOUCH ackNpcTouch = 196;
GS2C_ACK_CALIUM_CONVERTER ackCaliumConverter = 197;
GS2C_ACK_CONVERT_MATERIAL_TO_CALIUM ackConvertMaterialToCalium = 198;
GS2C_ACK_FARMING_START ackFarmingStart = 199;
GS2C_ACK_FARMING_CANCEL ackFarmingCancel = 200;
GS2C_ACK_LARGE_PACKET ackLargePacket = 201;
GS2C_ACK_UGC_NPC_EDIT ackUgcNpcEdit = 202;
GS2C_ACK_ENTER_MYHOME_EDIT_ROOM ackEnterMyhomeEditRoom = 203;
GS2C_ACK_CHARACTER_APPEARANCE_CUSTOMIZE ackCharacterAppearanceCustomize = 204;
GS2C_ACK_BEACON_APPEARANCE_CUSTOMIZE ackBeaconAppearanceCustomize = 205;
GS2C_ACK_BEACON_SELL ackBeaconSell = 206;
GS2C_ACK_RENTAL_LAND_INFOS ackRentalLandInfos = 207;
GS2C_ACK_RENTAL_FLOOR_INFOS ackRentalFloorInfos = 208;
GS2C_ACK_LAND_INFO ackLandInfo = 209;
GS2C_ACK_RENT_FLOOR ackRentFloor = 210;
GS2C_ACK_CHANGE_SCREEN_PAGE ackChangeScreenPage = 211;
GS2C_ACK_RENEWAL_SHOP_PRODUCTS ackRenewalShopProducts = 212;
GS2C_ACK_ENTITY_STATE_DANCE_START ackEntityStateDanceStart = 213;
GS2C_ACK_ENTITY_STATE_DANCE_END ackEntityStateDanceEnd = 214;
GS2C_ACK_BEACON_APP_PROFILE_UPLOAD_ADDRESS ackBeaconAppProfileUploadAddress = 215;
GS2C_ACK_MODIFY_LAND_INFO ackModifyLandInfo = 216;
GS2C_ACK_LAND_PROFIT_REPORT ackLandProfitReport = 217;
GS2C_ACK_GAIN_LAND_PROFIT ackGainLandProfit = 218;
GS2C_ACK_LAND_RENTAL_HISTORY ackLandRentalHistory = 219;
GS2C_ACK_LAND_PROFIT_HISTORY ackLandProfitHistory = 220;
GS2C_ACK_LAND_AUCTION_BID ackLandAuctionBid = 221;
GS2C_ACK_LAND_AUCTION_SCHEDULE_ALL ackLandAuctionScheduleAll = 222;
GS2C_ACK_LAND_AUCTION_HISTORY_ALL ackLandAuctionHistoryAll = 223;
GS2C_ACK_LAND_AUCTION_CHECK ackLandAuctionCheck = 224;
GS2C_ACK_CALIUM_EXCHANGER_INFO ackCaliumExchangerInfo = 225;
GS2C_ACK_CONVERT_EXCHANGER_CALIUM ackConvertExchangerCalium = 226;
GS2C_ACK_LAND_RENTAL_INFO ackLandRentalInfo = 227;
GS2C_ACK_SWITCHING_PROP_STATE ackSwitchingPropState = 228;
GS2C_ACK_PING ackPing = 229;
GS2C_ACK_BEACON_SHOP_REGISTER_ITEM ackBeaconShopRegisterItem = 230;
GS2C_ACK_BEACON_SHOP_RETURN_ITEM ackBeaconShopReturnItem = 231;
GS2C_ACK_BEACON_SHOP_PURCHASE_ITEM ackBeaconShopPurchaseItem = 232;
GS2C_ACK_BEACON_SHOP_GET_SOLD_RECORDS ackBeaconShopGetSoldRecords = 233;
GS2C_ACK_BEACON_SHOP_RECEIVE_PAYMENT_FOR_SALES ackBeaconShopReceivePaymentForSales = 234;
GS2C_ACK_BEACON_SHOP_SEARCH_ITEM ackBeaconShopSearchItem = 235;
GS2C_ACK_BEACON_SHOP_GET_ITEM_INFOS ackBeaconShopGetItemInfos = 236;
GS2C_ACK_BEACON_SHOP_RECENT_REGISTER_ITEMS ackBeaconShopRecentRegisterItems = 237;
GS2C_ACK_MOVE_TO_BEACON ackMoveToBeacon = 238;
GS2C_ACK_CONTENTS_MOVE ackContentsMove = 239;
GS2C_ACK_WORLD_EVENT_CONTRIBUTION ackWorldEventContribution = 240;
GS2C_ACK_RANKING_INFO ackRankingInfo = 241;
GS2C_ACK_USE_COUPON ackUseCoupon = 242;
GS2C_ACK_DESTROY_WEAPON_OBJECT ackDestroyWeaponObject = 243;
//=============================================================================================
// Battle 관련 패킷 정의 - Pilot 이기 때문에 100000번 부터 시작
GS2C_ACK_JOIN_BATTLE_INSTANCE ackJoinBattleInstance = 100000;
GS2C_ACK_LEAVE_BATTLE_INSTANCE ackLeaveBattleInstance = 100001;
GS2C_ACK_BATTLE_PLAYER_DEATH ackBattlePlayerDeath = 100002;
GS2C_ACK_BATTLE_PLAYER_RESPAWN ackBattlePlayerRespawn = 100003;
GS2C_ACK_BATTLE_OBJECT_INTERACTION ackBattleObjectInteraction = 100004;
GS2C_ACK_PREPARATION_FOR_LEAVING_BATTLE_INSTANCE ackPreparationForLeavingInstance = 100005;
//=============================================================================================
// GameMode 관련 패킷 정의 - 일단 여기에 정의하고 개발 마무리 시점에 나중에 위로 올리던가 한다.
GS2C_ACK_GAME_OBJECT_INTERACTION ackGameObjectInteraction = 100010;
GS2C_ACK_GAME_PLAYER_DEATH ackGamePlayerDeath = 100011;
GS2C_ACK_GAME_PLAYER_RESPAWN ackGamePlayerRespawn = 100012;
GS2C_ACK_PREPARATION_FOR_LEAVING_GAME_INSTANCE ackPreparationForLeavingGameInstance = 100013;
GS2C_ACK_LEAVE_GAME_INSTANCE ackLeaveGameInstance = 100014;
GS2C_ACK_GAME_MODE_LOAD_COMPLETE ackGameModeLoadComplete = 100015;
//=====================================================================
// 게임 매칭
GS2C_ACK_MATCH_RESERVE ackMatchReserve = 110001;
GS2C_ACK_MATCH_CANCEL ackMatchCancel = 110002;
//=====================================================================
}
}
message ClientToGameMessage
{
//=============================================================================================
// NTF 패킷 정의
//==================================================`===========================================
message Chat {
ChatType type = 1;
string sender = 2;
string receiver = 3;
PlayerStateType receiverstate = 4;
string message = 5;
}
//=============================================================================================
// Actor 위치 및 Sight 관련
//=============================================================================================
message SetLocation {
Pos pos = 1;
}
message MoveActor {
string actorGuid = 1;
Pos pos = 2;
}
// 삭제 및 교체 패킷 => GC2C_NTF_PLAYER_IN_SIGHT
message ActorInSight {
repeated GameActor actorList = 1;
}
// 삭제 및 교체 패킷 => GC2C_NTF_PLAYER_MODIFY
message ActorModify {
string actorGuid = 1;
AvatarInfo avatarInfo = 2;
ClothInfoOfAnotherUser clothInfo = 3;
}
// 삭제 및 교체 패킷 => GC2C_NTF_PLAYER_OUT_OF_SIGHT
message ActorOutOfSight {
repeated string actorGuid = 1;
}
//=============================================================================================
// Player Signt 관련
//=============================================================================================
message GS2C_NTF_PLAYER_IN_SIGHT {
repeated GameActor toAddPlayerEntities = 1;
}
message GS2C_NTF_PLAYER_MODIFY {
string toModifyPlayerGuid = 1;
AvatarInfo avatarInfo = 2;
ClothInfoOfAnotherUser clothInfo = 3;
EntityStateInfo entityStateInfo = 11;
}
message GS2C_NTF_PLAYER_OUT_OF_SIGHT {
repeated string toOutOfPlayerGuids = 1;
repeated string debugInfos = 2; // 디버깅 필요시 활용
}
//=============================================================================================
// NPC Signt 관련
//=============================================================================================
message GS2C_NTF_NPC_IN_SIGHT {
repeated UgcNpcEntity toAddUgcNpcEntities = 1; //추가된 UgcNpcEntity 목록
}
message GS2C_NTF_NPC_MODIFY {
UgcNpcEntity toModifyUgcNpcEntity = 1; //수정된 UgcNpcEntity
}
message GS2C_NTF_NPC_OUT_OF_SIGHT {
repeated string toOutOfEntityInstantGuids = 1;
repeated string debugInfos = 2; // 디버깅 필요시 활용
}
//=============================================================================================
// Instance Room 관련
//=============================================================================================
message InstanceRoomMember {
repeated string memberGuid = 1;
}
message JoinInstanceRoomMember {
string memberGuid = 1;
}
message LeaveInstanceRoomMember {
string memberGuid = 1;
}
message ConcertInfo {
google.protobuf.Timestamp startTime = 1;
google.protobuf.Timestamp endTime = 2;
int32 remainingSeat = 3;
}
message ConcertStart {
google.protobuf.Timestamp startTime = 1;
google.protobuf.Timestamp endTime = 2;
repeated ItemGuidCount items = 3;
}
message GS2C_NTF_CONCERT_END {
}
message InstanceEntryQueueInfo {
int32 instanceId = 1;
int32 rank = 2;
}
message MyHomeInfoNoti {
string selectedMyhomeGuid = 1;
int32 openSlotCount = 2;
}
message GS2C_NTF_MYHOME_INFO{
MyHomeInfo myhomeInfo = 1;
}
message GS2C_NTF_LAND_INFOS {
map<int32, LandInfo> landInfos = 1;
}
message GS2C_NTF_BUILDING_INFOS {
map<int32, BuildingInfo> buildingInfos = 1;
}
message GS2C_NTF_OWNED_LAND_INFOS {
repeated int32 ownedLandInfos = 1;
}
message GS2C_NTF_OWNED_BUILDING_INFOS {
repeated int32 ownedBuildingInfos = 1;
}
message OwnedSocialActionNoti {
repeated int32 ownedList = 1;
repeated SlotInfo equipList = 2;
}
message OwnedEmotionNoti {
repeated int32 ownedList = 1;
repeated SlotInfo equipList = 2;
}
message UseMountPropNoti {
string anchorGuid = 1;
string actorGuid = 2;
}
message EndUseMountPropNoti {
string anchorGuid = 1;
string actorGuid = 2;
}
message PlaySocialActionNoti {
string actorGuid = 1;
int32 socialActionId = 2;
google.protobuf.Timestamp startTime = 3;
}
message StopSocialActionNoti {
string actorGuid = 1;
}
message PlayEmotionNoti {
string actorGuid = 1;
int32 emotionId = 2;
google.protobuf.Timestamp startTime = 3;
}
message StopEmotionNoti {
string actorGuid = 1;
}
message StartBuffNoti
{
string actorGuid = 1;
Buff buf = 2;
}
message StopBuffNoti
{
string actorGuid = 1;
Buff buf = 2;
}
message ConcurrentUsersCountNoti
{
int32 count = 1;
}
message GameOptionNoti
{
repeated int32 valuesList = 1;
}
message NewMailNoti
{
}
message ReceiveQuestMailNoti
{
repeated QuestMailInfo questMailInfo = 1;
}
message DeleteQuestMailNoti
{
int64 questId = 1;
}
message PropInSight {
repeated PropInfo propList = 1;
}
message PropModify {
repeated PropInfo propList = 1;
}
message PropOutOfSight {
repeated string anchorGuid = 1;
}
message OwnedRoomNoti {
repeated RoomInfo roomList = 1;
}
message RoomInfoNoti {
repeated RoomInfo list = 1;
}
message ActivateToolItemNoti {
string actorGuid = 1;
int32 toolItemId = 2;
}
message DeactivateToolItemNoti {
string actorGuid = 1;
}
message UseToolItemNoti {
string actorGuid = 1;
int32 toolItemId = 2;
int32 toolItemStep = 3;
int32 toolItemRandomState = 4;
int64 actionStartTime = 5;
}
message UseEquipedBuffNoti {
string actorGuid = 1;
int32 equipedBuffId = 2;
int32 equipedBuffStep = 3;
int32 equipedBuffRandomState = 4;
int64 actionStartTime = 5;
}
message ChangeStateNoti {
string actorGuid = 1;
int32 state = 2;
}
message P2PGroupHostIdNoti {
int32 p2pGroupHostId = 1;
}
message CartNoti {
repeated CartItemInfo itemList = 1;
}
message FriendListNoti
{
repeated FriendInfo friendList = 1;
}
message FriendFolderListNoti
{
int32 folderOrderType = 1;
repeated FriendFolder friendFolderList = 2;
}
message InviteFriendToMyhomeNoti
{
}
message ReplyInviteToMyhomeNoti
{
}
message BlockListNoti
{
repeated BlockInfo BlockList = 1;
}
message SendedFriendRequestNoti
{
repeated FriendRequestInfo requestList = 1;
}
message ReceivedFriendRequestNoti
{
repeated FriendRequestInfo requestList = 1;
}
message FriendRequestNoti
{
FriendRequestInfo requestInfo = 1;
}
message ToFiendNotiBase
{
string senderId = 1;
string senderGuid = 2;
string senderNickName = 3;
int32 senderState = 4;
int32 senderMapId = 5;
string receiverGuid = 6;
string receiverNickName = 7;
string receiverId = 8;
}
message FriendLoginNoti
{
ToFiendNotiBase baseInfo = 1;
UserLocationInfo locationInfo = 2;
}
message FriendLogoutNoti
{
ToFiendNotiBase baseInfo = 1;
}
message FriendStateNoti
{
ToFiendNotiBase baseInfo = 1;
UserLocationInfo locationInfo = 2;
}
message ChangeTattooNoti
{
string accountGuid = 1;
repeated TattooSlotInfo tattooInfoList = 2;
}
message ReceiveInviteMyHomeNoti
{
ToFiendNotiBase baseInfo = 1;
string receiverId = 2;
string inviterMyHomeId = 3;
google.protobuf.Timestamp expireTime = 4;
google.protobuf.Timestamp replyExpireTime = 5;
string uniqueKey = 6;
}
message KickedByFriendsMyHomeNoti
{
}
message ServerInfoByFriendKickedNoti
{
ServerConnectInfo serverInfo = 1;
}
message ReplyInviteMyhomeNoti
{
int32 acceptOrRefuse = 1;
string receiverId = 2;
string replyUserGuid = 3;
}
message FriendMyhomeInfoNoti
{
ServerConnectInfo instanceServerConnectInfo = 1;
}
message FriendAcceptNoti
{
string senderId = 1;
string senderGuid = 2;
string senderNickName = 3;
int32 acceptOrRefuse = 4;
string receiverId = 5;
string receiverGuid = 6;
}
message FriendDeleteNoti
{
string senderId = 1;
string senderGuid = 2;
string senderNickName = 3;
string receiverId = 4;
string receiverGuid = 5;
}
message CancelFriendRequestNoti
{
string senderId = 1;
string senderGuid = 2;
string senderNickName = 3;
string receiverId = 4;
string receiverGuid = 5;
}
message CurrencyMaxNoti
{
string currencyType = 1;
}
message QuestList
{
repeated QuestInfo quests = 1;
repeated QuestMetaInfo questMetaInfos = 2;
CommonResult commonResult = 3;
}
message EndQuestList
{
repeated QuestEndInfo endQuests = 1;
}
message GS2C_NTF_QUEST_ASSIGN_META_INFO
{
repeated QuestAssignMetaInfo questAssignMeteInfos = 1;
repeated QuestTaskMetaInfo questTaskMetaInfos = 2;
}
message ClaimUpdateNoti
{
int32 claimId = 1;
ClaimEventActiveInfo normalInfo = 2;
ClaimEventActiveInfo membershipInfo = 3;
}
message GS2C_PARTY_INVITE_RESULT {
ServerErrorCode errorCode = 1;
string inviteUserGuid = 2;
}
message InvitePartyNoti {
string inviteHostUserGuid = 1;
string inviteHostUserNickname = 2;
}
message ReplyInvitePartyNoti {
string inviteUserGuid = 1;
string inviteUserNickname = 2;
BoolType result = 3;
}
message JoinPartyInfoNoti {
string partyName = 1;
string partyLeaderNickname = 2;
string partyLeaderGuid = 3;
repeated PartyMemberState partyMemberList = 4;
ServerConnectInfo serverConnectInfo = 5;
ServerErrorCode errorCode = 6;
}
message JoinPartyMemberNoti {
string joinPartyMemberGuid = 1;
PartyMemberState joinMemberInfo = 2;
}
message LeavePartyMemberNoti {
string leavePartyUserGuid = 1;
BoolType isBan = 2;
}
message ChangePartyLeaderNoti {
string newPartyLeaderGuid = 1;
}
message ExchangePartyNameNoti {
string newPartyName = 1;
}
message ExchangePartyMemberMarkNoti {
string memberUserGuid = 1;
int32 markId = 2;
}
message DestroyPartyNoti {
}
message LoginBuffNoti {
BuffInfo BuffInfo = 1;
}
message BanPartyNoti {
}
message ChangeNickNameNoti {
string Guid = 1;
string NickName = 2;
}
message DelBuffListNoti {
repeated Buff delBuffList = 1;
}
message SummonPartyMemberNoti {
}
message ReplySummonPartyMemberNoti {
string summonMemberGuid = 1;
SummonPartyMemberResultType result = 2;
}
message MinimapMarkerNoti{
repeated CharPos markerPos = 1;
}
message PartyVoteNoti {
string voteTitle = 1;
google.protobuf.Timestamp voteStartTime = 2;
}
message PartyVoteResultNoti {
string voteTitle = 1;
int32 resultTrue = 2;
int32 resultFalse = 3;
int32 abstain = 4;
}
message PartyP2PGroupHostIdNoti {
int32 partyP2pGroupHostId = 1;
}
message RewardPropStateNoti {
string anchorGuid = 1;
int32 tableId = 2;
int32 isUsable = 3;
}
message MyHomeAddNoti {
int32 myHomeId = 1;
}
message SocialActionAddNoti {
int32 socialActionId = 1;
}
message PartyInstanceInfoNoti {
int32 instanceId = 1;
google.protobuf.Timestamp startTime = 2;
google.protobuf.Timestamp endTime = 3;
int32 joinMemberCount = 4;
BoolType isEnd = 5;
}
message PartyMemberP2PStateNoti {
string memberGuid = 1;
BoolType isP2P = 2;
}
message PartyMemberLocationNoti {
string memberGuid = 1;
UserLocationInfo locationInfo = 2;
}
message GS2C_NTF_QUEST_TASK_REWARD
{
CommonResult commonResult = 1;
}
message GS2C_NTF_UGQ_QUESTS
{
repeated AllUgqInfos allUgqInfos = 1;
}
message GS2C_NTF_UGQ_DAILY_REWARD_COUNTS
{
repeated UgqDailyRewardCount ugqDailyRewardCounts = 1;
google.protobuf.Timestamp nextRefreshTime = 2;
}
message GS2C_NTF_UGQ_STATE_CHANGED
{
int64 composedQuestId = 1;
UgqStateType state = 2;
}
message GS2C_NTF_LOGOUT
{
LogoutReasonType logoutReason = 1;
string reasonMessage = 2;
}
message GS2C_NTF_HOST_FRIEND_LEAVED_HOME
{
}
message GS2C_NTF_FRIEND_LEAVING_HOME
{
string guid = 1;
string nickName = 2;
}
message GS2C_NTF_CANCEL_SUMMON_PARTY_MEMBER {
repeated Item items = 1;
}
message GS2C_NTF_CUSTOM_DEFINED_UI_ALL {
map<string, string> uiDatas = 1;
}
message GS2C_NTF_CRAFT_RECIPES {
repeated uint32 craftMetaIds = 1;
}
message GS2C_NTF_ITEM_FIRST_PURCHASE_HISTORY
{
repeated uint32 itemMetaids = 1;
}
message GS2C_NTF_SHOP_PRODUCT_RESET
{
int32 shopId = 1;
}
message GS2C_NTF_CRAFT_INFO {
repeated CraftInfo craftInfos = 1;
string ownerGuid = 2;
}
// 보유 Ugc Npc 정보 목록 통지 : 유저 로딩시점에 통지
message GS2C_NTF_UGC_NPC_ALL_LOAD
{
// <UGC_NPC_META_GUID, UgcNpcSummary>
map<string, UgcNpcSummary> hasUgcNpcSummaries = 1; // 보유 UgcNpcSummary 메타 정보
// <UGC_NPC_META_GUID, UgcNpcItem>
map<string, UgcNpcItems> hasUgcNpcItems = 2; // 보유 UgcNpcItem들의 정보, Game_Define.UgcNpcItem
}
// 보유 Ugc Npc 삭제 통지
message GS2C_NTF_UGC_NPC_DELETION
{
string deletedUgcNpcMetaGuid = 1; // 삭제된 Ugc Npc Meta Guid
CommonResult commonResult = 11; // 각종 변화된 결과 정보들, Game_Define.CommonResult 참조
}
message GS2C_NTF_CRAFT_HELP_UPDATE {
string anchor_guid = 1;
google.protobuf.Timestamp craftFinishTime = 2;
}
message GS2C_NTF_SEASON_PASS_INFO
{
uint32 metaId = 1; // SeasonPass의 Meta Id
uint32 exp = 2; // SeasonPass의 경험치
int32 grade = 3; // SeasonPass의 보상 받을수 있는 등급
repeated int32 takenRewards = 4; // 받은 보상 등급값
BoolType isChargedPass = 5; // 유료 결재 했는지
}
// 패킷 리시브 에러 통지
message GS2C_NTF_LARGE_PACKET_PROCESS_ERROR
{
ServerErrorCode errorCode = 1;
}
message GS2C_NTF_MYHOME_UGC_INFO
{
string myhomeGuid = 1;
MyhomeUgcInfo myhomeUgcInfo = 2;
}
// EntityType.Beacon 상세 정보
message GS2C_NTF_BEACON_DETAIL_INFO
{
string ugcNpcMetaGuid = 1; // Ugc Npc Meta Id (GUID)
string ownerUserGuid = 2; // Ugc Npc Meta 정보의 소유자의 UserGuid
UgcNpcSummary ugcNpcSummary = 5; // Ugc Npc Meta 요약 정보
int64 likeCount = 11; // 좋아요 누적 개수
int64 dialogCount = 12; // 대화 누적 개수
}
// EntityType.Beacon 상호작용 정보
message GS2C_NTF_BEACON_INTERACTION_INFO
{
string entityInstantGuid = 1; // 터치한 Npc Instant Guid, GS2C_NTF_NPC_IN_SIGHT.UgcNpcEntity.entityInstantGuid 전달된 Guid !!!
UgcNpcInteraction ugcNpcInteraction = 5; // Ugc Npc 상호작용 정보
}
// ugc npc rank 갱신 노티
message GS2C_NTF_UGC_NPC_RANK_REFRESH
{
}
// 제작 owner에게 도움 받은 알림
message GS2C_NTF_CRAFT_HELPED
{
int32 helpedCount = 1;
string helpUserNickName = 2;
}
// 진행중인 파밍 목록 통지 : 유저 로딩시점에 통지
message GS2C_NTF_FARMING_ALL_LOAD
{
repeated FarmingSummary progressFarmingSummaries = 1; // 진행중인 파밍 목록
}
// 파밍 시작 통지 : 시야권내에 있는 플레이어들에게 보낸다.
message GS2C_NTF_FARMING_START
{
string farmingAnchorMetaId = 1; // MapMetaData에 있는 파밍 Anchor Id
FarmingSummary farmingSummary = 2; // 파밍 요약 정보
}
// 파밍 취소 통지 : 시야권내에 있는 플레이어들에게 보낸다.
message GS2C_NTF_FARMING_CANCEL
{
string farmingAnchorMetaId = 1; // MapMetaData에 있는 파밍 Anchor Id
FarmingSummary farmingSummary = 2; // 파밍 요약 정보
}
// 파밍 종료 통지
message GS2C_NTF_FARMING_END
{
string farmingAnchorMetaId = 1; // MapMetaData에 있는 파밍 Anchor Id
FarmingSummary farmingSummary = 2; // 파밍 요약 정보
}
// 어트리뷰트 갱신
message GS2C_NTF_ATTRIBUTE_UPDATE
{
OwnerEntityType ownerEntityType = 1; // 소유자 엔티티의 종류
string ownerGuid = 2; // 소유자 엔티티의 Guid
AbilityInfo attributeInfo = 3; // AbilityInfo
}
// 보유 금전량 초과 알림 통지
message GS2C_NTF_CURRENCY_MAX_ALERT
{
CurrencyType currencyType = 1; // 초과한 재화 종류
double maxMoney = 2; // 해당 재화 종류의 최대 금전량
}
// Beam충전 (cave_duck에 충전) 알림
message GS2C_NTF_BEAM_CHARGE
{
}
// 마이홈 오너 마이홈 편집 알림
message GS2C_NTF_MYHOME_HOST_ENTER_EDIT_ROOM
{
}
message GS2C_NTF_OWNED_RENTAL_INFOS
{
repeated OwnedRentalInfo ownedRentalInfos = 1;
}
message GS2C_NTF_MAP_LINKED_INFOS
{
repeated LandLinkedInfo landLinkedInfos = 1;
}
message GS2C_NTF_MODIFY_FLOOR_LINKED_INFOS
{
repeated ModifyFloorLinkedInfo modifyFloorLinkedInfos = 1;
}
message GS2C_NTF_MODIFY_OWNED_RENTAL_INFOS
{
repeated ModifyOwnedRentalInfo modifyOwnedRentalInfos = 1;
}
// 비컨의 상태 변경시 통지 한다.
message GS2C_NTF_BEACON_COMPACT_UPDATE
{
string ugcNpcMetaGuid = 1; // Ugc Npc Meta Id (GUID)
string ownerUserGuid = 2; // Ugc Npc Meta 정보의 소유자의 UserGuid
UgcNpcCompact ugcNpcCompact = 5; // Ugc Npc 간소한 요약 정보
}
message GS2C_NTF_QUEST_REWARD
{
CommonResult commonResult = 1;
}
message GS2C_NTF_SWITCHING_PROP_STATE
{
repeated SwitchingPropState switchingPropState = 1;
}
// 플레이어 게임 서버 로그인시 발생
// 랜드 경매 목록 통지
message GS2C_NTF_LAND_AUCTION_ALL_LOAD
{
repeated LandAuctionSummary landAuctionsSummaries = 1; // 랜드 경매 목록 (랜드는 있으나 랜드 경매 정보는 없을 수 있다 !!!)
}
// 랜드 경매 낙찰시 발생
// 랜드 경매 낙찰 통지
message GS2C_NTF_LAND_AUCTION_WINNING_BID
{
string winningUserNickname = 1; // 낙찰 받은 유저의 닉네임
int32 landMetaId = 5; // 낙찰 받은 LandData Meta Id
}
// 랜드 경매 최고 입찰자 변경 통지
message GS2C_NTF_LAND_AUCTION_HIGHEST_BIDDER_CHANGE
{
int32 landMetaId = 1; // 경매 대상 LandData Meta Id
CurrencyType currencyType = 5; // 입찰한 재화 종류
double highestBidPrice = 6; // 최고 입찰가
string highestBidUserGuid = 7; // 최고가 입찰자 식별키
string highestBidUserNickname = 8; // 최고가 입찰자 닉네임
}
message GS2C_NTF_BANNER_INFOS
{
repeated BannerInfo bannerInfos = 1;
}
message GS2C_NTF_RANKING_SCHEDULE_INFOS
{
repeated RankingScheduleInfo rankingScheduleInfos = 1;
}
//=============================================================================================
// WorldEvent 월드이벤트 NTF
//=============================================================================================
message GS2C_NTF_WORLD_EVENT_SCHEDULE
{
repeated WordEventSchedule schedules = 1; // 월드이벤트 스케줄 목록
}
//=================================================================================================
// GameMode 관련 Notify
//=================================================================================================
message GS2C_NTF_GAME_MODE_STATE_UPDATE
{
GameModeState currentState = 1;
google.protobuf.Timestamp nextUpdatableTime = 2; //시간이 지남에 따라 다음 상태로 변환되는 시간 그전에 상태가 바뀔스도 있다.필요없으면 삭제 처리
StateUpdateReasonType updateReason = 3;
}
message GS2C_NTF_GAME_MODE_OVERALL_INFO
{
google.protobuf.Timestamp gameCreateTime = 1;
google.protobuf.Timestamp serverTime = 2;
}
message GS2C_NTF_GAME_MODE_PLAY_REGULATION
{
repeated MatchRestriction matchRestriction = 1;
repeated GameModePlayPenalty gamePlayPenalty = 2;
}
message GS2C_NTF_GAME_MODE_OBJECT_INFO
{
repeated GameModeObjectInfo gameModeObjectInfos = 1;
}
message GS2C_NTF_POD_COMBAT_STATE
{
repeated BattlePodCombatState podCombatState = 1;
}
message GS2C_NTF_BATTLE_PLAYER_DEATH
{
string killerUserGuid = 1;
string deadUserGuid = 2;
}
message GS2C_NTF_BATTLE_PLAYER_RESPAWN
{
string respawnUserGuid = 1;
Pos pos = 2;
}
message GS2C_NTF_GAME_PLAYER_RESPAWN
{
string respawnUserGuid = 1;
Pos pos = 2;
}
message GS2C_NTF_RUN_RACE_RESULT_SUMMARY
{
int32 totalPlayUserCount = 1;
repeated RunRaceResult raceResults = 2;
repeated GameModeRewardResult raceRewardResults = 3;
repeated GameModeRewardResultWithRank raceRewardResultsWithRank = 4;
}
message GS2C_NTF_GAME_USER_KICK
{
GameModeKickReason reason = 1;
}
message GS2C_NTF_BATTLE_OBJECT_STATE_INFO
{
repeated BattleObjectInfo battleObjectInfos = 1;
}
message GS2C_NTF_BATTLE_OBJECT_INTERACTION
{
string anchorGuid = 1;
string userGuid = 2;
}
message GS2C_NTF_BATTLE_INSTANCE_DESTROYED
{
}
message GS2C_NTF_BATTLE_INSTANCE_REWARD
{
string acquireUserGuid = 1;
CommonResult acquireRewards = 2;
}
message GS2C_NTF_BATTLE_EVENT
{
repeated BattleEventInfo battleEvent = 1;
}
message GS2C_NTF_P2P_HOST_UPDATE
{
string hostUserGuid = 1;
}
message GS2C_NTF_READY_POS
{
repeated GameModePlayerPositionInfo gameModePlayerPositionInfos = 1;
}
message GS2C_NTF_BATTLE_INSTANCE_STATE
{
google.protobuf.Timestamp createTime = 1; //해당 인스턴스 생성 시간(이벤트 생성시간 기준)
GameModeState roundStateType = 2;
google.protobuf.Timestamp roundStateStartTime = 3;
int32 currentRound = 4;
int32 rewardedStep = 5; //보상 받은 스텝
int32 chargedStep = 6; //충전된 스텝
google.protobuf.Timestamp nextUpdatableTime = 7;
}
// 랜드 경매 추가 or 갱신 통지
message GS2C_NTF_LAND_AUCTION_SUMMARY
{
LandAuctionSummary landAuctionSummary = 1;
}
message GS2C_NTF_PREPARATION_FOR_LEAVING_BATTLE_INSTANCE
{
string leavingUserGuid = 1;
}
//비컨 개인 상점 정보 재요청 하도록 하는 패킷 - 해당 비컨의 UI를 켜두고 있을경우
message GS2C_NTF_BEACON_SHOP_REFRESH
{
string beaconGuid = 1;
BoolType hasBeaconShopItem = 2;
}
// 아이템 삭제 통지
message GS2C_NTF_ITEM_DELETE
{
string deletedItemGuid = 1;
int32 deletedCount = 2;
}
//==========================================================
// Match
// 매칭 상태 통지
message GS2C_NTF_MATCH_STATUS
{
MatchStatusInfo matchStatusInfo = 1;
}
// 매칭 결과 통지
message GS2C_NTF_MATCH_RESULT
{
MatchStatusType matchStatus = 1;
ServerConnectInfo instanceServerConnectInfo = 2; // 커넥션 정보 - 인스턴스 id 포함
int32 gameModeId = 3; // 게임 모드 아이디
}
// 매칭 리전 핑 정보 - 게임 서버 접속 시 전송됨
message GS2C_NTF_MATCH_REGION_INFO
{
repeated MatchRegionInfo MatchRegionInfos = 1;
}
//==========================================================
//=============================================================================================
// NTF 패킷 설정
//=============================================================================================
oneof msg {
Chat chat = 1;
ActorInSight actorInSight = 2;
ActorOutOfSight actorOutOfSight = 3;
MoveActor moveActor = 4;
SetLocation setLocation = 5;
InstanceRoomMember instanceRoomMember = 6;
JoinInstanceRoomMember joinInstanceRoomMember = 7;
LeaveInstanceRoomMember leaveInstanceRoomMember = 8;
ConcertInfo concertInfo = 9;
ConcertStart concertStart = 10;
InstanceEntryQueueInfo instanceEntryQueueInfo = 11;
MyHomeInfoNoti myHomeInfoNoti = 12;
GS2C_NTF_LAND_INFOS ntfLandInfos = 13;
GS2C_NTF_BUILDING_INFOS ntfBuildingInfos = 14;
GS2C_NTF_OWNED_LAND_INFOS ntfOwnedLandInfos = 15;
GS2C_NTF_OWNED_BUILDING_INFOS ntfOwnedBuildingInfos = 16;
OwnedSocialActionNoti ownedSocialActionNoti = 17;
ActorModify actorModify = 18;
OwnedEmotionNoti ownedEmotionNoti = 19;
UseMountPropNoti useMountPropNoti = 20;
EndUseMountPropNoti endUseMountPropNoti = 21;
PlaySocialActionNoti playSocialActionNoti = 22;
StopSocialActionNoti stopSocialActionNoti = 23;
PlayEmotionNoti playEmotionNoti = 24;
StopEmotionNoti stopEmotionNoti = 25;
StartBuffNoti startBuffNoti = 26;
StopBuffNoti stopBuffNoti =27;
ConcurrentUsersCountNoti concurrentUsersCountNoti = 28;
GameOptionNoti gameOptionNoti = 30;
NewMailNoti newMailNoti = 31;
PropInSight propInSight = 32;
PropModify propModify = 33;
PropOutOfSight propOutOfSight = 34;
OwnedRoomNoti ownedRoomNoti = 35;
RoomInfoNoti roomInfoNoti = 36;
ActivateToolItemNoti activateToolItemNoti = 37;
DeactivateToolItemNoti deactivateToolItemNoti = 38;
UseToolItemNoti useToolItemNoti = 39;
UseEquipedBuffNoti useEquipedBuffNoti = 40;
ChangeStateNoti changeStateNoti = 41;
P2PGroupHostIdNoti p2PGroupHostIdNoti = 42;
CartNoti cartNoti = 43;
FriendListNoti friendListNoti = 44;
FriendFolderListNoti friendFolderListNoti = 45;
InviteFriendToMyhomeNoti inviteFriendToMyhomeNoti = 46;
ReplyInviteToMyhomeNoti replyInviteToMyhomeNoti = 47;
BlockListNoti blockListNoti = 48;
SendedFriendRequestNoti sendedFriendRequestNoti = 49;
ReceivedFriendRequestNoti receivedFriendRequestNoti = 50;
FriendLoginNoti friendLoginNoti = 51;
FriendLogoutNoti friendLogoutNoti = 52;
ChangeTattooNoti changeTattooNoti = 53;
ReceiveInviteMyHomeNoti receiveInviteMyHomeNoti = 54;
ReplyInviteMyhomeNoti replyInviteMyhomeNoti = 55;
FriendMyhomeInfoNoti friendMyhomeInfoNoti = 56;
FriendStateNoti friendStateNoti = 57;
FriendRequestNoti friendRequestNoti = 58;
FriendAcceptNoti friendAcceptNoti = 59;
FriendDeleteNoti friendDeleteNoti = 60;
CancelFriendRequestNoti cancelFriendRequestNoti = 61;
QuestList questInfoNoti = 62;
EndQuestList questEndInfoNoti = 63;
InvitePartyNoti invitePartyNoti = 64;
ReplyInvitePartyNoti replyInvitePartyNoti = 65;
JoinPartyInfoNoti joinPartyInfoNoti = 66;
JoinPartyMemberNoti joinPartyMemberNoti = 67;
LeavePartyMemberNoti leavePartyMemberNoti = 68;
ChangePartyLeaderNoti changePartyLeaderNoti = 69;
ExchangePartyNameNoti exchangePartyNameNoti = 70;
CurrencyMaxNoti currencyMaxNoti = 71;
ExchangePartyMemberMarkNoti exchangePartyMemberMarkNoti = 72;
DestroyPartyNoti destroyPartyNoti = 73;
LoginBuffNoti loginBuffNoti = 74;
ChangeNickNameNoti changeNickNameNoti = 76;
DelBuffListNoti delBuffListNoti = 77;
SummonPartyMemberNoti summonPartyMemberNoti = 78;
ReplySummonPartyMemberNoti replySummonPartyMemberNoti = 79;
ReceiveQuestMailNoti receiveQuestMailNoti = 80;
MinimapMarkerNoti minimapMarkerNoti = 81;
DeleteQuestMailNoti deleteQuestMailNoti = 82;
QuestList questUpdateNoti = 83;
PartyVoteNoti partyVoteNoti = 84;
PartyVoteResultNoti partyVoteResultNoti = 85;
PartyP2PGroupHostIdNoti partyP2PGroupHostIdNoti = 86;
RewardPropStateNoti rewardPropStateNoti = 87;
MyHomeAddNoti myHomeAddNoti = 88;
SocialActionAddNoti socialActionAddNoti = 89;
PartyInstanceInfoNoti partyInstanceInfoNoti = 90;
ClaimUpdateNoti claimUpdateNoti = 91;
KickedByFriendsMyHomeNoti kickedByFriendsMyHomeNoti = 93;
ServerInfoByFriendKickedNoti serverInfoByFriendKickedNoti = 94;
PartyMemberP2PStateNoti partyMemberP2PStateNoti = 95;
PartyMemberLocationNoti partyMemberLocationNoti = 96;
GS2C_NTF_QUEST_TASK_REWARD ntfQuestTaskReward = 97;
GS2C_NTF_HOST_FRIEND_LEAVED_HOME ntfHostfriendLeavedHome = 98;
GS2C_NTF_FRIEND_LEAVING_HOME ntfFriendLeavingHome = 99;
GS2C_NTF_CANCEL_SUMMON_PARTY_MEMBER ntfCancelSummonPartyMember = 100;
GS2C_NTF_LOGOUT ntfLogout = 101;
GS2C_NTF_CONCERT_END ntfConcertEnd = 102;
GS2C_NTF_QUEST_ASSIGN_META_INFO ntfQuestAssignMetaInfo = 103;
GS2C_PARTY_INVITE_RESULT invitePartyResult = 104;
BanPartyNoti ntfBanParty = 105;
GS2C_NTF_CUSTOM_DEFINED_UI_ALL ntfCustomDefinedUIAll = 106;
GS2C_NTF_CRAFT_RECIPES ntfCraftRecipesInfo = 107;
GS2C_NTF_ITEM_FIRST_PURCHASE_HISTORY ntfItemFirstPurchaseHistory = 108;
GS2C_NTF_SHOP_PRODUCT_RESET ntfShopProductChange = 109;
GS2C_NTF_UGC_NPC_ALL_LOAD ntfUgcNpcAllLoad = 110;
GS2C_NTF_CRAFT_INFO ntfCraftInfos = 111;
GS2C_NTF_CRAFT_HELP_UPDATE ntfCraftHelpUpdate = 112;
GS2C_NTF_UGC_NPC_DELETION ntfUgcNpcDeletion = 113;
GS2C_NTF_SEASON_PASS_INFO ntfSeasonPassInfo = 114;
GS2C_NTF_PLAYER_IN_SIGHT ntfPlayerInSight = 115;
GS2C_NTF_PLAYER_MODIFY ntfPlayerModify = 116;
GS2C_NTF_PLAYER_OUT_OF_SIGHT ntfPlayerOutOfSight = 117;
GS2C_NTF_NPC_IN_SIGHT ntfNpcInSight = 118;
GS2C_NTF_NPC_MODIFY ntfNpcModify = 119;
GS2C_NTF_NPC_OUT_OF_SIGHT ntfNpcOutOfSight = 120;
GS2C_NTF_UGQ_QUESTS ntfUgqQuests = 121;
GS2C_NTF_MYHOME_UGC_INFO ntfMyhomeUgcInfo = 122;
GS2C_NTF_BEACON_DETAIL_INFO ntfBeaconDetailInfo = 123;
GS2C_NTF_BEACON_INTERACTION_INFO ntfBeaconInteractionInfo = 124;
GS2C_NTF_UGC_NPC_RANK_REFRESH ntfUgcNpcRankRefresh = 125;
GS2C_NTF_CRAFT_HELPED ntfCraftHelped = 126;
GS2C_NTF_FARMING_END ntfFarmingEnd = 127;
GS2C_NTF_LARGE_PACKET_PROCESS_ERROR ntfLargePacketProcessError = 128;
GS2C_NTF_ATTRIBUTE_UPDATE ntfAttributeUpdate = 129;
GS2C_NTF_FARMING_START ntfFarmingStart = 130;
GS2C_NTF_FARMING_CANCEL ntfFarmingCancel = 131;
GS2C_NTF_UGQ_STATE_CHANGED ntfUgqStateChanged = 132;
GS2C_NTF_CURRENCY_MAX_ALERT ntfCurrencyMaxAlert = 133;
GS2C_NTF_FARMING_ALL_LOAD ntfFarmingAllLoad = 134;
GS2C_NTF_BEAM_CHARGE ntfBeamCharge = 135;
GS2C_NTF_MYHOME_HOST_ENTER_EDIT_ROOM ntfMyhomeHostEnterEditRoom = 136;
GS2C_NTF_UGQ_DAILY_REWARD_COUNTS ntfUgqDailyRewardCounts = 137;
GS2C_NTF_OWNED_RENTAL_INFOS ntfOwnedRentalInfos = 138;
GS2C_NTF_MAP_LINKED_INFOS ntfMapLinkedInfos = 139;
GS2C_NTF_MODIFY_FLOOR_LINKED_INFOS ntfModifyFloorLinkedInfos = 140;
GS2C_NTF_MODIFY_OWNED_RENTAL_INFOS ntfModifyOwnedRentalInfos = 141;
GS2C_NTF_BEACON_COMPACT_UPDATE ntfBeaconCompactUpdate = 142;
GS2C_NTF_QUEST_REWARD ntfQuestReward = 143;
GS2C_NTF_LAND_AUCTION_ALL_LOAD ntfLandAuctionAllLoad = 144;
GS2C_NTF_LAND_AUCTION_WINNING_BID ntfLandAuctionWinningBid = 145;
GS2C_NTF_LAND_AUCTION_HIGHEST_BIDDER_CHANGE ntfLandAuctionHighestBidderChange = 146;
GS2C_NTF_MYHOME_INFO ntfMyhomeInfo = 147;
GS2C_NTF_LAND_AUCTION_SUMMARY ntfLandAuctionSummary = 148;
GS2C_NTF_SWITCHING_PROP_STATE ntfSwitchingPropState = 149;
GS2C_NTF_BEACON_SHOP_REFRESH ntfBeaconShopRefresh = 150;
GS2C_NTF_ITEM_DELETE ntfItemDelete = 151;
GS2C_NTF_BANNER_INFOS ntfBannerInfos = 152;
GS2C_NTF_RANKING_SCHEDULE_INFOS ntfRankingScheduleInfos = 153;
GS2C_NTF_WORLD_EVENT_SCHEDULE ntfWorldEventSchedule = 161;
//Battle
GS2C_NTF_POD_COMBAT_STATE ntfPodCombatState = 100000;
GS2C_NTF_BATTLE_PLAYER_DEATH ntfBattlePlayerDeath = 100001;
GS2C_NTF_BATTLE_PLAYER_RESPAWN ntfBattlePlayerRespawn = 100002;
GS2C_NTF_BATTLE_OBJECT_STATE_INFO ntfBattleObjectStateInfo = 100003;
GS2C_NTF_BATTLE_OBJECT_INTERACTION ntfBattleObjectInteraction = 100004;
GS2C_NTF_BATTLE_INSTANCE_STATE ntfBattleInstanceState = 100005;
GS2C_NTF_BATTLE_INSTANCE_DESTROYED ntfBattleInstanceDestroyed = 100006;
GS2C_NTF_BATTLE_INSTANCE_REWARD ntfBattleInstanceReward = 100007;
GS2C_NTF_BATTLE_EVENT ntfBattleEvent = 100008;
GS2C_NTF_PREPARATION_FOR_LEAVING_BATTLE_INSTANCE ntfPreparationForLeavingBattleInstance = 100009;
GS2C_NTF_P2P_HOST_UPDATE ntfP2PHostUpdate = 100010;
//GameMode
GS2C_NTF_GAME_MODE_STATE_UPDATE ntfGameModeStateUpdate = 110000;
GS2C_NTF_GAME_MODE_OVERALL_INFO ntfGameModeOverallInfo = 110001;
GS2C_NTF_GAME_MODE_OBJECT_INFO ntfGameModeObjectInfo = 110002;
GS2C_NTF_GAME_PLAYER_RESPAWN ntfGamePlayerRespawn = 110003;
GS2C_NTF_RUN_RACE_RESULT_SUMMARY ntfRunRaceResultSummary = 110004;
GS2C_NTF_GAME_USER_KICK ntfGameUserKick = 110005;
GS2C_NTF_READY_POS ntfReadyPos = 110006;
GS2C_NTF_GAME_MODE_PLAY_REGULATION ntfGameModePlayRegulation = 110007;
//Match
GS2C_NTF_MATCH_STATUS ntfMatchStatus = 120001;
GS2C_NTF_MATCH_RESULT ntfMatchResult = 120002;
GS2C_NTF_MATCH_REGION_INFO ntfMatchRegionInfo = 120003;
}
}
message ClientToGame
{
oneof msg {
ClientToGameReq request = 1;
ClientToGameRes response = 2;
ClientToGameMessage message = 3;
}
}