Exemple #1
0
    void Update()
    {
        if (isPlayer && isLive)
        {
            if (proper == PROPER.POLICE)
            {
                SGameMng.I.uiScrp.GetSkill(nhp.ToString());
            }
            Blind();
            if (!bStartup)
            {
                KeyDown();
            }
            else
            {
                KeyDown();
            }

            if (myMove != beforeMove && !bStartup)
            {
                GM.NetworkManager.getInstance.SendMsg(string.Format("MOVE:{0}:{1}:{2}:{3}", myIdx, transform.position.x, transform.position.y, (int)myMove));
                beforeMove = myMove;
            }
            if (Input.GetKeyDown(KeyCode.Space) && proper.Equals(PROPER.POLICE) && !isSkill && !bStartup)
            {
                if (nhp <= 1)
                {
                    GM.NetworkManager.getInstance.SendMsg(string.Format("DIE:{0}:{1}", myIdx, myIdx));
                    Debug.Log("죽은놈" + myIdx); Debug.Log("죽인놈" + myIdx);
                    isLive = false;
                }
                else
                {
                    GM.NetworkManager.getInstance.SendMsg(string.Format("ATTACK:{0}", myIdx));
                }
                //Attack();
                Debug.Log("attack down");
            }

            WatchScrp.Move(this.transform);
        }

        if (gameObject.tag.Equals("Police") && bStartup)
        {
            myMove = 0;
        }
        else
        {
            Move();
        }
    }
Exemple #2
0
        /**
         * brief 패킷 분석
         * param len 길이
         */
        private void ParsePacket(int len)
        {
            string msg = Encoding.UTF8.GetString(userData.buf, 2, len - 2);

            string[] txt = msg.Split(':');      // 암호를 ':' 로 분리해서 읽음

            //Console.WriteLine(msg);

            /************* 기능이 추가되면 덧붙일 것 ***************/
            if (txt[0].Equals("MOVE"))
            {
                int idx = int.Parse(txt[1]);
                posX   = float.Parse(txt[2]);
                posY   = float.Parse(txt[3]);
                myMove = (MOVE_CONTROL)int.Parse(txt[4]);

                Move(idx);

                if (proper.Equals(PROPER.THIEF))
                {
                    thiefActiveMass++;
                }
            }
            else if (txt[0].Equals("CHAT"))
            {
                Console.WriteLine("MSG");
                Chat(txt[1], txt[2]);
            }
            else if (txt[0].Equals("KINEMATIC"))
            {
                for (int i = 0; i < Server.v_user.Count; i++)
                {
                    Server.v_user[i].SendMsg(msg);
                }
            }
            else if (txt[0].Equals("ATTACK"))
            {
                Console.WriteLine("ATTACK");
                Attack(int.Parse(txt[1]));
                policeActiveMass--;             // 아직 모호함
            }
            else if (txt[0].Equals("DIE"))
            {
                Die(int.Parse(txt[1]), int.Parse(txt[2]));
            }
            else if (txt[0].Equals("START"))
            {
                StartGame();
            }
            else if (txt[0].Equals("LOGIN"))
            {
                nickName = txt[1];
                Login(txt[2]);
                Console.WriteLine(txt[1] + " is Login.");
            }
            else if (txt[0].Equals("DISCONNECT"))
            {
                if (nickName.Length > 0)
                {
                    Console.WriteLine(nickName + " is Logout.");
                    Logout();
                }
                userData.workSocket.Shutdown(SocketShutdown.Both);
                userData.workSocket.Close();

                Server.RemoveUser(myIdx);

                if (Server.v_user.Count.Equals(0))
                {
                    timeCount = maxPlayTime;
                    tmr.Stop();
                    for (int j = 0; j < Server.v_user.Count; j++)
                    {
                        Server.v_user[j].SendMsg(string.Format("DIE:{0}:{1}", myIdx, myIdx));
                    }
                }
                else
                {
                    for (int j = 0; j < Server.v_user.Count; j++)
                    {
                        Server.v_user[j].SendMsg(string.Format("DIE:{0}:{1}", myIdx, myIdx));
                    }
                }
            }
            else
            {
                //!< 이 부분에 들어오는 일이 있으면 안됨 (패킷 실수)
                Console.WriteLine("Un Correct Message ");
            }
        }
    public void OpenResult(PROPER whoWin, int mvpIdx)
    {
        if (whoWin.Equals(PROPER.POLICE))
        {
            winnerThiefTxt.SetActive(false);
            winnerPoliceTxt.SetActive(true);
        }
        else
        {
            winnerThiefTxt.SetActive(true);
            winnerPoliceTxt.SetActive(false);
        }

        List <string> v_nickList = new List <string>();
        int           lIdx       = 0;

        for (int i = 0; i < GM.NetworkManager.getInstance.v_user.Count; i++)
        {
            if (GM.NetworkManager.getInstance.v_user[i] != null)
            {
                if (GM.NetworkManager.getInstance.v_user[i].proper.Equals(whoWin))
                {
                    v_nickList.Add(GM.NetworkManager.getInstance.v_user[i].nickName);
                }

                if (GM.NetworkManager.getInstance.v_user[i].myIdx.Equals(mvpIdx))
                {
                    lIdx = v_nickList.Count - 1;
                }
            }
        }


        p_1.gameObject.SetActive(false);
        for (int i = 0; i < 2; i++)
        {
            p_2[i].gameObject.SetActive(false);
        }
        for (int i = 0; i < 3; i++)
        {
            p_3[i].gameObject.SetActive(false);
        }
        for (int i = 0; i < 4; i++)
        {
            p_4[i].gameObject.SetActive(false);
        }
        for (int i = 0; i < 5; i++)
        {
            p_5[i].gameObject.SetActive(false);
        }
        for (int i = 0; i < 6; i++)
        {
            p_6[i].gameObject.SetActive(false);
        }

        if (v_nickList.Count.Equals(1))
        {
            p_1.gameObject.SetActive(true);
            p_1.gameObject.GetComponentInChildren <UnityEngine.UI.Text>().text = v_nickList[0];
            mvpObj.transform.position = p_1.gameObject.transform.position;
            StartCoroutine("mvpOpen", 1.6f);
        }
        else if (v_nickList.Count.Equals(2))
        {
            for (int i = 0; i < 2; i++)
            {
                p_2[i].gameObject.SetActive(true);
                p_2[i].gameObject.GetComponentInChildren <UnityEngine.UI.Text>().text = v_nickList[i];
            }
            mvpObj.transform.position = p_2[lIdx].gameObject.transform.position;
            StartCoroutine("mvpOpen", 1.75f);
        }
        else if (v_nickList.Count.Equals(3))
        {
            for (int i = 0; i < 3; i++)
            {
                p_3[i].gameObject.SetActive(true);
                p_3[i].gameObject.GetComponentInChildren <UnityEngine.UI.Text>().text = v_nickList[i];
            }
            mvpObj.transform.position = p_3[lIdx].gameObject.transform.position;
            StartCoroutine("mvpOpen", 1.9f);
        }
        else if (v_nickList.Count.Equals(4))
        {
            for (int i = 0; i < 4; i++)
            {
                p_4[i].gameObject.SetActive(true);
                p_4[i].gameObject.GetComponentInChildren <UnityEngine.UI.Text>().text = v_nickList[i];
            }
            mvpObj.transform.position = p_4[lIdx].gameObject.transform.position;
            StartCoroutine("mvpOpen", 2.05f);
        }
        else if (v_nickList.Count.Equals(5))
        {
            for (int i = 0; i < 5; i++)
            {
                p_5[i].gameObject.SetActive(true);
                p_5[i].gameObject.GetComponentInChildren <UnityEngine.UI.Text>().text = v_nickList[i];
            }
            mvpObj.transform.position = p_5[lIdx].gameObject.transform.position;
            StartCoroutine("mvpOpen", 2.2f);
        }
        else if (v_nickList.Count.Equals(6))
        {
            for (int i = 0; i < 6; i++)
            {
                p_6[i].gameObject.SetActive(true);
                p_6[i].gameObject.GetComponentInChildren <UnityEngine.UI.Text>().text = v_nickList[i];
            }
            mvpObj.transform.position = p_6[lIdx].gameObject.transform.position;
            StartCoroutine("mvpOpen", 2.35f);
        }
        resultAnim.SetTrigger("RESULT");
    }