public override void OnStartClient(NetworkClient client) { base.OnStartClient(client); client.RegisterHandler(new OpMsgSendScores().OpId, ReadMsgSendScores); client.RegisterHandler(new OpMsgGameRule().OpId, ReadMsgGameRule); client.RegisterHandler(new OpMsgMatchStatus().OpId, ReadMsgMatchStatus); if (gameRule != null) { gameRule.InitialClientObjects(client); } }
protected void ReadMsgGameRule(NetworkMessage netMsg) { var msg = netMsg.ReadMessage <OpMsgGameRule>(); BaseNetworkGameRule foundGameRule; if (BaseNetworkGameInstance.GameRules.TryGetValue(msg.gameRuleName, out foundGameRule)) { gameRule = foundGameRule; gameRule.InitialClientObjects(client); } }
public override void OnServerOnlineSceneLoaded() { base.OnServerOnlineSceneLoaded(); RegisterGamerulePrefabs(); if (gameRule != null) { gameRule.OnStartServer(); if (IsClient) { gameRule.InitialClientObjects(Client); } } canUpdateGameRule = true; }
protected void ReadMsgGameRule(MessageHandlerData messageHandler) { if (IsServer) { return; } var msg = messageHandler.ReadMessage <OpMsgGameRule>(); BaseNetworkGameRule foundGameRule; if (BaseNetworkGameInstance.GameRules.TryGetValue(msg.gameRuleName, out foundGameRule)) { gameRule = foundGameRule; gameRule.InitialClientObjects(Client); } }
protected void InitGameRule(string gameRuleName) { BaseNetworkGameRule foundGameRule; if (BaseNetworkGameInstance.GameRules.TryGetValue(gameRuleName, out foundGameRule) && onlineSceneLoaded) { gameRule = foundGameRule; gameRule.InitialClientObjects(); if (PhotonNetwork.IsMasterClient && !MasterStarted) { MasterStarted = true; gameRule.OnStartMaster(this); } if (!PhotonNetwork.IsMasterClient && !ClientStarted) { ClientStarted = true; gameRule.OnStartClient(this); } } }
public override void OnOnlineSceneChanged() { if (isLog) { Debug.Log("OnOnlineSceneChanged"); } // Reset last game/match data ResetGame(); // Get game rule to initial client objects var customProperties = PhotonNetwork.room.CustomProperties; var gameRuleName = (string)customProperties[CUSTOM_ROOM_GAME_RULE]; BaseNetworkGameRule foundGameRule; if (BaseNetworkGameInstance.GameRules.TryGetValue(gameRuleName, out foundGameRule)) { gameRule = foundGameRule; gameRule.InitialClientObjects(); if (PhotonNetwork.isMasterClient && !startUpdateGameRule) { startUpdateGameRule = true; gameRule.OnStartServer(this); } } }