Im trying to Initialize multiple servers, with a MasterServer, so the hosts can decide on wich one to play.
(like connect to the server and then decide on wich room to play)
if i run diferent instances of the proyect, i can actually create multiple servers (one per unity game), and hosts can decide on wich one to play.
The problem is that i can not initialize multiple servers (as rooms) on one instance of the game.
any ideas how to figure this out?
Here is the Networking code i have:
#pragma strict
private var refreshing:boolean;
private var hostdata:HostData[];
var PlayerPrefab:GameObject;
var PlayerPos:Transform;
var servercount:int=0;
function Start () {
}
function Update () {
if (refreshing)
{
if(MasterServer.PollHostList().Length >0)
{
Debug.Log(MasterServer.PollHostList().Length);
refreshing=false;
hostdata = MasterServer.PollHostList();
}
}
}
//iniciar Server
function StartServer(i:int) {
Network.InitializeServer(4,25001+i,!Network.HavePublicAddress);
MasterServer.RegisterHost("Tipo_De_Juego","nombre del juego" + i,"Comentario_Del_Juego" + i);
}
function RefreshHostList(){
MasterServer.ClearHostList();
Debug.Log(MasterServer.PollHostList().Length + "still refreshing");
MasterServer.RequestHostList("Tipo_De_Juego");
refreshing=true;
}
function OnConnectedToServer(){
spawnplayer();
}
function spawnplayer(){
Network.Instantiate(PlayerPrefab,PlayerPos.position,Quaternion.identity,0);
}
/*---mensajes---*/
function OnServerInitialized() {
Debug.Log("Server Initialized!!");
spawnplayer();
}
function OnMasterServerEvent (mse:MasterServerEvent){
if (mse== MasterServerEvent.RegistrationSucceeded)
Debug.Log("Registered Server!");
}
/*----------------*/
//botones
function OnGUI () {
if (GUI.Button(new Rect(100, 100, 250, 100), "Start Server"))
{
Debug.Log("apreto, Starting server");
var servername:int= MasterServer.PollHostList().Length +1;
StartServer(servername);
}
if (GUI.Button(new Rect(100, 200, 250, 100), "Refresh"))
{
Debug.Log("apreto, Refreshing");
RefreshHostList();
}
if (hostdata){
for (var i:int = 0;i<hostdata.length;i++){
if (GUI.Button(new Rect(400, 100*(i+1), 250, 100), i+ hostdata[i].gameName))
{
Network.Connect(hostdata[i]);
}
}
}
}