Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
	//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);
		}
	}
Exemplo n.º 4
0
 public void OnPlayerJoin(Session session, PlayerServerInfo player)
 {
     if (id2LocalId.ContainsKey(player.id))
     {
         return;
     }
     id2LocalId[player.id]   = curLocalId;
     playerInfos[curLocalId] = player;
     sessions[curLocalId]    = session;
     curLocalId++;
 }
Exemplo n.º 5
0
	//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);
		}
	}
Exemplo n.º 6
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";
        }
	}
Exemplo n.º 8
0
        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;
	}
Exemplo n.º 10
0
	//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;
		}
		

	}
Exemplo n.º 11
0
	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++;



			}


		
		}

	}
	}
Exemplo n.º 12
0
    void Start()
    {
		infoscript = PlayerServerInfo.Instance;
    }	
Exemplo n.º 13
0
	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();
	}
Exemplo n.º 14
0
    void Awake()
    {
		psinfo = PlayerServerInfo.Instance;
        Part2.SetActive(false);
    }
Exemplo n.º 15
0
	void Awake(){
        charscript = GameObject.Find("CharSelect").GetComponent<CharSelectScript>();
		infoscript = PlayerServerInfo.Instance;
		buttcolor = GetComponent<UIButtonColor>();
	}
Exemplo n.º 16
0
	//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);
		}
	}
Exemplo n.º 17
0
	void Awake(){
		SessionManager sessionManager = SessionManager.Instance;
		psInfo = sessionManager.psInfo;
		hudTools = GetComponent<HUDTools>();
	}