mirror of
https://github.com/GreenComfyTea/MHR-Overlay.git
synced 2026-01-24 12:28:03 -08:00
Merge pull request #49 from GreenComfyTea/main
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
local debug = false;
|
||||
xy = "";
|
||||
|
||||
local debug = require("MHR_Overlay.Misc.debug");
|
||||
|
||||
local keyboard = require("MHR_Overlay.Game_Handler.keyboard");
|
||||
local quest_status = require("MHR_Overlay.Game_Handler.quest_status");
|
||||
local screen = require("MHR_Overlay.Game_Handler.screen");
|
||||
@@ -104,13 +105,10 @@ local function main_loop()
|
||||
player.update_myself_position();
|
||||
quest_status.update_is_online();
|
||||
quest_status.update_is_result_screen();
|
||||
quest_status.update_is_host();
|
||||
time.tick();
|
||||
|
||||
if quest_status.index < 2 then
|
||||
player.update_player_list_in_village();
|
||||
else
|
||||
player.update_player_list_on_quest();
|
||||
end
|
||||
player.update_player_list(quest_status.index >= 2);
|
||||
|
||||
if quest_status.index < 2 then
|
||||
quest_status.update_is_training_area();
|
||||
@@ -478,17 +476,21 @@ end
|
||||
|
||||
|
||||
|
||||
if debug then
|
||||
if debug.enabled then
|
||||
if d2d ~= nil then
|
||||
d2d.register(function()
|
||||
end, function()
|
||||
d2d.text(drawing.font, "xy: " .. tostring(xy), 551, 11, 0xFF000000);
|
||||
d2d.text(drawing.font, "xy: " .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
||||
if xy ~= "" then
|
||||
d2d.text(drawing.font, "xy:\n" .. tostring(xy), 551, 11, 0xFF000000);
|
||||
d2d.text(drawing.font, "xy:\n" .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
||||
end
|
||||
end);
|
||||
else
|
||||
re.on_frame(function()
|
||||
draw.text("xy: " .. tostring(xy), 551, 11, 0xFF000000);
|
||||
draw.text("xy: " .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
||||
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
|
||||
@@ -14,12 +14,12 @@ player.myself = nil;
|
||||
player.myself_position = Vector3f.new(0, 0, 0);
|
||||
player.total = nil;
|
||||
|
||||
function player.new(player_id, player_name, player_master_rank, player_hunter_rank)
|
||||
function player.new(id, name, master_rank, hunter_rank)
|
||||
local new_player = {};
|
||||
new_player.id = player_id;
|
||||
new_player.name = player_name;
|
||||
new_player.hunter_rank = player_hunter_rank;
|
||||
new_player.master_rank = player_master_rank;
|
||||
new_player.id = id;
|
||||
new_player.name = name;
|
||||
new_player.hunter_rank = hunter_rank;
|
||||
new_player.master_rank = master_rank;
|
||||
|
||||
new_player.cart_count = 0;
|
||||
|
||||
@@ -155,12 +155,11 @@ function player.new(player_id, player_name, player_master_rank, player_hunter_ra
|
||||
new_player.display.elemental_damage = 0;
|
||||
new_player.display.ailment_damage = 0;
|
||||
|
||||
if player_name == "Total" then
|
||||
if name == "Total" then
|
||||
player.init_total_UI(new_player);
|
||||
else
|
||||
player.init_UI(new_player);
|
||||
end
|
||||
|
||||
|
||||
return new_player;
|
||||
end
|
||||
@@ -364,12 +363,14 @@ end
|
||||
|
||||
local lobby_manager_type_def = sdk.find_type_definition("snow.LobbyManager");
|
||||
local my_hunter_info_field = lobby_manager_type_def:get_field("_myHunterInfo");
|
||||
local myself_quest_index_field = lobby_manager_type_def:get_field("_myselfQuestIndex");
|
||||
|
||||
local quest_hunter_info_field = lobby_manager_type_def:get_field("_questHunterInfo");
|
||||
local hunter_info_field = lobby_manager_type_def:get_field("_hunterInfo");
|
||||
|
||||
local my_hunter_info_type_def = my_hunter_info_field:get_type();
|
||||
local name_field = my_hunter_info_type_def:get_field("_name");
|
||||
local hunter_unique_id_field = my_hunter_info_type_def:get_field("_HunterUniqueId");
|
||||
local member_index_field = my_hunter_info_type_def:get_field("_memberIndex");
|
||||
local hunter_rank_field = my_hunter_info_type_def:get_field("_hunterRank");
|
||||
local master_rank_field = my_hunter_info_type_def:get_field("_masterRank");
|
||||
@@ -378,107 +379,25 @@ local hunter_info_type_def = hunter_info_field:get_type();
|
||||
local get_count_method = hunter_info_type_def:get_method("get_Count");
|
||||
local get_item_method = hunter_info_type_def:get_method("get_Item");
|
||||
|
||||
|
||||
local guid_type = hunter_unique_id_field:get_type();
|
||||
local guid_equals_method = guid_type:get_method("Equals(System.Guid)");
|
||||
|
||||
local progress_manager_type_def = sdk.find_type_definition("snow.progress.ProgressManager");
|
||||
local get_hunter_rank_method = progress_manager_type_def:get_method("get_HunterRank");
|
||||
local get_master_rank_method = progress_manager_type_def:get_method("get_MasterRank");
|
||||
|
||||
|
||||
local player_manager_type_def = sdk.find_type_definition("snow.player.PlayerManager");
|
||||
local get_master_player_id_method = player_manager_type_def:get_method("getMasterPlayerID");
|
||||
|
||||
function player.update_player_list_in_village()
|
||||
if singletons.lobby_manager == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
if singletons.progress_manager == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
-- myself player
|
||||
local myself_player_info = my_hunter_info_field:get_data(singletons.lobby_manager);
|
||||
if myself_player_info == nil then
|
||||
customization_menu.status = "No myself player info list";
|
||||
return;
|
||||
end
|
||||
|
||||
local myself_player_name = name_field:get_data(myself_player_info);
|
||||
if myself_player_name == nil then
|
||||
customization_menu.status = "No myself player name";
|
||||
return;
|
||||
end
|
||||
|
||||
local myself_hunter_rank = get_hunter_rank_method:call(singletons.progress_manager);
|
||||
if myself_hunter_rank == nil then
|
||||
customization_menu.status = "No myself hunter rank";
|
||||
myself_hunter_rank = 0;
|
||||
end
|
||||
|
||||
|
||||
local myself_master_rank = get_master_rank_method:call(singletons.progress_manager);
|
||||
if myself_master_rank == nil then
|
||||
customization_menu.status = "No myself master rank";
|
||||
myself_master_rank = 0;
|
||||
end
|
||||
|
||||
local myself_id = get_master_player_id_method:call(singletons.player_manager);
|
||||
if myself_id == nil then
|
||||
customization_menu.status = "No myself player id";
|
||||
elseif player.myself == nil or myself_id ~= player.myself.id then
|
||||
player.myself = player.new(myself_id, myself_player_name, myself_master_rank, myself_hunter_rank);
|
||||
player.list[myself_id] = player.myself;
|
||||
end
|
||||
|
||||
-- other players
|
||||
local player_info_list = hunter_info_field:get_data(singletons.lobby_manager);
|
||||
if player_info_list == nil then
|
||||
customization_menu.status = "No player info list";
|
||||
return;
|
||||
end
|
||||
|
||||
local count = get_count_method:call(player_info_list);
|
||||
if count == nil then
|
||||
customization_menu.status = "No player info list count";
|
||||
return;
|
||||
end
|
||||
|
||||
for i = 0, count - 1 do
|
||||
local player_info = get_item_method:call(player_info_list, i);
|
||||
if player_info == nil then
|
||||
goto continue;
|
||||
end
|
||||
|
||||
local player_id = member_index_field:get_data(player_info);
|
||||
if player_id == nil then
|
||||
goto continue;
|
||||
end
|
||||
|
||||
local player_hunter_rank = hunter_rank_field:get_data(player_info);
|
||||
if player_hunter_rank == nil then
|
||||
goto continue;
|
||||
end
|
||||
|
||||
local player_master_rank = master_rank_field:get_data(player_info);
|
||||
if player_hunter_rank == nil then
|
||||
player_master_rank = 0;
|
||||
end
|
||||
|
||||
local player_name = name_field:get_data(player_info);
|
||||
if player_name == nil then
|
||||
goto continue;
|
||||
end
|
||||
|
||||
if player.myself.id == player_id then
|
||||
player.list[player_id] = player.myself;
|
||||
elseif player.list[player_id] == nil or player.list[player_id].name ~= player_name then
|
||||
player.list[player_id] = player.new(player_id, player_name, player_master_rank, player_hunter_rank);
|
||||
end
|
||||
|
||||
::continue::
|
||||
function player.update_player_list(is_on_quest)
|
||||
if is_on_quest then
|
||||
player.update_player_list_(quest_hunter_info_field);
|
||||
else
|
||||
player.update_player_list_(hunter_info_field);
|
||||
end
|
||||
end
|
||||
|
||||
function player.update_player_list_on_quest()
|
||||
function player.update_player_list_(hunter_info_field_)
|
||||
if singletons.lobby_manager == nil then
|
||||
return;
|
||||
end
|
||||
@@ -500,28 +419,41 @@ function player.update_player_list_on_quest()
|
||||
return;
|
||||
end
|
||||
|
||||
local myself_hunter_rank = get_hunter_rank_method:call(singletons.progress_manager);
|
||||
if myself_hunter_rank == nil then
|
||||
customization_menu.status = "No myself hunter rank";
|
||||
myself_hunter_rank = 0;
|
||||
end
|
||||
local myself_hunter_rank = get_hunter_rank_method:call(singletons.progress_manager) or 0;
|
||||
local myself_master_rank = get_master_rank_method:call(singletons.progress_manager) or 0;
|
||||
|
||||
local myself_master_rank = get_master_rank_method:call(singletons.progress_manager);
|
||||
if myself_hunter_rank == nil then
|
||||
customization_menu.status = "No myself master rank";
|
||||
myself_hunter_rank = 0;
|
||||
end
|
||||
local myself_id = get_master_player_id_method:call(singletons.player_manager) or -1;
|
||||
--if quest_status.is_online then
|
||||
--myself_id = get_master_player_id_method:call(singletons.player_manager) or -1;
|
||||
--else
|
||||
--myself_id = myself_quest_index_field:call(singletons.lobby_manager) or -1;
|
||||
--end
|
||||
|
||||
local myself_id = get_master_player_id_method:call(singletons.player_manager);
|
||||
if myself_id == nil then
|
||||
customization_menu.status = "No myself player id";
|
||||
elseif player.myself == nil or myself_id ~= player.myself.id then
|
||||
player.myself = player.new(myself_id, myself_player_name, myself_master_rank, myself_hunter_rank);
|
||||
player.list[myself_id] = player.myself;
|
||||
return;
|
||||
end
|
||||
|
||||
local myself_guid = hunter_unique_id_field:get_data(myself_player_info);
|
||||
if myself_guid == nil then
|
||||
customization_menu.status = "No myself guid";
|
||||
return;
|
||||
end
|
||||
|
||||
--local myself_guid_string = guid_tostring_method:call(myself_guid);
|
||||
--if myself_guid_string == nil then
|
||||
-- customization_menu.status = "No myself guid string";
|
||||
-- return;
|
||||
--end
|
||||
|
||||
if myself_id ~= player.myself.id then
|
||||
player.list[player.myself.id] = nil;
|
||||
player.myself = player.new(myself_id, myself_guid, myself_player_name, myself_master_rank, myself_hunter_rank);
|
||||
player.list[myself_id] = player.myself;
|
||||
end
|
||||
|
||||
-- other players
|
||||
local player_info_list = quest_hunter_info_field:get_data(singletons.lobby_manager);
|
||||
local player_info_list = hunter_info_field_:get_data(singletons.lobby_manager);
|
||||
if player_info_list == nil then
|
||||
customization_menu.status = "No player info list";
|
||||
return;
|
||||
@@ -545,25 +477,36 @@ function player.update_player_list_on_quest()
|
||||
goto continue;
|
||||
end
|
||||
|
||||
local player_hunter_rank = hunter_rank_field:get_data(player_info);
|
||||
if player_hunter_rank == nil then
|
||||
goto continue;
|
||||
local player_guid = hunter_unique_id_field:get_data(player_info);
|
||||
if player_guid == nil then
|
||||
customization_menu.status = "No player guid";
|
||||
return;
|
||||
end
|
||||
|
||||
local player_master_rank = master_rank_field:get_data(player_info);
|
||||
if player_master_rank == nil then
|
||||
player_master_rank = 0;
|
||||
end
|
||||
--local player_guid_string = guid_tostring_method:call(player_guid);
|
||||
--if player_guid_string == nil then
|
||||
-- customization_menu.status = "No player guid string";
|
||||
-- return;
|
||||
--end
|
||||
|
||||
local player_hunter_rank = hunter_rank_field:get_data(player_info) or 0;
|
||||
local player_master_rank = master_rank_field:get_data(player_info) or 0;
|
||||
|
||||
local player_name = name_field:get_data(player_info);
|
||||
if player_name == nil then
|
||||
goto continue;
|
||||
end
|
||||
|
||||
if player.myself.id == player_id then
|
||||
player.list[player_id] = player.myself;
|
||||
elseif player.list[player_id] == nil or player.list[player_id].name ~= player_name then
|
||||
player.list[player_id] = player.new(player_id, player_name, player_master_rank, player_hunter_rank);
|
||||
if player.list[player_id] == nil or
|
||||
not guid_equals_method:call(player.list[player_id].guid, player_guid)
|
||||
--player.list[player_id].guid ~= player_guid
|
||||
then
|
||||
local _player = player.new(player_id, player_guid, player_name, player_master_rank, player_hunter_rank);
|
||||
player.list[player_id] = _player;
|
||||
|
||||
if player_name == player.myself.name and player_hunter_rank == player.myself.hunter_rank and player_master_rank == player.myself.master_rank then
|
||||
player.myself = _player;
|
||||
end
|
||||
end
|
||||
|
||||
::continue::
|
||||
|
||||
@@ -11,36 +11,48 @@ local env_creature;
|
||||
|
||||
quest_status.index = 0;
|
||||
quest_status.is_online = false;
|
||||
quest_status.is_host = false;
|
||||
quest_status.is_training_area = false;
|
||||
quest_status.update_is_result_screen = false;
|
||||
quest_status.is_result_screen = false;
|
||||
quest_status.is_quest_clear = false;
|
||||
|
||||
local quest_manager_type_definition = sdk.find_type_definition("snow.QuestManager");
|
||||
local on_changed_game_status = quest_manager_type_definition:get_method("onChangedGameStatus");
|
||||
local get_status_method = quest_manager_type_definition:get_method("getStatus");
|
||||
local is_result_demo_play_start_method = quest_manager_type_definition:get_method("isResultDemoPlayStart");
|
||||
|
||||
local set_quest_clear_method = quest_manager_type_definition:get_method("setQuestClear");
|
||||
local set_quest_clear_sub_method = quest_manager_type_definition:get_method("setQuestClearSub");
|
||||
local set_quest_clear_sub_hyakurui_method = quest_manager_type_definition:get_method("setQuestClearSubHyakuryu");
|
||||
|
||||
local village_area_manager_type_def = sdk.find_type_definition("snow.VillageAreaManager");
|
||||
local check_current_area_training_area_method = village_area_manager_type_def:get_method("checkCurrentArea_TrainingArea");
|
||||
|
||||
local lobby_manager_type_definition = sdk.find_type_definition("snow.LobbyManager");
|
||||
local is_quest_online_method = lobby_manager_type_definition:get_method("IsQuestOnline");
|
||||
local is_quest_host_method = lobby_manager_type_definition:get_method("isQuestHost");
|
||||
|
||||
function quest_status.update(args)
|
||||
local new_quest_status = sdk.to_int64(args[3]);
|
||||
if new_quest_status ~= nil then
|
||||
if (quest_status.index < 2 and new_quest_status == 2)
|
||||
or new_quest_status < 2 then
|
||||
|
||||
player.init();
|
||||
small_monster.init_list();
|
||||
large_monster.init_list();
|
||||
env_creature.init_list();
|
||||
damage_meter_UI.freeze_displayed_players = false;
|
||||
damage_meter_UI.last_displayed_players = {};
|
||||
end
|
||||
|
||||
quest_status.index = new_quest_status;
|
||||
function quest_status.on_changed_game_status(new_quest_status)
|
||||
if (quest_status.index < 2 and new_quest_status == 2)
|
||||
or new_quest_status < 2 then
|
||||
|
||||
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
|
||||
|
||||
quest_status.index = new_quest_status;
|
||||
end
|
||||
|
||||
function quest_status.on_set_quest_clear()
|
||||
quest_status.is_quest_clear = true;
|
||||
end
|
||||
|
||||
function quest_status.init()
|
||||
@@ -77,6 +89,19 @@ function quest_status.update_is_online()
|
||||
quest_status.is_online = is_quest_online;
|
||||
end
|
||||
|
||||
function quest_status.update_is_host()
|
||||
if singletons.lobby_manager == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
local is_host = is_quest_host_method:call(singletons.lobby_manager, true);
|
||||
if is_host == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
quest_status.is_host = is_host;
|
||||
end
|
||||
|
||||
function quest_status.update_is_training_area()
|
||||
if singletons.village_area_manager == nil then
|
||||
customization_menu.status = "No village area manager";
|
||||
@@ -122,7 +147,19 @@ function quest_status.init_module()
|
||||
quest_status.init();
|
||||
|
||||
sdk.hook(on_changed_game_status, function(args)
|
||||
pcall(quest_status.update, args);
|
||||
quest_status.on_changed_game_status(sdk.to_int64(args[3]));
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(set_quest_clear_method, function(args)
|
||||
quest_status.on_set_quest_clear();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(set_quest_clear_sub_method, function(args)
|
||||
quest_status.on_set_quest_clear();
|
||||
end, function(retval) return retval; end);
|
||||
|
||||
sdk.hook(set_quest_clear_sub_hyakurui_method, function(args)
|
||||
quest_status.on_set_quest_clear();
|
||||
end, function(retval) return retval; end);
|
||||
end
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
local time = {};
|
||||
local singletons;
|
||||
local customization_menu;
|
||||
local quest_status;
|
||||
local player;
|
||||
local config;
|
||||
local small_monster;
|
||||
@@ -47,28 +48,25 @@ function time.tick()
|
||||
if time.total_elapsed_script_seconds - time.last_elapsed_script_seconds > 1 then
|
||||
time.last_elapsed_script_seconds = time.total_elapsed_script_seconds;
|
||||
time.update_players_dps();
|
||||
--time.update_small_monsters();
|
||||
end
|
||||
end
|
||||
|
||||
function time.update_players_dps()
|
||||
local cached_config = config.current_config.damage_meter_UI.settings;
|
||||
|
||||
local myself_updated = false;
|
||||
|
||||
if cached_config.freeze_dps_on_quest_clear and quest_status.is_quest_clear then
|
||||
return;
|
||||
end
|
||||
|
||||
local new_total_dps = 0;
|
||||
for _, _player in pairs(player.list) do
|
||||
if _player == player.myself then
|
||||
myself_updated = true;
|
||||
end
|
||||
|
||||
if _player.join_time == -1 then
|
||||
_player.join_time = time.total_elapsed_script_seconds;
|
||||
end
|
||||
|
||||
if cached_config.dps_mode == "Quest Time" then
|
||||
if time.total_elapsed_seconds > 0 then
|
||||
player.myself.dps = player.myself.display.total_damage / time.total_elapsed_seconds;
|
||||
_player.dps = _player.display.total_damage / time.total_elapsed_seconds;
|
||||
end
|
||||
elseif cached_config.dps_mode == "Join Time" then
|
||||
if time.total_elapsed_script_seconds - _player.join_time > 0 then
|
||||
@@ -82,45 +80,17 @@ function time.update_players_dps()
|
||||
|
||||
new_total_dps = new_total_dps + _player.dps;
|
||||
end
|
||||
|
||||
if not myself_updated then
|
||||
if player.myself.join_time == -1 then
|
||||
player.myself.join_time = time.total_elapsed_script_seconds;
|
||||
end
|
||||
|
||||
if cached_config.dps_mode == "Quest Time" then
|
||||
if time.total_elapsed_seconds > 0 then
|
||||
player.myself.dps = player.myself.display.total_damage / time.total_elapsed_seconds;
|
||||
end
|
||||
elseif cached_config.dps_mode == "Join Time" then
|
||||
if time.total_elapsed_script_seconds - player.myself.join_time > 0 then
|
||||
player.myself.dps = player.myself.display.total_damage / (time.total_elapsed_script_seconds - player.myself.join_time);
|
||||
end
|
||||
elseif cached_config.dps_mode == "First Hit" then
|
||||
if time.total_elapsed_script_seconds - player.myself.first_hit_time > 0 then
|
||||
player.myself.dps = player.myself.display.total_damage / (time.total_elapsed_script_seconds - player.myself.first_hit_time);
|
||||
end
|
||||
end
|
||||
|
||||
new_total_dps = new_total_dps + player.myself.dps;
|
||||
end
|
||||
|
||||
player.total.dps = new_total_dps;
|
||||
end
|
||||
|
||||
function time.update_small_monsters()
|
||||
for enemy, monster in pairs(small_monster.list) do
|
||||
small_monster.update(enemy, monster);
|
||||
end
|
||||
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");
|
||||
small_monster = require("MHR_Overlay.Monsters.small_monster");
|
||||
quest_status = require("MHR_Overlay.Game_Handler.quest_status");
|
||||
end
|
||||
|
||||
return time;
|
||||
@@ -3740,21 +3740,26 @@ function config.init()
|
||||
},
|
||||
|
||||
settings = {
|
||||
orientation = "Vertical", -- "Vertical" or "Horizontal"
|
||||
|
||||
|
||||
hide_myself = false,
|
||||
hide_other_players = false,
|
||||
hide_total_damage = false,
|
||||
|
||||
hide_module_if_total_damage_is_zero = false,
|
||||
hide_player_if_player_damage_is_zero = false,
|
||||
hide_total_if_total_damage_is_zero = false,
|
||||
total_damage_offset_is_relative = true,
|
||||
|
||||
freeze_dps_on_quest_clear = true,
|
||||
|
||||
orientation = "Vertical", -- "Vertical" or "Horizontal"
|
||||
highlighted_bar = "Me",
|
||||
damage_bar_relative_to = "Top Damage", -- "total damage" or "top damage"
|
||||
my_damage_bar_location = "First", -- "normal" or "first" or "last"
|
||||
dps_mode = "First Hit",
|
||||
|
||||
hide_myself = false,
|
||||
hide_other_players = false,
|
||||
hide_total_damage = false,
|
||||
|
||||
|
||||
player_name_size_limit = 150
|
||||
},
|
||||
|
||||
5
reframework/autorun/MHR_Overlay/Misc/debug.lua
Normal file
5
reframework/autorun/MHR_Overlay/Misc/debug.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
local debug = {};
|
||||
|
||||
debug.enabled = false;
|
||||
|
||||
return debug;
|
||||
@@ -109,8 +109,8 @@ language.default_language = {
|
||||
dung_bomb = "Dung Bomb",
|
||||
steel_fang = "Steel Fang",
|
||||
quick_sand = "Quick Sand",
|
||||
fall_otomo_trap = "Fall Otomo Trap",
|
||||
shock_otomo_trap = "Shock Otomo Trap"
|
||||
fall_otomo_trap = "Fall Buddy Trap",
|
||||
shock_otomo_trap = "Shock Buddy Trap"
|
||||
},
|
||||
|
||||
UI = {
|
||||
@@ -287,7 +287,7 @@ language.default_language = {
|
||||
bomb_damage = "Bomb Damage",
|
||||
kunai_damage = "Kunai Damage",
|
||||
installation_damage = "Installation Damage",
|
||||
otomo_damage = "Otomo Damage",
|
||||
otomo_damage = "Buddy Damage",
|
||||
monster_damage = "Monster Damage",
|
||||
poison_damage = "Poison Damage",
|
||||
blast_damage = "Blast Damage",
|
||||
@@ -382,6 +382,8 @@ language.default_language = {
|
||||
|
||||
prioritize_large_monsters = "Large Monsters on High Priority",
|
||||
max_monster_updates_per_tick = "Max Monster Updates per Tick",
|
||||
|
||||
freeze_dps_on_quest_clear = "Freeze DPS when Quest is cleared"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ function damage_meter_UI.get_players(player_info_list)
|
||||
|
||||
local _player = player.get_player(player_id);
|
||||
if _player ~= nil then
|
||||
if player_id == player.myself.id and cached_config.settings.my_damage_bar_location ~= "Normal" then
|
||||
if _player == player.myself and cached_config.settings.my_damage_bar_location ~= "Normal" then
|
||||
goto continue;
|
||||
end
|
||||
table.insert(quest_players, _player);
|
||||
@@ -74,8 +74,6 @@ function damage_meter_UI.draw()
|
||||
return;
|
||||
end
|
||||
|
||||
|
||||
|
||||
local quest_players = {};
|
||||
if damage_meter_UI.freeze_displayed_players and damage_meter_UI.last_displayed_players ~= {} then
|
||||
quest_players = damage_meter_UI.last_displayed_players;
|
||||
|
||||
@@ -18,8 +18,8 @@ local get_boss_enemy_method = enemy_manager_type_def:get_method("getBossEnemy");
|
||||
local gui_manager_type_def = sdk.find_type_definition("snow.gui.GuiManager");
|
||||
local get_tg_camera_method = gui_manager_type_def:get_method("get_refGuiHud_TgCamera");
|
||||
|
||||
local tg_camera_type = get_tg_camera_method:get_return_type();
|
||||
local get_targeting_enemy_index_field = tg_camera_type:get_field("OldTargetingEmIndex");
|
||||
local tg_camera_type_def = get_tg_camera_method:get_return_type();
|
||||
local get_targeting_enemy_index_field = tg_camera_type_def:get_field("OldTargetingEmIndex");
|
||||
|
||||
function large_monster_UI.draw(dynamic_enabled, static_enabled, highlighted_enabled)
|
||||
if singletons.enemy_manager == nil then
|
||||
|
||||
@@ -15018,6 +15018,12 @@ function customization_menu.draw()
|
||||
config_changed = config_changed or changed;
|
||||
damage_meter_UI_changed = damage_meter_UI_changed or changed;
|
||||
|
||||
changed, config.current_config.damage_meter_UI.settings.freeze_dps_on_quest_clear = imgui.checkbox(
|
||||
language.current_language.customization_menu.freeze_dps_on_quest_clear,
|
||||
config.current_config.damage_meter_UI.settings.freeze_dps_on_quest_clear);
|
||||
config_changed = config_changed or changed;
|
||||
damage_meter_UI_changed = damage_meter_UI_changed or changed;
|
||||
|
||||
changed, customization_menu.damage_meter_UI_orientation_index = imgui.combo(language.current_language.customization_menu
|
||||
.orientation,
|
||||
customization_menu.damage_meter_UI_orientation_index, customization_menu.displayed_orientation_types);
|
||||
|
||||
@@ -40,15 +40,17 @@ function drawing.limit_text_size(text, size_limit)
|
||||
end
|
||||
|
||||
local limited_text = text;
|
||||
while true do
|
||||
while limited_text ~= "..." do
|
||||
local text_width, text_height = drawing.font:measure(limited_text);
|
||||
|
||||
if text_width < size_limit then
|
||||
return limited_text;
|
||||
break;
|
||||
else
|
||||
limited_text = unicode_helpers.sub(limited_text, 1, -5) .. "...";
|
||||
end
|
||||
end
|
||||
|
||||
return limited_text;
|
||||
end
|
||||
|
||||
function drawing.scale_color_opacity(color, scale)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"blast": "Blast",
|
||||
"dung_bomb": "Dung Bomb",
|
||||
"exhaust": "Exhaust",
|
||||
"fall_otomo_trap": "Fall Otomo Trap",
|
||||
"fall_otomo_trap": "Fall Buddy Trap",
|
||||
"fall_trap": "Fall Trap",
|
||||
"fireblight": "Fireblight",
|
||||
"flash": "Flash",
|
||||
@@ -26,7 +26,7 @@
|
||||
"poison": "Poison",
|
||||
"quick_sand": "Quick Sand",
|
||||
"ride": "Wyvern Riding",
|
||||
"shock_otomo_trap": "Shock Otomo Trap",
|
||||
"shock_otomo_trap": "Shock Buddy Trap",
|
||||
"shock_trap": "Shock Trap",
|
||||
"sleep": "Sleep",
|
||||
"steel_fang": "Steel Fang",
|
||||
@@ -98,6 +98,7 @@
|
||||
"first_hit": "First Hit",
|
||||
"flinch_count": "Flinch Count",
|
||||
"foreground": "Foreground",
|
||||
"freeze_dps_on_quest_clear": "Freeze DPS when Quest is cleared",
|
||||
"global_position_modifier": "Global Position Modifier",
|
||||
"global_scale_modifier": "Global Scale Modifier",
|
||||
"global_settings": "Global Settings",
|
||||
@@ -164,7 +165,7 @@
|
||||
"orientation": "Orientation",
|
||||
"other_damage": "Other Damage",
|
||||
"other_players": "Other Players",
|
||||
"otomo_damage": "Otomo Damage",
|
||||
"otomo_damage": "Buddy Damage",
|
||||
"part_health": "Part Health",
|
||||
"part_name": "Part Name",
|
||||
"part_name_label": "Part Name Label",
|
||||
|
||||
@@ -98,6 +98,7 @@
|
||||
"first_hit": "첫 공격",
|
||||
"flinch_count": "경직 횟수",
|
||||
"foreground": "전경색",
|
||||
"freeze_dps_on_quest_clear": "Freeze DPS when Quest is cleared",
|
||||
"global_position_modifier": "전역 위치 배율",
|
||||
"global_scale_modifier": "전역 크기 배율",
|
||||
"global_settings": "전역 설정",
|
||||
|
||||
@@ -98,6 +98,7 @@
|
||||
"first_hit": "Первый удар",
|
||||
"flinch_count": "Кол-во вздрагиваний",
|
||||
"foreground": "Передний план",
|
||||
"freeze_dps_on_quest_clear": "Заморозить УВС после завершения квеста",
|
||||
"global_position_modifier": "Глобальный модификатор расположения",
|
||||
"global_scale_modifier": "Глобальный модификатор размера",
|
||||
"global_settings": "Общие настройки",
|
||||
@@ -239,7 +240,7 @@
|
||||
"font_name": "NotoSansKR-Bold.otf",
|
||||
"parts": {
|
||||
"abdomen": "Брюхо",
|
||||
"antenna": "Antenna",
|
||||
"antenna": "Антернна",
|
||||
"arms": "Передние лапы",
|
||||
"arms_mud": "Передние лапы (в грязи)",
|
||||
"back": "Спина",
|
||||
@@ -247,49 +248,49 @@
|
||||
"body": "Тело",
|
||||
"body_mud": "Тело (в грязи)",
|
||||
"carapace": "Панцирь",
|
||||
"chest": "Chest",
|
||||
"chest": "Грудь",
|
||||
"chest_windsac": "Грудь (мешочек)",
|
||||
"claw": "Когти",
|
||||
"crest": "Crest",
|
||||
"dorsal_fin": "Спинной плавник",
|
||||
"foreleg": "Foreleg",
|
||||
"forelegs": "Forelegs",
|
||||
"foreleg": "Передняя лапа",
|
||||
"forelegs": "Передние лапы",
|
||||
"head": "Голова",
|
||||
"head_mud": "Голова (в грязи)",
|
||||
"hind_leg": "Hind Leg",
|
||||
"hind_legs": "Hind Legs",
|
||||
"hind_leg": "Задняя лапа",
|
||||
"hind_legs": "Задние лапы",
|
||||
"large_mudbulb": "Большой мешочек грязи",
|
||||
"left_arm": "Передняя лапа Л",
|
||||
"left_arm_ice": "Передняя лапа Л (во льду)",
|
||||
"left_claw": "Клешня Л",
|
||||
"left_cutwing": "Крыло Л",
|
||||
"left_foreleg": "Foreleg L",
|
||||
"left_hind_leg": "Hind Leg L",
|
||||
"left_foreleg": "Передняя лапа Л",
|
||||
"left_hind_leg": "Задня лапа Л",
|
||||
"left_leg": "Задняя лапа Л",
|
||||
"left_leg_mud": "Задняя лапа Л (в грязи)",
|
||||
"left_legs": "Левые лапы",
|
||||
"left_wing": "Крыло Л",
|
||||
"left_wingclaw": "Wingclaw L",
|
||||
"left_wingclaw": "Крыло-коготь Л",
|
||||
"legs": "Задние лапы",
|
||||
"lower_back": "Нижняя часть спины",
|
||||
"lower_body": "Нижняя часть тела",
|
||||
"mane": "Грива",
|
||||
"mudbulb": "Mudbulb",
|
||||
"mudbulb": "Мешочек грязи",
|
||||
"neck": "Шея",
|
||||
"rear": "Зад",
|
||||
"right_arm": "Передняя лапа П",
|
||||
"right_arm_ice": "Передняя лапа П (во льду)",
|
||||
"right_claw": "Клешня П",
|
||||
"right_cutwing": "Крыло П",
|
||||
"right_foreleg": "Foreleg R",
|
||||
"right_hind_leg": "Hind Leg R",
|
||||
"right_foreleg": "Передняя лапа П",
|
||||
"right_hind_leg": "Задняя лапа П",
|
||||
"right_leg": "Задняя лапа П",
|
||||
"right_leg_mud": "Задняя лапа П (в грязи)",
|
||||
"right_legs": "Правые лапы",
|
||||
"right_wing": "Крыло П",
|
||||
"right_wingclaw": "Wingclaw R",
|
||||
"right_wingclaw": "Крыло-коготь П",
|
||||
"rock": "Камень",
|
||||
"shell": "Shell",
|
||||
"shell": "Панцирь",
|
||||
"spinning": "Вращение",
|
||||
"tail": "Хвост",
|
||||
"tail_mud": "Хвост (в грязи)",
|
||||
@@ -300,8 +301,8 @@
|
||||
"unknown": "?",
|
||||
"upper_back": "Верхняя часть спины",
|
||||
"upper_body": "Верхняя часть тела",
|
||||
"wingclaw": "Wingclaw",
|
||||
"wingclaws": "Wingclaws",
|
||||
"wingclaw": "Крыло-коготь",
|
||||
"wingclaws": "Крыло-коготь",
|
||||
"wings": "Крылья"
|
||||
}
|
||||
}
|
||||
@@ -98,6 +98,7 @@
|
||||
"first_hit": "第一击",
|
||||
"flinch_count": "胆怯次数",
|
||||
"foreground": "前景",
|
||||
"freeze_dps_on_quest_clear": "Freeze DPS when Quest is cleared",
|
||||
"global_position_modifier": "全局位置更改",
|
||||
"global_scale_modifier": "全局比例更改",
|
||||
"global_settings": "全局设定",
|
||||
|
||||
@@ -98,6 +98,7 @@
|
||||
"first_hit": "第一擊",
|
||||
"flinch_count": "膽怯次數",
|
||||
"foreground": "圖形化顯示條的底色",
|
||||
"freeze_dps_on_quest_clear": "Freeze DPS when Quest is cleared",
|
||||
"global_position_modifier": "全域位置更改",
|
||||
"global_scale_modifier": "全域比例更改",
|
||||
"global_settings": "全域設定",
|
||||
|
||||
Reference in New Issue
Block a user