コード例 #1
0
    /*
     * 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;
    }
コード例 #2
0
 public void SetChosenCharacter(bool isPlayer1, ChosenCharacter chosenCharacter)
 {
     if (isPlayer1)
     {
         player1ChosenCharacter = chosenCharacter;
     }
     else
     {
         player2ChosenCharacter = chosenCharacter;
     }
 }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
    /*
     * 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;
    }