Quest Flow Tracking Rework

This commit is contained in:
GreenComfyTea
2022-11-22 15:58:33 +02:00
parent cc93a617f1
commit 8f3ff25fd6
15 changed files with 752 additions and 289 deletions

View File

@@ -53,6 +53,7 @@ local rage_customization = require("MHR_Overlay.UI.Customizations.rage_customiza
local body_parts_customization = require("MHR_Overlay.UI.Customizations.body_parts_customization");
local ailments_customization = require("MHR_Overlay.UI.Customizations.ailments_customization");
local ailment_buildups_customization = require("MHR_Overlay.UI.Customizations.ailment_buildups_customization");
local module_visibility_customization = require("MHR_Overlay.UI.Customizations.module_visibility_customization");
local large_monster_UI_customization = require("MHR_Overlay.UI.Customizations.large_monster_UI_customization");
@@ -107,6 +108,7 @@ rage_customization.init_module();
body_parts_customization.init_module();
ailments_customization.init_module();
ailment_buildups_customization.init_module();
module_visibility_customization.init_module();
drawing.init_module();
@@ -124,157 +126,127 @@ log.info("[MHR Overlay] Loaded.");
----------------------------LOOP-----------------------------
-- #region
local function draw_modules(module_visibility_config, flow_state_name)
if module_visibility_config.small_monster_UI and config.current_config.small_monster_UI.enabled then
local success = pcall(small_monster_UI.draw);
if not success then
customization_menu.status = string.format("[%s] Small monster drawing function threw an exception", flow_state_name);
end
end
local large_monster_UI_config = config.current_config.large_monster_UI;
local dynamic_enabled = large_monster_UI_config.dynamic.enabled and
module_visibility_config.large_monster_dynamic_UI;
local static_enabled = large_monster_UI_config.static.enabled and
module_visibility_config.large_monster_static_UI;
local highlighted_enabled = large_monster_UI_config.highlighted.enabled and
module_visibility_config.large_monster_highlighted_UI;
if dynamic_enabled or static_enabled or highlighted_enabled then
local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled, highlighted_enabled);
if not success then
customization_menu.status = string.format("[%s] Large Monster drawing function threw an exception", flow_state_name);
end
end
if config.current_config.time_UI.enabled and module_visibility_config.time_UI then
local success = pcall(time_UI.draw);
if not success then
customization_menu.status = string.format("[%s] Time Drawing function threw an exception", flow_state_name);
end
end
if config.current_config.damage_meter_UI.enabled and module_visibility_config.damage_meter_UI then
local success = pcall(damage_meter_UI.draw);
if not success then
customization_menu.status = string.format("[%s] Damage Meter drawing function threw an exception", flow_state_name);
end
end
if config.current_config.endemic_life_UI.enabled and module_visibility_config.endemic_life_UI then
local success = pcall(env_creature_UI.draw);
if not success then
customization_menu.status = string.format("[%s] Endemic Life drawing function threw an exception", flow_state_name);
end
end
end
local function main_loop()
customization_menu.status = "OK";
singletons.init();
screen.update_window_size();
player.update_myself_position();
quest_status.update_is_online();
quest_status.update_is_result_screen();
quest_status.update_is_host();
quest_status.update_is_quest_host();
time.tick();
--xy = tostring(singletons.quest_manager:call("isPlayQuest")) ..
--"\n" .. tostring(singletons.quest_manager:call("isActiveQuest")) ..
--"\n" .. tostring(singletons.quest_manager:call("isSingleQuest")) ..
--"\n" .. tostring(singletons.quest_manager:call("isStartQuest")) ..
--"\n" .. tostring(quest_status.index);
--xy = xy .. quest_status.get_flow_state(quest_status.flow_state, true);
player.update_player_list(quest_status.index >= 2);
if quest_status.index < 2 then
quest_status.update_is_training_area();
if quest_status.is_training_area then
local dynamic_enabled = config.current_config.large_monster_UI.dynamic.enabled and
config.current_config.global_settings.module_visibility.training_area
.large_monster_dynamic_UI;
local static_enabled = config.current_config.large_monster_UI.static.enabled and
config.current_config.global_settings.module_visibility.training_area.large_monster_static_UI;
local highlighted_enabled = config.current_config.large_monster_UI.highlighted.enabled and
config.current_config.global_settings.module_visibility.training_area
.large_monster_highlighted_UI;
if quest_status.flow_state == quest_status.flow_states.IN_LOBBY then
if dynamic_enabled or static_enabled or highlighted_enabled then
local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled, highlighted_enabled);
if not success then
customization_menu.status = "Large monster drawing function threw an exception";
end
end
if config.current_config.damage_meter_UI.enabled and
config.current_config.global_settings.module_visibility.training_area.damage_meter_UI then
local success = pcall(damage_meter_UI.draw);
if not success then
customization_menu.status = "Damage meter drawing function threw an exception";
end
end
if config.current_config.endemic_life_UI.enabled and
config.current_config.global_settings.module_visibility.training_area.endemic_life_UI then
local success = pcall(env_creature_UI.draw);
if not success then
customization_menu.status = "Endemic life drawing function threw an exception";
end
end
end
elseif quest_status.is_result_screen then
if config.current_config.small_monster_UI.enabled and
config.current_config.global_settings.module_visibility.quest_result_screen.small_monster_UI then
local success = pcall(small_monster_UI.draw);
if config.current_config.endemic_life_UI.enabled and
config.current_config.global_settings.module_visibility.in_lobby.endemic_life_UI then
local success = pcall(env_creature_UI.draw);
if not success then
customization_menu.status = "Small monster drawing function threw an exception";
customization_menu.status = "[In Lobby] Endemic life drawing function threw an exception";
end
end
local dynamic_enabled = config.current_config.large_monster_UI.dynamic.enabled and
config.current_config.global_settings.module_visibility.quest_result_screen
.large_monster_dynamic_UI;
local static_enabled = config.current_config.large_monster_UI.static.enabled and
config.current_config.global_settings.module_visibility.quest_result_screen
.large_monster_static_UI;
local highlighted_enabled = config.current_config.large_monster_UI.highlighted.enabled and
config.current_config.global_settings.module_visibility.quest_result_screen
.large_monster_highlighted_UI;
elseif quest_status.flow_state == quest_status.flow_states.IN_TRAINING_AREA then
local large_monster_UI_config = config.current_config.large_monster_UI;
local module_visibility_config = config.current_config.global_settings.module_visibility.in_training_area;
local dynamic_enabled = large_monster_UI_config.dynamic.enabled and module_visibility_config.large_monster_dynamic_UI;
local static_enabled = large_monster_UI_config.static.enabled and module_visibility_config.large_monster_static_UI;
local highlighted_enabled = large_monster_UI_config.highlighted.enabled and module_visibility_config.large_monster_highlighted_UI;
if dynamic_enabled or static_enabled or highlighted_enabled then
local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled, highlighted_enabled);
if not success then
customization_menu.status = "Large monster drawing function threw an exception";
customization_menu.status = "[In Training Area] Large monster drawing function threw an exception";
end
end
if config.current_config.time_UI.enabled and
config.current_config.global_settings.module_visibility.quest_result_screen.time_UI then
local success = pcall(time_UI.draw);
if not success then
customization_menu.status = "Time drawing function threw an exception";
end
end
if config.current_config.damage_meter_UI.enabled and
config.current_config.global_settings.module_visibility.quest_result_screen.damage_meter_UI then
if config.current_config.damage_meter_UI.enabled and module_visibility_config.damage_meter_UI then
local success = pcall(damage_meter_UI.draw);
if not success then
customization_menu.status = "Damage meter drawing function threw an exception";
customization_menu.status = "[In Training Area] Damage meter drawing function threw an exception";
end
end
if config.current_config.endemic_life_UI.enabled and
config.current_config.global_settings.module_visibility.quest_result_screen.endemic_life_UI then
if config.current_config.endemic_life_UI.enabled and module_visibility_config.endemic_life_UI then
local success = pcall(env_creature_UI.draw);
if not success then
customization_menu.status = "Endemic life drawing function threw an exception";
end
end
elseif quest_status.index == 2 then
if config.current_config.small_monster_UI.enabled and
config.current_config.global_settings.module_visibility.during_quest.small_monster_UI then
local success = pcall(small_monster_UI.draw);
if not success then
customization_menu.status = "Small monster drawing function threw an exception";
customization_menu.status = "[In Training Area] Endemic life drawing function threw an exception";
end
end
local dynamic_enabled = config.current_config.large_monster_UI.dynamic.enabled and
config.current_config.global_settings.module_visibility.during_quest.large_monster_dynamic_UI;
local static_enabled = config.current_config.large_monster_UI.static.enabled and
config.current_config.global_settings.module_visibility.during_quest.large_monster_static_UI;
local highlighted_enabled = config.current_config.large_monster_UI.highlighted.enabled and
config.current_config.global_settings.module_visibility.during_quest
.large_monster_highlighted_UI;
if dynamic_enabled or static_enabled or highlighted_enabled then
local success = pcall(large_monster_UI.draw, dynamic_enabled, static_enabled, highlighted_enabled);
if not success then
customization_menu.status = "Large monster drawing function threw an exception";
end
end
if config.current_config.time_UI.enabled and
config.current_config.global_settings.module_visibility.during_quest.time_UI then
local success = pcall(time_UI.draw);
if not success then
customization_menu.status = "Time drawing function threw an exception";
end
end
if config.current_config.damage_meter_UI.enabled and
config.current_config.global_settings.module_visibility.during_quest.damage_meter_UI then
local success = pcall(damage_meter_UI.draw);
if not success then
customization_menu.status = "Damage meter drawing function threw an exception";
end
end
if config.current_config.endemic_life_UI.enabled and
config.current_config.global_settings.module_visibility.during_quest.endemic_life_UI then
local success = pcall(env_creature_UI.draw);
if not success then
customization_menu.status = "Endemic life drawing function threw an exception";
end
end
end
elseif quest_status.flow_state == quest_status.flow_states.CUTSCENE then
draw_modules(config.current_config.global_settings.module_visibility.cutscene, "Cutscene");
elseif quest_status.flow_state == quest_status.flow_states.LOADING_QUEST then
draw_modules(config.current_config.global_settings.module_visibility.loading_quest, "Loading Quest");
elseif quest_status.flow_state == quest_status.flow_states.QUEST_START_ANIMATION then
draw_modules(config.current_config.global_settings.module_visibility.quest_start_animation, "Quest Start Animation");
elseif quest_status.flow_state >= quest_status.flow_states.PLAYING_QUEST and quest_status.flow_state <= quest_status.flow_states.WYVERN_RIDING_START_ANIMATION then
draw_modules(config.current_config.global_settings.module_visibility.playing_quest, "Playing Quest");
elseif quest_status.flow_state == quest_status.flow_states.KILLCAM then
draw_modules(config.current_config.global_settings.module_visibility.killcam, "Killcam");
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_TIMER then
draw_modules(config.current_config.global_settings.module_visibility.quest_end_timer, "Quest End Timer");
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_ANIMATION then
draw_modules(config.current_config.global_settings.module_visibility.quest_end_animation, "Quest End Animation");
elseif quest_status.flow_state == quest_status.flow_states.QUEST_END_SCREEN then
draw_modules(config.current_config.global_settings.module_visibility.quest_end_screen, "Quest End Screen");
elseif quest_status.flow_state == quest_status.flow_states.REWARD_SCREEN then
draw_modules(config.current_config.global_settings.module_visibility.reward_screen, "Reward Screen");
elseif quest_status.flow_state == quest_status.flow_states.SUMMARY_SCREEN then
draw_modules(config.current_config.global_settings.module_visibility.summary_screen, "Summary Screen");
end
end
-- #endregion
@@ -318,6 +290,35 @@ if debug.enabled then
if d2d ~= nil then
d2d.register(function()
end, function()
local is_ready_quest = singletons.quest_manager:call("isReadyQuest");
local is_ready_play_quest = singletons.quest_manager:call("isReadyPlayQuest");
local is_play_quest = singletons.quest_manager:call("isPlayQuest");
local is_stay_quest = singletons.quest_manager:call("isStayQuest");
local is_end_wait = singletons.quest_manager:call("isEndWait");
local is_active_quest = singletons.quest_manager:call("isActiveQuest");
local quest_clear = singletons.quest_manager:call("checkQuestClear");
local is_result_demo_play_start = singletons.quest_manager:call("isResultDemoPlayStart");
local isResultGuestDrawOff = singletons.quest_manager:call("isResultGuestDrawOff");
local game_manager = sdk.get_managed_singleton("snow.SnowGameManager");
local current_status = game_manager:get_field("_CurrentStatus");
local demo_camera = sdk.get_managed_singleton("snow.camera.DemoCamera");
local is_play_demo = demo_camera:call("IsPlayDemo");
--[[xy = "\nquest_status.index: " .. tostring(quest_status.index);
xy = xy .. "\nis_ready_quest: " .. tostring(is_ready_quest);
xy = xy .. "\nis_ready_play_quest: " .. tostring(is_ready_play_quest);
xy = xy .. "\nis_play_quest: " .. tostring(is_play_quest);
xy = xy .. "\nis_stay_quest: " .. tostring(is_stay_quest);
xy = xy .. "\nis_end_wait: " .. tostring(is_end_wait);
xy = xy .. "\nis_active_quest: " .. tostring(is_active_quest);
xy = xy .. "\nquest_clear: " .. tostring(quest_clear);
xy = xy .. "\nis_result_demo_play_start: " .. tostring(is_result_demo_play_start);
xy = xy .. "\nisResultGuestDrawOff: " .. tostring(isResultGuestDrawOff);
xy = xy .. "\ncurrent_status: " .. tostring(current_status);
xy = xy .. "\nis_play_demo: " .. tostring(is_play_demo);--]]
if xy ~= "" then
d2d.text(drawing.font, "xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
d2d.text(drawing.font, "xy:\n" .. tostring(xy), 550, 10, 0xFFFFFFFF);
@@ -326,8 +327,8 @@ if debug.enabled then
else
re.on_frame(function()
if xy ~= "" then
draw.text("xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
draw.text("xy:\n" .. tostring(xy), 550, 10, 0xFFFFFFFF);
draw.text("xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
end
end);
end

View File

@@ -500,8 +500,8 @@ function player.init_UI(_player)
local cached_config = config.current_config.damage_meter_UI;
_player.damage_UI = damage_UI_entity.new(cached_config.damage_bar, cached_config.highlighted_damage_bar,
cached_config.player_name_label, cached_config.dps_label, cached_config.master_hunter_rank_label,
cached_config.damage_value_label, cached_config.damage_percentage_label, cached_config.cart_count_label);
cached_config.player_name_label, cached_config.dps_label, cached_config.master_hunter_rank_label,
cached_config.damage_value_label, cached_config.damage_percentage_label, cached_config.cart_count_label);
end
function player.init_total_UI(_player)

View File

@@ -1,4 +1,5 @@
local quest_status = {};
local singletons;
local customization_menu;
local player;
@@ -8,35 +9,235 @@ local damage_meter_UI;
local time;
local env_creature;
quest_status.flow_states = {
NONE = 0,
IN_LOBBY = 1,
IN_TRAINING_AREA = 2,
CUTSCENE = 4,
LOADING_QUEST = 8,
QUEST_START_ANIMATION = 16,
PLAYING_QUEST = 32,
PLAYER_DEATH_ANIMATION = 64,
PLAYER_CART_ANIMATION = 128,
FAST_TRAVEL_ANIMATION = 256,
WYVERN_RIDING_START_ANIMATION = 512,
KILLCAM = 1024,
QUEST_END_TIMER = 2048,
QUEST_END_ANIMATION = 4096,
QUEST_END_SCREEN = 8192,
REWARD_SCREEN = 16384,
SUMMARY_SCREEN = 32768,
};
quest_status.previous_flow_state = quest_status.flow_states.NONE;
quest_status.flow_state = quest_status.flow_states.NONE;
quest_status.index = 0;
quest_status.is_online = false;
quest_status.is_host = false;
quest_status.is_training_area = false;
quest_status.is_result_screen = false;
quest_status.is_quest_clear = false;
quest_status.is_quest_host = false;
local quest_manager_type_definition = sdk.find_type_definition("snow.QuestManager");
local on_changed_game_status = quest_manager_type_definition:get_method("onChangedGameStatus");
local get_status_method = quest_manager_type_definition:get_method("getStatus");
local is_result_demo_play_start_method = quest_manager_type_definition:get_method("isResultDemoPlayStart");
local quest_manager_type_def = sdk.find_type_definition("snow.QuestManager");
local on_changed_game_status_method = quest_manager_type_def:get_method("onChangedGameStatus");
local is_result_demo_play_start_method = quest_manager_type_def:get_method("isResultDemoPlayStart");
local set_quest_clear_method = quest_manager_type_def:get_method("setQuestClear");
local set_quest_clear_sub_method = quest_manager_type_def:get_method("setQuestClearSub");
local set_quest_clear_sub_hyakurui_method = quest_manager_type_def:get_method("setQuestClearSubHyakuryu");
local set_quest_fail_method = quest_manager_type_def:get_method("setQuestFail");
local set_quest_clear_method = quest_manager_type_definition:get_method("setQuestClear");
local set_quest_clear_sub_method = quest_manager_type_definition:get_method("setQuestClearSub");
local set_quest_clear_sub_hyakurui_method = quest_manager_type_definition:get_method("setQuestClearSubHyakuryu");
local game_manager_type_def = sdk.find_type_definition("snow.SnowGameManager");
local get_status_method = game_manager_type_def:get_method("getStatus");
local village_area_manager_type_def = sdk.find_type_definition("snow.VillageAreaManager");
local check_current_area_training_area_method = village_area_manager_type_def:get_method("checkCurrentArea_TrainingArea");
local fast_travel_method = village_area_manager_type_def:get_method("fastTravel");
local lobby_manager_type_definition = sdk.find_type_definition("snow.LobbyManager");
local is_quest_online_method = lobby_manager_type_definition:get_method("IsQuestOnline");
local is_quest_host_method = lobby_manager_type_definition:get_method("isQuestHost");
local is_play_quest_method = quest_manager_type_def:get_method("isPlayQuest");
local is_end_wait_method = quest_manager_type_def:get_method("isEndWait");
local demo_camera_type_def = sdk.find_type_definition("snow.camera.DemoCamera");
local demo_request_activation_method = demo_camera_type_def:get_method("RequestActivation");
local demo_end_method = demo_camera_type_def:get_method("DemoEnd");
local gui_quest_end_base_type_def = sdk.find_type_definition("snow.gui.GuiQuestEndBase");
local quest_end_set_state_method = gui_quest_end_base_type_def:get_method("setState");
local gui_result_reward_type_def = sdk.find_type_definition("snow.gui.GuiResultReward");
local gui_result_reward_do_open_method = gui_result_reward_type_def:get_method("doOpen");
local gui_result_pay_off_type_def = sdk.find_type_definition("snow.gui.GuiResultPayOff");
local gui_result_pay_off_do_open_method = gui_result_pay_off_type_def:get_method("doOpen");
local unique_event_manager_type_def = sdk.find_type_definition("snow.eventcut.UniqueEventManager");
local play_event_common_method = unique_event_manager_type_def:get_method("playEventCommon");
local event_manager_dispose_method = unique_event_manager_type_def:get_method("dispose");
function quest_status.get_flow_state(flow_state, new_line)
for key, value in pairs(quest_status.flow_states) do
if value == flow_state then
if new_line then
return "\n" .. tostring(key);
else
return tostring(key);
end
end
end
end
--type 2 = quest start
--type 3 = monster killcam
--type 5 = end screen
function quest_status.on_demo_request_activation(request_data_base)
if request_data_base == nil then
return;
end
if quest_status.index ~= 2 then
return;
end
local request_data_type = request_data_base:call("get_Type");
if request_data_type == nil then
return;
end
-- QUEST_START_ANIMATION
if request_data_type == 2 then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.QUEST_START_ANIMATION;
-- KILLCAM
elseif request_data_type == 3 then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.KILLCAM;
-- QUEST_END_ANIMATION
elseif request_data_type == 5 or request_data_type == 6 or request_data_type == 7 then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.QUEST_END_ANIMATION;
-- PLAYER_DEATH_ANIMATION
elseif request_data_type == 8 then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.PLAYER_DEATH_ANIMATION;
-- PLAYER_CART_ANIMATION
elseif request_data_type == 9 then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.PLAYER_CART_ANIMATION;
-- FAST_TRAVEL_ANIMATION
elseif request_data_type == 10 then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.FAST_TRAVEL_ANIMATION;
-- WYVERN_RIDING_START_ANIMATION
elseif request_data_type == 11 then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.WYVERN_RIDING_START_ANIMATION;
end
end
function quest_status.on_demo_end()
if quest_status.index == 2 then
if quest_status.flow_state == quest_status.flow_states.PLAYER_DEATH_ANIMATION
or quest_status.flow_state == quest_status.flow_states.PLAYER_CART_ANIMATION
or quest_status.flow_state == quest_status.flow_states.FAST_TRAVEL_ANIMATION
or quest_status.flow_state == quest_status.flow_states.WYVERN_RIDING_START_ANIMATION then
local next_flow_state = quest_status.previous_flow_state;
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = next_flow_state;
elseif quest_status.flow_state == quest_status.flow_states.QUEST_START_ANIMATION then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.PLAYING_QUEST;
elseif quest_status.flow_state == quest_status.flow_states.KILLCAM then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.QUEST_END_TIMER;
end
end
end
function quest_status.on_set_quest_clear()
if quest_status.index == 2 and quest_status.flow_state ~= quest_status.flow_states.KILLCAM then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.QUEST_END_TIMER;
end
end
function quest_status.on_quest_end_set_state()
if quest_status.index == 2 then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.QUEST_END_SCREEN;
end
end
function quest_status.on_gui_result_reward_do_open()
if quest_status.index == 3 then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.REWARD_SCREEN;
end
end
function quest_status.on_gui_result_pay_off_do_open()
if quest_status.index == 3 then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.SUMMARY_SCREEN;
end
end
function quest_status.on_play_event_common()
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.CUTSCENE;
end
function quest_status.on_event_manager_dispose()
if quest_status.flow_state == quest_status.flow_states.CUTSCENE then
local next_flow_state = quest_status.previous_flow_state;
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = next_flow_state;
end
end
function quest_status.on_set_quest_fail()
if quest_status.flow_state == quest_status.flow_states.PLAYER_DEATH_ANIMATION or
quest_status.flow_state == quest_status.flow_states.PLAYER_CART_ANIMATION or
quest_status.flow_state == quest_status.flow_states.FAST_TRAVEL_ANIMATION or
quest_status.flow_state == quest_status.flow_states.WYVERN_RIDING_START_ANIMATION then
quest_status.previous_flow_state = quest_status.flow_state;
quest_status.flow_state = quest_status.flow_states.QUEST_END_ANIMATION;
end
end
function quest_status.on_village_fast_travel(area)
if area == nil then
return;
end
quest_status.previous_flow_state = quest_status.flow_state;
if area == 7 then
quest_status.flow_state = quest_status.flow_states.IN_TRAINING_AREA;
else
quest_status.flow_state = quest_status.flow_states.IN_LOBBY;
end
end
function quest_status.on_changed_game_status(new_quest_status)
if (quest_status.index < 2 and new_quest_status == 2)
or new_quest_status < 2 then
quest_status.index = new_quest_status;
if quest_status.index < 3 then
player.init();
small_monster.init_list();
large_monster.init_list();
@@ -47,11 +248,15 @@ function quest_status.on_changed_game_status(new_quest_status)
damage_meter_UI.last_displayed_players = {};
end
quest_status.index = new_quest_status;
end
function quest_status.on_set_quest_clear()
quest_status.is_quest_clear = true;
if quest_status.index == 0 then
quest_status.flow_state = quest_status.flow_states.NONE;
elseif quest_status.index == 1 then
quest_status.flow_state = quest_status.flow_states.IN_LOBBY;
elseif quest_status.index == 2 then
quest_status.flow_state = quest_status.flow_states.LOADING_QUEST;
elseif quest_status.index == 3 then
quest_status.flow_state = quest_status.flow_states.SUMMARY_SCREEN;
end
end
function quest_status.init()
@@ -59,16 +264,26 @@ function quest_status.init()
return;
end
local new_quest_status = get_status_method:call(singletons.quest_manager);
local new_quest_status = get_status_method:call(singletons.game_manager);
if new_quest_status == nil then
customization_menu.status = "No quest status";
return;
end
quest_status.index = new_quest_status;
if quest_status.index == 0 then
quest_status.flow_state = quest_status.flow_states.NONE;
elseif quest_status.index == 1 then
quest_status.flow_state = quest_status.flow_states.IN_LOBBY;
elseif quest_status.index == 2 then
quest_status.flow_state = quest_status.flow_states.PLAYING_QUEST;
elseif quest_status.index == 3 then
quest_status.flow_state = quest_status.flow_states.SUMMARY_SCREEN;
end
quest_status.update_is_online();
quest_status.update_is_training_area();
quest_status.update_is_result_screen();
end
function quest_status.update_is_online()
@@ -88,17 +303,17 @@ function quest_status.update_is_online()
quest_status.is_online = is_quest_online;
end
function quest_status.update_is_host()
function quest_status.update_is_quest_host()
if singletons.lobby_manager == nil then
return;
end
local is_host = is_quest_host_method:call(singletons.lobby_manager, true);
if is_host == nil then
local is_quest_host = is_quest_host_method:call(singletons.lobby_manager, true);
if is_quest_host == nil then
return;
end
quest_status.is_host = is_host;
quest_status.is_quest_host = is_quest_host;
end
function quest_status.update_is_training_area()
@@ -112,25 +327,9 @@ function quest_status.update_is_training_area()
return;
end
if quest_status.is_training_area == true and _is_training_area == false then
player.init();
if _is_training_area then
quest_status.flow_state = quest_status.flow_states.IN_TRAINING_AREA;
end
quest_status.is_training_area = _is_training_area;
end
function quest_status.update_is_result_screen()
if singletons.quest_manager == nil then
customization_menu.status = "No quest manager";
return;
end
local is_result_demo_play_start = is_result_demo_play_start_method:call(singletons.quest_manager);
if is_result_demo_play_start == nil then
return;
end
quest_status.is_result_screen = is_result_demo_play_start;
end
function quest_status.init_module()
@@ -145,7 +344,7 @@ function quest_status.init_module()
quest_status.init();
sdk.hook(on_changed_game_status, function(args)
sdk.hook(on_changed_game_status_method, function(args)
quest_status.on_changed_game_status(sdk.to_int64(args[3]));
end, function(retval) return retval; end);
@@ -160,6 +359,46 @@ function quest_status.init_module()
sdk.hook(set_quest_clear_sub_hyakurui_method, function(args)
quest_status.on_set_quest_clear();
end, function(retval) return retval; end);
sdk.hook(demo_request_activation_method, function(args)
quest_status.on_demo_request_activation(sdk.to_managed_object(args[3]));
end, function(retval) return retval; end);
sdk.hook(demo_end_method, function(args)
quest_status.on_demo_end();
end, function(retval) return retval; end);
sdk.hook(set_quest_clear_method, function(args)
quest_status.on_set_quest_clear();
end, function(retval) return retval; end);
sdk.hook(quest_end_set_state_method, function(args)
quest_status.on_quest_end_set_state();
end, function(retval) return retval; end);
sdk.hook(gui_result_reward_do_open_method, function(args)
quest_status.on_gui_result_reward_do_open();
end, function(retval) return retval; end);
sdk.hook(gui_result_pay_off_do_open_method, function(args)
quest_status.on_gui_result_pay_off_do_open();
end, function(retval) return retval; end);
sdk.hook(play_event_common_method, function(args)
quest_status.on_play_event_common();
end, function(retval) return retval; end);
sdk.hook(event_manager_dispose_method, function(args)
quest_status.on_event_manager_dispose();
end, function(retval) return retval; end);
sdk.hook(set_quest_fail_method, function(args)
quest_status.on_set_quest_fail();
end, function(retval) return retval; end);
sdk.hook(fast_travel_method, function(args)
quest_status.on_village_fast_travel(sdk.to_int64(args[3]));
end, function(retval) return retval; end);
end
return quest_status;

View File

@@ -10,6 +10,7 @@ singletons.village_area_manager = nil;
singletons.gui_manager = nil;
singletons.game_keyboard = nil;
singletons.scene_manager = nil;
singletons.game_manager = nil;
function singletons.init()
singletons.init_message_manager();
@@ -22,6 +23,7 @@ function singletons.init()
singletons.init_gui_manager();
singletons.init_game_keyboard();
singletons.init_scene_manager();
singletons.init_game_manager();
end
function singletons.init_message_manager()
@@ -156,6 +158,19 @@ function singletons.init_scene_manager()
return singletons.scene_manager;
end
function singletons.init_game_manager()
if singletons.game_manager ~= nil then
return;
end
singletons.game_manager = sdk.get_managed_singleton("snow.SnowGameManager");
if singletons.game_manager == nil then
--log.error("[MHR Overlay] No enemy manager");
end
return singletons.game_manager;
end
function singletons.init_module()
singletons.init();
end

View File

@@ -34,7 +34,39 @@ function config.init()
},
module_visibility = {
during_quest = {
in_lobby = {
endemic_life_UI = false
},
in_training_area = {
large_monster_dynamic_UI = true,
large_monster_static_UI = true,
large_monster_highlighted_UI = true,
damage_meter_UI = true,
endemic_life_UI = true
},
cutscene = {
small_monster_UI = false,
large_monster_dynamic_UI = false,
large_monster_static_UI = false,
large_monster_highlighted_UI = false,
time_UI = false,
damage_meter_UI = false,
endemic_life_UI = false
},
loading_quest = {
small_monster_UI = false,
large_monster_dynamic_UI = false,
large_monster_static_UI = false,
large_monster_highlighted_UI = false,
time_UI = false,
damage_meter_UI = false,
endemic_life_UI = false
},
quest_start_animation = {
small_monster_UI = true,
large_monster_dynamic_UI = true,
large_monster_static_UI = true,
@@ -44,7 +76,57 @@ function config.init()
endemic_life_UI = true
},
quest_result_screen = {
playing_quest = {
small_monster_UI = true,
large_monster_dynamic_UI = true,
large_monster_static_UI = true,
large_monster_highlighted_UI = true,
time_UI = true,
damage_meter_UI = true,
endemic_life_UI = true
},
killcam = {
small_monster_UI = true,
large_monster_dynamic_UI = true,
large_monster_static_UI = true,
large_monster_highlighted_UI = true,
time_UI = true,
damage_meter_UI = true,
endemic_life_UI = true
},
quest_end_timer = {
small_monster_UI = true,
large_monster_dynamic_UI = true,
large_monster_static_UI = true,
large_monster_highlighted_UI = true,
time_UI = true,
damage_meter_UI = true,
endemic_life_UI = true
},
quest_end_animation = {
small_monster_UI = false,
large_monster_dynamic_UI = false,
large_monster_static_UI = false,
large_monster_highlighted_UI = false,
time_UI = false,
damage_meter_UI = false,
endemic_life_UI = false
},
quest_end_screen = {
small_monster_UI = false,
large_monster_dynamic_UI = false,
large_monster_static_UI = false,
large_monster_highlighted_UI = false,
time_UI = false,
damage_meter_UI = false,
endemic_life_UI = false
},
reward_screen = {
small_monster_UI = false,
large_monster_dynamic_UI = false,
large_monster_static_UI = true,
@@ -54,13 +136,15 @@ function config.init()
endemic_life_UI = false
},
training_area = {
large_monster_dynamic_UI = true,
summary_screen = {
small_monster_UI = false,
large_monster_dynamic_UI = false,
large_monster_static_UI = true,
large_monster_highlighted_UI = true,
time_UI = true,
damage_meter_UI = true,
endemic_life_UI = true
}
endemic_life_UI = false
},
},
hotkeys_with_modifiers = {
@@ -221,7 +305,7 @@ function config.init()
visibility = true,
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 50,
x = 32,
y = 0
},
color = 0xFFCCF4E1,

View File

@@ -147,10 +147,19 @@ language.default_language = {
large_monster_highlighted_UI = "Large Monster Highlighted UI",
language = "Language",
module_visibility_on_different_screens = "Module Visibility on Different Screens",
during_quest = "During Quest",
quest_result_screen = "Quest Result Screen",
training_area = "Training Area",
module_visibility_based_on_game_state = "Module Visibility based on Game State",
in_lobby = "In Lobby",
in_training_area = "In Training Area",
cutscene = "Cutscene",
loading_quest = "Loading Quest",
quest_start_animation = "Quest Start Animation",
playing_quest = "Playing Quest",
killcam = "Killcam",
quest_end_timer = "Quest End Timer",
quest_end_animation = "Quest End Animation",
quest_end_screen = "Quest End Screen",
reward_screen = "Reward Screen",
summary_screen = "Summary Screen",
performance = "Performance",

View File

@@ -0,0 +1,82 @@
local module_visibility_customization = {};
local table_helpers;
local config;
local screen;
local player;
local large_monster;
local small_monster;
local env_creature;
local language;
local part_names;
local time_UI;
local keyboard;
local customization_menu;
local label_customization;
local bar_customization;
function module_visibility_customization.draw(cached_config)
local changed = false;
local config_changed = false;
changed, cached_config.small_monster_UI = imgui.checkbox(
language.current_language.customization_menu.small_monster_UI,
cached_config.small_monster_UI);
config_changed = config_changed or changed;
changed, cached_config.large_monster_dynamic_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_dynamic_UI,
cached_config.large_monster_dynamic_UI);
config_changed = config_changed or changed;
changed, cached_config.large_monster_static_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_static_UI,
cached_config.large_monster_static_UI);
config_changed = config_changed or changed;
changed, cached_config.large_monster_highlighted_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_highlighted_UI,
cached_config.large_monster_highlighted_UI);
config_changed = config_changed or changed;
changed, cached_config.time_UI = imgui.checkbox(
language.current_language.customization_menu.time_UI,
cached_config.time_UI);
config_changed = config_changed or changed;
changed, cached_config.damage_meter_UI = imgui.checkbox(
language.current_language.customization_menu.damage_meter_UI,
cached_config.damage_meter_UI);
config_changed = config_changed or changed;
changed, cached_config.endemic_life_UI = imgui.checkbox(
language.current_language.customization_menu.endemic_life_UI,
cached_config.endemic_life_UI);
config_changed = config_changed or changed;
return config_changed;
end
function module_visibility_customization.init_module()
table_helpers = require("MHR_Overlay.Misc.table_helpers");
language = require("MHR_Overlay.Misc.language");
config = require("MHR_Overlay.Misc.config");
screen = require("MHR_Overlay.Game_Handler.screen");
player = require("MHR_Overlay.Damage_Meter.player");
small_monster = require("MHR_Overlay.Monsters.small_monster");
large_monster = require("MHR_Overlay.Monsters.large_monster");
env_creature = require("MHR_Overlay.Endemic_Life.env_creature");
part_names = require("MHR_Overlay.Misc.part_names");
time_UI = require("MHR_Overlay.UI.Modules.time_UI");
keyboard = require("MHR_Overlay.Game_Handler.keyboard");
customization_menu = require("MHR_Overlay.UI.customization_menu");
end
return module_visibility_customization;

View File

@@ -77,7 +77,7 @@ function damage_meter_UI.draw()
local quest_players = {};
if damage_meter_UI.freeze_displayed_players and damage_meter_UI.last_displayed_players ~= {} then
quest_players = damage_meter_UI.last_displayed_players;
elseif quest_status.index < 2 then
elseif quest_status.flow_state == quest_status.flow_states.IN_LOBBY or quest_status.flow_state == quest_status.flow_states.IN_TRAINING_AREA then
local player_info_list = hunter_info_field:get_data(singletons.lobby_manager);
quest_players = damage_meter_UI.get_players(player_info_list);
else

View File

@@ -143,6 +143,10 @@ function large_monster_UI.draw_dynamic(displayed_monsters, highlighted_monster,
break
end
if monster.id == 549 or monster.id == 25 or monster.id == 2073 then
goto continue
end
if monster.dead_or_captured and cached_config.settings.hide_dead_or_captured then
goto continue
end

View File

@@ -23,6 +23,7 @@ local rage_customization;
local body_parts_customization;
local ailments_customization;
local ailment_buildups_customization;
local module_visibility_customization;
customization_menu.font = nil;
customization_menu.font_range = {0x1, 0xFFFF, 0};
@@ -759,129 +760,111 @@ function customization_menu.draw_global_settings()
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.module_visibility_on_different_screens) then
if imgui.tree_node(language.current_language.customization_menu.during_quest) then
changed, cached_config.module_visibility.during_quest.small_monster_UI =
imgui.checkbox(language.current_language.customization_menu.small_monster_UI,
cached_config.module_visibility.during_quest.small_monster_UI);
if imgui.tree_node(language.current_language.customization_menu.module_visibility_based_on_game_state) then
if imgui.tree_node(language.current_language.customization_menu.in_lobby) then
config_changed = config_changed or changed;
changed, cached_config.module_visibility.during_quest.large_monster_dynamic_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_dynamic_UI,
cached_config.module_visibility.during_quest.large_monster_dynamic_UI);
config_changed = config_changed or changed;
imgui.same_line();
changed, cached_config.module_visibility.during_quest.large_monster_static_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_static_UI,
cached_config.module_visibility.during_quest.large_monster_static_UI);
config_changed = config_changed or changed;
changed, cached_config.module_visibility.during_quest.large_monster_highlighted_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_highlighted_UI,
cached_config.module_visibility.during_quest.large_monster_highlighted_UI);
config_changed = config_changed or changed;
changed, cached_config.module_visibility.during_quest.time_UI =
imgui.checkbox(language.current_language.customization_menu.time_UI,
cached_config.module_visibility.during_quest.time_UI);
config_changed = config_changed or changed;
imgui.same_line();
changed, cached_config.module_visibility.during_quest.damage_meter_UI =
imgui.checkbox(language.current_language.customization_menu.damage_meter_UI,
cached_config.module_visibility.during_quest.damage_meter_UI);
config_changed = config_changed or changed;
changed, cached_config.module_visibility.during_quest.endemic_life_UI =
imgui.checkbox(language.current_language.customization_menu.endemic_life_UI,
cached_config.module_visibility.during_quest.endemic_life_UI);
changed, cached_config.module_visibility.in_lobby.endemic_life_UI = imgui.checkbox(
language.current_language.customization_menu.endemic_life_UI,
cached_config.module_visibility.in_lobby.endemic_life_UI);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.quest_result_screen) then
changed, cached_config.module_visibility.quest_result_screen.small_monster_UI = imgui.checkbox(
language.current_language.customization_menu.small_monster_UI,
cached_config.module_visibility.quest_result_screen.small_monster_UI);
if imgui.tree_node(language.current_language.customization_menu.in_training_area) then
config_changed = config_changed or changed;
changed, cached_config.module_visibility.quest_result_screen.large_monster_dynamic_UI = imgui.checkbox(
changed, cached_config.module_visibility.in_training_area.large_monster_dynamic_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_dynamic_UI,
cached_config.module_visibility.quest_result_screen.large_monster_dynamic_UI);
cached_config.module_visibility.in_training_area.large_monster_dynamic_UI);
config_changed = config_changed or changed;
imgui.same_line();
changed, cached_config.module_visibility.quest_result_screen.large_monster_static_UI = imgui.checkbox(
changed, cached_config.module_visibility.in_training_area.large_monster_static_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_static_UI,
cached_config.module_visibility.quest_result_screen.large_monster_static_UI);
cached_config.module_visibility.in_training_area.large_monster_static_UI);
config_changed = config_changed or changed;
changed, cached_config.module_visibility.quest_result_screen.large_monster_highlighted_UI = imgui.checkbox(
changed, cached_config.module_visibility.in_training_area.large_monster_highlighted_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_highlighted_UI,
cached_config.module_visibility.quest_result_screen.large_monster_highlighted_UI);
cached_config.module_visibility.in_training_area.large_monster_highlighted_UI);
config_changed = config_changed or changed;
changed, cached_config.module_visibility.quest_result_screen.time_UI =
imgui.checkbox(language.current_language.customization_menu.time_UI,
cached_config.module_visibility.quest_result_screen.time_UI);
config_changed = config_changed or changed;
imgui.same_line();
changed, cached_config.module_visibility.quest_result_screen.damage_meter_UI = imgui.checkbox(
changed, cached_config.module_visibility.in_training_area.damage_meter_UI = imgui.checkbox(
language.current_language.customization_menu.damage_meter_UI,
cached_config.module_visibility.quest_result_screen.damage_meter_UI);
cached_config.module_visibility.in_training_area.damage_meter_UI);
config_changed = config_changed or changed;
changed, cached_config.module_visibility.during_quest.endemic_life_UI =
imgui.checkbox(language.current_language.customization_menu.endemic_life_UI,
cached_config.module_visibility.during_quest.endemic_life_UI);
changed, cached_config.module_visibility.in_training_area.endemic_life_UI = imgui.checkbox(
language.current_language.customization_menu.endemic_life_UI,
cached_config.module_visibility.in_training_area.endemic_life_UI);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.training_area) then
changed, cached_config.module_visibility.training_area.large_monster_dynamic_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_dynamic_UI,
cached_config.module_visibility.training_area.large_monster_dynamic_UI);
if imgui.tree_node(language.current_language.customization_menu.cutscene) then
changed = module_visibility_customization.draw(cached_config.module_visibility.cutscene);
config_changed = config_changed or changed;
imgui.same_line();
changed, cached_config.module_visibility.training_area.large_monster_static_UI = imgui.checkbox(
language.current_language.customization_menu.large_monster_static_UI,
cached_config.module_visibility.training_area.large_monster_static_UI);
config_changed = config_changed or changed;
changed, cached_config.module_visibility.training_area.damage_meter_UI =
imgui.checkbox(language.current_language.customization_menu.damage_meter_UI,
cached_config.module_visibility.training_area.damage_meter_UI);
config_changed = config_changed or changed;
changed, cached_config.module_visibility.during_quest.endemic_life_UI =
imgui.checkbox(language.current_language.customization_menu.endemic_life_UI,
cached_config.module_visibility.during_quest.endemic_life_UI);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.loading_quest) then
changed = module_visibility_customization.draw(cached_config.module_visibility.loading_quest);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.quest_start_animation) then
changed = module_visibility_customization.draw(cached_config.module_visibility.quest_start_animation);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.playing_quest) then
changed = module_visibility_customization.draw(cached_config.module_visibility.playing_quest);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.killcam) then
changed = module_visibility_customization.draw(cached_config.module_visibility.killcam);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.quest_end_timer) then
changed = module_visibility_customization.draw(cached_config.module_visibility.quest_end_timer);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.quest_end_animation) then
changed = module_visibility_customization.draw(cached_config.module_visibility.quest_end_animation);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.quest_end_screen) then
changed = module_visibility_customization.draw(cached_config.module_visibility.quest_end_screen);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.reward_screen) then
changed = module_visibility_customization.draw(cached_config.module_visibility.reward_screen);
config_changed = config_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.summary_screen) then
changed = module_visibility_customization.draw(cached_config.module_visibility.summary_screen);
config_changed = config_changed or changed;
imgui.tree_pop();
end
imgui.tree_pop();
end
@@ -2018,6 +2001,7 @@ function customization_menu.init_module()
body_parts_customization = require("MHR_Overlay.UI.Customizations.body_parts_customization");
ailments_customization = require("MHR_Overlay.UI.Customizations.ailments_customization");
ailment_buildups_customization = require("MHR_Overlay.UI.Customizations.ailment_buildups_customization");
module_visibility_customization = require("MHR_Overlay.UI.Customizations.module_visibility_customization");
customization_menu.init();
customization_menu.reload_font(false);

View File

@@ -79,6 +79,7 @@
"creature_name_label": "Creature Name Label",
"crown": "Crown",
"crown_thresholds": "Crown Thresholds",
"cutscene": "Cutscene",
"damage": "Damage",
"damage_bar": "Damage Bar",
"damage_bars_are_relative_to": "Damage Bars are relative to",
@@ -89,7 +90,6 @@
"dps": "DPS",
"dps_label": "DPS Label",
"dps_mode": "DPS Mode",
"during_quest": "During Quest",
"dynamic_positioning": "Dynamic Positioning",
"dynamically_positioned": "Dynamically Positioned",
"enable_for": "Enable for",
@@ -139,11 +139,14 @@
"hotkeys": "Hotkeys",
"hunter_rank": "Hunter Rank",
"hunter_rank_label": "Hunter Rank Label",
"in_lobby": "In Lobby",
"in_training_area": "In Training Area",
"include": "Include",
"inside": "Inside",
"installation_damage": "Installation Damage",
"italic": "Italic",
"join_time": "Join Time",
"killcam": "Killcam",
"kunai_damage": "Kunai Damage",
"language": "Language",
"large_monster_UI": "Large Monster UI",
@@ -152,6 +155,7 @@
"large_monster_static_UI": "Large Monster Static UI",
"large_monsters": "Large Monsters",
"last": "Last",
"loading_quest": "Loading Quest",
"loss_health": "Sever Health",
"loss_health_percentage": "Sever Health Percentage",
"lowest_health": "Lowest Health",
@@ -165,7 +169,7 @@
"mod_name": "MHR Overlay",
"mode": "Mode",
"modifiers": "Modifiers",
"module_visibility_on_different_screens": "Module Visibility on Different Screens",
"module_visibility_based_on_game_state": "Module Visibility based on Game State",
"modules": "Modules",
"monster_can_be_captured": "Monster can be captured",
"monster_damage": "Monster Damage",
@@ -195,11 +199,15 @@
"player_name_label": "Player Name Label",
"player_name_size_limit": "Player Name Size Limit",
"player_spacing": "Player Spacing",
"playing_quest": "Playing Quest",
"poison_damage": "Poison Damage",
"position": "Position",
"press_any_key": "Press any key...",
"prioritize_large_monsters": "Large Monsters on High Priority",
"quest_result_screen": "Quest Result Screen",
"quest_end_animation": "Quest End Animation",
"quest_end_screen": "Quest End Screen",
"quest_end_timer": "Quest End Timer",
"quest_start_animation": "Quest Start Animation",
"quest_time": "Quest Time",
"rage": "Rage",
"reframework_outdated": "Installed REFramework version is outdated. Please, update. Otherwise, MHR Overlay won't work correctly.",
@@ -207,6 +215,7 @@
"render_highlighted_monster": "Render Highlighted Monster",
"render_not_highlighted_monsters": "Render Not Highlighted Monsters",
"reversed_order": "Reversed Order",
"reward_screen": "Reward Screen",
"settings": "Settings",
"severe_filter": "Severe",
"shadow": "Shadow",
@@ -223,6 +232,7 @@
"statically_positioned": "Statically Positioned",
"status": "Status",
"style": "Style",
"summary_screen": "Summary Screen",
"text_label": "Text Label",
"thickness": "Thickness",
"time_UI": "Time UI",
@@ -245,7 +255,6 @@
"total_dps_label": "Total DPS Label",
"tracked_damage_types": "Tracked Damage Types",
"tracked_monster_types": "Tracked Monster Types",
"training_area": "Training Area",
"type": "Type",
"value_label": "Value Label",
"vertical": "Vertical",

View File

@@ -79,6 +79,7 @@
"creature_name_label": "환경생물 이름 정보",
"crown": "금관",
"crown_thresholds": "금관 판정값",
"cutscene": "Cutscene",
"damage": "대미지",
"damage_bar": "대미지 바",
"damage_bars_are_relative_to": "기준으로 대미지 바",
@@ -89,7 +90,6 @@
"dps": "DPS",
"dps_label": "DPS 정보",
"dps_mode": "DPS 모드",
"during_quest": "퀘스트 중",
"dynamic_positioning": "유동 위치",
"dynamically_positioned": "유동 위치 UI",
"enable_for": "표시 대상",
@@ -139,11 +139,14 @@
"hotkeys": "단축키",
"hunter_rank": "헌터 랭크",
"hunter_rank_label": "헌터 랭크 정보",
"in_lobby": "In Lobby",
"in_training_area": "In Training Area",
"include": "포함",
"inside": "내부",
"installation_damage": "설비 대미지",
"italic": "기울임",
"join_time": "참가 시간",
"killcam": "Killcam",
"kunai_damage": "쿠나이 대미지",
"language": "언어",
"large_monster_UI": "대형 몬스터 UI",
@@ -152,6 +155,7 @@
"large_monster_static_UI": "대형 몬스터 고정 UI",
"large_monsters": "대형 몬스터",
"last": "마지막",
"loading_quest": "Loading Quest",
"loss_health": "절단 수치",
"loss_health_percentage": "절단 수치 비율",
"lowest_health": "가장 체력이 낮은",
@@ -165,7 +169,7 @@
"mod_name": "MHR Overlay",
"mode": "모드",
"modifiers": "설정 배율",
"module_visibility_on_different_screens": "상황별 UI 표시",
"module_visibility_based_on_game_state": "Module Visibility based on Game State",
"modules": "UI",
"monster_can_be_captured": "몬스터 포획 가능",
"monster_damage": "몬스터 대미지",
@@ -195,11 +199,15 @@
"player_name_label": "헌터명 정보",
"player_name_size_limit": "헌터명 크기 제한",
"player_spacing": "플레이어 간격",
"playing_quest": "Playing Quest",
"poison_damage": "독 대미지",
"position": "위치",
"press_any_key": "설정할 키를 누르세요...",
"prioritize_large_monsters": "대형 몬스터를 우선적으로",
"quest_result_screen": "퀘스트 결과 화면",
"quest_end_animation": "Quest End Animation",
"quest_end_screen": "Quest End Screen",
"quest_end_timer": "Quest End Timer",
"quest_start_animation": "Quest Start Animation",
"quest_time": "퀘스트 시간",
"rage": "분노",
"reframework_outdated": "설치된 REFramework가 구버전입니다. 업데이트 하지 않으면 MHR Overlay가 제대로 동작하지 않을 수 있습니다.",
@@ -207,6 +215,7 @@
"render_highlighted_monster": "타겟이 된 몬스터 표시",
"render_not_highlighted_monsters": "타겟이 아닌 몬스터 표시",
"reversed_order": "역순",
"reward_screen": "Reward Screen",
"settings": "설정",
"severe_filter": "절단",
"shadow": "그림자",
@@ -223,6 +232,7 @@
"statically_positioned": "고정 위치 UI",
"status": "상태",
"style": "스타일",
"summary_screen": "Summary Screen",
"text_label": "텍스트 정보",
"thickness": "두께",
"time_UI": "시간 UI",
@@ -245,7 +255,6 @@
"total_dps_label": "총 DPS 정보",
"tracked_damage_types": "추적할 대미지 종류",
"tracked_monster_types": "추적할 몬스터 타입",
"training_area": "훈련장",
"type": "순으로",
"value_label": "값 정보",
"vertical": "세로",

View File

@@ -79,6 +79,7 @@
"creature_name_label": "Метка имени существа",
"crown": "Корона",
"crown_thresholds": "Лимиты корон",
"cutscene": "Катсцена",
"damage": "Урон",
"damage_bar": "Шкала урона",
"damage_bars_are_relative_to": "Шкалы урона расположены относительно к",
@@ -89,7 +90,6 @@
"dps": "Урон в секунду",
"dps_label": "Метка урона в секунду",
"dps_mode": "Режим урона в секунду",
"during_quest": "Во время квеста",
"dynamic_positioning": "Динамическое позиционирование",
"dynamically_positioned": "Рассположенный динамично",
"enable_for": "Показывать для",
@@ -139,11 +139,14 @@
"hotkeys": "Горячие клавиши",
"hunter_rank": "Ранг охотника",
"hunter_rank_label": "Метка ранга охотника",
"in_lobby": "В лобби",
"in_training_area": "В тренировочной зоне",
"include": "Элементы",
"inside": "Внутри",
"installation_damage": "Урон от установок",
"italic": "Курсив",
"join_time": "Время присоединения",
"killcam": "Камера смерти",
"kunai_damage": "Урон от кунаев",
"language": "Язык",
"large_monster_UI": "Интерфейс больший монстров",
@@ -152,6 +155,7 @@
"large_monster_static_UI": "Статический интерфейс больших монстров",
"large_monsters": "Большие монстры",
"last": "Последний",
"loading_quest": "Загрузка квеста",
"loss_health": "Отсечение части",
"loss_health_percentage": "Отсечение части в процентах",
"lowest_health": "Наименьшее здоровье",
@@ -165,7 +169,7 @@
"mod_name": "MHR Overlay",
"mode": "Режим",
"modifiers": "Модификаторы",
"module_visibility_on_different_screens": "Видимость модулей на разных экранах",
"module_visibility_based_on_game_state": "Видимость модулей в зависимости от состояния игры",
"modules": "Модули",
"monster_can_be_captured": "Монстр может быть схвачен",
"monster_damage": "Урон от монстров",
@@ -195,11 +199,15 @@
"player_name_label": "Метка имени игрока",
"player_name_size_limit": "Ограничить ширину имени игрока",
"player_spacing": "Расстояние между игроками",
"playing_quest": "Во время квеста",
"poison_damage": "Урон от отравления",
"position": "Расположение",
"press_any_key": "Нажмите любую клавишу...",
"prioritize_large_monsters": "Большие монстры в приоритете",
"quest_result_screen": "Экран результатов квеста",
"quest_end_animation": "Анимация конца квеста",
"quest_end_screen": "Экран конца квеста",
"quest_end_timer": "Таймер конца квеста",
"quest_start_animation": "Анимация начала квеста",
"quest_time": "Время квеста",
"rage": "Ярость",
"reframework_outdated": "Установленная версия REFramework устарела. Пожалуйста, обновитесь, иначе MHR Overlay будет работать некорректно.",
@@ -207,6 +215,7 @@
"render_highlighted_monster": "Показывать помеченного монстра",
"render_not_highlighted_monsters": "Показывать непомеченных монстров",
"reversed_order": "Обратный порядок",
"reward_screen": "Экран наград",
"settings": "Настройки",
"severe_filter": "Отсечение",
"shadow": "Тень",
@@ -223,8 +232,9 @@
"statically_positioned": "Рассположенный статично",
"status": "Статус",
"style": "Стиль",
"summary_screen": "Экран Результатов",
"text_label": "Текстовая метка",
"thickness": "Thickness",
"thickness": "Толщина",
"time_UI": "Интерфейс времени",
"time_label": "Метка времени",
"time_limit": "Ограничение по времени",
@@ -245,7 +255,6 @@
"total_dps_label": "Метка общего урона в секунду",
"tracked_damage_types": "Отслеживаемые типы урона",
"tracked_monster_types": "Отслеживаемые типы монстров",
"training_area": "Тренировочная зона",
"type": "Тип",
"value_label": "Метка значений",
"vertical": "Вертикально",

View File

@@ -79,6 +79,7 @@
"creature_name_label": "生物名标签",
"crown": "皇冠",
"crown_thresholds": "皇冠阈值",
"cutscene": "Cutscene",
"damage": "伤害",
"damage_bar": "伤害条",
"damage_bars_are_relative_to": "伤害条基于",
@@ -89,7 +90,6 @@
"dps": "DPS",
"dps_label": "DPS标签",
"dps_mode": "DPS模式",
"during_quest": "任务中",
"dynamic_positioning": "动态位置",
"dynamically_positioned": "动态位置",
"enable_for": "开启",
@@ -139,11 +139,14 @@
"hotkeys": "热键",
"hunter_rank": "猎人等級",
"hunter_rank_label": "猎人等级标签",
"in_lobby": "In Lobby",
"in_training_area": "In Training Area",
"include": "包含",
"inside": "Inside",
"installation_damage": "设备伤害",
"italic": "斜体",
"join_time": "加入时间",
"killcam": "Killcam",
"kunai_damage": "苦无伤害",
"language": "语言",
"large_monster_UI": "大型怪物UI",
@@ -152,6 +155,7 @@
"large_monster_static_UI": "大型怪物固定UI",
"large_monsters": "大型怪物群",
"last": "最后",
"loading_quest": "Loading Quest",
"loss_health": "Sever Health",
"loss_health_percentage": "Sever Health Percentage",
"lowest_health": "Lowest Health",
@@ -165,7 +169,7 @@
"mod_name": "MHR Overlay",
"mode": "Mode",
"modifiers": "更改项",
"module_visibility_on_different_screens": "不同场景中使用的模块",
"module_visibility_based_on_game_state": "Module Visibility based on Game State",
"modules": "模块",
"monster_can_be_captured": "可捕获的怪物",
"monster_damage": "怪物伤害",
@@ -195,11 +199,15 @@
"player_name_label": "玩家名标签",
"player_name_size_limit": "Player Name Size Limit",
"player_spacing": "玩家间距",
"playing_quest": "Playing Quest",
"poison_damage": "中毒伤害",
"position": "位置",
"press_any_key": "按任意键...",
"prioritize_large_monsters": "大型怪物优先",
"quest_result_screen": "任务结果页",
"quest_end_animation": "Quest End Animation",
"quest_end_screen": "Quest End Screen",
"quest_end_timer": "Quest End Timer",
"quest_start_animation": "Quest Start Animation",
"quest_time": "任务时间",
"rage": "愤怒",
"reframework_outdated": "Installed REFramework version is outdated. Please, update. Otherwise, MHR Overlay won't work correctly.",
@@ -207,6 +215,7 @@
"render_highlighted_monster": "渲染高亮怪物",
"render_not_highlighted_monsters": "渲染非高亮怪物",
"reversed_order": "逆向排序",
"reward_screen": "Reward Screen",
"settings": "设定",
"severe_filter": "Severe",
"shadow": "阴影",
@@ -223,6 +232,7 @@
"statically_positioned": "固定位置",
"status": "状态",
"style": "Style",
"summary_screen": "Summary Screen",
"text_label": "文字标签",
"thickness": "Thickness",
"time_UI": "时间UI",
@@ -245,7 +255,6 @@
"total_dps_label": "总DPS标签",
"tracked_damage_types": "跟踪的伤害类型",
"tracked_monster_types": "跟踪的怪物类型",
"training_area": "训练场",
"type": "类型",
"value_label": "数字",
"vertical": "垂直",

View File

@@ -79,6 +79,7 @@
"creature_name_label": "環境生物名稱",
"crown": "皇冠",
"crown_thresholds": "皇冠的大小判定範圍",
"cutscene": "Cutscene",
"damage": "傷害",
"damage_bar": "傷害條",
"damage_bars_are_relative_to": "傷害條基於",
@@ -89,7 +90,6 @@
"dps": "DPS",
"dps_label": "DPS文字",
"dps_mode": "DPS模式",
"during_quest": "任務中",
"dynamic_positioning": "浮動的資訊位置",
"dynamically_positioned": "浮動的魔物資訊",
"enable_for": "啟用對象",
@@ -139,11 +139,14 @@
"hotkeys": "快捷鍵",
"hunter_rank": "獵人等級",
"hunter_rank_label": "獵人等級",
"in_lobby": "In Lobby",
"in_training_area": "In Training Area",
"include": "細部資訊調整",
"inside": "內部",
"installation_damage": "設備傷害",
"italic": "斜體",
"join_time": "加入時間",
"killcam": "Killcam",
"kunai_damage": "苦無傷害",
"language": "語言",
"large_monster_UI": "大型魔物 UI",
@@ -152,6 +155,7 @@
"large_monster_static_UI": "大型魔物固定 UI",
"large_monsters": "大型魔物群",
"last": "最後",
"loading_quest": "Loading Quest",
"loss_health": "Sever Health",
"loss_health_percentage": "Sever Health Percentage",
"lowest_health": "最低血量",
@@ -165,7 +169,7 @@
"mod_name": "MHR Overlay",
"mode": "Mode",
"modifiers": "更改項",
"module_visibility_on_different_screens": "不同場景中使用的模組",
"module_visibility_based_on_game_state": "Module Visibility based on Game State",
"modules": "模組",
"monster_can_be_captured": "可捕獲的魔物",
"monster_damage": "魔物傷害",
@@ -195,11 +199,15 @@
"player_name_label": "玩家名稱",
"player_name_size_limit": "玩家名稱大小限制",
"player_spacing": "玩家間格",
"playing_quest": "Playing Quest",
"poison_damage": "毒傷害",
"position": "位置",
"press_any_key": "輸入任意鍵...",
"prioritize_large_monsters": "大型魔物優先",
"quest_result_screen": "任務結算頁",
"quest_end_animation": "Quest End Animation",
"quest_end_screen": "Quest End Screen",
"quest_end_timer": "Quest End Timer",
"quest_start_animation": "Quest Start Animation",
"quest_time": "任務時間",
"rage": "憤怒度",
"reframework_outdated": "已安裝的 REFramework 版本已過期. 麻煩請更新版本, 否則 MHR Overlay 無法正確作用.",
@@ -207,6 +215,7 @@
"render_highlighted_monster": "渲染目標魔物",
"render_not_highlighted_monsters": "渲染非目標魔物",
"reversed_order": "反向排序",
"reward_screen": "Reward Screen",
"settings": "設定",
"severe_filter": "Severe",
"shadow": "陰影",
@@ -223,6 +232,7 @@
"statically_positioned": "固定的魔物資訊",
"status": "狀態",
"style": "樣式",
"summary_screen": "Summary Screen",
"text_label": "文字",
"thickness": "粗細",
"time_UI": "時間 UI",
@@ -245,7 +255,6 @@
"total_dps_label": "全體DPS文字",
"tracked_damage_types": "追蹤的傷害類型",
"tracked_monster_types": "追蹤的魔物類型",
"training_area": "訓練場",
"type": "類型",
"value_label": "數字",
"vertical": "垂直",