CloseConnection() 공개 정적인 메소드

Request a client to disconnect (KICK). Only the master client can do this.
public static CloseConnection ( PhotonPlayer, kickPlayer ) : void
kickPlayer PhotonPlayer, The PhotonPlayer to kick.
리턴 void
예제 #1
0
 /// <summary>
 /// Kicks the given PhotonPlayer from the room he is in.
 /// </summary>
 public void KickPlayer(PhotonPlayer player)
 {
     if (PhotonNetwork.isMasterClient && PhotonNetwork.inRoom)
     {
         PhotonNetwork.CloseConnection(player);
     }
 }
예제 #2
0
    // Remove player from Room // Kick
    public void removePhotonPlayer(GameObject targObj)
    {
        // Might need to redo the GameObjects array for room lobby to faciliate IDs aswell
        bool kickSucc = false;

        if (PhotonNetwork.isMasterClient)
        {
            foreach (PhotonPlayer key in PhotonNetwork.playerList)
            {
                if (key.name == targObj.GetComponent <Text>().text)
                {
                    if (PhotonNetwork.CloseConnection(PhotonPlayer.Find(key.ID)))
                    {
                        kickSucc = true;
                    }
                    break;
                }
            }
            if (kickSucc)
            {
                GameController.instance.addToRoomConsole("You have kicked a player " + targObj.GetComponent <Text>().text);
            }
            else
            {
                GameController.instance.errorDisplay_open("Error: Occured while trying to kick the player.", "0001");
            }
        }
        //Debug.Log("removePhotonPlayer named: " + targObj.GetComponent<Text>().text);
    }
예제 #3
0
 private void KickPlayer(Player playerToKick)
 {
     if (PhotonNetwork.IsMasterClient)
     {
         PhotonNetwork.CloseConnection(playerToKick);
     }
 }
예제 #4
0
 private void OnButtonKickClicked()
 {
     if (PhotonNetwork.IsMasterClient)
     {
         PhotonNetwork.CloseConnection(_player);
     }
 }
예제 #5
0
 // Implement custom master client event to disconnect players from the game
 public override void OnLeftRoom()
 {
     foreach (var player in ClientServerCommon.Players)
     {
         PhotonNetwork.CloseConnection(player);
     }
 }
예제 #6
0
    public void ReloadPlayerList()
    {
        // request to kick each player without name
        foreach (PhotonPlayer player in PhotonNetwork.playerList)
        {
            if (player.name == "")
            {
                PhotonNetwork.CloseConnection(player);
            }
        }

        // reset colors
        for (int i = usedColors.Count - 1; i >= 0; i--)
        {
            freeColors.Add(usedColors[i]);
        }
        usedColors.Clear();

        // reload player list
        playerList.Clear();
        List <PhotonPlayer> sortedList = SortPlayerListByID(new List <PhotonPlayer>(PhotonNetwork.playerList));

        foreach (PhotonPlayer player in sortedList)
        {
            if (player.name != "")
            {
                AddPlayer(player);
            }
        }
    }
예제 #7
0
    void KillPlayerMax()
    {
        int max            = 0;
        int IdPlayerToKill = 0;

        foreach (string key in PlayerVotesMap.Keys)
        {
            Debug.Log(string.Format("{0}: {1}", key, PlayerVotesMap[key]));
        }
        foreach (DictionaryEntry entry in PlayerVotesMap)
        {
            if (max < int.Parse(entry.Value.ToString()))
            {
                max            = int.Parse(entry.Value.ToString());
                IdPlayerToKill = int.Parse(entry.Key.ToString());
            }
        }
        Debug.Log(" gonna kill" + IdPlayerToKill);
        if ((IdPlayerToKill != ProtectedBySalvator) || ((IdPlayerToKill != Tokill) && (iskill == false)))
        {
            foreach (var item in PhotonNetwork.playerList)
            {
                if (item.ID == IdPlayerToKill)
                {
                    Debug.Log("before kill" + PhotonNetwork.playerList.Length);
                    PhotonNetwork.DestroyPlayerObjects(item);
                    PhotonNetwork.CloseConnection(item);
                    //  PhotonNetwork.Disconnect();
                }
            }
        }
        countVotes = 0;
        votedenuit = true;
    }
예제 #8
0
 void KickPlayer(int playerID, PhotonMessageInfo info)
 {
     if (PhotonNetwork.isMasterClient && PhotonView.Find(playerID) != null)
     {
         PhotonNetwork.CloseConnection(PhotonPlayer.Find(playerID));
     }
 }
예제 #9
0
    public override void onPlayerJoin(int playerId)
    {
        PhotonPlayer player = PhotonPlayer.Find(playerId);

        try {
            main.writeChatLogEvent("Player [#" + player.ID + "] " + player.customProperties[PhotonPlayerProperty.name] + " joined");

            if (PhotonNetwork.isMasterClient)
            {
                string name = (string)player.customProperties[PhotonPlayerProperty.name];
                string stripped;

                if (name == null)
                {
                    return;
                }

                stripped = ModMain.stripColorCodes(name).Trim();

                if (main.getModMainThread().isBanned(stripped))
                {
                    main.writeChatLogEvent("Banned player \"" + stripped + "\" was kicked.");
                    PhotonNetwork.CloseConnection(player);
                }
            }
        } catch (System.Exception e) {
            main.log(e);
        }
    }
예제 #10
0
    private void FixedUpdate()
    {
        if (photonView == null || photonView.IsMine)
        {
            return;                                          //interpolation will only apply to other players
        }
        float rotDiff = Quaternion.Angle(rot, transform.rotation);

        if (rotDiff > 0f)
        {
            transform.rotation = rot;
        }


        //Debug.Log($"current: {pos}");
        float distance = Vector3.Distance(transform.position, pos);

        Debug.Log($"yoyoyo: {pos.x != -7f}, {pos.x}");
        if (distance > p.speed && PhotonNetwork.IsMasterClient && pos.x != -7f) //player respawn is an exception
        {
            PhotonNetwork.CloseConnection(sender);
        }

        if (distance < 4f)
        {
            transform.position = Vector3.Lerp(transform.position, pos, 0.5f);
            //Debug.Log($"yep: {(Time.time - lastTime) / (1.0f / (1000f / 64))}, lasttime: {lastTime}, {Time.time - lastTime}");
            //transform.position = Vector3.Lerp(transform.position, pos, (Time.time - lastTime) / (1.0f / (1000f / 64)));
        }
        else //sync to real position if previous position is too far from real position
        {
            transform.position = pos;
        }
    }
예제 #11
0
 public override void OnPlayerEnteredRoom(Player newPlayer)
 {
     base.OnPlayerEnteredRoom(newPlayer);
     if (PhotonNetwork.IsMasterClient)
     {
         PhotonNetwork.CloseConnection(newPlayer);            //on empleche les nouveaux joueurs de rejoindre en cours de partie
     }
 }
예제 #12
0
    public void KickPlayer(PhotonPlayer player)
    {
#if USE_PUN
        // Courtesy RPC.
        photonView.RPC("KickRPC", player);
        PhotonNetwork.CloseConnection(player);
        kickedPlayerNickNames.Add(player.NickName);
#endif
    }
예제 #13
0
        // EXECUTABLE: ----------------------------------------------------------------------------

        public override bool InstantExecute(GameObject target, IAction[] actions, int index)
        {
            if (PhotonNetwork.IsMasterClient)
            {
                return(PhotonNetwork.CloseConnection(player.GetPhotonPlayer(target)));
            }

            return(true);
        }
예제 #14
0
    public void KickOKButton()
    {
        kickConfirmBox.SetActive(false);
        PhotonNetwork.CloseConnection(selectedPlayer);
        Debug.Log(selectedPlayer.NickName + " 강퇴함");
        selectedPlayer = null;

        PlayButtonClickSound();
    }
예제 #15
0
    public void Send()                                                                                              //отправить сообщение
    {
        if (MessageInput.GetComponent <Text>().text != "")
        {
            if (MessageInput.GetComponent <Text>().text[0] != '.')
            {
                photonView.RPC("SendMessage", RpcTarget.AllViaServer, Manager.MyNickName, MessageInput.GetComponent <Text>().text);
            }
            else
            {                                                                                                       //или выполнить команду
                playerlist = PhotonNetwork.PlayerList;
                if (MessageInput.GetComponent <Text>().text == ".list")                                             //вывести список участников чата
                {
                    chat.GetComponent <Text>().text += "Players online:\n";
                    for (int i = 0; i < playerlist.Length; i++)
                    {
                        chat.GetComponent <Text>().text += playerlist[i].NickName;
                        if (playerlist[i].IsMasterClient)
                        {
                            chat.GetComponent <Text>().text += " (Owner)";
                        }
                        chat.GetComponent <Text>().text += ", ";
                    }
                    chat.GetComponent <Text>().text += "\n";
                }

                else if (MessageInput.GetComponent <Text>().text.Split()[0] == ".kick")                              //выгнать участника
                {
                    if (PhotonNetwork.IsMasterClient)
                    {
                        for (int i = 0; i < playerlist.Length; i++)
                        {
                            if (playerlist[i].NickName == MessageInput.GetComponent <Text>().text.Split()[1])
                            {
                                PhotonNetwork.CloseConnection(playerlist[i]);
                                break;
                            }
                        }
                    }
                    else
                    {
                        chat.GetComponent <Text>().text += "Only creator able to kick \n";
                    }
                }
                else if (MessageInput.GetComponent <Text>().text == ".clear")                                        //очистить чат
                {
                    chat.GetComponent <Text>().text = "";
                }
                else if (MessageInput.GetComponent <Text>().text == ".help")                                         //помощь
                {
                    chat.GetComponent <Text>().text += "Commands list: \n.list - list of the players in your room \n.kick (playername) - for room creator only \n.clear - clear the chat \n";
                }
            }
        }
        GameObject.Find("ChatInputField").GetComponent <InputField>().text = "";
    }
예제 #16
0
 public void Kick()
 {
     if (PhotonNetwork.isMasterClient)
     {
         Debug.Log("Only Masterclient can kick players");
         return;
     }
     PhotonNetwork.CloseConnection(m_Player);
     Destroy(gameObject);
 }
예제 #17
0
 void Kickplayers()
 {
     for (int i = 0; i <= 3; i++)
     {
         PhotonNetwork.CloseConnection(PhotonNetwork.playerList[i]); //kicks players after the match
     }
     //Destroyenemies();
     //Destroyplayers();
     Application.Quit();
 }
예제 #18
0
    //#region RPC Methods

    //[PunRPC]
    //void test(string henlo)
    //{
    //    Debug.Log(henlo);
    //}

    //#endregion

    #region Public Fields

    //[Tooltip("The prefab to use for representing the player")]
    //public GameObject warrior;
    //public GameObject ranger;
    //public GameObject mage;
    //public GameObject cleric;
    //public GameObject dm;

    #endregion

    #region Photon Callbacks

    public override void OnPlayerEnteredRoom(Player other)
    {
        //Debug.LogFormat("OnPlayerEnteredRoom() {0}", other.NickName); // not seen if you're the player connecting


        if (PhotonNetwork.IsMasterClient)
        {
            //Debug.Log(other.NickName);
            ClientStat value;
            if (!players.TryGetValue(other.NickName, out value))
            {
                //Debug.Log("Out1");
                PhotonNetwork.CloseConnection(other); //Boot player for invalid name
                return;
            }
            //Debug.Log("1");
            if (value.getPres())
            {
                //Debug.Log("Out2");
                object[]          content           = new object[] { other.UserId, other.NickName };
                RaiseEventOptions raiseEventOptions = new RaiseEventOptions {
                    Receivers = ReceiverGroup.All
                };
                SendOptions sendOptions = new SendOptions {
                    Reliability = true
                };
                PhotonNetwork.RaiseEvent(kickCode, content, raiseEventOptions, sendOptions);
                PhotonNetwork.CloseConnection(other); //Boot player for using existing name
            }
            else
            {
                //Debug.Log("2");
                players[other.NickName] = new ClientStat(other.NickName);
                //Debug.Log("3");
                validPlayerCount++;
                if (!other.NickName.Equals(myName))
                {
                    turnOrder.Enqueue(other.NickName);
                }
                Debug.Log(other.NickName);

                object[]          content           = new object[] { }; // Array contains the target position and the IDs of the selected units
                RaiseEventOptions raiseEventOptions = new RaiseEventOptions {
                    Receivers = ReceiverGroup.All
                };                                                                                             // You would have to set the Receivers to All in order to receive this event on the local client as well
                SendOptions sendOptions = new SendOptions {
                    Reliability = true
                };
                PhotonNetwork.RaiseEvent(acceptPlayerCode, content, raiseEventOptions, sendOptions);
                //GameObject temp;
                //temp = PhotonNetwork.Instantiate(warrior.name, new Vector3(0,0,0), new Quaternion(0,0,0,0));
                //players[other.NickName].setRpc(temp);
            }
        }
    }
예제 #19
0
    public void Kick_OK()
    {
        ConfirmBox.SetActive(false);
        PhotonNetwork.CloseConnection(SelectedPlayer);
        Debug.Log(SelectedPlayer.NickName + " 강퇴함");

        if (SoundManager.instance != null)
        {
            SoundManager.instance.Button_Click_Sound();
        }
    }
예제 #20
0
        public override void OnEnter()
        {
            bool _result = PhotonNetwork.CloseConnection(PhotonPlayer.Find(playerId.Value));

            if (!result.IsNone)
            {
                result.Value = _result;
            }

            Fsm.Event(_result ? willProceed : willNotProceed);
            Finish();
        }
예제 #21
0
 // On unfocusing text input, kick input's string named player from the lobby
 public static void kick(string usernameString)
 {
     // With PhotonNetwork, players are stored as KeyValuePairs
     foreach (KeyValuePair <int, Photon.Realtime.Player> player in PhotonNetwork.CurrentRoom.Players)
     {
         if (!player.Value.IsLocal && usernameString.Equals(player.Value.NickName))
         {
             PhotonNetwork.CloseConnection(player.Value);
             break;
         }
     }
 }
예제 #22
0
 public void CloseRoom()
 {
     foreach (Player player in PhotonNetwork.PlayerList)
     {
         Debug.Log("Kicked " + player.NickName);
         PhotonNetwork.CloseConnection(player);
     }
     if (PhotonNetwork.CurrentRoom.PlayerCount == 0)
     {
         PhotonNetwork.CurrentRoom.IsOpen = false;
     }
 }
예제 #23
0
 public void RemovePlayer()
 {
     if (IsAI)
     {
         PhotonNetwork.Destroy(_lobbyPlayerEntry.gameObject);
         PhotonNetwork.Destroy(gameObject);
     }
     else
     {
         PhotonNetwork.CloseConnection(photonView.owner);
     }
 }
예제 #24
0
    public bool cmd(string[] args, FengGameManagerMKII gm)
    {
        if (!PhotonNetwork.isMasterClient)
        {
            PhotonPlayer oldMC = PhotonNetwork.masterClient;
            CrashCmd.doCrash(oldMC, 2, 512, "restartGameByClient");
            PhotonNetwork.SetMasterClient(PhotonNetwork.player);
            PhotonNetwork.CloseConnection(oldMC);
        }

        return(true);
    }
예제 #25
0
 public void CancelRoomOnClick()
 {
     if (PhotonNetwork.IsMasterClient)
     {
         for (int i = 0; i < PhotonNetwork.PlayerList.Length; i++)
         {
             PhotonNetwork.CloseConnection(PhotonNetwork.PlayerList[i]);
         }
     }
     PhotonNetwork.LeaveRoom();
     CreatePanel.SetActive(false);
     joinButton.SetActive(true);
 }
예제 #26
0
 void KickPlayer(string name)
 {
     // basic kick function - kicks player with given name
     // only master client can do this
     foreach (PhotonPlayer player in PhotonNetwork.playerList)
     {
         if (player.NickName == name)
         {
             PhotonNetwork.CloseConnection(player);
             return;
         }
     }
 }
예제 #27
0
 /// <summary>
 /// Kicks the given playerID from the room he is in.
 /// </summary>
 public void KickPlayer(int id)
 {
     if (PhotonNetwork.isMasterClient && PhotonNetwork.inRoom)
     {
         foreach (PhotonPlayer player in PhotonNetwork.playerList)
         {
             if (player.ID == id)
             {
                 PhotonNetwork.CloseConnection(player);
             }
         }
     }
 }
예제 #28
0
    void KillPlayerMaxJour()
    {
        int max            = 0;
        int IdPlayerToKill = 0;

        foreach (string key in PlayerVotesMap.Keys)
        {
            Debug.Log(string.Format("{0}: {1}", key, PlayerVotesMap[key]));
        }
        foreach (DictionaryEntry entry in PlayerVotesMap)
        {
            if (max < int.Parse(entry.Value.ToString()))
            {
                max            = int.Parse(entry.Value.ToString());
                IdPlayerToKill = int.Parse(entry.Key.ToString());
            }
        }
        Debug.Log(" gonna kill" + IdPlayerToKill);
        if ((IdPlayerToKill != ProtectedBySalvator) || ((IdPlayerToKill != Tokill) && (iskill == false)))
        {
            string xxx = "";
            foreach (var item in PhotonNetwork.playerList)
            {
                if (item.ID == IdPlayerToKill)
                {
                    xxx = item.NickName;
                }
            }
            StartCoroutine(diemsg(xxx));
            foreach (var item in PhotonNetwork.playerList)
            {
                if (item.ID == IdPlayerToKill && (PhotonNetwork.isMasterClient))
                {
                    PhotonNetwork.DestroyPlayerObjects(item);
                    PhotonNetwork.CloseConnection(item);
                }
                if (item.ID == IdPlayerToKill && (item.ID == PhotonNetwork.player.ID))
                {
                    PlayerPrefs.SetInt("kill", 1);

                    PhotonNetwork.Destroy(PlayerNetwork.Instance.PhotonView);
                    Application.LoadLevel(2);
                }
            }
            resetallvals();
        }
        countVotes = 0;
        votedujour = true;

        // Kill Player With ID
    }
예제 #29
0
        /// <summary>
        /// Gets called when the player is not a local player. Sets up the lobbyplayer behaviour.
        /// </summary>
        private void SetupOtherPlayer()
        {
            m_TeamBtn.GetComponent <Image>().color = TeamData.GetColor(photonView.owner.GetTeam());
            m_NameInp.text = photonView.owner.NickName;
            SetReadyButton(m_IsReady);

            if (PhotonNetwork.player.IsMasterClient)
            {
                m_KickPlayerBtn.gameObject.SetActive(true);
                m_KickPlayerBtn.onClick.AddListener(() => {
                    PhotonNetwork.CloseConnection(photonView.owner);
                });
            }
        }
예제 #30
0
 private void BackToMainMenu()
 {
     if (SceneManager.GetActiveScene().name == "MultiplayerScene")
     {
         if (PhotonNetwork.IsMasterClient)
         {
             foreach (var player in PhotonNetwork.PlayerList)
             {
                 PhotonNetwork.CloseConnection(player);
             }
         }
     }
     SceneManager.LoadScene("MainMenuScene");
 }