- Home /
masterserver connection
i have created this code but do not no i f i am connecet to the master server or not. could someone have a look and let me no if its wrong or not. i can connect locally but i recieve no acknowledgement i am connected to the master server. please help
/* * This file is part of the Unity networking tutorial by M2H (http://www.M2H.nl) * The original author of this code Mike Hergaarden, even though some small parts * are copied from the Unity tutorials/manuals. * Feel free to use this code for your own projects, drop me a line if you made something exciting! */ #pragma strict
var connectToIP : String = "127.0.0.1"; var connectPort : int = 25002; private var entrypassword: String =""; private var passwordID = "id"; private var password : String = ""; private var tempPassword = password; // stores temporary password private var ps =0; private var pw =0; private var sx =0; private var sy =0; private var a = false;
var doWindow0 = false;
private var connectStatus = "";
function DoWindow0 (windowID : int) { if(GUI.Button (Rect (10,30, 80,20), "Ok")) { doWindow0 = false; } }
function Awake() { // Make sure list is empty and request a new list MasterServer.ClearHostList(); MasterServer.RequestHostList("LarusTest"); }
function Update() { // If any hosts were received, display game name, the clear host list again if (MasterServer.PollHostList().length != 0) { var hostData: HostData[] = MasterServer.PollHostList(); for (var i:int=0; i<hostData.length; i++) { Debug.Log("Game name: " + hostData[i].gameName); } MasterServer.ClearHostList(); connectStatus = "in if"; doWindow0 = true; }
}
//Obviously the GUI is for both client&servers (mixed!) function OnGUI () { //if gui window pressed enter this if (doWindow0) { GUI.Window (0, Rect (110,10,200,60), DoWindow0, connectStatus); }
if(a==false) { //entry password GUILayout.Label("enter password"); entrypassword = GUILayout.PasswordField (entrypassword, "*"[0], 25); tempPassword = entrypassword;
if(GUILayout.Button("Ok"))
{
if(passwordID == tempPassword)
{
tempPassword = "";
a= true;
print("right");
connectStatus = "Correct";
doWindow0 = true;
}
else
{
connectStatus = "Wrong password try again";
doWindow0 = true;
print("wrong");
}
}
} //doWindow0 = GUI.Toggle (Rect (10,10,100,20), doWindow0, "Window 0"); else if(a==true) { if (Network.peerType == NetworkPeerType.Disconnected) { //We are currently disconnected: Not a client or host GUILayout.Label("Connection status: Disconnected");
connectToIP = GUILayout.TextField(connectToIP, GUILayout.MinWidth(100));
connectPort = parseInt(GUILayout.TextField(connectPort.ToString()));
//password = GUILayout.TextField(password, GUILayout.MinWidth(100));
password = GUILayout.PasswordField (password, "*"[0], 25);
GUILayout.BeginVertical();
if (GUILayout.Button ("Connect as client"))
{
//Connect to the "connectToIP" and "connectPort" as entered via the GUI
//Ignore the NAT for now
//~ if(password == tempPassword)
//~ {
connectStatus = "Checking";
doWindow0 = true;
Network.useNat = false;
Network.Connect(connectToIP, connectPort,password);
tempPassword = "";
//~ }
}
if (GUILayout.Button ("Start Server"))
{
//Start a server for 32 clients using the "connectPort" given via the GUI
//Ignore the nat for now
//Network.useNat = false;
Network.useNat = !Network.HavePublicAddress();
Network.incomingPassword = password;
Network.InitializeServer(32, connectPort);
MasterServer.RegisterHost("MyUniqueGameType", "JohnDoes game", "l33t game for all");
}
GUILayout.EndVertical();
}
else
{
//We've got a connection(s)!
if (Network.peerType == NetworkPeerType.Connecting)
{
GUILayout.Label("Connection status: Connecting");
}
else if (Network.peerType == NetworkPeerType.Client)
{
GUILayout.Label("Connection status: Client!");
GUILayout.Label("Ping to server: "+Network.GetAveragePing( Network.connections[0] ) );
}
else if (Network.peerType == NetworkPeerType.Server)
{
GUILayout.Label("Connection status: Server!");
GUILayout.Label("Connections: "+Network.connections.length);
if(Network.connections.length>=1)
{
GUILayout.Label("Ping to first player: "+Network.GetAveragePing( Network.connections[0] ) );
}
}
if (GUILayout.Button ("Disconnect"))
{
Network.Disconnect(200);
}
}
}
}
// NONE of the functions below is of any use in this demo, the code below is only used for demonstration. // First ensure you understand the code in the OnGUI() function above.
//Client functions called by Unity function OnConnectedToServer() { Debug.Log("This CLIENT has connected to a server"); }
function OnDisconnectedFromServer(info : NetworkDisconnection) { Debug.Log("This SERVER OR CLIENT has disconnected from a server"); }
function OnFailedToConnect(error: NetworkConnectionError) { Debug.Log("Could not connect to server: "+ error);
connectStatus = "Error Failed";
doWindow0 = true;
}
//Server functions called by Unity function OnPlayerConnected(player: NetworkPlayer) { Debug.Log("Player connected from: " + player.ipAddress +":" + player.port); }
function OnServerInitialized() { Debug.Log("Server initialized and ready"); }
function OnPlayerDisconnected(player: NetworkPlayer) { Debug.Log("Player disconnected from: " + player.ipAddress+":" + player.port); }
// OTHERS: // To have a full overview of all network functions called by unity // the next four have been added here too, but they can be ignored for now
function OnFailedToConnectToMasterServer(info: NetworkConnectionError) { Debug.Log("Could not connect to master server: "+ info); }
function OnNetworkInstantiate (info : NetworkMessageInfo) { Debug.Log("New object instantiated by " + info.sender); }
function OnSerializeNetworkView(stream : BitStream, info : NetworkMessageInfo) { //Custom code here (your code!) }
/* The last networking functions that unity calls are the RPC functions. As we've added "OnSerializeNetworkView", you can't forget the RPC functions that unity calls..however; those are up to you to implement.
@RPC function MyRPCKillMessage(){ //Looks like I have been killed! //Someone send an RPC resulting in this function call } */