}
}
+MUTATOR_HOOKFUNCTION(lms, PlayerSpawn)
+{
+ entity player = M_ARGV(0, entity);
+
+ if (warmup_stage || time < game_starttime)
+ return true;
+
+ int pl_lives = GameRules_scoring_add(player, LMS_LIVES, 0);
+ float min_health = start_health;
+ float min_armorvalue = start_armorvalue;
+ FOREACH_CLIENT(it != player && IS_PLAYER(it) && !IS_DEAD(it) && GameRules_scoring_add(it, LMS_LIVES, 0) == pl_lives, {
+ if (GetResource(it, RES_HEALTH) < min_health)
+ min_health = GetResource(it, RES_HEALTH);
+ if (GetResource(it, RES_ARMOR) < min_armorvalue)
+ min_armorvalue = GetResource(it, RES_ARMOR);
+ });
+ if (min_health != start_health)
+ SetResource(player, RES_HEALTH, max(1, min_health));
+ if (min_armorvalue != start_armorvalue)
+ SetResource(player, RES_ARMOR, min_armorvalue);
+}
+
MUTATOR_HOOKFUNCTION(lms, ForbidSpawn)
{
entity player = M_ARGV(0, entity);