Skip to content

Commit 244352f

Browse files
MauroFotiMotoLegacy
authored andcommitted
SERVER: fix free perk powerup crashing game in Gun Game if player had all perks but Mule Kick
1 parent f0e8bdf commit 244352f

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

source/server/entities/powerups.qc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,11 @@ void() PU_FreePerk =
655655

656656
while(players) {
657657

658-
if (players.downed || players.perks >= 255) {
658+
// don't to anything if any of these conditions is true
659+
// 1. player is down
660+
// 2. player has already all perks
661+
// 3. player has all perks useful for Gun Game mode (all but mule kick)
662+
if (players.downed || players.perks >= P_ALL || (cvar("sv_gamemode") == GAMEMODE_GUNGAME && players.perks >= P_ALL_GUNGAME)) {
659663
players = find(players, classname, "player");
660664
continue;
661665
}
@@ -673,7 +677,7 @@ void() PU_FreePerk =
673677
else if (perk_rand < (5/8) && !(players.perks & P_STAMIN)) { self.sequence = 5; perk_to_give = P_STAMIN; }
674678
else if (perk_rand < (6/8) && !(players.perks & P_FLOP)) { self.sequence = 6; perk_to_give = P_FLOP; }
675679
else if (perk_rand < (7/8) && !(players.perks & P_DEAD)) { self.sequence = 7; perk_to_give = P_DEAD; }
676-
else if (!(players.perks & P_MULE) && cvar("sv_gamemode") != 2) { self.sequence = 8; perk_to_give = P_MULE; }
680+
else if (!(players.perks & P_MULE) && cvar("sv_gamemode") != GAMEMODE_GUNGAME) { self.sequence = 8; perk_to_give = P_MULE; }
677681

678682
if (perk_to_give != 0)
679683
found_perk_for_player = true;

source/shared/shared_defs.qc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,11 @@ float map_compatibility_mode;
312312
#define P_DEAD 64
313313
#define P_MULE 128
314314

315+
// all perks
316+
#define P_ALL (P_JUG | P_DOUBLE | P_SPEED | P_REVIVE | P_FLOP | P_STAMIN | P_DEAD | P_MULE)
317+
// all perks useful in Gun Game (all but no mule kick)
318+
#define P_ALL_GUNGAME (P_JUG | P_DOUBLE | P_SPEED | P_REVIVE | P_FLOP | P_STAMIN | P_DEAD)
319+
315320
#define STAT_VIEWZOOM 21
316321

317322
#define STAT_CURRENTMAG 50

0 commit comments

Comments
 (0)