/* * This file is part of the Unity networking tutorial by M2H (http://www.M2H.nl) * The original author of this code is Mike Hergaarden, even though some small parts * are copied from the Unity tutorials/manuals. * Feel free to use this code for your own projects, drop us a line if you made something exciting! */ #pragma strict var skin : GUISkin; //static var newRecordMessage : String = ""; private var displayingHighscore : boolean = false; private var highscoreText : GUIText; private var playerName : String = ""; private var scoreText : String = "Loading scores"; private var hidestats : boolean = true; private var scoreBoardHeight :int = 60; private var gameSetupScript : GameSetup; function Awake(){ gameSetupScript = GetComponent(GameSetup); highscoreText = GetComponent(GUIText); highscoreText.enabled=false; playerName= PlayerPrefs.GetString("playerName"); } function OnGUI () { GUI.skin = skin; scoreText = "Scoreboard:\n"; for(var entry : FPSPlayerNode in gameSetupScript.playerList){ scoreText += entry.playerName+" \t"+entry.kills+" kills "+entry.deaths+" deaths\n"; } GUILayout.BeginArea (Rect ((Screen.width-185),20,175,scoreBoardHeight)); GUILayout.Box(scoreText); GUILayout.EndArea (); } function LocalPlayerHasKilled(){ var kills : int =0; var deaths : int = 0; for (var playerInstance : FPSPlayerNode in gameSetupScript.playerList) { if (Network.player == playerInstance.networkPlayer) { kills = playerInstance.kills; deaths = playerInstance.deaths; break; } } kills++; //Overwrite the data of other players with the new correct score networkView.RPC("UpdateScore",RPCMode.All, Network.player, kills, deaths); } function LocalPlayerDied(){ var kills : int =0; var deaths : int = 0; for (var playerInstance : FPSPlayerNode in gameSetupScript.playerList) { if (Network.player == playerInstance.networkPlayer) { kills = playerInstance.kills; deaths = playerInstance.deaths; break; } } deaths++; //Overwrite with new correct score networkView.RPC("UpdateScore",RPCMode.All, Network.player, kills, deaths); } @RPC function UpdateScore(player : NetworkPlayer, kills : int, deaths : int){ Debug.Log((Network.player==player)+"=local "+kills+"kills & deaths="+deaths); var found : boolean = false; for (var playerInstance : FPSPlayerNode in gameSetupScript.playerList) { if (player == playerInstance.networkPlayer) { playerInstance.kills=kills; playerInstance.deaths=deaths; found=true; break; } } if(!found){ Debug.LogError("Could not find network player "+player+" in the gamesetup playerlist!"); } scoreBoardHeight = gameSetupScript.playerList.Count*15+40; }