OK, so I have a network script, everything works fine up to the point were a user joins a server, is asked for a password, then clicks connect. But when the user clicks connect i get and error Array index out of range. Here is the code:
var gameName:String = "";
var serverName:String = "";
var showTextField:boolean;
var showPassField:boolean;
private var connect:boolean;
private var canStart = false;
private var fontStyle : GUIStyle;
private var passWord:String = "";
private var passAtemp:String = "";
private var refreshing:boolean;
private var hostData:HostData[];
private var btnX:float;
private var btnY:float;
private var btnW:float;
private var btnH:float;
function Start(){
btnX = Screen.width * 0.05;
btnY = Screen.width * 0.05;
btnW = Screen.width * 0.1;
btnH = Screen.width * 0.1;
}
function startServer(){
Network.incomingPassword = passWord;
Network.InitializeServer(6, 25000, !Network.HavePublicAddress);
MasterServer.RegisterHost(gameName, serverName, "test game");
}
function refreshHostList(){
MasterServer.RequestHostList(gameName);
refreshing = true;
}
function Update(){
if(refreshing){
if(MasterServer.PollHostList().Length > 0){
refreshing = false;
Debug.Log(MasterServer.PollHostList().Length);
hostData = MasterServer.PollHostList();
}
}
}
function OnServerInitialized(){
Application.LoadLevel("Lobby");
Debug.Log("Server Initialized");
}
function OnMasterServerEvent(mse:MasterServerEvent){
if(mse == MasterServerEvent.RegistrationSucceeded){
Debug.Log("Registared Server");
}
}
function OnGUI(){
if(showPassField){
GUI.Label(Rect (btnX * 6, btnY * 4, btnW * 2, btnH * 0.5), "Enter server Password: ");
passAtemp = GUI.TextField(Rect (btnX * 8, btnY * 4, btnW * 2, btnH * 0.2), passAtemp, 12);
if(GUI.Button(Rect(btnX * 7, btnY * 5, btnW, btnH * 0.5), "Connect")){
connect = true;
Debug.Log("Pass");
}
}
if(showTextField){
GUI.Label(Rect (btnX * 6, btnY * 3, btnW * 2, btnH * 0.5), "Enter server name: ");
serverName = GUI.TextField(Rect (btnX * 8, btnY * 3, btnW * 2, btnH * 0.2), serverName, 25);
GUI.Label(Rect (btnX * 6, btnY * 4, btnW * 2, btnH * 0.5), "Enter server Password: ");
passWord = GUI.TextField(Rect (btnX * 8, btnY * 4, btnW * 2, btnH * 0.2), passWord, 12);
if(GUI.Button(Rect(btnX * 7, btnY * 5, btnW, btnH * 0.5), "Start")){
startServer();
}
if(GUI.Button(Rect(btnX * 11, btnY * 5, btnW, btnH * 0.5), "Cancel")){
Application.LoadLevel("Menu");
}
}
if(!Network.isClient && !Network.isServer && !showTextField){
if(GUI.Button(Rect(btnX, btnY, btnW, btnH), "Start Server")){
showTextField = true;
Destroy(GameObject.FindWithTag("Menu"));
Debug.Log("Starting Server");
}
if(GUI.Button(Rect(btnX, btnY * 1.2 + btnH, btnW, btnH), "Refresh Host")){
Debug.Log("Refreshing");
refreshHostList();
}
if(GUI.Button(Rect(btnX, btnY * 3.4 + btnH, btnW, btnH), "Exit")){
Application.Quit();
}
if(hostData){
for(var i:int = 0; i<hostData.length; i++){
if(GUI.Button(Rect(btnX * 2 + btnW, btnY*1.2 + (btnH * i), btnW * 3, btnH*.5),hostData_.gameName + "" +hostData*.connectedPlayers + "/6")){*_
* showPassField = true;*
* Destroy(GameObject.FindWithTag(“Menu”));*
* }*
* }*
* if(connect){*
_ Network.Connect(hostData*,passAtemp);
}
}
}
}*_