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 um jogo com jogadores com atributos ou seleções semelhantes
Este exemplo ilustra como configurar um conjunto de regras para jogos com duas equipes usando compound. No exemplo:
-
A regra
SimilarLeagueDistancegarante que todos os jogadores em uma partida tenhamleagueem 2 dos outros jogadores. -
A regra
SimilarSkillDistancegarante que todos os jogadores em uma partida tenhamskillem 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
SameMapComparisongarante que todos os jogadores de um jogo tenham solicitado o mesmomap. -
A regra
SameModeComparisongarante que todos os jogadores de um jogo tenham solicitado o mesmomode. -
A regra
CompoundRuleMatchmakergarante uma correspondência se pelo menos uma das seguintes condições for true:-
Os jogadores de um jogo solicitaram o mesmo
mape o mesmomode. -
Os jogadores de um jogo têm
skillatributosleaguee 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 }] }] }