void OnPlayerConnect(Session session, IMessage message) { //TODO load from db var msg = message as Msg_JoinRoom; var name = msg.name; if (name2Player.TryGetValue(name, out var val)) { return; } var info = new PlayerServerInfo(); info.Id = idCounter++; info.name = name; name2Player[name] = info; id2Player[info.Id] = info; id2Session[info.Id] = session; session.BindInfo = info; curCount++; if (curCount >= Room.maxPlayerCount) { room = new Room(); room.Init(0); foreach (var player in id2Player.Values) { room.Join(id2Session[player.Id], player); } OnGameStart(room); } Debug.Log("OnPlayerConnect count:" + curCount + " " + JsonUtil.ToJson(msg)); }
void OnPlayerConnect(Session session, IMessage message) { var msg = message as Msg_JoinRoom; msg.name = msg.name + idCounter; var name = msg.name; if (_name2Player.TryGetValue(name, out var val)) { return; } var info = new PlayerServerInfo(); info.id = idCounter++; info.name = name; _name2Player[name] = info; _id2Player[info.id] = info; _id2Session[info.id] = session; session.BindInfo = info; curCount++; if (curCount >= Room.MaxPlayerCount) { _room = new Room(); _room.Init(0); foreach (var player in _id2Player.Values) { _room.OnPlayerJoin(_id2Session[player.id], player); } OnGameStart(_room); } Debug.Log("OnPlayerConnect count:" + curCount + " " + JsonUtil.ToJson(msg)); }
//Uses psinfo to generate player score grid. public void Initialize(PlayerServerInfo psInfo){ this.psInfo = psInfo; foreach(NetworkPlayer player in psInfo.players){ GameObject scoreUI = NGUITools.AddChild(scoresGrid.gameObject, PlayerScorePrefab) as GameObject; scoreUI.transform.localEulerAngles = new Vector3(0f, 0f, 3f); string playerName = psInfo.GetPlayerOptions(player).username; scoreUI.GetComponent<UILabel>().text = playerName; entries.Add(player, scoreUI); } }
public void OnPlayerJoin(Session session, PlayerServerInfo player) { if (id2LocalId.ContainsKey(player.id)) { return; } id2LocalId[player.id] = curLocalId; playerInfos[curLocalId] = player; sessions[curLocalId] = session; curLocalId++; }
//On load instantiate the picking UI void OnNetworkLoadedLevel () { manager = SessionManager.Instance; psinfoscript = PlayerServerInfo.Instance; numberOfStages = psinfoscript.numStages; picks = new string[numberOfStages]; for(int i = 0; i < picks.Length; i++) { picks[i] = "empty"; } if(Network.isServer){ // GameObject picklabel = (GameObject)Network.Instantiate(allUI, new Vector3(0, 0, 0), transform.rotation, 0); } }
//尝试连接用户所在网关服务器 public void TryConnectUserServer(PlayerServerInfo player) { if (GateServerClients.HaveKey(player.ServerID)) { return; } var client = new RequestClient(player.ServiceHost, player.ServicePort); client.UseSendThreadUpdate = true; client.Connect(); client.UserState = player.ServerID; client.OnDisconnect += (s, e) => { var c = s as RequestClient; var serverID = (int)c.UserState; GateServerClients.Remove(serverID); }; GateServerClients.Add(player.ServerID, client); }
void Awake(){ if(Instance != null && Instance != this){ Destroy(gameObject); return; } Instance = this; DontDestroyOnLoad(this); psInfo = PlayerServerInfo.Instance; networkView.group = SETUP; playerCounter = -1; levelPrefix = 0; arenaIndex = -2;// lobby is -1 numberOfRounds = psInfo.numStages; arenas = new string[numberOfRounds]; for (int i = 0; i < arenas.Length; i++) { arenas[i] = "empty"; } }
public void AddUser(PlayerServerInfo user, int mapID) { var userInfo = new BattlePlayer { ClientID = -1, User = user, MapID = mapID, StartTime = DateTime.UtcNow, SimulaterIndex = -1 }; if (_battlePlayers.Add(user.UserID, userInfo)) { if (!UserSimulaterMapping.Add(user.UserID, userInfo)) { DeleteUser(user.UserID, false); Debuger.LogError("user " + user.UserID + " is in battle!"); } } else { Debuger.LogError("user " + user.UserID + " is in battle!"); } }
// Use this for initialization void Start () { playertitle = GameObject.Find("PlayerName"); infoscript = PlayerServerInfo.Instance; //UILabel playerlabel = playertitle.GetComponentInChildren<UILabel>(); //playerlabel.text = infoscript.localOptions.username; }
//On Level Loaded tries to spawn the labels of player scores. void OnNetworkLoadedLevel(){ sessionManager = GameObject.FindWithTag ("SessionManager").GetComponent<SessionManager>(); infoscript = sessionManager.psInfo; var listed = infoscript.players; print(listed); print(listed.Count); print(infoscript.GetPlayerStats(listed[0]).roundScore); if(sessionManager.matchfinish){ timeleft = 12; timeLabelDescription = "Returning to Lobby: "; var timelabel = (GameObject)Instantiate(TimeLabel, new Vector2(0,0), transform.rotation); timelabel.transform.parent = GameObject.Find("UI Root").transform; timelabel.transform.localScale = new Vector3(1,1,1); timelabel.transform.localPosition = new Vector2 (-590,285); timeLabelReference = timelabel; } else { timeleft = 6; timeLabelDescription = "Next Round in: "; var timelabel = (GameObject)Instantiate (TimeLabel, new Vector2 (0, 0), transform.rotation); timelabel.transform.parent = GameObject.Find ("UI Root").transform; timelabel.transform.localScale = new Vector3(1,1,1); timelabel.transform.localPosition = new Vector2 (-590,285); timeLabelReference = timelabel; } print (winningscore); //If the Match is finished check who was the winner and set up tie logic if(sessionManager.matchfinish){ for(int v = 0; v < listed.Count; v++){ var score = infoscript.GetPlayerStats(listed[v]).totalScore; if(score > winningscore){ winningscore = score; winningplayer = listed[v]; if(tie){ firsttie = false; } tie = false; tielist.Clear(); } else if(score == winningscore) { if(firsttie){ tie = true; if(winningplayer == listed[v]){ tielist.Add(winningplayer); } else { tielist.Add(winningplayer); tielist.Add(listed[v]); } firsttie = false; } else { tielist.Add(listed[v]); tie = true; } } } } //Calculate scores for each player for(int i = 0; i < listed.Count; i++){ var roundscore = infoscript.GetPlayerStats(listed[i]).roundScore; var totalscore = infoscript.GetPlayerStats(listed[i]).totalScore; PowerType lastdeath = PowerType.UNDEFINED; PlayerStats stats = infoscript.GetPlayerStats(listed[i]); //only want last event if player died. if(!stats.lived){ lastdeath = stats.LastEvent().PowerType; } var playername = infoscript.GetPlayerOptions(listed[i]).username; var playermodel = infoscript.GetPlayerOptions(listed[i]).character; var playercolor = infoscript.GetPlayerOptions(listed[i]).style; var playernumber = i + 1; ShowScoresLocally(roundscore, totalscore, playername, playernumber, playercolor, lastdeath, playermodel); } //Wipes scores in playerstats after displaying them if the game is over. if(sessionManager.matchfinish){ for(int z = 0; z < listed.Count; z++){ infoscript.GetPlayerStats(listed[z]).totalScore = 0; } sessionManager.matchfinish = false; } }
void MatchFinish(PlayerServerInfo infoscript){ //make new time label for end match var timelabel = (GameObject)Instantiate(TimeLabel, new Vector2(0,0), transform.rotation); timelabel.transform.parent = GameObject.Find("UI Root").transform; timelabel.transform.localScale = new Vector3(1,1,1); timelabel.transform.localPosition = new Vector2 (125,-320); timeLabelReference = timelabel; if(tie){ print ("tielength" + tielist.Count); var tielabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); tielabel.transform.parent = GameObject.Find ("UI Root").transform; tielabel.transform.localScale = new Vector3(1,1,1); tielabel.transform.localPosition = new Vector2(-300, 300); var tietext = tielabel.GetComponent<UILabel>(); tietext.text = "TIE!"; var currplayers = infoscript.players; for(int i = 0; i < currplayers.Count; i++){ if(tielist[i] == currplayers[i]){ var playername = infoscript.GetPlayerOptions(tielist[i]).username; var playercolor = infoscript.GetPlayerOptions(tielist[i]).style; var playeravatar = infoscript.GetPlayerOptions(tielist[i]).character; var playerclr = ColorCheck(playercolor); var playericon = DetermineColorEnd(playerclr, playeravatar); var playerlabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); playerlabel.transform.parent = GameObject.Find ("UI Root").transform; playerlabel.transform.localScale = new Vector3(1, 1, 1); playerlabel.transform.localPosition = new Vector2(-300, 150+(-150*gonethrough)); var playertext = playerlabel.GetComponent<UILabel>(); playertext.text = playername; playericon.transform.parent = GameObject.Find ("UI Root").transform; playericon.transform.localScale = new Vector3(100,100,1); playericon.transform.localPosition = new Vector2(-500, 150+(-150 * gonethrough)); gonethrough++; } else { var playername = infoscript.GetPlayerOptions(tielist[i]).username; var playercolor = infoscript.GetPlayerOptions(tielist[i]).style; var playeravatar = infoscript.GetPlayerOptions(tielist[i]).character; var playerclr = ColorCheck(playercolor); var playericon = DetermineColorEnd(playerclr, playeravatar); var playerlabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); playerlabel.transform.parent = GameObject.Find ("UI Root").transform; playerlabel.transform.localScale = new Vector3(1, 1, 1); playerlabel.transform.localPosition = new Vector2(400, 150+(-150*tiethrough)); var playertext = playerlabel.GetComponent<UILabel>(); playertext.text = playername; playericon.transform.parent = GameObject.Find ("UI Root").transform; playericon.transform.localScale = new Vector3(100,100,1); playericon.transform.localPosition = new Vector2(300, 150+(-150 * tiethrough)); tiethrough++; } } } else { var currplayers = infoscript.players; var loselabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); loselabel.transform.parent = GameObject.Find ("UI Root").transform; loselabel.transform.localScale = new Vector3(1,1,1); loselabel.transform.localPosition = new Vector2(300, 300); var losetext = loselabel.GetComponent<UILabel>(); losetext.text = "LOSERS"; for(int i = 0; i < currplayers.Count; i++){ if(currplayers[i] == winningplayer){ var playername = infoscript.GetPlayerOptions(winningplayer).username; var playercolor = infoscript.GetPlayerOptions(winningplayer).style; var playertype = infoscript.GetPlayerOptions(winningplayer).character; var playerclr = ColorCheck(playercolor); GameObject playericon; playericon = DetermineColorEnd(playerclr, playertype); var playerlabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); var winlabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); playerlabel.transform.parent = GameObject.Find ("UI Root").transform; playericon.transform.parent = GameObject.Find ("UI Root").transform; winlabel.transform.parent = GameObject.Find ("UI Root").transform; playerlabel.transform.localScale = new Vector3(1, 1, 1); playericon.transform.localScale = new Vector3(300,300,1); winlabel.transform.localScale = new Vector3(1,1,1); playerlabel.transform.localPosition = new Vector2(-400, 350+(-500)); playericon.transform.localPosition = new Vector2(-400, 350+(-300)); winlabel.transform.localPosition = new Vector2(-400, 350+(-100)); var playertext = playerlabel.GetComponent<UILabel>(); var wintext = winlabel.GetComponent<UILabel>(); playertext.text = playername; wintext.text = "WINNER!"; } else { var playername = infoscript.GetPlayerOptions(currplayers[i]).username; var playercolor = infoscript.GetPlayerOptions(currplayers[i]).style; var playertype = infoscript.GetPlayerOptions(currplayers[i]).character; var playerclr = ColorCheck(playercolor); GameObject playericon; playericon = DetermineColor(playerclr, playertype); var playerlabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); playerlabel.transform.parent = GameObject.Find ("UI Root").transform; playericon.transform.parent = GameObject.Find ("UI Root").transform; playerlabel.transform.localScale = new Vector3(1f, 1f, 1); playericon.transform.localScale = new Vector3(100,100,1); playerlabel.transform.localPosition = new Vector2(200, 150+(-200 * gonethrough)); playericon.transform.localPosition = new Vector2(400, 150+(-200 * gonethrough)); var playertext = playerlabel.GetComponent<UILabel>(); playertext.text = playername; gonethrough++; } } } }
void Start() { infoscript = PlayerServerInfo.Instance; }
void Start() { infoscript = PlayerServerInfo.Instance; if(Network.peerType == NetworkPeerType.Disconnected) { //Check if a player is hosting or joining and execute the appropriate action if(infoscript.choice == "Host") { Network.InitializeServer(20, connectionPort, !Network.HavePublicAddress()); MasterServer.RegisterHost(typeName, infoscript.servername, "Lobby"); } else if(infoscript.choice == "Find") { Network.Connect(infoscript.chosenHost); } } if (Network.peerType == NetworkPeerType.Server) { MasterServer.updateRate = 2; GameObject playBtn = (GameObject)Instantiate(Resources.Load("PlayButton")); playBtn.transform.parent = GameObject.Find("UI Root LobbyArena").transform; playBtn.transform.localScale = new Vector3(0.5f, 0.5f, 1); playBtn.transform.localPosition = new Vector2(-545f, -321f); UIEventListener.Get(playBtn).onClick += PlayButton; //readyIcons[0].GetComponent<UISprite>().enabled = true; } //TODO: Change to NGUITOOLS.ADDCHILD GameObject disconBtn = (GameObject)Instantiate(Resources.Load("Disconnect")); disconBtn.transform.parent = GameObject.Find("UI Root LobbyArena").transform; disconBtn.transform.localScale = new Vector3(0.5f, 0.5f, 1); disconBtn.transform.localPosition = new Vector2(557.3703f, -321.5379f); UIEventListener.Get(disconBtn).onClick += DisconnectButton; //TODO: Change to NGUITOOLS.ADDCHILD GameObject readyBtn = (GameObject)Instantiate(Resources.Load("Ready")); readyBtn.transform.parent = GameObject.Find("UI Root LobbyArena").transform; readyBtn.transform.localScale = new Vector3(0.5f, 0.5f, 1); readyBtn.transform.localPosition = new Vector3(392.9831f, -321.5379f); UIEventListener.Get(readyBtn).onClick += ReadyButton; GameInput.instance.UseCustomCursor(); }
void Awake() { psinfo = PlayerServerInfo.Instance; Part2.SetActive(false); }
void Awake(){ charscript = GameObject.Find("CharSelect").GetComponent<CharSelectScript>(); infoscript = PlayerServerInfo.Instance; buttcolor = GetComponent<UIButtonColor>(); }
//Uses psinfo to generate player score grid. public void Initialize(PlayerServerInfo psInfo, float lives){ this.psInfo = psInfo; foreach(NetworkPlayer player in psInfo.players){ GameObject livesUI = NGUITools.AddChild(livesGrid.gameObject, PlayerLivesPrefab) as GameObject; livesUI.transform.localEulerAngles = new Vector3(0f, 0f, 3f); GameObject childLabel = livesUI.transform.GetChild(0).gameObject; childLabel.GetComponent<UILabel>().text = lives.ToString(); GameObject playeravatar = childLabel.transform.GetChild(0).gameObject; var playertype = ColorCheck(psInfo.GetPlayerOptions(player).style); var playerchar = psInfo.GetPlayerOptions(player).character; DetermineColor(playertype, playerchar, playeravatar); entry.Add(player, livesUI); } }
void Awake(){ SessionManager sessionManager = SessionManager.Instance; psInfo = sessionManager.psInfo; hudTools = GetComponent<HUDTools>(); }