if (total_players > 1)
{
// two or more active players - continue with the game
+
+ if (autocvar_g_campaign)
+ {
+ FOREACH_CLIENT(IS_REAL_CLIENT(it), {
+ float pl_lives = GameRules_scoring_add(it, LMS_LIVES, 0);
+ if (!pl_lives)
+ return WINNING_YES; // human player lost, game over
+ break;
+ });
+ }
}
else
{
return true;
}
-MUTATOR_HOOKFUNCTION(lms, FilterItem)
+MUTATOR_HOOKFUNCTION(lms, FilterItemDefinition)
{
- entity item = M_ARGV(0, entity);
+ entity definition = M_ARGV(0, entity);
- if(autocvar_g_lms_extra_lives)
- if(item.itemdef == ITEM_ExtraLife)
+ if (autocvar_g_lms_extra_lives && definition == ITEM_ExtraLife)
+ {
return false;
-
+ }
return true;
}