first commit
This commit is contained in:
1728
proto/gen/pb/messages.pb.go
Normal file
1728
proto/gen/pb/messages.pb.go
Normal file
File diff suppressed because it is too large
Load Diff
170
proto/messages.proto
Normal file
170
proto/messages.proto
Normal file
@@ -0,0 +1,170 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package proto;
|
||||
|
||||
option go_package = "a301_game_server/proto/gen/pb";
|
||||
|
||||
// ─── Authentication ────────────────────────────────────────
|
||||
|
||||
message LoginRequest {
|
||||
string username = 1;
|
||||
string password = 2;
|
||||
}
|
||||
|
||||
message LoginResponse {
|
||||
bool success = 1;
|
||||
string session_token = 2;
|
||||
string error_message = 3;
|
||||
uint64 player_id = 4;
|
||||
}
|
||||
|
||||
message EnterWorldRequest {
|
||||
string session_token = 1;
|
||||
}
|
||||
|
||||
message EnterWorldResponse {
|
||||
bool success = 1;
|
||||
string error_message = 2;
|
||||
EntityState self = 3;
|
||||
repeated EntityState nearby_entities = 4;
|
||||
uint32 zone_id = 5;
|
||||
}
|
||||
|
||||
// ─── Entity State ──────────────────────────────────────────
|
||||
|
||||
message Vector3 {
|
||||
float x = 1;
|
||||
float y = 2;
|
||||
float z = 3;
|
||||
}
|
||||
|
||||
message EntityState {
|
||||
uint64 entity_id = 1;
|
||||
string name = 2;
|
||||
Vector3 position = 3;
|
||||
float rotation = 4;
|
||||
int32 hp = 5;
|
||||
int32 max_hp = 6;
|
||||
int32 level = 7;
|
||||
EntityType entity_type = 8;
|
||||
}
|
||||
|
||||
enum EntityType {
|
||||
ENTITY_TYPE_PLAYER = 0;
|
||||
ENTITY_TYPE_MOB = 1;
|
||||
ENTITY_TYPE_NPC = 2;
|
||||
}
|
||||
|
||||
// ─── Movement ──────────────────────────────────────────────
|
||||
|
||||
message MoveRequest {
|
||||
Vector3 position = 1;
|
||||
float rotation = 2;
|
||||
Vector3 velocity = 3;
|
||||
}
|
||||
|
||||
message StateUpdate {
|
||||
repeated EntityState entities = 1;
|
||||
int64 server_tick = 2;
|
||||
}
|
||||
|
||||
message SpawnEntity {
|
||||
EntityState entity = 1;
|
||||
}
|
||||
|
||||
message DespawnEntity {
|
||||
uint64 entity_id = 1;
|
||||
}
|
||||
|
||||
// ─── System ────────────────────────────────────────────────
|
||||
|
||||
message Ping {
|
||||
int64 client_time = 1;
|
||||
}
|
||||
|
||||
message Pong {
|
||||
int64 client_time = 1;
|
||||
int64 server_time = 2;
|
||||
}
|
||||
|
||||
// ─── Zone Transfer ─────────────────────────────────────────
|
||||
|
||||
message ZoneTransferNotify {
|
||||
uint32 new_zone_id = 1;
|
||||
EntityState self = 2;
|
||||
repeated EntityState nearby_entities = 3;
|
||||
}
|
||||
|
||||
// ─── Combat ────────────────────────────────────────────────
|
||||
|
||||
message UseSkillRequest {
|
||||
uint32 skill_id = 1;
|
||||
uint64 target_id = 2;
|
||||
Vector3 target_pos = 3; // for ground-targeted AoE
|
||||
}
|
||||
|
||||
message UseSkillResponse {
|
||||
bool success = 1;
|
||||
string error_message = 2;
|
||||
}
|
||||
|
||||
message CombatEvent {
|
||||
uint64 caster_id = 1;
|
||||
uint64 target_id = 2;
|
||||
uint32 skill_id = 3;
|
||||
int32 damage = 4;
|
||||
int32 heal = 5;
|
||||
bool is_critical = 6;
|
||||
bool target_died = 7;
|
||||
int32 target_hp = 8;
|
||||
int32 target_max_hp = 9;
|
||||
CombatEventType event_type = 10;
|
||||
}
|
||||
|
||||
enum CombatEventType {
|
||||
COMBAT_EVENT_DAMAGE = 0;
|
||||
COMBAT_EVENT_HEAL = 1;
|
||||
COMBAT_EVENT_BUFF = 2;
|
||||
COMBAT_EVENT_DEBUFF = 3;
|
||||
COMBAT_EVENT_DEATH = 4;
|
||||
COMBAT_EVENT_RESPAWN = 5;
|
||||
}
|
||||
|
||||
message BuffApplied {
|
||||
uint64 target_id = 1;
|
||||
uint32 buff_id = 2;
|
||||
string buff_name = 3;
|
||||
float duration = 4;
|
||||
bool is_debuff = 5;
|
||||
}
|
||||
|
||||
message BuffRemoved {
|
||||
uint64 target_id = 1;
|
||||
uint32 buff_id = 2;
|
||||
}
|
||||
|
||||
message RespawnRequest {}
|
||||
|
||||
message RespawnResponse {
|
||||
EntityState self = 1;
|
||||
}
|
||||
|
||||
// ─── Admin / Debug ─────────────────────────────────────────
|
||||
|
||||
message AOIToggleRequest {
|
||||
bool enabled = 1;
|
||||
}
|
||||
|
||||
message AOIToggleResponse {
|
||||
bool enabled = 1;
|
||||
string message = 2;
|
||||
}
|
||||
|
||||
message ServerMetrics {
|
||||
int32 online_players = 1;
|
||||
int32 total_entities = 2;
|
||||
int64 tick_duration_us = 3;
|
||||
bool aoi_enabled = 4;
|
||||
}
|
||||
|
||||
message MetricsRequest {}
|
||||
Reference in New Issue
Block a user