Судя по общению в дискорде, редактор будем ждать до конца года.
Поковырялся немного в бинарниках.
Тут стоит понимать, что архивы лежат как шифрованный .pak + .ucas/.utoc от UE5.2 и без знания AES токена мы мало чего сможем достать оттуда на текущий момент.
Имеется вот такой инструментарий, но на хост машине я пока не готов это запускать.
Поковырялся немного в бинарниках.
Тут стоит понимать, что архивы лежат как шифрованный .pak + .ucas/.utoc от UE5.2 и без знания AES токена мы мало чего сможем достать оттуда на текущий момент.
Имеется вот такой инструментарий, но на хост машине я пока не готов это запускать.
Чит-коды
Заложены функции чит-кодов, но сами чит-коды лежат, скорее всего, в архивах. И работают ли они в прод окружении - тоже вопрос
Структуры файлов
На текущий момент можно видеть, что многие данные формируются как json
Вот, например, часть структуры описания карты:
{
"dimensions": [ 224, 224 ],
"description": "",
"map_name": "Evergreen",
"map_tags": [
"Custom",
"2v2"
],
"game_mode": "Melee",
"tile_set_id": "ForestAutumn",
"water_table_id": "ForestAutumn",
"data_format_version": 1
}
{
"__attr": {
"catalog_archetypes": {
"__fref": "artifacts/archetypes.json"
},
"details": {
"__fref": "details.json"
},
"preplaced_named_objects": {
"__fref": "preplaced_named_objects.json"
},
"terrain": {
"__fref": "terrain.json"
}
},
"catalog_archetypes": "@",
"catalogs": [
"Content/data/snow_facts/lobby/lobby_catalog.json",
"Content/data/snow_facts/pegasus/pegasus_catalog.json",
"Content/data/snow_facts/pegasus_1v1/catalog.json",
"Content/data/maps/Evergreen2v2/catalog/catalog.json"
],
"details": "@",
"gameplay_level_name": "BasicStartingLevel",
"level_script_location": "Evergreen2v2",
"managed_archetypes_path": "Content/data/maps/Evergreen2v2/managed_archetypes.json",
"preplaced_named_objects": "@",
"terrain": "@"
}
Ещё пример
{
"dimensions": [ 256, 192 ],
"description": "",
"map_name": "Dust Devil",
"map_tags": [
"Custom",
"2v2"
],
"game_mode": "Melee",
"tile_set_id": "Deadlands",
"water_table_id": "ForestAutumn",
"data_format_version": 1
}
{
"__attr": {
"catalog_archetypes": {
"__fref": "artifacts/archetypes.json"
},
"details": {
"__fref": "details.json"
},
"preplaced_named_objects": {
"__fref": "preplaced_named_objects.json"
},
"terrain": {
"__fref": "terrain.json"
}
},
"catalog_archetypes": "@",
"catalogs": [
"Content/data/snow_facts/lobby/lobby_catalog.json",
"Content/data/snow_facts/pegasus/pegasus_catalog.json",
"Content/data/snow_facts/pegasus_1v1/catalog.json",
"Content/data/maps/DustDevil2v2/catalog/catalog.json"
],
"details": "@",
"gameplay_level_name": "BasicStartingLevel",
"level_script_location": "DustDevil2v2",
"managed_archetypes_path": "Content/data/maps/DustDevil2v2/managed_archetypes.json",
"preplaced_named_objects": "@",
"terrain": "@"
}
Это из того, что удалось достать из .pak (оно почему-то было не шифровано), ещё там много svg иконок в открытом виде, возможно, для основных меню.
Сетевой движ
Мы знаем, что они разработали специальный сетевой движок, который называется snowplay и билдится он в dll - snowplay_dll_UnrealShipping.exe
Здесь мы видим по дебаг ассертам список заголовков, но ничего особо интересного
Здесь мы видим по дебаг ассертам список заголовков, но ничего особо интересного
Список функий на экспорт также присутствует:
_snow_ability_commands_begin
_snow_ability_commands_next
_snow_ability_commands_update
_snow_activate_player
_snow_add_ability_command
_snow_add_blackboard_i32
_snow_add_cloud_blackboard_i32
_snow_add_static_collision
_snow_add_tag
_snow_add_tag_if_not_present
_snow_add_to_control_groups_of_creator
_snow_attached_to
_snow_bind_participant_to_entity
_snow_bind_player_slot_to_entity
_snow_bind_player_to_snowbot
_snow_blackboard_keys_begin
_snow_blackboard_keys_end
_snow_blackboard_keys_next
_snow_block_vision
_snow_body_acquire
_snow_body_can_mobilize
_snow_calc_shroud_radius
_snow_can_path_to
_snow_can_step_to
_snow_cancel_all_cooldowns
_snow_cancel_cooldown
_snow_cartesian_to_polar
_snow_check_is_player_ai
_snow_clear_blackboard
_snow_clear_cloud_blackboard
_snow_command_idle
_snow_command_stop
_snow_commit_cloud_blackboard
_snow_copy_blackboard_to
_snow_core_acquire
_snow_core_refresh
_snow_count_tag_exact
_snow_custom_event_1
_snow_custom_event_2
_snow_custom_event_3
_snow_custom_event_4
_snow_damages_add
_snow_damages_begin
_snow_damages_end
_snow_damages_next
_snow_debug_eol
_snow_debug_format
_snow_debug_i64
_snow_debug_str
_snow_debug_string
_snow_debug_type_distance
_snow_debug_type_id
_snow_debug_type_name
_snow_debug_type_time
_snow_debug_type_value
_snow_debug_u64
_snow_decrease_score_value
_snow_del_blackboard_key
_snow_del_cloud_blackboard_key
_snow_disable_log
_snow_does_player_slot_needs_snowbot
_snow_enable_log
_snow_end_match_for_player
_snow_entities_in_cone_begin
_snow_entities_in_range_begin
_snow_entities_in_range_end
_snow_entities_in_range_next
_snow_entities_in_rectangle_begin
_snow_entity_ability_end
_snow_entity_ability_stage_event
_snow_entity_ability_used
_snow_entity_acquire
_snow_entity_attach
_snow_entity_death
_snow_entity_face_entity
_snow_entity_face_location
_snow_entity_follow
_snow_entity_group_add
_snow_entity_group_clear
_snow_entity_group_contains
_snow_entity_group_itr_begin
_snow_entity_group_itr_end
_snow_entity_group_itr_next
_snow_entity_group_pop
_snow_entity_group_remove
_snow_entity_hold
_snow_entity_hold_and_follow
_snow_entity_hold_and_orient
_snow_entity_hold_disable_decel
_snow_entity_move_to
_snow_entity_release
_snow_entity_validate
_snow_entity_weapon_state_change
_snow_find_rectangle_placement_from_point
_snow_find_spawn_placement_from_area
_snow_find_spawn_placement_from_point
_snow_find_spawn_placement_from_unit
_snow_find_spawn_placement_rally
_snow_flood_fill_ground
_snow_footprint_attach
_snow_footprint_detach
_snow_get_active_charges
_snow_get_blackboard_i32
_snow_get_body_collision
_snow_get_body_vision_radius
_snow_get_bound_snowbot_entity_id
_snow_get_cloud_blackboard_i32
_snow_get_control_group_entity_group
_snow_get_cooldown_duration
_snow_get_cooldown_work_completed
_snow_get_entities_of_player_begin
_snow_get_entities_of_player_by_kind_begin
_snow_get_entities_of_player_by_kind_end
_snow_get_entities_of_player_by_kind_next
_snow_get_entities_of_player_end
_snow_get_entities_of_player_next
_snow_get_entity_action_state
_snow_get_entity_attack_target_priority
_snow_get_entity_default_scan_level
_snow_get_entity_facing
_snow_get_entity_goal_x
_snow_get_entity_goal_y
_snow_get_entity_group_count
_snow_get_entity_inner_radius
_snow_get_entity_kind
_snow_get_entity_owning_player_slot
_snow_get_entity_radius
_snow_get_entity_step_x
_snow_get_entity_step_y
_snow_get_entity_team
_snow_get_entity_x
_snow_get_entity_y
_snow_get_entity_z
_snow_get_ground_height
_snow_get_ground_info
_snow_get_ground_node
_snow_get_ground_node_neighbor
_snow_get_ground_node_x
_snow_get_ground_node_y
_snow_get_ground_z
_snow_get_hostile_id
_snow_get_hostile_player_slot
_snow_get_last_blackboard_value
_snow_get_map_size
_snow_get_max_charges
_snow_get_neutral_id
_snow_get_neutral_player_slot
_snow_get_owner
_snow_get_owning_player_id
_snow_get_participant_id
_snow_get_path_distance
_snow_get_player_attribute_value
_snow_get_player_count
_snow_get_player_id
_snow_get_player_participant_idx
_snow_get_player_slot_from_participant
_snow_get_player_start_location
_snow_get_player_team
_snow_get_prev_selection_entity_group
_snow_get_selection_entity_group
_snow_get_show_map
_snow_get_shroud_period
_snow_get_task
_snow_get_task_wait
_snow_get_unbuildable_info
_snow_get_water_info
_snow_handlers_add
_snow_handlers_begin
_snow_handlers_clear
_snow_handlers_next
_snow_has_blackboard_key
_snow_has_cloud_blackboard_key
_snow_has_entity_arrived
_snow_has_snowbot_bound_to_player
_snow_has_tag
_snow_has_tag_exact
_snow_in_melee_range
_snow_increase_score_value
_snow_initialize_owner
_snow_invalidate_ability_commands
_snow_is_ability_command_met
_snow_is_blocked
_snow_is_body_deepwater_walker
_snow_is_body_detector
_snow_is_body_hologram_fake_unit
_snow_is_body_moving
_snow_is_body_stealth
_snow_is_cooldown_active
_snow_is_detected_by_team
_snow_is_entity_group_empty
_snow_is_entity_in_shroud
_snow_is_ground_concealed
_snow_is_ground_edge_constrained
_snow_is_hidden
_snow_is_in_hologram_radius_of_team
_snow_is_in_vision
_snow_is_location_in_shroud
_snow_is_placeable
_snow_is_player_activated
_snow_is_recharging
_snow_is_seeking_goal_ex
_snow_kill_all_tasks
_snow_kill_task
_snow_modify_charge_count
_snow_modify_owner
_snow_near_queued_destination
_snow_order_queue_append
_snow_order_queue_begin
_snow_order_queue_clear
_snow_order_queue_end
_snow_order_queue_front
_snow_order_queue_insert
_snow_order_queue_next
_snow_order_queue_remove
_snow_order_queue_replace
_snow_order_queue_send_front_order
_snow_order_queue_size
_snow_participants_begin
_snow_participants_end
_snow_participants_next
_snow_player_has_participant
_snow_polar_to_cartesian
_snow_profile_scope_enter
_snow_profile_scope_leave
_snow_profile_split
_snow_profile_value_u64
_snow_random_interval
_snow_random_point_in_radius
_snow_random_range
_snow_random_range_exclusive
_snow_random_range_u32
_snow_random_range_u32_exclusive
_snow_remove_from_all_control_groups
_snow_remove_tag
_snow_remove_tag_all
_snow_scale_to
_snow_selection_begin
_snow_selection_end
_snow_selection_next
_snow_send_action
_snow_set_blackboard_i32
_snow_set_body_as_shroud
_snow_set_body_black_mask_vision_radius
_snow_set_body_cascade_field_radius
_snow_set_body_clumped_footprint
_snow_set_body_collision
_snow_set_body_corpse
_snow_set_body_dead
_snow_set_body_deepwater_walker
_snow_set_body_detector
_snow_set_body_hologram_fake_unit
_snow_set_body_location
_snow_set_body_push_priority
_snow_set_body_rectangle_revealer
_snow_set_body_shape
_snow_set_body_speed
_snow_set_body_stealth
_snow_set_body_turn_periods
_snow_set_body_turn_without_slowing
_snow_set_body_vision_height
_snow_set_body_vision_radius
_snow_set_body_wvf_destructible
_snow_set_body_wvf_inhibit
_snow_set_body_wvf_snapshot
_snow_set_camera_bounds
_snow_set_camera_bounds_with_offsets
_snow_set_charge_rate
_snow_set_charges
_snow_set_cloud_blackboard_i32
_snow_set_cooldown
_snow_set_cooldown_work_completed
_snow_set_entity_action_state
_snow_set_entity_attack_target_priority
_snow_set_entity_default_scan_level
_snow_set_entity_facing
_snow_set_footprint_grid
_snow_set_playable_bounds
_snow_set_playable_bounds_with_offsets
_snow_set_player_start_location
_snow_set_player_team
_snow_set_score_value
_snow_set_show_map
_snow_set_shroud_radius
_snow_set_task_wait
_snow_sqrt
_snow_start_pegasus_trace
_snow_step_to
_snow_stop_pegasus_trace
_snow_string_format
_snow_string_format_push_arg
_snow_string_join
_snow_string_join_push_arg
_snow_sub_blackboard_i32
_snow_sub_cloud_blackboard_i32
_snow_tag_matches
_snow_task_bind
_snow_task_release
_snow_task_send_action
_snow_tasks_begin
_snow_tasks_end
_snow_tasks_next
_snow_to_string_distance
_snow_to_string_i64
_snow_to_string_id
_snow_to_string_name
_snow_to_string_str
_snow_to_string_time
_snow_to_string_u64
_snow_to_string_value
_snow_toggle_footprint_grid
_snow_toggle_log
_snow_trap
_snow_trap_ge_u
_snow_trap_msg
_snow_unbind_player_from_snowbot
_snow_whole_map_shroud_adjust
all_snowtags
on_create
on_update
readable_snowtags
Статья будет пополняться...