Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Referenz: Verwende eine zusammengesetzte Regel, um ein Spiel mit Spielern mit ähnlichen Attributen oder ähnlichen Auswahlen zu erstellen
Dieses Beispiel zeigt, wie Sie einen Regelsatz für Spiele einrichten, bei denen zwei Teams verwendencompound
. Im Beispiel:
-
Die
SimilarLeagueDistance
Regel stellt sicher, dass alle Spieler in einem Spiel einen Abstandleague
von weniger als 2 anderen Spielern haben. -
Die
SimilarSkillDistance
Regel stellt sicher, dass alle Spieler in einem Spiel einen Abstand vonskill
höchstens 10 anderen Spielern haben. Wenn ein Spieler 10 Sekunden gewartet hat, wird die Entfernung auf 20 erhöht. Wenn ein Spieler 20 Sekunden gewartet hat, wird die Entfernung auf 40 erhöht. -
Die
SameMapComparison
Regel stellt sicher, dass alle Spieler in einem Spiel dasselbe angefordert habenmap
. -
Die
SameModeComparison
Regel stellt sicher, dass alle Spieler in einem Spiel dasselbe verlangt habenmode
. -
Die
CompoundRuleMatchmaker
Regel stellt sicher, dass ein Spiel stattfindet, wenn mindestens eine der folgenden Bedingungen erfüllt ist:-
Die Spieler in einem Spiel haben dasselbe
map
und dasselbe verlangtmode
. -
Spieler in einem Spiel haben
skill
vergleichbareleague
Eigenschaften.
-
{ "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 }] }] }