private void RequestUpdatePlayer(NetworkPlayer player) { C2Request request; request = new C2Request(C2MessageType.Request_UpdateAlive); request.putData("NetworkPlayer" , player); this.SendRequest(request); }
private void RequestUpdatePlayer(NetworkPlayer player , string item) { C2Request request; switch (item){ case "Coin": request = new C2Request(C2MessageType.Request_UpdateCoin); request.putData("NetworkPlayer" , player); this.SendRequest(request); break; case "EnergyBlock": request = new C2Request(C2MessageType.Request_UpdateEnergy); request.putData("NetworkPlayer" , player); this.SendRequest(request); break; case "Accelerator": request = new C2Request(C2MessageType.Request_UpdateSpeed); request.putData("NetworkPlayer" , player); this.SendRequest(request); break; case "Shield": request = new C2Request(C2MessageType.Request_UpdateShield); request.putData("NetworkPlayer" , player); this.SendRequest(request); break; default: break; } }
private void RequestInput(float VInput , float HInput) { C2Request request = new C2Request(C2MessageType.Request_Input); request.putData("VInput",VInput); request.putData("HInput",HInput); this.SendRequest(request); }
protected override void HandleRequest(C2Request request) { string type = request.Type; NetworkPlayer player = (NetworkPlayer)request.getData("NetworkPlayer"); switch (type){ case C2MessageType.Request_UpdateCoin: playerList[player].updatePlayerCoin(); break; case C2MessageType.Request_UpdateEnergy: playerList[player].updatePlayerEnergy(); break; case C2MessageType.Request_UpdateSpeed: playerList[player].updatePlayerSpeed(); break; case C2MessageType.Request_UpdateShield: playerList[player].updatePlayerShield(); break; case C2MessageType.Request_UpdateAlive: playerList[player].updatePlayerAlive(); break; case C2MessageType.Request_PlayerStatus: C2Notification notification = new C2Notification(C2MessageType.Notification_PlayerStatus); notification.putData("NetworkPlayer" , player); notification.putData("Player" , playerList[player]); this.SendNotification(notification); break; default: break; } }
protected override void HandleRequest(C2Request request) { foreach(C2Port topPort in this.tops) { topPort.PassRequest(request); } }
public void RequestPlayerStatus(NetworkPlayer player) { //request for lasted data C2Request request = new C2Request(C2MessageType.Request_PlayerStatus); request.putData("NetworkPlayer" , player); this.HandleRequest(request); }
void RequestSpawnItem(Vector3 spawnPos , string item) { C2Request request= new C2Request("Spawn" + item); request.putData("x",spawnPos.x); request.putData("y",spawnPos.y); request.putData("z",spawnPos.z); this.SendRequest(request); }
protected override void HandleRequest(C2Request request) { string type = request.Type; if(type.Equals("SpawnBullet")) { Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z")); SpawnCollidable(bulletPrefab, spawnPos); } }
private void RequestMovement(float VInput, float HInput) { float liftForce = VInput * Time.deltaTime * upForce; float rotation = HInput * Time.deltaTime; C2Request request = new C2Request(C2MessageType.Request_Movement); request.putData("VForce", liftForce); request.putData("Rotation", rotation); this.SendRequest(request); }
public void SendClientAction(float VInput, float HInput , NetworkPlayer player) { C2Request request = new C2Request(C2MessageType.Request_ClientAction); request.putData("VInput", VInput); request.putData("HInput", HInput); request.putData("NetworkPlayer" , player); this.HandleRequest(request); }
protected override void HandleRequest(C2Request request) { string type = request.Type; if(type.Equals(C2MessageType.Request_SpawnStone)) { Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z")); SpawnCollidable(stonePrefab, spawnPos); } }
protected override void HandleRequest(C2Request request) { if (Network.isClient && (owner == Network.player)) { string type = request.Type; if (currentPlayer.Alive == true && type.Equals(C2MessageType.Request_Movement)) { float liftForce = (float)request.getData("VForce"); Vector3 upVec = transform.position; upVec.Normalize(); if (currentPlayer.Energy > 0){ constantForce.force = upVec * liftForce * 700; currentPlayer.Energy -= liftForce; } else{ constantForce.force = Vector3.zero; currentPlayer.Energy = 0; } float rotation = (float)request.getData("Rotation"); transform.RotateAround(transform.position, rotation); } } else if (Network.isServer){ string type = request.Type; if ( type.Equals(C2MessageType.Request_Movement)) { NetworkPlayer nid = (NetworkPlayer)request.getData("NetworkPlayer"); if (nid == owner){ float liftForce = (float)request.getData("VForce"); Vector3 upVec = transform.position; currentPlayer = ((Players)GameObject.Find("Players").GetComponent(typeof(Players))).playerList[nid]; if (currentPlayer.Alive == false)return; upVec.Normalize(); if (currentPlayer.Energy > 0){ constantForce.force = upVec * liftForce * 700; currentPlayer.Energy -= liftForce; } else{ constantForce.force = Vector3.zero; currentPlayer.Energy = 0; } float rotation = (float)request.getData("Rotation"); transform.RotateAround(transform.position, rotation); } } } }
//Obviously the GUI is for both client&servers (mixed!) protected override void HandleRequest(C2Request request) { string type = request.Type; if(type.Equals("StartServer")) { Network.InitializeServer(32, connectPort , false); } else if(type.Equals("CloseServer")) { Network.Disconnect(200); } }
protected override void HandleRequest(C2Request request) { string type = request.Type; if (Network.peerType == NetworkPeerType.Server){ if(type.Equals("SpawnCoin")) { Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z")); SpawnCollidable(coinPrefab, spawnPos); } } }
protected override void HandleRequest(C2Request request) { if (request.Type.Equals(C2MessageType.Request_ClientAction)){ C2Notification notification = new C2Notification(C2MessageType.Notification_Input); notification.putData("VInput", (float)request.getData("VInput")); notification.putData("HInput", (float)request.getData("HInput")); notification.putData("NetworkPlayer" , (NetworkPlayer)request.getData("NetworkPlayer")); this.SendNotification(notification); } }
//send request to upper brick through this port public bool PassRequest(C2Request request) { if (this.topBrick == null)return false; if(this.topBrick.AcceptReq(request.Type)) { //Debug.Log(this.topBrick.name + " accepted request " + request.Type + " from " + this.ButtomBrick.name); // this.topBrick.PrintAcceptedReqType(); this.topBrick.SendMessage("HandleRequest",request); return true; } return false; }
//Obviously the GUI is for both client&servers (mixed!) protected override void HandleRequest(C2Request request) { string type = request.Type; if(type.Equals(C2MessageType.Request_ConnectToServer)) { string ConnectToIP = (string)request.getData("IP"); int ConnectPort = (int)request.getData("Port"); Network.Connect(ConnectToIP , ConnectPort); Application.LoadLevel(Application.loadedLevel); } else if(type.Equals(C2MessageType.Request_DisconnectFromServer)) { Network.Disconnect(200); Application.LoadLevel(Application.loadedLevel); } }
void OnGUI() { if (Network.peerType == NetworkPeerType.Disconnected){ //We are currently disconnected: Not a client or host GUILayout.Label("Connection status: Disconnected"); connectToIP = GUILayout.TextField(connectToIP, GUILayout.MinWidth(100)); connectPort = int.Parse(GUILayout.TextField(connectPort.ToString())); GUILayout.BeginVertical(); if (GUILayout.Button ("Connect To Server")) { C2Request request = new C2Request(C2MessageType.Request_ConnectToServer); request.putData("IP" , connectToIP); request.putData("Port" , connectPort); this.SendRequest(request); } GUILayout.EndVertical(); }else{ //We've got a connection(s)! if (Network.peerType == NetworkPeerType.Connecting){ GUILayout.Label("Connection status: Connecting"); } else if (Network.peerType == NetworkPeerType.Client){ GUILayout.Label("Connection status: Client!"); GUILayout.Label("Ping to server: "+Network.GetAveragePing( Network.connections[0] ) ); } if (GUILayout.Button ("Disconnect")) { C2Request request = new C2Request(C2MessageType.Request_DisconnectFromServer); this.SendRequest(request); } } /*if (gameState == LunarLanderGameState.lost) { GUILayout.Label("You Lost!"); if (GUILayout.Button("Try again")) { Application.LoadLevel(Application.loadedLevel); } }*/ //We display the game GUI from the playerscript //It would be nicer to have a seperate script dedicated to the GUI though... }
protected override void HandleRequest(C2Request request) { string type = request.Type; if(type.Equals(C2MessageType.Request_SpawnAccelerator)) { Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z")); SpawnCollidable(acceleratorPrefab, spawnPos); } if(type.Equals(C2MessageType.Request_SpawnEnergyBlock)) { Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z")); SpawnCollidable(energyBlockPrefab, spawnPos); } if(type.Equals(C2MessageType.Request_SpawnShield)) { Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z")); SpawnCollidable(shieldPrefab, spawnPos); } }
protected override void HandleRequest(C2Request request) { foreach(C2Port topPort in this.tops) { if (testConnectionMode){ if (topPort.PassRequest(request)){ Debug.Log(name + " successfully sent request " + request.Type + " to " + topPort.TopBrick.name); } else{ Debug.Log(name + " failed to sent request " + request.Type + " to " + topPort.TopBrick.name); } } else{ topPort.PassRequest(request); } } }
protected void SendRequest(C2Request request) { foreach (C2Port port in this.tops){ if (testConnectionMode){ if (port.PassRequest(request)){ Debug.Log(name + " successfully sent request " + request.Type + " to " + port.TopBrick.name); } else{ if (testConnectionMode) Debug.Log(name + " failed to sent request " + request.Type + " to " + port.TopBrick.name); } } else{ port.PassRequest(request); } } }
// Use this for GUI void OnGUI() { if (Network.peerType == NetworkPeerType.Disconnected){ //We are currently disconnected: Not a client or host GUILayout.Label("Connection status: Disconnected"); GUILayout.BeginVertical(); if (GUILayout.Button ("Start Server")) { //Start a server for 32 clients using the "connectPort" given via the GUI //Ignore the nat for now C2Request request = new C2Request("StartServer"); this.SendRequest(request); //Network.InitializeServer(32, connectPort , false); } GUILayout.EndVertical(); }else{ //We've got a connection(s)! if (Network.peerType == NetworkPeerType.Connecting){ GUILayout.Label("Connection status: Connecting"); } else if (Network.peerType == NetworkPeerType.Server){ GUILayout.Label("Connection status: Server!"); GUILayout.Label("Connections: "+Network.connections.Length); if(Network.connections.Length>=1){ GUILayout.Label("Ping to first player: "+Network.GetAveragePing( Network.connections[0] ) ); } } if (GUILayout.Button ("Close Server")) { C2Request request = new C2Request("CloseServer"); this.SendRequest(request); //Network.Disconnect(200); } } }
protected override void HandleRequest(C2Request request) { foreach(C2Port topPort in this.tops) { topPort.PassRequest(request); } string type = request.Type; switch(type){ case C2MessageType.Request_Input: SendMovement((float)request.getData("VInput") , (float)request.getData("HInput")); break; case C2MessageType.Request_PlayerStatus: networkView.RPC("RequestPlayerStatus" , RPCMode.Server , Network.player); break; default: break; } }
protected abstract void HandleRequest(C2Request request);
// Update is called once per frame void Update() { if (currentPlayer.Alive == true){ if (Network.isClient){ transform.position += transform.forward * Time.deltaTime * (currentPlayer.Speed)/3.0f; currentPlayer.Distance += (currentPlayer.Speed) * Time.deltaTime; float temp = Mathf.Log(currentPlayer.Distance , currentPlayer.Speed)/7.0f; temp = temp > 0 ? temp : 0; if (currentPlayer.Shield - Time.deltaTime > 0){ currentPlayer.Shield -= Time.deltaTime; } else{ currentPlayer.Shield = 0; transform.FindChild("Circle").gameObject.SetActive(false); } if (currentPlayer.Energy > 0){ if (currentPlayer.Speed + temp < Player.MAX_SPEED){ currentPlayer.Speed += temp; } currentPlayer.Energy -= 0.8f; } else{ currentPlayer.Energy = 0; if (currentPlayer.Speed - 0.2f > Mathf.Epsilon){ currentPlayer.Speed -= 0.2f; } else currentPlayer.Speed = 0; } currentPlayer.Score += (int)(100 + 50 * (temp) + 25 * currentPlayer.Coin); //send request to get the latest data C2Request request = new C2Request(C2MessageType.Request_PlayerStatus); this.SendRequest(request); } else if (Network.isServer){ currentPlayer = ((Players)GameObject.Find("Players").GetComponent(typeof(Players))).playerList[owner]; transform.position += transform.forward * Time.deltaTime * (currentPlayer.Speed)/3.0f; currentPlayer.Distance += (currentPlayer.Speed) * Time.deltaTime; //currentPlayer.Shield -= Time.deltaTime; float temp = Mathf.Log(currentPlayer.Distance , currentPlayer.Speed)/7.0f; temp = temp > 0 ? temp : 0; if (currentPlayer.Shield - Time.deltaTime > 0){ currentPlayer.Shield -= Time.deltaTime; } else{ currentPlayer.Shield = 0; } if (currentPlayer.Energy > 0){ if (currentPlayer.Speed + temp < Player.MAX_SPEED){ currentPlayer.Speed += temp; } currentPlayer.Energy -= 0.8f; } else{ currentPlayer.Energy = 0; if (currentPlayer.Speed - 0.2f > Mathf.Epsilon){ currentPlayer.Speed -= 0.2f; } else currentPlayer.Speed = 0; } currentPlayer.Score += (int)(100 + 50 * (temp) + 25 * currentPlayer.Coin); } } }
protected override void HandleRequest(C2Request request) { }