Advertisement
Guest User

Untitled

a guest
May 25th, 2015
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.55 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEngine.UI;
  4.  
  5. public class network_control : MonoBehaviour
  6. {
  7.     public InputField Server_Name;
  8.     public InputField Player_Name;
  9.     public GameObject Player_Camera;
  10.  
  11.     private const string typeName = "4d50prealpa";
  12.  
  13.     private bool isRefreshingHostList = false;
  14.     private HostData[] hostList;
  15.  
  16.     private bool serverruns = false;
  17.     private bool connected = false;
  18.     private float server_search_time;
  19.  
  20.     private float spawncooldown;
  21.     private GameObject MyPlayer;
  22.  
  23. // START ########################################################################################
  24.     private void Start(){
  25.  
  26.     }
  27.  
  28. // CREATE SERVER ##############################################################################
  29.     public void Create_Server(){
  30.         if (connected) {
  31.             Debug.Log( "Disconnect from Server and try Again!" );
  32.             return;
  33.         }
  34.         Debug.Log( "Create Server!" );
  35.         if (serverruns == false) {
  36.             serverruns = true;
  37.             Network.InitializeServer (1024, 25000, !Network.HavePublicAddress ());
  38.             MasterServer.RegisterHost (typeName, Server_Name.text );
  39.         }
  40.     }
  41.     private void OnServerInitialized(){
  42.         Debug.Log( "Server Run!" );
  43.         if (connected == false) {
  44.             SpawnPlayer ();
  45.             connected = true;
  46.         }
  47.     }
  48.  
  49. // JOIN SERVER ##############################################################################
  50.     public void Join_Server(){
  51.         Debug.Log( "Join Server" );
  52.         RefreshHostList ();
  53.     }
  54.  
  55.     private void RefreshHostList(){
  56.         if (!isRefreshingHostList){
  57.             Debug.Log( "Get Server List!" );
  58.             isRefreshingHostList = true;
  59.             server_search_time = 10f;
  60.             MasterServer.RequestHostList(typeName);
  61.         }
  62.     }
  63.  
  64.     private void Update(){
  65.         if (server_search_time > 0f) {
  66.             server_search_time = server_search_time - Time.deltaTime;
  67.             if( isRefreshingHostList && server_search_time <= 0f ){
  68.                 server_search_time = 0f;
  69.                 isRefreshingHostList = false;
  70.                 Debug.Log( "Server List not Found!" );
  71.             }
  72.         }
  73.  
  74.         if (isRefreshingHostList && MasterServer.PollHostList().Length > 0){
  75.             Debug.Log( "Server List Found!" );
  76.             isRefreshingHostList = false;
  77.             hostList = MasterServer.PollHostList();
  78.             foreach( HostData ServerData in hostList ){
  79.                 if( Server_Name.text == ServerData.gameName ){
  80.                     Debug.Log( "Server Found!" );
  81.                     Connect_To_Server( ServerData );
  82.                     return;
  83.                 }
  84.             }
  85.             Debug.Log( "Server not Found!" );
  86.         }
  87.  
  88.         if (spawncooldown > 0) {
  89.             spawncooldown -= Time.deltaTime;
  90.         }
  91.     }
  92.  
  93.     private void Connect_To_Server( HostData ServerData ){
  94.         if (serverruns == false) {
  95.             Debug.Log( "Connect to: " + ServerData.gameName );
  96.             serverruns = true;
  97.             Network.Connect ( ServerData );
  98.         }
  99.     }
  100.    
  101.     void OnConnectedToServer(){
  102.         if (connected == false) {
  103.             Debug.Log( "Connected!" );
  104.             connected = true;
  105.             SpawnPlayer ();
  106.         }
  107.     }
  108.  
  109. // DISCONNECT SERVER ##############################################################################
  110.     public void Disconnect (){
  111.         Debug.ClearDeveloperConsole ();
  112.         if (connected ) {
  113.             Debug.Log ("Disconnect!");
  114.             Network.Destroy( MyPlayer );
  115.             Network.Disconnect ();
  116.             connected = false;
  117.             serverruns = false;
  118.             server_search_time = 0f;
  119.             isRefreshingHostList = false;
  120.         }
  121.     }
  122.  
  123.     void OnPlayerDisconnected(NetworkPlayer player) {
  124.         Debug.Log("Clean up after player " + player);
  125.         Network.RemoveRPCs(player);
  126.         Network.DestroyPlayerObjects(player);
  127.     }
  128.  
  129.     void OnDisconnectedFromServer(NetworkDisconnection info) {
  130.         if (Network.isServer) {
  131.             Debug.Log ("Local server connection disconnected");
  132.         } else if (info == NetworkDisconnection.LostConnection) {
  133.             Debug.Log ("Lost connection to the server");
  134.         }else{
  135.             Debug.Log("Successfully diconnected from the server");
  136.         }
  137.         foreach( GameObject Player in GameObject.FindGameObjectsWithTag("Player") ){
  138.             Destroy( Player );
  139.         }
  140.         connected = false;
  141.         serverruns = false;
  142.         server_search_time = 0f;
  143.         isRefreshingHostList = false;
  144.     }
  145.    
  146.     // SERVER SPAWN PLAYER ##############################################################################  
  147.     public void SpawnPlayer(){
  148.         if (spawncooldown <= 0) {
  149.             spawncooldown = 1f;
  150.             MyPlayer = (GameObject)Network.Instantiate (Resources.Load ("Player"), Vector3.zero, Quaternion.identity, 0);
  151.             if( MyPlayer.GetComponent<NetworkView>().isMine ){
  152.                 if( MyPlayer.GetComponent<network_player>() ){
  153.                     MyPlayer.GetComponent<network_player>().GetComponent<NetworkView>().RPC( "set_Player_Name", RPCMode.AllBuffered, Player_Name.text );
  154.                 }
  155.                 if( MyPlayer.GetComponent<motion_control>() ){
  156.                     MyPlayer.GetComponent<motion_control>().canControle = true;
  157.                 }
  158.             }
  159.         }
  160.     }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement