public void BottoneGioca() { if (Statici.nomePersonaggio != string.Empty && Statici.datiPersonaggio.Dati.nomePersonaggio != string.Empty) { if (inputNomePartita.text.Replace(" ", "") != string.Empty) { ResettaErrore(); BloccaSbloccaCanvas(false); RoomSettings settings = new RoomSettings(inputNomePartita.text.Replace(" ", "").Trim()); settings.GroupId = "games"; settings.IsGame = true; settings.MaxUsers = numeroMaxDecisoDaOwner; settings.MaxSpectators = 0; SFSRoomVariable roomVariableStart = new SFSRoomVariable("gameStarted", false); roomVariableStart.IsPersistent = true; settings.Variables.Add(roomVariableStart); settings.Extension = new RoomExtension(EXTENSION_ID, EXTENSION_CLASS); sfs.Send(new CreateRoomRequest(settings, true, sfs.LastJoinedRoom)); } else erroreText.text = "Assegnare un nome alla partita"; } else erroreText.text = "Inserire un nome e scegliere una classe"; }
public void OnPlayWithAiClick() { RoomSettings settings = new RoomSettings(sfs.MySelf.Name + "'s game"); settings.GroupId = "games"; settings.MaxUsers = 1; settings.MaxSpectators = 0; settings.Extension = new RoomExtension(EXTENSION_ID, EXTENSION_CLASS); RoomVariable isAI = new SFSRoomVariable("isAI", true); settings.Variables.Add(isAI); sfs.Send(new CreateRoomRequest(settings, true, sfs.LastJoinedRoom)); }
public void Cancel() { UserVariable uv = new SFSUserVariable("Ready", "NO"); List<UserVariable> lUV = new List<UserVariable>(); lUV.Add(uv); sfs.Send(new SetUserVariablesRequest(lUV)); RoomVariable rv = new SFSRoomVariable("ReadyCount", int.Parse(sfs.LastJoinedRoom.GetVariable("ReadyCount").Value.ToString()) - 1); List<RoomVariable> lRV = new List<RoomVariable>(); lRV.Add(rv); sfs.Send(new SetRoomVariablesRequest(lRV)); ISFSObject isfsO = new SFSObject(); isfsO.PutInt("Sender", sfs.MySelf.PlayerId); sfs.Send(new PublicMessageRequest("PlayerCancel", isfsO, sfs.LastJoinedRoom)); }
public static Room FromSFSArray(ISFSArray sfsa) { bool flag = sfsa.Size() == 14; Room room = null; room = ((!flag) ? new SFSRoom(sfsa.GetInt(0), sfsa.GetUtfString(1), sfsa.GetUtfString(2)) : new MMORoom(sfsa.GetInt(0), sfsa.GetUtfString(1), sfsa.GetUtfString(2))); room.IsGame = sfsa.GetBool(3); room.IsHidden = sfsa.GetBool(4); room.IsPasswordProtected = sfsa.GetBool(5); room.UserCount = sfsa.GetShort(6); room.MaxUsers = sfsa.GetShort(7); ISFSArray sFSArray = sfsa.GetSFSArray(8); if (sFSArray.Size() > 0) { List <RoomVariable> list = new List <RoomVariable>(); for (int i = 0; i < sFSArray.Size(); i++) { list.Add(SFSRoomVariable.FromSFSArray(sFSArray.GetSFSArray(i))); } room.SetVariables(list); } if (room.IsGame) { room.SpectatorCount = sfsa.GetShort(9); room.MaxSpectators = sfsa.GetShort(10); } if (flag) { MMORoom mMORoom = room as MMORoom; mMORoom.DefaultAOI = Vec3D.fromArray(sfsa.GetElementAt(11)); if (!sfsa.IsNull(13)) { mMORoom.LowerMapLimit = Vec3D.fromArray(sfsa.GetElementAt(12)); mMORoom.HigherMapLimit = Vec3D.fromArray(sfsa.GetElementAt(13)); } } return(room); }
private void Update() { if (sfs != null) sfs.ProcessEvents(); if (!Application.isLoadingLevel && !isLoaded) { foreach (User u in sfs.LastJoinedRoom.PlayerList) { GameObject.Find("Slot" + u.PlayerId).transform.Find("PlayerName").GetComponent<Text>().text = u.Name; if ((u.GetVariable("Ready").Value).ToString().Equals("YES")) GameObject.Find("Slot" + u.PlayerId).transform.Find("Status").GetComponent<Image>().sprite = rdySprite; else GameObject.Find("Slot" + u.PlayerId).transform.Find("Status").GetComponent<Image>().sprite = cancelSprite; } if (sfs.MySelf.PlayerId.Equals(1)) { readyBTN.SetActive(false); cancelBTN.SetActive(false); startBTN.SetActive(true); startBTN.GetComponent<Button>().interactable = false; RoomVariable map = new SFSRoomVariable("Map", "Map1"); List<RoomVariable> lRV = new List<RoomVariable>(); lRV.Add(map); sfs.Send(new SetRoomVariablesRequest(lRV, sfs.LastJoinedRoom)); } else { readyBTN.SetActive(true); cancelBTN.SetActive(false); startBTN.SetActive(false); } LoadCard(); LoadMap(); isLoaded = true; } }
private void DrawHostOptions() { GUILayout.BeginArea(new Rect(490, 80, 300, 500)); GUILayout.BeginVertical("box"); GUILayout.Label("Host Options"); GUILayout.Space(10); GUILayout.BeginHorizontal(); GUILayout.Label("Rounds: "); if (GUILayout.Button("<", GUILayout.Width(50))) { if (_roundsInt > 1) { _roundsInt--; } } GUILayout.Box(_roundsInt.ToString()); if (GUILayout.Button(">", GUILayout.Width(50))) { if (_roundsInt < 20) { _roundsInt++; } } GUILayout.EndHorizontal(); if (redTeam.Count + blueTeam.Count >= MIN_USERS) { if (GUILayout.Button ("Start Game")) { ISFSObject sendJoinMessage = new SFSObject(); sendJoinMessage.PutUtfString("type", "everyoneJoin"); smartFox.Send(new ObjectMessageRequest(sendJoinMessage, null, smartFox.LastJoinedRoom.UserList)); var rounds = new SFSRoomVariable("rounds", _roundsInt); smartFox.Send(new SetRoomVariablesRequest(new [] { rounds }, smartFox.LastJoinedRoom)); } } GUILayout.EndVertical(); GUILayout.EndArea(); }
// Changed // A window to use for room creation private void onCreateWindow(int windowID) { GUI.skin = createRoomSkin; GUI.DragWindow(new Rect(0, 0, createRoom.width, 60)); if (createRoom.x + createRoom.width > Screen.width) { createRoom.x = Screen.width - createRoom.width; } else if (createRoom.x < 0) { createRoom.x = 0; } if (createRoom.y + createRoom.height > Screen.height) { createRoom.y = Screen.height - createRoom.height; } else if (createRoom.y <0) { createRoom.y = 0; } newRoomName = GUI.TextField(new Rect(20, 70, 200, 30), newRoomName, 20); newRoomPlayers = GUI.TextField(new Rect(20, 130, 200, 30), newRoomPlayers, 20); newRoomType = GUI.TextField(new Rect(20, 190, 200, 30), newRoomType, 20); GUI.TextArea(new Rect(20, 40, 200, 30), "New Room Name:"); GUI.TextArea(new Rect(20, 100, 200, 30), "Max Players:"); GUI.TextArea(new Rect(20, 160, 200, 30), "Room Stage:"); if (GUI.Button(new Rect(createRoom.width/2 - 110, 240, 100, 30), "Create!") || (Event.current.type == EventType.keyDown && Event.current.character == '\n')) { short numMaxPlayers = 0; if (Int16.TryParse(newRoomPlayers, out numMaxPlayers)) { RoomSettings settings = new RoomSettings(newRoomName); settings.MaxUsers = numMaxPlayers; List<RoomVariable> variablesArray = new List<RoomVariable>(); RoomVariable newRoomVariable = new SFSRoomVariable(newRoomType, null); variablesArray.Add(newRoomVariable); //settings.Variables = variablesArray; smartFox.Send(new CreateRoomRequest(settings)); newRoomName = ""; newRoomPlayers = ""; newRoomType = ""; showCreateRoom = false; } else { newRoomPlayers = ""; } } if (GUI.Button(new Rect(createRoom.width/2 + 10, 240, 100, 30), "Cancel")) { newRoomName = ""; newRoomPlayers = ""; newRoomType = ""; showCreateRoom = false; } }
private void sendNewRoundInfo() { var toggle = new SFSRoomVariable("countdownToggle", null); var otherVars = new List<RoomVariable>(); otherVars.Add(new SFSRoomVariable("currentRound", smartFox.LastJoinedRoom.GetVariable("currentRound").GetIntValue() + 1)); otherVars.Add(new SFSRoomVariable("redTotalScore", _redTotal + _redPoints)); otherVars.Add(new SFSRoomVariable("redStored", 0)); otherVars.Add(new SFSRoomVariable("blueTotalScore", _blueTotal + _bluePoints)); otherVars.Add(new SFSRoomVariable("blueStored", 0)); otherVars.Add(new SFSRoomVariable("redRobot", getRandomPlayer(false))); otherVars.Add(new SFSRoomVariable("blueRobot", getRandomPlayer(true))); //This needs to be done in two requests smartFox.Send(new SetRoomVariablesRequest(new [] {toggle})); smartFox.Send(new SetRoomVariablesRequest(otherVars)); }
public void OnUserVariablesUpdate(BaseEvent evt) { //List<UserVariable> changedVars = (List<UserVariable>)evt.Params["changedVars"]; ArrayList changedVars = (ArrayList)evt.Params["changedVars"]; User user = (User)evt.Params["user"]; Debug.Log("USER: "******"USERVAR: " + changedVars[0]); if (GameValues.isHost) { if (changedVars.Contains("playerJoined")){ playerCount++; if (playerCount == numberOfPlayers) { Debug.Log("GAME INITING"); SetupGameWorld(); List<RoomVariable> roomVars = new List<RoomVariable>(); SFSRoomVariable roomVar = new SFSRoomVariable("gameInit", true); roomVars.Add(roomVar); smartFox.Send(new SetRoomVariablesRequest(roomVars)); } } if (changedVars.Contains("builtGame")) { playerInitCount++; //if everyone has built the game if (playerInitCount == numberOfPlayers) { if (gotServerTime) { startCountDownToGame(); } else { waitingForServerResponse = true; } } } } if (changedVars.Contains("playerTeam")) { CISPlayer tempPlayer = new CISPlayer(user.Name, 0, 0, 0, 0); // create new player with users name and 0 scores teamList[user.GetVariable("playerTeam").GetIntValue()].AddPlayerToTeam(tempPlayer); } if (changedVars.Contains("score")) { Debug.Log("Updated Scores: " + user.GetVariable("score").GetSFSArrayValue().GetInt(0) + ", " + user.GetVariable("score").GetSFSArrayValue().GetInt(1) + ", " + user.GetVariable("score").GetSFSArrayValue().GetInt(2)); teamList[user.GetVariable("playerTeam").GetIntValue()].FindPlayer(user.Name).sidesCaptured = user.GetVariable("score").GetSFSArrayValue().GetInt(0); teamList[user.GetVariable("playerTeam").GetIntValue()].FindPlayer(user.Name).sidesLocked = user.GetVariable("score").GetSFSArrayValue().GetInt(1); teamList[user.GetVariable("playerTeam").GetIntValue()].FindPlayer(user.Name).sidesStolen = user.GetVariable("score").GetSFSArrayValue().GetInt(2); teamList[user.GetVariable("playerTeam").GetIntValue()].FindPlayer(user.Name).score = user.GetVariable("score").GetSFSArrayValue().GetInt(3); } }
// Use this for initialization void Start() { smartFox = SmartFoxConnection.Connection; setCurrentTeam(); setStartPositions(); scoreboardStyle = new GUIStyle(); scoreboardStyle.fontSize = 24; scoreboardStyle.alignment = TextAnchor.MiddleCenter; scoreboardStyle.normal.textColor = Color.white; plane = GameObject.FindGameObjectWithTag("Plane"); targetPosition = Vector3.zero; _blocks = GameObject.FindGameObjectsWithTag("Block"); if(isRobot()) thirdPerson = true; if(thirdPerson) { if(isBlueTeam) { player = Instantiate(Player, blueStart, Quaternion.identity) as GameObject; player.GetComponent<PlayerNetwork>().IsBlueTeam = true; redRobot = Instantiate(RobotPrefab, redStart, Quaternion.identity) as GameObject; redRobot.GetComponent<Robot>().IsBlueTeam = false; } else { player = Instantiate(Player, redStart, Quaternion.identity) as GameObject; player.GetComponent<PlayerNetwork>().IsBlueTeam = false; blueRobot = Instantiate(RobotPrefab, blueStart, Quaternion.identity) as GameObject; blueRobot.GetComponent<Robot>().IsBlueTeam = true; } var cam = Instantiate(PlayerCamera) as GameObject; var smoothFollow = cam.GetComponent<SmoothFollow>(); Debug.Log(smoothFollow); smoothFollow.target = player.transform; player.transform.LookAt(Vector3.zero); infoTexture = Resources.Load("jump-instructions") as Texture2D; } else { var cam = Instantiate(RTSCamera, new Vector3(0, 200, 0), Quaternion.identity) as GameObject; cam.transform.LookAt(Vector3.zero); redRobot = Instantiate(RobotPrefab, redStart, Quaternion.identity) as GameObject; blueRobot = Instantiate(RobotPrefab, blueStart, Quaternion.identity) as GameObject; redRobot.GetComponent<Robot>().IsBlueTeam = false; blueRobot.GetComponent<Robot>().IsBlueTeam = true; infoTexture = Resources.Load("rts-instructions") as Texture2D; } if(NetworkHelper.IsLowestID(smartFox)) { InvokeRepeating("sendBlockData", BLOCK_SYNC_INTERVAL, BLOCK_SYNC_INTERVAL); } ResetEventListeners(); RoomVariable countdownChecker = smartFox.LastJoinedRoom.GetVariable("countdownToggle"); if (countdownChecker == null) { Debug.Log("countdownchecker is null"); if (NetworkHelper.IsLowestID(smartFox)) { List<RoomVariable> roomVars = new List<RoomVariable>(); RoomVariable countdownToggle = new SFSRoomVariable("countdownToggle", true); roomVars.Add(countdownToggle); smartFox.Send(new SetRoomVariablesRequest(roomVars, smartFox.LastJoinedRoom)); } } else { Debug.Log("Starting round countdown"); roundStarted = true; roundTime = Time.time; } if(isBlueTeam) flags = Resources.Load("blue-flag") as Texture2D; else flags = Resources.Load("red-flag") as Texture2D; }
private void setRoomVariable() { if(_roomVarName == "" || _roomVarValue == "") return; RoomVariable roomVar; var typeString = _roomVarValue[0]; switch(typeString) { case 'f': roomVar = new SFSRoomVariable(_roomVarName, float.Parse (_roomVarValue.Substring(1))); break; case 's': roomVar = new SFSRoomVariable(_roomVarName, _roomVarValue.Substring(1)); break; default: Debug.Log ("Unhandled prefix"); return; } SmartFoxConnection.Connection.Send (new SetRoomVariablesRequest(new [] {roomVar}, SmartFoxConnection.Connection.LastJoinedRoom)); }
private void OnRoomJoin(BaseEvent evt) { Room room = (Room)evt.Params["room"]; Debug.Log(room.Name); if (room.IsGame) { reset(); if (room.Name.Contains(sfs.MySelf.Name)) { Debug.Log("Create Var"); RoomVariable map = new SFSRoomVariable("Map", ""); RoomVariable pass = new SFSRoomVariable("Pass", ""); RoomVariable readyCount = new SFSRoomVariable("ReadyCount", 1); List<RoomVariable> lRV = new List<RoomVariable>(); lRV.Add(map); lRV.Add(pass); lRV.Add(readyCount); sfs.Send(new SetRoomVariablesRequest(lRV, room)); } Debug.Log("Chuyen vao Lobby cua Room Game"); PlayerPrefs.SetString("RoomName",room.Name); Application.LoadLevel("Lobby"); } else { Debug.Log("\nYou joined a Room: " + room.Name); } }
public void Ready() { UserVariable uv = new SFSUserVariable("Ready", "YES"); List<UserVariable> lUV = new List<UserVariable>(); lUV.Add(uv); sfs.Send(new SetUserVariablesRequest(lUV)); RoomVariable rv = new SFSRoomVariable("ReadyCount", int.Parse(sfs.LastJoinedRoom.GetVariable("ReadyCount").Value.ToString()) + 1); List<RoomVariable> lRV = new List<RoomVariable>(); lRV.Add(rv); sfs.Send(new SetRoomVariablesRequest(lRV)); ISFSObject isfsO = new SFSObject(); isfsO.PutInt("Sender",sfs.MySelf.PlayerId); sfs.Send(new PublicMessageRequest("PlayerReady",isfsO,sfs.LastJoinedRoom)); sfs.Send(new ExtensionRequest(ConfigRequestCmd.cmd_playerready, isfsO, sfs.LastJoinedRoom)); }
private void startCountDownToGame() { gameStateManager.state = GameStateManager.GameState.StartCountDown; List<RoomVariable> roomVars = new List<RoomVariable>(); double startCountdownTime = TimeManager.Instance.ClientTimeStamp + 5000.0f; SFSRoomVariable countdownTime = new SFSRoomVariable("startCountdownTime", (double)startCountdownTime); roomVars.Add(countdownTime); countdownTimeStart = startCountdownTime; if (countdownTimeStart <= 0) { waitingForServerResponse = true; } else { smartFox.Send(new SetRoomVariablesRequest(roomVars)); } }
public void OnUserVariablesUpdate(BaseEvent evt) { //List<UserVariable> changedVars = (List<UserVariable>)evt.Params["changedVars"]; ArrayList changedVars = (ArrayList)evt.Params["changedVars"]; User user = (User)evt.Params["user"]; Debug.Log("USERVAR: " + changedVars[0]); if (GameValues.isHost) { if (changedVars.Contains("playerJoined")){ playerCount++; Debug.Log("player count: " + playerCount); if (playerCount == numberOfPlayers) { Debug.Log("GAME START"); List<RoomVariable> roomVars = new List<RoomVariable>(); SFSRoomVariable roomVar = new SFSRoomVariable("gameStarted", true); roomVars.Add(roomVar); smartFox.Send(new SetRoomVariablesRequest(roomVars)); SetupGameWorld(); } } } //make a character //MakeCharacter(user); }
private void DrawCountDown() { int timeleft = (int)(COUNT_DOWN_SECONDS - (Time.time - countDownTime)); GUIStyle funstyle = new GUIStyle(); funstyle.fontSize = 50; funstyle.normal.textColor = Color.white; GUILayout.BeginArea(new Rect(Screen.width/2 - 160, 100, Screen.width, Screen.height)); GUILayout.Label("Starting in " + timeleft + " seconds...", funstyle); GUILayout.Label(infoTexture); GUILayout.EndArea(); if (timeleft <= 0 && NetworkHelper.IsLowestID(smartFox)) { List<RoomVariable> roomVars = new List<RoomVariable>(); RoomVariable countdownToggle = new SFSRoomVariable("countdownToggle", false); roomVars.Add(countdownToggle); smartFox.Send(new SetRoomVariablesRequest(roomVars, smartFox.LastJoinedRoom)); countDownStarted = false; } }
private void ConfirmJoinedGame() { //add your player id to the list of joined players List<RoomVariable> roomVars = new List<RoomVariable>(); SFSArray playersJoined = (SFSArray)currentRoom.GetVariable("playersJoined").GetSFSArrayValue(); Debug.Log("joined players so far: " + playersJoined.Size()); playersJoined.AddInt(GameValues.playerID); SFSRoomVariable roomVar = new SFSRoomVariable("playersJoined", playersJoined); roomVars.Add(roomVar); smartFox.Send(new SetRoomVariablesRequest(roomVars)); //register your team List<UserVariable> userVars = new List<UserVariable>(); userVars.Add(new SFSUserVariable("playerTeam", GameValues.teamNum)); userVars.Add(new SFSUserVariable("playerJoined", true)); smartFox.Send(new SetUserVariablesRequest(userVars)); }
private void DrawRoomsGUI() { GUILayout.BeginArea(new Rect(screenW - 190, 290, 180, 150)); if (GameValues.isHost) { //start game button event listener if (GUI.Button(new Rect(80, 110, 85, 24), "Start Game")) { // ****** Create the actual game ******* // String[] nameParts = this.currentActiveRoom.Name.Split('-'); String gameName = nameParts[0] + " - Game"; RoomSettings settings = new RoomSettings(gameName); settings.MaxUsers = (short)currentActiveRoom.MaxUsers; // how many players allowed: 12 settings.Extension = new RoomExtension(GameManager.ExtName, GameManager.ExtClass); settings.IsGame = true; //get the variables set up from the lobby List<RoomVariable> lobbyVars = currentActiveRoom.GetVariables(); SFSObject lobbyGameInfo = (SFSObject)((RoomVariable)lobbyVars[1]).GetSFSObjectValue(); //lobbyGameInfo.GetSFSArray(" //FORMAT BY INDEX //0 = (bool) gameStarted //1 = (SFSObject) gameInfo // -(string) the host username key: "host" // -(IntArray) playerIds key: "playerIDs" // -(int) number of Teams key: "numTeams" // -(SFSArray) teams key: "teams" // -(int) length of the game in seconds key: "gameLength" SFSRoomVariable gameInfo = new SFSRoomVariable("gameInfo", lobbyGameInfo); settings.Variables.Add(gameInfo); Debug.Log("numberOfPlayers: " + currentActiveRoom.UserCount); SFSRoomVariable userCountVar = new SFSRoomVariable("numberOfPlayers", currentActiveRoom.UserCount); settings.Variables.Add(userCountVar); SFSArray joinedPlayers = new SFSArray(); SFSRoomVariable joinedVar = new SFSRoomVariable("playersJoined", joinedPlayers); settings.Variables.Add(joinedVar); //get the values from the appropriate fields to populate the gameInfo smartFox.Send(new CreateRoomRequest(settings, true)); //let other players know to switch rooms List<RoomVariable> roomVars = new List<RoomVariable>(); roomVars.Add(new SFSRoomVariable("gameStarted", true)); smartFox.Send(new SetRoomVariablesRequest(roomVars)); } } GUILayout.EndArea(); }
private void DrawRoomsGUI() { if (GameValues.isHost) { //start game button event listener if (GUILayout.Button("Start Game") && startGameTime <= 0) { // ****** Create the actual game ******* // String[] nameParts = this.currentActiveRoom.Name.Split('-'); String gameName = nameParts[0].Trim() + " - Game"; Debug.Log("Host created game named: " + gameName); RoomSettings settings = new RoomSettings(gameName); settings.MaxUsers = (short)currentActiveRoom.MaxUsers; // how many players allowed: 12 settings.Extension = new RoomExtension(GameManager.ExtName, GameManager.ExtClass); settings.IsGame = true; settings.MaxVariables = 15; //get the variables set up from the lobby List<RoomVariable> lobbyVars = currentActiveRoom.GetVariables(); SFSObject lobbyGameInfo = (SFSObject)((RoomVariable)lobbyVars[1]).GetSFSObjectValue(); //lobbyGameInfo.GetSFSArray(" //FORMAT BY INDEX //0 = (bool) gameStarted //1 = (SFSObject) gameInfo // -(string) the host username key: "host" // -(IntArray) playerIds key: "playerIDs" // -(int) number of Teams key: "numTeams" // -(SFSArray) teams key: "teams" // -(int) length of the game in seconds key: "gameLength" SFSRoomVariable gameInfo = new SFSRoomVariable("gameInfo", lobbyGameInfo); settings.Variables.Add(gameInfo); SFSRoomVariable userCountVar = new SFSRoomVariable("numberOfPlayers", currentActiveRoom.UserCount); settings.Variables.Add(userCountVar); SFSArray joinedPlayers = new SFSArray(); SFSRoomVariable joinedVar = new SFSRoomVariable("playersJoined", joinedPlayers); settings.Variables.Add(joinedVar); //get the values from the appropriate fields to populate the gameInfo smartFox.Send(new CreateRoomRequest(settings)); //start timer startGameTime = Time.time + 5.0f; Debug.Log("Start the countdown"); List<RoomVariable> roomVars = new List<RoomVariable>(); SFSRoomVariable startCountdown = new SFSRoomVariable("startCountdown", true); roomVars.Add(startCountdown); smartFox.Send(new SetRoomVariablesRequest(roomVars)); } } else { //start game button event listener if (GUILayout.Button("Waiting...")) { } } }