Files
csdemo/Protobufs/dota2/dota_gcmessages_common_bot_script.proto
2024-09-15 05:09:15 +02:00

295 lines
10 KiB
Protocol Buffer

import "valveextensions.proto";
message CMsgBotWorldState {
message Vector {
optional float x = 1;
optional float y = 2;
optional float z = 3;
}
message Player {
optional int32 player_id = 1 [(valve_map_key) = true];
optional int32 hero_id = 2;
optional bool is_alive = 3;
optional float respawn_time = 4;
optional uint32 kills = 5;
optional uint32 deaths = 6;
optional uint32 assists = 7;
optional uint32 team_id = 8;
optional uint32 primary_unit_handle = 9 [default = 4294967295];
optional int32 mmr = 10;
optional .CMsgBotWorldState.Vector location = 11;
}
message Ability {
optional uint32 handle = 1 [(valve_map_key) = true];
optional int32 ability_id = 2 [default = -1];
optional uint32 slot = 3;
optional uint32 caster_handle = 5 [default = 4294967295];
optional uint32 level = 6;
optional uint32 cast_range = 10;
optional float channel_time = 11;
optional float cooldown_remaining = 12 [default = 0];
optional bool is_activated = 20;
optional bool is_toggled = 21;
optional bool is_in_ability_phase = 22;
optional bool is_channeling = 23;
optional bool is_stolen = 24;
optional bool is_fully_castable = 25;
optional uint32 charges = 30;
optional uint32 secondary_charges = 31;
optional bool is_combined_locked = 40;
optional int32 power_treads_stat = 50 [default = -1];
}
message DroppedItem {
optional int32 item_id = 1 [default = -1];
optional .CMsgBotWorldState.Vector location = 2;
}
message RuneInfo {
optional int32 type = 1;
optional .CMsgBotWorldState.Vector location = 2;
optional uint32 status = 3;
optional float time_since_seen = 4;
}
message TeleportInfo {
optional int32 player_id = 1;
optional .CMsgBotWorldState.Vector location = 2;
optional float time_remaining = 3;
}
message Modifier {
optional uint32 handle = 7 [(valve_map_key) = true];
optional string name = 1;
optional uint32 stack_count = 2;
optional uint32 ability_handle = 3 [default = 4294967295];
optional int32 ability_id = 4 [default = -1];
optional float remaining_duration = 5;
repeated uint32 auxiliary_units_handles = 6;
}
message LinearProjectile {
optional uint32 handle = 1 [(valve_map_key) = true];
optional uint32 caster_handle = 2 [default = 4294967295];
optional .CMsgBotWorldState.UnitType caster_unit_type = 9 [default = INVALID];
optional int32 caster_player_id = 3;
optional uint32 ability_handle = 4 [default = 4294967295];
optional int32 ability_id = 5 [default = -1];
optional .CMsgBotWorldState.Vector location = 6;
optional .CMsgBotWorldState.Vector velocity = 7;
optional uint32 radius = 8;
}
message TrackingProjectile {
optional uint32 handle = 10 [(valve_map_key) = true];
optional uint32 caster_handle = 1 [default = 4294967295];
optional .CMsgBotWorldState.UnitType caster_unit_type = 9 [default = INVALID];
optional int32 caster_player_id = 2;
optional uint32 ability_handle = 3 [default = 4294967295];
optional int32 ability_id = 4 [default = -1];
optional .CMsgBotWorldState.Vector location = 5;
optional uint32 velocity = 6;
optional bool is_dodgeable = 7;
optional bool is_attack = 8;
}
message AvoidanceZone {
optional .CMsgBotWorldState.Vector location = 1;
optional uint32 caster_handle = 2 [default = 4294967295];
optional .CMsgBotWorldState.UnitType caster_unit_type = 7 [default = INVALID];
optional int32 caster_player_id = 3;
optional uint32 ability_handle = 4 [default = 4294967295];
optional int32 ability_id = 5 [default = -1];
optional uint32 radius = 6;
}
message Courier {
optional uint32 handle = 1 [(valve_map_key) = true];
optional .CMsgBotWorldState.CourierState state = 2 [default = COURIER_STATE_INIT];
optional int32 player_id = 3;
}
message EventAbility {
optional int32 ability_id = 1 [default = -1];
optional int32 player_id = 2;
optional uint32 unit_handle = 3 [default = 4294967295];
optional .CMsgBotWorldState.Vector location = 4;
optional bool is_channel_start = 5;
}
message EventDamage {
optional uint32 damage = 1;
optional int32 victim_player_id = 2;
optional uint32 victim_unit_handle = 3 [default = 4294967295];
optional int32 attacker_player_id = 4;
optional uint32 attacker_unit_handle = 5 [default = 4294967295];
optional int32 ability_id = 6 [default = -1];
}
message EventCourierKilled {
optional uint32 team_id = 1;
optional uint32 courier_unit_handle = 2 [default = 4294967295];
optional int32 killer_player_id = 3;
optional uint32 killer_unit_handle = 4 [default = 4294967295];
}
message EventRoshanKilled {
optional int32 killer_player_id = 1;
optional uint32 killer_unit_handle = 2 [default = 4294967295];
}
message EventTree {
optional uint32 tree_id = 1;
optional bool destroyed = 2;
optional bool respawned = 3;
optional .CMsgBotWorldState.Vector location = 4;
optional bool delayed = 5;
}
message Unit {
optional uint32 handle = 1 [(valve_map_key) = true];
optional .CMsgBotWorldState.UnitType unit_type = 2 [default = INVALID];
optional string name = 3;
optional uint32 team_id = 4;
optional uint32 level = 5;
optional .CMsgBotWorldState.Vector location = 6;
optional bool is_alive = 7;
optional int32 player_id = 8;
optional int32 bounding_radius = 10;
optional int32 facing = 11;
optional uint32 ground_height = 12;
optional uint32 vision_range_daytime = 15;
optional uint32 vision_range_nighttime = 16;
optional int32 health = 20;
optional int32 health_max = 21;
optional float health_regen = 22;
optional int32 mana = 25;
optional int32 mana_max = 26;
optional float mana_regen = 27;
optional int32 base_movement_speed = 30;
optional int32 current_movement_speed = 31;
optional int32 anim_activity = 35;
optional float anim_cycle = 36;
optional int32 base_damage = 40;
optional int32 base_damage_variance = 41;
optional int32 bonus_damage = 42;
optional int32 attack_damage = 43;
optional int32 attack_range = 44;
optional float attack_speed = 45;
optional float attack_anim_point = 46;
optional int32 attack_acquisition_range = 47;
optional int32 attack_projectile_speed = 48;
optional uint32 attack_target_handle = 49 [default = 4294967295];
optional string attack_target_name = 52;
optional int32 attacks_per_second = 50 [default = -1];
optional float last_attack_time = 51 [default = -1];
optional uint32 bounty_xp = 60;
optional uint32 bounty_gold_min = 61;
optional uint32 bounty_gold_max = 62;
optional bool is_channeling = 65;
optional uint32 active_ability_handle = 66 [default = 4294967295];
optional bool is_attack_immune = 70;
optional bool is_blind = 71;
optional bool is_block_disabled = 72;
optional bool is_disarmed = 73;
optional bool is_dominated = 74;
optional bool is_evade_disabled = 75;
optional bool is_hexed = 76;
optional bool is_invisible = 77;
optional bool is_invulnerable = 78;
optional bool is_magic_immune = 79;
optional bool is_muted = 80;
optional bool is_nightmared = 82;
optional bool is_rooted = 83;
optional bool is_silenced = 84;
optional bool is_specially_deniable = 85;
optional bool is_stunned = 86;
optional bool is_unable_to_miss = 87;
optional bool has_scepter = 88;
optional bool is_specially_undeniable = 94;
repeated .CMsgBotWorldState.Ability abilities = 90 [(valve_map_field) = true];
repeated .CMsgBotWorldState.Ability items = 91 [(valve_map_field) = true];
repeated .CMsgBotWorldState.Modifier modifiers = 92 [(valve_map_field) = true];
repeated .CMsgBotWorldState.TrackingProjectile incoming_tracking_projectiles = 93 [(valve_map_field) = true];
optional uint32 action_type = 100;
optional uint32 ability_target_handle = 101 [default = 4294967295];
optional string ability_target_name = 103;
optional bool is_using_ability = 102;
optional uint32 primary_attribute = 110;
optional bool is_illusion = 111;
optional float respawn_time = 112;
optional uint32 buyback_cost = 113;
optional float buyback_cooldown = 114;
optional float spell_amplification = 115;
optional float armor = 116;
optional float magic_resist = 117;
optional float evasion = 118;
optional uint32 xp_needed_to_level = 120;
optional uint32 ability_points = 121;
optional int32 reliable_gold = 122 [default = -1];
optional int32 unreliable_gold = 123 [default = -1];
optional uint32 last_hits = 124;
optional uint32 denies = 125;
optional uint32 net_worth = 126;
optional uint32 strength = 127;
optional uint32 agility = 128;
optional uint32 intelligence = 129;
optional float remaining_lifespan = 130;
optional bool flying_courier = 140;
optional float shrine_cooldown = 150;
optional bool is_shrine_healing = 151;
}
enum UnitType {
INVALID = 0;
HERO = 1;
CREEP_HERO = 2;
LANE_CREEP = 3;
JUNGLE_CREEP = 4;
ROSHAN = 5;
TOWER = 6;
BARRACKS = 7;
SHRINE = 8;
FORT = 9;
BUILDING = 10;
COURIER = 11;
WARD = 12;
}
enum CourierState {
COURIER_STATE_INIT = -1;
COURIER_STATE_IDLE = 0;
COURIER_STATE_AT_BASE = 1;
COURIER_STATE_MOVING = 2;
COURIER_STATE_DELIVERING_ITEMS = 3;
COURIER_STATE_RETURNING_TO_BASE = 4;
COURIER_STATE_DEAD = 5;
}
optional uint32 team_id = 1;
optional float game_time = 2;
optional float dota_time = 3;
optional uint32 game_state = 4;
optional uint32 hero_pick_state = 5;
optional float time_of_day = 6;
optional float glyph_cooldown = 7;
optional float glyph_cooldown_enemy = 8;
repeated .CMsgBotWorldState.Player players = 10 [(valve_map_field) = true];
repeated .CMsgBotWorldState.Unit units = 11 [(valve_map_field) = true];
repeated .CMsgBotWorldState.DroppedItem dropped_items = 12 [(diff_encode_field) = 112];
repeated int32 dropped_items_deltas = 112;
repeated .CMsgBotWorldState.RuneInfo rune_infos = 13 [(diff_encode_field) = 113];
repeated int32 rune_infos_deltas = 113;
repeated .CMsgBotWorldState.TeleportInfo incoming_teleports = 14;
repeated .CMsgBotWorldState.LinearProjectile linear_projectiles = 15 [(valve_map_field) = true];
repeated .CMsgBotWorldState.AvoidanceZone avoidance_zones = 16;
repeated .CMsgBotWorldState.Courier couriers = 17 [(valve_map_field) = true];
repeated .CMsgBotWorldState.EventAbility ability_events = 20;
repeated .CMsgBotWorldState.EventDamage damage_events = 21;
repeated .CMsgBotWorldState.EventCourierKilled courier_killed_events = 22;
repeated .CMsgBotWorldState.EventRoshanKilled roshan_killed_events = 23;
repeated .CMsgBotWorldState.EventTree tree_events = 24;
}