Почему "магических"?
Исключением могут быть например счётчики, такие как total = total + 1, где единица обозначает минимальный шаг. В этом случае её роль всем очевидна, и потому она не считается "магической" в таком контексте.
Где? К тому же игроки вне игры обозначаются 4.
PLAYER_NOT_IN_GAME -- Игрок вне игры
PLAYER_ACTIVE -- Игрок активен
PLAYER_WON -- Игрок победил
PLAYER_LOST -- Игрок проиграл
Обычно, в подобных списках константы пробегают значения от 0 и выше, т.е. значение 4, видимо, не соответсвует ни одной из констант, и, вероятно, обозначает игроков вне игры (опять-таки из-за "магических" цифр можно только строить предположения). Но я лично не проверял на практике.
Цифра 0 взята отсюда:
n = n + (GetPlayerState(i) == 1 or 0)Мне совершенно непонятно, что она здесь делает, а из-за отсутствия скобок, неясно даже, как будет выполняться сия конструкция, сначала проверка на равенство, а затем OR, или наоборот.