playerAttributes
свойства запрос соответствия должен иметь возможность t делай то, что хочешь. Это 32-битная маска, которая, если установлена на ненулевое значение, игроки будут только запускаться в игру, если они завершат маску (OR'd вместе) до 0xFFFFFFFF. См. Здесь an example.
Однако проблема заключается в том, что вы указываете, что у вас гораздо больше кланов, чем у игроков. Если у вас есть 6 и определить их как:
#define CLAN1 0xFF00000F
#define CLAN2 0xFF0000F0
#define CLAN3 0xFF000F00
#define CLAN4 0xFF00F000
#define CLAN5 0xFF0F0000
#define CLAN6 0xFFF00000
Тогда комбинация OR-нут только двух игроков никогда полностью не достигнет 0xFFFFFFFF. Я думаю, что вы можете делать то, что хотите, инвертируя маски, и используя 0 вместо 1, чтобы определить нужную роль.
#define CLAN1 0xFFFFFFF0
#define CLAN2 0xFFFFFF0F
#define CLAN3 0xFFFFF0FF
#define CLAN4 0xFFFF0FFF
#define CLAN5 0xFFF0FFFF
#define CLAN6 0xFF0FFFFF
Любые двое из разных кланов ИЛИ вместе как 0xFFFFFFFF. Итак, желая игрового центра (который всегда является безусловным предложением), любые два игрока из разных кланов должны соответствовать; однако два игрока из одного клана не должны.
Примечание: я, вероятно, указываю на очевидное здесь, но заметьте, что у вас может быть до 32 разных кланов, если вы определяете их в двоичном, а не в шестнадцатеричном формате, и таким образом используете один бит для каждого клана. Я использовал только шестнадцатеричные числа для удобочитаемости.
Возможно, вы выбрали правильный вариант, но как-то Game Center не начал матч в атрибутах таких игроков. – demon9733
Вы делаете матч в реальном времени или пошаговое соответствие? – Thunk
Это матч в реальном времени. И я узнал об этом: 'FFFF0000 | 0000FFFF = работает отлично' 'FFF00000 | 000FFFFF = работает отлично' 'FFF00000 | 00FFFFFF = не работает' 'WHATEVER | FFFFFFFF = работает отлично' – demon9733