As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Exemplo: use uma regra composta para criar uma partida com jogadores com atributos semelhantes ou seleções semelhantes
Este exemplo ilustra como configurar um conjunto de regras para jogos com duas equipes usando compound
. No exemplo:
-
A regra
SimilarLeagueDistance
garante que todos os jogadores em uma partida tenhamleague
em 2 dos outros jogadores. -
A regra
SimilarSkillDistance
garante que todos os jogadores em uma partida tenhamskill
em 10 dos outros jogadores. Se um jogador estiver esperando 10 segundos, a distância será expandida para 20. Se um jogador estiver esperando 20 segundos, a distância será expandida para 40. -
A regra
SameMapComparison
garante que todos os jogadores de um jogo tenham solicitado o mesmomap
. -
A regra
SameModeComparison
garante que todos os jogadores de um jogo tenham solicitado o mesmomode
. -
A regra
CompoundRuleMatchmaker
garante uma correspondência se pelo menos uma das seguintes condições for true:-
Os jogadores de um jogo solicitaram o mesmo
map
e o mesmomode
. -
Os jogadores de um jogo têm
skill
atributosleague
e atributos comparáveis.
-
{ "ruleLanguageVersion": "1.0", "teams": [{ "name": "red", "minPlayers": 10, "maxPlayers": 20 }, { "name": "blue", "minPlayers": 10, "maxPlayers": 20 }], "algorithm": { "strategy":"balanced", "balancedAttribute": "skill", "batchingPreference":"fastestRegion" }, "playerAttributes": [{ "name": "league", "type": "number" },{ "name": "skill", "type": "number" },{ "name": "map", "type": "string" },{ "name": "mode", "type": "string" }], "rules": [{ "name": "SimilarLeagueDistance", "type": "distance", "measurements": ["max(flatten(teams[*].players.attributes[league]))"], "referenceValue": "min(flatten(teams[*].players.attributes[league]))", "maxDistance": 2 }, { "name": "SimilarSkillDistance", "type": "distance", "measurements": ["max(flatten(teams[*].players.attributes[skill]))"], "referenceValue": "min(flatten(teams[*].players.attributes[skill]))", "maxDistance": 10 }, { "name": "SameMapComparison", "type": "comparison", "operation": "=", "measurements": ["flatten(teams[*].players.attributes[map])"] }, { "name": "SameModeComparison", "type": "comparison", "operation": "=", "measurements": ["flatten(teams[*].players.attributes[mode])"] }, { "name": "CompoundRuleMatchmaker", "type": "compound", "statement": "or(and(SameMapComparison, SameModeComparison), and(SimilarSkillDistance, SimilarLeagueDistance))" }], "expansions": [{ "target": "rules[SimilarSkillDistance].maxDistance", "steps": [{ "waitTimeSeconds": 10, "value": 20 }, { "waitTimeSeconds": 20, "value": 40 }] }] }