mirror of
https://github.com/GreenComfyTea/MHR-Overlay.git
synced 2026-01-26 05:18:06 -08:00
Compare commits
2 Commits
5e43efb907
...
a0e6974ad7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0e6974ad7 | ||
|
|
b36b1080df |
@@ -69,7 +69,6 @@ time.init_module();
|
|||||||
|
|
||||||
language.init_module();
|
language.init_module();
|
||||||
config.init_module();
|
config.init_module();
|
||||||
quest_status.init_module();
|
|
||||||
part_names.init_module();
|
part_names.init_module();
|
||||||
|
|
||||||
damage_UI_entity.init_module();
|
damage_UI_entity.init_module();
|
||||||
@@ -82,6 +81,7 @@ body_part_UI_entity.init_module();
|
|||||||
|
|
||||||
damage_hook.init_module();
|
damage_hook.init_module();
|
||||||
player.init_module();
|
player.init_module();
|
||||||
|
quest_status.init_module();
|
||||||
|
|
||||||
env_creature_hook.init_module();
|
env_creature_hook.init_module();
|
||||||
env_creature.init_module();
|
env_creature.init_module();
|
||||||
@@ -179,24 +179,12 @@ local function main_loop()
|
|||||||
screen.update_window_size();
|
screen.update_window_size();
|
||||||
player.update_myself_position();
|
player.update_myself_position();
|
||||||
quest_status.update_is_online();
|
quest_status.update_is_online();
|
||||||
quest_status.update_is_quest_host();
|
--quest_status.update_is_quest_host();
|
||||||
time.tick();
|
time.tick();
|
||||||
|
|
||||||
--xy = xy .. quest_status.get_flow_state(quest_status.flow_state, true);
|
|
||||||
|
|
||||||
player.update_player_list(quest_status.index >= 2);
|
player.update_player_list(quest_status.index >= 2);
|
||||||
|
|
||||||
if quest_status.flow_state == quest_status.flow_states.IN_LOBBY then
|
if quest_status.flow_state == quest_status.flow_states.IN_TRAINING_AREA then
|
||||||
|
|
||||||
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 = "[In Lobby] Endemic life drawing function threw an exception";
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
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 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 module_visibility_config = config.current_config.global_settings.module_visibility.in_training_area;
|
||||||
@@ -279,10 +267,18 @@ end);
|
|||||||
if d2d ~= nil then
|
if d2d ~= nil then
|
||||||
d2d.register(function()
|
d2d.register(function()
|
||||||
drawing.init_font();
|
drawing.init_font();
|
||||||
end, main_loop);
|
end, function()
|
||||||
else
|
if config.current_config.global_settings.renderer.use_d2d_if_available then
|
||||||
re.on_frame(main_loop);
|
main_loop();
|
||||||
|
end
|
||||||
|
end);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
re.on_frame(function()
|
||||||
|
if not config.current_config.global_settings.renderer.use_d2d_if_available then
|
||||||
|
main_loop();
|
||||||
|
end
|
||||||
|
end);
|
||||||
-- #endregion
|
-- #endregion
|
||||||
----------------------------D2D------------------------------
|
----------------------------D2D------------------------------
|
||||||
|
|
||||||
@@ -290,48 +286,27 @@ if debug.enabled then
|
|||||||
if d2d ~= nil then
|
if d2d ~= nil then
|
||||||
d2d.register(function()
|
d2d.register(function()
|
||||||
end, function()
|
end, function()
|
||||||
local is_ready_quest = singletons.quest_manager:call("isReadyQuest");
|
if not config.current_config.global_settings.renderer.use_d2d_if_available then
|
||||||
local is_ready_play_quest = singletons.quest_manager:call("isReadyPlayQuest");
|
return;
|
||||||
local is_play_quest = singletons.quest_manager:call("isPlayQuest");
|
end
|
||||||
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
|
if xy ~= "" then
|
||||||
d2d.text(drawing.font, "xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
|
d2d.text(drawing.font, "xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
|
||||||
d2d.text(drawing.font, "xy:\n" .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
d2d.text(drawing.font, "xy:\n" .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
||||||
end
|
end
|
||||||
end);
|
end);
|
||||||
else
|
|
||||||
re.on_frame(function()
|
|
||||||
if xy ~= "" then
|
|
||||||
draw.text("xy:\n" .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
|
||||||
draw.text("xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
|
|
||||||
end
|
|
||||||
end);
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
re.on_frame(function()
|
||||||
|
if config.current_config.global_settings.renderer.use_d2d_if_available and d2d ~= nil then
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
if xy ~= "" then
|
||||||
|
draw.text("xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
|
||||||
|
draw.text("xy:\n" .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
||||||
|
end
|
||||||
|
end);
|
||||||
end
|
end
|
||||||
|
|
||||||
if imgui.begin_table == nil then
|
if imgui.begin_table == nil then
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ local small_monster;
|
|||||||
local large_monster;
|
local large_monster;
|
||||||
local ailments;
|
local ailments;
|
||||||
local table_helpers;
|
local table_helpers;
|
||||||
|
local singletons;
|
||||||
|
|
||||||
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
|
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
|
||||||
local enemy_character_base_after_calc_damage_damage_side_method = enemy_character_base_type_def:get_method("afterCalcDamage_DamageSide");
|
local enemy_character_base_after_calc_damage_damage_side_method = enemy_character_base_type_def:get_method("afterCalcDamage_DamageSide");
|
||||||
@@ -201,6 +202,8 @@ function damage_hook.cart(dead_player_id, flag_cat_skill_insurance)
|
|||||||
end
|
end
|
||||||
|
|
||||||
player_.cart_count = player_.cart_count + 1;
|
player_.cart_count = player_.cart_count + 1;
|
||||||
|
|
||||||
|
quest_status.get_cart_count();
|
||||||
end
|
end
|
||||||
|
|
||||||
--function damage_hook.on_get_finish_shoot_wall_hit_damage_rate(enemy, rate, is_part_damage)
|
--function damage_hook.on_get_finish_shoot_wall_hit_damage_rate(enemy, rate, is_part_damage)
|
||||||
@@ -218,6 +221,7 @@ function damage_hook.init_module()
|
|||||||
large_monster = require("MHR_Overlay.Monsters.large_monster");
|
large_monster = require("MHR_Overlay.Monsters.large_monster");
|
||||||
ailments = require("MHR_Overlay.Monsters.ailments");
|
ailments = require("MHR_Overlay.Monsters.ailments");
|
||||||
table_helpers = require("MHR_Overlay.Misc.table_helpers");
|
table_helpers = require("MHR_Overlay.Misc.table_helpers");
|
||||||
|
singletons = require("MHR_Overlay.Game_Handler.singletons");
|
||||||
|
|
||||||
--sdk.hook(get_finish_shoot_wall_hit_damage_rate_method, function(args)
|
--sdk.hook(get_finish_shoot_wall_hit_damage_rate_method, function(args)
|
||||||
-- pcall(damage_hook.on_get_finish_shoot_wall_hit_damage_rate, sdk.to_managed_object(args[2]), sdk.to_float(args[3]), sdk.to_int64(args--[4]));
|
-- pcall(damage_hook.on_get_finish_shoot_wall_hit_damage_rate, sdk.to_managed_object(args[2]), sdk.to_float(args[3]), sdk.to_int64(args--[4]));
|
||||||
|
|||||||
@@ -511,7 +511,8 @@ function player.init_total_UI(_player)
|
|||||||
_player.damage_UI = {
|
_player.damage_UI = {
|
||||||
total_damage_label = table_helpers.deep_copy(cached_config.total_damage_label),
|
total_damage_label = table_helpers.deep_copy(cached_config.total_damage_label),
|
||||||
total_damage_value_label = table_helpers.deep_copy(cached_config.total_damage_value_label),
|
total_damage_value_label = table_helpers.deep_copy(cached_config.total_damage_value_label),
|
||||||
total_dps_label = table_helpers.deep_copy(cached_config.total_dps_label)
|
total_dps_label = table_helpers.deep_copy(cached_config.total_dps_label),
|
||||||
|
total_cart_count_label = table_helpers.deep_copy(cached_config.total_cart_count_label),
|
||||||
};
|
};
|
||||||
|
|
||||||
_player.damage_UI.total_damage_label.offset.x = _player.damage_UI.total_damage_label.offset.x * global_scale_modifier;
|
_player.damage_UI.total_damage_label.offset.x = _player.damage_UI.total_damage_label.offset.x * global_scale_modifier;
|
||||||
@@ -524,6 +525,9 @@ function player.init_total_UI(_player)
|
|||||||
|
|
||||||
_player.damage_UI.total_dps_label.offset.x = _player.damage_UI.total_dps_label.offset.x * global_scale_modifier;
|
_player.damage_UI.total_dps_label.offset.x = _player.damage_UI.total_dps_label.offset.x * global_scale_modifier;
|
||||||
_player.damage_UI.total_dps_label.offset.y = _player.damage_UI.total_dps_label.offset.y * global_scale_modifier;
|
_player.damage_UI.total_dps_label.offset.y = _player.damage_UI.total_dps_label.offset.y * global_scale_modifier;
|
||||||
|
|
||||||
|
_player.damage_UI.total_cart_count_label.offset.x = _player.damage_UI.total_cart_count_label.offset.x * global_scale_modifier;
|
||||||
|
_player.damage_UI.total_cart_count_label.offset.y = _player.damage_UI.total_cart_count_label.offset.y * global_scale_modifier;
|
||||||
end
|
end
|
||||||
|
|
||||||
function player.draw(_player, position_on_screen, opacity_scale, top_damage, top_dps)
|
function player.draw(_player, position_on_screen, opacity_scale, top_damage, top_dps)
|
||||||
@@ -531,11 +535,10 @@ function player.draw(_player, position_on_screen, opacity_scale, top_damage, top
|
|||||||
end
|
end
|
||||||
|
|
||||||
function player.draw_total(position_on_screen, opacity_scale)
|
function player.draw_total(position_on_screen, opacity_scale)
|
||||||
drawing.draw_label(player.total.damage_UI.total_damage_label, position_on_screen, opacity_scale,
|
drawing.draw_label(player.total.damage_UI.total_damage_label, position_on_screen, opacity_scale, language.current_language.UI.total_damage);
|
||||||
language.current_language.UI.total_damage);
|
drawing.draw_label(player.total.damage_UI.total_damage_value_label, position_on_screen, opacity_scale, player.total.display.total_damage);
|
||||||
drawing.draw_label(player.total.damage_UI.total_damage_value_label, position_on_screen, opacity_scale,
|
|
||||||
player.total.display.total_damage);
|
|
||||||
drawing.draw_label(player.total.damage_UI.total_dps_label, position_on_screen, opacity_scale, player.total.dps);
|
drawing.draw_label(player.total.damage_UI.total_dps_label, position_on_screen, opacity_scale, player.total.dps);
|
||||||
|
drawing.draw_label(player.total.damage_UI.total_cart_count_label, position_on_screen, opacity_scale, quest_status.cart_count, quest_status.max_cart_count);
|
||||||
end
|
end
|
||||||
|
|
||||||
function player.init_module()
|
function player.init_module()
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ function env_creature.update(REcreature, creature)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function env_creature.draw(creature, position_on_screen, opacity_scale)
|
function env_creature.draw(creature, position_on_screen, opacity_scale)
|
||||||
if d2d ~= nil then
|
if d2d ~= nil and config.current_config.global_settings.renderer.use_d2d_if_available then
|
||||||
local text_width, text_height = drawing.font:measure(creature.name);
|
local text_width, text_height = drawing.font:measure(creature.name);
|
||||||
position_on_screen.x = position_on_screen.x - text_width / 2;
|
position_on_screen.x = position_on_screen.x - text_width / 2;
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -36,7 +36,10 @@ quest_status.flow_state = quest_status.flow_states.NONE;
|
|||||||
|
|
||||||
quest_status.index = 0;
|
quest_status.index = 0;
|
||||||
quest_status.is_online = false;
|
quest_status.is_online = false;
|
||||||
quest_status.is_quest_host = false;
|
--quest_status.is_quest_host = false;
|
||||||
|
|
||||||
|
quest_status.cart_count = 0;
|
||||||
|
quest_status.max_cart_count = 3;
|
||||||
|
|
||||||
local quest_manager_type_def = sdk.find_type_definition("snow.QuestManager");
|
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 on_changed_game_status_method = quest_manager_type_def:get_method("onChangedGameStatus");
|
||||||
@@ -46,6 +49,9 @@ local set_quest_clear_sub_method = quest_manager_type_def:get_method("setQuestCl
|
|||||||
local set_quest_clear_sub_hyakurui_method = quest_manager_type_def:get_method("setQuestClearSubHyakuryu");
|
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_fail_method = quest_manager_type_def:get_method("setQuestFail");
|
||||||
|
|
||||||
|
local get_death_num_method = quest_manager_type_def:get_method("getDeathNum");
|
||||||
|
local get_quest_life_method = quest_manager_type_def:get_method("getQuestLife");
|
||||||
|
|
||||||
local game_manager_type_def = sdk.find_type_definition("snow.SnowGameManager");
|
local game_manager_type_def = sdk.find_type_definition("snow.SnowGameManager");
|
||||||
local get_status_method = game_manager_type_def:get_method("getStatus");
|
local get_status_method = game_manager_type_def:get_method("getStatus");
|
||||||
|
|
||||||
@@ -77,7 +83,7 @@ local unique_event_manager_type_def = sdk.find_type_definition("snow.eventcut.Un
|
|||||||
local play_event_common_method = unique_event_manager_type_def:get_method("playEventCommon");
|
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");
|
local event_manager_dispose_method = unique_event_manager_type_def:get_method("dispose");
|
||||||
|
|
||||||
function quest_status.get_flow_state(flow_state, new_line)
|
function quest_status.get_flow_state_name(flow_state, new_line)
|
||||||
for key, value in pairs(quest_status.flow_states) do
|
for key, value in pairs(quest_status.flow_states) do
|
||||||
if value == flow_state then
|
if value == flow_state then
|
||||||
if new_line then
|
if new_line then
|
||||||
@@ -89,6 +95,43 @@ function quest_status.get_flow_state(flow_state, new_line)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function quest_status.set_flow_state(new_flow_state)
|
||||||
|
quest_status.previous_flow_state = quest_status.flow_state;
|
||||||
|
quest_status.flow_state = new_flow_state;
|
||||||
|
|
||||||
|
if quest_status.flow_state >= quest_status.flow_states.KILLCAM then
|
||||||
|
damage_meter_UI.freeze_displayed_players = true;
|
||||||
|
quest_status.is_quest_end = true;
|
||||||
|
else
|
||||||
|
damage_meter_UI.freeze_displayed_players = false;
|
||||||
|
quest_status.is_quest_end = false;
|
||||||
|
end
|
||||||
|
|
||||||
|
if quest_status.flow_state == quest_status.flow_states.IN_LOBBY or quest_status.flow_state == quest_status.flow_states.IN_TRAINING_AREA then
|
||||||
|
player.init();
|
||||||
|
small_monster.init_list();
|
||||||
|
large_monster.init_list();
|
||||||
|
env_creature.init_list();
|
||||||
|
elseif quest_status.flow_state >= quest_status.flow_states.LOADING_QUEST then
|
||||||
|
quest_status.get_cart_count();
|
||||||
|
quest_status.get_max_cart_count();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function quest_status.get_cart_count()
|
||||||
|
local death_num = get_death_num_method:call(singletons.quest_manager);
|
||||||
|
if death_num ~= nil then
|
||||||
|
quest_status.cart_count = death_num;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function quest_status.get_max_cart_count()
|
||||||
|
local quest_life = get_quest_life_method:call(singletons.quest_manager);
|
||||||
|
if quest_life ~= nil then
|
||||||
|
quest_status.max_cart_count = quest_life;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--type 2 = quest start
|
--type 2 = quest start
|
||||||
--type 3 = monster killcam
|
--type 3 = monster killcam
|
||||||
--type 5 = end screen
|
--type 5 = end screen
|
||||||
@@ -108,38 +151,31 @@ function quest_status.on_demo_request_activation(request_data_base)
|
|||||||
|
|
||||||
-- QUEST_START_ANIMATION
|
-- QUEST_START_ANIMATION
|
||||||
if request_data_type == 2 then
|
if request_data_type == 2 then
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.QUEST_START_ANIMATION);
|
||||||
quest_status.flow_state = quest_status.flow_states.QUEST_START_ANIMATION;
|
|
||||||
|
|
||||||
-- KILLCAM
|
-- KILLCAM
|
||||||
elseif request_data_type == 3 then
|
elseif request_data_type == 3 then
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.KILLCAM);
|
||||||
quest_status.flow_state = quest_status.flow_states.KILLCAM;
|
|
||||||
|
|
||||||
-- QUEST_END_ANIMATION
|
-- QUEST_END_ANIMATION
|
||||||
elseif request_data_type == 5 or request_data_type == 6 or request_data_type == 7 then
|
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.set_flow_state(quest_status.flow_states.QUEST_END_ANIMATION);
|
||||||
quest_status.flow_state = quest_status.flow_states.QUEST_END_ANIMATION;
|
|
||||||
|
|
||||||
-- PLAYER_DEATH_ANIMATION
|
-- PLAYER_DEATH_ANIMATION
|
||||||
elseif request_data_type == 8 then
|
elseif request_data_type == 8 then
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.PLAYER_DEATH_ANIMATION);
|
||||||
quest_status.flow_state = quest_status.flow_states.PLAYER_DEATH_ANIMATION;
|
|
||||||
|
|
||||||
-- PLAYER_CART_ANIMATION
|
-- PLAYER_CART_ANIMATION
|
||||||
elseif request_data_type == 9 then
|
elseif request_data_type == 9 then
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.PLAYER_CART_ANIMATION);
|
||||||
quest_status.flow_state = quest_status.flow_states.PLAYER_CART_ANIMATION;
|
|
||||||
|
|
||||||
-- FAST_TRAVEL_ANIMATION
|
-- FAST_TRAVEL_ANIMATION
|
||||||
elseif request_data_type == 10 then
|
elseif request_data_type == 10 then
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.FAST_TRAVEL_ANIMATION);
|
||||||
quest_status.flow_state = quest_status.flow_states.FAST_TRAVEL_ANIMATION;
|
|
||||||
|
|
||||||
-- WYVERN_RIDING_START_ANIMATION
|
-- WYVERN_RIDING_START_ANIMATION
|
||||||
elseif request_data_type == 11 then
|
elseif request_data_type == 11 then
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.WYVERN_RIDING_START_ANIMATION);
|
||||||
quest_status.flow_state = quest_status.flow_states.WYVERN_RIDING_START_ANIMATION;
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -150,62 +186,50 @@ function quest_status.on_demo_end()
|
|||||||
or quest_status.flow_state == quest_status.flow_states.FAST_TRAVEL_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
|
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.set_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
|
elseif quest_status.flow_state == quest_status.flow_states.QUEST_START_ANIMATION then
|
||||||
|
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.PLAYING_QUEST);
|
||||||
quest_status.flow_state = quest_status.flow_states.PLAYING_QUEST;
|
|
||||||
|
|
||||||
elseif quest_status.flow_state == quest_status.flow_states.KILLCAM then
|
elseif quest_status.flow_state == quest_status.flow_states.KILLCAM then
|
||||||
|
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.QUEST_END_TIMER);
|
||||||
quest_status.flow_state = quest_status.flow_states.QUEST_END_TIMER;
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function quest_status.on_set_quest_clear()
|
function quest_status.on_set_quest_clear()
|
||||||
if quest_status.index == 2 and quest_status.flow_state ~= quest_status.flow_states.KILLCAM then
|
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.set_flow_state(quest_status.flow_states.QUEST_END_TIMER);
|
||||||
quest_status.flow_state = quest_status.flow_states.QUEST_END_TIMER;
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function quest_status.on_quest_end_set_state()
|
function quest_status.on_quest_end_set_state()
|
||||||
if quest_status.index == 2 then
|
if quest_status.index == 2 then
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.QUEST_END_SCREEN);
|
||||||
quest_status.flow_state = quest_status.flow_states.QUEST_END_SCREEN;
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function quest_status.on_gui_result_reward_do_open()
|
function quest_status.on_gui_result_reward_do_open()
|
||||||
if quest_status.index == 3 then
|
if quest_status.index == 3 then
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.REWARD_SCREEN);
|
||||||
quest_status.flow_state = quest_status.flow_states.REWARD_SCREEN;
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function quest_status.on_gui_result_pay_off_do_open()
|
function quest_status.on_gui_result_pay_off_do_open()
|
||||||
if quest_status.index == 3 then
|
if quest_status.index == 3 then
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.SUMMARY_SCREEN);
|
||||||
quest_status.flow_state = quest_status.flow_states.SUMMARY_SCREEN;
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function quest_status.on_play_event_common()
|
function quest_status.on_play_event_common()
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.CUTSCENE);
|
||||||
quest_status.flow_state = quest_status.flow_states.CUTSCENE;
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function quest_status.on_event_manager_dispose()
|
function quest_status.on_event_manager_dispose()
|
||||||
if quest_status.flow_state == quest_status.flow_states.CUTSCENE then
|
if quest_status.flow_state == quest_status.flow_states.CUTSCENE then
|
||||||
|
quest_status.set_flow_state(quest_status.previous_flow_state);
|
||||||
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
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -215,8 +239,7 @@ function quest_status.on_set_quest_fail()
|
|||||||
quest_status.flow_state == quest_status.flow_states.FAST_TRAVEL_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.flow_state == quest_status.flow_states.WYVERN_RIDING_START_ANIMATION then
|
||||||
|
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
quest_status.set_flow_state(quest_status.flow_states.QUEST_END_ANIMATION);
|
||||||
quest_status.flow_state = quest_status.flow_states.QUEST_END_ANIMATION;
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -225,37 +248,24 @@ function quest_status.on_village_fast_travel(area)
|
|||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
quest_status.previous_flow_state = quest_status.flow_state;
|
|
||||||
|
|
||||||
if area == 7 then
|
if area == 7 then
|
||||||
quest_status.flow_state = quest_status.flow_states.IN_TRAINING_AREA;
|
quest_status.set_flow_state(quest_status.flow_states.IN_TRAINING_AREA);
|
||||||
else
|
else
|
||||||
quest_status.flow_state = quest_status.flow_states.IN_LOBBY;
|
quest_status.set_flow_state(quest_status.flow_states.IN_LOBBY);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function quest_status.on_changed_game_status(new_quest_status)
|
function quest_status.on_changed_game_status(new_quest_status)
|
||||||
quest_status.index = new_quest_status;
|
quest_status.index = new_quest_status;
|
||||||
|
|
||||||
if quest_status.index < 3 then
|
|
||||||
player.init();
|
|
||||||
small_monster.init_list();
|
|
||||||
large_monster.init_list();
|
|
||||||
env_creature.init_list();
|
|
||||||
|
|
||||||
quest_status.is_quest_clear = false;
|
|
||||||
damage_meter_UI.freeze_displayed_players = false;
|
|
||||||
damage_meter_UI.last_displayed_players = {};
|
|
||||||
end
|
|
||||||
|
|
||||||
if quest_status.index == 0 then
|
if quest_status.index == 0 then
|
||||||
quest_status.flow_state = quest_status.flow_states.NONE;
|
quest_status.set_flow_state(quest_status.flow_states.NONE);
|
||||||
elseif quest_status.index == 1 then
|
elseif quest_status.index == 1 then
|
||||||
quest_status.flow_state = quest_status.flow_states.IN_LOBBY;
|
quest_status.set_flow_state(quest_status.flow_states.IN_LOBBY);
|
||||||
elseif quest_status.index == 2 then
|
elseif quest_status.index == 2 then
|
||||||
quest_status.flow_state = quest_status.flow_states.LOADING_QUEST;
|
quest_status.set_flow_state(quest_status.flow_states.LOADING_QUEST);
|
||||||
elseif quest_status.index == 3 then
|
elseif quest_status.index == 3 then
|
||||||
quest_status.flow_state = quest_status.flow_states.SUMMARY_SCREEN;
|
quest_status.set_flow_state(quest_status.flow_states.SUMMARY_SCREEN);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -273,16 +283,15 @@ function quest_status.init()
|
|||||||
quest_status.index = new_quest_status;
|
quest_status.index = new_quest_status;
|
||||||
|
|
||||||
if quest_status.index == 0 then
|
if quest_status.index == 0 then
|
||||||
quest_status.flow_state = quest_status.flow_states.NONE;
|
quest_status.set_flow_state(quest_status.flow_states.NONE);
|
||||||
elseif quest_status.index == 1 then
|
elseif quest_status.index == 1 then
|
||||||
quest_status.flow_state = quest_status.flow_states.IN_LOBBY;
|
quest_status.set_flow_state(quest_status.flow_states.IN_LOBBY);
|
||||||
elseif quest_status.index == 2 then
|
elseif quest_status.index == 2 then
|
||||||
quest_status.flow_state = quest_status.flow_states.PLAYING_QUEST;
|
quest_status.set_flow_state(quest_status.flow_states.PLAYING_QUEST);
|
||||||
elseif quest_status.index == 3 then
|
elseif quest_status.index == 3 then
|
||||||
quest_status.flow_state = quest_status.flow_states.SUMMARY_SCREEN;
|
quest_status.set_flow_state(quest_status.flow_states.SUMMARY_SCREEN);
|
||||||
end
|
end
|
||||||
|
|
||||||
quest_status.update_is_online();
|
|
||||||
quest_status.update_is_training_area();
|
quest_status.update_is_training_area();
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -296,14 +305,10 @@ function quest_status.update_is_online()
|
|||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
if quest_status.is_online and not is_quest_online then
|
|
||||||
damage_meter_UI.freeze_displayed_players = true;
|
|
||||||
end
|
|
||||||
|
|
||||||
quest_status.is_online = is_quest_online;
|
quest_status.is_online = is_quest_online;
|
||||||
end
|
end
|
||||||
|
|
||||||
function quest_status.update_is_quest_host()
|
--[[function quest_status.update_is_quest_host()
|
||||||
if singletons.lobby_manager == nil then
|
if singletons.lobby_manager == nil then
|
||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
@@ -314,7 +319,7 @@ function quest_status.update_is_quest_host()
|
|||||||
end
|
end
|
||||||
|
|
||||||
quest_status.is_quest_host = is_quest_host;
|
quest_status.is_quest_host = is_quest_host;
|
||||||
end
|
end--]]
|
||||||
|
|
||||||
function quest_status.update_is_training_area()
|
function quest_status.update_is_training_area()
|
||||||
if singletons.village_area_manager == nil then
|
if singletons.village_area_manager == nil then
|
||||||
@@ -328,7 +333,7 @@ function quest_status.update_is_training_area()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if _is_training_area then
|
if _is_training_area then
|
||||||
quest_status.flow_state = quest_status.flow_states.IN_TRAINING_AREA;
|
quest_status.set_flow_state(quest_status.flow_states.IN_TRAINING_AREA);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ function screen.update_window_size()
|
|||||||
local width;
|
local width;
|
||||||
local height;
|
local height;
|
||||||
|
|
||||||
if d2d ~= nil then
|
if d2d ~= nil and config.current_config.global_settings.renderer.use_d2d_if_available then
|
||||||
width, height = d2d.surface_size();
|
width, height = d2d.surface_size();
|
||||||
else
|
else
|
||||||
width, height = screen.get_game_window_size();
|
width, height = screen.get_game_window_size();
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ end
|
|||||||
function time.update_players_dps()
|
function time.update_players_dps()
|
||||||
local cached_config = config.current_config.damage_meter_UI.settings;
|
local cached_config = config.current_config.damage_meter_UI.settings;
|
||||||
|
|
||||||
if cached_config.freeze_dps_on_quest_clear and quest_status.is_quest_clear then
|
if cached_config.freeze_dps_on_quest_end and quest_status.is_quest_end then
|
||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -33,11 +33,11 @@ function config.init()
|
|||||||
prioritize_large_monsters = false
|
prioritize_large_monsters = false
|
||||||
},
|
},
|
||||||
|
|
||||||
module_visibility = {
|
renderer = {
|
||||||
in_lobby = {
|
use_d2d_if_available = true
|
||||||
endemic_life_UI = false
|
},
|
||||||
},
|
|
||||||
|
|
||||||
|
module_visibility = {
|
||||||
in_training_area = {
|
in_training_area = {
|
||||||
large_monster_dynamic_UI = true,
|
large_monster_dynamic_UI = true,
|
||||||
large_monster_static_UI = true,
|
large_monster_static_UI = true,
|
||||||
@@ -4215,7 +4215,7 @@ function config.init()
|
|||||||
hide_total_if_total_damage_is_zero = false,
|
hide_total_if_total_damage_is_zero = false,
|
||||||
total_damage_offset_is_relative = true,
|
total_damage_offset_is_relative = true,
|
||||||
|
|
||||||
freeze_dps_on_quest_clear = true,
|
freeze_dps_on_quest_end = true,
|
||||||
|
|
||||||
orientation = "Vertical", -- "Vertical" or "Horizontal"
|
orientation = "Vertical", -- "Vertical" or "Horizontal"
|
||||||
highlighted_bar = "Me",
|
highlighted_bar = "Me",
|
||||||
@@ -4313,7 +4313,7 @@ function config.init()
|
|||||||
cart_count_label = {
|
cart_count_label = {
|
||||||
visibility = false,
|
visibility = false,
|
||||||
|
|
||||||
text = "x%d",
|
text = "%d",
|
||||||
offset = {
|
offset = {
|
||||||
x = 315,
|
x = 315,
|
||||||
y = 0
|
y = 0
|
||||||
@@ -4446,6 +4446,26 @@ function config.init()
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
total_cart_count_label = {
|
||||||
|
visibility = true,
|
||||||
|
|
||||||
|
text = "%d/%d",
|
||||||
|
offset = {
|
||||||
|
x = 315,
|
||||||
|
y = 0
|
||||||
|
},
|
||||||
|
color = 0xFFFF7373,
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
visibility = true,
|
||||||
|
offset = {
|
||||||
|
x = 1,
|
||||||
|
y = 1
|
||||||
|
},
|
||||||
|
color = 0xFF000000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
damage_bar = {
|
damage_bar = {
|
||||||
visibility = true,
|
visibility = true,
|
||||||
offset = {
|
offset = {
|
||||||
|
|||||||
@@ -172,6 +172,9 @@ language.default_language = {
|
|||||||
bold = "Bold",
|
bold = "Bold",
|
||||||
italic = "Italic",
|
italic = "Italic",
|
||||||
|
|
||||||
|
renderer = "Renderer",
|
||||||
|
use_d2d_if_available = "Use Direct2D if available",
|
||||||
|
|
||||||
enabled = "Enabled",
|
enabled = "Enabled",
|
||||||
settings = "Settings",
|
settings = "Settings",
|
||||||
dynamic_positioning = "Dynamic Positioning",
|
dynamic_positioning = "Dynamic Positioning",
|
||||||
@@ -390,11 +393,12 @@ language.default_language = {
|
|||||||
|
|
||||||
cart_count = "Cart Count",
|
cart_count = "Cart Count",
|
||||||
cart_count_label = "Cart Count Label",
|
cart_count_label = "Cart Count Label",
|
||||||
|
total_cart_count_label = "Total Cart Count Label",
|
||||||
|
|
||||||
prioritize_large_monsters = "Large Monsters on High Priority",
|
prioritize_large_monsters = "Large Monsters on High Priority",
|
||||||
max_monster_updates_per_tick = "Max Monster Updates per Tick",
|
max_monster_updates_per_tick = "Max Monster Updates per Tick",
|
||||||
|
|
||||||
freeze_dps_on_quest_clear = "Freeze DPS when Quest is cleared",
|
freeze_dps_on_quest_end = "Freeze DPS on Quest End",
|
||||||
|
|
||||||
|
|
||||||
health_break_severe_filter = "Health + Break + Severe",
|
health_break_severe_filter = "Health + Break + Severe",
|
||||||
@@ -421,7 +425,7 @@ language.default_language = {
|
|||||||
lowest_health_percentage = "Lowest Health Percentage",
|
lowest_health_percentage = "Lowest Health Percentage",
|
||||||
highest_health_percentage = "Highest Health Percentage",
|
highest_health_percentage = "Highest Health Percentage",
|
||||||
|
|
||||||
reframework_outdated = "Installed REFramework version is outdated. Please, update. Otherwise, MHR Overlay won't work correctly."
|
reframework_outdated = "Installed REFramework version is outdated. Please, update. Otherwise, MHR Overlay won't work correctly.",
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ function damage_meter_UI.draw()
|
|||||||
elseif #player.list == 0 then
|
elseif #player.list == 0 then
|
||||||
table.insert(quest_players, player.myself);
|
table.insert(quest_players, player.myself);
|
||||||
end
|
end
|
||||||
|
|
||||||
damage_meter_UI.last_displayed_players = quest_players;
|
damage_meter_UI.last_displayed_players = quest_players;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -760,16 +760,17 @@ function customization_menu.draw_global_settings()
|
|||||||
imgui.tree_pop();
|
imgui.tree_pop();
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if imgui.tree_node(language.current_language.customization_menu.renderer) then
|
||||||
|
changed, cached_config.renderer.use_d2d_if_available =
|
||||||
|
imgui.checkbox(language.current_language.customization_menu.use_d2d_if_available,
|
||||||
|
cached_config.renderer.use_d2d_if_available);
|
||||||
|
|
||||||
|
config_changed = config_changed or changed;
|
||||||
|
|
||||||
|
imgui.tree_pop();
|
||||||
|
end
|
||||||
|
|
||||||
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.module_visibility_based_on_game_state) then
|
||||||
if imgui.tree_node(language.current_language.customization_menu.in_lobby) then
|
|
||||||
|
|
||||||
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.in_training_area) then
|
if imgui.tree_node(language.current_language.customization_menu.in_training_area) then
|
||||||
|
|
||||||
@@ -1412,8 +1413,8 @@ function customization_menu.draw_damage_meter_UI()
|
|||||||
|
|
||||||
config_changed = config_changed or changed;
|
config_changed = config_changed or changed;
|
||||||
|
|
||||||
changed, cached_config.settings.freeze_dps_on_quest_clear = imgui.checkbox(
|
changed, cached_config.settings.freeze_dps_on_quest_end = imgui.checkbox(
|
||||||
language.current_language.customization_menu.freeze_dps_on_quest_clear, cached_config.settings.freeze_dps_on_quest_clear);
|
language.current_language.customization_menu.freeze_dps_on_quest_end, cached_config.settings.freeze_dps_on_quest_end);
|
||||||
|
|
||||||
config_changed = config_changed or changed;
|
config_changed = config_changed or changed;
|
||||||
|
|
||||||
@@ -1892,6 +1893,10 @@ function customization_menu.draw_damage_meter_UI()
|
|||||||
changed = label_customization.draw(language.current_language.customization_menu.total_damage_value_label, cached_config.total_damage_value_label);
|
changed = label_customization.draw(language.current_language.customization_menu.total_damage_value_label, cached_config.total_damage_value_label);
|
||||||
config_changed = config_changed or changed;
|
config_changed = config_changed or changed;
|
||||||
|
|
||||||
|
changed = label_customization.draw(language.current_language.customization_menu.total_cart_count_label, cached_config.total_cart_count_label);
|
||||||
|
config_changed = config_changed or changed;
|
||||||
|
|
||||||
|
|
||||||
changed = bar_customization.draw(language.current_language.customization_menu.damage_bar, cached_config.damage_bar);
|
changed = bar_customization.draw(language.current_language.customization_menu.damage_bar, cached_config.damage_bar);
|
||||||
config_changed = config_changed or changed;
|
config_changed = config_changed or changed;
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ function drawing.argb_to_color(alpha, red, green, blue)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function drawing.limit_text_size(text, size_limit)
|
function drawing.limit_text_size(text, size_limit)
|
||||||
if d2d == nil or size_limit <= 0 then
|
if d2d == nil or not config.current_config.global_settings.renderer.use_d2d_if_available or size_limit <= 0 then
|
||||||
return text;
|
return text;
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -98,6 +98,8 @@ function drawing.draw_label(label, position, opacity_scale, ...)
|
|||||||
local position_x = position.x + label.offset.x;
|
local position_x = position.x + label.offset.x;
|
||||||
local position_y = position.y + label.offset.y;
|
local position_y = position.y + label.offset.y;
|
||||||
|
|
||||||
|
local use_d2d = d2d ~= nil and config.current_config.global_settings.renderer.use_d2d_if_available;
|
||||||
|
|
||||||
if label.shadow.visibility then
|
if label.shadow.visibility then
|
||||||
local new_shadow_color = label.shadow.color;
|
local new_shadow_color = label.shadow.color;
|
||||||
|
|
||||||
@@ -105,7 +107,7 @@ function drawing.draw_label(label, position, opacity_scale, ...)
|
|||||||
new_shadow_color = drawing.scale_color_opacity(new_shadow_color, opacity_scale);
|
new_shadow_color = drawing.scale_color_opacity(new_shadow_color, opacity_scale);
|
||||||
end
|
end
|
||||||
|
|
||||||
if d2d ~= nil then
|
if use_d2d then
|
||||||
d2d.text(drawing.font, text, position_x + label.shadow.offset.x, position_y + label.shadow.offset.y, new_shadow_color);
|
d2d.text(drawing.font, text, position_x + label.shadow.offset.x, position_y + label.shadow.offset.y, new_shadow_color);
|
||||||
else
|
else
|
||||||
new_shadow_color = drawing.argb_color_to_abgr_color(new_shadow_color);
|
new_shadow_color = drawing.argb_color_to_abgr_color(new_shadow_color);
|
||||||
@@ -118,7 +120,7 @@ function drawing.draw_label(label, position, opacity_scale, ...)
|
|||||||
new_color = drawing.scale_color_opacity(new_color, opacity_scale);
|
new_color = drawing.scale_color_opacity(new_color, opacity_scale);
|
||||||
end
|
end
|
||||||
|
|
||||||
if d2d ~= nil then
|
if use_d2d then
|
||||||
d2d.text(drawing.font, text, position_x, position_y, new_color);
|
d2d.text(drawing.font, text, position_x, position_y, new_color);
|
||||||
else
|
else
|
||||||
new_color = drawing.argb_color_to_abgr_color(new_color);
|
new_color = drawing.argb_color_to_abgr_color(new_color);
|
||||||
@@ -230,7 +232,7 @@ function drawing.draw_bar(bar, position, opacity_scale, percentage)
|
|||||||
outline_color = drawing.scale_color_opacity(outline_color, opacity_scale);
|
outline_color = drawing.scale_color_opacity(outline_color, opacity_scale);
|
||||||
end
|
end
|
||||||
|
|
||||||
local use_d2d = d2d ~= nil;
|
local use_d2d = d2d ~= nil and config.current_config.global_settings.renderer.use_d2d_if_available;
|
||||||
|
|
||||||
-- outline
|
-- outline
|
||||||
if outline_thickness ~= 0 then
|
if outline_thickness ~= 0 then
|
||||||
@@ -281,7 +283,9 @@ function drawing.draw_capture_line(health_UI, position, opacity_scale, percentag
|
|||||||
color = drawing.scale_color_opacity(color, opacity_scale);
|
color = drawing.scale_color_opacity(color, opacity_scale);
|
||||||
end
|
end
|
||||||
|
|
||||||
if d2d ~= nil then
|
local use_d2d = d2d ~= nil and config.current_config.global_settings.renderer.use_d2d_if_available;
|
||||||
|
|
||||||
|
if use_d2d then
|
||||||
d2d.fill_rect(position_x, position_y, health_UI.bar.capture_line.size.width, health_UI.bar.capture_line.size.height,
|
d2d.fill_rect(position_x, position_y, health_UI.bar.capture_line.size.width, health_UI.bar.capture_line.size.height,
|
||||||
color);
|
color);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
"first_hit": "First Hit",
|
"first_hit": "First Hit",
|
||||||
"flinch_count": "Flinch Count",
|
"flinch_count": "Flinch Count",
|
||||||
"foreground": "Foreground",
|
"foreground": "Foreground",
|
||||||
"freeze_dps_on_quest_clear": "Freeze DPS when Quest is cleared",
|
"freeze_dps_on_quest_end": "Freeze DPS on Quest End",
|
||||||
"global_position_modifier": "Global Position Modifier",
|
"global_position_modifier": "Global Position Modifier",
|
||||||
"global_scale_modifier": "Global Scale Modifier",
|
"global_scale_modifier": "Global Scale Modifier",
|
||||||
"global_settings": "Global Settings",
|
"global_settings": "Global Settings",
|
||||||
@@ -214,6 +214,7 @@
|
|||||||
"relative_offset": "Relative Offset",
|
"relative_offset": "Relative Offset",
|
||||||
"render_highlighted_monster": "Render Highlighted Monster",
|
"render_highlighted_monster": "Render Highlighted Monster",
|
||||||
"render_not_highlighted_monsters": "Render Not Highlighted Monsters",
|
"render_not_highlighted_monsters": "Render Not Highlighted Monsters",
|
||||||
|
"renderer": "Renderer",
|
||||||
"reversed_order": "Reversed Order",
|
"reversed_order": "Reversed Order",
|
||||||
"reward_screen": "Reward Screen",
|
"reward_screen": "Reward Screen",
|
||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
@@ -247,6 +248,7 @@
|
|||||||
"total_buildup": "Total Buildup",
|
"total_buildup": "Total Buildup",
|
||||||
"total_buildup_label": "Total Buildup Label",
|
"total_buildup_label": "Total Buildup Label",
|
||||||
"total_buildup_value_label": "Total Buildup Value Label",
|
"total_buildup_value_label": "Total Buildup Value Label",
|
||||||
|
"total_cart_count_label": "Total Cart Count Label",
|
||||||
"total_damage": "Total Damage",
|
"total_damage": "Total Damage",
|
||||||
"total_damage_label": "Total Damage Label",
|
"total_damage_label": "Total Damage Label",
|
||||||
"total_damage_offset_is_relative": "Total Damage Offset is Relative",
|
"total_damage_offset_is_relative": "Total Damage Offset is Relative",
|
||||||
@@ -256,6 +258,7 @@
|
|||||||
"tracked_damage_types": "Tracked Damage Types",
|
"tracked_damage_types": "Tracked Damage Types",
|
||||||
"tracked_monster_types": "Tracked Monster Types",
|
"tracked_monster_types": "Tracked Monster Types",
|
||||||
"type": "Type",
|
"type": "Type",
|
||||||
|
"use_d2d_if_available": "Use Direct2D if available",
|
||||||
"value_label": "Value Label",
|
"value_label": "Value Label",
|
||||||
"vertical": "Vertical",
|
"vertical": "Vertical",
|
||||||
"viewport_offset": "Viewport Offset",
|
"viewport_offset": "Viewport Offset",
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
"first_hit": "初撃",
|
"first_hit": "初撃",
|
||||||
"flinch_count": "ひるみ回数",
|
"flinch_count": "ひるみ回数",
|
||||||
"foreground": "前面",
|
"foreground": "前面",
|
||||||
"freeze_dps_on_quest_clear": "Freeze DPS when Quest is cleared",
|
"freeze_dps_on_quest_end": "Freeze DPS on Quest End",
|
||||||
"global_position_modifier": "全体的な位置の調整",
|
"global_position_modifier": "全体的な位置の調整",
|
||||||
"global_scale_modifier": "全体的なスケールの調整",
|
"global_scale_modifier": "全体的なスケールの調整",
|
||||||
"global_settings": "全体設定",
|
"global_settings": "全体設定",
|
||||||
@@ -214,6 +214,7 @@
|
|||||||
"relative_offset": "相対的な表示位置",
|
"relative_offset": "相対的な表示位置",
|
||||||
"render_highlighted_monster": "ハイライトされたモンスターをレンダリング(表示)する",
|
"render_highlighted_monster": "ハイライトされたモンスターをレンダリング(表示)する",
|
||||||
"render_not_highlighted_monsters": "ハイライトされていないモンスターをレンダリング(表示)する",
|
"render_not_highlighted_monsters": "ハイライトされていないモンスターをレンダリング(表示)する",
|
||||||
|
"renderer": "Renderer",
|
||||||
"reversed_order": "逆順",
|
"reversed_order": "逆順",
|
||||||
"reward_screen": "Reward Screen",
|
"reward_screen": "Reward Screen",
|
||||||
"settings": "設定",
|
"settings": "設定",
|
||||||
@@ -247,6 +248,7 @@
|
|||||||
"total_buildup": "蓄積合計",
|
"total_buildup": "蓄積合計",
|
||||||
"total_buildup_label": "合計蓄積ラベル",
|
"total_buildup_label": "合計蓄積ラベル",
|
||||||
"total_buildup_value_label": "合計蓄積値ラベル",
|
"total_buildup_value_label": "合計蓄積値ラベル",
|
||||||
|
"total_cart_count_label": "Total Cart Count Label",
|
||||||
"total_damage": "合計ダメージ",
|
"total_damage": "合計ダメージ",
|
||||||
"total_damage_label": "合計ダメージラベル",
|
"total_damage_label": "合計ダメージラベル",
|
||||||
"total_damage_offset_is_relative": "トータルダメージの表示位置を調整",
|
"total_damage_offset_is_relative": "トータルダメージの表示位置を調整",
|
||||||
@@ -256,6 +258,7 @@
|
|||||||
"tracked_damage_types": "ダメージタイプでの追跡",
|
"tracked_damage_types": "ダメージタイプでの追跡",
|
||||||
"tracked_monster_types": "モンスタータイプでの追跡",
|
"tracked_monster_types": "モンスタータイプでの追跡",
|
||||||
"type": "タイプ",
|
"type": "タイプ",
|
||||||
|
"use_d2d_if_available": "Use Direct2D if available",
|
||||||
"value_label": "バリューラベル",
|
"value_label": "バリューラベル",
|
||||||
"vertical": "縦",
|
"vertical": "縦",
|
||||||
"viewport_offset": "表示領域からの位置",
|
"viewport_offset": "表示領域からの位置",
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
"first_hit": "첫 공격",
|
"first_hit": "첫 공격",
|
||||||
"flinch_count": "경직 횟수",
|
"flinch_count": "경직 횟수",
|
||||||
"foreground": "전경색",
|
"foreground": "전경색",
|
||||||
"freeze_dps_on_quest_clear": "퀘스트 종료시 DPS 집계 정지",
|
"freeze_dps_on_quest_end": "Freeze DPS on Quest End",
|
||||||
"global_position_modifier": "전역 위치 배율",
|
"global_position_modifier": "전역 위치 배율",
|
||||||
"global_scale_modifier": "전역 크기 배율",
|
"global_scale_modifier": "전역 크기 배율",
|
||||||
"global_settings": "전역 설정",
|
"global_settings": "전역 설정",
|
||||||
@@ -214,6 +214,7 @@
|
|||||||
"relative_offset": "상대적 위치 거리",
|
"relative_offset": "상대적 위치 거리",
|
||||||
"render_highlighted_monster": "타겟이 된 몬스터 표시",
|
"render_highlighted_monster": "타겟이 된 몬스터 표시",
|
||||||
"render_not_highlighted_monsters": "타겟이 아닌 몬스터 표시",
|
"render_not_highlighted_monsters": "타겟이 아닌 몬스터 표시",
|
||||||
|
"renderer": "Renderer",
|
||||||
"reversed_order": "역순",
|
"reversed_order": "역순",
|
||||||
"reward_screen": "Reward Screen",
|
"reward_screen": "Reward Screen",
|
||||||
"settings": "설정",
|
"settings": "설정",
|
||||||
@@ -247,6 +248,7 @@
|
|||||||
"total_buildup": "총 누적치",
|
"total_buildup": "총 누적치",
|
||||||
"total_buildup_label": "총 누적치 정보",
|
"total_buildup_label": "총 누적치 정보",
|
||||||
"total_buildup_value_label": "총 누적치 값 정보",
|
"total_buildup_value_label": "총 누적치 값 정보",
|
||||||
|
"total_cart_count_label": "Total Cart Count Label",
|
||||||
"total_damage": "총 대미지",
|
"total_damage": "총 대미지",
|
||||||
"total_damage_label": "총 대미지 정보",
|
"total_damage_label": "총 대미지 정보",
|
||||||
"total_damage_offset_is_relative": "총 대미지 거리를 상대적 값으로",
|
"total_damage_offset_is_relative": "총 대미지 거리를 상대적 값으로",
|
||||||
@@ -256,6 +258,7 @@
|
|||||||
"tracked_damage_types": "추적할 대미지 종류",
|
"tracked_damage_types": "추적할 대미지 종류",
|
||||||
"tracked_monster_types": "추적할 몬스터 타입",
|
"tracked_monster_types": "추적할 몬스터 타입",
|
||||||
"type": "순으로",
|
"type": "순으로",
|
||||||
|
"use_d2d_if_available": "Use Direct2D if available",
|
||||||
"value_label": "값 정보",
|
"value_label": "값 정보",
|
||||||
"vertical": "세로",
|
"vertical": "세로",
|
||||||
"viewport_offset": "뷰포트 거리",
|
"viewport_offset": "뷰포트 거리",
|
||||||
|
|||||||
@@ -70,8 +70,8 @@
|
|||||||
"buildup_percentage_label": "Метка накопления в процентах",
|
"buildup_percentage_label": "Метка накопления в процентах",
|
||||||
"buildup_value_label": "Метка значения накопления",
|
"buildup_value_label": "Метка значения накопления",
|
||||||
"capture_line": "Линия здоровья захвата",
|
"capture_line": "Линия здоровья захвата",
|
||||||
"cart_count": "Кол-во потерь сознания",
|
"cart_count": "Кол-во смертей",
|
||||||
"cart_count_label": "Метка кол-ва потерь сознания",
|
"cart_count_label": "Метка кол-ва смертей",
|
||||||
"center": "Центр",
|
"center": "Центр",
|
||||||
"closest": "Ближайший",
|
"closest": "Ближайший",
|
||||||
"color": "Цвет",
|
"color": "Цвет",
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
"first_hit": "Первый удар",
|
"first_hit": "Первый удар",
|
||||||
"flinch_count": "Кол-во вздрагиваний",
|
"flinch_count": "Кол-во вздрагиваний",
|
||||||
"foreground": "Передний план",
|
"foreground": "Передний план",
|
||||||
"freeze_dps_on_quest_clear": "Заморозить УВС после завершения квеста",
|
"freeze_dps_on_quest_end": "Заморозить УВС после завершения квеста",
|
||||||
"global_position_modifier": "Глобальный модификатор расположения",
|
"global_position_modifier": "Глобальный модификатор расположения",
|
||||||
"global_scale_modifier": "Глобальный модификатор размера",
|
"global_scale_modifier": "Глобальный модификатор размера",
|
||||||
"global_settings": "Общие настройки",
|
"global_settings": "Общие настройки",
|
||||||
@@ -214,6 +214,7 @@
|
|||||||
"relative_offset": "Относительный сдвиг",
|
"relative_offset": "Относительный сдвиг",
|
||||||
"render_highlighted_monster": "Показывать помеченного монстра",
|
"render_highlighted_monster": "Показывать помеченного монстра",
|
||||||
"render_not_highlighted_monsters": "Показывать непомеченных монстров",
|
"render_not_highlighted_monsters": "Показывать непомеченных монстров",
|
||||||
|
"renderer": "Renderer",
|
||||||
"reversed_order": "Обратный порядок",
|
"reversed_order": "Обратный порядок",
|
||||||
"reward_screen": "Экран наград",
|
"reward_screen": "Экран наград",
|
||||||
"settings": "Настройки",
|
"settings": "Настройки",
|
||||||
@@ -247,6 +248,7 @@
|
|||||||
"total_buildup": "Общее накопление",
|
"total_buildup": "Общее накопление",
|
||||||
"total_buildup_label": "Метка общего накопления",
|
"total_buildup_label": "Метка общего накопления",
|
||||||
"total_buildup_value_label": "Метка значения общего накопления",
|
"total_buildup_value_label": "Метка значения общего накопления",
|
||||||
|
"total_cart_count_label": "Метка общего кол-ва смертей",
|
||||||
"total_damage": "Общий урон",
|
"total_damage": "Общий урон",
|
||||||
"total_damage_label": "Метка общего урона",
|
"total_damage_label": "Метка общего урона",
|
||||||
"total_damage_offset_is_relative": "Относительный сдвиг общего урона",
|
"total_damage_offset_is_relative": "Относительный сдвиг общего урона",
|
||||||
@@ -256,6 +258,7 @@
|
|||||||
"tracked_damage_types": "Отслеживаемые типы урона",
|
"tracked_damage_types": "Отслеживаемые типы урона",
|
||||||
"tracked_monster_types": "Отслеживаемые типы монстров",
|
"tracked_monster_types": "Отслеживаемые типы монстров",
|
||||||
"type": "Тип",
|
"type": "Тип",
|
||||||
|
"use_d2d_if_available": "Использовать Direct2D, если доступен",
|
||||||
"value_label": "Метка значений",
|
"value_label": "Метка значений",
|
||||||
"vertical": "Вертикально",
|
"vertical": "Вертикально",
|
||||||
"viewport_offset": "Сдвиг в экранном пространстве",
|
"viewport_offset": "Сдвиг в экранном пространстве",
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
"first_hit": "第一击",
|
"first_hit": "第一击",
|
||||||
"flinch_count": "胆怯次数",
|
"flinch_count": "胆怯次数",
|
||||||
"foreground": "前景",
|
"foreground": "前景",
|
||||||
"freeze_dps_on_quest_clear": "Freeze DPS when Quest is cleared",
|
"freeze_dps_on_quest_end": "Freeze DPS on Quest End",
|
||||||
"global_position_modifier": "全局位置更改",
|
"global_position_modifier": "全局位置更改",
|
||||||
"global_scale_modifier": "全局比例更改",
|
"global_scale_modifier": "全局比例更改",
|
||||||
"global_settings": "全局设定",
|
"global_settings": "全局设定",
|
||||||
@@ -214,6 +214,7 @@
|
|||||||
"relative_offset": "相对偏移",
|
"relative_offset": "相对偏移",
|
||||||
"render_highlighted_monster": "渲染高亮怪物",
|
"render_highlighted_monster": "渲染高亮怪物",
|
||||||
"render_not_highlighted_monsters": "渲染非高亮怪物",
|
"render_not_highlighted_monsters": "渲染非高亮怪物",
|
||||||
|
"renderer": "Renderer",
|
||||||
"reversed_order": "逆向排序",
|
"reversed_order": "逆向排序",
|
||||||
"reward_screen": "Reward Screen",
|
"reward_screen": "Reward Screen",
|
||||||
"settings": "设定",
|
"settings": "设定",
|
||||||
@@ -247,6 +248,7 @@
|
|||||||
"total_buildup": "总积累值",
|
"total_buildup": "总积累值",
|
||||||
"total_buildup_label": "总积累值标签",
|
"total_buildup_label": "总积累值标签",
|
||||||
"total_buildup_value_label": "总积累值标签",
|
"total_buildup_value_label": "总积累值标签",
|
||||||
|
"total_cart_count_label": "Total Cart Count Label",
|
||||||
"total_damage": "总伤害",
|
"total_damage": "总伤害",
|
||||||
"total_damage_label": "总伤害标签",
|
"total_damage_label": "总伤害标签",
|
||||||
"total_damage_offset_is_relative": "总伤害相对偏移",
|
"total_damage_offset_is_relative": "总伤害相对偏移",
|
||||||
@@ -256,6 +258,7 @@
|
|||||||
"tracked_damage_types": "跟踪的伤害类型",
|
"tracked_damage_types": "跟踪的伤害类型",
|
||||||
"tracked_monster_types": "跟踪的怪物类型",
|
"tracked_monster_types": "跟踪的怪物类型",
|
||||||
"type": "类型",
|
"type": "类型",
|
||||||
|
"use_d2d_if_available": "Use Direct2D if available",
|
||||||
"value_label": "数字",
|
"value_label": "数字",
|
||||||
"vertical": "垂直",
|
"vertical": "垂直",
|
||||||
"viewport_offset": "窗口偏移",
|
"viewport_offset": "窗口偏移",
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
"first_hit": "第一擊",
|
"first_hit": "第一擊",
|
||||||
"flinch_count": "膽怯次數",
|
"flinch_count": "膽怯次數",
|
||||||
"foreground": "圖形化顯示條的底色",
|
"foreground": "圖形化顯示條的底色",
|
||||||
"freeze_dps_on_quest_clear": "當任務結束時凍結DPS",
|
"freeze_dps_on_quest_end": "Freeze DPS on Quest End",
|
||||||
"global_position_modifier": "全域位置更改",
|
"global_position_modifier": "全域位置更改",
|
||||||
"global_scale_modifier": "全域比例更改",
|
"global_scale_modifier": "全域比例更改",
|
||||||
"global_settings": "全域設定",
|
"global_settings": "全域設定",
|
||||||
@@ -214,6 +214,7 @@
|
|||||||
"relative_offset": "相對偏移",
|
"relative_offset": "相對偏移",
|
||||||
"render_highlighted_monster": "渲染目標魔物",
|
"render_highlighted_monster": "渲染目標魔物",
|
||||||
"render_not_highlighted_monsters": "渲染非目標魔物",
|
"render_not_highlighted_monsters": "渲染非目標魔物",
|
||||||
|
"renderer": "Renderer",
|
||||||
"reversed_order": "反向排序",
|
"reversed_order": "反向排序",
|
||||||
"reward_screen": "Reward Screen",
|
"reward_screen": "Reward Screen",
|
||||||
"settings": "設定",
|
"settings": "設定",
|
||||||
@@ -247,6 +248,7 @@
|
|||||||
"total_buildup": "總累積值",
|
"total_buildup": "總累積值",
|
||||||
"total_buildup_label": "總累積值文字",
|
"total_buildup_label": "總累積值文字",
|
||||||
"total_buildup_value_label": "總累積值數值文字",
|
"total_buildup_value_label": "總累積值數值文字",
|
||||||
|
"total_cart_count_label": "Total Cart Count Label",
|
||||||
"total_damage": "總傷害",
|
"total_damage": "總傷害",
|
||||||
"total_damage_label": "總傷害文字",
|
"total_damage_label": "總傷害文字",
|
||||||
"total_damage_offset_is_relative": "總傷害顯示位置調整",
|
"total_damage_offset_is_relative": "總傷害顯示位置調整",
|
||||||
@@ -256,6 +258,7 @@
|
|||||||
"tracked_damage_types": "追蹤的傷害類型",
|
"tracked_damage_types": "追蹤的傷害類型",
|
||||||
"tracked_monster_types": "追蹤的魔物類型",
|
"tracked_monster_types": "追蹤的魔物類型",
|
||||||
"type": "類型",
|
"type": "類型",
|
||||||
|
"use_d2d_if_available": "Use Direct2D if available",
|
||||||
"value_label": "數字",
|
"value_label": "數字",
|
||||||
"vertical": "垂直",
|
"vertical": "垂直",
|
||||||
"viewport_offset": "視窗的位置",
|
"viewport_offset": "視窗的位置",
|
||||||
|
|||||||
Reference in New Issue
Block a user