Пример #1
0
 public void HostButtonClickUI()
 {
     Networking.Disconnect();
     WeAreHost = true;
     Networking.Host(Port, Networking.TransportationProtocolType.UDP, 4);
     AddListeners();
 }
Пример #2
0
        private static void GetHostsRequestToClient(NetworkingPlayer sender, NetworkingStream stream)
        {
            int count = ObjectMapper.Map <int>(stream);

            List <HostInfo> hostList = new List <HostInfo>();

            for (int i = 0; i < count; i++)
            {
                hostList.Add(new HostInfo()
                {
                    ipAddress        = ObjectMapper.Map <string>(stream),
                    port             = ObjectMapper.Map <ushort>(stream),
                    maxPlayers       = ObjectMapper.Map <int>(stream),
                    name             = ObjectMapper.Map <string>(stream),
                    password         = ObjectMapper.Map <string>(stream),
                    gameType         = ObjectMapper.Map <string>(stream),
                    connectedPlayers = ObjectMapper.Map <int>(stream),
                    comment          = ObjectMapper.Map <string>(stream),
                    sceneName        = ObjectMapper.Map <string>(stream)
                });
            }

            Networking.Disconnect(PORT);
            requestHostsCallback(hostList.ToArray());
        }
Пример #3
0
 void OnDestroy()
 {
     if (null != networker)
     {
         networker.Disconnect();
     }
 }
Пример #4
0
    /// <summary>
    /// Teleport to the given room with a scene name, ip address and port.
    /// </summary>
    /// <param name="scene">Scene to load</param>
    /// <param name="host">IP address of the host</param>
    /// <param name="port">Port of the host</param>
    public static void TeleportToRoom(string scene, string host, ushort port)
    {
        Application.LoadLevel(scene);

        Networking.Disconnect();
        Networking.Connect(host, port, Networking.TransportationProtocolType.TCP);
    }
Пример #5
0
        private static void Request(string host, Action <NetWorker> call)
        {
            if (Networking.Sockets != null && Networking.Sockets.ContainsKey(PORT))
            {
                Networking.Disconnect(PORT);
            }

            NetWorker socket = Networking.Connect(host, PORT, Networking.TransportationProtocolType.UDP, standAlone: true);

            socket.MasterServerFlag = true;

            socket.AddCustomDataReadEvent(WriteCustomMapping.MASTER_SERVER_REGISTER_SERVER, null);
            socket.AddCustomDataReadEvent(WriteCustomMapping.MASTER_SERVER_UNREGISTER_SERVER, null);
            socket.AddCustomDataReadEvent(WriteCustomMapping.MASTER_SERVER_UPDATE_SERVER, null);
            socket.AddCustomDataReadEvent(WriteCustomMapping.MASTER_SERVER_GET_HOSTS, GetHostsRequestToClient);

            if (socket.Connected)
            {
                call(socket);
            }
            else
            {
                socket.connected += delegate() { call(socket); }
            };
        }
Пример #6
0
        /// <summary>
        /// Delegate for handline all other messages sent from the client
        /// </summary>
        /// <param name="sender"></param>
        private void ProcessMessage(SocketState sender)
        {
            // Client disconnected
            if (sender.sb.Length == 0)
            {
                Console.WriteLine("ClientID " + sender.ID + " disconnected.");
                lock (world)
                    clients.Remove(sender);

                Networking.Disconnect(sender);
            }
            // Client sent movement commands
            else
            {
                if (sender.sb.ToString()[0] == '\n')
                {
                    sender.sb.Remove(0, 1);
                }
                if (sender.sb.ToString()[sender.sb.Length - 1] == '\n')
                {
                    string totalData = sender.sb.ToString().Replace("\n", "").Replace("(", "").Replace(")", "");
                    int    direction;
                    int.TryParse(totalData[totalData.Length - 1].ToString(), out direction);
                    world.changeDirection(sender.ID, direction);
                    sender.sb.Remove(0, sender.sb.ToString().IndexOf('\n'));
                }
                Networking.GetData(sender);
            }
        }
Пример #7
0
    public void JoinButtonClickUI()
    {
        Networking.Disconnect();
        WeAreHost = false;
        string ip = ipField.text;

        Networking.Connect(ip, Port, Networking.TransportationProtocolType.UDP, true);
        AddListeners();
    }
Пример #8
0
 // Event Handler for closing the Form
 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (theServer != null)
     {
         if (theServer.connectionEstablished)
         {
             Networking.Disconnect(theServer);
         }
     }
 }
 public override void Disconnect()
 {
     if (GameNetworker != null && GameNetworker.Connected)
     {
         GameNetworker.Disconnect();
         GameNetworker = null;
         Networking.Disconnect();
         Networking.NetworkingReset();
     }
 }
Пример #10
0
        /// <summary>
        /// Clean all the sockets and connections
        /// </summary>
        private void OnApplicationQuit()
        {
            if (NetWorkers == null || NetWorkers.Count == 0)
            {
                return;
            }

            Networking.Disconnect();

            UnityEventObject.Cleanup();
            Threading.Task.KillAll();

            NetWorkers.Clear();
            NetWorkers = null;
            instance   = null;
        }
Пример #11
0
        // Connect button event handler
        private void connectButton_Click(object sender, EventArgs e)
        {
            string ip = serverAddress.Text;

            // disconnect from a previous socket
            if (theServer != null)
            {
                if (theServer.connectionEstablished)
                {
                    Networking.Disconnect(theServer);
                }
            }
            try
            {
                theServer = Networking.ConnectToServer(FirstContact, Networking.IPResolve(ip), 11000);
            }
            catch { }
        }
Пример #12
0
        private void btnDisconnect_Click(object sender, EventArgs e)
        {
            if (m_currentFolder.Location == FileLocation.Remote)
            {
                DialogResult dr = MessageBox.Show("Your current loaded settings are remote.  Disconnect and clear all items?",
                                                  "Disconnect", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (dr == DialogResult.No)
                {
                    return;
                }

                ClearAllItems();
            }
            m_networking.Disconnect();

            btnConnect.Enabled      = true;
            btnDisconnect.Enabled   = false;
            btnFolderRemote.Enabled = false;

            toolStripStatusLabel1.Text = "Not connected";
        }
Пример #13
0
 /// <summary>
 /// Teleport to the given room with a scene name, ip address and port.
 /// </summary>
 /// <param name="scene">Scene to load</param>
 /// <param name="host">IP address of the host</param>
 /// <param name="port">Port of the host</param>
 public static void TeleportToRoom(string scene, string host, ushort port)
 {
     BeardedManStudios.Network.Unity.UnitySceneManager.LoadScene(scene);
     Networking.Disconnect();
     Networking.Connect(host, port, Networking.TransportationProtocolType.TCP);
 }
Пример #14
0
 private void ConnectTimeout()
 {
     Debug.LogWarning("Connection could not be established");
     Networking.Disconnect();
 }
Пример #15
0
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Networking.Disconnect();
        }

        if (Shooting)         //Local bullet shooting!
        {
            _timespan -= Time.deltaTime;
            if (_timespan <= 0)
            {
                _timespan = RapidFire ? _firingRate * 0.5f : _firingRate;

                float lifespan = 5;
                Ray   gunRay   = new Ray(transform.position, transform.forward);
#if !BARE_METAL
                ForgeZombie hitZombie = null;
#endif
                RaycastHit[] gunHit;
#if UNITY_EDITOR
                Debug.DrawRay(transform.position, transform.forward * 100, Color.green);
#endif

                gunHit = Physics.RaycastAll(gunRay, 100);
                if (gunHit != null && gunHit.Length > 0)
                {
                    foreach (RaycastHit hit in gunHit)
                    {
                        if (hit.collider != null)
                        {
                            if (hit.collider.name.Contains("Zombie"))
                            {
#if !BARE_METAL
                                hitZombie = hit.collider.GetComponent <ForgeZombie>();
#endif
                                //We hit a zombie! woot!
                                float distance = Vector3.Distance(transform.position, hit.collider.transform.position);
                                lifespan = distance * 0.02f;
                                break;
                            }
                        }
                    }
                }

#if !BARE_METAL
                //Shoot the bullet!
                Transform bullet = Instantiate(Bullet, transform.position + (transform.forward * 1.2f), transform.rotation) as Transform;

                if (hitZombie != null)
                {
                    bullet.GetComponent <ForgeZombieBullet>().Setup(hitZombie, lifespan);
                }
#endif
            }
        }

        if (RapidFire)
        {
            RapidFireTimespan -= Time.deltaTime;
            if (RapidFireTimespan <= 0)
            {
                RapidFireTimespan = 3;
                RapidFire         = false;
            }
        }
    }
Пример #16
0
 /// <summary>
 /// Close the connection for this server, using the specified handler passed.
 /// </summary>
 /// <param name="handleDisconnect"></param>
 internal void closeConnection(handleSocketClosed handleDisconnect)
 {
     Networking.Disconnect(clientSocketState, false, (ss) => { socketDisconected(ss, handleDisconnect); });
 }
Пример #17
0
        protected override void OwnerUpdate()
        {
            base.OwnerUpdate();

            if (Input.GetKeyDown(KeyCode.O))
            {
                RPC("TestRPC", NetworkReceivers.Others);
            }

            if (Input.GetKeyDown(KeyCode.B))
            {
                AssignName("Brent");
            }
            else if (Input.GetKeyDown(KeyCode.F))
            {
                AssignName("Farris");
            }

            if (Input.GetKey(KeyCode.UpArrow))
            {
                transform.position += Vector3.up * 5.0f * Time.deltaTime;
            }

            if (Input.GetKey(KeyCode.DownArrow))
            {
                transform.position += Vector3.down * 5.0f * Time.deltaTime;
            }

            if (Input.GetKey(KeyCode.LeftArrow))
            {
                transform.position += Vector3.left * 5.0f * Time.deltaTime;
            }

            if (Input.GetKey(KeyCode.RightArrow))
            {
                transform.position += Vector3.right * 5.0f * Time.deltaTime;
            }

            if (Input.GetKeyDown(KeyCode.T))
            {
                cachedData = ServerSerialze(testNum++);
                Networking.WriteCustom(SERVER_ONLY, Networking.PrimarySocket, cachedData, true, NetworkReceivers.Server);
            }

            if (Input.GetKeyDown(KeyCode.Space))
            {
                number++;
                cat += "Cat";
            }
            else if (Input.GetKeyDown(KeyCode.V))
            {
                floatNumber += 50.35f;
            }

            if (Input.GetKeyDown(KeyCode.S))
            {
                BeardedManStudios.Network.Cache.Set <int>("test", 9);
            }

            if (Input.GetKeyDown(KeyCode.G))
            {
                BeardedManStudios.Network.Cache.Request <int>("test", (object x) =>
                {
                    Debug.Log(x);
                });
            }

            if (OwningNetWorker.IsServer && Input.GetKeyDown(KeyCode.N))
            {
                Networking.ChangeClientScene(OwningNetWorker, "ForgeWriteCustom");
#if UNITY_4_6 || UNITY_4_7
                Application.LoadLevel("ForgeWriteCustom");
#else
                Network.Unity.UnitySceneManager.LoadScene("ForgeWriteCustom");
#endif
            }
            else if (OwningNetWorker.IsServer && Input.GetKeyDown(KeyCode.M))
            {
                Networking.ChangeClientScene(OwningNetWorker, "ForgeHelloCubeResources");
#if UNITY_4_6 || UNITY_4_7
                Application.LoadLevel("ForgeHelloCubeResources");
#else
                Network.Unity.UnitySceneManager.LoadScene("ForgeHelloCubeResources");
#endif
            }

            if (Input.GetKeyDown(KeyCode.L))
            {
                dontLerp += 5.35f;
            }

            if (Input.GetKeyDown(KeyCode.C))
            {
                RPC("MessageGroupTest", NetworkReceivers.MessageGroup, (byte)9);
            }

            if (Input.GetKeyDown(KeyCode.Alpha0))
            {
                Debug.Log("Setting message group to 0");
                Networking.SetMyMessageGroup(OwningNetWorker, (ushort)0);
            }
            else if (Input.GetKeyDown(KeyCode.Alpha1))
            {
                Debug.Log("Setting message group to 1");
                Networking.SetMyMessageGroup(OwningNetWorker, (ushort)1);
            }
            else if (Input.GetKeyDown(KeyCode.Alpha2))
            {
                Debug.Log("Setting message group to 2");
                Networking.SetMyMessageGroup(OwningNetWorker, (ushort)2);
            }
            else if (Input.GetKeyDown(KeyCode.Alpha3))
            {
                Debug.Log("Setting message group to 3");
                Networking.SetMyMessageGroup(OwningNetWorker, (ushort)3);
            }

            if (OwningNetWorker.IsServer && Input.GetKeyDown(KeyCode.U))
            {
                AuthoritativeRPC("AuthMessage", OwningNetWorker, OwningNetWorker.Players[0], true, "World");
            }

            if (OwningNetWorker.IsServer && Input.GetKeyDown(KeyCode.L))
            {
                OwningNetWorker.BanPlayer(OwningNetWorker.Players[0], 500);
            }

            if (Input.GetKeyDown(KeyCode.Escape))
            {
                Networking.Disconnect();
                                #if UNITY_4_6 || UNITY_4_7
                Application.LoadLevel(0);
                                #else
                Network.Unity.UnitySceneManager.LoadScene(0);
                                #endif
            }
        }
Пример #18
0
 public void Stop()
 {
     GameId = 0;
     Model.Clear();
     Network.Disconnect();
 }
Пример #19
0
 void CloseRoom()
 {
     Debug.Log("My master, my sir LEFT ME!");
     Networking.Disconnect();
     SceneManager.LoadScene("MainMenu");
 }
Пример #20
0
 public override void Disconnect()
 {
     Networking.Disconnect("Disconnected by user");
     Networking = null;
 }
Пример #21
0
 public void DisconnectButtonClickUI()
 {
     Networking.Disconnect();
 }