From 6caa0b826fde82f99cb5d10fc0551d037c35a2ca Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 23 Apr 2024 15:50:22 +0800 Subject: [PATCH] 1 --- server/gameserver/room.cc | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 108e8c2a..8ef98a21 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -4053,12 +4053,20 @@ void Room::CalcMvp() float param0 = 0.0f; float param1 = 0.0f; - int max_kill = 0; - int max_assist = 0; + float max_kill = 0; + float max_assist = 0; float max_damage = 0.0f; float max_recover = 0.0f; - int max_level = 0; - int max_alive = 0; + float max_level = 0; + float max_alive = 0; + + TraverseHumanList + ( + [this, &max_kill, &max_assist, &max_damage, &max_recover, &max_level, &max_alive] + (Human* hum) mutable -> bool + { + return true; + }); TraverseHumanList ( @@ -4068,35 +4076,35 @@ void Room::CalcMvp() float kill_sco = param0; { if (max_kill > 0) { - int kill = hum->stats->kills; + float kill = hum->stats->kills; kill_sco = (param1 - param0) / (max_kill - 0) * (kill - 0) + param0; } } float assist_sco = 0.0f; { if (max_assist > 0) { - int assist = hum->stats->assist; + float assist = hum->stats->assist; assist_sco = (param1 - param0) / (max_assist - 0) * (assist - 0) + param0; } } float damage_sco = 0.0f; { if (max_damage > 0) { - int damage = hum->stats->damage_amount_out; + float damage = hum->stats->damage_amount_out; damage_sco = (param1 - param0) / (max_damage - 0) * (damage - 0) + param0; } } float recover_sco = 0.0f; { if (max_recover > 0) { - int recover = hum->stats->damage_amount_out; + float recover = hum->stats->damage_amount_out; recover_sco = (param1 - param0) / (max_recover - 0) * (recover - 0) + param0; } } float level_sco = 0.0f; { if (max_level > 0) { - int level = hum->GetHeroLevel(); + float level = hum->GetHeroLevel(); level_sco = (param1 - param0) / (max_level - 0) * (level - 0) + param0; } }