範例:建立不均勻的團隊 (獵人與怪物) - Amazon GameLift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

範例:建立不均勻的團隊 (獵人與怪物)

此範例說明一種遊戲模式,其中由一組玩家獵殺一隻怪物。玩家可選擇獵人或怪物的角色。獵人們會針對想要面對的怪物,指定怪物的最低技能等級。獵人隊伍的人數下限可隨時間放寬,以完成配對。此情境會產生下列指示:

  • 建立一個包含 5 位獵人的隊伍。

  • 建立一個單獨的隊伍,其中只包含 1 隻怪物。

  • 加入下列的玩家屬性:

    • 玩家的技能等級 (如果未提供,預設為 10)。

    • 玩家偏好的怪物技能等級 (如果未提供,預設為 10)。

    • 玩家是否想要擔任怪物 (如果未提供此屬性,預設為 0 或 false)。

  • 根據下列的條件,選擇一位玩家來擔任怪物:

    • 玩家必須請求怪物的角色。

    • 此玩家必須符合或超過已加入獵人隊伍的玩家所偏好的最高技能等級。

  • 根據下列的條件,選擇獵人隊伍的玩家:

    • 申請擔任怪物角色的玩家,無法加入獵人隊伍。

    • 如果怪物角色已找到人選,玩家所要求的怪物技能等級必須低於建議怪物的技能。

  • 如果未能快速完成配對,請放寬獵人隊伍的人數下限,如下所示:

    • 超過 30 秒後,可讓遊戲在獵人隊伍只包含 4 個玩家的情況下開始。

    • 超過 60 秒後,可讓遊戲在獵人隊伍只包含 3 個玩家的情況下開始。

使用此規則集的注意事項:

  • 透過建立獵人和怪物兩個不同的隊伍,您就可以根據不同的一組條件來評估成員資格。

{ "name": "players_vs_monster_5_vs_1", "ruleLanguageVersion": "1.0", "playerAttributes": [{ "name": "skill", "type": "number", "default": 10 },{ "name": "desiredSkillOfMonster", "type": "number", "default": 10 },{ "name": "wantsToBeMonster", "type": "number", "default": 0 }], "teams": [{ "name": "players", "maxPlayers": 5, "minPlayers": 5 }, { "name": "monster", "maxPlayers": 1, "minPlayers": 1 }], "rules": [{ "name": "MonsterSelection", "description": "Only users that request playing as monster are assigned to the monster team", "type": "comparison", "measurements": ["teams[monster].players.attributes[wantsToBeMonster]"], "referenceValue": 1, "operation": "=" },{ "name": "PlayerSelection", "description": "Do not place people who want to be monsters in the players team", "type": "comparison", "measurements": ["teams[players].players.attributes[wantsToBeMonster]"], "referenceValue": 0, "operation": "=" },{ "name": "MonsterSkill", "description": "Monsters must meet the skill requested by all players", "type": "comparison", "measurements": ["avg(teams[monster].players.attributes[skill])"], "referenceValue": "max(teams[players].players.attributes[desiredSkillOfMonster])", "operation": ">=" }], "expansions": [{ "target": "teams[players].minPlayers", "steps": [{ "waitTimeSeconds": 30, "value": 4 },{ "waitTimeSeconds": 60, "value": 3 }] }] }