Эксперты Halo Binary там,
У меня есть битовая маска, представляющая ON варианты комнаты, скажем 11001 (Opt #1, 4, 5)
Другой пользователь пытается выполнить поиск с помощью собственной битовой маски (скажем, 111000 (Opt #4, 5, 6)
Выполнение (Room | Search) != 0
означает, что оно сравнивает маску и определяет, есть ли такой же переключатель ON (в данном случае # 4)
Дело в том, что переключатель # 4 является вторым «активным» переключателем комнаты и первым для «поиска».
Мне нужно, чтобы пользователь также обнаружил, что # 4 - это второй переключатель комнаты.
У пользователя есть отдельная битовая маска для проверки.
И комната, и пользователь могут включить только 3
Мой подход может знать, какой последний (самый большой) индекс, используя, например, UserMask2 (3-й вариант):
if(RoomMask | UserMask2 != 0) A = (RoomMask - UserMask2 = 11001 - 10000 = 01001).
if (A < RoomMask)
UserMask2 является третьим переключателем, потому что минус UserMask2 делает его ниже, чем UserMask2
Это только обнаруживает, находится ли определенная UserMask на самом большом бите RoomMask.
Но я не уверен, как продолжить.
Это используется для поиска совпадений с использованием Photon, который использует SQL , и мне, вероятно, придется сделать это с помощью одного запроса WHERE (не уверен, что он может хранить переменные.)
https://doc.photonengine.com/en-us/pun/current/lobby-and-matchmaking/matchmaking-and-lobby#sql_lobby_type
Надеюсь, я достаточно ясно
Ура!