2211 lines
52 KiB
Protocol Buffer
2211 lines
52 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
import "Define_Common.proto";
|
|
import "Define_Result.proto";
|
|
|
|
option java_multiple_files = true;
|
|
option java_package = "com.caliverse.admin.domain.RabbitMq.message";
|
|
|
|
|
|
//=================================================================================================
|
|
// 본 파일은 게임과 관련된 속성을 정의 한다. - kangms
|
|
//=================================================================================================
|
|
|
|
|
|
//=================================================================================================
|
|
// 엔티티 종류
|
|
// Enum Description 규칙 : 계층단위 자릿수 - 00
|
|
//=================================================================================================
|
|
enum EntityType
|
|
{
|
|
EntityType_None = 0;
|
|
|
|
// User 계열 : HFSM, Control by Manual
|
|
EntityType_Player = 1;
|
|
EntityType_BattlePlayer = 101; //일단 여기에 두자
|
|
|
|
// Character 계열
|
|
EntityType_Character = 2;
|
|
|
|
|
|
// Npc 계열 : HFSM, Control by AI
|
|
EntityType_Npc = 3;
|
|
// Monster 계열 : 전투가 가능한 객체
|
|
EntityType_Monster = 301;
|
|
|
|
// 일반 Npc
|
|
EntityType_GeneralNpc = 302;
|
|
|
|
// 장애물
|
|
EntityType_Barrier = 303;
|
|
|
|
// Volume 계열
|
|
EntityType_Volume = 305;
|
|
// 이벤트
|
|
EntityType_EventVolume = 30501;
|
|
// 효과
|
|
EntityType_EffectVolume = 30502;
|
|
// 퀘스트 볼륨
|
|
EntityType_QuestVolume = 30503;
|
|
|
|
// UGC Npc
|
|
EntityType_UgcNpc = 306;
|
|
EntityType_Beacon = 30601;
|
|
EntityType_UgcNpcRank = 30602;
|
|
|
|
// 이펙트 : 효과
|
|
EntityType_Effect = 307;
|
|
// 파밍
|
|
EntityType_Farming = 30701;
|
|
|
|
|
|
|
|
// 인벤토리 계열
|
|
EntityType_Inventory = 4;
|
|
// 보관 인벤토리 : 특정 위치에 장착 불필요
|
|
EntityType_BagInven = 401;
|
|
// 의상 장착 인벤토리 : 특정 위치에 장착 필요
|
|
EntityType_ClothEquipInven = 402;
|
|
// 도구 장착 인벤토리 : 특정 위치에 장착 필요
|
|
EntityType_ToolEquipInven = 403;
|
|
// 타투 장착 인벤토리 : 특정 위치에 장착 필요
|
|
EntityType_TattooEquipInven = 404;
|
|
// 비컨 상점 인벤토리 : 개별 구현
|
|
EntityType_BeaconShopInven = 405;
|
|
|
|
|
|
// 아이템 계열
|
|
EntityType_Item = 5;
|
|
|
|
|
|
// Ground 계열 : HFSM, Control by AI
|
|
EntityType_GroundEntity = 6;
|
|
// 보상등을 담고 있는 드랍 오브젝트
|
|
EntityType_DropObject = 601;
|
|
//
|
|
EntityType_Land = 602;
|
|
//
|
|
EntityType_OwnedLand = 60201;
|
|
//
|
|
EntityType_Building = 603;
|
|
//
|
|
EntityType_OwnedBuilding = 60301;
|
|
//
|
|
EntityType_BuildingFloor = 60302;
|
|
//
|
|
EntityType_BuildingProfit = 60303;
|
|
//
|
|
EntityType_BuildingProfitHistory = 60304;
|
|
//
|
|
EntityType_BuildingRentalHistory = 60305;
|
|
//
|
|
EntityType_MyHome = 604;
|
|
|
|
|
|
// 재화 계열
|
|
EntityType_Money = 7;
|
|
|
|
|
|
// 상점 계열
|
|
EntityType_Shop = 8;
|
|
// 상점 Product Meter
|
|
EntityType_MyShopProductMeter = 801;
|
|
// 판매된 Product List
|
|
EntityType_ShopSoldProduct = 802;
|
|
|
|
|
|
// 인스턴스 룸
|
|
EntityType_Room = 9;
|
|
EntityType_BattleInstance = 901; //일단 여기에 두자
|
|
EntityType_BattleEvent = 902; //일단 여기에 두자
|
|
EntityType_SystemBattleEvent = 903; //일단 여기에 두자
|
|
EntityType_GameRoom = 904;
|
|
EntityType_GameModeTPSFreeForAll = 90401;
|
|
EntityType_GameModeTPSTeamDeathMatch = 90402;
|
|
EntityType_GameModeRunAdventure = 90411;
|
|
EntityType_GameModeRunRace = 90412;
|
|
EntityType_GameModeRunPractice = 90413;
|
|
EntityType_GameModeRunHonor = 90414;
|
|
EntityType_GameObject = 905;
|
|
EntityType_GameObjectWeapon = 90501;
|
|
EntityType_GameObjectBuff = 90502;
|
|
EntityType_GameObjectPodStorage = 90503;
|
|
EntityType_GameObjectCombatPod = 90504;
|
|
EntityType_GameObjectPickupPod = 90505;
|
|
EntityType_GameObjectSavePoint = 90506;
|
|
|
|
// 글로벌 파티
|
|
EntityType_Party = 10;
|
|
// 전역적 관리 파티 엔티티
|
|
EntityType_GlobalParty = 1001;
|
|
// 파티
|
|
EntityType_GlobalPartyDetail = 100101;
|
|
// Player 귀속 관리 파티 엔티티
|
|
EntityType_PersonalParty = 1002;
|
|
// 파티
|
|
EntityType_PersonalPartyDetail = 100201;
|
|
|
|
// 소셜 액션
|
|
EntityType_SocialAction = 11;
|
|
|
|
// 친구
|
|
EntityType_Friend = 12;
|
|
|
|
// 미니맵 마커
|
|
EntityType_MinimapMarker = 13;
|
|
|
|
// Ticker
|
|
EntityType_Ticker = 14;
|
|
EntityType_UserLoginCacheRefreshTicker = 1401;
|
|
EntityType_EntityUpdateTicker = 1402;
|
|
EntityType_EventUpdateTicker = 1403;
|
|
EntityType_TimeEventTicker = 1404;
|
|
EntityType_ChannelUpdateTicker = 1405;
|
|
EntityType_NoticeChatTicker = 1406;
|
|
EntityType_PartyCacheRefreshTicker = 1408;
|
|
EntityType_ReservationCheckTicker = 1409;
|
|
EntityType_NormalQuestCheckTicker = 1411;
|
|
EntityType_ShopProductCheckTicker = 1412;
|
|
EntityType_UgcNpcRankTicker = 1413;
|
|
EntityType_SystemMailCheckTicker = 1414;
|
|
EntityType_LargePacketCheckTicker = 1415;
|
|
EntityType_BuildingUpdateTicker = 1416;
|
|
EntityType_CaliumEventTicker = 1417;
|
|
EntityType_BattleEventCheckTicker = 1418;
|
|
EntityType_BattleInstanceStateCheckTicker = 1419;
|
|
EntityType_LandAuctionReservationConfigureTicker = 1420;
|
|
EntityType_LandAuctionCheckTicker = 1421;
|
|
EntityType_GameModeLifeCycleTicker = 1422;
|
|
EntityType_RankingScheduleUpdateTicker = 1423;
|
|
EntityType_RankingUpdateTicker = 1424;
|
|
EntityType_MatchServerListTicker = 1431;
|
|
EntityType_GameEventCheckTicker = 1432;
|
|
|
|
// 차단 유저
|
|
EntityType_BlockUser = 15;
|
|
|
|
// 퀘스트
|
|
EntityType_Quest = 16;
|
|
EntityType_EndQuest = 1601;
|
|
|
|
// 메일 계열
|
|
EntityType_Mail = 20;
|
|
EntityType_QuestMail = 2001;
|
|
|
|
// Galbal
|
|
EntityType_Golbal = 21;
|
|
// 시스템 메일의 owner
|
|
EntityType_SystemMailManager = 2101;
|
|
// 시스템 메일 (유저들이 로그인시 받을 시스템 메일 정보)
|
|
EntityType_SystemMail = 210101;
|
|
// 공지 채팅의 owner
|
|
EntityType_NoticeChatManager = 2102;
|
|
// 공지 채팅 (유저들이 받을 공지 채팅 정보)
|
|
EntityType_NoticeChat = 210201;
|
|
// 시즌 패스의 owner
|
|
EntityType_SeasonPassManager = 2103;
|
|
// 배너의 owner
|
|
EntityType_BannerManager = 2104;
|
|
// 배너의
|
|
EntityType_Banner = 210401;
|
|
|
|
// 카트
|
|
EntityType_Cart = 22;
|
|
|
|
// 클레임
|
|
EntityType_Claim = 23;
|
|
|
|
// 제작
|
|
EntityType_Craft = 24;
|
|
// 레시피
|
|
EntityType_Recipe = 2401;
|
|
|
|
// 도구 액션
|
|
EntityType_ToolAction = 25;
|
|
|
|
// Task 예약 액션
|
|
EntityType_Task_Reservation_Action = 26;
|
|
|
|
// 제품 패키지 액션
|
|
EntityType_Package_Action = 27;
|
|
|
|
// Calium
|
|
EntityType_Calium = 28;
|
|
EntityType_CaliumConverter = 2801;
|
|
|
|
EntityType_Rental = 29;
|
|
|
|
// 경매
|
|
EntityType_Auction = 30;
|
|
// 랜드 경매
|
|
EntityType_LandAuction = 3001;
|
|
// 랜드 경매 환급 입찰금
|
|
EntityType_LandAuctionRefundBidPrice = 3002;
|
|
|
|
// 비컨 상점 거래
|
|
EntityType_BeaconShopSold = 31;
|
|
// 비컨 상점 거래 내역 영수증
|
|
EntityType_BeaconShopSoldRecord = 3101;
|
|
// 비컨 상점 거래 정산 금액
|
|
EntityType_BeaconShopSoldPrice = 3102;
|
|
|
|
// 랭킹 스케쥴
|
|
EntityType_RankingSchedule = 32;
|
|
|
|
// 랭킹
|
|
EntityType_Ranking = 33;
|
|
// 랭커
|
|
EntityType_Ranker = 3201;
|
|
|
|
EntityType_EventScore = 34;
|
|
EntityType_WorldEventScore = 3401;
|
|
|
|
EntityType_PlanetUser = 41;
|
|
|
|
EntityType_GameEvent = 51;
|
|
EntityType_GameEventCollector = 5101;
|
|
|
|
// 사용자 정의 UI
|
|
EntityType_CustomDefinedUi = 99;
|
|
|
|
|
|
|
|
// 검색용 : 모든 종류의 엔티티를 검색 !!!
|
|
EntityType_All = 1000000000;
|
|
}
|
|
|
|
//=============================================================================================
|
|
// 엔티티 상태 종류
|
|
//=============================================================================================
|
|
enum EntityStateType
|
|
{
|
|
EntityStateType_None = 0;
|
|
|
|
// 생성된 (Root) : UserAuthServer, ChannelServer, IndunServer, ChatServer
|
|
EntityStateType_Created = 1;
|
|
|
|
// 초기화중인
|
|
EntityStateType_Initializing = 2;
|
|
|
|
// 로딩하고있는
|
|
EntityStateType_Loading = 3;
|
|
|
|
// 로그인중인
|
|
EntityStateType_Login = 11;
|
|
// 로그아웃된
|
|
EntityStateType_Logout = 111;
|
|
|
|
// 던전에 입장중인
|
|
EntityStateType_GameZoneEnter = 15;
|
|
// 플레이가 준비된
|
|
EntityStateType_PlayReady = 16;
|
|
// 게임존에 소환중인
|
|
EntityStateType_Spawning = 17;
|
|
// 소환후 연출중인
|
|
EntityStateType_SpawnedCutScene = 18;
|
|
|
|
// 살아있는
|
|
EntityStateType_Alive = 51;
|
|
// 대기중인
|
|
EntityStateType_Idle = 511;
|
|
// 다음 상태를 생각중인
|
|
EntityStateType_Think = 512;
|
|
// 이동중인
|
|
EntityStateType_Move = 513;
|
|
// 주변 랜덤 배회
|
|
EntityStateType_Roam = 5131;
|
|
// 걷기
|
|
EntityStateType_Walk = 5132;
|
|
// 뛰기
|
|
EntityStateType_Run = 5133;
|
|
// 순찰
|
|
EntityStateType_Patrol = 5134;
|
|
// 추적
|
|
EntityStateType_Chase = 5135;
|
|
// 질주
|
|
EntityStateType_Dash = 5136;
|
|
// 홈으로 설정된 위치로
|
|
EntityStateType_GoHome = 5137;
|
|
// 댄스 상태
|
|
EntityStateType_Dancing = 5138;
|
|
// 전투중인
|
|
EntityStateType_Battle = 514;
|
|
// 스킬 사용
|
|
EntityStateType_SkillFire = 5141;
|
|
// 제어 불능중인
|
|
EntityStateType_Uncontrol = 515;
|
|
// 은신중인
|
|
EntityStateType_Hide = 516;
|
|
// 중지중인
|
|
EntityStateType_Pause = 519;
|
|
|
|
// 사망한
|
|
EntityStateType_Dead = 61;
|
|
// 부활중인
|
|
EntityStateType_Revive = 611;
|
|
|
|
// 던전내에서 나가는
|
|
EntityStateType_GameZoneExit = 99;
|
|
|
|
// 활성화된
|
|
EntityStateType_Activate = 101;
|
|
// 비활성화된
|
|
EntityStateType_Deactivate = 102;
|
|
|
|
// 던전의 그라운드에 떨어진
|
|
EntityStateType_Drop = 201;
|
|
|
|
// 아이템 제작에 사용중
|
|
EntityStateType_UsingByCrafting = 301;
|
|
// 파밍에 사용중
|
|
EntityStateType_UsingByFarming = 302;
|
|
// 마이홈에 사용중
|
|
EntityStateType_UsingByMyHome = 303;
|
|
}
|
|
|
|
|
|
//=============================================================================================
|
|
// 엔티티 상태 트리거 종류
|
|
//=============================================================================================
|
|
enum EntityStateTriggerType
|
|
{
|
|
EntityStateTriggerType_None = 0;
|
|
|
|
// 시간 만료
|
|
EntityStateTriggerType_Timeout = 1;
|
|
|
|
// 엔티티 던전 입장/나가기
|
|
EntityStateTriggerType_GameZoneEnter = 11;
|
|
EntityStateTriggerType_GameZoneExit = 12;
|
|
|
|
// 엔티티 기본 관련
|
|
EntityStateTriggerType_Spawn = 51;
|
|
EntityStateTriggerType_Alive = 52;
|
|
|
|
// 엔티티 AI 관련
|
|
EntityStateTriggerType_Think = 61;
|
|
EntityStateTriggerType_Roam = 62;
|
|
EntityStateTriggerType_Chase = 63;
|
|
|
|
// 전투(스킬, 버프) 관련
|
|
EntityStateTriggerType_BuffActive = 101;
|
|
EntityStateTriggerType_Attack = 102;
|
|
EntityStateTriggerType_SkillFire = 111;
|
|
EntityStateTriggerType_SkillCancel = 112;
|
|
EntityStateTriggerType_SkillClose = 113;
|
|
|
|
// 피아식별 관련
|
|
EntityStateTriggerType_NoEnemy = 131;
|
|
EntityStateTriggerType_TargetFound = 132;
|
|
EntityStateTriggerType_TargetDead = 133;
|
|
|
|
// 특수 기능 관련
|
|
EntityStateTriggerType_NoHp = 301;
|
|
EntityStateTriggerType_Revive = 302;
|
|
EntityStateTriggerType_HomeGo = 303;
|
|
EntityStateTriggerType_ArrivedHome = 304;
|
|
EntityStateTriggerType_Activate = 305;
|
|
EntityStateTriggerType_Deactivate = 306;
|
|
|
|
// 특수 효과 관련
|
|
EntityStateTriggerType_UncontrolStart = 601;
|
|
EntityStateTriggerType_UncontrolEnd = 602;
|
|
|
|
// 플레이 관련
|
|
EntityStateTriggerType_PlayReady = 1001;
|
|
}
|
|
|
|
|
|
//=============================================================================================
|
|
// OwnerEntityType 종류
|
|
//=============================================================================================
|
|
enum OwnerEntityType
|
|
{
|
|
OwnerEntityType_None = 0;
|
|
|
|
OwnerEntityType_User = 1;
|
|
OwnerEntityType_Character = 2;
|
|
OwnerEntityType_UgcNpc = 3;
|
|
OwnerEntityType_Myhome = 4;
|
|
OwnerEntityType_Land = 5;
|
|
OwnerEntityType_Building = 6;
|
|
OwnerEntityType_Item = 7;
|
|
}
|
|
|
|
message P2PGroupType
|
|
{
|
|
int32 Type = 1; // 1 Grid, 2 Map
|
|
}
|
|
|
|
// 레벨
|
|
message LevelExp
|
|
{
|
|
int32 level = 1;
|
|
int64 expInLevel = 2;
|
|
int64 expInTotal = 3;
|
|
}
|
|
|
|
// 메타 아이디별 레벨
|
|
message LevelExpById
|
|
{
|
|
//<MetaId, LevelExp>
|
|
map<uint32, LevelExp> levelExpsByMetaId = 1;
|
|
//<Guid, LevelExp>
|
|
map<string, LevelExp> levelExpsByGuid = 2;
|
|
}
|
|
|
|
// 레벨과 경험치의 변화량
|
|
message LevelExpDeltaAmount
|
|
{
|
|
AmountDeltaType expDeltaType = 1;
|
|
int64 expAmount = 2;
|
|
int64 levelAmount = 3;
|
|
}
|
|
|
|
// 아이디별 경험치의 변화량
|
|
message LevelExpDeltaAmountById
|
|
{
|
|
//<MetaId, ExpDeltaAmount>
|
|
map<uint32, LevelExpDeltaAmount> deltasByMetaId = 1;
|
|
//<Guid, ExpDeltaAmount>
|
|
map<string, LevelExpDeltaAmount> deltasByGuid = 2;
|
|
}
|
|
|
|
// 레벨의 경험치 종류
|
|
enum LevelExpType
|
|
{
|
|
LevelExpType_None = 0;
|
|
|
|
LevelExpType_Item = 10; // 아이템 레벨
|
|
LevelExpType_SeasonPass = 20; // 시즌 패스 레벨
|
|
}
|
|
|
|
// 외형 커스터마이징 : 패킷용
|
|
message AppearanceCustomization
|
|
{
|
|
int32 basicStyle = 1;
|
|
int32 bodyShape = 2;
|
|
int32 hairStyle = 3;
|
|
repeated int32 customValues = 5;
|
|
}
|
|
|
|
// 외형 프로필 : 패킷용
|
|
message AppearanceProfile
|
|
{
|
|
// 클라이언트가 설정한 임의의 값 !!!, Key & Value 각각 최대 길이 제한 설정 및 방어 로직 필요 !!!, 서버에서 참조 필요시 설정값을 proto 파일에 추가 필요 !!! (Key & Value: Json 가능)
|
|
map<string, string> values = 1;
|
|
}
|
|
|
|
// 능력치 정보 : 패킷용
|
|
message AbilityInfo
|
|
{
|
|
// <AttributeType, 능력치>
|
|
map<int32, int32> values = 1;
|
|
}
|
|
|
|
|
|
message Buff
|
|
{
|
|
int32 buffId = 1;
|
|
google.protobuf.Timestamp buffStartTime = 2;
|
|
}
|
|
|
|
// map이 Unreal에서 컴파일 에러발생으로 repeated로 변경
|
|
message BuffInfo
|
|
{
|
|
repeated Buff buff = 1; //:Buff
|
|
}
|
|
message AvatarInfo
|
|
{
|
|
int32 avatar_id = 1; // 사용하지 않음
|
|
|
|
// 서버 삭제 완료 !!! => 클라이언트 삭제 필요 - kangms
|
|
//uint32 BASICSTYLE = 2;
|
|
//uint32 BODYSHAPE = 3;
|
|
//uint32 HAIRSTYLE = 4;
|
|
//repeated int32 customValue = 5;
|
|
|
|
AppearanceCustomization appearCustomize = 7;
|
|
|
|
uint32 Init = 6; // 1: 커스터마이징화면 필요 0: 필요없음.
|
|
}
|
|
|
|
message ClothInfo
|
|
{
|
|
string cloth_avatar_itemGuid = 1;
|
|
string cloth_headwear_itemGuid = 2;
|
|
string cloth_mask_itemGuid = 3;
|
|
string cloth_bag_itemGuid = 4;
|
|
string cloth_shoes_itemGuid = 5;
|
|
string cloth_outer_itemGuid = 6;
|
|
string cloth_tops_itemGuid = 7;
|
|
string cloth_bottoms_itemGuid = 8;
|
|
string cloth_gloves_itemGuid = 9;
|
|
string cloth_earrings_itemGuid = 10;
|
|
string cloth_neckless_itemGuid = 11;
|
|
string cloth_socks_itemGuid = 12;
|
|
|
|
uint32 cloth_avatar = 13;
|
|
uint32 cloth_headwear = 14;
|
|
uint32 cloth_mask = 15;
|
|
uint32 cloth_bag = 16;
|
|
uint32 cloth_shoes = 17;
|
|
uint32 cloth_outer = 18;
|
|
uint32 cloth_tops = 19;
|
|
uint32 cloth_bottoms = 20;
|
|
uint32 cloth_gloves = 21;
|
|
uint32 cloth_earrings = 22;
|
|
uint32 cloth_neckless = 23;
|
|
uint32 cloth_socks = 24;
|
|
}
|
|
|
|
message ClothInfoOfAnotherUser
|
|
{
|
|
uint32 cloth_avatar = 1;
|
|
uint32 cloth_headwear = 2;
|
|
uint32 cloth_mask = 3;
|
|
uint32 cloth_bag = 4;
|
|
uint32 cloth_shoes = 5;
|
|
uint32 cloth_outer = 6;
|
|
uint32 cloth_tops = 7;
|
|
uint32 cloth_bottoms = 8;
|
|
uint32 cloth_gloves = 9;
|
|
uint32 cloth_earrings = 10;
|
|
uint32 cloth_neckless = 11;
|
|
uint32 cloth_socks = 12;
|
|
}
|
|
|
|
message CartItemInfo
|
|
{
|
|
string itemGuid = 1;
|
|
int32 itemId = 2;
|
|
int32 count = 3;
|
|
string buyType = 4;
|
|
}
|
|
|
|
message EquipInfo
|
|
{
|
|
string toolItemGuid = 1;
|
|
int32 toolItemId = 2;
|
|
int32 toolItemStep = 3;
|
|
int32 toolItemRandomState = 4;
|
|
int64 actionStartTime = 5;
|
|
}
|
|
|
|
message TattooInfo
|
|
{
|
|
int32 ItemId = 1;
|
|
int32 level = 2;
|
|
repeated int32 attributeids = 3;
|
|
}
|
|
|
|
message TattooSlotInfo
|
|
{
|
|
TattooInfo ItemInfo = 1;
|
|
int32 isVisible = 2;
|
|
}
|
|
|
|
message MyTattooSlotInfo
|
|
{
|
|
string ItemGuid = 1;
|
|
int32 isVisible = 2;
|
|
}
|
|
|
|
message AttributeInfo
|
|
{
|
|
int32 attributeid = 1;
|
|
int32 value = 2;
|
|
}
|
|
|
|
message Inventory
|
|
{
|
|
repeated Item etcItem = 1;
|
|
repeated Item costumeItem = 2;
|
|
repeated Item interiorItem = 3;
|
|
repeated Item beautyItem = 4;
|
|
repeated Item tattooItem = 5;
|
|
repeated Item etcItemNft = 6;
|
|
repeated Item costumeItemNft = 7;
|
|
repeated Item interiorItemNft = 8;
|
|
repeated Item beautyItemNft = 9;
|
|
repeated Item tattooItemNft = 10;
|
|
}
|
|
|
|
message CharInfo
|
|
{
|
|
int32 level = 1;
|
|
int64 exp = 2;
|
|
|
|
double gold = 3;
|
|
double sapphire = 4;
|
|
double calium = 5;
|
|
double beam = 6;
|
|
double ruby = 7;
|
|
|
|
string usergroup = 8;
|
|
int32 operator = 9;
|
|
string displayName = 10;
|
|
int32 languageInfo = 11;
|
|
int32 isIntroComplete = 12;
|
|
}
|
|
|
|
message CharPos
|
|
{
|
|
int32 map_id = 1;
|
|
Pos pos = 2;
|
|
}
|
|
|
|
message GameCharacter
|
|
{
|
|
string name = 1; // 추후 Id로 변경예정
|
|
string guid = 2;
|
|
CharInfo charInfo =3;
|
|
EquipInfo equipInfo = 4;
|
|
AvatarInfo avatarInfo = 5;
|
|
ClothInfo clothInfo = 6;
|
|
CharPos charPos= 7;
|
|
Inventory inventory = 8;
|
|
repeated string toolSlot = 9;
|
|
repeated int32 SlotCount = 10;
|
|
ChannelInfo channelInfo = 12;
|
|
repeated MyTattooSlotInfo tattooInfoList = 13;
|
|
}
|
|
|
|
// 플레이어 정보 : MS5 이후에 체계적으로 수정 하자 - kangms
|
|
message GameActor
|
|
{
|
|
string actorGuid = 1;
|
|
string name = 2;
|
|
AvatarInfo avatarInfo = 3;
|
|
ClothInfoOfAnotherUser clothInfo = 4;
|
|
EquipInfo equipInfo = 5;
|
|
Pos pos = 6;
|
|
repeated TattooSlotInfo tattooInfoList = 7;
|
|
BuffInfo BuffInfo = 11;
|
|
string usergroup = 12;
|
|
int32 operator = 13;
|
|
string displayName = 14;
|
|
string occupiedAnchorGuid = 15;
|
|
int32 state = 16;
|
|
int32 hostId = 17;
|
|
|
|
EntityStateInfo entityStateInfo = 21;
|
|
}
|
|
|
|
// 엔티티의 상태 정보, GameActor 정보 리뉴얼전에 임시로 사용한다 - kangms
|
|
message EntityStateInfo
|
|
{
|
|
EntityStateType stateType = 21; //EntityStateType 참조 (UsingByCrafting, UsingByFarming, UsingByMyHome)
|
|
string anchorMetaGuid = 22; //Map내에 있는 Anchor Meta Guid
|
|
int32 metaIdOfStateType = 23; //stateType에 해당하는 Meta 테이블의 Meta Id (UsingByFarming:FarmingPropMetaId, UsingByCrafting:?)
|
|
}
|
|
|
|
// Attribute 종류 : AttributeDefinitionData.xlsx 파일 확인
|
|
enum AttributeType
|
|
{
|
|
AttributeType_None = 0;
|
|
|
|
AttributeType_Rapidity = 1;
|
|
AttributeType_Elasticity = 2;
|
|
AttributeType_Acceleration = 3;
|
|
AttributeType_Endurance = 4;
|
|
AttributeType_Intelligence = 5;
|
|
AttributeType_Wits = 6;
|
|
AttributeType_Charisma = 7;
|
|
AttributeType_Manipulation = 8;
|
|
AttributeType_Perception = 9;
|
|
AttributeType_Strength = 10;
|
|
AttributeType_Hacking = 11;
|
|
AttributeType_Gathering = 12;
|
|
AttributeType_Cooking = 13;
|
|
AttributeType_Tailoring = 14;
|
|
}
|
|
|
|
message PropInfo
|
|
{
|
|
string anchorGuid = 1;
|
|
string owner = 2;
|
|
string occupiedActorGuid = 3;
|
|
int32 tableId = 4;
|
|
string itemGuid = 5;
|
|
repeated int32 mannequins = 6;
|
|
int32 isUsable = 7;
|
|
|
|
google.protobuf.Timestamp startTime = 11;
|
|
google.protobuf.Timestamp endTime = 12;
|
|
google.protobuf.Timestamp respawnTime = 13;
|
|
}
|
|
|
|
message SlotInfo
|
|
{
|
|
int32 slot = 1;
|
|
int32 id = 2;
|
|
}
|
|
|
|
message LandInfo
|
|
{
|
|
int32 landMetaId = 1;
|
|
string landName = 2;
|
|
string landDescription = 3;
|
|
string ownerUserGuid = 4;
|
|
string ownerUserNickname = 5;
|
|
}
|
|
|
|
message BuildingInfo
|
|
{
|
|
int32 buildingMetaId = 1;
|
|
string buildingName = 2;
|
|
string buildingDescription = 3;
|
|
string ownerUserGuid = 4;
|
|
string ownerUserNickname = 5;
|
|
CurrencyType rentalCurrencyType = 6;
|
|
double rentalCurrencyAmount = 7;
|
|
int32 rentalFloorCount = 8;
|
|
BoolType isRentalOpen = 9;
|
|
}
|
|
|
|
message BuildingFloorInfo
|
|
{
|
|
int32 floor = 2;
|
|
string instanceName = 3;
|
|
string renteeUserGuid = 4;
|
|
string renteeUserNickname = 5;
|
|
google.protobuf.Timestamp rentalFinishTime = 6;
|
|
}
|
|
|
|
message LandLinkedInfo
|
|
{
|
|
int32 landId = 1;
|
|
map<int32, FloorLinkedInfo> FloorLinkedInfos = 2;
|
|
}
|
|
|
|
message FloorLinkedInfo
|
|
{
|
|
repeated string ugcNpcGuids = 1;
|
|
}
|
|
|
|
message RoomInfo
|
|
{
|
|
int32 id = 1;
|
|
string owner = 2;
|
|
string name = 3;
|
|
string description = 4;
|
|
repeated PropInfo propList = 6;
|
|
}
|
|
|
|
message ElevatorFloorInfo
|
|
{
|
|
int32 floor = 1;
|
|
int32 instanceId = 2;
|
|
int32 currentUser = 3;
|
|
string ownerName = 4;
|
|
string instanceName = 5;
|
|
int32 thumbnailImageId = 6;
|
|
int32 listImageId = 7;
|
|
int32 enterPlayerCount = 8;
|
|
}
|
|
|
|
message MyHomeObjectSlotInfo
|
|
{
|
|
int32 slotNum = 1;
|
|
int32 objectId = 2;
|
|
}
|
|
|
|
enum ModifyType
|
|
{
|
|
ModifyType_None = 0;
|
|
ModifyType_Add = 1;
|
|
ModifyType_Delete = 2;
|
|
ModifyType_Modify = 3;
|
|
}
|
|
|
|
message ModifyFloorLinkedInfo
|
|
{
|
|
ModifyType modifyType = 1;
|
|
int32 landId = 2;
|
|
int32 buildingId = 3;
|
|
int32 floor = 4;
|
|
FloorLinkedInfo floorLinkedInfo = 5;
|
|
}
|
|
|
|
// 채팅 종류
|
|
enum ChatType
|
|
{
|
|
ChatType_None = 0;
|
|
|
|
ChatType_Normal = 1; // 일반/지역
|
|
ChatType_Channel = 2; // 채널/서버
|
|
ChatType_Whisper = 3; // 귓속말
|
|
ChatType_Total = 4; // 전체(확성기)
|
|
ChatType_Party = 5; // 파티
|
|
|
|
ChatType_Notice = 10; // 알림
|
|
ChatType_NoticeToast = 11; // 알림 + 토스트
|
|
ChatType_System = 12; // 시스템 메시지 - 클라에서만 사용
|
|
}
|
|
|
|
message MailItem
|
|
{
|
|
int32 itemId = 1;
|
|
double count = 2;
|
|
}
|
|
|
|
message MailInfo
|
|
{
|
|
string MailKey = 1;
|
|
int32 isRead = 2;
|
|
int32 isGetItem = 3;
|
|
string nickName = 4;
|
|
string title = 5;
|
|
string text = 6;
|
|
google.protobuf.Timestamp createTime = 7;
|
|
google.protobuf.Timestamp expireTime = 8;
|
|
int32 isSystemMail = 9;
|
|
int32 mailType = 10;
|
|
BoolType isTextByMetaData = 11;
|
|
|
|
repeated MailItem itemList = 12;
|
|
string guid = 13;
|
|
BoolType isPermanentMail = 14;
|
|
|
|
repeated string contentsArguments = 15; // isTextByMetaData == true 일때 TextString.SourceString에 {index} ... 에 넘겨주기 위한 바인딩할 데이터 목록
|
|
}
|
|
|
|
|
|
// 엔티티에 배치되어 있는 인스턴스 정보 : 추가
|
|
message LocatedInstanceContext
|
|
{
|
|
int32 locatedinstanceMetaId = 1; // 배치된 InstanceMetaId, InstanceData.xlsx 참조
|
|
|
|
google.protobuf.Timestamp locatedTime = 11; // 배치된 시간
|
|
}
|
|
|
|
message QuestMailInfo
|
|
{
|
|
int32 isRead = 1;
|
|
int64 composedQuestId = 2;
|
|
google.protobuf.Timestamp createTime = 3;
|
|
}
|
|
|
|
message FriendInfo
|
|
{
|
|
string guid = 1;
|
|
string nickName = 2;
|
|
string folderName = 3;
|
|
int32 isNew = 4;
|
|
}
|
|
|
|
message FriendNickNameInfo
|
|
{
|
|
string targetGuid = 1;
|
|
string targetNickName = 2;
|
|
}
|
|
|
|
message QuestInfo
|
|
{
|
|
int64 composedQuestId = 1;
|
|
google.protobuf.Timestamp questAssignTime = 2;
|
|
int32 currentTaskNum = 3;
|
|
google.protobuf.Timestamp taskStartTime = 4;
|
|
google.protobuf.Timestamp questCompleteTime = 5;
|
|
repeated int32 activeIdxList = 6; //activeEvents로 변환후 에 문제 없을때 삭제 처리
|
|
int32 hasCounter = 7;
|
|
int32 minCounter = 8;
|
|
int32 maxCounter = 9;
|
|
int32 currentCounter = 10;
|
|
int32 isComplete = 11;
|
|
int32 replacedRewardGroupId = 12;
|
|
int32 hasTimer = 13;
|
|
google.protobuf.Timestamp timerCompleteTime = 14;
|
|
repeated string activeEvents = 15;
|
|
//int32 questRevision = 16; //int 64로 바꿨으니 이건 필요 없다.
|
|
}
|
|
|
|
message QuestMetaInfo
|
|
{
|
|
int32 index = 1;
|
|
int64 composedQuestId = 2;
|
|
string eventTarget = 3;
|
|
string eventName = 4;
|
|
string eventCondition1 = 5;
|
|
string eventCondition2 = 6;
|
|
string eventCondition3 = 7;
|
|
string functionTarget = 8;
|
|
string functionName = 9;
|
|
string functionCondition1 = 10;
|
|
string functionCondition2 = 11;
|
|
string functionCondition3 = 12;
|
|
}
|
|
|
|
message QuestAssignMetaInfo
|
|
{
|
|
int64 composedQuestId = 1;
|
|
string questType = 2;
|
|
int32 reveal = 3;
|
|
string questName = 4;
|
|
string assignType = 5;
|
|
string requirementType = 6;
|
|
uint32 requirementValue = 7;
|
|
int32 forceAccept = 8;
|
|
string mailTitle = 9;
|
|
string mailSender = 10;
|
|
string mailDesc = 11;
|
|
string dialogue = 12;
|
|
string dialogueResult = 13;
|
|
int32 rewardGroupId = 14;
|
|
int32 priority = 15;
|
|
}
|
|
|
|
message QuestTaskMetaInfo
|
|
{
|
|
int32 idx = 1;
|
|
int64 composedQuestId = 2;
|
|
int32 taskNum = 3;
|
|
string taskName = 4;
|
|
string taskCondition = 5;
|
|
string taskConditionDesc = 6;
|
|
int32 setCounter = 7;
|
|
int32 worldId = 8;
|
|
}
|
|
|
|
message QuestEndInfo
|
|
{
|
|
int64 composedQuestId = 1;
|
|
int32 endCount = 2;
|
|
google.protobuf.Timestamp lastEndTime = 3;
|
|
//int32 questRevision = 4;
|
|
}
|
|
|
|
message BlockInfo
|
|
{
|
|
string guid = 1;
|
|
string nickName = 2;
|
|
int32 isNew = 3;
|
|
google.protobuf.Timestamp createTime = 4;
|
|
}
|
|
|
|
message FriendFolder
|
|
{
|
|
string folderName = 1;
|
|
int32 isHold = 2;
|
|
google.protobuf.Timestamp holdTime = 3;
|
|
google.protobuf.Timestamp createTime = 4;
|
|
}
|
|
|
|
message FriendRequestInfo
|
|
{
|
|
string guid = 1;
|
|
string nickName = 2;
|
|
int32 isNew = 3;
|
|
google.protobuf.Timestamp requestTime = 4;
|
|
}
|
|
|
|
message FriendErrorMember
|
|
{
|
|
ServerErrorCode errorCode = 1;
|
|
string guid = 2;
|
|
}
|
|
|
|
message ClaimEventActiveInfo
|
|
{
|
|
int32 activeRewardIdx = 1;
|
|
int32 isComplete = 2;
|
|
int64 rewardRemainSecond = 3;
|
|
}
|
|
|
|
|
|
message InvitePartyErrorMember
|
|
{
|
|
ServerErrorCode errorCode = 1;
|
|
string inviteUserNickname = 2;
|
|
string inviteUserGuid = 3;
|
|
}
|
|
|
|
message InvitePartyState
|
|
{
|
|
string invitePartyGuid = 1;
|
|
string invitePartyLeaderNickname = 2;
|
|
string invitePartyLeaderGuid = 3;
|
|
int32 currentPartyMemberCount = 4;
|
|
google.protobuf.Timestamp endTime = 5;
|
|
}
|
|
|
|
message InvitePartySendState
|
|
{
|
|
string inviteUserNickname = 1;
|
|
string inviteUserGuid = 2;
|
|
google.protobuf.Timestamp endTime = 3;
|
|
}
|
|
|
|
message PartyState
|
|
{
|
|
string partyName = 1;
|
|
string partyLeaderNickname = 2;
|
|
repeated string partyMemberList = 3;
|
|
}
|
|
|
|
message PartyMemberState
|
|
{
|
|
string memberGuid = 1;
|
|
string memberNickname = 2;
|
|
int32 markId = 3;
|
|
Pos pos = 4;
|
|
UserLocationInfo locationInfo = 5;
|
|
}
|
|
|
|
message ShopItemInfo
|
|
{
|
|
int32 ProductID = 1;
|
|
double LeftCount = 2;
|
|
}
|
|
|
|
message ShopPacketInfo
|
|
{
|
|
repeated ShopItemInfo ShopItemList = 1;
|
|
int32 LeftTimeAsSecond = 2;
|
|
int32 maxRenewalCount = 3;
|
|
int32 currentRenewalCount = 4;
|
|
}
|
|
|
|
message SelledItem
|
|
{
|
|
string ItemGuid = 1;
|
|
int32 ItemId = 2;
|
|
int32 Count = 3;
|
|
}
|
|
|
|
message ItemGuidCount
|
|
{
|
|
string ItemGuid = 1;
|
|
int32 ItemCount = 2;
|
|
}
|
|
|
|
message TattooRagisterInfo
|
|
{
|
|
string itemGuid = 1;
|
|
int32 slotIndex = 2;
|
|
}
|
|
|
|
|
|
// 인벤토리 종류 : 보관
|
|
enum InvenBagType
|
|
{
|
|
InvenBagType_None = 0;
|
|
|
|
InvenBagType_Cloth = 1; //의상 보관
|
|
InvenBagType_Prop = 2; //프랍 보관
|
|
InvenBagType_Beauty = 3; //미용 보관
|
|
InvenBagType_Tattoo = 4; //타투 보관
|
|
InvenBagType_Etc = 5; //기타 보관
|
|
}
|
|
|
|
// 인벤토리 종류 : 장착
|
|
enum InvenEquipType
|
|
{
|
|
InvenEquipType_None = 0;
|
|
|
|
InvenEquipType_Cloth = 1; //의상 장착
|
|
InvenEquipType_Tool = 2; //도구 장착
|
|
InvenEquipType_Tattoo = 3; //타투 장착
|
|
}
|
|
|
|
|
|
// 아이템 : 패킷용
|
|
message Item
|
|
{
|
|
string itemGuid = 1;
|
|
int32 itemId = 2;
|
|
google.protobuf.Timestamp createTime = 3;
|
|
google.protobuf.Timestamp updateTime = 4;
|
|
int32 count = 5;
|
|
int32 slot = 6; // Bag : 1부터 ~, Equip : 0부터 ~
|
|
int32 level = 7;
|
|
repeated int32 attributeids = 8;
|
|
}
|
|
|
|
// 아이템의 크기
|
|
message ItemAmount
|
|
{
|
|
uint32 metaId = 1; // 아이템 메타 id
|
|
int32 amount = 2; // 수량
|
|
}
|
|
|
|
// 아이템의 변화량
|
|
message ItemDeltaAmount
|
|
{
|
|
AmountDeltaType deltaType = 1;
|
|
ItemAmount delta = 2;
|
|
}
|
|
|
|
// 인벤토리내의 아이템 변동 내용 : 패킷용
|
|
message ItemResult
|
|
{
|
|
// <ITEM_GUID, Item> : 갱신된 아이템 목록
|
|
map<string, Item> updatedItems = 1;
|
|
|
|
// <ITEM_GUID, Item> : 신규 생성된 아이템 목록
|
|
map<string, Item> newItems = 2;
|
|
|
|
// ITEM_GUID : 삭제된 아이템 목록
|
|
repeated string deletedItems = 3;
|
|
|
|
// <ITEM_META_ID, ItemDeltaAmount> : 아이템 메타별 변화량 목록
|
|
map<uint32, ItemDeltaAmount> deltaPerMeta = 4;
|
|
|
|
// <ITEM_GUID, DeltaCount> : 수량이 변경된 아이템 목록(삭제는 제외), 양수는 증가, 음수는 감소
|
|
map<string, int32> deltaPerItems = 5;
|
|
}
|
|
|
|
// 금전 변동 내용 : 패킷용
|
|
message MoneyResult
|
|
{
|
|
// <CurrencyType, Money> : 최종값
|
|
map<int32, Money> moneys = 1;
|
|
|
|
// <CurrencyType, MoneyDeltaAmount> : 변화량
|
|
map<int32, MoneyDeltaAmount> deltas = 2;
|
|
}
|
|
|
|
// 경험치 및 레벨 변동 내용 : 패킷용
|
|
message ExpResult
|
|
{
|
|
// <LevelExpType, LevelExpById> : Id별 최종값, 업데이트 레벨/경험치
|
|
map<int32, LevelExpById> levelExps = 1;
|
|
// <LevelExpType, ExpDeltaAmountById> : Id별 레벨/경험치 변화량
|
|
map<int32, LevelExpDeltaAmountById> levelExpDeltas = 2;
|
|
}
|
|
|
|
// 주요 정보별 결과 내용
|
|
message EntityCommonResult
|
|
{
|
|
EntityType entityType = 1; // 소유자의 엔티티 종류 : EntityType 참조 (적용: EntityType.Player, EntityType.UgcNpc)
|
|
string entityGuid = 2; // 소유자 엔티티의 Guid : EntityGuid
|
|
|
|
MoneyResult money = 5; // 금전
|
|
ExpResult exp = 6; // 업데이트 레벨/경험치
|
|
|
|
ItemResult item = 11; // 아이템
|
|
}
|
|
|
|
// 주요 정보별 결과 내용 : 패킷용
|
|
message CommonResult
|
|
{
|
|
repeated EntityCommonResult entityCommonResults = 1; // 소유자별 EntityCommonResult 정보 목록
|
|
}
|
|
|
|
enum SummonPartyMemberResultType
|
|
{
|
|
SummonPartyMemberResultType_None = 0;
|
|
|
|
SummonPartyMemberResultType_Accept = 1;
|
|
SummonPartyMemberResultType_Refuse = 2;
|
|
SummonPartyMemberResultType_DoNotDisturb = 3;
|
|
SummonPartyMemberResultType_LogOut = 4;
|
|
SummonPartyMemberResultType_LeaveParty = 5;
|
|
SummonPartyMemberResultType_NotParty = 6;
|
|
SummonPartyMemberResultType_ServerFull = 7;
|
|
SummonPartyMemberResultType_SummonFail = 8;
|
|
SummonPartyMemberResultType_NotSummon = 9;
|
|
SummonPartyMemberResultType_NotPartyMember = 10;
|
|
}
|
|
|
|
// 메일 종류
|
|
enum MailType
|
|
{
|
|
MailType_None = 0;
|
|
|
|
MailType_ReceivedMail = 1; // 받은 메일
|
|
MailType_SentMail = 2; // 보낸 메일
|
|
}
|
|
|
|
// 파티 투표 응답 타입
|
|
enum VoteType
|
|
{
|
|
VoteType_None = 0;
|
|
|
|
VoteType_Agreement = 1; // 찬성
|
|
VoteType_DisAgreement = 2; // 반대
|
|
VoteType_Abstain = 3; // 기권
|
|
}
|
|
|
|
|
|
message CraftInfo
|
|
{
|
|
string anchor_guid = 1;
|
|
int32 craftMetaId = 2;
|
|
google.protobuf.Timestamp craftStartTime = 3;
|
|
google.protobuf.Timestamp craftFinishTime = 4;
|
|
string beaconGuid = 5;
|
|
int32 craftCount = 6;
|
|
}
|
|
|
|
|
|
// EntityType.Beacon 메타 요약 : 추후 Beacon 으로 수정 한다. - kangms
|
|
message UgcNpcSummary
|
|
{
|
|
string ugcNpcMetaGuid = 1; // Ugc Npc Meta Id (GUID)
|
|
string ownerUserGuid = 2; // Ugc Npc Meta 정보의 소유자의 UserGuid
|
|
|
|
int32 bodyItemMetaId = 3; // ItemData.xlsx 참조
|
|
string title = 4; // 타이틀
|
|
string nickname = 5; // Ugc Npc 닉네임
|
|
string greeting = 6; // 인사말
|
|
string introduction = 7; // 자기소개
|
|
AbilityInfo abilities = 8; // 보유 능력치들, Game_Define.AbilityInfo 참조
|
|
|
|
repeated int32 hashTagMetaIds = 20; // 태그 목록 (검색용), BeaconTagData.xlsx 참조
|
|
|
|
EntityStateInfo entityStateInfo = 21; // 엔티티의 상태 정보
|
|
|
|
string description = 31; // 캐릭터 설명
|
|
string worldScenario = 32; // 세계관
|
|
|
|
int32 defaultSocialActionId = 33; // 기본 SocialAction Meta Id
|
|
repeated int32 habitSocialActionIds = 34; // 자주 사용하는 SocialAction Meta Id 목록
|
|
repeated int32 dialogueSocialActionIds = 35; // 대화중 기본 SocialAction Meta Id 목록
|
|
|
|
AppearanceCustomization appearCustomize = 41; // 외형 커스터마이징
|
|
|
|
LocatedInstanceContext locatedInstanceContext = 51; // 현재 접속중인 인스턴스 정보 <= 추가
|
|
|
|
BoolType hasBeaconShopItem = 61; // 비컨샵 아이템 등록 유무
|
|
BoolType hasReceivePayment = 62; // 비컨샵 남은정산 유무
|
|
|
|
google.protobuf.Timestamp createdTime = 101; // 비컨 생성 DateTime
|
|
}
|
|
|
|
|
|
// EntityType.Beacon 간소한 요약 : 추후 Beacon 으로 수정 한다. - kangms
|
|
message UgcNpcCompact
|
|
{
|
|
string ugcNpcMetaGuid = 1; // Ugc Npc Meta Id (GUID)
|
|
string ownerUserGuid = 2; // Ugc Npc Meta 정보의 소유자의 UserGuid
|
|
|
|
int32 bodyItemMetaId = 3; // ItemData.xlsx 참조
|
|
|
|
string title = 4; // 타이틀
|
|
string nickname = 5; // Ugc Npc 닉네임
|
|
|
|
EntityStateInfo entityStateInfo = 21; // 엔티티의 상태 정보
|
|
|
|
LocatedInstanceContext locatedInstanceContext = 41; // 현재 접속중인 인스턴스 정보
|
|
|
|
google.protobuf.Timestamp createdTime = 101; // 비컨 생성 DateTime
|
|
}
|
|
|
|
|
|
// UGC NPC 보유 아이템
|
|
message UgcNpcItems
|
|
{
|
|
// <ITEM_GUID, Item>
|
|
map<string, Item> hasItems = 1; // 보유 Item들의 정보
|
|
// <TattooSlotType, TattooSlotInfo>
|
|
map<int32, TattooSlotInfo > hasTattooInfos = 5; // 보유 타투들의 Visible 정보
|
|
}
|
|
|
|
|
|
// EntityType.Beacon 외형 : 추후 Beacon 으로 수정 한다. - kangms
|
|
message UgcNpcAppearance
|
|
{
|
|
string ugcNpcMetaGuid = 1; // Ugc Npc Meta Id (GUID)
|
|
string ownerUserGuid = 2; // Ugc Npc Meta 정보의 소유자의 UserGuid
|
|
|
|
int32 bodyItemMetaId = 3; // ItemData.xlsx 참조
|
|
string title = 4; // 타이틀
|
|
string nickname = 5; // Ugc Npc 닉네임
|
|
|
|
AppearanceCustomization appearCustomize = 6; // 커스터마이징
|
|
|
|
AbilityInfo abilities = 11; // 보유 능력치들, Game_Define.AbilityInfo 참조
|
|
UgcNpcItems hasItems = 15; // 보유 아이템들
|
|
|
|
EntityStateInfo entityStateInfo = 21; // 엔티티의 상태 정보
|
|
|
|
int32 defaultSocialActionId = 31; // 기본 SocialAction Meta Id
|
|
repeated int32 habitSocialActionIds = 32; // 자주 사용하는 SocialAction Meta Id 목록
|
|
repeated int32 dialogueSocialActionIds = 33; // 대화중 기본 SocialAction Meta Id 목록
|
|
|
|
BoolType hasBeaconShopItem = 41; // 비컨샵 아이템 등록 유무
|
|
}
|
|
|
|
|
|
// EntityType.Beacon 엔티티 : 추후 Beacon 으로 수정 한다. - kangms
|
|
message UgcNpcEntity
|
|
{
|
|
string entityInstantGuid = 1; // 인스턴스내에 엔티티의 휘발성(Instant) Guid
|
|
|
|
Pos CurrentPos = 2; // 현재의 위치
|
|
|
|
UgcNpcAppearance ugcNpcAppearance = 5; // UgcNpc.Beacon 외형 정보
|
|
}
|
|
|
|
message UgcNpcRank
|
|
{
|
|
int32 rank = 1; // 현재 순위
|
|
string title = 2; // ugc npc 타이틀
|
|
string npcNickname = 3; // ugc npc 닉네임
|
|
string ugcNpcMetaGuid = 4; // ugc npc meta guid
|
|
int32 bodyItemMetaId = 5; // ugc npc body meta Id
|
|
string ownerUserNickname = 6; // 소유주 닉네임
|
|
string ownerUserGuid = 7; // 소유주 UserGuid
|
|
int32 score = 8; // ranking 지표
|
|
}
|
|
|
|
enum UgcNpcRankState
|
|
{
|
|
UgcNpcRankState_None = 0;
|
|
UgcNpcRankState_Trend = 1; // 트랜드
|
|
UgcNpcRankState_Total = 2; // 총 누적
|
|
}
|
|
|
|
enum UgcNpcRankType
|
|
{
|
|
UgcNpcRankType_None = 0;
|
|
UgcNpcRankType_Like = 1; // Like 순
|
|
UgcNpcRankType_Communication = 2; // 대화 순
|
|
UgcNpcRankType_Quest = 3; // UGQ 완료 순
|
|
}
|
|
|
|
// EntityType.Beacon 상호작용 : 추후 Beacon 으로 수정 한다. - kangms
|
|
message UgcNpcInteraction
|
|
{
|
|
string ugcNpcMetaGuid = 1; // Ugc Npc Meta Id (GUID)
|
|
string ownerUserGuid = 2; // Ugc Npc Meta 정보의 소유자의 UserGuid
|
|
|
|
BoolType IsCheckLikeFlag = 5; // Ugc Npc 좋아요 체크/해제 여부(true: 체크, false: 체크해제)
|
|
}
|
|
|
|
|
|
enum UgqStateType
|
|
{
|
|
UgqStateType_None = 0; // None 인경우 시스템 퀘스트를 의미
|
|
|
|
UgqStateType_Test = 1; // Ugq Test 상태의 퀘스트를 의미
|
|
UgqStateType_Live = 2; // Ugq Live 상태의 퀘스트를 의미
|
|
UgqStateType_Shutdown = 3; // Ugq Shutdown 상태
|
|
UgqStateType_RevisionChanged = 4; // Ugq 리비전이 변경됨
|
|
UgqStateType_Standby = 5; // 라이브에서 개시 해제
|
|
}
|
|
|
|
// UGQ 검색 카테고리 별 타입
|
|
enum UgqSearchCategoryType
|
|
{
|
|
UgqSearchCategoryType_None = 0;
|
|
|
|
UgqSearchCategoryType_SpotLight = 1; //일, 주 월간 좋아요 최대, 북마크 최대 달성한 UGQ 조회
|
|
UgqSearchCategoryType_GradeAmateur = 2;
|
|
UgqSearchCategoryType_GradeRisingStar = 3;
|
|
UgqSearchCategoryType_GradeMaster = 4;
|
|
UgqSearchCategoryType_Bookmark = 5; //북마크 많은 순
|
|
}
|
|
|
|
enum UgqUICategoryGradeType
|
|
{
|
|
UgqUICategoryGradeType_None = 0;
|
|
|
|
UgqUICategoryGradeType_Amateur = 1;
|
|
UgqUICategoryGradeType_RisingStar = 2;
|
|
UgqUICategoryGradeType_Master = 3;
|
|
}
|
|
|
|
// UGQ 사용자 등급
|
|
enum UgqGradeType
|
|
{
|
|
UgqGradeType_None = 0;
|
|
|
|
UgqGradeType_Amature = 1;
|
|
UgqGradeType_RisingStar = 2;
|
|
UgqGradeType_Master1 = 3;
|
|
UgqGradeType_Master2 = 4;
|
|
UgqGradeType_Master3 = 5;
|
|
}
|
|
|
|
// UGQ 게시판 정렬 타입
|
|
enum UgqSortType
|
|
{
|
|
UgqSortType_None = 0;
|
|
|
|
UgqSortType_New = 1; //신규
|
|
UgqSortType_Like = 2; //좋아요 많은 순
|
|
UgqSortType_Bookmark = 3; //북마크 많은 순
|
|
}
|
|
|
|
enum UgqSearchType
|
|
{
|
|
UgqSearchType_None = 0;
|
|
|
|
UgqSearchType_Title = 1;
|
|
UgqSearchType_Beacon = 2;
|
|
}
|
|
|
|
//message UgqQuestId
|
|
//{
|
|
// int2 questId = 1;
|
|
// int32 questRevision = 2;
|
|
//}
|
|
|
|
message UgqCurrentState
|
|
{
|
|
//UgqQuestId ugqQuestId = 1;
|
|
int64 composedQuestId = 1;
|
|
UgqStateType ugqState = 2;
|
|
}
|
|
|
|
message UgqQuestInTestState
|
|
{
|
|
//UgqQuestId ugqQuestId = 1;
|
|
int64 composedQuestId = 1;
|
|
optional string title = 2;
|
|
optional string titleImagePath = 3;
|
|
}
|
|
|
|
|
|
message UgqBoardItem
|
|
{
|
|
//UgqQuestId ugqQuestId = 1;
|
|
int64 composedQuestId = 1;
|
|
optional string title = 2;
|
|
optional string titleImagePath = 3;
|
|
int32 likeCount = 4;
|
|
int32 bookmarkCount = 5;
|
|
optional string author = 6;
|
|
UgqGradeType gradeType = 7;
|
|
int32 cost = 8;
|
|
}
|
|
|
|
message UgqBoardItemDetail
|
|
{
|
|
//UgqQuestId ugqQuestId = 1;
|
|
int64 composedQuestId = 1;
|
|
optional string title = 2;
|
|
optional string titleImagePath = 3;
|
|
int32 likeCount = 4;
|
|
int32 bookmarkCount = 5;
|
|
optional string author = 6;
|
|
optional string description = 7;
|
|
repeated string langs = 8;
|
|
optional string beacon = 9;//NPC 닉네밍
|
|
BoolType liked = 10;
|
|
BoolType bookmarked = 11;
|
|
|
|
UgqGradeType gradeType = 12;
|
|
int32 cost = 13;
|
|
|
|
int32 acceptCount = 14;
|
|
int32 completeCount = 15;
|
|
}
|
|
|
|
message UgqGameTextDataForClient
|
|
{
|
|
optional string kr = 1;
|
|
optional string en = 2;
|
|
optional string jp = 3;
|
|
}
|
|
message UgqGameTaskDataForClient
|
|
{
|
|
int32 taskNum = 1;
|
|
UgqGameTextDataForClient goalText = 2;
|
|
optional string dialogueId = 3;
|
|
string ugcBeaconGuid = 4;
|
|
string ugcBeaconNickname = 5;
|
|
int32 ActionId = 6;
|
|
int32 ActionValue = 7;
|
|
BoolType IsShowNpcLocation = 8;
|
|
}
|
|
|
|
enum UgqDialogueTalker
|
|
{
|
|
Player = 0;
|
|
Npc = 1;
|
|
}
|
|
|
|
message UgqDialogSequenceAction
|
|
{
|
|
string contition = 1;
|
|
int32 actionType = 2;
|
|
int32 subType = 3;
|
|
int32 actionNumber = 4;
|
|
int32 actionIndex = 5;
|
|
UgqDialogueTalker talker = 6;
|
|
UgqGameTextDataForClient talk = 7;
|
|
int32 isDialogue = 8;
|
|
int32 NpcAction = 9;
|
|
}
|
|
|
|
message UgqDialogueSequences
|
|
{
|
|
int32 sequenceId = 1;
|
|
repeated UgqDialogSequenceAction actions = 2;
|
|
}
|
|
|
|
message UgqDialogueReturns
|
|
{
|
|
int32 actionIndex = 1;
|
|
int32 returnIdx = 2;
|
|
}
|
|
|
|
message UgqGameQuestDialogue
|
|
{
|
|
string dialogueId = 1;
|
|
repeated UgqDialogueSequences sequences = 2;
|
|
repeated UgqDialogueReturns returns = 3;
|
|
}
|
|
|
|
|
|
message UgqGameQuestDataForClient
|
|
{
|
|
int64 composedQuestId = 1;
|
|
string author = 2;
|
|
string authorGuid = 3;
|
|
int32 beaconId = 4;
|
|
string ugcBeaconGuid = 5;
|
|
string ugcBeaconNickname = 6;
|
|
UgqGameTextDataForClient title = 7;
|
|
repeated UgqGameTaskDataForClient task = 8;
|
|
repeated UgqGameQuestDialogue dialogues = 9;
|
|
UgqStateType ugqStateType = 10;
|
|
UgqGradeType ugqGradeType = 11;
|
|
}
|
|
|
|
message UgqDailyRewardCount
|
|
{
|
|
UgqGradeType gradeType = 1;
|
|
int32 dailyMaxCount = 2;
|
|
int32 currentCount = 3;
|
|
}
|
|
|
|
message UgqBoardSearchResult
|
|
{
|
|
int32 pageNumber = 1;
|
|
int32 pageSize = 2;
|
|
int32 totalPages = 3;
|
|
repeated UgqBoardItem items = 4;
|
|
}
|
|
|
|
message DateRangeUgqBoardItem
|
|
{
|
|
optional UgqBoardItem today = 1;
|
|
optional UgqBoardItem thisWeek = 2;
|
|
optional UgqBoardItem thisMonth = 3;
|
|
}
|
|
|
|
message UgqBoardSportlightResult
|
|
{
|
|
DateRangeUgqBoardItem mostLiked = 1;
|
|
DateRangeUgqBoardItem mostBookmarked = 2;
|
|
}
|
|
|
|
enum ShopBuyType
|
|
{
|
|
ShopBuyType_None = 0;
|
|
ShopBuyType_Currency = 1;
|
|
ShopBuyType_Item = 2;
|
|
}
|
|
|
|
enum GameNpcPlayType
|
|
{
|
|
GameNpcPlayType_None = 0;
|
|
}
|
|
|
|
message UgqNpcInfo
|
|
{
|
|
string npcMetaGuid = 1;
|
|
string ownerGuid = 2;
|
|
int32 ownerEntityType = 3; //None = 0, User = 1, Character = 2, UgcNpc = 3
|
|
string nickname = 4;
|
|
string title = 5;
|
|
string greeting = 6;
|
|
string introduction = 7;
|
|
string description = 8;
|
|
string worldScenario = 9;
|
|
uint32 defaultSocialActionMetaId = 10;
|
|
repeated uint32 habitSocialActionMetaIds = 11;
|
|
repeated uint32 DialogueSocialActionMetaIds = 12;
|
|
uint32 bodyItemMetaId = 13;
|
|
repeated uint32 hashTagMetaIds = 14;
|
|
EntityStateType state = 15;
|
|
|
|
BoolType isRegisteredAiChatServer = 16;
|
|
}
|
|
|
|
message AllUgqInfos
|
|
{
|
|
repeated QuestInfo quests = 1;
|
|
repeated QuestMetaInfo questMetaInfos = 2;
|
|
repeated UgqGameQuestDataForClient ugqGameQuestDataForClients = 3;//대화 정보, 타이틀 정보
|
|
}
|
|
|
|
|
|
message UgqGameQuestDataSimple
|
|
{
|
|
int64 composedQuestId = 1;
|
|
int32 revision = 2;
|
|
string userGuid = 3;
|
|
string author = 4;
|
|
UgqGradeType gradeType = 5;
|
|
string state = 6;
|
|
int32 cost = 7;
|
|
BoolType shutdown = 8;
|
|
}
|
|
|
|
//=================================================================================================
|
|
// 파밍 관련 - kangms
|
|
//=================================================================================================
|
|
|
|
// 파밍 소환 엔티티의 종류
|
|
enum FarmingSummonedEntityType
|
|
{
|
|
FarmingSummonedEntityType_None = 0;
|
|
|
|
FarmingSummonedEntityType_User = 1; //파밍을 위해 유저를 소환
|
|
FarmingSummonedEntityType_Beacon = 2; //파밍을 위해 비컨을 소환
|
|
}
|
|
|
|
// 파밍 상태
|
|
enum FarmingStateType
|
|
{
|
|
FarmingStateType_None = 0;
|
|
|
|
FarmingStateType_StandBy = 1;
|
|
FarmingStateType_Progress = 2;
|
|
FarmingStateType_CoolingTime = 3;
|
|
}
|
|
|
|
// 파밍 프랍 요약
|
|
message FarmingSummary
|
|
{
|
|
string farmingAnchorMetaId = 1; //MapMetaData에 있는 파밍 Anchor Id
|
|
int32 farmingPropMetaId = 2; //FarmingPropMeta Id
|
|
|
|
string farmingUserGuid = 5; //파밍을 진행한 UserGuid
|
|
FarmingSummonedEntityType farmingSummonType = 6; //파밍을 위해 소환된 엔티티의 종류
|
|
string farmingEntityGuid = 7; //파밍을 위해 소환된 엔티티의 식별키 (FarmingSummonedEntityType.User: UserGuid, FarmingSummonedEntityType.Beacon: UgcNpcMetaGuid)
|
|
|
|
FarmingStateType farmingState = 11; //파밍 상태
|
|
|
|
google.protobuf.Timestamp startTime = 21; //시작된 시각 : 시작된 시각 or 최소 시각
|
|
google.protobuf.Timestamp endTime = 22; //종료될 시각 : 시작된 시간이 있는 경우에만 종료될 시각이 설정 or 최소시각
|
|
}
|
|
|
|
|
|
// 소유 종류
|
|
enum OwnedType
|
|
{
|
|
OwnedType_None = 0;
|
|
|
|
OwnedType_Own = 1; // 소유중
|
|
OwnedType_Rent = 2; // 임차중
|
|
}
|
|
|
|
message RentalLandInfo
|
|
{
|
|
int32 landId = 1;
|
|
int32 buildingId = 2;
|
|
int32 rentalCount = 3;
|
|
}
|
|
|
|
message RentalFloorInfo
|
|
{
|
|
int32 floor = 1;
|
|
string instanceName = 2;
|
|
}
|
|
|
|
message OwnedRentalInfo
|
|
{
|
|
int32 landId = 1;
|
|
int32 buildingId = 2;
|
|
int32 floor = 3;
|
|
string myhomeGuid = 4;
|
|
google.protobuf.Timestamp rentalFinishTime = 5;
|
|
}
|
|
|
|
message ModifyOwnedRentalInfo
|
|
{
|
|
ModifyType modifyType = 1;
|
|
OwnedRentalInfo ownedRentalInfo = 2;
|
|
}
|
|
|
|
message RentFloorRequestInfo
|
|
{
|
|
int32 landId = 1;
|
|
int32 buildingId = 2;
|
|
int32 floor = 3;
|
|
string ownerGuid = 4;
|
|
string myhomeGuid = 5;
|
|
string instanceName = 6;
|
|
int32 thumbnailImageId = 7;
|
|
int32 listImageId = 8;
|
|
int32 enterPlayerCount = 9;
|
|
int32 rentalPeriod = 10;
|
|
google.protobuf.Timestamp rentalStartTime = 11;
|
|
google.protobuf.Timestamp rentalFinishTime = 12;
|
|
}
|
|
|
|
message OperationSystemMessage
|
|
{
|
|
LanguageType languageType = 1;
|
|
string text = 2;
|
|
}
|
|
|
|
|
|
message MeetingRoomInfo
|
|
{
|
|
int32 screenPageNo = 1; // 스크린 페이지 넘버 : 최초 - 0
|
|
}
|
|
|
|
message FloorProfitInfo
|
|
{
|
|
// <CurrencyType, Money>
|
|
map<int32, Money> profits = 1;
|
|
}
|
|
|
|
message BuildingRentalHistoryInfo
|
|
{
|
|
google.protobuf.Timestamp historyDate = 1;
|
|
string userGuid = 2;
|
|
string userName = 3;
|
|
int32 rentalPeriod = 4;
|
|
int32 floor = 5;
|
|
}
|
|
|
|
message BuildingProfitHistoryInfo
|
|
{
|
|
google.protobuf.Timestamp historyDate = 1;
|
|
int32 floor = 2;
|
|
ProfitHistoryType profitHistoryType = 3;
|
|
FloorProfitInfo floorProfit = 4;
|
|
}
|
|
|
|
enum ProfitHistoryType
|
|
{
|
|
ProfitHistoryType_None = 0;
|
|
|
|
ProfitHistoryType_Stack = 1;
|
|
ProfitHistoryType_Gain = 2;
|
|
}
|
|
|
|
message BannerInfo
|
|
{
|
|
int32 bannerId = 1;
|
|
BannerType bannerType = 2;
|
|
google.protobuf.Timestamp startTime = 3;
|
|
google.protobuf.Timestamp endTime = 4;
|
|
int32 orderId = 5;
|
|
map<int32, string> imageUrl = 6; // Key : LanguageType
|
|
map<int32, string> linkAddress = 7; // Key : LanguageType
|
|
}
|
|
|
|
message SortInfo
|
|
{
|
|
SortColumnType sortColumnType = 1;
|
|
SortType sortType = 2;
|
|
}
|
|
|
|
message RankingScheduleInfo
|
|
{
|
|
string rankingGuid = 1;
|
|
int32 rankingMetaId = 2;
|
|
int32 eventActionScoreGroupId = 3;
|
|
google.protobuf.Timestamp startTime = 4;
|
|
google.protobuf.Timestamp endTime = 5;
|
|
}
|
|
|
|
message RankInfo
|
|
{
|
|
string rankerGuid = 1;
|
|
EntityType rankerEntityType = 2;
|
|
string rankerName = 3;
|
|
int32 rankNum = 4;
|
|
int32 prevRankNum = 5;
|
|
int32 score = 6;
|
|
ScoreType scoreType = 7;
|
|
}
|
|
|
|
//=================================================================================================
|
|
// 랜드 경매 관련 - kangms
|
|
//=================================================================================================
|
|
|
|
// 랜드 경매 상태
|
|
enum LandAuctionState
|
|
{
|
|
LandAuctionState_None = 0; // 아무것도 아님
|
|
|
|
LandAuctionState_Waiting = 1; // 대기
|
|
LandAuctionState_Scheduled = 2; // 예약
|
|
|
|
LandAuctionState_Started = 3; // 시작된 후
|
|
LandAuctionState_Ended = 4; // 종료된 후
|
|
}
|
|
|
|
// 랜드 경매 결과
|
|
enum LandAuctionResult
|
|
{
|
|
LandAuctionResult_None = 0; // 아무것도 아님
|
|
|
|
LandAuctionResult_Successed = 1; // 낙찰 (정상 종료)
|
|
LandAuctionResult_Failed = 2; // 유찰 (정상 종료)
|
|
LandAuctionResult_Canceled = 3; // 취소 (비정상 종료)
|
|
}
|
|
|
|
// 랜드 경매 입찰 종류
|
|
enum LandAuctionBidType
|
|
{
|
|
LandAuctionBidType_None = 0; // 아무것도 아님
|
|
|
|
LandAuctionBidType_Normal = 1; // 일반 입찰
|
|
LandAuctionBidType_Blind = 2; // 블라인드 입찰
|
|
}
|
|
|
|
// 랜드 경매 입찰 호가 단위별 종류 (서버 비참조)
|
|
enum LandAuctionBidIncrementType
|
|
{
|
|
LandAuctionBidIncrementType_None = 0;
|
|
|
|
LandAuctionBidIncrementType_Low = 1; // 최고 입찰가 1 ~ 499 칼리움 일때 비컨 입찰 호가 => (GameConfigData.LandAuctionAskPriceLow 참조)
|
|
LandAuctionBidIncrementType_Mid = 2; // 최고 입찰가 500 ~ 999 칼리움 일때 비컨 입찰 호가 => (GameConfigData.LandAuctionAskPriceMid 참조)
|
|
LandAuctionBidIncrementType_High = 3; // 최고 입찰가 1000 ~ 칼리움 일때 비컨 입찰 호가 => (GameConfigData.LandAuctionAskPriceHigh 참조)
|
|
}
|
|
|
|
// 랜드 경매 간소한 요약
|
|
message LandAuctionCompact
|
|
{
|
|
int32 landMetaId = 1; // 경매 대상 LandData Meta Id
|
|
int32 auctionNumber = 2; // 경매 번호
|
|
|
|
google.protobuf.Timestamp auctionReservationNoticeStartTime = 3; // 경매 예약 공지 시작 시간
|
|
|
|
double highestBid = 5; // 최고 입찰가
|
|
string winningUserGuid = 6; // 경매 최고 입찰자 식별키
|
|
string winningUserNickname = 7; // 경매 최고 입찰자 닉네임
|
|
|
|
CurrencyType currencyType = 12; // 입찰 재화의 종류
|
|
|
|
google.protobuf.Timestamp auctionStartTime = 15; // 경매 시작 시간
|
|
google.protobuf.Timestamp auctionEndTime = 16; // 경매 종료 시간
|
|
|
|
LandAuctionState landAuctionState = 17; // 경매 상태
|
|
LandAuctionResult LandAuctionResult = 18; // 경매 결과
|
|
}
|
|
|
|
// 랜드 경매
|
|
message LandAuctionInfo
|
|
{
|
|
int32 landMetaId = 1; // 경매 대상 LandData Meta Id
|
|
int32 auctionNumber = 2; // 경매 번호
|
|
|
|
google.protobuf.Timestamp auctionReservationNoticeStartTime = 3; // 경매 예약 공지 시작 시간
|
|
|
|
double highestBid = 5; // 최고 입찰가
|
|
string winningUserGuid = 6; // 경매 최고 입찰자 식별키 (LandActionState.Ended 상태인 경우는 낙찰자)
|
|
string winningUserNickname = 7; // 경매 최고 입찰자 닉네임 (LandActionState.Ended 상태인 경우는 낙찰자)
|
|
|
|
double startingBid = 9; // 경매 시작가
|
|
|
|
CurrencyType currencyType = 12; // 입찰 재화의 종류
|
|
|
|
google.protobuf.Timestamp auctionStartTime = 15; // 경매 시작 시간
|
|
google.protobuf.Timestamp auctionEndTime = 16; // 경매 종료 시간
|
|
|
|
LandAuctionState landAuctionState = 17; // 경매 상태
|
|
LandAuctionResult LandAuctionResult = 18; // 경매 결과
|
|
|
|
BoolType isLandOwnerChanged = 22; // 랜드 소유권 변경 상태 (완료:true, 미완료:false)
|
|
}
|
|
|
|
// 랜드 경매 개요
|
|
message LandAuctionSummary
|
|
{
|
|
LandAuctionInfo landAuctionInfo = 1;
|
|
}
|
|
|
|
message SwitchingPropState
|
|
{
|
|
int32 switchingPropId = 1;
|
|
int32 propState = 2;
|
|
}
|
|
|
|
message BeaconShopInfo
|
|
{
|
|
string BeaconGuid = 1;
|
|
string ItemGuid = 2;
|
|
int32 ItemMetaid = 3;
|
|
google.protobuf.Timestamp SellingFinishTime = 4;
|
|
double PriceForUnit = 5;
|
|
int32 Amount = 6;
|
|
BoolType isActiveSelling = 7;
|
|
}
|
|
|
|
message BeaconShopItemBoardInfo
|
|
{
|
|
string ItemGuid = 1;
|
|
int32 ItemMetaid = 2;
|
|
string BeaconGuid = 3;
|
|
string BeaconNickName = 4;
|
|
string BeaconTitle = 5;
|
|
int32 BeaconBodyItemMetaId = 6;
|
|
double PriceForUnit = 7;
|
|
int32 Amount = 8;
|
|
string OwnerGuid = 9;
|
|
string OwnerNickName = 10;
|
|
string BeaconMyHomeGuid = 11;
|
|
google.protobuf.Timestamp SellingFinishTime = 12;
|
|
}
|
|
|
|
message BeaconShopSoldRecordInfo
|
|
{
|
|
string BeaconGuid = 1;
|
|
int32 ItemMetaid = 2;
|
|
string BuyerNickName = 3;
|
|
double PriceForUnit = 4;
|
|
int32 Amount = 5;
|
|
double SoldPrice = 6;
|
|
double TaxPrice = 7;
|
|
double GivenPrice = 8;
|
|
}
|
|
|
|
enum LargePacketProcess
|
|
{
|
|
LargePacketProcess_None = 0;
|
|
LargePacketProcess_Start = 1;
|
|
LargePacketProcess_Processing = 2;
|
|
LargePacketProcess_End = 3;
|
|
}
|
|
|
|
// 운영툴에서 설정한 월드이벤트 스케줄 정보
|
|
message WordEventSchedule {
|
|
int32 WorldEventId = 1; // 월드이벤트 아이디
|
|
google.protobuf.Timestamp startTime = 2; // 시작 시간
|
|
google.protobuf.Timestamp endTime = 3; // 종료 시간
|
|
int32 GlobalContributionPointMax = 4; // 월드이벤트 기여도 포인트 최대값
|
|
int32 GlobalEventActionScoreGroupId = 5; // EventActionScoreData 테이블의 GroupId (이벤트 행동 내용 정의)
|
|
int32 PersonalEventActionScoreGroupId = 6; // EventActionScoreData 테이블의 GroupId (이벤트 행동 내용 정의)
|
|
}
|
|
|
|
|
|
//=================================================================================================
|
|
// 전투 관련 - khlee
|
|
//=================================================================================================
|
|
|
|
enum BattleInstanceType
|
|
{
|
|
BattleInstanceType_None = 0;
|
|
BattleInstanceType_Normal = 1;
|
|
BattleInstanceType_Event = 2;
|
|
}
|
|
|
|
enum BattlePlayMode
|
|
{
|
|
BattlePlayMode_None = 0;
|
|
BattlePlayMode_PodCombat = 1;
|
|
|
|
}
|
|
|
|
enum PodCombatStateType
|
|
{
|
|
PodCombatStateType_None = 0;
|
|
PodCombatStateType_Active = 1;
|
|
PodCombatStateType_Possesion = 2;
|
|
PodCombatStateType_Dropped = 3;
|
|
PodCombatStateType_DeActive = 4;
|
|
}
|
|
|
|
//enum BattleRoundStateType
|
|
//{
|
|
// BattleRoundStateType_None = 0;
|
|
//
|
|
// BattleRoundStateType_Rounding = 1;
|
|
// BattleRoundStateType_RoundWait = 2;
|
|
// BattleRoundStateType_RoundEndAll = 3;
|
|
// BattleRoundStateType_Destroyed = 4;
|
|
//}
|
|
|
|
message BattlePodCombatState
|
|
{
|
|
string podCombatGuid = 1; //podCombat의 고유 guid
|
|
string ownerPodCombatStandGuid = 2; //생성되는 stand의 anchorguid
|
|
PodCombatStateType podCombatStateType = 3; //deactive, possesion, dropped
|
|
google.protobuf.Timestamp statechangeTime = 4; //podCombatStateType 가 바뀐 시간
|
|
Pos currentPos = 5; //pod 위치
|
|
string currentOwnerGuid = 6; //현재 pod를 들고 있는 player Guid
|
|
google.protobuf.Timestamp currentTime = 7; //podCombatNoti를 보내기 바로전 시간을 채워 넣는다.(싱크 확인용)
|
|
}
|
|
|
|
message BattleObjectInfo
|
|
{
|
|
string anchorGuid = 1;
|
|
BoolType isActive = 2;
|
|
}
|
|
|
|
message BattleEventInfo
|
|
{
|
|
int32 eventId = 1;
|
|
int32 gameModeId = 2;
|
|
int32 instanceId = 3;//추후 삭제 예정
|
|
google.protobuf.Timestamp startTime = 4;
|
|
google.protobuf.Timestamp endTime = 5;
|
|
int32 configDataId = 6; //추후 삭제 예정
|
|
int32 rewardGroupId = 7; //추후 삭제 예정
|
|
int32 hotTime = 8; //보상 배수
|
|
int32 roundCount = 9;//추후 삭제 예정
|
|
}
|
|
|
|
//=================================================================================================
|
|
// 전투 관련 - khlee
|
|
//=================================================================================================
|
|
|
|
message GameModeObjectInfo
|
|
{
|
|
string anchorGuid = 1;
|
|
BoolType isActive = 2;
|
|
}
|
|
|
|
message GameModePlayerPositionInfo
|
|
{
|
|
string respawnUserGuid = 1;
|
|
Pos pos = 2;
|
|
string anchorGuid = 3;
|
|
}
|
|
|
|
enum GameModeState
|
|
{
|
|
GameModeState_None = 0;
|
|
|
|
GameModeState_Loading = 1;
|
|
GameModeState_Created = 2;
|
|
GameModeState_Destroyed = 3;
|
|
|
|
GameModeState_LoadingWait = 11;
|
|
GameModeState_Wait = 12;
|
|
GameModeState_Ready = 13;
|
|
GameModeState_Play = 14;
|
|
GameModeState_Result = 15;
|
|
GameModeState_RewardSummary = 16;
|
|
GameModeState_End = 17;
|
|
|
|
|
|
//TPS FFA 현재 FFA에서 사용중
|
|
GameModeState_Rounding = 31;
|
|
GameModeState_RoundWait = 32;
|
|
GameModeState_RoundEndAll = 33;
|
|
GameModeState_EventEnd = 34;
|
|
|
|
}
|
|
|
|
enum GameModePlayerState
|
|
{
|
|
GameModePlayerState_None = 0;
|
|
GameModePlayerState_Join = 1;
|
|
GameModePlayerState_MatchReserve = 2;
|
|
GameModePlayerState_LoadComplete = 3;
|
|
GameModePlayerState_Wait = 4;
|
|
}//이건 서버 내에서만 처리 해줄 내용
|
|
|
|
enum GameModeKickReason
|
|
{
|
|
GameModeKickReason_None = 0;
|
|
GameModeKickReason_LoadingTimeExpired = 1;
|
|
}
|
|
|
|
|
|
enum GameModeDeadType
|
|
{
|
|
GameModeDeadType_None = 0;
|
|
GameModeDeadType_ByOthers = 1;
|
|
GameModeDeadType_Fall = 2;
|
|
}
|
|
|
|
enum GameModeRewardType
|
|
{
|
|
GameModeRewardType_None = 0;
|
|
GameModeRewardType_GetPickUpPod = 1;
|
|
GameModeRewardType_ObtainedByOwningForTime = 2;
|
|
GameModeRewardType_FinishRankReward = 3;
|
|
GameModeRewardType_MinRespawnBonusReward = 4;
|
|
GameModeRewardType_UnfinishRankReward = 5;
|
|
}
|
|
|
|
enum StateUpdateReasonType
|
|
{
|
|
StateUpdateReasonType_None = 0;
|
|
StateUpdateReasonType_NormalFlow = 1;
|
|
StateUpdateReasonType_NotEnoughPlayableUser = 2;
|
|
StateUpdateReasonType_EventTimeEnd = 3;
|
|
StateUpdateReasonType_UserLoadComplete = 4;
|
|
StateUpdateReasonType_LoadingWaitTimeExceeded = 5;
|
|
}
|
|
|
|
message MatchRestriction
|
|
{
|
|
string gameModeType = 1;
|
|
int32 matchCount = 2;
|
|
google.protobuf.Timestamp nextRefreshTime = 3;
|
|
}
|
|
|
|
message GameModePlayPenalty
|
|
{
|
|
string gameModeType = 1;
|
|
int32 penaltyCount = 2;
|
|
google.protobuf.Timestamp penaltyStartTime = 3;
|
|
google.protobuf.Timestamp penaltyEndTime = 4;
|
|
}
|
|
|
|
message GameModeRewardResult
|
|
{
|
|
string UserGuid = 1;
|
|
GameModeRewardType RewardType = 2;
|
|
CommonResult CommonResult = 3;
|
|
}
|
|
|
|
message GameModeRewardResultWithRank
|
|
{
|
|
int32 rank = 1;
|
|
GameModeRewardResult rewardResult = 2;
|
|
}
|
|
|
|
message RunRaceResult
|
|
{
|
|
string userGuid = 1;
|
|
int32 rank = 2;
|
|
int32 respawnCount = 3;
|
|
int32 completionTime = 4; // 이번 완주 기록
|
|
int32 prevPersonalBestTime = 5; // 이전 개인 최고 기록
|
|
bool isNewBest = 6; // 개인 최고 기록 갱신 여부
|
|
}
|
|
|
|
message MatchTeamInfo
|
|
{
|
|
string TeamId = 1;
|
|
repeated string UserGuids = 2;
|
|
}
|
|
|
|
message MatchRoomInfo
|
|
{
|
|
string RoomId = 1;
|
|
repeated MatchTeamInfo Teams = 2;
|
|
repeated MatchTeamMetaInfo MatchTeamMetaInfos = 3;
|
|
}
|
|
|
|
message MatchTeamMetaInfo
|
|
{
|
|
string TeamId = 1;
|
|
int32 MinMemberCount = 2;
|
|
int32 MaxMemberCount = 3;
|
|
}
|
|
|
|
message MatchRoomMetaInfo
|
|
{
|
|
|
|
}
|
|
|
|
enum MatchGameStateType
|
|
{
|
|
MatchGameStateType_None = 0;
|
|
MatchGameStateType_Idle = 1;
|
|
MatchGameStateType_Ready = 2;
|
|
MatchGameStateType_Start = 3;
|
|
MatchGameStateType_Finish = 4;
|
|
MatchGameStateType_Destroy = 5;
|
|
}
|
|
|