2016-08-05 50 views
9

Wir machen zufälliges Match-Making-Spiel mit Photon-Engine. Wir möchten Spieler mit verschiedenen Benutzern in einer bestimmten Zeit zusammenbringen. Wenn PlayerA mit PlayerB spielt, können sie 30 Minuten lang nicht mehr spielen. Was ist der beste Weg, um diese Art von System zu machen?Wie kann ich einen bestimmten Benutzer beim zufälligen Matching mithilfe der Photon Engine blockieren?

Wir versuchen einige Algorithmen, aber es passt nicht gut.

Es funktioniert, aber es gibt einige Nachteile wie zeitraubende vs. Irgendwelche Ideen für bessere Lösungen?

Antwort

2

Lösung finden Sie hier: documentation

Sie benötigenSQL Lobby Art zu verwenden:

Erstellen Raum:

RoomOptions roomOptions = new RoomOptions(); 
    roomOptions.MaxPlayers = expectedMaxPlayers; 
    // in this example, C0 might be 0 or 1 for the two (fictional) game modes 
    roomOptions.customRoomProperties = new ExitGames.Client.Photon.Hashtable() { { "C0", 1 } }; 
    roomOptions.customRoomPropertiesForLobby = new string[] { "C0" }; // this makes "C0" available in the lobby 
    // let's create this room in SqlLobby "myLobby" explicitly 
    TypedLobby sqlLobby = new TypedLobby("myLobby", LobbyType.SqlLobby); 
    lbClient.OpCreateRoom(roomName, roomOptions, sqlLobby); 

Joining Zimmer:

TypedLobby sqlLobby = new TypedLobby("myLobby", LobbyType.SqlLobby); // same as above 
string sqlLobbyFilter = "C0 = 0"; // find a game with mode 0 
lbClient.OpJoinRandomRoom(null, expectedMaxPlayers, matchmakingMode, sqlLobby, sqlLobbyFilter); 
// more filter variations: 
// "C0 = 1 AND C2 > 50" 
// "C5 = \"Map2\" AND C2 > 10 AND C2 < 20" 

In Ihr Fall, Sie brauchen nur nee d ersetzt C0 durch eine Liste der blockierten Spieler und aktualisiert diese Liste jedes Mal, wenn ein neuer Benutzer das Spiel spielt, und entfernt ihn nach 30 Minuten von der Liste.

Wenn Sie mit anderen Problemen konfrontiert werden, lassen Sie es uns wissen.

+0

danke für deine antwort. Wenn ich C0 durch die playerNames ersetze, steht es diesen Spielern nicht zur Verfügung. Ich verstehe die Logik nicht, denke ich. Wie sql type diese Spieler blockierte. –