/* * Overrides the built in OnServerAddPlayer, to instead use a custom script that allows us to select * a character, instead of using the single built-in playerPrefab tab in the default net manager. */ public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId, NetworkReader extra) { this.playerSpawnMethod = PlayerSpawnMethod.RoundRobin; // Obtain the message stored in the server containing the selected player character ChosenCharacter message = extra.ReadMessage<ChosenCharacter>(); // Instantiate the selected player model based on the character player selected var playerFab = (GameObject)Instantiate(prefabs[message.classIndex], Vector2.zero, Quaternion.identity); // Get the ChangePlayerIdentity componenent so that we can set the player's tag into a unique one ChangePlayerIdentity playerTag = playerFab.GetComponent<ChangePlayerIdentity>(); playerTag.playerTag = "Player" + (message.classIndex + 1); if (playerTag.playerTag == "Player1") { playerTag.playerName = "Finn"; } else if (playerTag.playerTag == "Player2") { playerTag.playerName = "Spike"; } else if (playerTag.playerTag == "Player3") { playerTag.playerName = "Lizz"; } else if (playerTag.playerTag == "Player4") { playerTag.playerName = "Zap"; } // Add the player, and spawn it! NetworkServer.AddPlayerForConnection(conn, playerFab, playerControllerId); NetworkServer.Spawn(playerFab); currentPrefabSpawning = playerFab; }
public void SetChosenCharacter(bool isPlayer1, ChosenCharacter chosenCharacter) { if (isPlayer1) { player1ChosenCharacter = chosenCharacter; } else { player2ChosenCharacter = chosenCharacter; } }
private void DialogOnResponse(object?sender, DialogResponseEventArgs e) { if (e.DialogButton == SampSharp.GameMode.Definitions.DialogButton.Right) { _player.SendClientMessage(Color.LightCoral, "Wyszedłeś z wyboru postaci. Zapraszamy ponownie!"); _player.Kick(); } else { ChosenCharacter?.Invoke(_player, EventArgs.Empty); } }
/* * When a new client joins a host lobby, add this client to the player to the * player list of game objects in the server. * */ public override void OnClientConnect(NetworkConnection conn) { ChosenCharacter character = new ChosenCharacter { classIndex = chosenPlayer }; IntegerMessage msg = new IntegerMessage(character.classIndex); ClientScene.AddPlayer(conn, 0, msg); GetComponent<NetworkManagerHUD>().enabled = false; showPlayerButtons = false; }