public static void SendConfirmation(GameConfirmation confirmation) { byte[] buffer = confirmation.ToBytes(); NetworkTransport.Send(hostId, connectionId, channelConfirmationId, buffer, buffer.Length, out error); if (error != (byte)NetworkError.Ok) { Debug.LogError("[ERROR] NetworkAPI :: SendConfirmation :: Send : " + error); } }
void OnConfirmation(int playerID, GameConfirmation confirmation) { if (confirmation.LockstepTurn < lockstepTurn) { // Discard return; } if (confirmation.LockstepTurn > lockstepTurn + 2) { Debug.LogError("Lockstep : Confirmation from player " + playerID + " on impossible turn (> 2)"); return; } uint turn = confirmation.LockstepTurn - lockstepTurn; NetworkUI.Log("Receive confirmation from player " + playerID + " for turn " + turn); if (confirmation.Wait) { NetworkUI.Log("Player " + playerID + " want me to wait, i'm too overhead !"); wait[turn][playerID] = WaitingTime; return; } if (!playerHaveConfirmedMyAction[turn][playerID]) { playerHaveConfirmedMyAction[turn][playerID] = true; ++numberOfPlayerWhoConfirmedMyAction[turn]; } else { NetworkUI.Log("Confirmation allready received for LockstepTurn " + confirmation.LockstepTurn); } }