public override void OnJoinedRoom() { Vector2 pos; Debug.Log(" You entered a room = " + PhotonNetwork.CurrentRoom.Name); Debug.Log("You Joined a room YourName is " + PhotonNetwork.LocalPlayer.NickName + " PlayersInRoom " + PhotonNetwork.CurrentRoom.PlayerCount); if (PhotonNetwork.CurrentRoom.PlayerCount == 1) { pos = new Vector2(15, 0); } else { pos = new Vector2(-15, 0); } PlayerSpawnData spawn = new PlayerSpawnData(); spawn.playerID = PhotonNetwork.LocalPlayer.UserId; spawn.playerPosition = pos; spawn.char1Health = 100f; spawn.char2Health = 100f; spawn.char3Health = 100f; spawn.playerName = PhotonNetwork.LocalPlayer.NickName; communicationManager.SavePlayerSpawnData(spawn); if (PhotonNetwork.CurrentRoom.PlayerCount == 2) { communicationManager.NotifyGameStarted(); } }
private PlayerSpawnData setPlayerSpawn(NetworkIdentity netId, int index) { PlayerSpawnData playerSpawnData = new PlayerSpawnData(); playerSpawnData.networkIdentity = netId; if (index == 0 || index == 1) { playerSpawnData.team = 1; } else if (index == 2 || index == 3) { playerSpawnData.team = 2; } else { Debug.LogError("invalid index for team assigning"); } if (index % 2 == 0) { playerSpawnData.playerType = PlayerType.human; } else if (index % 2 == 1) { playerSpawnData.playerType = PlayerType.ghost; } else { Debug.LogError("invalid index for player spawn"); } return(playerSpawnData); }
void SpawnPlayer(PlayerSpawnData playerSpawnData) { GameObject go = Instantiate(PlayerPrefab); ClientPlayer player = go.GetComponent <ClientPlayer>(); player.Initialize(playerSpawnData.Id, playerSpawnData.Name); players.Add(playerSpawnData.Id, player); }
private void InitializeWeaponData(PlayerSpawnData data) { var modules = _weaponData.GetData(data.Id); if (modules != null) { data.WeaponModuleIds.AddRange(modules); } }
private List <PlayerSpawnData> PrepareSpawnPositions() { List <PlayerSpawnData> spawnPosisionsList = new List <PlayerSpawnData>(); if (_globalHostPlayerManager.ConnectedPlayers.Count >= 1) { var spawnData = new PlayerSpawnData { Id = _globalHostPlayerManager.ConnectedPlayers[0].ID, X = 0.5f, Y = 0.5f, ItemIds = new List <short>(), WeaponModuleIds = new List <short>() }; spawnPosisionsList.Add(spawnData); } if (_globalHostPlayerManager.ConnectedPlayers.Count >= 2) { var spawnData = new PlayerSpawnData { Id = _globalHostPlayerManager.ConnectedPlayers[1].ID, X = -0.5f, Y = 0.5f, ItemIds = new List <short>(), WeaponModuleIds = new List <short>() }; spawnPosisionsList.Add(spawnData); } if (_globalHostPlayerManager.ConnectedPlayers.Count >= 3) { var spawnData = new PlayerSpawnData { Id = _globalHostPlayerManager.ConnectedPlayers[2].ID, X = 0.5f, Y = -0.5f, ItemIds = new List <short>(), WeaponModuleIds = new List <short>() }; spawnPosisionsList.Add(spawnData); } if (_globalHostPlayerManager.ConnectedPlayers.Count >= 4) { var spawnData = new PlayerSpawnData { Id = _globalHostPlayerManager.ConnectedPlayers[3].ID, X = -0.5f, Y = -0.5f, ItemIds = new List <short>(), WeaponModuleIds = new List <short>() }; spawnPosisionsList.Add(spawnData); } OnDataPrepared?.Invoke(spawnPosisionsList); return(spawnPosisionsList); }
public PlayerSpawnData[] GetAllSpawnData() { var r = new PlayerSpawnData[serverPlayers.Count]; for (int i = 0; i < serverPlayers.Count; i++) { r[i] = serverPlayers[i].GetSpawnData(); } return(r); }
public void SavePlayerSpawnData(PlayerSpawnData spawnData) { spData = spawnData; spData.playerName = spawnData.playerName; spData.char1Health = spawnData.char1Health; spData.char2Health = spawnData.char2Health; spData.char3Health = spawnData.char3Health; //Debug.Log(spawnData.char1Health); multiplayerService.SetLocalPlayerID(PhotonNetwork.LocalPlayer.UserId); multiplayerService.SetCommunicationManager(this); }
private void InitializeInventoryData(PlayerSpawnData data) { var items = _invData.GetData(data.Id); if (items != null) { for (int i = 0; i < items.Count; i++) { data.ItemIds.Add(items[i].itemId); } } }
void PlayerSpawnEventProscess(EventData photonEvent) { PlayerSpawnData spawnData = new PlayerSpawnData(); object[] data = (object[])photonEvent.CustomData; spawnData.playerPosition = (Vector2)data[1]; spawnData.playerID = (string)data[0]; spawnData.char1Health = (float)data[2]; spawnData.char2Health = (float)data[3]; spawnData.char3Health = (float)data[4]; Debug.Log("Spawn Recieved from: " + (string)data[0]); roomManager.AddPlayerToRoom(spawnData.playerID); multiplayerService.SpawnPlayer(spawnData); }
public void NotifyAllAboutPlayerSpawn(PlayerSpawnData spawnData) { //PLAYERSPAWNEVENT //Debug.Log(spawnData.char1Health); object[] content = new object[] { spawnData.playerID, spawnData.playerPosition, spawnData.char1Health, spawnData.char2Health, spawnData.char3Health }; RaiseEventOptions raiseEventOptions = new RaiseEventOptions { Receivers = ReceiverGroup.All }; SendOptions sendOptions = new SendOptions { Reliability = true }; PhotonNetwork.RaiseEvent(PLAYERSPAWNEVENT, content, raiseEventOptions, sendOptions); Debug.Log("Sending SpawnPositions"); }
public override void StartState() { base.StartState(); UIMaster.Instance.UpdateMultiButtonState(UIMultiButton.MultiButtonState.Inactive); foreach (MapSquare square in Object.FindObjectsOfType <MapSquare>()) { if (square.playerSpawn) { spawnSquares.Add(square); interactableSquares.Add(square); square.interactable = MapSquare.Interactable.ActiveChoice; } } spawn = new PlayerSpawnData(); }
private void spawnPlayer(PlayerSpawnData playerSpawnData) { GameObject playerPrefab; switch (playerSpawnData.playerType) { case PlayerType.human: playerPrefab = humanPrefab; break; case PlayerType.ghost: playerPrefab = ghostPrefab; break; default: playerPrefab = null; Debug.LogError("Invalid PlayerType to be spawned."); break; } Vector3 spawnPosition; Quaternion spawnRotation; if (playerSpawnData.team == 1) { spawnPosition = team1SpawnTransform.position; spawnRotation = team1SpawnTransform.rotation; } else { spawnPosition = team2SpawnTransform.position; spawnRotation = team2SpawnTransform.rotation; } GameObject playerObject = Instantiate(playerPrefab, spawnPosition, spawnRotation); playerObject.GetComponent <PlayerNetworkManager>().teamNumber = teamNumber; //set client team number NetworkServer.Spawn(playerObject); if (NetworkServer.ReplacePlayerForConnection(playerSpawnData.networkIdentity.connectionToClient, playerObject)) { NetworkServer.Destroy(playerSpawnData.networkIdentity.gameObject); } }
public void SpawnPlayers(PlayerSpawnData[] _psd) { if (_psd == null || _psd.Length == 0) { return; } for (int i = 0; i < _psd.Length; i++) { PlayerSpawnData spawnData = _psd[i]; GameObject playerObj = Instantiate(playerPrefab); PlayerController playerController = playerObj.GetComponent <PlayerController>(); playerObj.transform.position = spawnPositions[i % spawnPositions.Length].position; playerController.color = spawnData.color; JoystickController joyCon = playerObj.AddComponent <JoystickController>(); playerObjs[i] = playerObj; } }
public void Initialize(Vector3 position, ClientConnection clientConnection) { ClientConnection = clientConnection; Room = clientConnection.Room; Client = clientConnection.Client; ClientConnection.Player = this; Room.ServerPlayers.Add(this); Room.UpdateDatas = new PlayerUpdateData[Room.ServerPlayers.Count]; CurrentUpdateData = new PlayerUpdateData(Client.ID, 0, Vector3.zero, Quaternion.identity); InputTick = Room.ServerTick; Health = 100; PlayerSpawnData[] datas = new PlayerSpawnData[Room.ServerPlayers.Count]; for (int i = 0; i < Room.ServerPlayers.Count; i++) { ServerPlayer p = Room.ServerPlayers[i]; datas[i] = p.GetPlayerSpawnData(); } using (Message m = Message.Create((ushort)Tags.GameStartDataResponse, new GameStartData(datas, Room.ServerTick))) { Client.SendMessage(m, SendMode.Reliable); } }
public void SpawnPlayer(PlayerSpawnData playerSpawnData) { Debug.Log(playerSpawnData.char1Health); playerService.PlayerConnected(playerSpawnData); //cameraService.OnGameStart(); }
public override void Deserialize(NetworkReader reader) { SpawnData = FromByteArray <PlayerSpawnData>(reader.ReadBytesAndSize()); }
public override void UpdateState() { base.UpdateState(); if (!stateFinished) { // If current player has a character spawned, move to next or finish spawn phase if (GameMaster.Instance.currentPlayer.character != null) { if (AllPlayersSpawned()) { UIMaster.Instance.UpdateMultiButtonState(UIMultiButton.MultiButtonState.Ready); return; } // Not all players are spawned, move to the next GameMaster.Instance.currentPlayer = GameMaster.Instance.players[GameMaster.Instance.players.IndexOf(GameMaster.Instance.currentPlayer) + 1]; spawnSquares.Remove(GameMaster.Instance.currentPlayer.character.mapSquare); foreach (MapSquare square in spawnSquares) { interactableSquares.Add(square); square.interactable = MapSquare.Interactable.ActiveChoice; } spawn = new PlayerSpawnData(); } // If we have an interacted square, check first if it was a position or rotation. Get the data, then update the interactable squares // NOTE: This is a huge mess and warrants a larger cleanup if (GameMaster.Instance.interactedSquare != null) { if (spawn.spawnPosition == null) { spawn.spawnPosition = GameMaster.Instance.interactedSquare; foreach (MapSquare square in interactableSquares) { square.interactable = MapSquare.Interactable.Passive; } interactableSquares.Clear(); interactableSquares.Add(spawn.spawnPosition.GetNeighbour(Tools.Direction.East)); interactableSquares.Add(spawn.spawnPosition.GetNeighbour(Tools.Direction.West)); interactableSquares.Add(spawn.spawnPosition.GetNeighbour(Tools.Direction.North)); interactableSquares.Add(spawn.spawnPosition.GetNeighbour(Tools.Direction.South)); foreach (MapSquare square in interactableSquares) { square.interactable = MapSquare.Interactable.ActiveChoice; } } else if (spawn.spawnFacing == null) { spawn.spawnFacing = GameMaster.Instance.interactedSquare; GameMaster.Instance.currentPlayer.SpawnChampion(spawn.spawnPosition, spawn.spawnPosition.GetNeighbourDirection(spawn.spawnFacing)); foreach (MapSquare square in interactableSquares) { square.interactable = MapSquare.Interactable.Passive; } interactableSquares.Clear(); } GameMaster.Instance.interactedSquare = null; } } }