mirror of
https://github.com/GreenComfyTea/MHR-Overlay.git
synced 2026-01-24 04:18:11 -08:00
Refactoring
This commit is contained in:
@@ -12,7 +12,7 @@ local enemy_character_base_after_calc_damage_damage_side_method = enemy_characte
|
||||
local is_boss_enemy_method = enemy_character_base_type_def:get_method("get_isBossEnemy");
|
||||
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
|
||||
|
||||
local enemy_calc_damage_info_type_def = sdk.find_type_definition("snow.hit.EnemyCalcDamageInfo.AfterCalcInfo_DamageSide");
|
||||
local enemy_calc_damage_info_type_def = sdk.find_type_definition("snow.hit.EnemyCalcDamageInfo.AfterCalcInfo_DamageSide");
|
||||
local get_attacker_id_method = enemy_calc_damage_info_type_def:get_method("get_AttackerID");
|
||||
local get_damage_attacker_type_method = enemy_calc_damage_info_type_def:get_method("get_DamageAttackerType");
|
||||
local is_marionette_attack_method = enemy_calc_damage_info_type_def:get_method("get_IsMarionetteAttack");
|
||||
@@ -28,7 +28,7 @@ local get_condition_type2_method = enemy_calc_damage_info_type_def:get_method("g
|
||||
local get_condition_damage3_method = enemy_calc_damage_info_type_def:get_method("get_ConditionDamage3");
|
||||
local get_condition_type3_method = enemy_calc_damage_info_type_def:get_method("get_ConditionDamageType3");
|
||||
|
||||
local stock_mystery_core_break_damage_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase.stockMysteryCoreBreakDamage");
|
||||
local stock_mystery_core_break_damage_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase.stockMysteryCoreBreakDamage");
|
||||
|
||||
local quest_manager_type_def = sdk.find_type_definition("snow.QuestManager");
|
||||
|
||||
@@ -43,7 +43,8 @@ local is_from_host_field = packet_quest_forfeit_type_def:get_field("_IsFromQuest
|
||||
function damage_hook.get_damage_source_type(damage_source_type_id, is_marionette_attack)
|
||||
if is_marionette_attack then
|
||||
return "wyvern riding";
|
||||
elseif damage_source_type_id == 0 or damage_source_type_id == 7 or damage_source_type_id == 11 or damage_source_type_id == 13 then
|
||||
elseif damage_source_type_id == 0 or damage_source_type_id == 7 or damage_source_type_id == 11 or
|
||||
damage_source_type_id == 13 then
|
||||
return "player";
|
||||
elseif damage_source_type_id == 1 or damage_source_type_id == 8 then
|
||||
return "bomb";
|
||||
@@ -82,7 +83,7 @@ function damage_hook.update_damage(enemy, enemy_calc_damage_info)
|
||||
local attacker_id = get_attacker_id_method:call(enemy_calc_damage_info);
|
||||
local attacker_type = get_damage_attacker_type_method:call(enemy_calc_damage_info);
|
||||
local is_marionette_attack = is_marionette_attack_method:call(enemy_calc_damage_info)
|
||||
|
||||
|
||||
-- 4 is virtual player in singleplayer that "owns" 2nd otomo
|
||||
if not quest_status.is_online and attacker_id == 4 then
|
||||
attacker_id = player.myself.player_id;
|
||||
@@ -93,7 +94,7 @@ function damage_hook.update_damage(enemy, enemy_calc_damage_info)
|
||||
for enemy, monster in pairs(large_monster.list) do
|
||||
if monster.unique_id == attacker_id then
|
||||
attacker_id = monster.rider_id;
|
||||
break;
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -161,7 +162,8 @@ function damage_hook.update_damage(enemy, enemy_calc_damage_info)
|
||||
-- xy = "";
|
||||
--end
|
||||
|
||||
local damage_source_type = damage_hook.get_damage_source_type(attacker_type, is_marionette_attack);
|
||||
local damage_source_type = damage_hook.get_damage_source_type(attacker_type,
|
||||
is_marionette_attack);
|
||||
|
||||
local attacking_player = player.get_player(attacker_id);
|
||||
|
||||
@@ -217,10 +219,10 @@ end
|
||||
|
||||
--function damage_hook.on_get_finish_shoot_wall_hit_damage_rate(enemy, rate, is_part_damage)
|
||||
|
||||
--xy = string.format("enemy: %s\nrate: %s\nis_part_damage: %s", tostring(enemy), tostring(rate), tostring(is_part_damage));
|
||||
--xy = string.format("enemy: %s\nrate: %s\nis_part_damage: %s", tostring(enemy), tostring(rate), tostring(is_part_damage));
|
||||
--end
|
||||
|
||||
|
||||
|
||||
local get_finish_shoot_wall_hit_damage_rate_method = enemy_character_base_type_def:get_method("stockFinishShootHitDamage");
|
||||
|
||||
function damage_hook.init_module()
|
||||
@@ -268,4 +270,4 @@ function damage_hook.init_module()
|
||||
--end);
|
||||
end
|
||||
|
||||
return damage_hook;
|
||||
return damage_hook;
|
||||
|
||||
@@ -226,19 +226,19 @@ function player.update_display(_player)
|
||||
if cached_config.tracked_damage_types.player_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters);
|
||||
end
|
||||
|
||||
|
||||
if cached_config.tracked_damage_types.bomb_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.bombs);
|
||||
end
|
||||
|
||||
|
||||
if cached_config.tracked_damage_types.kunai_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.kunai);
|
||||
end
|
||||
|
||||
|
||||
if cached_config.tracked_damage_types.installation_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.installations);
|
||||
end
|
||||
|
||||
|
||||
if cached_config.tracked_damage_types.otomo_damage then
|
||||
player.merge_damage(_player.display, _player.small_monsters.otomo);
|
||||
end
|
||||
@@ -268,19 +268,19 @@ function player.update_display(_player)
|
||||
if cached_config.tracked_damage_types.player_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters);
|
||||
end
|
||||
|
||||
|
||||
if cached_config.tracked_damage_types.bomb_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.bombs);
|
||||
end
|
||||
|
||||
|
||||
if cached_config.tracked_damage_types.kunai_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.kunai);
|
||||
end
|
||||
|
||||
|
||||
if cached_config.tracked_damage_types.installation_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.installations);
|
||||
end
|
||||
|
||||
|
||||
if cached_config.tracked_damage_types.otomo_damage then
|
||||
player.merge_damage(_player.display, _player.large_monsters.otomo);
|
||||
end
|
||||
@@ -324,7 +324,7 @@ local get_transform_method = sdk.find_type_definition("via.GameObject"):get_meth
|
||||
local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position");
|
||||
|
||||
function player.update_myself_position()
|
||||
if singletons.player_manager == nil then
|
||||
if singletons.player_manager == nil then
|
||||
customization_menu.status = "No player manager";
|
||||
return;
|
||||
end
|
||||
@@ -340,7 +340,7 @@ function player.update_myself_position()
|
||||
customization_menu.status = "No master player game object";
|
||||
return;
|
||||
end
|
||||
|
||||
|
||||
local master_player_transform = get_transform_method:call(master_player_game_object);
|
||||
if not master_player_transform then
|
||||
customization_menu.status = "No master player transform";
|
||||
@@ -401,7 +401,7 @@ function player.update_player_list_(hunter_info_field_)
|
||||
if singletons.lobby_manager == nil then
|
||||
return;
|
||||
end
|
||||
|
||||
|
||||
if singletons.progress_manager == nil then
|
||||
return;
|
||||
end
|
||||
@@ -424,9 +424,9 @@ function player.update_player_list_(hunter_info_field_)
|
||||
|
||||
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;
|
||||
--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;
|
||||
--myself_id = myself_quest_index_field:call(singletons.lobby_manager) or -1;
|
||||
--end
|
||||
|
||||
if myself_id == nil then
|
||||
@@ -447,11 +447,12 @@ function player.update_player_list_(hunter_info_field_)
|
||||
--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;
|
||||
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 = hunter_info_field_:get_data(singletons.lobby_manager);
|
||||
if player_info_list == nil then
|
||||
@@ -468,13 +469,13 @@ function player.update_player_list_(hunter_info_field_)
|
||||
for i = 0, count - 1 do
|
||||
local player_info = get_item_method:call(player_info_list, i);
|
||||
if player_info == nil then
|
||||
goto continue;
|
||||
goto continue
|
||||
end
|
||||
|
||||
local player_id = member_index_field:get_data(player_info);
|
||||
|
||||
|
||||
if player_id == nil then
|
||||
goto continue;
|
||||
goto continue
|
||||
end
|
||||
|
||||
local player_guid = hunter_unique_id_field:get_data(player_info);
|
||||
@@ -494,17 +495,18 @@ function player.update_player_list_(hunter_info_field_)
|
||||
|
||||
local player_name = name_field:get_data(player_info);
|
||||
if player_name == nil then
|
||||
goto continue;
|
||||
goto continue
|
||||
end
|
||||
|
||||
if player.list[player_id] == nil or
|
||||
not guid_equals_method:call(player.list[player_id].guid, player_guid)
|
||||
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
|
||||
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
|
||||
@@ -541,8 +543,10 @@ function player.init_total_UI(_player)
|
||||
_player.damage_UI.total_damage_label.offset.x = _player.damage_UI.total_damage_label.offset.x * global_scale_modifier;
|
||||
_player.damage_UI.total_damage_label.offset.y = _player.damage_UI.total_damage_label.offset.y * global_scale_modifier;
|
||||
|
||||
_player.damage_UI.total_damage_value_label.offset.x = _player.damage_UI.total_damage_value_label.offset.x * global_scale_modifier;
|
||||
_player.damage_UI.total_damage_value_label.offset.y = _player.damage_UI.total_damage_value_label.offset.y * global_scale_modifier;
|
||||
_player.damage_UI.total_damage_value_label.offset.x = _player.damage_UI.total_damage_value_label.offset.x *
|
||||
global_scale_modifier;
|
||||
_player.damage_UI.total_damage_value_label.offset.y = _player.damage_UI.total_damage_value_label.offset.y *
|
||||
global_scale_modifier;
|
||||
|
||||
_player.damage_UI.total_dps_label.offset.x = _player.damage_UI.total_dps_label.offset.x * global_scale_modifier;
|
||||
_player.damage_UI.total_dps_label.offset.y = _player.damage_UI.total_dps_label.offset.y * global_scale_modifier;
|
||||
@@ -553,8 +557,10 @@ function player.draw(_player, position_on_screen, opacity_scale, top_damage, top
|
||||
end
|
||||
|
||||
function player.draw_total(position_on_screen, opacity_scale)
|
||||
drawing.draw_label(player.total.damage_UI.total_damage_label, position_on_screen, opacity_scale, language.current_language.UI.total_damage);
|
||||
drawing.draw_label(player.total.damage_UI.total_damage_value_label, position_on_screen, opacity_scale, player.total.display.total_damage);
|
||||
drawing.draw_label(player.total.damage_UI.total_damage_label, position_on_screen, opacity_scale,
|
||||
language.current_language.UI.total_damage);
|
||||
drawing.draw_label(player.total.damage_UI.total_damage_value_label, position_on_screen, opacity_scale,
|
||||
player.total.display.total_damage);
|
||||
drawing.draw_label(player.total.damage_UI.total_dps_label, position_on_screen, opacity_scale, player.total.dps);
|
||||
end
|
||||
|
||||
@@ -572,4 +578,4 @@ function player.init_module()
|
||||
player.init();
|
||||
end
|
||||
|
||||
return player;
|
||||
return player;
|
||||
|
||||
Reference in New Issue
Block a user