mirror of
https://github.com/GreenComfyTea/MHR-Overlay.git
synced 2026-05-01 21:29:58 -07:00
Optimizations, fixed 'Allmother' quest bug
This commit is contained in:
@@ -11,7 +11,7 @@ local language = require("MHR_Overlay.Misc.language");
|
|||||||
local table_helpers = require("MHR_Overlay.Misc.table_helpers");
|
local table_helpers = require("MHR_Overlay.Misc.table_helpers");
|
||||||
local part_names = require("MHR_Overlay.Misc.part_names");
|
local part_names = require("MHR_Overlay.Misc.part_names");
|
||||||
|
|
||||||
local ailments = require("MHR_Overlay.Monsters.ailments");
|
|
||||||
local player = require("MHR_Overlay.Damage_Meter.player");
|
local player = require("MHR_Overlay.Damage_Meter.player");
|
||||||
local damage_hook = require("MHR_Overlay.Damage_Meter.damage_hook");
|
local damage_hook = require("MHR_Overlay.Damage_Meter.damage_hook");
|
||||||
|
|
||||||
@@ -22,6 +22,8 @@ local body_part = require("MHR_Overlay.Monsters.body_part");
|
|||||||
local large_monster = require("MHR_Overlay.Monsters.large_monster");
|
local large_monster = require("MHR_Overlay.Monsters.large_monster");
|
||||||
local monster_hook = require("MHR_Overlay.Monsters.monster_hook");
|
local monster_hook = require("MHR_Overlay.Monsters.monster_hook");
|
||||||
local small_monster = require("MHR_Overlay.Monsters.small_monster");
|
local small_monster = require("MHR_Overlay.Monsters.small_monster");
|
||||||
|
local ailments = require("MHR_Overlay.Monsters.ailments");
|
||||||
|
local ailment_hook = require("MHR_Overlay.Monsters.ailment_hook");
|
||||||
|
|
||||||
local damage_meter_UI = require("MHR_Overlay.UI.Modules.damage_meter_UI");
|
local damage_meter_UI = require("MHR_Overlay.UI.Modules.damage_meter_UI");
|
||||||
local large_monster_UI = require("MHR_Overlay.UI.Modules.large_monster_UI");
|
local large_monster_UI = require("MHR_Overlay.UI.Modules.large_monster_UI");
|
||||||
@@ -67,7 +69,7 @@ ailments.init_module();
|
|||||||
large_monster.init_module();
|
large_monster.init_module();
|
||||||
monster_hook.init_module();
|
monster_hook.init_module();
|
||||||
small_monster.init_module();
|
small_monster.init_module();
|
||||||
|
ailment_hook.init_module();
|
||||||
|
|
||||||
customization_menu.init_module();
|
customization_menu.init_module();
|
||||||
body_part_UI_entity.init_module();
|
body_part_UI_entity.init_module();
|
||||||
@@ -105,8 +107,8 @@ re.on_frame(function()
|
|||||||
end);
|
end);
|
||||||
|
|
||||||
re.on_frame(function()
|
re.on_frame(function()
|
||||||
draw.text("xy: " .. tostring(xy), 551, 11, 0xFF000000);
|
--draw.text("xy: " .. tostring(xy), 551, 11, 0xFF000000);
|
||||||
draw.text("xy: " .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
--draw.text("xy: " .. tostring(xy), 550, 10, 0xFFFFFFFF);
|
||||||
end);
|
end);
|
||||||
-- #endregion
|
-- #endregion
|
||||||
--------------------------RE_IMGUI---------------------------
|
--------------------------RE_IMGUI---------------------------
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ function damage_hook.update_damage(args)
|
|||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
local enemy_calc_damage_info = sdk.to_managed_object(args[3]); -- snow.hit.EnemyCalcDamageInfo.AfterCalcInfo_DamageSide
|
local enemy_calc_damage_info = sdk.to_managed_object(args[3]); -- snow.hit.EnemyCalcDamageInfo.AfterCalcInfo_DamageSide -- snow.hit.DamageFlowInfoBase calcDamageResult?
|
||||||
local attacker_id = get_attacker_id_method:call(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 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)
|
local is_marionette_attack = is_marionette_attack_method:call(enemy_calc_damage_info)
|
||||||
|
|||||||
@@ -44,6 +44,8 @@ local creature_is_inactive_field = environment_creature_base_type_def:get_field(
|
|||||||
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
|
local message_manager_type_def = sdk.find_type_definition("snow.gui.MessageManager");
|
||||||
local get_env_creature_name_message_method = message_manager_type_def:get_method("getEnvCreatureNameMessage");
|
local get_env_creature_name_message_method = message_manager_type_def:get_method("getEnvCreatureNameMessage");
|
||||||
|
|
||||||
|
local get_pos_method = environment_creature_base_type_def:get_method("get_Pos");
|
||||||
|
|
||||||
function env_creature.init(creature, REcreature)
|
function env_creature.init(creature, REcreature)
|
||||||
local creature_type = creature_type_field:get_data(REcreature);
|
local creature_type = creature_type_field:get_data(REcreature);
|
||||||
if creature_type == nil then
|
if creature_type == nil then
|
||||||
@@ -64,17 +66,23 @@ function env_creature.init_UI(creature)
|
|||||||
creature.name_label.offset.y = creature.name_label.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier;
|
creature.name_label.offset.y = creature.name_label.offset.y * config.current_config.global_settings.modifiers.global_scale_modifier;
|
||||||
end
|
end
|
||||||
|
|
||||||
local get_game_object_method = sdk.find_type_definition("via.Component"):get_method("get_GameObject");
|
--local get_game_object_method = sdk.find_type_definition("via.Component"):get_method("get_GameObject");
|
||||||
local get_transform_method = sdk.find_type_definition("via.GameObject"):get_method("get_Transform");
|
--local get_transform_method = sdk.find_type_definition("via.GameObject"):get_method("get_Transform");
|
||||||
local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position");
|
--local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position");
|
||||||
|
|
||||||
function env_creature.update(REcreature)
|
function env_creature.update(REcreature)
|
||||||
if REcreature == nil then
|
if not config.current_config.endemic_life_UI.enabled then
|
||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
local creature = env_creature.get_creature(REcreature);
|
local creature = env_creature.get_creature(REcreature);
|
||||||
|
|
||||||
|
local position = get_pos_method:call(REcreature);
|
||||||
|
if position ~= nil then
|
||||||
|
creature.position = position;
|
||||||
|
end
|
||||||
|
|
||||||
|
--[[
|
||||||
if creature.game_object == nil then
|
if creature.game_object == nil then
|
||||||
creature.game_object = get_game_object_method:call(REcreature);
|
creature.game_object = get_game_object_method:call(REcreature);
|
||||||
|
|
||||||
@@ -99,11 +107,13 @@ function env_creature.update(REcreature)
|
|||||||
end
|
end
|
||||||
|
|
||||||
creature.position = position;
|
creature.position = position;
|
||||||
|
--]]
|
||||||
|
|
||||||
local is_inactive = creature_is_inactive_field:get_data(REcreature);
|
local is_inactive = creature_is_inactive_field:get_data(REcreature);
|
||||||
if is_inactive ~= nil then
|
if is_inactive ~= nil then
|
||||||
creature.is_inactive = is_inactive;
|
creature.is_inactive = is_inactive;
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function env_creature.draw(creature, position_on_screen, opacity_scale)
|
function env_creature.draw(creature, position_on_screen, opacity_scale)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
local env_creature_hook = {};
|
local env_creature_hook = {};
|
||||||
local env_creature;
|
local env_creature;
|
||||||
local config;
|
local config;
|
||||||
|
local time;
|
||||||
|
|
||||||
local environment_creature_base_type_def = sdk.find_type_definition("snow.envCreature.EnvironmentCreatureBase");
|
local environment_creature_base_type_def = sdk.find_type_definition("snow.envCreature.EnvironmentCreatureBase");
|
||||||
local environment_creature_base_update_method = environment_creature_base_type_def:get_method("update");
|
local environment_creature_base_update_method = environment_creature_base_type_def:get_method("update");
|
||||||
@@ -21,6 +22,7 @@ end
|
|||||||
function env_creature_hook.init_module()
|
function env_creature_hook.init_module()
|
||||||
config = require("MHR_Overlay.Misc.config");
|
config = require("MHR_Overlay.Misc.config");
|
||||||
env_creature = require("MHR_Overlay.Endemic_Life.env_creature");
|
env_creature = require("MHR_Overlay.Endemic_Life.env_creature");
|
||||||
|
time = require("MHR_Overlay.Game_Handler.time");
|
||||||
end
|
end
|
||||||
|
|
||||||
return env_creature_hook;
|
return env_creature_hook;
|
||||||
@@ -14,10 +14,15 @@ quest_status.update_is_result_screen = false;
|
|||||||
|
|
||||||
local quest_manager_type_definition = sdk.find_type_definition("snow.QuestManager");
|
local quest_manager_type_definition = sdk.find_type_definition("snow.QuestManager");
|
||||||
local on_changed_game_status = quest_manager_type_definition:get_method("onChangedGameStatus");
|
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 village_area_manager_type_def = sdk.find_type_definition("snow.VillageAreaManager");
|
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 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");
|
||||||
|
|
||||||
sdk.hook(on_changed_game_status, function(args)
|
sdk.hook(on_changed_game_status, function(args)
|
||||||
pcall(quest_status.update(args));
|
pcall(quest_status.update(args));
|
||||||
end, function(retval)
|
end, function(retval)
|
||||||
@@ -47,7 +52,7 @@ function quest_status.init()
|
|||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
local new_quest_status = singletons.quest_manager:call("getStatus");
|
local new_quest_status = get_status_method:call(singletons.quest_manager);
|
||||||
if new_quest_status == nil then
|
if new_quest_status == nil then
|
||||||
customization_menu.status = "No quest status";
|
customization_menu.status = "No quest status";
|
||||||
return;
|
return;
|
||||||
@@ -64,7 +69,7 @@ function quest_status.update_is_online()
|
|||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
local is_quest_online = singletons.lobby_manager:call("IsQuestOnline");
|
local is_quest_online = is_quest_online_method:call(singletons.lobby_manager);
|
||||||
if is_quest_online == nil then
|
if is_quest_online == nil then
|
||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
@@ -100,7 +105,7 @@ function quest_status.update_is_result_screen()
|
|||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
local is_result_demo_play_start = singletons.quest_manager:call("isResultDemoPlayStart");
|
local is_result_demo_play_start = is_result_demo_play_start_method:call(singletons.quest_manager);
|
||||||
if is_result_demo_play_start == nil then
|
if is_result_demo_play_start == nil then
|
||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -2677,7 +2677,7 @@ function config.init()
|
|||||||
},
|
},
|
||||||
|
|
||||||
endemic_life_UI = {
|
endemic_life_UI = {
|
||||||
enabled = true,
|
enabled = false,
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
hide_inactive_creatures = true,
|
hide_inactive_creatures = true,
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ language.default_language = {
|
|||||||
poison = "Poison",
|
poison = "Poison",
|
||||||
blast = "Blast",
|
blast = "Blast",
|
||||||
exhaust ="Exhaust",
|
exhaust ="Exhaust",
|
||||||
mount = "Mount",
|
ride = "Wyvern Riding",
|
||||||
waterblight = "Waterblight",
|
waterblight = "Waterblight",
|
||||||
fireblight = "Fireblight",
|
fireblight = "Fireblight",
|
||||||
iceblight = "Iceblight",
|
iceblight = "Iceblight",
|
||||||
|
|||||||
@@ -0,0 +1,96 @@
|
|||||||
|
local ailment_hook = {};
|
||||||
|
local small_monster;
|
||||||
|
local large_monster;
|
||||||
|
local config;
|
||||||
|
local ailments;
|
||||||
|
local table_helpers;
|
||||||
|
|
||||||
|
local enemy_poison_damage_param_type_def = sdk.find_type_definition("snow.enemy.EnemyPoisonDamageParam");
|
||||||
|
local on_poison_activate_proc_method = enemy_poison_damage_param_type_def:get_method("onActivateProc");
|
||||||
|
|
||||||
|
local enemy_condition_damage_param_base_type_def = sdk.find_type_definition("snow.enemy.EnemyConditionDamageParamBase");
|
||||||
|
local get_enemy_method = enemy_condition_damage_param_base_type_def:get_method("get_Em");
|
||||||
|
|
||||||
|
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
|
||||||
|
local damage_param_field = enemy_character_base_type_def:get_field("<DamageParam>k__BackingField");
|
||||||
|
local is_boss_enemy_method = enemy_character_base_type_def:get_method("get_isBossEnemy");
|
||||||
|
|
||||||
|
local enemy_damage_param_type_def = sdk.find_type_definition("snow.enemy.EnemyDamageParam");
|
||||||
|
local stock_damage_method = enemy_damage_param_type_def:get_method("stockDamage");
|
||||||
|
local poison_param_field = enemy_damage_param_type_def:get_field("_PoisonParam");
|
||||||
|
local blast_param_field = enemy_damage_param_type_def:get_field("_BlastParam");
|
||||||
|
|
||||||
|
sdk.hook(stock_damage_method, function(args)
|
||||||
|
pcall(ailment_hook.stock_damage);
|
||||||
|
end, function(retval)
|
||||||
|
return retval;
|
||||||
|
end);
|
||||||
|
|
||||||
|
sdk.hook(on_poison_activate_proc_method, function(args)
|
||||||
|
pcall(ailment_hook.poison_proc, sdk.to_managed_object(args[2]));
|
||||||
|
end, function(retval)
|
||||||
|
return retval;
|
||||||
|
end);
|
||||||
|
|
||||||
|
function ailment_hook.poison_proc(poison_param)
|
||||||
|
if poison_param == nil then
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
local enemy = get_enemy_method:call(poison_param);
|
||||||
|
if enemy == nil then
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
local is_large = is_boss_enemy_method:call(enemy);
|
||||||
|
if is_large == nil then
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
local monster;
|
||||||
|
if is_large then
|
||||||
|
monster = large_monster.get_monster(enemy);
|
||||||
|
else
|
||||||
|
monster = small_monster.get_monster(enemy);
|
||||||
|
end
|
||||||
|
|
||||||
|
ailments.calculate_ailment_contribution(monster, ailments.poison_id);
|
||||||
|
end
|
||||||
|
|
||||||
|
function ailment_hook.stock_damage()
|
||||||
|
for enemy, monster in pairs(large_monster.list) do
|
||||||
|
local damage_param = damage_param_field:get_data(enemy);
|
||||||
|
if damage_param == nil then
|
||||||
|
goto continue;
|
||||||
|
end
|
||||||
|
|
||||||
|
local poison_param = poison_param_field:get_data(damage_param);
|
||||||
|
local blast_param = blast_param_field:get_data(damage_param);
|
||||||
|
|
||||||
|
ailments.update_poison_blast(monster, poison_param, blast_param);
|
||||||
|
::continue::
|
||||||
|
end
|
||||||
|
|
||||||
|
for enemy, monster in pairs(small_monster.list) do
|
||||||
|
local damage_param = damage_param_field:get_data(enemy);
|
||||||
|
if damage_param == nil then
|
||||||
|
goto continue;
|
||||||
|
end
|
||||||
|
|
||||||
|
local poison_param = poison_param_field:get_data(damage_param);
|
||||||
|
local blast_param = blast_param_field:get_data(damage_param);
|
||||||
|
|
||||||
|
ailments.update_poison_blast(monster, poison_param, blast_param);
|
||||||
|
::continue::
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function ailment_hook.init_module()
|
||||||
|
small_monster = require("MHR_Overlay.Monsters.small_monster");
|
||||||
|
large_monster = require("MHR_Overlay.Monsters.large_monster");
|
||||||
|
config = require("MHR_Overlay.Misc.config");
|
||||||
|
ailments = require("MHR_Overlay.Monsters.ailments");
|
||||||
|
table_helpers = require("MHR_Overlay.Misc.table_helpers");
|
||||||
|
end
|
||||||
|
|
||||||
|
return ailment_hook;
|
||||||
@@ -33,7 +33,7 @@ ailments.flash_id = 3;
|
|||||||
ailments.poison_id = 4;
|
ailments.poison_id = 4;
|
||||||
ailments.blast_id = 5;
|
ailments.blast_id = 5;
|
||||||
ailments.exhaust_id = 6;
|
ailments.exhaust_id = 6;
|
||||||
ailments.mount_id = 7;
|
ailments.ride_id = 7;
|
||||||
ailments.water_id = 8;
|
ailments.water_id = 8;
|
||||||
ailments.fire_id = 9;
|
ailments.fire_id = 9;
|
||||||
ailments.ice_id = 10;
|
ailments.ice_id = 10;
|
||||||
@@ -83,8 +83,8 @@ function ailments.new(_ailments, ailment_id)
|
|||||||
_ailments[ailment_id].name = language.current_language.ailments.blast;
|
_ailments[ailment_id].name = language.current_language.ailments.blast;
|
||||||
elseif ailment_id == ailments.exhaust_id then
|
elseif ailment_id == ailments.exhaust_id then
|
||||||
_ailments[ailment_id].name = language.current_language.ailments.exhaust;
|
_ailments[ailment_id].name = language.current_language.ailments.exhaust;
|
||||||
elseif ailment_id == ailments.mount_id then
|
elseif ailment_id == ailments.ride_id then
|
||||||
_ailments[ailment_id].name = language.current_language.ailments.mount;
|
_ailments[ailment_id].name = language.current_language.ailments.ride;
|
||||||
elseif ailment_id == ailments.water_id then
|
elseif ailment_id == ailments.water_id then
|
||||||
_ailments[ailment_id].name = language.current_language.ailments.waterblight;
|
_ailments[ailment_id].name = language.current_language.ailments.waterblight;
|
||||||
elseif ailment_id == ailments.fire_id then
|
elseif ailment_id == ailments.fire_id then
|
||||||
@@ -122,7 +122,7 @@ function ailments.init_ailments()
|
|||||||
ailments.new(_ailments, ailments.poison_id);
|
ailments.new(_ailments, ailments.poison_id);
|
||||||
ailments.new(_ailments, ailments.blast_id);
|
ailments.new(_ailments, ailments.blast_id);
|
||||||
ailments.new(_ailments, ailments.exhaust_id);
|
ailments.new(_ailments, ailments.exhaust_id);
|
||||||
ailments.new(_ailments, ailments.mount_id);
|
ailments.new(_ailments, ailments.ride_id);
|
||||||
ailments.new(_ailments, ailments.water_id);
|
ailments.new(_ailments, ailments.water_id);
|
||||||
ailments.new(_ailments, ailments.fire_id);
|
ailments.new(_ailments, ailments.fire_id);
|
||||||
ailments.new(_ailments, ailments.ice_id);
|
ailments.new(_ailments, ailments.ice_id);
|
||||||
@@ -261,7 +261,6 @@ function ailments.update_ailments(enemy, monster)
|
|||||||
|
|
||||||
if duration ~= nil and not monster.ailments[id].is_active then
|
if duration ~= nil and not monster.ailments[id].is_active then
|
||||||
if duration ~= monster.ailments[id].duration then
|
if duration ~= monster.ailments[id].duration then
|
||||||
xy = tostring(monster.ailments[id].is_active) .. " " .. tostring(monster.ailments[id].duration) .. " -> " .. tostring(duration);
|
|
||||||
ailments.update_last_change_time(monster, id);
|
ailments.update_last_change_time(monster, id);
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -303,54 +302,33 @@ function ailments.update_last_change_time(monster, id)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Code by coavins
|
-- Code by coavins
|
||||||
function ailments.update_poison_blast(enemy, is_large)
|
function ailments.update_poison_blast(monster, poison_param, blast_param)
|
||||||
if enemy == nil then
|
if monster == nil then
|
||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
local monster;
|
if poison_param ~= nil then
|
||||||
if is_large then
|
--if poison tick, apply damage
|
||||||
monster = large_monster.get_monster(enemy);
|
local is_damage = poison_get_is_damage_method:call(poison_param);
|
||||||
else
|
if is_damage then
|
||||||
monster = small_monster.get_monster(enemy);
|
local poison_damage = poison_damage_field:get_data(poison_param);
|
||||||
|
|
||||||
|
ailments.apply_ailment_damage(monster, ailments.poison_id, poison_damage);
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local damage_param = damage_param_field:get_data(enemy);
|
if blast_param ~= nil then
|
||||||
if damage_param ~= nil then
|
-- if applied, then calculate share for blast and apply damage
|
||||||
|
local activate_count = get_activate_count_method:call(blast_param):get_element(0):get_field("mValue");
|
||||||
|
|
||||||
local poison_param = poison_param_field:get_data(damage_param);
|
if activate_count > monster.ailments[ailments.blast_id].activate_count then
|
||||||
if poison_param ~= nil then
|
monster.ailments[ailments.blast_id].activate_count = activate_count;
|
||||||
-- if applied, then calculate share for poison
|
ailments.calculate_ailment_contribution(monster, ailments.blast_id);
|
||||||
local activate_count = get_activate_count_method:call(poison_param):get_element(0):get_field("mValue");
|
|
||||||
|
|
||||||
if activate_count > monster.ailments[ailments.poison_id].activate_count then
|
local blast_damage = blast_damage_method:call(blast_param);
|
||||||
monster.ailments[ailments.poison_id].activate_count = activate_count;
|
local blast_adjust_rate = blast_adjust_rate_method:call(blast_param);
|
||||||
ailments.calculate_ailment_contribution(monster, ailments.poison_id);
|
|
||||||
end
|
|
||||||
|
|
||||||
-- if poison tick, apply damage
|
ailments.apply_ailment_damage(monster, ailments.blast_id, blast_damage * blast_adjust_rate);
|
||||||
local poison_damage = poison_damage_field:get_data(poison_param);
|
|
||||||
local is_damage = poison_get_is_damage_method:call(poison_param);
|
|
||||||
|
|
||||||
if is_damage then
|
|
||||||
ailments.apply_ailment_damage(monster, ailments.poison_id, poison_damage);
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local blast_param = blast_param_field:get_data(damage_param);
|
|
||||||
if blast_param ~= nil then
|
|
||||||
-- if applied, then calculate share for blast and apply damage
|
|
||||||
local activate_count = get_activate_count_method:call(blast_param):get_element(0):get_field("mValue");
|
|
||||||
|
|
||||||
if activate_count > monster.ailments[ailments.blast_id].activate_count then
|
|
||||||
monster.ailments[ailments.blast_id].activate_count = activate_count;
|
|
||||||
ailments.calculate_ailment_contribution(monster, ailments.blast_id);
|
|
||||||
|
|
||||||
local blast_damage = blast_damage_method:call(blast_param);
|
|
||||||
local blast_adjust_rate = blast_adjust_rate_method:call(blast_param);
|
|
||||||
|
|
||||||
ailments.apply_ailment_damage(monster, ailments.blast_id, blast_damage * blast_adjust_rate);
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ function large_monster.new(enemy)
|
|||||||
monster.capture_percentage = 0;
|
monster.capture_percentage = 0;
|
||||||
|
|
||||||
monster.dead_or_captured = false;
|
monster.dead_or_captured = false;
|
||||||
|
monster.is_disp_icon_mini_map = true;
|
||||||
|
|
||||||
monster.stamina = 0;
|
monster.stamina = 0;
|
||||||
monster.max_stamina = 1000;
|
monster.max_stamina = 1000;
|
||||||
@@ -323,6 +324,7 @@ local physical_param_field = enemy_character_base_type_def:get_field("<PhysicalP
|
|||||||
local stamina_param_field = enemy_character_base_type_def:get_field("<StaminaParam>k__BackingField");
|
local stamina_param_field = enemy_character_base_type_def:get_field("<StaminaParam>k__BackingField");
|
||||||
local anger_param_field = enemy_character_base_type_def:get_field("<AngerParam>k__BackingField");
|
local anger_param_field = enemy_character_base_type_def:get_field("<AngerParam>k__BackingField");
|
||||||
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
|
local check_die_method = enemy_character_base_type_def:get_method("checkDie");
|
||||||
|
local is_disp_icon_mini_map_method = enemy_character_base_type_def:get_method("isDispIconMiniMap");
|
||||||
|
|
||||||
local physical_param_type = physical_param_field:get_type();
|
local physical_param_type = physical_param_field:get_type();
|
||||||
local get_vital_method = physical_param_type:get_method("getVital");
|
local get_vital_method = physical_param_type:get_method("getVital");
|
||||||
@@ -351,15 +353,15 @@ local mario_param_type = mario_param_field:get_type();
|
|||||||
local get_is_marionette_method = mario_param_type:get_method("get_IsMarionette");
|
local get_is_marionette_method = mario_param_type:get_method("get_IsMarionette");
|
||||||
local get_mario_player_index_method = mario_param_type:get_method("get_MarioPlayerIndex");
|
local get_mario_player_index_method = mario_param_type:get_method("get_MarioPlayerIndex");
|
||||||
|
|
||||||
local get_game_object_method = sdk.find_type_definition("via.Component"):get_method("get_GameObject");
|
local get_pos_field = enemy_character_base_type_def:get_method("get_Pos");
|
||||||
local get_transform_method = sdk.find_type_definition("via.GameObject"):get_method("get_Transform");
|
|
||||||
local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position");
|
--local get_game_object_method = sdk.find_type_definition("via.Component"):get_method("get_GameObject");
|
||||||
|
--local get_transform_method = sdk.find_type_definition("via.GameObject"):get_method("get_Transform");
|
||||||
|
--local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position");
|
||||||
|
|
||||||
function large_monster.update_position(enemy)
|
function large_monster.update_position(enemy)
|
||||||
|
|
||||||
if not config.current_config.large_monster_UI.dynamic.enabled
|
if not config.current_config.large_monster_UI.dynamic.enabled then
|
||||||
and not config.current_config.large_monster_UI.static.enabled
|
|
||||||
and not config.current_config.large_monster_UI.highlighted.enabled then
|
|
||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -368,6 +370,13 @@ function large_monster.update_position(enemy)
|
|||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local position = get_pos_field:call(enemy);
|
||||||
|
if position ~= nil then
|
||||||
|
monster.position = position;
|
||||||
|
end
|
||||||
|
|
||||||
|
--[[
|
||||||
|
-- cac
|
||||||
-- cache off the game object and transform
|
-- cache off the game object and transform
|
||||||
-- as these are pretty much guaranteed to stay constant
|
-- as these are pretty much guaranteed to stay constant
|
||||||
-- as long as the enemy is alive
|
-- as long as the enemy is alive
|
||||||
@@ -395,7 +404,7 @@ function large_monster.update_position(enemy)
|
|||||||
|
|
||||||
if position ~= nil then
|
if position ~= nil then
|
||||||
monster.position = position;
|
monster.position = position;
|
||||||
end
|
end--]]
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Code by coavins
|
-- Code by coavins
|
||||||
@@ -444,11 +453,8 @@ function large_monster.update(enemy)
|
|||||||
local health = get_current_method:call(vital_param);
|
local health = get_current_method:call(vital_param);
|
||||||
local max_health = get_max_method:call(vital_param);
|
local max_health = get_max_method:call(vital_param);
|
||||||
local capture_health = get_capture_hp_vital_method:call(physical_param);
|
local capture_health = get_capture_hp_vital_method:call(physical_param);
|
||||||
|
|
||||||
local dead_or_captured = check_die_method:call(enemy);
|
local dead_or_captured = check_die_method:call(enemy);
|
||||||
if dead_or_captured == nil then
|
local is_disp_icon_mini_map = is_disp_icon_mini_map_method:call(enemy);
|
||||||
return;
|
|
||||||
end
|
|
||||||
|
|
||||||
local stamina_param = stamina_param_field:get_data(enemy)
|
local stamina_param = stamina_param_field:get_data(enemy)
|
||||||
if stamina_param == nil then
|
if stamina_param == nil then
|
||||||
@@ -567,6 +573,9 @@ function large_monster.update(enemy)
|
|||||||
if dead_or_captured ~= nil then
|
if dead_or_captured ~= nil then
|
||||||
monster.dead_or_captured = dead_or_captured;
|
monster.dead_or_captured = dead_or_captured;
|
||||||
end
|
end
|
||||||
|
if is_disp_icon_mini_map ~= nil then
|
||||||
|
monster.is_disp_icon_mini_map = is_disp_icon_mini_map;
|
||||||
|
end
|
||||||
|
|
||||||
if stamina ~= nil then
|
if stamina ~= nil then
|
||||||
monster.stamina = stamina;
|
monster.stamina = stamina;
|
||||||
@@ -833,6 +842,8 @@ function large_monster.draw_highlighted(monster, position_on_screen, opacity_sca
|
|||||||
|
|
||||||
local last_part_position_on_screen = body_part.draw_highlighted(monster, parts_position_on_screen, opacity_scale);
|
local last_part_position_on_screen = body_part.draw_highlighted(monster, parts_position_on_screen, opacity_scale);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if config.current_config.large_monster_UI.highlighted.ailments.settings.offset_is_relative_to_parts then
|
if config.current_config.large_monster_UI.highlighted.ailments.settings.offset_is_relative_to_parts then
|
||||||
if last_part_position_on_screen ~= nil then
|
if last_part_position_on_screen ~= nil then
|
||||||
ailments_position_on_screen = {
|
ailments_position_on_screen = {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ local ailments;
|
|||||||
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
|
local enemy_character_base_type_def = sdk.find_type_definition("snow.enemy.EnemyCharacterBase");
|
||||||
local enemy_character_base_update_method = enemy_character_base_type_def:get_method("update");
|
local enemy_character_base_update_method = enemy_character_base_type_def:get_method("update");
|
||||||
|
|
||||||
local is_boss_enemy_method = sdk.find_type_definition("snow.enemy.EnemyCharacterBase"):get_method("get_isBossEnemy");
|
local is_boss_enemy_method = enemy_character_base_type_def:get_method("get_isBossEnemy");
|
||||||
|
|
||||||
sdk.hook(enemy_character_base_update_method, function(args)
|
sdk.hook(enemy_character_base_update_method, function(args)
|
||||||
pcall(monster_hook.update_monster, sdk.to_managed_object(args[2]));
|
pcall(monster_hook.update_monster, sdk.to_managed_object(args[2]));
|
||||||
@@ -68,8 +68,6 @@ function monster_hook.update_monster(enemy)
|
|||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
ailments.update_poison_blast(enemy, is_large);
|
|
||||||
|
|
||||||
if is_large then
|
if is_large then
|
||||||
monster_hook.update_large_monster(enemy);
|
monster_hook.update_large_monster(enemy);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -118,26 +118,34 @@ local physical_param_type = physical_param_field:get_type();
|
|||||||
local get_vital_method = physical_param_type:get_method("getVital");
|
local get_vital_method = physical_param_type:get_method("getVital");
|
||||||
local get_capture_hp_vital_method = physical_param_type:get_method("get_CaptureHpVital");
|
local get_capture_hp_vital_method = physical_param_type:get_method("get_CaptureHpVital");
|
||||||
|
|
||||||
local vital_param_type = get_vital_method:get_return_type();
|
local get_hp_vital_method = enemy_character_base_type_def:get_method("getHpVital");
|
||||||
local get_current_method = vital_param_type:get_method("get_Current");
|
local get_hp_max_vital_method = enemy_character_base_type_def:get_method("getHpMaxVital");
|
||||||
local get_max_method = vital_param_type:get_method("get_Max");
|
|
||||||
|
|
||||||
local stamina_param_type = stamina_param_field:get_type();
|
local stamina_param_type = stamina_param_field:get_type();
|
||||||
local get_stamina_method = stamina_param_type:get_method("getStamina");
|
local get_stamina_method = stamina_param_type:get_method("getStamina");
|
||||||
local get_max_stamina_method = stamina_param_type:get_method("getMaxStamina");
|
local get_max_stamina_method = stamina_param_type:get_method("getMaxStamina");
|
||||||
|
|
||||||
local get_gameobject_method = sdk.find_type_definition("via.Component"):get_method("get_GameObject");
|
local get_pos_field = enemy_character_base_type_def:get_method("get_Pos");
|
||||||
local get_transform_method = sdk.find_type_definition("via.GameObject"):get_method("get_Transform");
|
|
||||||
local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position");
|
--local get_gameobject_method = sdk.find_type_definition("via.Component"):get_method("get_GameObject");
|
||||||
|
--local get_transform_method = sdk.find_type_definition("via.GameObject"):get_method("get_Transform");
|
||||||
|
--local get_position_method = sdk.find_type_definition("via.Transform"):get_method("get_Position");
|
||||||
|
|
||||||
function small_monster.update_position(enemy)
|
function small_monster.update_position(enemy)
|
||||||
if not config.current_config.small_monster_UI.enabled then
|
if not config.current_config.small_monster_UI.enabled or not config.current_config.small_monster_UI.dynamic_positioning.enabled then
|
||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
local monster = small_monster.get_monster(enemy);
|
local monster = small_monster.get_monster(enemy);
|
||||||
if not monster then return end
|
if not monster then return end
|
||||||
|
|
||||||
|
local position = get_pos_field:call(enemy);
|
||||||
|
if position ~= nil then
|
||||||
|
monster.position = position;
|
||||||
|
end
|
||||||
|
|
||||||
|
--[[
|
||||||
-- cache off the game object and transform
|
-- cache off the game object and transform
|
||||||
-- as these are pretty much guaranteed to stay constant
|
-- as these are pretty much guaranteed to stay constant
|
||||||
-- as long as the enemy is alive
|
-- as long as the enemy is alive
|
||||||
@@ -166,6 +174,7 @@ function small_monster.update_position(enemy)
|
|||||||
if position ~= nil then
|
if position ~= nil then
|
||||||
monster.position = position;
|
monster.position = position;
|
||||||
end
|
end
|
||||||
|
--]]
|
||||||
end
|
end
|
||||||
|
|
||||||
function small_monster.update(enemy)
|
function small_monster.update(enemy)
|
||||||
@@ -201,20 +210,18 @@ function small_monster.update(enemy)
|
|||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
local health = get_current_method:call(vital_param)
|
local health = get_hp_vital_method:call(enemy);
|
||||||
local max_health = get_max_method:call(vital_param)
|
local max_health = get_hp_max_vital_method:call(enemy);
|
||||||
local capture_health = get_capture_hp_vital_method:call(physical_param)
|
local capture_health = get_capture_hp_vital_method:call(physical_param);
|
||||||
|
|
||||||
local stamina = get_stamina_method:call(stamina_param)
|
local stamina = get_stamina_method:call(stamina_param);
|
||||||
local max_stamina = get_max_stamina_method:call(stamina_param)
|
local max_stamina = get_max_stamina_method:call(stamina_param);
|
||||||
|
|
||||||
local dead_or_captured = check_die_method:call(enemy);
|
local dead_or_captured = check_die_method:call(enemy);
|
||||||
if dead_or_captured == nil then
|
if dead_or_captured == nil then
|
||||||
return;
|
return;
|
||||||
end
|
end
|
||||||
|
|
||||||
small_monster.update_position(enemy)
|
|
||||||
|
|
||||||
local monster = small_monster.get_monster(enemy);
|
local monster = small_monster.get_monster(enemy);
|
||||||
|
|
||||||
if health ~= nil then
|
if health ~= nil then
|
||||||
@@ -255,7 +262,7 @@ function small_monster.update(enemy)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
ailments.update_ailments(enemy, monster)
|
ailments.update_ailments(enemy, monster);
|
||||||
end
|
end
|
||||||
|
|
||||||
function small_monster.draw(monster, position_on_screen, opacity_scale)
|
function small_monster.draw(monster, position_on_screen, opacity_scale)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ function large_monster_UI.draw(dynamic_enabled, static_enabled, highlighted_enab
|
|||||||
goto continue;
|
goto continue;
|
||||||
end
|
end
|
||||||
|
|
||||||
if monster.dead_or_captured then
|
if monster.dead_or_captured or not monster.is_disp_icon_mini_map then
|
||||||
monster_id_shift = monster_id_shift + 1;
|
monster_id_shift = monster_id_shift + 1;
|
||||||
elseif i == highlighted_id + monster_id_shift then
|
elseif i == highlighted_id + monster_id_shift then
|
||||||
highlighted_monster = monster;
|
highlighted_monster = monster;
|
||||||
|
|||||||
@@ -19,10 +19,10 @@
|
|||||||
"fireblight": "Fireblight",
|
"fireblight": "Fireblight",
|
||||||
"flash": "Flash",
|
"flash": "Flash",
|
||||||
"iceblight": "Iceblight",
|
"iceblight": "Iceblight",
|
||||||
"mount": "Mount",
|
|
||||||
"paralysis": "Paralysis",
|
"paralysis": "Paralysis",
|
||||||
"poison": "Poison",
|
"poison": "Poison",
|
||||||
"quick_sand": "Quick Sand",
|
"quick_sand": "Quick Sand",
|
||||||
|
"ride": "Wyvern Riding",
|
||||||
"shock_otomo_trap": "Shock Otomo Trap",
|
"shock_otomo_trap": "Shock Otomo Trap",
|
||||||
"shock_trap": "Shock Trap",
|
"shock_trap": "Shock Trap",
|
||||||
"sleep": "Sleep",
|
"sleep": "Sleep",
|
||||||
|
|||||||
@@ -19,10 +19,10 @@
|
|||||||
"fireblight": "Fireblight",
|
"fireblight": "Fireblight",
|
||||||
"flash": "Flash",
|
"flash": "Flash",
|
||||||
"iceblight": "Iceblight",
|
"iceblight": "Iceblight",
|
||||||
"mount": "Mount",
|
|
||||||
"paralysis": "Paralysis",
|
"paralysis": "Paralysis",
|
||||||
"poison": "Poison",
|
"poison": "Poison",
|
||||||
"quick_sand": "Quick Sand",
|
"quick_sand": "Quick Sand",
|
||||||
|
"ride": "Wyvern Riding",
|
||||||
"shock_otomo_trap": "Shock Otomo Trap",
|
"shock_otomo_trap": "Shock Otomo Trap",
|
||||||
"shock_trap": "Shock Trap",
|
"shock_trap": "Shock Trap",
|
||||||
"sleep": "Sleep",
|
"sleep": "Sleep",
|
||||||
@@ -80,8 +80,6 @@
|
|||||||
"first": "처음",
|
"first": "처음",
|
||||||
"first_hit": "첫 공격",
|
"first_hit": "첫 공격",
|
||||||
"flinch_count": "경직 횟수",
|
"flinch_count": "경직 횟수",
|
||||||
"font": "글꼴",
|
|
||||||
"font_notice": "글꼴 설정 변경시 스크립트 리로드가 필수입니다!",
|
|
||||||
"foreground": "전경색",
|
"foreground": "전경색",
|
||||||
"global_position_modifier": "전역 위치 배율",
|
"global_position_modifier": "전역 위치 배율",
|
||||||
"global_scale_modifier": "전역 크기 배율",
|
"global_scale_modifier": "전역 크기 배율",
|
||||||
@@ -103,7 +101,6 @@
|
|||||||
"highlighted": "타겟 몬스터 표시",
|
"highlighted": "타겟 몬스터 표시",
|
||||||
"highlighted_bar": "타겟 몬스터 막대",
|
"highlighted_bar": "타겟 몬스터 막대",
|
||||||
"highlighted_damage_bar": "타겟 몬스터 대미지 막대",
|
"highlighted_damage_bar": "타겟 몬스터 대미지 막대",
|
||||||
"higlighted_bar": "타겟 몬스터 막대",
|
|
||||||
"horizontal": "가로",
|
"horizontal": "가로",
|
||||||
"hotkeys": "단축키",
|
"hotkeys": "단축키",
|
||||||
"hunter_rank": "헌터 랭크",
|
"hunter_rank": "헌터 랭크",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"UI": {
|
"UI": {
|
||||||
"HP": "ОЗ:",
|
"HP": "ОЗ:",
|
||||||
"buildup": "Buildup",
|
"buildup": "Накопление",
|
||||||
"gold": "Золото",
|
"gold": "Золото",
|
||||||
"mini": "Мини",
|
"mini": "Мини",
|
||||||
"player": "Игрок",
|
"player": "Игрок",
|
||||||
@@ -11,53 +11,52 @@
|
|||||||
"total_damage": "Общий урон"
|
"total_damage": "Общий урон"
|
||||||
},
|
},
|
||||||
"ailments": {
|
"ailments": {
|
||||||
"blast": "Blast",
|
"blast": "Взрыв",
|
||||||
"dung_bomb": "Dung Bomb",
|
"dung_bomb": "Навозная бомба",
|
||||||
"exhaust": "Exhaust",
|
"exhaust": "Истощение",
|
||||||
"fall_otomo_trap": "Fall Otomo Trap",
|
"fall_otomo_trap": "Волчья яма спутника",
|
||||||
"fall_trap": "Fall Trap",
|
"fall_trap": "Волчья яма",
|
||||||
"fireblight": "Fireblight",
|
"fireblight": "Огненная порча",
|
||||||
"flash": "Flash",
|
"flash": "Flash",
|
||||||
"iceblight": "Iceblight",
|
"iceblight": "Ледяная порча",
|
||||||
"mount": "Mount",
|
"paralysis": "Паралич",
|
||||||
"paralysis": "Paralysis",
|
"poison": "Отравление",
|
||||||
"poison": "Poison",
|
"quick_sand": "Зыбучий песок",
|
||||||
"quick_sand": "Quick Sand",
|
"ride": "Езда на виверне",
|
||||||
"shock_otomo_trap": "Shock Otomo Trap",
|
"shock_otomo_trap": "Шоковая ловушка спутника",
|
||||||
"shock_trap": "Shock Trap",
|
"shock_trap": "Шоковая ловушка",
|
||||||
"sleep": "Sleep",
|
"sleep": "Сон",
|
||||||
"steel_fang": "Steel Fang",
|
"steel_fang": "Стальной клык",
|
||||||
"stun": "Stun",
|
"stun": "Оглушение",
|
||||||
"thunderblight": "Thunderblight",
|
"thunderblight": "Грозовая порча",
|
||||||
"tranq_bomb": "Tranq Bomb",
|
"tranq_bomb": "Снотворная порча",
|
||||||
"waterblight": "Waterblight"
|
"waterblight": "Водяная порча"
|
||||||
},
|
},
|
||||||
"customization_menu": {
|
"customization_menu": {
|
||||||
"UI_font": "Шрифт интерфейса",
|
"UI_font": "Шрифт интерфейса",
|
||||||
"UI_font_notice": "Любые изменения шрифта требуют перезагрузку скрипта!",
|
"UI_font_notice": "Любые изменения шрифта требуют перезагрузку скрипта!",
|
||||||
"activation_count": "Activation Count",
|
"activation_count": "Кол-во активаций",
|
||||||
"ailment_name": "Ailment Name",
|
"ailment_name": "Название аномального статуса",
|
||||||
"ailment_name_label": "Ailment Name Label",
|
"ailment_name_label": "Метка названия аномального статуса",
|
||||||
"ailments": "Ailments",
|
"ailments": "Аномальные статусы",
|
||||||
"all_UI": "Весь интерфейс",
|
"all_UI": "Весь интерфейс",
|
||||||
"anchor": "Привязка",
|
"anchor": "Привязка",
|
||||||
"assign_new_key": "Привязать клавишу",
|
"assign_new_key": "Привязать клавишу",
|
||||||
"background": "Фон",
|
"background": "Фон",
|
||||||
"bar": "Шкала",
|
"bar": "Шкала",
|
||||||
"blast": "Blast",
|
"blast_damage": "Урон от взрыва",
|
||||||
"blast_damage": "Blast Damage",
|
|
||||||
"body_parts": "Части тела",
|
"body_parts": "Части тела",
|
||||||
"bold": "Жирный",
|
"bold": "Жирный",
|
||||||
"bomb_damage": "Урон от бомб",
|
"bomb_damage": "Урон от бомб",
|
||||||
"bottom_left": "Левый нижний угол",
|
"bottom_left": "Левый нижний угол",
|
||||||
"bottom_right": "Правй нижний угол",
|
"bottom_right": "Правй нижний угол",
|
||||||
"break_count": "Счётчик повреждений",
|
"break_count": "Счётчик повреждений",
|
||||||
"buildup": "Buildup",
|
"buildup": "Накопление",
|
||||||
"buildup_percentage": "Buildup Percentage",
|
"buildup_percentage": "Процент накопления",
|
||||||
"capture_line": "Линия здоровья захвата",
|
"capture_line": "Линия здоровья захвата",
|
||||||
"color": "Цвет",
|
"color": "Цвет",
|
||||||
"colors": "Цвета",
|
"colors": "Цвета",
|
||||||
"creature_name_label": "Creature Name Label",
|
"creature_name_label": "Метка имени существа",
|
||||||
"crown": "Корона",
|
"crown": "Корона",
|
||||||
"crown_thresholds": "Лимиты корон",
|
"crown_thresholds": "Лимиты корон",
|
||||||
"damage": "Урон",
|
"damage": "Урон",
|
||||||
@@ -70,23 +69,16 @@
|
|||||||
"dps": "Урон в секунду",
|
"dps": "Урон в секунду",
|
||||||
"dps_label": "Метка урона в секунду",
|
"dps_label": "Метка урона в секунду",
|
||||||
"dps_mode": "Режим урона в секунду",
|
"dps_mode": "Режим урона в секунду",
|
||||||
"dung_bomb": "Dung Bomb",
|
|
||||||
"during_quest": "Во время квеста",
|
"during_quest": "Во время квеста",
|
||||||
"dynamic_positioning": "Динамическое позиционирование",
|
"dynamic_positioning": "Динамическое позиционирование",
|
||||||
"dynamically_positioned": "Рассположенный динамично",
|
"dynamically_positioned": "Рассположенный динамично",
|
||||||
"enable_for": "Показывать для",
|
"enable_for": "Показывать для",
|
||||||
"enabled": "Включить",
|
"enabled": "Включить",
|
||||||
"endemic_life_UI": "Endemic Life UI",
|
"endemic_life_UI": "Интерфейс местной живности",
|
||||||
"exhaust": "Exhaust",
|
|
||||||
"fall_otomo_trap": "Fall Otomo Trap",
|
|
||||||
"fall_trap": "Fall Trap",
|
|
||||||
"family": "Семейство",
|
"family": "Семейство",
|
||||||
"fight_time": "Время в бою",
|
"fight_time": "Время в бою",
|
||||||
"fire": "Fire",
|
|
||||||
"fireblight": "Fireblight",
|
|
||||||
"first": "Первый",
|
"first": "Первый",
|
||||||
"first_hit": "Первый удар",
|
"first_hit": "Первый удар",
|
||||||
"flash": "Flash",
|
|
||||||
"flinch_count": "Кол-во повреждений",
|
"flinch_count": "Кол-во повреждений",
|
||||||
"foreground": "Передний план",
|
"foreground": "Передний план",
|
||||||
"global_position_modifier": "Глобальный модификатор расположения",
|
"global_position_modifier": "Глобальный модификатор расположения",
|
||||||
@@ -95,13 +87,13 @@
|
|||||||
"health": "Здоровье",
|
"health": "Здоровье",
|
||||||
"health_percentage": "Здоровье в процентах",
|
"health_percentage": "Здоровье в процентах",
|
||||||
"height": "Высота",
|
"height": "Высота",
|
||||||
"hide_ailments_with_zero_buildup": "Hide Ailments with 0 Buildup",
|
"hide_ailments_with_zero_buildup": "Скрыть аномальный статус, если накопление равно 0",
|
||||||
"hide_all_active_ailments": "Hide All Active Ailments",
|
"hide_all_active_ailments": "Скрыть все активные аномальные статусы",
|
||||||
"hide_all_inactive_ailments": "Hide All Inactive Ailments",
|
"hide_all_inactive_ailments": "Скрыть все неактивные аномальные статусы",
|
||||||
"hide_dead_or_captured": "Скрыть мёртвых и захваченных монстров",
|
"hide_dead_or_captured": "Скрыть мёртвых и захваченных монстров",
|
||||||
"hide_disabled_ailments": "Hide Disabled Ailments",
|
"hide_disabled_ailments": "Скрыть отключенные аномальные статусы",
|
||||||
"hide_inactive_ailments_with_no_buildup_support": "Hide Inactive Ailments with no Buildup Support",
|
"hide_inactive_ailments_with_no_buildup_support": "Скрыть неактивные аномальные статусы без поддержки накопления",
|
||||||
"hide_inactive_creatures": "Hide Inactive Creatures",
|
"hide_inactive_creatures": "Скрыть неактивных существ",
|
||||||
"hide_module_if_total_damage_is_zero": "Скрыть модуль, если общий урон равен 0",
|
"hide_module_if_total_damage_is_zero": "Скрыть модуль, если общий урон равен 0",
|
||||||
"hide_player_if_player_damage_is_zero": "Скрыть игрока, если его урон равен 0",
|
"hide_player_if_player_damage_is_zero": "Скрыть игрока, если его урон равен 0",
|
||||||
"hide_total_if_total_damage_is_zero": "Скрыть общий урон, если он равен 0",
|
"hide_total_if_total_damage_is_zero": "Скрыть общий урон, если он равен 0",
|
||||||
@@ -113,8 +105,6 @@
|
|||||||
"hotkeys": "Горячие клавиши",
|
"hotkeys": "Горячие клавиши",
|
||||||
"hunter_rank": "Ранг охотника",
|
"hunter_rank": "Ранг охотника",
|
||||||
"hunter_rank_label": "Метка ранга охотника",
|
"hunter_rank_label": "Метка ранга охотника",
|
||||||
"ice": "Ice",
|
|
||||||
"iceblight": "Iceblight",
|
|
||||||
"include": "Элементы",
|
"include": "Элементы",
|
||||||
"installation_damage": "Урон от установок",
|
"installation_damage": "Урон от установок",
|
||||||
"italic": "Курсив",
|
"italic": "Курсив",
|
||||||
@@ -132,24 +122,22 @@
|
|||||||
"me": "Я",
|
"me": "Я",
|
||||||
"menu_font": "Шрифт меню",
|
"menu_font": "Шрифт меню",
|
||||||
"mod_name": "MHR Overlay",
|
"mod_name": "MHR Overlay",
|
||||||
"modifiers": "Modifiers",
|
"modifiers": "Модификаторы",
|
||||||
"module_visibility_on_different_screens": "Видимость модулей на разных экранах",
|
"module_visibility_on_different_screens": "Видимость модулей на разных экранах",
|
||||||
"modules": "Модули",
|
"modules": "Модули",
|
||||||
"monster_can_be_captured": "Монстр может быть схвачен",
|
"monster_can_be_captured": "Монстр может быть схвачен",
|
||||||
"monster_damage": "Урон от монстров",
|
"monster_damage": "Урон от монстров",
|
||||||
"monster_name": "Имя монстра",
|
"monster_name": "Имя монстра",
|
||||||
"monster_name_label": "Метка имени монстра",
|
"monster_name_label": "Метка имени монстра",
|
||||||
"mount": "Mount",
|
|
||||||
"my_damage_bar_location": "Позиция моей шкалы урона",
|
"my_damage_bar_location": "Позиция моей шкалы урона",
|
||||||
"none": "Нет",
|
"none": "Нет",
|
||||||
"normal": "Обычный",
|
"normal": "Обычный",
|
||||||
"offset": "Сдвиг",
|
"offset": "Сдвиг",
|
||||||
"offset_is_relative_to_parts": "Offset is Relative to Parts",
|
"offset_is_relative_to_parts": "Сдвиг относителен к частям тела",
|
||||||
"opacity_falloff": "Увеличение прозрачности от расстояния",
|
"opacity_falloff": "Увеличение прозрачности от расстояния",
|
||||||
"orientation": "Ориентация",
|
"orientation": "Ориентация",
|
||||||
"other_players": "Другие игроки",
|
"other_players": "Другие игроки",
|
||||||
"otomo_damage": "Урон от отомо",
|
"otomo_damage": "Урон от отомо",
|
||||||
"paralysis": "Paralysis",
|
|
||||||
"part_name": "Имя части тела",
|
"part_name": "Имя части тела",
|
||||||
"part_name_label": "Метка имени части тела",
|
"part_name_label": "Метка имени части тела",
|
||||||
"percentage_label": "Метка процентов",
|
"percentage_label": "Метка процентов",
|
||||||
@@ -158,25 +146,20 @@
|
|||||||
"player_id": "ИД игрока",
|
"player_id": "ИД игрока",
|
||||||
"player_name": "Имя игрока",
|
"player_name": "Имя игрока",
|
||||||
"player_name_label": "Метка имени игрока",
|
"player_name_label": "Метка имени игрока",
|
||||||
"poison": "Poison",
|
"poison_damage": "Урон от отравления",
|
||||||
"poison_damage": "Poison Damage",
|
|
||||||
"position": "Расположение",
|
"position": "Расположение",
|
||||||
"press_any_key": "Нажмите любую клавишу...",
|
"press_any_key": "Нажмите любую клавишу...",
|
||||||
"prioritize_large_monsters": "Большие монстры в приоритете",
|
"prioritize_large_monsters": "Большие монстры в приоритете",
|
||||||
"quest_result_screen": "Экран результатов квеста",
|
"quest_result_screen": "Экран результатов квеста",
|
||||||
"quest_time": "Время квеста",
|
"quest_time": "Время квеста",
|
||||||
"quick_sand": "Quick Sand",
|
|
||||||
"rage": "Ярость",
|
"rage": "Ярость",
|
||||||
"relative_offset": "Relative Offset",
|
"relative_offset": "Относительный сдвиг",
|
||||||
"render_highlighted_monster": "Показывать помеченного монстра",
|
"render_highlighted_monster": "Показывать помеченного монстра",
|
||||||
"render_not_highlighted_monsters": "Показывать непомеченных монстров",
|
"render_not_highlighted_monsters": "Показывать непомеченных монстров",
|
||||||
"reversed_order": "Обратный порядок",
|
"reversed_order": "Обратный порядок",
|
||||||
"settings": "Настройки",
|
"settings": "Настройки",
|
||||||
"shadow": "Тень",
|
"shadow": "Тень",
|
||||||
"shock_otomo_trap": "Shock Otomo Trap",
|
|
||||||
"shock_trap": "Shock Trap",
|
|
||||||
"size": "Размер",
|
"size": "Размер",
|
||||||
"sleep": "Sleep",
|
|
||||||
"small_monster_UI": "Интерфейс малых монстров",
|
"small_monster_UI": "Интерфейс малых монстров",
|
||||||
"small_monsters": "Малые монстры",
|
"small_monsters": "Малые монстры",
|
||||||
"sorting": "Сортировка",
|
"sorting": "Сортировка",
|
||||||
@@ -188,14 +171,10 @@
|
|||||||
"static_spacing": "Статичное расстояние между элементами",
|
"static_spacing": "Статичное расстояние между элементами",
|
||||||
"statically_positioned": "Рассположенный статично",
|
"statically_positioned": "Рассположенный статично",
|
||||||
"status": "Статус",
|
"status": "Статус",
|
||||||
"steel_fang": "Steel Fang",
|
|
||||||
"stun": "Stun",
|
|
||||||
"text_label": "Текстовая метка",
|
"text_label": "Текстовая метка",
|
||||||
"thunder": "Thunder",
|
|
||||||
"thunderblight": "Thunderblight",
|
|
||||||
"time_UI": "Интерфейс времени",
|
"time_UI": "Интерфейс времени",
|
||||||
"time_label": "Метка времени",
|
"time_label": "Метка времени",
|
||||||
"time_limit": "Time Limit",
|
"time_limit": "Ограничение по времени",
|
||||||
"timer_label": "Метка таймера",
|
"timer_label": "Метка таймера",
|
||||||
"top_damage": "Наибольший урон",
|
"top_damage": "Наибольший урон",
|
||||||
"top_dps": "Наибольший урон в секунду",
|
"top_dps": "Наибольший урон в секунду",
|
||||||
@@ -210,14 +189,11 @@
|
|||||||
"tracked_damage_types": "Отслеживаемые типы урона",
|
"tracked_damage_types": "Отслеживаемые типы урона",
|
||||||
"tracked_monster_types": "Отслеживаемые типы монстров",
|
"tracked_monster_types": "Отслеживаемые типы монстров",
|
||||||
"training_area": "Тренировочная зона",
|
"training_area": "Тренировочная зона",
|
||||||
"tranq_bomb": "Tranq Bomb",
|
|
||||||
"type": "Тип",
|
"type": "Тип",
|
||||||
"value_label": "Метка значений",
|
"value_label": "Метка значений",
|
||||||
"vertical": "Вертикально",
|
"vertical": "Вертикально",
|
||||||
"viewport_offset": "Сдвиг в экранном пространстве",
|
"viewport_offset": "Сдвиг в экранном пространстве",
|
||||||
"visible": "Включить",
|
"visible": "Включить",
|
||||||
"water": "Water",
|
|
||||||
"waterblight": "Waterblight",
|
|
||||||
"width": "Ширина",
|
"width": "Ширина",
|
||||||
"word_player": "Слово \"Игрок\"",
|
"word_player": "Слово \"Игрок\"",
|
||||||
"world_offset": "Сдвиг в игровом пространстве",
|
"world_offset": "Сдвиг в игровом пространстве",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"UI": {
|
"UI": {
|
||||||
"HP": "生命:",
|
"HP": "生命:",
|
||||||
"buildup": "Buildup",
|
"buildup": "Buildup:",
|
||||||
"gold": "金冠",
|
"gold": "金冠",
|
||||||
"mini": "小型",
|
"mini": "小型",
|
||||||
"player": "玩家",
|
"player": "玩家",
|
||||||
@@ -19,10 +19,10 @@
|
|||||||
"fireblight": "Fireblight",
|
"fireblight": "Fireblight",
|
||||||
"flash": "Flash",
|
"flash": "Flash",
|
||||||
"iceblight": "Iceblight",
|
"iceblight": "Iceblight",
|
||||||
"mount": "Mount",
|
|
||||||
"paralysis": "Paralysis",
|
"paralysis": "Paralysis",
|
||||||
"poison": "Poison",
|
"poison": "Poison",
|
||||||
"quick_sand": "Quick Sand",
|
"quick_sand": "Quick Sand",
|
||||||
|
"ride": "Wyvern Riding",
|
||||||
"shock_otomo_trap": "Shock Otomo Trap",
|
"shock_otomo_trap": "Shock Otomo Trap",
|
||||||
"shock_trap": "Shock Trap",
|
"shock_trap": "Shock Trap",
|
||||||
"sleep": "Sleep",
|
"sleep": "Sleep",
|
||||||
@@ -44,7 +44,6 @@
|
|||||||
"assign_new_key": "Assign new key",
|
"assign_new_key": "Assign new key",
|
||||||
"background": "圖形化顯示條的背景底色",
|
"background": "圖形化顯示條的背景底色",
|
||||||
"bar": "圖形化顯示條",
|
"bar": "圖形化顯示條",
|
||||||
"blast": "Blast",
|
|
||||||
"blast_damage": "Blast Damage",
|
"blast_damage": "Blast Damage",
|
||||||
"body_parts": "身體部位",
|
"body_parts": "身體部位",
|
||||||
"bold": "粗體",
|
"bold": "粗體",
|
||||||
@@ -70,33 +69,25 @@
|
|||||||
"dps": "DPS",
|
"dps": "DPS",
|
||||||
"dps_label": "DPS Label",
|
"dps_label": "DPS Label",
|
||||||
"dps_mode": "DPS Mode",
|
"dps_mode": "DPS Mode",
|
||||||
"dung_bomb": "Dung Bomb",
|
|
||||||
"during_quest": "任務中",
|
"during_quest": "任務中",
|
||||||
"dynamic_positioning": "浮動的資訊位置",
|
"dynamic_positioning": "浮動的資訊位置",
|
||||||
"dynamically_positioned": "浮動的魔物資訊",
|
"dynamically_positioned": "浮動的魔物資訊",
|
||||||
"enable_for": "Enable for",
|
"enable_for": "Enable for",
|
||||||
"enable_on": "Enable on",
|
|
||||||
"enabled": "可見",
|
"enabled": "可見",
|
||||||
"endemic_life_UI": "Endemic Life UI",
|
"endemic_life_UI": "Endemic Life UI",
|
||||||
"exhaust": "Exhaust",
|
|
||||||
"fall_otomo_trap": "Fall Otomo Trap",
|
|
||||||
"fall_trap": "Fall Trap",
|
|
||||||
"family": "字體",
|
"family": "字體",
|
||||||
"fight_time": "Fight Time",
|
"fight_time": "Fight Time",
|
||||||
"fire": "Fire",
|
|
||||||
"fireblight": "Fireblight",
|
|
||||||
"first": "第一",
|
"first": "第一",
|
||||||
"first_hit": "First Hit",
|
"first_hit": "First Hit",
|
||||||
"flash": "Flash",
|
|
||||||
"flinch_count": "Flinch Count",
|
"flinch_count": "Flinch Count",
|
||||||
"foreground": "圖形化顯示條的底色",
|
"foreground": "圖形化顯示條的底色",
|
||||||
"global_position_modifier": "Global Position Modifier",
|
"global_position_modifier": "Global Position Modifier",
|
||||||
"global_scale_modifier": "Global Scale",
|
"global_scale_modifier": "Global Scale Modifier",
|
||||||
"global_settings": "全域設定",
|
"global_settings": "全域設定",
|
||||||
"health": "生命",
|
"health": "生命",
|
||||||
"health_percentage": "生命百分比",
|
"health_percentage": "生命百分比",
|
||||||
"height": "高度",
|
"height": "高度",
|
||||||
"hide_ailments_with_zero_buildup": "Hide Ailments with 0 Buildup",
|
"hide_ailments_with_zero_buildup": "Hide Ailments when Buildup is 0",
|
||||||
"hide_all_active_ailments": "Hide All Active Ailments",
|
"hide_all_active_ailments": "Hide All Active Ailments",
|
||||||
"hide_all_inactive_ailments": "Hide All Inactive Ailments",
|
"hide_all_inactive_ailments": "Hide All Inactive Ailments",
|
||||||
"hide_dead_or_captured": "隱藏死亡或被捕獲的魔物",
|
"hide_dead_or_captured": "隱藏死亡或被捕獲的魔物",
|
||||||
@@ -114,8 +105,6 @@
|
|||||||
"hotkeys": "Hotkeys",
|
"hotkeys": "Hotkeys",
|
||||||
"hunter_rank": "獵人等級",
|
"hunter_rank": "獵人等級",
|
||||||
"hunter_rank_label": "Hunter Rank Label",
|
"hunter_rank_label": "Hunter Rank Label",
|
||||||
"ice": "Ice",
|
|
||||||
"iceblight": "Iceblight",
|
|
||||||
"include": "細部資訊調整",
|
"include": "細部資訊調整",
|
||||||
"installation_damage": "設備傷害",
|
"installation_damage": "設備傷害",
|
||||||
"italic": "斜體",
|
"italic": "斜體",
|
||||||
@@ -140,7 +129,6 @@
|
|||||||
"monster_damage": "魔物傷害",
|
"monster_damage": "魔物傷害",
|
||||||
"monster_name": "魔物名稱",
|
"monster_name": "魔物名稱",
|
||||||
"monster_name_label": "魔物名稱",
|
"monster_name_label": "魔物名稱",
|
||||||
"mount": "Mount",
|
|
||||||
"my_damage_bar_location": "我的傷害條",
|
"my_damage_bar_location": "我的傷害條",
|
||||||
"none": "空",
|
"none": "空",
|
||||||
"normal": "正常",
|
"normal": "正常",
|
||||||
@@ -150,7 +138,6 @@
|
|||||||
"orientation": "對齊方式",
|
"orientation": "對齊方式",
|
||||||
"other_players": "其他玩家",
|
"other_players": "其他玩家",
|
||||||
"otomo_damage": "隨從傷害",
|
"otomo_damage": "隨從傷害",
|
||||||
"paralysis": "Paralysis",
|
|
||||||
"part_name": "部位名稱",
|
"part_name": "部位名稱",
|
||||||
"part_name_label": "部位名稱",
|
"part_name_label": "部位名稱",
|
||||||
"percentage_label": "百分比",
|
"percentage_label": "百分比",
|
||||||
@@ -159,14 +146,12 @@
|
|||||||
"player_id": "玩家ID",
|
"player_id": "玩家ID",
|
||||||
"player_name": "玩家名稱",
|
"player_name": "玩家名稱",
|
||||||
"player_name_label": "玩家名稱",
|
"player_name_label": "玩家名稱",
|
||||||
"poison": "Poison",
|
|
||||||
"poison_damage": "Poison Damage",
|
"poison_damage": "Poison Damage",
|
||||||
"position": "位置",
|
"position": "位置",
|
||||||
"press_any_key": "Press any key...",
|
"press_any_key": "Press any key...",
|
||||||
"prioritize_large_monsters": "大型魔物優先",
|
"prioritize_large_monsters": "大型魔物優先",
|
||||||
"quest_result_screen": "Quest Result Screen",
|
"quest_result_screen": "Quest Result Screen",
|
||||||
"quest_time": "Quest Time",
|
"quest_time": "Quest Time",
|
||||||
"quick_sand": "Quick Sand",
|
|
||||||
"rage": "憤怒度",
|
"rage": "憤怒度",
|
||||||
"relative_offset": "Relative Offset",
|
"relative_offset": "Relative Offset",
|
||||||
"render_highlighted_monster": "Render Highlighted Monster",
|
"render_highlighted_monster": "Render Highlighted Monster",
|
||||||
@@ -174,10 +159,7 @@
|
|||||||
"reversed_order": "逆向排序",
|
"reversed_order": "逆向排序",
|
||||||
"settings": "設定",
|
"settings": "設定",
|
||||||
"shadow": "陰影",
|
"shadow": "陰影",
|
||||||
"shock_otomo_trap": "Shock Otomo Trap",
|
|
||||||
"shock_trap": "Shock Trap",
|
|
||||||
"size": "大小",
|
"size": "大小",
|
||||||
"sleep": "Sleep",
|
|
||||||
"small_monster_UI": "小型魔物 UI",
|
"small_monster_UI": "小型魔物 UI",
|
||||||
"small_monsters": "小型魔物群",
|
"small_monsters": "小型魔物群",
|
||||||
"sorting": "排序方式",
|
"sorting": "排序方式",
|
||||||
@@ -189,14 +171,10 @@
|
|||||||
"static_spacing": "固定魔物資訊的間距",
|
"static_spacing": "固定魔物資訊的間距",
|
||||||
"statically_positioned": "固定的魔物資訊",
|
"statically_positioned": "固定的魔物資訊",
|
||||||
"status": "狀態",
|
"status": "狀態",
|
||||||
"steel_fang": "Steel Fang",
|
|
||||||
"stun": "Stun",
|
|
||||||
"text_label": "文字",
|
"text_label": "文字",
|
||||||
"thunder": "Thunder",
|
|
||||||
"thunderblight": "Thunderblight",
|
|
||||||
"time_UI": "時間 UI",
|
"time_UI": "時間 UI",
|
||||||
"time_label": "時間",
|
"time_label": "時間",
|
||||||
"time_limit": "Time Limit",
|
"time_limit": "Time Limit (seconds)",
|
||||||
"timer_label": "計時器",
|
"timer_label": "計時器",
|
||||||
"top_damage": "最高傷害",
|
"top_damage": "最高傷害",
|
||||||
"top_dps": "Top DPS",
|
"top_dps": "Top DPS",
|
||||||
@@ -211,15 +189,11 @@
|
|||||||
"tracked_damage_types": "追蹤的傷害類型",
|
"tracked_damage_types": "追蹤的傷害類型",
|
||||||
"tracked_monster_types": "追蹤的魔物類型",
|
"tracked_monster_types": "追蹤的魔物類型",
|
||||||
"training_area": "訓練場",
|
"training_area": "訓練場",
|
||||||
"tranq_bomb": "Tranq Bomb",
|
|
||||||
"type": "類型",
|
"type": "類型",
|
||||||
"value_label": "數字",
|
"value_label": "數字",
|
||||||
"vertical": "垂直",
|
"vertical": "垂直",
|
||||||
"viewport_offset": "視窗的位置",
|
"viewport_offset": "視窗的位置",
|
||||||
"visible": "可見",
|
"visible": "可見",
|
||||||
"visible_on": "Visible on",
|
|
||||||
"water": "Water",
|
|
||||||
"waterblight": "Waterblight",
|
|
||||||
"width": "寬度",
|
"width": "寬度",
|
||||||
"word_player": "名稱 \"玩家\"",
|
"word_player": "名稱 \"玩家\"",
|
||||||
"world_offset": "地圖中的位置",
|
"world_offset": "地圖中的位置",
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user