Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| grpc:start [2022-10-24 17:41] – nimda | grpc:start [2022-10-24 17:42] (current) – nimda | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| <nspages -tree -r -exclude -exclude: | <nspages -tree -r -exclude -exclude: | ||
| - | |||
| - | ====== GRPC-API (CA:DE) ====== | ||
| - | |||
| - | ===== Proto File ===== | ||
| - | |||
| - | <WRAP round info 60%> | ||
| - | <file proto cade_api.proto > | ||
| - | syntax = " | ||
| - | |||
| - | package cade_api.rpc; | ||
| - | |||
| - | option cc_enable_arenas = true; | ||
| - | option optimize_for = SPEED; | ||
| - | |||
| - | service CadeRemote { | ||
| - | rpc Info(InfoRequest) returns (InfoResponse); | ||
| - | rpc Pause(PauseRequest) returns (PauseResponse); | ||
| - | rpc SetFogOfWar(SetFogOfWarRequest) returns (SetFogOfWarResponse); | ||
| - | rpc SetPerspective(SetPerspectiveRequest) returns (SetPerspectiveResponse); | ||
| - | rpc Frames(FramesRequest) returns (stream FrameSequence); | ||
| - | } | ||
| - | |||
| - | message InfoRequest { | ||
| - | | ||
| - | } | ||
| - | |||
| - | message InfoResponse { | ||
| - | uint32 gameVersion = 1; | ||
| - | uint32 apiVersion = 2; | ||
| - | string baseDirectory = 3; | ||
| - | repeated string enabledModDirectories = 4; | ||
| - | } | ||
| - | |||
| - | message PauseRequest { | ||
| - | bool paused = 1; | ||
| - | } | ||
| - | |||
| - | message PauseResponse { | ||
| - | bool success = 1; | ||
| - | bool changed = 2; | ||
| - | } | ||
| - | |||
| - | message SetFogOfWarRequest { | ||
| - | bool fogOfWar = 1; | ||
| - | } | ||
| - | |||
| - | message SetFogOfWarResponse { | ||
| - | bool success = 1; | ||
| - | bool changed = 2; | ||
| - | } | ||
| - | |||
| - | message SetPerspectiveRequest { | ||
| - | int32 playerId = 1; | ||
| - | } | ||
| - | |||
| - | message SetPerspectiveResponse { | ||
| - | bool success = 1; | ||
| - | int32 playerId = 2; | ||
| - | } | ||
| - | |||
| - | message FramesRequest { | ||
| - | repeated ResolutionEntry desiredResolutions = 1; | ||
| - | message ResolutionEntry { | ||
| - | Category key = 1; | ||
| - | enum Category { | ||
| - | TIME_STEP = 0; | ||
| - | LOW_PRIORITY = 1; | ||
| - | SLEEPING_UNIT = 2; | ||
| - | PARTICLES = 3; | ||
| - | GAME_OPTIONS = 4; | ||
| - | PARTICLES_SIMULATION_OUTPUT = 5; | ||
| - | } | ||
| - | | ||
| - | int32 gameTimeResolution = 2; | ||
| - | } | ||
| - | | ||
| - | bool disableCommands = 2; | ||
| - | bool disableParticles = 3; | ||
| - | repeated string particleDefinitionWhitelist = 4; | ||
| - | bool disableParticleCulling = 5; | ||
| - | } | ||
| - | |||
| - | message FrameSequence { | ||
| - | repeated Frame frame = 1; | ||
| - | uint32 sendingWorldTime = 2; | ||
| - | uint32 numberOfFramesQueued = 3; | ||
| - | } | ||
| - | |||
| - | message Frame { | ||
| - | uint32 time = 1; | ||
| - | bytes patch = 2; | ||
| - | repeated Event event = 3; | ||
| - | bytes reversePatch = 4; | ||
| - | uint32 timeStepsSkipped = 7; | ||
| - | | ||
| - | repeated MetricEntry metrics = 5; | ||
| - | message MetricEntry { | ||
| - | Region key = 1; | ||
| - | enum Region { | ||
| - | ALL = 0; | ||
| - | ENTITIES = 1; | ||
| - | SLEEPING_ENTITIES = 2; | ||
| - | MAP_TILES = 3; | ||
| - | UNIFIED_VISIBLE_MAP = 4; | ||
| - | PARTICLES = 5; | ||
| - | MASTER_ENTITIES = 6; | ||
| - | RESEARCH_STATES = 7; | ||
| - | VICTORY_POINTS = 8; | ||
| - | APPLY_PATCH = 9; | ||
| - | GAME_OPTIONS = 10; | ||
| - | } | ||
| - | | ||
| - | uint32 timeMeasured = 2; | ||
| - | uint32 count = 3; | ||
| - | } | ||
| - | | ||
| - | repeated Command command = 6; | ||
| - | } | ||
| - | |||
| - | message Event { | ||
| - | oneof event { | ||
| - | EntityKilled entityKilled = 1; | ||
| - | MarketTransaction marketTransaction = 2; | ||
| - | Tribute tribute = 3; | ||
| - | PlayerChat playerChat = 4; | ||
| - | CombatNotificationSound combatNotificationSound = 5; | ||
| - | } | ||
| - | | ||
| - | message EntityKilled { | ||
| - | int32 id = 1; | ||
| - | int32 killerId = 2; | ||
| - | } | ||
| - | | ||
| - | message MarketTransaction { | ||
| - | uint32 playerId = 1; | ||
| - | uint32 attributeType = 2; | ||
| - | float attributeBefore = 3; | ||
| - | float goldBefore = 4; | ||
| - | float attributeExchanged = 5; | ||
| - | float goldRate = 6; | ||
| - | float goldExchanged = 7; | ||
| - | } | ||
| - | | ||
| - | message Tribute { | ||
| - | uint32 senderId = 1; | ||
| - | uint32 receiverId = 2; | ||
| - | uint32 attributeType = 3; | ||
| - | float senderValueBefore = 4; | ||
| - | float senderValueChange = 5; | ||
| - | float receiverValueBefore = 6; | ||
| - | float receiverValueChange = 7; | ||
| - | } | ||
| - | | ||
| - | message PlayerChat { | ||
| - | int32 playerId = 1; | ||
| - | int32 commPlayerId = 2; | ||
| - | | ||
| - | Channel channel = 3; | ||
| - | enum Channel { | ||
| - | Default = 0; | ||
| - | AllChat = 1; | ||
| - | TeamChat = 2; | ||
| - | EnemyChat = 3; | ||
| - | } | ||
| - | | ||
| - | string text = 4; | ||
| - | int32 taunt = 5; | ||
| - | } | ||
| - | | ||
| - | message CombatNotificationSound { | ||
| - | int32 receiverId = 1; | ||
| - | | ||
| - | Type type = 2; | ||
| - | enum Type { | ||
| - | Normal = 0; | ||
| - | Wolf = 1; | ||
| - | Town = 2; | ||
| - | } | ||
| - | | ||
| - | int32 attackedObjectId = 3; | ||
| - | } | ||
| - | } | ||
| - | |||
| - | message Command { | ||
| - | oneof command { | ||
| - | Interact interact = 1000; | ||
| - | Stop stop = 1001; | ||
| - | Work work = 1002; | ||
| - | Move move = 1003; | ||
| - | Create create = 1004; | ||
| - | AddAttribute addAttribute = 1005; | ||
| - | AiOrder aiOrder = 1010; | ||
| - | Resign resign = 1011; | ||
| - | AddWaypoint addWaypoint = 112; | ||
| - | Pause pause = 1013; | ||
| - | GroupWaypoint groupWaypoint = 1016; | ||
| - | GroupAiOrder groupAiOrder = 1017; | ||
| - | UnitAiState unitAiState = 1018; | ||
| - | Guard guard = 1019; | ||
| - | Follow follow = 1020; | ||
| - | Patrol patrol = 1021; | ||
| - | Scout scout = 1022; | ||
| - | FormFormation formFormation = 1023; | ||
| - | MultiplayerSave multiplayerSave = 1027; | ||
| - | GroupMultiWaypoints groupMultiWaypoints = 1031; | ||
| - | Chapter chapter = 1032; | ||
| - | AttackMove attackMove = 1033; | ||
| - | AttackMoveTarget attackMoveTarget = 1034; | ||
| - | Retreat retreat = 1035; | ||
| - | UnitTypeAiState unitTypeAiState = 1037; | ||
| - | AutoScout autoScout = 1038; | ||
| - | StopAll stopAll = 1039; | ||
| - | MoreTechs moreTechs = 1040; | ||
| - | TransformObject transformObject = 1041; | ||
| - | Make make = 1100; | ||
| - | Research research = 1101; | ||
| - | Build build = 1102; | ||
| - | Game game = 1103; | ||
| - | Explore explore = 1104; | ||
| - | BuildWall buildWall = 1105; | ||
| - | CancelBuild cancelBuild = 1106; | ||
| - | AttackGround attackGround = 1107; | ||
| - | GiveAttribute2 giveAttribute2 = 1108; | ||
| - | TradeAttribute tradeAttribute = 1109; | ||
| - | Repair repair = 1110; | ||
| - | Unload unload = 1111; | ||
| - | Gate gate = 1114; | ||
| - | Flare flare = 1115; | ||
| - | UnitOrder unitOrder = 1117; | ||
| - | Diplomacy diplomacy = 1118; | ||
| - | Queue queue = 1119; | ||
| - | SetGatherPoint setGatherPoint = 1120; | ||
| - | SellCommodity sellCommodity = 1122; | ||
| - | BuyCommodity buyCommodity = 1123; | ||
| - | UnitTransform unitTransform = 1125; | ||
| - | DropRelic dropRelic = 1126; | ||
| - | TownBell townBell = 1127; | ||
| - | GoBackToWork goBackToWork = 1128; | ||
| - | MultiQueue multiQueue = 1129; | ||
| - | SetGatherState setGatherState = 1130; | ||
| - | DeleteObjects deleteObjects = 1131; | ||
| - | ResetBuildings resetBuildings = 1132; | ||
| - | MultiGate multiGate = 1133; | ||
| - | GoBackToWork2 goBackToWork2 = 1134; | ||
| - | ChangePlayerName changePlayerName = 1135; | ||
| - | UnknownCommand unknownCommand = 2000; | ||
| - | } | ||
| - | | ||
| - | message XyzUintPoint { | ||
| - | uint32 x = 1; | ||
| - | uint32 y = 2; | ||
| - | uint32 z = 3; | ||
| - | } | ||
| - | | ||
| - | message XyzFloatPoint { | ||
| - | float x = 1; | ||
| - | float y = 2; | ||
| - | float z = 3; | ||
| - | } | ||
| - | | ||
| - | message XyUintPoint { | ||
| - | uint32 x = 1; | ||
| - | uint32 y = 2; | ||
| - | } | ||
| - | | ||
| - | message XyFloatPoint { | ||
| - | float x = 1; | ||
| - | float y = 2; | ||
| - | } | ||
| - | | ||
| - | message Interact { | ||
| - | uint32 commPlayerId = 1; | ||
| - | int32 targetId = 2; | ||
| - | XyFloatPoint location = 4; | ||
| - | bool extend = 5; | ||
| - | bool instant = 6; | ||
| - | bool humanOrder = 7; | ||
| - | bool controlHeld = 8; | ||
| - | repeated int32 unitIds = 9; | ||
| - | } | ||
| - | | ||
| - | message Stop { | ||
| - | repeated int32 unitIds = 2; | ||
| - | } | ||
| - | | ||
| - | message Work { | ||
| - | uint32 commPlayerId = 1; | ||
| - | int32 targetId = 2; | ||
| - | XyFloatPoint location = 4; | ||
| - | bool extend = 5; | ||
| - | bool instant = 6; | ||
| - | bool humanOrder = 7; | ||
| - | bool controlHeld = 8; | ||
| - | repeated int32 unitIds = 9; | ||
| - | } | ||
| - | | ||
| - | message Move { | ||
| - | uint32 commPlayerId = 1; | ||
| - | int32 targetId = 2; | ||
| - | XyFloatPoint location = 4; | ||
| - | bool extend = 5; | ||
| - | bool instant = 6; | ||
| - | bool humanOrder = 7; | ||
| - | bool controlHeld = 8; | ||
| - | repeated int32 unitIds = 9; | ||
| - | } | ||
| - | | ||
| - | message Create { | ||
| - | int32 objCategory = 1; | ||
| - | uint32 playerId = 2; | ||
| - | XyzFloatPoint location = 3; | ||
| - | } | ||
| - | | ||
| - | message AddAttribute { | ||
| - | uint32 playerId = 1; | ||
| - | uint32 attrId = 2; | ||
| - | float attrAmount = 3; | ||
| - | } | ||
| - | | ||
| - | message AiOrder { | ||
| - | uint32 playerId = 2; | ||
| - | uint32 issuer = 3; | ||
| - | int32 recipient = 4; | ||
| - | int32 orderType = 5; | ||
| - | uint32 orderPriority = 6; | ||
| - | uint32 targetOwner = 8; | ||
| - | XyzFloatPoint location = 9; | ||
| - | float range = 10; | ||
| - | bool immediate = 11; | ||
| - | bool inFront = 12; | ||
| - | repeated int32 unitIds = 13; | ||
| - | } | ||
| - | | ||
| - | message Resign { | ||
| - | uint32 playerId = 1; | ||
| - | uint32 commPlayerId = 2; | ||
| - | bool dropped = 3; | ||
| - | } | ||
| - | | ||
| - | message AddWaypoint { | ||
| - | uint32 playerId = 1; | ||
| - | int32 recipient = 2; | ||
| - | repeated XyzUintPoint waypoints = 4; | ||
| - | } | ||
| - | | ||
| - | message Pause { | ||
| - | repeated int32 unitIds = 2; | ||
| - | } | ||
| - | | ||
| - | message GroupWaypoint { | ||
| - | uint32 commPlayerId = 1; | ||
| - | XyUintPoint location = 3; | ||
| - | repeated int32 unitIds = 4; | ||
| - | } | ||
| - | | ||
| - | message GroupAiOrder { | ||
| - | uint32 playerId = 1; | ||
| - | uint32 issuer = 2; | ||
| - | int32 orderType = 4; | ||
| - | uint32 orderPriority = 5; | ||
| - | int32 targetId = 6; | ||
| - | uint32 targetOwner = 7; | ||
| - | XyzFloatPoint location = 8; | ||
| - | float range = 9; | ||
| - | bool immediate = 10; | ||
| - | bool inFront = 11; | ||
| - | repeated int32 unitIds = 12; | ||
| - | } | ||
| - | | ||
| - | message UnitAiState { | ||
| - | uint32 state = 2; | ||
| - | repeated int32 unitIds = 3; | ||
| - | } | ||
| - | | ||
| - | message UnitTypeAiState { | ||
| - | uint32 state = 2; | ||
| - | int32 unitType = 3; | ||
| - | int32 playerId = 4; | ||
| - | } | ||
| - | | ||
| - | message Guard { | ||
| - | int32 targetId = 2; | ||
| - | repeated int32 unitIds = 3; | ||
| - | } | ||
| - | | ||
| - | message Follow { | ||
| - | int32 targetId = 2; | ||
| - | repeated int32 unitIds = 3; | ||
| - | } | ||
| - | | ||
| - | message Patrol { | ||
| - | bool reset = 3; | ||
| - | repeated XyFloatPoint wayPoints = 4; | ||
| - | repeated int32 unitIds = 5; | ||
| - | } | ||
| - | | ||
| - | message Scout { | ||
| - | XyFloatPoint location = 2; | ||
| - | repeated int32 unitIds = 3; | ||
| - | } | ||
| - | | ||
| - | message FormFormation { | ||
| - | uint32 playerId = 2; | ||
| - | int32 formationType = 3; | ||
| - | repeated int32 unitIds = 4; | ||
| - | } | ||
| - | | ||
| - | message MultiplayerSave { | ||
| - | bool exitAfterSave = 1; | ||
| - | uint32 commPlayer = 2; | ||
| - | } | ||
| - | | ||
| - | message GroupMultiWaypoints { | ||
| - | repeated int32 unitIds = 3; | ||
| - | repeated XyUintPoint waypoints = 4; | ||
| - | } | ||
| - | | ||
| - | message Chapter { | ||
| - | uint32 commPlayerId = 1; | ||
| - | } | ||
| - | | ||
| - | message AttackMove { | ||
| - | bool reset = 3; | ||
| - | repeated XyFloatPoint waypoints = 4; | ||
| - | repeated int32 unitIds = 5; | ||
| - | } | ||
| - | | ||
| - | message AttackMoveTarget { | ||
| - | int32 targetId = 2; | ||
| - | repeated XyFloatPoint waypoints = 4; | ||
| - | repeated int32 unitIds = 5; | ||
| - | } | ||
| - | | ||
| - | message Retreat { | ||
| - | uint32 commPlayerId = 1; | ||
| - | int32 targetId = 2; | ||
| - | XyFloatPoint location = 4; | ||
| - | bool extend = 5; | ||
| - | bool instant = 6; | ||
| - | bool humanOrder = 7; | ||
| - | bool controlHeld = 8; | ||
| - | repeated int32 unitIds = 9; | ||
| - | } | ||
| - | | ||
| - | message AutoScout { | ||
| - | repeated int32 unitIds = 2; | ||
| - | } | ||
| - | | ||
| - | message StopAll { | ||
| - | uint32 playerID = 1; | ||
| - | } | ||
| - | | ||
| - | message MoreTechs { | ||
| - | uint32 playerID = 1; | ||
| - | } | ||
| - | | ||
| - | message TransformObject { | ||
| - | uint32 playerID = 1; | ||
| - | int32 masterId = 2; | ||
| - | int32 objId = 3; | ||
| - | } | ||
| - | | ||
| - | message Make { | ||
| - | int32 unitId = 1; | ||
| - | uint32 unitPlayerId = 2; | ||
| - | int32 objId = 3; | ||
| - | int32 uniqueId = 4; | ||
| - | } | ||
| - | | ||
| - | message Research { | ||
| - | int32 unitId = 1; | ||
| - | uint32 unitPlayerId = 2; | ||
| - | int32 techId = 4; | ||
| - | int32 uniqueId = 5; | ||
| - | bool extend = 6; | ||
| - | repeated int32 buildingIds = 7; | ||
| - | } | ||
| - | | ||
| - | message Build { | ||
| - | uint32 unitPlayerId = 2; | ||
| - | XyFloatPoint location = 3; | ||
| - | int32 objId = 4; | ||
| - | int32 uniqueId = 5; | ||
| - | uint32 frame = 6; | ||
| - | bool extend = 7; | ||
| - | bool instant = 8; | ||
| - | int32 spriteOverrideId = 9; | ||
| - | repeated int32 unitIds = 10; | ||
| - | } | ||
| - | | ||
| - | message Game { | ||
| - | uint32 gameCommandId = 1; | ||
| - | int32 var1 = 2; | ||
| - | int32 var2 = 3; | ||
| - | float var3 = 4; | ||
| - | uint32 var4 = 5; | ||
| - | } | ||
| - | | ||
| - | message Explore { | ||
| - | uint32 unitPlayerId = 2; | ||
| - | XyFloatPoint location = 3; | ||
| - | repeated int32 unitIds = 4; | ||
| - | } | ||
| - | | ||
| - | message BuildWall { | ||
| - | uint32 unitPlayerId = 2; | ||
| - | XyUintPoint location1 = 3; | ||
| - | XyUintPoint location2 = 4; | ||
| - | int32 objId = 5; | ||
| - | int32 uniqueId = 6; | ||
| - | bool extend = 7; | ||
| - | bool instant = 8; | ||
| - | repeated int32 unitIds = 9; | ||
| - | } | ||
| - | | ||
| - | message CancelBuild { | ||
| - | int32 unitId = 1; | ||
| - | int32 unitPlayerId = 2; | ||
| - | } | ||
| - | | ||
| - | message AttackGround { | ||
| - | XyFloatPoint location = 2; | ||
| - | bool extend = 3; | ||
| - | bool instant = 4; | ||
| - | bool humanOrder = 5; | ||
| - | repeated int32 unitIds = 6; | ||
| - | } | ||
| - | | ||
| - | message GiveAttribute2 { | ||
| - | uint32 playerId = 1; | ||
| - | uint32 toPlayerId = 2; | ||
| - | uint32 attrId = 3; | ||
| - | float attrAmount = 4; | ||
| - | float attrCost = 5; | ||
| - | } | ||
| - | | ||
| - | message TradeAttribute { | ||
| - | int32 attribute = 2; | ||
| - | repeated int32 unitIds = 3; | ||
| - | } | ||
| - | | ||
| - | message Repair { | ||
| - | int32 targetId = 2; | ||
| - | bool extend = 3; | ||
| - | bool instant = 4; | ||
| - | repeated int32 unitIds = 5; | ||
| - | } | ||
| - | | ||
| - | message Unload { | ||
| - | XyFloatPoint location = 2; | ||
| - | uint32 unloadFlag = 3; | ||
| - | int32 unloadUnitType = 4; | ||
| - | repeated int32 unitIds = 5; | ||
| - | } | ||
| - | | ||
| - | message Gate { | ||
| - | int32 unitId = 1; | ||
| - | } | ||
| - | | ||
| - | message Flare { | ||
| - | int32 unitId = 1; | ||
| - | bytes flareFlags = 2; | ||
| - | XyFloatPoint location = 3; | ||
| - | uint32 playerId = 4; | ||
| - | uint32 commPlayerId = 5; | ||
| - | } | ||
| - | | ||
| - | message UnitOrder { | ||
| - | int32 targetId = 2; | ||
| - | uint32 action = 3; | ||
| - | uint32 param = 4; | ||
| - | XyFloatPoint location = 5; | ||
| - | int32 unique_id = 6; | ||
| - | bool extend = 7; | ||
| - | bool instant = 8; | ||
| - | bool humanOrder = 9; | ||
| - | repeated int32 unitIds = 10; | ||
| - | } | ||
| - | | ||
| - | message Diplomacy { | ||
| - | uint32 playerId1 = 1; | ||
| - | uint32 playerId2 = 2; | ||
| - | uint32 sequence = 3; | ||
| - | uint32 status = 4; | ||
| - | uint32 declare = 5; | ||
| - | uint32 diplomacy = 6; | ||
| - | uint32 intelligence = 7; | ||
| - | uint32 trade = 8; | ||
| - | uint32 demand = 9; | ||
| - | int32 gold = 10; | ||
| - | string message = 11; | ||
| - | } | ||
| - | | ||
| - | message Queue { | ||
| - | int32 buildingId = 1; | ||
| - | int32 trainId = 2; | ||
| - | int32 trainCount = 3; | ||
| - | } | ||
| - | | ||
| - | message SetGatherPoint { | ||
| - | int32 targetId = 2; | ||
| - | int32 targetMasterId = 3; | ||
| - | XyFloatPoint location = 4; | ||
| - | repeated int32 unitIds = 5; | ||
| - | } | ||
| - | | ||
| - | message SellCommodity { | ||
| - | uint32 playerId = 1; | ||
| - | uint32 attrId = 2; | ||
| - | uint32 lotCount = 3; | ||
| - | int32 unitId = 4; | ||
| - | } | ||
| - | | ||
| - | message BuyCommodity { | ||
| - | uint32 playerId = 1; | ||
| - | uint32 attrId = 2; | ||
| - | uint32 lotCount = 3; | ||
| - | int32 unitId = 4; | ||
| - | } | ||
| - | | ||
| - | message UnitTransform { | ||
| - | uint32 unitPlayerId = 2; | ||
| - | int32 objId = 3; | ||
| - | int32 uniqueId = 4; | ||
| - | repeated int32 unitIds = 5; | ||
| - | } | ||
| - | | ||
| - | message DropRelic { | ||
| - | int32 unitId = 1; | ||
| - | } | ||
| - | | ||
| - | message TownBell { | ||
| - | int32 unitId = 1; | ||
| - | uint32 activateFlag = 2; | ||
| - | } | ||
| - | | ||
| - | message GoBackToWork { | ||
| - | int32 unitId = 1; | ||
| - | } | ||
| - | | ||
| - | message MultiQueue { | ||
| - | uint32 playerId = 1; | ||
| - | int32 selectedBuildingId = 2; | ||
| - | int32 trainId = 4; | ||
| - | int32 trainCount = 5; | ||
| - | repeated int32 buildingIds = 6; | ||
| - | } | ||
| - | | ||
| - | message SetGatherState { | ||
| - | uint32 state = 2; | ||
| - | repeated int32 unitIds = 3; | ||
| - | } | ||
| - | | ||
| - | message DeleteObjects { | ||
| - | uint32 playerId = 2; | ||
| - | repeated int32 unitIds = 3; | ||
| - | } | ||
| - | | ||
| - | message ResetBuildings { | ||
| - | uint32 state = 2; | ||
| - | repeated int32 unitIds = 3; | ||
| - | } | ||
| - | | ||
| - | message MultiGate { | ||
| - | uint32 state = 1; | ||
| - | repeated int32 unitIds = 3; | ||
| - | } | ||
| - | | ||
| - | message GoBackToWork2 { | ||
| - | repeated int32 unitIds = 2; | ||
| - | } | ||
| - | | ||
| - | message ChangePlayerName { | ||
| - | uint32 playerId = 1; | ||
| - | string newName = 2; | ||
| - | } | ||
| - | | ||
| - | message UnknownCommand { | ||
| - | uint32 commandId = 1; | ||
| - | } | ||
| - | } | ||
| - | |||
| - | </ | ||
| - | </ | ||