Added DPS, missing offsets and additional options.

This commit is contained in:
GreenComfyTea
2022-02-16 21:02:34 +02:00
parent fa494d7d56
commit 39e324e0a5
17 changed files with 1057 additions and 200 deletions

View File

@@ -3,6 +3,7 @@ x = "";
local quest_status = require("MHR_Overlay.Game_Handler.quest_status");
local screen = require("MHR_Overlay.Game_Handler.screen");
local singletons = require("MHR_Overlay.Game_Handler.singletons");
local time = require("MHR_Overlay.Game_Handler.time");
local config = require("MHR_Overlay.Misc.config");
local language = require("MHR_Overlay.Misc.language");
@@ -36,6 +37,7 @@ local drawing = require("MHR_Overlay.UI.drawing");
screen.init_module();
singletons.init_module();
table_helpers.init_module();
time.init_module();
language.init_module();
config.init_module();
@@ -63,8 +65,6 @@ large_monster_UI.init_module();
small_monster_UI.init_module();
time_UI.init_module();
log.info("[MHR Overlay] loaded");
-- #endregion
------------------------INIT MODULES-------------------------
@@ -89,8 +89,8 @@ re.on_frame(function()
end);
re.on_frame(function()
draw.text("x: " .. tostring(x), 451, 51, 0xFF000000);
draw.text("x: " .. tostring(x), 450, 50, 0xFFFFFFFF);
--draw.text("x: " .. tostring(x), 451, 51, 0xFF000000);
--draw.text("x: " .. tostring(x), 450, 50, 0xFFFFFFFF);
end);
-- #endregion
--------------------------RE_IMGUI---------------------------
@@ -106,7 +106,7 @@ end, function()
singletons.init();
player.update_myself_position();
quest_status.update_is_online();
time.tick();
if quest_status.index < 2 then
quest_status.update_is_training_area();
@@ -143,6 +143,8 @@ end, function()
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

View File

@@ -4,6 +4,7 @@ local table_helpers;
local singletons;
local customization_menu;
local damage_UI_entity;
local time;
player.list = {};
player.myself = nil;
@@ -17,6 +18,10 @@ function player.new(player_id, player_name, player_hunter_rank)
new_player.name = player_name;
new_player.hunter_rank = player_hunter_rank;
new_player.join_time = time.total_elapsed_seconds;
new_player.first_hit_time = -1;
new_player.dps = 0;
new_player.small_monsters = {};
new_player.small_monsters.total_damage = 0;
@@ -115,6 +120,10 @@ function player.update_damage(_player, damage_source_type, is_large_monster, dam
return;
end
if _player.first_hit_time == -1 then
_player.first_hit_time = time.total_elapsed_seconds;
end
local player_monster_type = _player.small_monsters;
if is_large_monster then
player_monster_type = _player.large_monsters;
@@ -262,14 +271,15 @@ function player.init_UI(_player)
config.current_config.damage_meter_UI.damage_bar,
config.current_config.damage_meter_UI.highlighted_damage_bar,
config.current_config.damage_meter_UI.player_name_label,
config.current_config.damage_meter_UI.dps_label,
config.current_config.damage_meter_UI.hunter_rank_label,
config.current_config.damage_meter_UI.damage_value_label,
config.current_config.damage_meter_UI.damage_percentage_label
);
end
function player.draw(_player, position_on_screen, opacity_scale, top_damage)
damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_damage);
function player.draw(_player, position_on_screen, opacity_scale, top_damage, top_dps)
damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_damage, top_dps);
end
function player.init_module()
@@ -278,6 +288,7 @@ function player.init_module()
singletons = require("MHR_Overlay.Game_Handler.singletons");
customization_menu = require("MHR_Overlay.UI.customization_menu");
damage_UI_entity = require("MHR_Overlay.UI.UI_Entities.damage_UI_entity");
time = require("MHR_Overlay.Game_Handler.time");
player.init_total();
end

View File

@@ -27,7 +27,7 @@ function singletons.init_message_manager()
singletons.message_manager = sdk.get_managed_singleton("snow.gui.MessageManager");
if singletons.message_manager == nil then
log.error("[MHR Overlay] No message manager");
--log.error("[MHR Overlay] No message manager");
end
return singletons.message_manager;
@@ -40,7 +40,7 @@ function singletons.init_enemy_manager()
singletons.enemy_manager = sdk.get_managed_singleton("snow.enemy.EnemyManager");
if singletons.enemy_manager == nil then
log.error("[MHR Overlay] No enemy manager");
--log.error("[MHR Overlay] No enemy manager");
end
return singletons.enemy_manager;
@@ -53,7 +53,7 @@ function singletons.init_lobby_manager()
singletons.lobby_manager = sdk.get_managed_singleton("snow.LobbyManager");
if singletons.lobby_manager == nil then
log.error("[MHR Overlay] No lobby manager");
--log.error("[MHR Overlay] No lobby manager");
return false;
end
@@ -67,7 +67,7 @@ function singletons.init_progress_manager()
singletons.progress_manager = sdk.get_managed_singleton("snow.progress.ProgressManager");
if singletons.progress_manager == nil then
log.error("[MHR Overlay] No progress manager");
--log.error("[MHR Overlay] No progress manager");
return false;
end
@@ -81,7 +81,7 @@ function singletons.init_quest_manager()
singletons.quest_manager = sdk.get_managed_singleton("snow.QuestManager");
if singletons.quest_manager == nil then
log.error("[MHR Overlay] No quest manager");
--log.error("[MHR Overlay] No quest manager");
end
return singletons.quest_manager;
@@ -94,7 +94,7 @@ function singletons.init_player_manager()
singletons.player_manager = sdk.get_managed_singleton("snow.player.PlayerManager");
if singletons.player_manager == nil then
log.error("[MHR Overlay] No player manager");
--log.error("[MHR Overlay] No player manager");
end
return singletons.player_manager;
@@ -107,7 +107,7 @@ function singletons.init_village_area_manager()
singletons.village_area_manager = sdk.get_managed_singleton("snow.VillageAreaManager");
if singletons.village_area_manager == nil then
log.error("[MHR Overlay] No village manager");
--log.error("[MHR Overlay] No village area manager");
end
return singletons.village_area_manager;
@@ -120,7 +120,7 @@ function singletons.init_gui_manager()
singletons.gui_manager = sdk.get_managed_singleton("snow.gui.GuiManager");
if singletons.gui_manager == nil then
log.error("[MHR Overlay] No gui manager");
--log.error("[MHR Overlay] No gui manager");
end
return singletons.gui_manager;

View File

@@ -0,0 +1,78 @@
local time = {};
local singletons;
local customization_menu;
local player;
local config;
local quest_manager_type_def = sdk.find_type_definition("snow.QuestManager");
local get_quest_elapsed_time_min_method = quest_manager_type_def:get_method("getQuestElapsedTimeMin");
local get_quest_elapsed_time_sec_method = quest_manager_type_def:get_method("getQuestElapsedTimeSec");
time.total_elapsed_seconds = 0;
time.elapsed_minutes = 0;
time.elapsed_seconds = 0;
time.last_whole_seconds = 0;
function time.tick()
if singletons.quest_manager == nil then
return;
end
local quest_time_elapsed_minutes = get_quest_elapsed_time_min_method:call(singletons.quest_manager);
if quest_time_elapsed_minutes == nil then
customization_menu.status = "No quest time elapsed minutes";
return;
end
time.elapsed_minutes = quest_time_elapsed_minutes;
local quest_time_total_elapsed_seconds = get_quest_elapsed_time_sec_method:call(singletons.quest_manager);
if quest_time_total_elapsed_seconds == nil then
customization_menu.status = "No quest time total elapsed seconds";
return;
end
time.total_elapsed_seconds = quest_time_total_elapsed_seconds;
time.elapsed_seconds = quest_time_total_elapsed_seconds - quest_time_elapsed_minutes * 60;
if time.total_elapsed_seconds - time.last_whole_seconds > 1 then
time.last_whole_seconds = time.total_elapsed_seconds;
time.update_players_dps();
end
end
function time.update_players_dps()
local new_total_dps = 0;
for _, _player in pairs(player.list) do
if config.current_config.damage_meter_UI.settings.dps_mode == "Quest Time" then
if time.total_elapsed_seconds > 0 then
_player.dps = _player.display.total_damage / time.total_elapsed_seconds;
end
elseif config.current_config.damage_meter_UI.settings.dps_mode == "Join Time" then
if time.total_elapsed_seconds - _player.join_time > 0 then
_player.dps = _player.display.total_damage / (time.total_elapsed_seconds - _player.join_time);
end
elseif config.current_config.damage_meter_UI.settings.dps_mode == "First Hit" then
if time.total_elapsed_seconds - _player.first_hit_time > 0 then
_player.dps = _player.display.total_damage / (time.total_elapsed_seconds - _player.first_hit_time);
end
else
end
new_total_dps = new_total_dps + _player.dps;
end
player.total.dps = new_total_dps;
end
function time.init_module()
player = require("MHR_Overlay.Damage_Meter.player");
singletons = require("MHR_Overlay.Game_Handler.singletons");
customization_menu = require("MHR_Overlay.UI.customization_menu");
time = require("MHR_Overlay.Game_Handler.time");
config = require("MHR_Overlay.Misc.config");
end
return time;

View File

@@ -119,13 +119,18 @@ function config.init()
health = {
visibility = true,
offset = {
x = 0,
y = 17
},
text_label = {
visibility = false,
text = "%s",
offset = {
x = -25,
y = 12
x = -22,
y = -5
},
color = 0xFFCCF4E1,
@@ -144,7 +149,7 @@ function config.init()
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 50,
y = 25
y = 0
},
color = 0xFFCCF4E1,
@@ -163,7 +168,7 @@ function config.init()
text = "%5.1f%%",
offset = {
x = 55,
x = -5,
y = 0
},
color = 0xFFCCF4E1,
@@ -182,7 +187,7 @@ function config.init()
visibility = true,
offset = {
x = 0,
y = 17
y = 0
},
size = {
@@ -200,13 +205,18 @@ function config.init()
stamina = {
visibility = false,
offset = {
x = 10,
y = 30
},
text_label = {
visibility = true,
text = "%s",
offset = {
x = 15,
y = 37
x = 5,
y = 0
},
color = 0xFFA3F5F0,
@@ -224,8 +234,8 @@ function config.init()
visibility = true,
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 15,
y = 54
x = 25,
y = 16
},
color = 0xFFA3F5F0,
@@ -244,8 +254,8 @@ function config.init()
text = "%5.1f%%",
offset = {
x = 55,
y = 64
x = 45,
y = 29
},
color = 0xFFA3F5F0,
@@ -262,8 +272,8 @@ function config.init()
bar = {
visibility = true,
offset = {
x = 10,
y = 54
x = 0,
y = 17
},
size = {
@@ -285,6 +295,8 @@ function config.init()
settings = {
hide_dead_or_captured = true,
render_highlighted_monster = true,
render_not_highlighted_monsters = true,
max_distance = 300,
opacity_falloff = true
},
@@ -329,13 +341,18 @@ function config.init()
health = {
visibility = true,
offset = {
x = 0,
y = 17
},
text_label = {
visibility = false,
text = "%s",
offset = {
x = -25,
y = 19
y = 2
},
color = 0xFFCCF4E1,
@@ -354,7 +371,7 @@ function config.init()
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 5,
y = 19
y = 2
},
color = 0xFFFFFFFF,
@@ -374,7 +391,7 @@ function config.init()
offset = {
x = 150,
y = 19
y = 2
},
color = 0xFFFFFFFF,
@@ -392,7 +409,7 @@ function config.init()
visibility = true,
offset = {
x = 0,
y = 17
y = 0
},
size = {
@@ -429,13 +446,18 @@ function config.init()
stamina = {
visibility = true,
offset = {
x = 10,
y = 37
},
text_label = {
visibility = true,
text = "%s",
offset = {
x = 15,
y = 37
x = 15-10,
y = 0
},
color = 0xFFA3F5F0,
@@ -453,8 +475,8 @@ function config.init()
visibility = true,
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 55,
y = 54
x = 55-10,
y = 17
},
color = 0xFFFFFFFF,
@@ -473,8 +495,8 @@ function config.init()
text = "%5.1f%%",
offset = {
x = 145,
y = 54
x = 145-10,
y = 17
},
color = 0xFFFFFFFF,
@@ -491,8 +513,8 @@ function config.init()
bar = {
visibility = true,
offset = {
x = 10,
y = 54
x = 10-10,
y = 17
},
size = {
@@ -509,13 +531,18 @@ function config.init()
rage = {
visibility = true,
offset = {
x = 10,
y = 61
},
text_label = {
visibility = true,
text = "%s",
offset = {
x = 15,
y = 61
x = 5,
y = 0
},
color = 0xFFFF9393,
@@ -533,8 +560,8 @@ function config.init()
visibility = true,
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 55,
y = 78
x = 45,
y = 17
},
color = 0xFFFFFFFF,
@@ -553,8 +580,8 @@ function config.init()
text = "%5.1f%%",
offset = {
x = 145,
y = 78
x = 135,
y = 17
},
color = 0xFFFFFFFF,
@@ -570,11 +597,11 @@ function config.init()
timer_label = {
visibility = true,
text = "%.0f:%02.0f",
text = "%2.0f:%02.0f",
offset = {
x = 157,
y = 78
x = 140,
y = 17
},
color = 0xFFFFFFFF,
@@ -591,8 +618,8 @@ function config.init()
bar = {
visibility = true,
offset = {
x = 10,
y = 78
x = 0,
y = 17
},
size = {
@@ -611,8 +638,8 @@ function config.init()
visibility = false,
offset = {
x = 0,
y = 50
x = 10,
y = 111
},
spacing = {
@@ -639,8 +666,8 @@ function config.init()
},
offset = {
x = 15,
y = 61
x = 5,
y = 0
},
color = 0xFFf9d9ff,
@@ -658,8 +685,8 @@ function config.init()
visibility = false,
text = language.current_language.UI.HP,
offset = {
x = -15,
y = 69
x = -25,
y = 8
},
color = 0xF1F4A3CC,
@@ -677,8 +704,8 @@ function config.init()
visibility = true,
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 55,
y = 74
x = 45,
y = 13
},
color = 0xFFFFFFFF,
@@ -697,8 +724,8 @@ function config.init()
text = "%5.1f%%",
offset = {
x = 145,
y = 74
x = 135,
y = 13
},
color = 0xFFFFFFFF,
@@ -715,8 +742,8 @@ function config.init()
bar = {
visibility = true,
offset = {
x = 10,
y = 75
x = 0,
y = 14
},
size = {
@@ -742,6 +769,9 @@ function config.init()
settings = {
hide_dead_or_captured = true,
render_highlighted_monster = true,
render_not_highlighted_monsters = true,
highlighted_monster_location = "Normal",
orientation = "Horizontal"
},
@@ -785,13 +815,18 @@ function config.init()
health = {
visibility = true,
offset = {
x = 0,
y = 17
},
text_label = {
visibility = false,
text = "%s",
offset = {
x = -25,
y = 19
y = 2
},
color = 0xFFCCF4E1,
@@ -810,7 +845,7 @@ function config.init()
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 5,
y = 19
y = 2
},
color = 0xFFFFFFFF,
@@ -830,7 +865,7 @@ function config.init()
offset = {
x = 150,
y = 19
y = 2
},
color = 0xFFFFFFFF,
@@ -848,7 +883,7 @@ function config.init()
visibility = true,
offset = {
x = 0,
y = 17
y = 0
},
size = {
@@ -885,13 +920,18 @@ function config.init()
stamina = {
visibility = true,
offset = {
x = 0,
y = 37
},
text_label = {
visibility = false,
text = "%s",
offset = {
x = 15,
y = 37
y = 0
},
color = 0xFFA3F5F0,
@@ -910,7 +950,7 @@ function config.init()
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 55,
y = 54
y = 17
},
color = 0xFFFFFFFF,
@@ -930,7 +970,7 @@ function config.init()
offset = {
x = 145,
y = 54
y = 17
},
color = 0xFFFFFFFF,
@@ -948,7 +988,7 @@ function config.init()
visibility = true,
offset = {
x = 0,
y = 37
y = 0
},
size = {
@@ -965,13 +1005,18 @@ function config.init()
rage = {
visibility = true,
offset = {
x = 0,
y = 42
},
text_label = {
visibility = false,
text = "%s",
offset = {
x = 15,
y = 61
y = 19
},
color = 0xFFFF9393,
@@ -990,7 +1035,7 @@ function config.init()
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 55,
y = 78
y = 36
},
color = 0xFFFFFFFF,
@@ -1010,7 +1055,7 @@ function config.init()
offset = {
x = 150,
y = 33
y = -9
},
color = 0xFFFFFFFF,
@@ -1026,11 +1071,11 @@ function config.init()
timer_label = {
visibility = true,
text = "%.0f:%02.0f",
text = "%2.0f:%02.0f",
offset = {
x = 150,
y = 33
x = 157,
y = -9
},
color = 0xFFFFFFFF,
@@ -1048,7 +1093,7 @@ function config.init()
visibility = true,
offset = {
x = 0,
y = 42
y = 0
},
size = {
@@ -1067,7 +1112,7 @@ function config.init()
visibility = false,
offset = {
x = 0,
x = 10,
y = 50
},
@@ -1095,8 +1140,8 @@ function config.init()
},
offset = {
x = 15,
y = 61
x = 5,
y = 0
},
color = 0xFFf9d9ff,
@@ -1114,8 +1159,8 @@ function config.init()
visibility = false,
text = language.current_language.UI.HP,
offset = {
x = -15,
y = 69
x = -25,
y = 8
},
color = 0xF1F4A3CC,
@@ -1133,8 +1178,8 @@ function config.init()
visibility = true,
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 55,
y = 74
x = 45,
y = 13
},
color = 0xFFFFFFFF,
@@ -1153,8 +1198,8 @@ function config.init()
text = "%5.1f%%",
offset = {
x = 145,
y = 74
x = 135,
y = 13
},
color = 0xFFFFFFFF,
@@ -1171,8 +1216,8 @@ function config.init()
bar = {
visibility = true,
offset = {
x = 10,
y = 75
x = 0,
y = 14
},
size = {
@@ -1230,13 +1275,18 @@ function config.init()
health = {
visibility = true,
offset = {
x = 0,
y = 17
},
text_label = {
visibility = false,
text = "%s",
offset = {
x = -25,
y = 19
y = 2
},
color = 0xFFCCF4E1,
@@ -1255,7 +1305,7 @@ function config.init()
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 5,
y = 19
y = 2
},
color = 0xFFFFFFFF,
@@ -1275,7 +1325,7 @@ function config.init()
offset = {
x = 150,
y = 19
y = 2
},
color = 0xFFFFFFFF,
@@ -1293,7 +1343,7 @@ function config.init()
visibility = true,
offset = {
x = 0,
y = 17
y = 0
},
size = {
@@ -1325,18 +1375,23 @@ function config.init()
color = 0xB9000000
}
}
},
},
stamina = {
visibility = true,
offset = {
x = 10,
y = 37
},
text_label = {
visibility = true,
text = "%s",
offset = {
x = 15,
y = 37
x = 15-10,
y = 0
},
color = 0xFFA3F5F0,
@@ -1354,8 +1409,8 @@ function config.init()
visibility = true,
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 55,
y = 54
x = 55-10,
y = 17
},
color = 0xFFFFFFFF,
@@ -1374,8 +1429,8 @@ function config.init()
text = "%5.1f%%",
offset = {
x = 145,
y = 54
x = 145-10,
y = 17
},
color = 0xFFFFFFFF,
@@ -1392,8 +1447,8 @@ function config.init()
bar = {
visibility = true,
offset = {
x = 10,
y = 54
x = 10-10,
y = 17
},
size = {
@@ -1410,13 +1465,18 @@ function config.init()
rage = {
visibility = true,
offset = {
x = 10,
y = 61
},
text_label = {
visibility = true,
text = "%s",
offset = {
x = 15,
y = 61
x = 5,
y = 0
},
color = 0xFFFF9393,
@@ -1434,8 +1494,8 @@ function config.init()
visibility = true,
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 55,
y = 78
x = 45,
y = 17
},
color = 0xFFFFFFFF,
@@ -1454,8 +1514,8 @@ function config.init()
text = "%5.1f%%",
offset = {
x = 145,
y = 78
x = 135,
y = 17
},
color = 0xFFFFFFFF,
@@ -1471,11 +1531,11 @@ function config.init()
timer_label = {
visibility = true,
text = "%.0f:%02.0f",
text = "%2.0f:%02.0f",
offset = {
x = 157,
y = 78
x = 140,
y = 17
},
color = 0xFFFFFFFF,
@@ -1492,8 +1552,8 @@ function config.init()
bar = {
visibility = true,
offset = {
x = 10,
y = 78
x = 0,
y = 17
},
size = {
@@ -1512,8 +1572,8 @@ function config.init()
visibility = true,
offset = {
x = 0,
y = 50
x = 10,
y = 111
},
spacing = {
@@ -1540,8 +1600,8 @@ function config.init()
},
offset = {
x = 15,
y = 61
x = 5,
y = 0
},
color = 0xFFf9d9ff,
@@ -1559,8 +1619,8 @@ function config.init()
visibility = false,
text = language.current_language.UI.HP,
offset = {
x = -15,
y = 69
x = -25,
y = 8
},
color = 0xF1F4A3CC,
@@ -1578,8 +1638,8 @@ function config.init()
visibility = true,
text = "%.0f/%.0f", -- current_health/max_health
offset = {
x = 55,
y = 74
x = 45,
y = 13
},
color = 0xFFFFFFFF,
@@ -1598,8 +1658,8 @@ function config.init()
text = "%5.1f%%",
offset = {
x = 145,
y = 74
x = 135,
y = 13
},
color = 0xFFFFFFFF,
@@ -1616,8 +1676,8 @@ function config.init()
bar = {
visibility = true,
offset = {
x = 10,
y = 75
x = 0,
y = 14
},
size = {
@@ -1681,7 +1741,7 @@ function config.init()
},
spacing = {
x = 270,
x = 300,
y = 24
},
@@ -1695,11 +1755,12 @@ function config.init()
highlighted_bar = "Me",
damage_bar_relative_to = "Top Damage", -- "total damage" or "top damage"
my_damage_bar_location = "First" -- "normal" or "first" or "last"
my_damage_bar_location = "First", -- "normal" or "first" or "last"
dps_mode = "First Hit"
},
sorting = {
type = "Damage", -- "normal" or "damage"
type = "Damage", -- "normal" or "damage" or "dps"
reversed_order = false
},
@@ -1729,7 +1790,7 @@ function config.init()
text = "%s",
offset = {
x = 5,
x = 45,
y = 0
},
color = 0xFFCCF4E1,
@@ -1806,6 +1867,26 @@ function config.init()
color = 0xFF000000
}
},
dps_label = {
visibility = true,
text = "%.1f",
offset = {
x = 265,
y = 0
},
color = 0xFFCCF4E1,
shadow = {
visibility = true,
offset = {
x = 1,
y = 1
},
color = 0xFF000000
}
},
total_damage_label = {
visibility = true,
@@ -1844,6 +1925,26 @@ function config.init()
color = 0xFF000000
}
},
total_dps_label = {
visibility = true,
text = "%.1f",
offset = {
x = 265,
y = 0
},
color = 0xFFFF7373,
shadow = {
visibility = true,
offset = {
x = 1,
y = 1
},
color = 0xFF000000
}
},
damage_bar = {
visibility = true,

View File

@@ -114,7 +114,9 @@ language.default_language = {
static_orientation = "Static Orientation",
hide_dead_or_captured = "Hide dead or captured",
hide_dead_or_captured = "Hide Dead or Captured",
render_highlighted_monster = "Render Highlighted Monster",
render_not_highlighted_monsters = "Render Not Highlighted Monsters",
opacity_falloff = "Opacity Falloff",
max_distance = "Max Distance",
@@ -189,7 +191,9 @@ language.default_language = {
player_name_label = "Player Name Label",
hunter_rank_label = "Hunter Rank Label",
damage_value_label = "Damage Value Label",
damage_percentage_label = "Damage Percetange Label",
damage_percentage_label = "Damage Percentage Label",
dps_label = "DPS Label",
total_dps_label = "Total DPS Label",
total_damage_label = "Total Damage Label",
total_damage_value_label = "Total Damage Value Label",
damage_bar = "Damage Bar",
@@ -232,6 +236,16 @@ language.default_language = {
word_player = "Word \"Player\"";
player_id = "Player ID",
player_name = "Player Name",
dps_mode = "DPS Mode",
dps = "DPS",
top_dps = "Top DPS",
total_dps = "Total DPS",
first_hit = "First Hit",
quest_time = "Quest Time",
join_time = "Join Time",
fight_time = "Fight Time"
}
};

View File

@@ -207,7 +207,7 @@ function large_monster.init_dynamic_UI(monster)
config.current_config.large_monster_UI.dynamic.rage.text_label,
config.current_config.large_monster_UI.dynamic.rage.value_label,
config.current_config.large_monster_UI.dynamic.rage.percentage_label,
config.current_config.large_monster_UI.static.rage.timer_label
config.current_config.large_monster_UI.dynamic.rage.timer_label
);
for REpart, part in pairs(monster.parts) do
@@ -561,11 +561,31 @@ function large_monster.draw_dynamic(monster, position_on_screen, opacity_scale)
drawing.draw_label(monster.dynamic_name_label, position_on_screen, opacity_scale, monster_name_text);
health_UI_entity.draw(monster, monster.health_dynamic_UI, position_on_screen, opacity_scale);
drawing.draw_capture_line(monster.health_dynamic_UI.bar, position_on_screen, opacity_scale, monster.capture_percentage);
local health_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.dynamic.health.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.dynamic.health.offset.y
};
stamina_UI_entity.draw(monster, monster.stamina_dynamic_UI, position_on_screen, opacity_scale);
rage_UI_entity.draw(monster, monster.rage_dynamic_UI, position_on_screen, opacity_scale);
local stamina_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.dynamic.stamina.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.dynamic.stamina.offset.y
};
local rage_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.dynamic.rage.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.dynamic.rage.offset.y
};
local parts_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.dynamic.parts.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.dynamic.parts.offset.y
};
health_UI_entity.draw(monster, monster.health_dynamic_UI, health_position_on_screen, opacity_scale);
drawing.draw_capture_line(monster.health_dynamic_UI.bar, health_position_on_screen, opacity_scale, monster.capture_percentage);
stamina_UI_entity.draw(monster, monster.stamina_dynamic_UI, stamina_position_on_screen, opacity_scale);
rage_UI_entity.draw(monster, monster.rage_dynamic_UI, rage_position_on_screen, opacity_scale);
--sort parts here
local displayed_parts = {};
@@ -612,8 +632,8 @@ function large_monster.draw_dynamic(monster, position_on_screen, opacity_scale)
for j, part in ipairs(displayed_parts) do
local part_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.dynamic.parts.offset.x + config.current_config.large_monster_UI.dynamic.parts.spacing.x * (j - 1),
y = position_on_screen.y + config.current_config.large_monster_UI.dynamic.parts.offset.y + config.current_config.large_monster_UI.dynamic.parts.spacing.y * (j - 1);
x = parts_position_on_screen.x + config.current_config.large_monster_UI.dynamic.parts.spacing.x * (j - 1),
y = parts_position_on_screen.y + config.current_config.large_monster_UI.dynamic.parts.spacing.y * (j - 1);
}
body_part.draw_dynamic(part, part_position_on_screen, opacity_scale);
@@ -646,12 +666,31 @@ function large_monster.draw_static(monster, position_on_screen, opacity_scale)
drawing.draw_label(monster.static_name_label, position_on_screen, opacity_scale, monster_name_text);
local health_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.static.health.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.static.health.offset.y
};
health_UI_entity.draw(monster, monster.health_static_UI, position_on_screen, opacity_scale);
drawing.draw_capture_line(monster.health_static_UI.bar, position_on_screen, opacity_scale, monster.capture_percentage);
local stamina_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.static.stamina.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.static.stamina.offset.y
};
stamina_UI_entity.draw(monster, monster.stamina_static_UI, position_on_screen, opacity_scale);
rage_UI_entity.draw(monster, monster.rage_static_UI, position_on_screen, opacity_scale);
local rage_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.static.rage.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.static.rage.offset.y
};
local parts_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.static.parts.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.static.parts.offset.y
};
health_UI_entity.draw(monster, monster.health_static_UI, health_position_on_screen, opacity_scale);
drawing.draw_capture_line(monster.health_static_UI.bar, health_position_on_screen, opacity_scale, monster.capture_percentage);
stamina_UI_entity.draw(monster, monster.stamina_static_UI, stamina_position_on_screen, opacity_scale);
rage_UI_entity.draw(monster, monster.rage_static_UI, rage_position_on_screen, opacity_scale);
--sort parts here
local displayed_parts = {};
@@ -698,8 +737,8 @@ function large_monster.draw_static(monster, position_on_screen, opacity_scale)
for j, part in ipairs(displayed_parts) do
local part_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.static.parts.offset.x + config.current_config.large_monster_UI.static.parts.spacing.x * (j - 1),
y = position_on_screen.y + config.current_config.large_monster_UI.static.parts.offset.y + config.current_config.large_monster_UI.static.parts.spacing.y * (j - 1);
x = parts_position_on_screen.x + config.current_config.large_monster_UI.static.parts.spacing.x * (j - 1),
y = parts_position_on_screen.y + config.current_config.large_monster_UI.static.parts.spacing.y * (j - 1);
}
body_part.draw_static(part, part_position_on_screen, opacity_scale);
@@ -732,12 +771,31 @@ function large_monster.draw_highlighted(monster, position_on_screen, opacity_sca
drawing.draw_label(monster.highlighted_name_label, position_on_screen, opacity_scale, monster_name_text);
local health_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.highlighted.health.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.highlighted.health.offset.y
};
health_UI_entity.draw(monster, monster.health_highlighted_UI, position_on_screen, opacity_scale);
drawing.draw_capture_line(monster.health_highlighted_UI.bar, position_on_screen, opacity_scale, monster.capture_percentage);
local stamina_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.highlighted.stamina.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.highlighted.stamina.offset.y
};
stamina_UI_entity.draw(monster, monster.stamina_highlighted_UI, position_on_screen, opacity_scale);
rage_UI_entity.draw(monster, monster.rage_highlighted_UI, position_on_screen, opacity_scale);
local rage_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.highlighted.rage.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.highlighted.rage.offset.y
};
local parts_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.highlighted.parts.offset.x,
y = position_on_screen.y + config.current_config.large_monster_UI.highlighted.parts.offset.y
};
health_UI_entity.draw(monster, monster.health_highlighted_UI, health_position_on_screen, opacity_scale);
drawing.draw_capture_line(monster.health_highlighted_UI.bar, health_position_on_screen, opacity_scale, monster.capture_percentage);
stamina_UI_entity.draw(monster, monster.stamina_highlighted_UI, stamina_position_on_screen, opacity_scale);
rage_UI_entity.draw(monster, monster.rage_highlighted_UI, rage_position_on_screen, opacity_scale);
--sort parts here
local displayed_parts = {};
@@ -784,8 +842,8 @@ function large_monster.draw_highlighted(monster, position_on_screen, opacity_sca
for j, part in ipairs(displayed_parts) do
local part_position_on_screen = {
x = position_on_screen.x + config.current_config.large_monster_UI.highlighted.parts.offset.x + config.current_config.large_monster_UI.highlighted.parts.spacing.x * (j - 1),
y = position_on_screen.y + config.current_config.large_monster_UI.highlighted.parts.offset.y + config.current_config.large_monster_UI.highlighted.parts.spacing.y * (j - 1);
x = parts_position_on_screen.x + config.current_config.large_monster_UI.highlighted.parts.spacing.x * (j - 1),
y = parts_position_on_screen.y + config.current_config.large_monster_UI.highlighted.parts.spacing.y * (j - 1);
}
body_part.draw_highlighted(part, part_position_on_screen, opacity_scale);

View File

@@ -234,9 +234,18 @@ end
function small_monster.draw(monster, position_on_screen, opacity_scale)
drawing.draw_label(monster.name_label, position_on_screen, opacity_scale, monster.name);
local health_position_on_screen = {
x = position_on_screen.x + config.current_config.small_monster_UI.health.offset.x,
y = position_on_screen.y + config.current_config.small_monster_UI.health.offset.y
};
local stamina_position_on_screen = {
x = position_on_screen.x + config.current_config.small_monster_UI.stamina.offset.x,
y = position_on_screen.y + config.current_config.small_monster_UI.stamina.offset.y
};
health_UI_entity.draw(monster, monster.health_UI, position_on_screen, opacity_scale);
stamina_UI_entity.draw(monster, monster.stamina_UI, position_on_screen, opacity_scale);
health_UI_entity.draw(monster, monster.health_UI, health_position_on_screen, opacity_scale);
stamina_UI_entity.draw(monster, monster.stamina_UI, stamina_position_on_screen, opacity_scale);
end
function small_monster.init_list()

View File

@@ -149,7 +149,17 @@ function damage_meter_UI.draw()
table.insert(reversed_quest_players, quest_players[i]);
end
quest_players = reversed_quest_players;
elseif config.current_config.damage_meter_UI.sorting.type == "Damage" then
elseif config.current_config.damage_meter_UI.sorting.type == "DPS" then
if config.current_config.damage_meter_UI.sorting.reversed_order then
table.sort(quest_players, function(left, right)
return left.dps < right.dps;
end);
else
table.sort(quest_players, function(left, right)
return left.dps > right.dps;
end);
end
else
if config.current_config.damage_meter_UI.sorting.reversed_order then
table.sort(quest_players, function(left, right)
return left.display.total_damage < right.display.total_damage;
@@ -173,10 +183,15 @@ function damage_meter_UI.draw()
end
local top_damage = 0;
local top_dps = 0;
for _, _player in ipairs(quest_players) do
if _player.display.total_damage > top_damage then
top_damage = _player.display.total_damage;
end
if _player.dps > top_dps then
top_dps = _player.dps;
end
end
-- draw
@@ -187,7 +202,7 @@ function damage_meter_UI.draw()
goto continue1
end
player.draw(_player, position_on_screen, 1, top_damage);
player.draw(_player, position_on_screen, 1, top_damage, top_dps);
if config.current_config.damage_meter_UI.settings.orientation == "Horizontal" then
position_on_screen.x = position_on_screen.x + config.current_config.damage_meter_UI.spacing.x;
@@ -210,7 +225,7 @@ function damage_meter_UI.draw()
drawing.draw_label(config.current_config.damage_meter_UI.total_damage_label, position_on_screen, 1, language.current_language.UI.total_damage);
drawing.draw_label(config.current_config.damage_meter_UI.total_damage_value_label, position_on_screen, 1, player.total.display.total_damage);
drawing.draw_label(config.current_config.damage_meter_UI.total_dps_label, position_on_screen, 1, player.total.dps);
end
function damage_meter_UI.init_module()

View File

@@ -70,7 +70,7 @@ function large_monster_UI.draw(dynamic_enabled, static_enabled, highlighted_enab
end
if dynamic_enabled then
large_monster_UI.draw_dynamic(displayed_monsters);
large_monster_UI.draw_dynamic(displayed_monsters, highlighted_monster);
end
if highlighted_enabled then
@@ -78,12 +78,12 @@ function large_monster_UI.draw(dynamic_enabled, static_enabled, highlighted_enab
end
if static_enabled then
large_monster_UI.draw_static(displayed_monsters);
large_monster_UI.draw_static(displayed_monsters, highlighted_monster);
end
end
function large_monster_UI.draw_dynamic(displayed_monsters)
function large_monster_UI.draw_dynamic(displayed_monsters, highlighted_monster)
local i = 0;
for _, monster in ipairs(displayed_monsters) do
if config.current_config.large_monster_UI.dynamic.settings.max_distance == 0 then
@@ -94,6 +94,16 @@ function large_monster_UI.draw_dynamic(displayed_monsters)
goto continue;
end
if monster == highlighted_monster then
if not config.current_config.large_monster_UI.dynamic.settings.render_highlighted_monster then
goto continue;
end
else
if not config.current_config.large_monster_UI.dynamic.settings.render_not_highlighted_monsters then
goto continue;
end
end
local position_on_screen = {};
local world_offset = Vector3f.new(config.current_config.large_monster_UI.dynamic.world_offset.x, config.current_config.large_monster_UI.dynamic.world_offset.y, config.current_config.large_monster_UI.dynamic.world_offset.z);
@@ -123,7 +133,7 @@ function large_monster_UI.draw_dynamic(displayed_monsters)
end
end
function large_monster_UI.draw_static(displayed_monsters)
function large_monster_UI.draw_static(displayed_monsters, highlighted_monster)
-- sort here
if config.current_config.large_monster_UI.static.sorting.type == "Normal" and config.current_config.large_monster_UI.static.sorting.reversed_order then
local reversed_monsters = {};
@@ -173,6 +183,16 @@ function large_monster_UI.draw_static(displayed_monsters)
goto continue;
end
if monster == highlighted_monster then
if not config.current_config.large_monster_UI.static.settings.render_highlighted_monster then
goto continue;
end
else
if not config.current_config.large_monster_UI.static.settings.render_not_highlighted_monsters then
goto continue;
end
end
local monster_position_on_screen = {
x = position_on_screen.x,
y = position_on_screen.y

View File

@@ -1,45 +1,24 @@
local time_UI = {};
local singletons;
local customization_menu;
local time;
local screen;
local config;
local drawing;
local quest_manager_type_def = sdk.find_type_definition("snow.QuestManager");
local get_quest_elapsed_time_min_method = quest_manager_type_def:get_method("getQuestElapsedTimeMin");
local get_quest_elapseD_time_sec_method = quest_manager_type_def:get_method("getQuestElapsedTimeSec");
function time_UI.draw()
if singletons.quest_manager == nil then
return;
end
local elapsed_minutes = time.elapsed_minutes;
local elapsed_seconds = time.elapsed_seconds;
local quest_time_elapsed_minutes = get_quest_elapsed_time_min_method:call( singletons.quest_manager);
if quest_time_elapsed_minutes == nil then
customization_menu.status = "No quest time elapsed minutes";
if elapsed_seconds == 0 and elapsed_minutes == 0 then
return;
end
local quest_time_total_elapsed_seconds = get_quest_elapseD_time_sec_method:call(singletons.quest_manager);
if quest_time_total_elapsed_seconds == nil then
customization_menu.status = "No quest time total elapsed seconds";
return;
end
if quest_time_total_elapsed_seconds == 0 then
return;
end
local quest_time_elapsed_seconds = quest_time_total_elapsed_seconds - quest_time_elapsed_minutes * 60;
local position_on_screen = screen.calculate_absolute_coordinates(config.current_config.time_UI.position);
drawing.draw_label(config.current_config.time_UI.time_label, position_on_screen, 1, quest_time_elapsed_minutes, quest_time_elapsed_seconds);
drawing.draw_label(config.current_config.time_UI.time_label, position_on_screen, 1, elapsed_minutes, elapsed_seconds);
end
function time_UI.init_module()
singletons = require("MHR_Overlay.Game_Handler.singletons");
customization_menu = require("MHR_Overlay.UI.customization_menu");
time = require("MHR_Overlay.Game_Handler.time");
screen = require("MHR_Overlay.Game_Handler.screen");
config = require("MHR_Overlay.Misc.config");
drawing = require("MHR_Overlay.UI.drawing");

View File

@@ -5,13 +5,14 @@ local config;
local player;
local language;
function damage_UI_entity.new(bar, highlighted_bar, player_name_label, hunter_rank_label, value_label, percentage_label)
function damage_UI_entity.new(bar, highlighted_bar, player_name_label, dps_label, hunter_rank_label, value_label, percentage_label)
local entity = {};
--entity.visibility = visibility;
entity.bar = table_helpers.deep_copy(bar);
entity.highlighted_bar = table_helpers.deep_copy(highlighted_bar);
entity.player_name_label = table_helpers.deep_copy(player_name_label);
entity.dps_label = table_helpers.deep_copy(dps_label);
entity.hunter_rank_label = table_helpers.deep_copy(hunter_rank_label);
entity.value_label = table_helpers.deep_copy(value_label);
entity.percentage_label = table_helpers.deep_copy(percentage_label);
@@ -19,7 +20,7 @@ function damage_UI_entity.new(bar, highlighted_bar, player_name_label, hunter_ra
return entity;
end
function damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_damage)
function damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_damage, top_dps)
local player_include = config.current_config.damage_meter_UI.player_name_label.include.others;
if _player.id == _player.myself_id then
@@ -56,10 +57,14 @@ function damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_d
end
end
x = string.format("%s / %s", tostring(_player.dps), tostring(top_dps));
if _player.id == player.myself_id and config.current_config.damage_meter_UI.settings.highlighted_bar == "Me" then
drawing.draw_bar(_player.damage_UI.highlighted_bar, position_on_screen, opacity_scale, player_damage_bar_percentage);
elseif config.current_config.damage_meter_UI.settings.highlighted_bar == "Top Damage" and _player.display.total_damage == top_damage then
drawing.draw_bar(_player.damage_UI.highlighted_bar, position_on_screen, opacity_scale, player_damage_bar_percentage);
elseif config.current_config.damage_meter_UI.settings.highlighted_bar == "Top DPS" and _player.dps == top_dps then
drawing.draw_bar(_player.damage_UI.highlighted_bar, position_on_screen, opacity_scale, player_damage_bar_percentage);
else
drawing.draw_bar(_player.damage_UI.bar, position_on_screen, opacity_scale, player_damage_bar_percentage);
end
@@ -75,6 +80,7 @@ function damage_UI_entity.draw(_player, position_on_screen, opacity_scale, top_d
drawing.draw_label(_player.damage_UI.player_name_label, position_on_screen, opacity_scale, player_name_text);
drawing.draw_label(_player.damage_UI.value_label, position_on_screen, opacity_scale, _player.display.total_damage);
drawing.draw_label(_player.damage_UI.percentage_label, position_on_screen, opacity_scale, 100 * player_damage_percentage);
drawing.draw_label(_player.damage_UI.dps_label, position_on_screen, opacity_scale, _player.dps);
end
function damage_UI_entity.init_module()

View File

@@ -45,6 +45,7 @@ customization_menu.damage_meter_UI_highlighted_bar_types = {};
customization_menu.damage_meter_UI_damage_bar_relative_types = {};
customization_menu.damage_meter_UI_my_damage_bar_location_types = {};
customization_menu.damage_meter_UI_sorting_types = {};
customization_menu.damage_meter_UI_dps_modes = {};
customization_menu.fonts = {"Arial", "Arial Black", "Bahnschrift", "Calibri", "Cambria", "Cambria Math", "Candara",
"Comic Sans MS", "Consolas", "Constantia", "Corbel", "Courier New", "Ebrima",
@@ -63,15 +64,18 @@ customization_menu.small_monster_UI_sorting_type_index = 1;
customization_menu.large_monster_UI_orientation_index = 1;
customization_menu.large_monster_UI_sorting_type_index = 1;
customization_menu.large_monster_UI_highlighted_monster_location_index = 1;
customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = 1;
customization_menu.large_monster_static_UI_parts_sorting_type_index = 1;
customization_menu.large_monster_highlighted_UI_parts_sorting_type_index = 1;
customization_menu.damage_meter_UI_orientation_index = 1;
customization_menu.damage_meter_UI_sorting_type_index = 1;
customization_menu.damage_meter_UI_highlighted_bar_index = 1;
customization_menu.damage_meter_UI_damage_bar_relative_index = 1;
customization_menu.damage_meter_UI_my_damage_bar_location_index = 1;
customization_menu.damage_meter_UI_dps_mode_index = 1;
customization_menu.small_monster_UI_anchor_index = 1;
customization_menu.large_monster_UI_anchor_index = 1;
@@ -106,11 +110,11 @@ function customization_menu.init()
customization_menu.displayed_monster_UI_sorting_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.health, language.current_language.customization_menu.health_percentage, language.current_language.customization_menu.distance};
customization_menu.displayed_large_monster_UI_parts_sorting_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.health, language.current_language.customization_menu.health_percentage};
customization_menu.displayed_damage_meter_UI_highlighted_bar_types = {language.current_language.customization_menu.me, language.current_language.customization_menu.top_damage, language.current_language.customization_menu.none};
customization_menu.displayed_damage_meter_UI_highlighted_bar_types = {language.current_language.customization_menu.me, language.current_language.customization_menu.top_damage, language.current_language.customization_menu.top_dps, language.current_language.customization_menu.none};
customization_menu.displayed_damage_meter_UI_damage_bar_relative_types = {language.current_language.customization_menu.total_damage, language.current_language.customization_menu.top_damage};
customization_menu.displayed_damage_meter_UI_my_damage_bar_location_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.first, language.current_language.customization_menu.last};
customization_menu.displayed_damage_meter_UI_sorting_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.damage};
customization_menu.displayed_damage_meter_UI_sorting_types = {language.current_language.customization_menu.normal, language.current_language.customization_menu.damage, language.current_language.customization_menu.dps};
customization_menu.displayed_damage_meter_UI_dps_modes = {language.current_language.customization_menu.first_hit, language.current_language.customization_menu.quest_time, language.current_language.customization_menu.join_time};
@@ -121,12 +125,11 @@ function customization_menu.init()
customization_menu.monster_UI_sorting_types = {language.default_language.customization_menu.normal, language.default_language.customization_menu.health, language.default_language.customization_menu.health_percentage, language.default_language.customization_menu.distance};
customization_menu.large_monster_UI_parts_sorting_types = {language.default_language.customization_menu.normal, language.default_language.customization_menu.health, language.default_language.customization_menu.health_percentage};
customization_menu.damage_meter_UI_highlighted_bar_types = {language.default_language.customization_menu.me, language.default_language.customization_menu.top_damage, language.default_language.customization_menu.none};
customization_menu.damage_meter_UI_highlighted_bar_types = {language.default_language.customization_menu.me, language.default_language.customization_menu.top_damage, language.default_language.customization_menu.top_dps, language.default_language.customization_menu.none};
customization_menu.damage_meter_UI_damage_bar_relative_types = {language.default_language.customization_menu.total_damage, language.default_language.customization_menu.top_damage};
customization_menu.damage_meter_UI_my_damage_bar_location_types = {language.default_language.customization_menu.normal, language.default_language.customization_menu.first, language.default_language.customization_menu.last};
customization_menu.damage_meter_UI_sorting_types = {language.default_language.customization_menu.normal, language.default_language.customization_menu.damage};
customization_menu.damage_meter_UI_sorting_types = {language.default_language.customization_menu.normal, language.default_language.customization_menu.damage, language.default_language.customization_menu.dps};
customization_menu.damage_meter_UI_dps_modes = {language.default_language.customization_menu.first_hit, language.default_language.customization_menu.quest_time, language.default_language.customization_menu.join_time};
@@ -146,6 +149,9 @@ function customization_menu.init()
customization_menu.large_monster_UI_sorting_type_index = table_helpers.find_index(
customization_menu.monster_UI_sorting_types, config.current_config.large_monster_UI.static.sorting.type, false);
customization_menu.large_monster_UI_highlighted_monster_location_index = table_helpers.find_index(
customization_menu.damage_meter_UI_my_damage_bar_location_types, config.current_config.large_monster_UI.static.settings.highlighted_monster_location, false);
customization_menu.large_monster_dynamic_UI_parts_sorting_type_index = table_helpers.find_index(
customization_menu.large_monster_UI_parts_sorting_types,
config.current_config.large_monster_UI.dynamic.parts.sorting.type, false);
@@ -154,6 +160,10 @@ function customization_menu.init()
customization_menu.large_monster_UI_parts_sorting_types,
config.current_config.large_monster_UI.static.parts.sorting.type, false);
customization_menu.large_monster_highlighted_UI_parts_sorting_type_index = table_helpers.find_index(
customization_menu.large_monster_UI_parts_sorting_types,
config.current_config.large_monster_UI.highlighted.parts.sorting.type, false);
customization_menu.damage_meter_UI_orientation_index = table_helpers.find_index(customization_menu.orientation_types,
config.current_config.damage_meter_UI.settings.orientation, false);
@@ -172,6 +182,11 @@ function customization_menu.init()
customization_menu.damage_meter_UI_sorting_type_index = table_helpers.find_index(
customization_menu.damage_meter_UI_sorting_types, config.current_config.damage_meter_UI.sorting.type, false);
customization_menu.damage_meter_UI_dps_mode_index = table_helpers.find_index(
customization_menu.damage_meter_UI_dps_modes, config.current_config.damage_meter_UI.settings.dps_mode, false);
customization_menu.selected_font_index = table_helpers.find_index(customization_menu.fonts,
config.current_config.global_settings.UI_font.family, false);
@@ -220,6 +235,10 @@ function customization_menu.draw()
imgui.checkbox(language.current_language.customization_menu.large_monster_static_UI, config.current_config.large_monster_UI.static.enabled);
config_changed = config_changed or changed;
changed, config.current_config.large_monster_UI.highlighted.enabled =
imgui.checkbox(language.current_language.customization_menu.large_monster_highlighted_UI, config.current_config.large_monster_UI.highlighted.enabled);
config_changed = config_changed or changed;
changed, config.current_config.time_UI.enabled = imgui.checkbox(language.current_language.customization_menu.time_UI, config.current_config.time_UI.enabled);
config_changed = config_changed or changed;
imgui.same_line();
@@ -1168,6 +1187,14 @@ function customization_menu.draw()
large_monster_UI.dynamic.settings.hide_dead_or_captured);
config_changed = config_changed or changed;
changed, config.current_config.large_monster_UI.dynamic.settings.render_highlighted_monster = imgui.checkbox(language.current_language.customization_menu.render_highlighted_monster, config.current_config.
large_monster_UI.dynamic.settings.render_highlighted_monster);
config_changed = config_changed or changed;
changed, config.current_config.large_monster_UI.dynamic.settings.render_not_highlighted_monsters = imgui.checkbox(language.current_language.customization_menu.render_not_highlighted_monsters, config.current_config.
large_monster_UI.dynamic.settings.render_not_highlighted_monsters);
config_changed = config_changed or changed;
changed, config.current_config.large_monster_UI.dynamic.settings.opacity_falloff =
imgui.checkbox(language.current_language.customization_menu.opacity_falloff, config.current_config.large_monster_UI.dynamic.settings.opacity_falloff);
config_changed = config_changed or changed;
@@ -1312,6 +1339,22 @@ function customization_menu.draw()
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.large_monster_UI.dynamic.health.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.large_monster_UI.dynamic.health.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
changed, config.current_config.large_monster_UI.dynamic.health.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.large_monster_UI.dynamic.health.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.text_label) then
changed, config.current_config.large_monster_UI.dynamic.health.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.large_monster_UI.dynamic.health.text_label.visibility);
@@ -1647,6 +1690,22 @@ function customization_menu.draw()
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.large_monster_UI.dynamic.stamina.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.large_monster_UI.dynamic.stamina.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
changed, config.current_config.large_monster_UI.dynamic.stamina.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.large_monster_UI.dynamic.stamina.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.text_label) then
changed, config.current_config.large_monster_UI.dynamic.stamina.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.large_monster_UI.dynamic.stamina.text_label.visibility);
@@ -1918,6 +1977,22 @@ function customization_menu.draw()
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.large_monster_UI.dynamic.rage.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.large_monster_UI.dynamic.rage.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
changed, config.current_config.large_monster_UI.dynamic.rage.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.large_monster_UI.dynamic.rage.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
large_monster_dynamic_UI_changed = large_monster_dynamic_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.text_label) then
changed, config.current_config.large_monster_UI.dynamic.rage.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.large_monster_UI.dynamic.rage.text_label.visibility);
@@ -2677,6 +2752,27 @@ function customization_menu.draw()
changed, config.current_config.large_monster_UI.static.settings.hide_dead_or_captured = imgui.checkbox(language.current_language.customization_menu.hide_dead_or_captured, config.current_config.
large_monster_UI.static.settings.hide_dead_or_captured);
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
changed, config.current_config.large_monster_UI.static.settings.render_highlighted_monster = imgui.checkbox(language.current_language.customization_menu.render_highlighted_monster, config.current_config.
large_monster_UI.static.settings.render_highlighted_monster);
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
changed, config.current_config.large_monster_UI.static.settings.render_not_highlighted_monsters = imgui.checkbox(language.current_language.customization_menu.render_not_highlighted_monsters, config.current_config.
large_monster_UI.static.settings.render_not_highlighted_monsters);
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
changed, customization_menu.large_monster_UI_highlighted_monster_location_index =
imgui.combo(language.current_language.customization_menu.highlighted_monster_location, customization_menu.large_monster_UI_highlighted_monster_location_index,
customization_menu.displayed_damage_meter_UI_my_damage_bar_location_types);
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if changed then
config.current_config.large_monster_UI.static.settings.highlighted_monster_location =
customization_menu.damage_meter_UI_my_damage_bar_location_types[customization_menu.large_monster_UI_highlighted_monster_location_index];
end
changed, customization_menu.large_monster_UI_orientation_index = imgui.combo(language.current_language.customization_menu.orientation,
customization_menu.large_monster_UI_orientation_index, customization_menu.displayed_orientation_types);
@@ -2843,6 +2939,22 @@ function customization_menu.draw()
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.large_monster_UI.static.health.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.large_monster_UI.static.health.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
changed, config.current_config.large_monster_UI.static.health.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.large_monster_UI.static.health.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.text_label) then
changed, config.current_config.large_monster_UI.static.health.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.large_monster_UI.static.health.text_label.visibility);
@@ -3178,6 +3290,22 @@ function customization_menu.draw()
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.large_monster_UI.static.stamina.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.large_monster_UI.static.stamina.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
changed, config.current_config.large_monster_UI.static.stamina.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.large_monster_UI.static.stamina.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.text_label) then
changed, config.current_config.large_monster_UI.static.stamina.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.large_monster_UI.static.stamina.text_label.visibility);
@@ -3448,6 +3576,22 @@ function customization_menu.draw()
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.large_monster_UI.static.rage.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.large_monster_UI.static.rage.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
changed, config.current_config.large_monster_UI.static.rage.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.large_monster_UI.static.rage.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
large_monster_static_UI_changed = large_monster_static_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.text_label) then
changed, config.current_config.large_monster_UI.static.rage.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.large_monster_UI.static.rage.text_label.visibility);
@@ -4327,6 +4471,22 @@ function customization_menu.draw()
config_changed = config_changed or changed;
large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.large_monster_UI.highlighted.health.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.large_monster_UI.highlighted.health.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed;
changed, config.current_config.large_monster_UI.highlighted.health.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.large_monster_UI.highlighted.health.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.text_label) then
changed, config.current_config.large_monster_UI.highlighted.health.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.large_monster_UI.highlighted.health.text_label.visibility);
@@ -4662,6 +4822,22 @@ function customization_menu.draw()
config_changed = config_changed or changed;
large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.large_monster_UI.highlighted.stamina.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.large_monster_UI.highlighted.stamina.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed;
changed, config.current_config.large_monster_UI.highlighted.stamina.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.large_monster_UI.highlighted.stamina.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.text_label) then
changed, config.current_config.large_monster_UI.highlighted.stamina.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.large_monster_UI.highlighted.stamina.text_label.visibility);
@@ -4932,6 +5108,22 @@ function customization_menu.draw()
config_changed = config_changed or changed;
large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.large_monster_UI.highlighted.rage.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.large_monster_UI.highlighted.rage.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed;
changed, config.current_config.large_monster_UI.highlighted.rage.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.large_monster_UI.highlighted.rage.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
large_monster_highlighted_UI_changed = large_monster_highlighted_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.text_label) then
changed, config.current_config.large_monster_UI.highlighted.rage.text_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.large_monster_UI.highlighted.rage.text_label.visibility);
@@ -5833,6 +6025,16 @@ function customization_menu.draw()
customization_menu.damage_meter_UI_my_damage_bar_location_types[customization_menu.damage_meter_UI_my_damage_bar_location_index];
end
changed, customization_menu.damage_meter_UI_dps_mode_index =
imgui.combo(language.current_language.customization_menu.dps_mode, customization_menu.damage_meter_UI_dps_mode_index,
customization_menu.displayed_damage_meter_UI_dps_modes);
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if changed then
config.current_config.damage_meter_UI.settings.dps_mode =
customization_menu.damage_meter_UI_dps_modes[customization_menu.damage_meter_UI_dps_mode_index];
end
imgui.tree_pop();
end
@@ -6277,6 +6479,72 @@ function customization_menu.draw()
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.dps_label) then
changed, config.current_config.damage_meter_UI.dps_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.damage_meter_UI.dps_label.visibility);
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
-- add text format
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.damage_meter_UI.dps_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.damage_meter_UI.dps_label.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.dps_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.damage_meter_UI.dps_label.offset.y, 0.1, -screen.height, screen.height, "%.1f");
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.color) then
changed, config.current_config.damage_meter_UI.dps_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.dps_label.color, customization_menu.color_picker_flags);
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.shadow) then
changed, config.current_config.damage_meter_UI.dps_label.shadow.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.damage_meter_UI.dps_label.shadow.visibility);
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.damage_meter_UI.dps_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.damage_meter_UI.dps_label.shadow.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.dps_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.damage_meter_UI.dps_label.shadow.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.color) then
changed, config.current_config.damage_meter_UI.dps_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.dps_label.shadow.color, customization_menu.color_picker_flags);
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop();
end
imgui.tree_pop();
end
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.total_damage_label) then
changed, config.current_config.damage_meter_UI.total_damage_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.damage_meter_UI.total_damage_label.visibility);
@@ -6408,6 +6676,72 @@ function customization_menu.draw()
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.total_dps_label) then
changed, config.current_config.damage_meter_UI.total_dps_label.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.damage_meter_UI.total_dps_label.visibility);
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
-- add text format
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.damage_meter_UI.total_dps_label.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.damage_meter_UI.total_dps_label.offset.x, 0.1, -screen.width, screen.width, "%.1f");
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.total_dps_label.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.damage_meter_UI.total_dps_label.offset.y, 0.1, -screen.height, screen.height, "%.1f");
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.color) then
changed, config.current_config.damage_meter_UI.total_dps_label.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.total_dps_label.color, customization_menu.color_picker_flags);
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.shadow) then
changed, config.current_config.damage_meter_UI.total_dps_label.shadow.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.damage_meter_UI.total_dps_label.shadow.visibility);
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
if imgui.tree_node(language.current_language.customization_menu.offset) then
changed, config.current_config.damage_meter_UI.total_dps_label.shadow.offset.x = imgui.drag_float(language.current_language.customization_menu.x,
config.current_config.damage_meter_UI.total_dps_label.shadow.offset.x, 0.1, -screen.width, screen.width,
"%.1f");
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
changed, config.current_config.damage_meter_UI.total_dps_label.shadow.offset.y = imgui.drag_float(language.current_language.customization_menu.y,
config.current_config.damage_meter_UI.total_dps_label.shadow.offset.y, 0.1, -screen.height, screen.height,
"%.1f");
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.color) then
changed, config.current_config.damage_meter_UI.total_dps_label.shadow.color = imgui.color_picker_argb("", config.current_config.damage_meter_UI.total_dps_label.shadow.color, customization_menu.color_picker_flags);
config_changed = config_changed or changed;
damage_meter_UI_changed = damage_meter_UI_changed or changed;
imgui.tree_pop();
end
imgui.tree_pop();
end
imgui.tree_pop();
end
if imgui.tree_node(language.current_language.customization_menu.damage_bar) then
changed, config.current_config.damage_meter_UI.damage_bar.visibility = imgui.checkbox(language.current_language.customization_menu.visible,
config.current_config.damage_meter_UI.damage_bar.visibility);

View File

@@ -30,22 +30,27 @@
"damage_bar": "Damage Bar",
"damage_bars_are_relative_to": "Damage Bars are relative to",
"damage_meter_UI": "Damage Meter UI",
"damage_percentage_label": "Damage Percetange Label",
"damage_percentage_label": "Damage Percentage Label",
"damage_value_label": "Damage Value Label",
"distance": "Distance",
"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",
"enabled": "Enabled",
"family": "Family",
"fight_time": "Fight Time",
"first": "First",
"first_hit": "First Hit",
"foreground": "Foreground",
"global_settings": "Global Settings",
"health": "Health",
"health_percentage": "Health Percentage",
"height": "Height",
"hide_dead_or_captured": "Hide dead or captured",
"hide_dead_or_captured": "Hide Dead or Captured",
"hide_module_if_total_damage_is_zero": "Hide Module if Total Damage is 0",
"hide_player_if_player_damage_is_zero": "Hide Player if Player Damage is 0",
"hide_total_if_total_damage_is_zero": "Hide Total if Total Damage is 0",
@@ -59,6 +64,7 @@
"include": "Include",
"installation_damage": "Installation Damage",
"italic": "Italic",
"join_time": "Join Time",
"kunai_damage": "Kunai Damage",
"language": "Language",
"large_monster_UI": "Large Monster UI",
@@ -97,7 +103,10 @@
"position": "Position",
"prioritize_large_monsters": "Large Monsters on High Priority",
"quest_summary_screen": "Quest Summary Screen",
"quest_time": "Quest Time",
"rage": "Rage",
"render_highlighted_monster": "Render Highlighted Monster",
"render_not_highlighted_monsters": "Render Not Highlighted Monsters",
"reversed_order": "Reversed Order",
"settings": "Settings",
"shadow": "Shadow",
@@ -118,12 +127,15 @@
"time_label": "Time Label",
"timer_label": "Timer Label",
"top_damage": "Top Damage",
"top_dps": "Top DPS",
"top_left": "Top-Left",
"top_right": "Top-Right",
"total_damage": "Total Damage",
"total_damage_label": "Total Damage Label",
"total_damage_offset_is_relative": "Total Damage Offset is Relative",
"total_damage_value_label": "Total Damage Value Label",
"total_dps": "Total DPS",
"total_dps_label": "Total DPS Label",
"tracked_damage_types": "Tracked Damage Types",
"tracked_monster_types": "Tracked Monster Types",
"training_area": "Training Area",

View File

@@ -33,14 +33,18 @@
"damage_percentage_label": "대미지 비율 라벨",
"damage_value_label": "대미지 값 라벨",
"distance": "거리",
"dps": "DPS",
"dps_label": "DPS Label",
"dps_mode": "DPS Mode",
"during_quest": "퀘스트 중",
"dynamic_positioning": "유동 위치",
"dynamically_positioned": "유동 위치 UI",
"enable_for": "Enable for",
"enable_on": "Enable on",
"enabled": "사용함",
"family": "글꼴",
"fight_time": "Fight Time",
"first": "처음",
"first_hit": "First Hit",
"font": "글꼴",
"font_notice": "글꼴 설정 변경시 스크립트 리로드가 필수입니다!",
"foreground": "전경색",
@@ -63,6 +67,7 @@
"include": "포함",
"installation_damage": "설비 대미지",
"italic": "기울임",
"join_time": "Join Time",
"kunai_damage": "쿠나이 대미지",
"language": "언어",
"large_monster_UI": "대형 몬스터 UI",
@@ -101,7 +106,10 @@
"position": "위치",
"prioritize_large_monsters": "대형 몬스터를 우선적으로",
"quest_summary_screen": "퀘스트 결과 화면",
"quest_time": "Quest Time",
"rage": "분노",
"render_highlighted_monster": "Render Highlighted Monster",
"render_not_highlighted_monsters": "Render Not Highlighted Monsters",
"reversed_order": "역순",
"settings": "설정",
"shadow": "그림자",
@@ -122,12 +130,15 @@
"time_label": "시간 라벨",
"timer_label": "타이머 라벨",
"top_damage": "최고 대미지",
"top_dps": "Top DPS",
"top_left": "좌상단",
"top_right": "우상단",
"total_damage": "총 대미지",
"total_damage_label": "총 대미지 라벨",
"total_damage_offset_is_relative": "총 대미지 위치를 상대적 위치로",
"total_damage_value_label": "총 대미지 값 라벨",
"total_dps": "Total DPS",
"total_dps_label": "Total DPS Label",
"tracked_damage_types": "추적할 대미지 종류",
"tracked_monster_types": "추적할 몬스터 타입",
"training_area": "훈련장",
@@ -136,7 +147,6 @@
"vertical": "세로",
"viewport_offset": "뷰포트 옵셋",
"visible": "표시함",
"visible_on": "Visible on",
"width": "너비",
"word_player": "\"헌터\" 명칭",
"world_offset": "전역 옵셋",

View File

@@ -0,0 +1,196 @@
{
"UI": {
"HP": "ОЗ:",
"gold": "Золото",
"mini": "Мини",
"player": "Игрок",
"rage": "Ярость:",
"silver": "Серебро",
"stamina": "Выносливость:",
"total_damage": "Общий урон"
},
"customization_menu": {
"UI_font": "Шрифт интерфейса",
"UI_font_notice": "Любые изменения шрифта требуют перезагрузку скрипта!",
"anchor": "Привязка",
"background": "Фон",
"bar": "Шкала",
"body_parts": "Части тела",
"bold": "Жирный",
"bomb_damage": "Урон от бомб",
"bottom_left": "Левый нижний угол",
"bottom_right": "Правй нижний угол",
"break_count": "Счётчик повреждений",
"capture_line": "Линия здоровья захвата",
"color": "Цвет",
"colors": "Цвета",
"crown": "Корона",
"crown_thresholds": "Лимиты корон",
"damage": "Урон",
"damage_bar": "Шкала урона",
"damage_bars_are_relative_to": "Шкалы урона расположены относительно к",
"damage_meter_UI": "Интерфейс модуля урона",
"damage_percentage_label": "Метка урона в процентах",
"damage_value_label": "Метка значений урона",
"distance": "Расстояние",
"dps": "Урон в секунду",
"dps_label": "Метка урона в секунду",
"dps_mode": "Режим урона в секунду",
"during_quest": "Во время квеста",
"dynamic_positioning": "Динамическое позиционирование",
"dynamically_positioned": "Рассположенный динамично",
"enable_for": "Показывать для",
"enabled": "Включить",
"family": "Семейство",
"fight_time": "Время в бою",
"first": "Первый",
"first_hit": "Первый удар",
"foreground": "Передний план",
"global_settings": "Общие настройки",
"health": "Здоровье",
"health_percentage": "Здоровье в процентах",
"height": "Высота",
"hide_dead_or_captured": "Скрыть мёртвых и захваченных монстров",
"hide_module_if_total_damage_is_zero": "Скрыть модуль, если общий урон равен 0",
"hide_player_if_player_damage_is_zero": "Скрыть игрока, если его урон равен 0",
"hide_total_if_total_damage_is_zero": "Скрыть общий урон, если он равен 0",
"hide_undamaged_parts": "Скрыть неповреждённые части тела",
"highlighted": "Помеченный",
"highlighted_bar": "Помеченная шкала",
"highlighted_damage_bar": "Помеченная шкала урона",
"horizontal": "Горизонтально",
"hunter_rank": "Ранг охотника",
"hunter_rank_label": "Метка ранга охотника",
"include": "Элементы",
"installation_damage": "Урон от установок",
"italic": "Курсив",
"join_time": "Время присоединения",
"kunai_damage": "Урон от кунаев",
"language": "Язык",
"large_monster_UI": "Интерфейс больший монстров",
"large_monster_dynamic_UI": "Динамический интерфейс больших монстров",
"large_monster_highlighted_UI": "Интерфейс помеченного большого монстра",
"large_monster_static_UI": "Статический интерфейс больших монстров",
"large_monsters": "Большие монстры",
"last": "Последний",
"max_distance": "Макс. расстояние",
"max_monster_updates_per_tick": "Макс. кол-во обновлений за тик",
"me": "Я",
"menu_font": "Шрифт меню",
"mod_name": "MHR Overlay",
"module_visibility_on_different_screens": "Видимость модулей на разных экранах",
"modules": "Модули",
"monster_can_be_captured": "Монстр может быть схвачен",
"monster_damage": "Урон от монстров",
"monster_name": "Имя монстра",
"monster_name_label": "Метка имени монстра",
"my_damage_bar_location": "Позиция моей шкалы урона",
"none": "Нет",
"normal": "Обычный",
"offset": "Сдвиг",
"opacity_falloff": "Увеличение прозрачности от расстояния",
"orientation": "Ориентация",
"other_players": "Другие игроки",
"otomo_damage": "Урон от отомо",
"part_name": "Имя части тела",
"part_name_label": "Метка имени части тела",
"percentage_label": "Метка процентов",
"performance": "Производительность",
"player_damage": "Урон игрока",
"player_id": "ИД игрока",
"player_name": "Имя игрока",
"player_name_label": "Метка имени игрока",
"position": "Расположение",
"prioritize_large_monsters": "Большие монстры в приоритете",
"quest_summary_screen": "Экран результатов квеста",
"quest_time": "Quest Time",
"rage": "Ярость",
"render_highlighted_monster": "Показывать помеченного монстра",
"render_not_highlighted_monsters": "Показывать непомеченных монстров",
"reversed_order": "Обратный порядок",
"settings": "Настройки",
"shadow": "Тень",
"size": "Размер",
"small_monster_UI": "Интерфейс малых монстров",
"small_monsters": "Малые монстры",
"sorting": "Сортировка",
"spacing": "Расстояние между элементами",
"stamina": "Выносливость",
"static_orientation": "Статичная ориентация",
"static_position": "Статичное расположение",
"static_sorting": "Статичная сортировка",
"static_spacing": "Статичное расстояние между элементами",
"statically_positioned": "Рассположенный статично",
"status": "Статус",
"text_label": "Текстовая метка",
"time_UI": "Интерфейс времени",
"time_label": "Метка времени",
"timer_label": "Метка таймера",
"top_damage": "Наибольший урон",
"top_dps": "Наибольший урон в секунду",
"top_left": "Левый верхний угол",
"top_right": "Правый верхний угол",
"total_damage": "Общий урон",
"total_damage_label": "Метка общего урона",
"total_damage_offset_is_relative": "Относительный сдвиг общего урона",
"total_damage_value_label": "Метка значений общего урона",
"total_dps": "Общий урон в секунду",
"total_dps_label": "Метка общего урона в секунду",
"tracked_damage_types": "Отслеживаемые типы урона",
"tracked_monster_types": "Отслеживаемые типы монстров",
"training_area": "Тренировочная зона",
"type": "Тип",
"value_label": "Метка значений",
"vertical": "Вертикально",
"viewport_offset": "Сдвиг в экранном пространстве",
"visible": "Включить",
"width": "Ширина",
"word_player": "Слово \"Игрок\"",
"world_offset": "Сдвиг в игровом пространстве",
"x": "X",
"y": "Y",
"z": "Z"
},
"font_name": "NotoSansKR-Bold.otf",
"parts": {
"abdomen": "Брюхо",
"arms": "Передние лапы",
"back": "Спина",
"back_windsac": "Спина (мешочек)",
"body": "Тело",
"carapace": "Панцирь",
"chest_windsac": "Грудь (мешочек)",
"claw": "Когти",
"dorsal_fin": "Спинной плавник",
"head": "Голова",
"head_mud": "Голова (в грязи)",
"large_mudbulb": "Большой мешочек грязи",
"left_arm": "Передняя лапа Л",
"left_arm_ice": "Передняя лапа Л (во льду)",
"left_cutwing": "Крыло Л",
"left_leg": "Задняя лапа Л",
"left_legs": "Левые лапы",
"left_wing": "Крыло Л",
"legs": "Задние лапы",
"lower_back": "Нижняя часть спины",
"lower_body": "Нижняя часть тела",
"mane": "Грива",
"neck": "Шея",
"rear": "Зад",
"right_arm": "Передняя лапа П",
"right_arm_ice": "Передняя лапа П (во льду)",
"right_cutwing": "Крыло П",
"right_leg": "Задняя лапа П",
"right_legs": "Правые лапы",
"right_wing": "Крыло П",
"rock": "Камень",
"spinning": "Вращение",
"tail": "Хвост",
"tail_mud": "Хвост (в грязи)",
"tail_windsac": "Хвост (мешочек)",
"torso": "Торс",
"upper_back": "Верхняя часть спины",
"upper_body": "Верхняя часть тела",
"wings": "Крылья"
}
}

View File

@@ -33,6 +33,9 @@
"damage_percentage_label": "傷害量百分比",
"damage_value_label": "傷害量",
"distance": "距離",
"dps": "DPS",
"dps_label": "DPS Label",
"dps_mode": "DPS Mode",
"during_quest": "任務中",
"dynamic_positioning": "浮動的資訊位置",
"dynamically_positioned": "浮動的魔物資訊",
@@ -40,7 +43,9 @@
"enable_on": "Enable on",
"enabled": "可見",
"family": "字體",
"fight_time": "Over Time spent in Fight",
"first": "第一",
"first_hit": "Starting at First Hit",
"foreground": "圖形化顯示條的底色",
"global_settings": "全域設定",
"health": "生命",
@@ -60,6 +65,7 @@
"include": "細部資訊調整",
"installation_damage": "設備傷害",
"italic": "斜體",
"join_time": "Starting at Join",
"kunai_damage": "苦無傷害",
"language": "語言",
"large_monster_UI": "大型魔物 UI",
@@ -98,7 +104,10 @@
"position": "位置",
"prioritize_large_monsters": "大型魔物優先",
"quest_summary_screen": "任務結算畫面",
"quest_time": "Quest Time",
"rage": "憤怒度",
"render_highlighted_monster": "Render Highlighted Monster",
"render_not_highlighted_monsters": "Render Not Highlighted Monsters",
"reversed_order": "逆向排序",
"settings": "設定",
"shadow": "陰影",
@@ -119,12 +128,15 @@
"time_label": "時間",
"timer_label": "計時器",
"top_damage": "最高傷害",
"top_dps": "Top DPS",
"top_left": "左上",
"top_right": "右上",
"total_damage": "總傷害",
"total_damage_label": "總傷害文字",
"total_damage_offset_is_relative": "總傷害顯示位置調整",
"total_damage_value_label": "總傷害量",
"total_dps": "Total DPS",
"total_dps_label": "Total DPS Label",
"tracked_damage_types": "追蹤的傷害類型",
"tracked_monster_types": "追蹤的魔物類型",
"training_area": "訓練場",