Files
2025-11-28 16:54:56 +09:00

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;
}