Merge pull request #5 from Krepy/hr

Hunter Ranks
This commit is contained in:
GreenComfyTea
2022-01-24 18:58:16 +02:00
committed by GitHub

View File

@@ -145,6 +145,7 @@ local damage_meter_UI = {
visibility = { visibility = {
id = true, id = true,
name = true, name = true,
hunter_rank = true,
damage_bar = true, damage_bar = true,
player_damage = true, player_damage = true,
player_damage_percentage = true, player_damage_percentage = true,
@@ -153,6 +154,7 @@ local damage_meter_UI = {
shadows = { shadows = {
name = true, name = true,
hunter_rank = true,
player_damage = true, player_damage = true,
player_damage_percentage = true, player_damage_percentage = true,
total_damage = true total_damage = true
@@ -171,6 +173,11 @@ local damage_meter_UI = {
y = 0 y = 0
}, },
hunter_rank = {
x = -50,
y = 0
},
damage_bar = { damage_bar = {
x = 0, x = 0,
y = 17 y = 17
@@ -203,6 +210,11 @@ local damage_meter_UI = {
y = 1 y = 1
}, },
hunter_rank = {
x = 1,
y = 1
},
player_damage = { player_damage = {
x = 1, x = 1,
y = 1 y = 1
@@ -225,6 +237,11 @@ local damage_meter_UI = {
shadow = 0xFF000000 shadow = 0xFF000000
}, },
hunter_rank = {
text = 0xFFE1F4CC,
shadow = 0xFF000000
},
damage_bar = { damage_bar = {
player_damage = 0xA7F4A3CC, player_damage = 0xA7F4A3CC,
others_damage = 0xA7000000 others_damage = 0xA7000000
@@ -675,10 +692,11 @@ sdk.hook(enemy_character_base_after_calc_damage_damage_side, function(args)
update_player(player, damage_source_type, damage_object); update_player(player, damage_source_type, damage_object);
end, function(retval) return retval; end); end, function(retval) return retval; end);
function init_player(player_id, player_name) function init_player(player_id, player_name, player_hunter_rank)
player = {}; player = {};
player.id = player_id; player.id = player_id;
player.name = player_name; player.name = player_name;
player.hunter_rank = player_hunter_rank;
player.total_damage = 0; player.total_damage = 0;
player.physical_damage = 0; player.physical_damage = 0;
@@ -860,7 +878,7 @@ function damage_meter()
end end
if players[myself_player_id] == nil then if players[myself_player_id] == nil then
players[myself_player_id] = init_player(myself_player_id, myself_player_name); players[myself_player_id] = init_player(myself_player_id, myself_player_name, 0);
end end
local quest_players = {}; local quest_players = {};
@@ -887,7 +905,13 @@ function damage_meter()
goto continue; goto continue;
end end
local player_hunter_rank = player_info:get_field("_hunterRank");
if player_hunter_rank == nil then
goto continue;
end
if player_id == myself_player_id and damage_meter_UI.myself_bar_place_in_order ~= "normal" then if player_id == myself_player_id and damage_meter_UI.myself_bar_place_in_order ~= "normal" then
players[myself_player_id].hunter_rank = player_hunter_rank;
goto continue; goto continue;
end end
@@ -897,9 +921,9 @@ function damage_meter()
end end
if players[player_id] == nil then if players[player_id] == nil then
players[player_id] = init_player(player_id, player_name); players[player_id] = init_player(player_id, player_name, player_hunter_rank);
elseif players[player_id].name ~= player_name then elseif players[player_id].name ~= player_name then
players[player_id] = init_player(player_id, player_name); players[player_id] = init_player(player_id, player_name, player_hunter_rank);
end end
table.insert(quest_players, players[player_id]); table.insert(quest_players, players[player_id]);
@@ -1009,6 +1033,18 @@ function damage_meter()
draw.text(id_name_text, screen_position.x + damage_meter_UI.offsets.name.x, screen_position.y + damage_meter_UI.offsets.name.y, damage_meter_UI.colors.name.text); draw.text(id_name_text, screen_position.x + damage_meter_UI.offsets.name.x, screen_position.y + damage_meter_UI.offsets.name.y, damage_meter_UI.colors.name.text);
end end
if damage_meter_UI.visibility.hunter_rank and player.hunter_rank ~= 0 then
local hunter_rank_text = "HR" .. player.hunter_rank;
if damage_meter_UI.shadows.hunter_rank then
--hunter rank shadow
draw.text(hunter_rank_text, screen_position.x + damage_meter_UI.offsets.hunter_rank.x + damage_meter_UI.shadow_offsets.hunter_rank.x, screen_position.y + damage_meter_UI.offsets.hunter_rank.y + damage_meter_UI.shadow_offsets.hunter_rank.y, damage_meter_UI.colors.hunter_rank.shadow);
end
--hunter rank
draw.text(hunter_rank_text, screen_position.x + damage_meter_UI.offsets.hunter_rank.x, screen_position.y + damage_meter_UI.offsets.hunter_rank.y, damage_meter_UI.colors.hunter_rank.text);
end
if damage_meter_UI.visibility.player_damage then if damage_meter_UI.visibility.player_damage then
local player_damage = string.format("%d", player.display.total_damage); local player_damage = string.format("%d", player.display.total_damage);