public void Connect()
 {
     foreach (string t in playerAddresses)
     {
         if (GetLocalIP() == t)
         {
             continue;
         }
         var client = new NetworkClient();
         client.RegisterHandler(MsgType.Connect, OnConnected);
         client.RegisterHandler(MessageTypes.MSG_MOVE, OnMove);
         client.RegisterHandler(MessageTypes.MSG_TURN, OnTurn);
         client.RegisterHandler(MessageTypes.MSG_ATTACK, OnAttack);
         client.Configure(cc, 10);
         client.Connect(t, 4444);
         clients.Add(client);
     }
 }
        public override void OnClientConnect(NetworkConnection conn)
        {
            var client = new NetworkClient(conn);

            base.OnClientConnect(conn);
            var config = new ConnectionConfig();

            client.Configure(config, 5);
            client.RegisterHandler(MsgType.Highest + 1, msg => {
                var str = msg.reader.ReadString();
                Msg msgData;
                try {
                    msgData = JsonConvert.DeserializeObject <Msg> (str);
                } catch (Exception exc) {
                    Debug.Log("Could not parse JSON message - " + exc.Message + " - " + str);
                    return;
                }
                if (msgData.type == Msg.EType.Error)
                {
                    Log("Server responded with error: " + msgData.strValue);
                }
                else if (msgData.type == Msg.EType.State)
                {
                    hpSlider.maxValue = msgData.state.hpMax;
                    hpSlider.value    = msgData.state.hp;
                    mpSlider.maxValue = 1.0f;
                    mpSlider.value    = msgData.state.mpFactor;
                    spells            = msgData.state.spells;
                }
                else
                {
                    Log("unexpected event type came from server " + msgData.type + " " + str);
                }
            });
            client.RegisterHandler(MsgType.Highest + 2, msg => {
                var bytes = msg.reader.ReadBytesAndSize();
                camStreamTv.SetFrameImgBytes(bytes);
            });
            serverConnections.Add(client);
        }
示例#3
0
        private void Start()
        {
            Application.runInBackground = true;

            GeneratedMessageTypes.Initialize();

            NetworkClient.Configure(settings);

            NetworkClient.ConnectEvent += () =>
            {
                Debug.Log("Connected to server");
                Instantiate(setup);
                NetworkClient.Send(new AddPlayer(), 0);
            };

            NetworkClient.DisconnectEvent += () => { Debug.Log("Disconnected from server"); };

            NetworkClient.Connect(ip, port);

            //WorldUpdater.ConfigureClient(200);

            //StatisticsUI.Show();
        }