В информатике вся информация состоит из бит, каждый такой может быть 0 или 1.
Например в байте 8 бит, это означает что мы можем например описать ими беззнаковое число 0..255 (т.к. столько комбинаций получается переставляя нули и единицы), либо можем знаковое число -127..+127 (1 бит обозначает знак числа), либо можем хранить 8 независимых флагов на каждый бит.
Так и происходит в переменной m_fFlags класса CBaseEntity, она int, что в C++ означает 32-бита, т.е. базовая сущность может хранить 32 незавсимых флага.
Сами флаги определены разработчиками движка, и посмотреть их можно например в сливе сорсов движка
.
Каждый такой флаг описан как 1 << номер бита, т.е. единица сдвигается в определенный слот (отсчет идет с нуля).
Писать числа вручную глупость, нужно использовать константы, например в 257 это FL_ONGROUND (1 << 0=1) совмещенный с FL_CLIENT (1<<8=256), а 263 это FL_ONGROUND + FL_DUCKING + FL_ANIMDUCKING + FL_CLIENT и т.д.
Для совмещения/иссечения/тестирования таких флагов используются побитовые операции (| ^ & ~ в C++), подробнее тут
.
Технически же, m_fFlags это синхронизируемая переменная, сервер просчитывает ее у себя и отправляет клиенту каждый тик (если не учитывать придикции на клиенте).