Ejemplo n.º 1
0
 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);
            }
        }
    }
Ejemplo n.º 6
0
    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);
            }
        }
    }