From bc981c32c0c30aade8e0695cd1e6ad213dd10477 Mon Sep 17 00:00:00 2001 From: GreenComfyTea Date: Mon, 11 Jul 2022 12:44:29 +0300 Subject: [PATCH] Add separate myself dps updating. --- .../autorun/MHR_Overlay/Game_Handler/time.lua | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/reframework/autorun/MHR_Overlay/Game_Handler/time.lua b/reframework/autorun/MHR_Overlay/Game_Handler/time.lua index 40d084a..cd17776 100644 --- a/reframework/autorun/MHR_Overlay/Game_Handler/time.lua +++ b/reframework/autorun/MHR_Overlay/Game_Handler/time.lua @@ -44,7 +44,7 @@ function time.tick() 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_script_seconds - time.last_elapsed_script_seconds > config.current_config.global_settings.performance.update_rate then + if time.total_elapsed_script_seconds - time.last_elapsed_script_seconds > 60 / config.current_config.global_settings.performance.update_rate then time.last_elapsed_script_seconds = time.total_elapsed_script_seconds; time.update_players_dps(); time.update_small_monsters(); @@ -54,15 +54,21 @@ end function time.update_players_dps() local cached_config = config.current_config.damage_meter_UI.settings; + local myself_updated = false; + 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_script_seconds > 0 then - _player.dps = _player.display.total_damage / time.total_elapsed_script_seconds; + 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.join_time > 0 then @@ -72,11 +78,32 @@ function time.update_players_dps() if time.total_elapsed_script_seconds - _player.first_hit_time > 0 then _player.dps = _player.display.total_damage / (time.total_elapsed_script_seconds - _player.first_hit_time); end - else end 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