592 lines
12 KiB
Protocol Buffer
592 lines
12 KiB
Protocol Buffer
// See README.txt for information and build instructions.
|
|
//
|
|
// Note: START and END tags are used in comments to define sections used in
|
|
// tutorials. They are not part of the syntax for Protocol Buffers.
|
|
//
|
|
// To get an in-depth walkthrough of this file and the related examples, see:
|
|
// https://developers.google.com/protocol-buffers/docs/tutorials
|
|
|
|
// [START declaration]
|
|
syntax = "proto3";
|
|
package Packet;
|
|
|
|
//import "google/protobuf/timestamp.proto";
|
|
// [END declaration]
|
|
|
|
// [START csharp_declaration]
|
|
option csharp_namespace = "Google.Protobuf.CES.Packet";
|
|
// [END csharp_declaration]
|
|
|
|
// [START messages]
|
|
|
|
message SM_REQ_MOVE_NEXT
|
|
{
|
|
float px =1; //
|
|
float py =2; //
|
|
float pz =3; //
|
|
float ang =4; //
|
|
float movevalue =5; //
|
|
int32 start =6; // 첫 이동이면 true 이동중인면 false
|
|
int32 move_type = 7; // 이동타입 (걷기, 뛰기, 스프린트, 앉아서이동)
|
|
int64 server_time=8; // 패킷 전송 시점의 서버 시간
|
|
}
|
|
|
|
message SM_REQ_MOVE_COMBINE
|
|
{
|
|
float px =1; //
|
|
float py =2; //
|
|
float pz =3; //
|
|
float lx =4; //
|
|
float ly =5; //
|
|
float lz =6; //
|
|
optional float vx =7; //
|
|
optional float vy =8; //
|
|
optional float vz =9; //
|
|
float ang =10; //
|
|
int32 move_speed =11; //
|
|
int32 move_type = 12; // 이동타입 (걷기, 뛰기, 스프린트, 앉아서이동)
|
|
int32 start =13; // 첫 이동이면 true 이동중인면 false
|
|
int64 server_time=14; // 패킷 전송 시점의 서버 시간
|
|
}
|
|
|
|
message SM_REQ_VOICE
|
|
{
|
|
int32 sampleRate = 1; //
|
|
int32 numchannels = 2; //
|
|
int32 PCMSize = 3; //
|
|
repeated int32 data = 4;
|
|
int32 dataSize = 5; //
|
|
}
|
|
|
|
message SM_REQ_MUSICBOX
|
|
{
|
|
string propguid = 1;
|
|
int32 sampleRate = 2; //
|
|
int32 numchannels = 3; //
|
|
int32 PCMSize = 4; //
|
|
repeated int32 data = 5;
|
|
int32 dataSize = 6; //
|
|
}
|
|
|
|
message SM_REQ_JUMP
|
|
{
|
|
float sx =1; //
|
|
float sy =2; //
|
|
float sz =3; //
|
|
float lx =4; //
|
|
float ly =5; //
|
|
float lz =6; //
|
|
float vx =7; //
|
|
float vy =8; //
|
|
float vz =9; //
|
|
float ang =10; //
|
|
int32 start =11; // 첫 이동이면 true 이동중인면 false
|
|
int64 server_time=12; // 패킷 전송 시점의 서버 시간
|
|
}
|
|
|
|
message SM_REQ_PRESENTATION_PAGE
|
|
{
|
|
string pageurl =1; //
|
|
int32 pageid =2; //
|
|
}
|
|
|
|
|
|
message SM_REQ_AIM
|
|
{
|
|
float pitch =1; //
|
|
}
|
|
|
|
message SM_REQ_PARTY_MOVE_MEMBER
|
|
{
|
|
float px =1; //
|
|
float py =2; //
|
|
float pz =3; //
|
|
}
|
|
|
|
message SM_REQ_VOICE_STATE
|
|
{
|
|
string nickname =1; //
|
|
int32 state =2; //
|
|
}
|
|
|
|
message SM_REQ_DANCE_INFO
|
|
{
|
|
int32 danceid = 1; // 댄스 아이디
|
|
int32 motionid = 2; // 댄스 레벨
|
|
int32 dancetype = 3; // 댄스 타임콤보
|
|
int64 timestamp = 4; // 시간
|
|
}
|
|
|
|
message SM_REQ_DANCE_ROOMTIME
|
|
{
|
|
int64 sendmytime = 1;
|
|
}
|
|
|
|
message SM_SEND_DANCE_ROOMTIME
|
|
{
|
|
int64 sendroomtime = 1;
|
|
string guid = 2;
|
|
}
|
|
|
|
message SM_SEND_DANCE_STATE
|
|
{
|
|
int32 state = 1;
|
|
int64 sendroomtime = 2;
|
|
int32 state01 = 3;
|
|
int32 state02 = 4;
|
|
int32 state03 = 5;
|
|
string str01 = 6;
|
|
string str02 = 7;
|
|
string str03 = 8;
|
|
}
|
|
|
|
|
|
//////////////////////////////////////
|
|
|
|
// 총알정보
|
|
message SM_DATA_BATTLE_BULLET
|
|
{
|
|
float px =1; // 시작점
|
|
float py =2; //
|
|
float pz =3; //
|
|
float yaw =4; // 방향
|
|
float pitch =5; // 방향
|
|
int32 damage =6; // 데미지
|
|
}
|
|
|
|
message SM_DATA_WEAPON_DATA
|
|
{
|
|
int32 weapontype = 1; // 슬롯
|
|
int32 weaponid = 2; // 테이블ID
|
|
int32 currentbullet = 3; // 현재 총알.
|
|
int32 maxbullet = 4; // 탄창제외한 최대탄약
|
|
}
|
|
|
|
message SM_REQ_BATTLE_MOVE
|
|
{
|
|
float px =1; //
|
|
float py =2; //
|
|
float pz =3; //
|
|
float lx =4; //
|
|
float ly =5; //
|
|
float lz =6; //
|
|
optional float vx =7; //
|
|
optional float vy =8; //
|
|
optional float vz =9; //
|
|
float ang =10; //
|
|
float movescale =11;
|
|
int32 move_speed =12; // 이동속도
|
|
int32 move_type = 13; // 이동타입 (걷기, 뛰기, 스프린트, 앉아서이동)
|
|
int32 type =14; // 이동동기화타입종류
|
|
optional float aim_yaw =15; //
|
|
optional float aim_pitch =16; //
|
|
optional int32 shoot_type = 17; // 총기발사모드
|
|
optional int32 cur_weapontype=18;// 현재활성화 무기
|
|
int64 server_time=19; // 패킷 전송 시점의 서버 시간
|
|
repeated SM_DATA_WEAPON_DATA weapontypes=20; //들고있는 무기
|
|
}
|
|
|
|
// 캐릭터의 현재 정보.
|
|
message SM_REQ_BATTLE_STATUS
|
|
{
|
|
float px =1; //
|
|
float py =2; //
|
|
float pz =3; //
|
|
float ang =4; //
|
|
float aim_yaw =5; //
|
|
float aim_pitch =6; // 카메라
|
|
int32 cur_hp=7; //
|
|
int32 shoot_type = 8; // 총기발사모드
|
|
int32 cur_weapontype=9; //현재활성화 무기
|
|
repeated SM_DATA_WEAPON_DATA weapontypes=10; //들고있는 무기
|
|
int32 podcarry = 11; // 포드들고있는지.
|
|
int32 podcount = 12; // 획득한 포드.
|
|
int32 killcount = 13;
|
|
int32 deathcount = 14;
|
|
int32 assistcount = 15;
|
|
int32 damagecount = 16;
|
|
}
|
|
|
|
// 조준/조준풀기
|
|
message SM_REQ_BATTLE_AIM
|
|
{
|
|
float ang =1; // 캐릭터 방향
|
|
float aim_yaw =2; // 카메라
|
|
float aim_pitch =3; // 카메라
|
|
int32 aim_type = 4; // 조준타입
|
|
int32 move_type =5; // 이동타입종류 -- 추가
|
|
}
|
|
|
|
// 발사
|
|
message SM_REQ_BATTLE_SHOOT
|
|
{
|
|
int32 weapontype =1; // 발사무기종류
|
|
int32 remainbullet = 2; // 남은 탄약. : currentbullet
|
|
float aim_yaw =3; // 카메라 방향
|
|
float aim_pitch =4; // 카메라 방향
|
|
int32 aim_type = 5; // 조준타입
|
|
int64 server_time=6; // 패킷 전송 시점의 서버 시간
|
|
repeated SM_DATA_BATTLE_BULLET bullets = 7; // 발사총알. 여러발일수있다.
|
|
|
|
}
|
|
|
|
message SM_CHARACTER_KEY
|
|
{
|
|
int32 type = 1;
|
|
string guid = 2;
|
|
}
|
|
|
|
// 피격, 맞은사람이 자신의 hp를 보낸다. -> 호스트가 누가 누구에게 맞았다고 보낸다.
|
|
message SM_REQ_BATTLE_DAMAGE
|
|
{
|
|
int32 damage =1; // 데미지
|
|
int32 cur_hp=2; // 현재 피. 0이면 사망.
|
|
SM_CHARACTER_KEY attacker=3; // 공격자.
|
|
SM_CHARACTER_KEY victim=4; // 피격자.
|
|
int32 attack_weapon_type = 5; // 공격무기타입.
|
|
}
|
|
|
|
// 재장전
|
|
message SM_REQ_BATTLE_RELOAD
|
|
{
|
|
int32 cur_hp=1; //
|
|
int32 cur_weapontype=2; //현재활성화 무기
|
|
int32 currentbullet = 3; // 탄창의 탄약
|
|
int32 maxbullet=4; // 남은 최대탄약수
|
|
}
|
|
|
|
// 구르기
|
|
message SM_REQ_BATTLE_DODGE
|
|
{
|
|
float px =1; //
|
|
float py =2; //
|
|
float pz =3; //
|
|
float ang =4; //
|
|
int32 dir_id = 5; // 방향타입
|
|
}
|
|
|
|
// 무기 변경
|
|
message SM_REQ_BATTLE_WEAPON_CHANGE
|
|
{
|
|
int32 cur_weapontype=1; //현재활성화 무기
|
|
repeated SM_DATA_WEAPON_DATA weapontypes=2; //들고있는 무기
|
|
}
|
|
|
|
// 무기 추가
|
|
message SM_REQ_BATTLE_WEAPON_ADD
|
|
{
|
|
int32 cur_weapontype=1; //현재활성화 무기
|
|
repeated SM_DATA_WEAPON_DATA weapontypes=2; //들고있는 무기
|
|
}
|
|
|
|
// 캐릭터의 현재 정보.
|
|
message SM_REQ_BATTLE_RESPAWN
|
|
{
|
|
float px =1; //
|
|
float py =2; //
|
|
float pz =3; //
|
|
float ang =4; //
|
|
float aim_yaw =5; //
|
|
float aim_pitch =6; // 카메라
|
|
int32 cur_hp=7; //
|
|
int32 cur_weapontype=8; //현재활성화 무기
|
|
repeated SM_DATA_WEAPON_DATA weapontypes=9; //들고있는 무기
|
|
}
|
|
|
|
// 오브젝트 인터렉션
|
|
message SM_REQ_BATTLE_OBJECT_INTERACTION
|
|
{
|
|
int32 objecttableid=1; // 인터랙션한 배틀 오브젝트 Table ID
|
|
string objectguid=2; // 인터랙션한 배틀 오브젝트 GUID
|
|
}
|
|
|
|
// 벽에 기어오르기.
|
|
message SM_REQ_BATTLE_MANTLE
|
|
{
|
|
float px =1; //
|
|
float py =2; //
|
|
float pz =3; //
|
|
float lx =4; //
|
|
float ly =5; //
|
|
float lz =6; //
|
|
float vx =7; //
|
|
float vy =8; //
|
|
float vz =9; //
|
|
float ang =10; //
|
|
float tx =11; //
|
|
float ty =12; //
|
|
float tz =13; //
|
|
int32 height = 14;//
|
|
}
|
|
|
|
// 인게임 로딩 끝
|
|
message SM_REQ_BATTLE_FINISHED_LODING
|
|
{
|
|
float px =1; //
|
|
float py =2; //
|
|
float pz =3; //
|
|
float ang =4; //
|
|
}
|
|
|
|
// 나가려고 준비중 : 인던 나가기 전에 결과창 보는 중
|
|
message SM_REQ_BATTLE_READY_TO_EXIT
|
|
{
|
|
}
|
|
|
|
// 범위 타격에 의해서 날아감
|
|
message SM_REQ_BATTLE_LAUNCH_CHARACTER
|
|
{
|
|
SM_CHARACTER_KEY target=1; // 날아가는 액터
|
|
float vx =2; // LaunchVelocity
|
|
float vy =3; //
|
|
float vz =4; //
|
|
int32 xyoverride = 5;//bXYOverride
|
|
int32 zoverride = 6;//bZOverride
|
|
}
|
|
|
|
// 특정 상황에서 에니메이션 실행 할 때
|
|
message SM_REQ_BATTLE_PLAY_ANIMATION
|
|
{
|
|
SM_CHARACTER_KEY target =1; // 액터
|
|
int32 type = 2; //
|
|
int32 value = 3; //
|
|
}
|
|
|
|
// 이펙트 출력
|
|
message SM_REQ_BATTLE_HIT_EFFECT
|
|
{
|
|
SM_CHARACTER_KEY target =1; // 액터
|
|
int32 weaponid = 2; //
|
|
int32 hiteffecttype = 3; //
|
|
float nx =4; // ImpactNormal
|
|
float ny =5; //
|
|
float nz =6; //
|
|
float px =7; // ImpactPoint
|
|
float py =8; //
|
|
float pz =9; //
|
|
}
|
|
|
|
message SM_MOB_AI_VECTOR
|
|
{
|
|
float px =1; // ImpactPoint
|
|
float py =2; //
|
|
float pz =3; //
|
|
}
|
|
|
|
message SM_MOB_AI_AGGRO
|
|
{
|
|
SM_CHARACTER_KEY target = 1;
|
|
int32 aggropoint = 2;
|
|
}
|
|
|
|
message SM_MOB_AI_SYNCDATA
|
|
{
|
|
string mobguid = 1;
|
|
int32 currentAiBehavior = 2;
|
|
|
|
int32 taskflags = 3;
|
|
|
|
SM_MOB_AI_VECTOR startLocation = 4;
|
|
SM_MOB_AI_VECTOR lastKnownLocation = 5;
|
|
SM_MOB_AI_VECTOR lastHearingLocation = 6;
|
|
|
|
SM_CHARACTER_KEY targetCharacter = 7;
|
|
SM_CHARACTER_KEY lastHearingCharacter = 8;
|
|
|
|
repeated SM_MOB_AI_AGGRO targetCharacterList = 9; //
|
|
}
|
|
|
|
message SM_MOB_AI_ATTACK
|
|
{
|
|
string mobguid = 1;
|
|
float attack_time = 2;
|
|
SM_CHARACTER_KEY targetCharacter = 3;
|
|
int32 attack_type = 4;
|
|
SM_MOB_AI_VECTOR location = 5;
|
|
}
|
|
|
|
// 총알 발사.
|
|
message SM_MOB_AI_SHOOT
|
|
{
|
|
string mobguid = 1;
|
|
float aim_yaw =2; // 카메라 방향
|
|
float aim_pitch =3; // 카메라 방향
|
|
int64 server_time=4; // 패킷 전송 시점의 서버 시간
|
|
repeated SM_DATA_BATTLE_BULLET bullets = 5; // 발사총알. 여러발일수있다.
|
|
}
|
|
|
|
// 재장전 모션.
|
|
message SM_MOB_AI_RELOAD
|
|
{
|
|
string mobguid = 1;
|
|
}
|
|
|
|
message SM_MOB_AI_FOCUS
|
|
{
|
|
string mobguid = 1;
|
|
int32 focus = 2;
|
|
SM_CHARACTER_KEY targetCharacter = 3;
|
|
}
|
|
|
|
message SM_MOB_MOVETO
|
|
{
|
|
string mobguid = 1;
|
|
int32 targetType = 2;
|
|
SM_MOB_AI_VECTOR tagetLocation = 3;
|
|
float radius = 4;
|
|
int32 stop = 5;
|
|
float moveSpeed = 6;
|
|
}
|
|
|
|
message SM_MOB_SPAWN
|
|
{
|
|
string mobguid = 1;
|
|
int32 mob_type = 2;
|
|
SM_MOB_AI_VECTOR location = 3;
|
|
float angle = 4;
|
|
string anchorguid = 5;
|
|
}
|
|
|
|
message SM_RUNNING_TRIGGER
|
|
{
|
|
string Anchor_GUID = 1;
|
|
string User_GUID = 2;
|
|
int32 hurdle_type = 3;
|
|
int32 is_triggered = 4;
|
|
|
|
// 임팩트 타입 싱크
|
|
optional int32 impact_type = 5;
|
|
optional SM_MOB_AI_VECTOR impact_force = 6;
|
|
optional int32 is_xy_override = 7;
|
|
optional int32 is_z_override = 8;
|
|
|
|
// 랙돌 타입 싱크
|
|
optional int32 ragdoll_type = 9;
|
|
optional string ragdoll_bone_name = 10;
|
|
optional int32 is_partial = 11;
|
|
optional int32 is_moveable = 12;
|
|
}
|
|
|
|
message SM_RUNNING_ATTACH
|
|
{
|
|
string Anchor_GUID = 1;
|
|
int32 is_triggered = 5;
|
|
}
|
|
|
|
message SM_HURDLE_TRAVERSAL
|
|
{
|
|
string anchor_guid = 1;
|
|
int32 use_hurdle = 2;
|
|
int32 use_hurdle_mode = 3;
|
|
|
|
int32 hurdle_type = 4;
|
|
int32 traversal_state = 5;
|
|
int32 use_anim_dir = 6;
|
|
|
|
int32 montage_action = 7;
|
|
optional float loc_x = 8;
|
|
optional float loc_y = 9;
|
|
optional float loc_z = 10;
|
|
optional float rot_pitch = 11;
|
|
optional float rot_yaw = 12;
|
|
optional float rot_roll = 13;
|
|
}
|
|
|
|
message SM_RUNNING_ITEM
|
|
{
|
|
string Anchor_GUID = 1;
|
|
string str_item = 2;
|
|
}
|
|
|
|
message SM_RUNNING_HURDLE_SPAWN
|
|
{
|
|
string Hurdle_GUID = 1;
|
|
string Owner_Anchor_GUID = 2;
|
|
string class_path = 3;
|
|
int64 server_time = 4;
|
|
|
|
float loc_x = 5;
|
|
float loc_y = 6;
|
|
float loc_z = 7;
|
|
|
|
float rot_pitch = 8;
|
|
float rot_yaw = 9;
|
|
float rot_roll = 10;
|
|
|
|
int32 hurdle_type = 11;
|
|
|
|
float power = 12;
|
|
}
|
|
|
|
message SM_RUNNING_HURDLE_STATE
|
|
{
|
|
string Hurdle_GUID = 1;
|
|
string Owner_Anchor_GUID = 2;
|
|
int64 server_time = 3;
|
|
|
|
int32 state_type = 4;
|
|
}
|
|
|
|
message SM_RUNNING_HURDLE_MOVE
|
|
{
|
|
string Hurdle_GUID = 1;
|
|
string Owner_Anchor_GUID = 2;
|
|
int64 server_time = 3;
|
|
|
|
float loc_x = 4;
|
|
float loc_y = 5;
|
|
float loc_z = 6;
|
|
|
|
float rot_pitch = 7;
|
|
float rot_yaw = 8;
|
|
float rot_roll = 9;
|
|
|
|
float vel_x = 10;
|
|
float vel_y = 11;
|
|
float vel_z = 12;
|
|
}
|
|
|
|
// 호스트 테스트용 임시 패킷
|
|
message SM_HOST_ROOMINFO
|
|
{
|
|
string host_guid = 1;
|
|
int64 room_starttime = 2;
|
|
}
|
|
|
|
// 호스트 테스트용 임시 패킷
|
|
message SM_REQ_HOST_ROOMINFO
|
|
{
|
|
|
|
}
|
|
|
|
message SM_RUNNING_SCRIPT
|
|
{
|
|
string Hurdle_GUID = 1;
|
|
int32 State = 2;
|
|
}
|
|
|
|
message SM_RUNNING_ANCHOR_INFO
|
|
{
|
|
string Hurdle_GUID = 1;
|
|
int32 Hurdle_Type = 2;
|
|
repeated int32 IntValue = 3;
|
|
repeated float FloatValue = 4;
|
|
optional string StrValue = 5;
|
|
}
|
|
|
|
// 커스텀 중력 패킷
|
|
message SM_RUNNING_GRAVITY
|
|
{
|
|
int32 gravity_mode = 1;
|
|
float gravity_scale = 2;
|
|
SM_MOB_AI_VECTOR gravity_direction = 3;
|
|
|
|
float air_control = 4;
|
|
float air_control_boost_multiplier = 5;
|
|
float air_control_boost_velocity_threshold = 6;
|
|
|
|
float asend_power = 7;
|
|
float desend_power = 8;
|
|
}
|
|
|