Remove Max Updates per Tick, add Update Rate

This commit is contained in:
GreenComfyTea
2022-07-11 10:03:46 +03:00
parent 7c04f79a74
commit 2d84b4bb65
11 changed files with 26 additions and 52 deletions

View File

@@ -185,9 +185,9 @@ function damage_hook.update_damage(enemy, enemy_calc_damage_info)
--" Condition Type: (" .. tostring(attacker_type) ..
--") " .. tostring(condition_type);
if string.len(xy) > 2300 then
xy = "";
end
--if string.len(xy) > 2300 then
-- xy = "";
--end
local damage_source_type = damage_hook.get_damage_source_type(attacker_type, is_marionette_attack);

View File

@@ -173,7 +173,7 @@ function player.update_damage(_player, damage_source_type, is_large_monster, dam
end
if _player.first_hit_time == -1 then
_player.first_hit_time = time.total_elapsed_seconds;
_player.first_hit_time = time.total_elapsed_script_seconds;
end
local player_monster_type = _player.small_monsters;

View File

@@ -3,7 +3,6 @@ local singletons;
local customization_menu;
local player;
local config;
local small_monster;
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");
@@ -13,16 +12,9 @@ time.total_elapsed_seconds = 0;
time.elapsed_minutes = 0;
time.elapsed_seconds = 0;
time.total_elapsed_script_seconds = 0;
time.last_whole_script_seconds = 0;
function time.update_script_time()
time.total_elapsed_script_seconds = os.clock();
end
time.last_elapsed_seconds = 0;
function time.tick()
time.update_script_time();
if singletons.quest_manager == nil then
return;
end
@@ -44,10 +36,9 @@ 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_whole_script_seconds > 1 then
time.last_whole_script_seconds = time.total_elapsed_script_seconds;
if time.total_elapsed_seconds - time.last_elapsed_seconds > 60 / config.current_config.global_settings.performance.updates_rate then
time.last_elapsed_seconds = time.total_elapsed_seconds;
time.update_players_dps();
time.update_small_monsters();
end
end
@@ -57,20 +48,20 @@ function time.update_players_dps()
local new_total_dps = 0;
for _, _player in pairs(player.list) do
if _player.join_time == -1 then
_player.join_time = time.total_elapsed_script_seconds;
_player.join_time = time.total_elapsed_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.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
_player.dps = _player.display.total_damage / (time.total_elapsed_script_seconds - _player.join_time);
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 cached_config.dps_mode == "First Hit" then
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);
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
@@ -81,20 +72,12 @@ function time.update_players_dps()
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");
end
return time;

View File

@@ -29,8 +29,7 @@ function config.init()
},
performance = {
max_monster_updates_per_tick = 2,
prioritize_large_monsters = false,
update_rate = 60
},
module_visibility = {

View File

@@ -376,7 +376,9 @@ language.default_language = {
hide_other_players = "Hide Other Players",
hide_total_damage = "Hide Total Damage",
player_name_size_limit = "Player Name Size Limit"
player_name_size_limit = "Player Name Size Limit",
update_rate = "Update Rate"
}
};

View File

@@ -820,14 +820,9 @@ function customization_menu.draw()
end
if imgui.tree_node(language.current_language.customization_menu.performance) then
changed, config.current_config.global_settings.performance.max_monster_updates_per_tick = imgui.slider_int(language.current_language
.customization_menu.max_monster_updates_per_tick,
config.current_config.global_settings.performance.max_monster_updates_per_tick, 1, 150);
config_changed = config_changed or changed;
changed, config.current_config.global_settings.performance.prioritize_large_monsters = imgui.checkbox(
language.current_language.customization_menu.prioritize_large_monsters,
config.current_config.global_settings.performance.prioritize_large_monsters);
changed, config.current_config.global_settings.performance.update_rate = imgui.slider_int(language.current_language
.customization_menu.update_rate,
config.current_config.global_settings.performance.update_rate, 1, 400);
config_changed = config_changed or changed;
imgui.tree_pop();

View File

@@ -140,7 +140,6 @@
"loss_health_percentage": "Sever Health Percentage",
"master_rank": "Master Rank",
"max_distance": "Max Distance",
"max_monster_updates_per_tick": "Max Monster Updates per Tick",
"me": "Me",
"menu_font": "Menu Font",
"menu_font_change_disclaimer": "Changing Language and Menu Font Size several times will cause a crash!",
@@ -177,7 +176,6 @@
"poison_damage": "Poison Damage",
"position": "Position",
"press_any_key": "Press any key...",
"prioritize_large_monsters": "Large Monsters on High Priority",
"quest_result_screen": "Quest Result Screen",
"quest_time": "Quest Time",
"rage": "Rage",
@@ -222,6 +220,7 @@
"tracked_monster_types": "Tracked Monster Types",
"training_area": "Training Area",
"type": "Type",
"update_rate": "Update Rate",
"value_label": "Value Label",
"vertical": "Vertical",
"viewport_offset": "Viewport Offset",

View File

@@ -140,7 +140,6 @@
"loss_health_percentage": "절단 수치 비율",
"master_rank": "마스터 랭크",
"max_distance": "최대 거리",
"max_monster_updates_per_tick": "틱당 갱신할 최대 몬스터",
"me": "나",
"menu_font": "메뉴 글꼴",
"menu_font_change_disclaimer": "언어 및 메뉴 글꼴 크기를 여러 번 변경하면 뻗을 수 있습니다!",
@@ -177,7 +176,6 @@
"poison_damage": "독 대미지",
"position": "위치",
"press_any_key": "설정할 키를 누르세요...",
"prioritize_large_monsters": "대형 몬스터를 우선적으로",
"quest_result_screen": "퀘스트 결과 화면",
"quest_time": "퀘스트 시간",
"rage": "분노",
@@ -222,6 +220,7 @@
"tracked_monster_types": "추적할 몬스터 타입",
"training_area": "훈련장",
"type": "순으로",
"update_rate": "Update Rate",
"value_label": "값 라벨",
"vertical": "세로",
"viewport_offset": "뷰포트 간격",

View File

@@ -140,7 +140,6 @@
"loss_health_percentage": "Отсечение части в процентах",
"master_rank": "Ранг мастера",
"max_distance": "Макс. расстояние",
"max_monster_updates_per_tick": "Макс. кол-во обновлений за тик",
"me": "Я",
"menu_font": "Шрифт меню",
"menu_font_change_disclaimer": "Изменение языка и размера шрифта меню несколько раз приведёт к вылету!",
@@ -177,7 +176,6 @@
"poison_damage": "Урон от отравления",
"position": "Расположение",
"press_any_key": "Нажмите любую клавишу...",
"prioritize_large_monsters": "Большие монстры в приоритете",
"quest_result_screen": "Экран результатов квеста",
"quest_time": "Время квеста",
"rage": "Ярость",
@@ -222,6 +220,7 @@
"tracked_monster_types": "Отслеживаемые типы монстров",
"training_area": "Тренировочная зона",
"type": "Тип",
"update_rate": "Update Rate",
"value_label": "Метка значений",
"vertical": "Вертикально",
"viewport_offset": "Сдвиг в экранном пространстве",

View File

@@ -140,7 +140,6 @@
"loss_health_percentage": "Sever Health Percentage",
"master_rank": "Master Rank",
"max_distance": "最大距离",
"max_monster_updates_per_tick": "每次更新的最大怪物数量",
"me": "我",
"menu_font": "菜单字体",
"menu_font_change_disclaimer": "Changing Language and Menu Font Size several times will cause a crash!",
@@ -177,7 +176,6 @@
"poison_damage": "中毒伤害",
"position": "位置",
"press_any_key": "按任意键...",
"prioritize_large_monsters": "大型怪物优先",
"quest_result_screen": "任务结果页",
"quest_time": "任务时间",
"rage": "愤怒",
@@ -222,6 +220,7 @@
"tracked_monster_types": "跟踪的怪物类型",
"training_area": "训练场",
"type": "类型",
"update_rate": "Update Rate",
"value_label": "数字",
"vertical": "垂直",
"viewport_offset": "窗口偏移",

View File

@@ -140,7 +140,6 @@
"loss_health_percentage": "Sever Health Percentage",
"master_rank": "Master Rank",
"max_distance": "最大距離",
"max_monster_updates_per_tick": "每次更新的最大魔物數量",
"me": "我",
"menu_font": "選單字體大小",
"menu_font_change_disclaimer": "Changing Language and Menu Font Size several times will cause a crash!",
@@ -177,7 +176,6 @@
"poison_damage": "毒傷害",
"position": "位置",
"press_any_key": "輸入任意鍵...",
"prioritize_large_monsters": "大型魔物優先",
"quest_result_screen": "任務結算頁",
"quest_time": "任務時間",
"rage": "憤怒度",
@@ -222,6 +220,7 @@
"tracked_monster_types": "追蹤的魔物類型",
"training_area": "訓練場",
"type": "類型",
"update_rate": "Update Rate",
"value_label": "數字",
"vertical": "垂直",
"viewport_offset": "視窗的位置",