コード例 #1
0
    // Use this for initialization
    void Start()
    {
        _connectingLabel = GameObject.Find("Connecting");
        if (_connectingLabel)
        {
            _connectingLabelText = _connectingLabel.GetComponentInChildren <Text>();
        }

        //_joinGameButton = GameObject.Find("JoinGameButton");
        //_joinGameButton.active = false;

        GlobalUserInfo    pGlobalUserInfo = GlobalUserInfo.GetInstance();
        tagGlobalUserData pGlobalUserData = pGlobalUserInfo.GetGlobalUserData();

        //MersenneTwister.MT19937.Seed((ulong)pGlobalUserData.wRandseed);

        if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
        {
            //GameObjectsManager.GetInstance().LoadMap(pGlobalUserData.cbMapIndexRand);
            GameObjectsManager.GetInstance().LoadMap(pGlobalUserData.cbMapIndexRandForSingleGame);
        }
        else if (GameManager.s_gameSingleMultiType == GameSingleMultiType.MultiGame_WangHu)
        {
            GameObjectsManager.GetInstance().LoadMap(pGlobalUserData.cbMapIndexRand);
        }
        else
        {
            // GameSingleMultiType.MultiGame_Skynet

            StartConnecting();
        }
    }
コード例 #2
0
    public void QueryNickName()
    {
        uint userId;
        uint diamondCount;
        bool bSuccess = uint.TryParse(UserID.text, out userId);

        if (bSuccess == false)
        {
            ShowErrorTips("用户ID号输入有误,请重新输入!");
            return;
        }
        else if (userId == GlobalUserInfo.getUserID())
        {
            ShowErrorTips("不能向自己转移房卡,请重新输入!");
            return;
        }
        bSuccess = uint.TryParse(DiamondCount.text, out diamondCount);
        if (bSuccess)
        {
            if (diamondCount <= GlobalUserInfo.getUserInsure())
            {
                GameNet.UserInfo.getInstance().queryNickName(userId, this);
            }
            else
            {
                ShowErrorTips("转钻石数大于拥有钻石数,请重新输入!");
                return;
            }
        }
        else
        {
            ShowErrorTips("转钻石数输入有误,请重新输入!");
            return;
        }
    }
コード例 #3
0
 //更新UI信息
 public void UpdateUIInfo()
 {
     if (_Glod != null)
     {
         _Glod.transform.Find("GlodCount").GetComponent <Text>().text = GlobalUserInfo.getUserScore().ToString();
     }
 }
コード例 #4
0
 public void UpdateInfo()
 {
     if (DiamondNum != null)
     {
         DiamondNum.text = GlobalUserInfo.getUserInsure().ToString();
     }
     if (GlodNum != null)
     {
         GlodNum.text = GlobalUserInfo.getUserScore().ToString();
     }
 }
コード例 #5
0
    public void onSubGPLobbyChat(CMD_GP_CHAT pNetInfo)
    {
        uint dwUserID = pNetInfo.dwUserID;

        string szNickName = GlobalUserInfo.GBToUtf8(pNetInfo.szNickName);
        string szChatData = Encoding.UTF8.GetString(pNetInfo.szChatData);
        int    headindex  = int.Parse(GlobalUserInfo.GBToUtf8(pNetInfo.szHeadHttp));

        //Debug.Log("onSubGPLobbyChat:接收到的数据:headindex=" + headindex + ", szNickName=" + szNickName + ": " + szChatData);

        ShowChatPanel(headindex, szNickName, szChatData);
    }
コード例 #6
0
    public void UpdateInfo()
    {
        GameObject userInfoWindow = Canvas.transform.Find("Window/UserWindow").gameObject;

        userInfoWindow.transform.Find("UserInfo/User/UserText").GetComponent <Text>().text                  = GlobalUserInfo.getNickName();
        userInfoWindow.transform.Find("UserInfo/ID/IDText").GetComponent <Text>().text                      = GlobalUserInfo.getUserID().ToString();
        userInfoWindow.transform.Find("UserInfo/LV/LVText").GetComponent <Text>().text                      = (GlobalUserInfo.getUserExp() / 100).ToString();
        userInfoWindow.transform.Find("UserInfo/GameNum/GameNumText").GetComponent <Text>().text            = "0";
        userInfoWindow.transform.Find("UserImage/UserMask/UserImage").GetComponent <Image>().overrideSprite = GetHeadImage(int.Parse(GlobalUserInfo.GBToUtf8(GlobalUserInfo.getHeadHttp())));
        Canvas.transform.Find("Window/UserEditorWindow/UserInfo/UserImage/UserImage").GetComponent <Image>().overrideSprite = GetHeadImage(int.Parse(GlobalUserInfo.GBToUtf8(GlobalUserInfo.getHeadHttp())));
        headIndex = int.Parse(GlobalUserInfo.GBToUtf8(GlobalUserInfo.getHeadHttp()));
    }
コード例 #7
0
    public void RandomGameObjects()
    {
        GlobalUserInfo    pGlobalUserInfo = GlobalUserInfo.GetInstance();
        tagGlobalUserData pGlobalUserData = pGlobalUserInfo.GetGlobalUserData();

        MersenneTwister.MT19937.Seed((ulong)pGlobalUserData.wRandseedForRandomGameObject);

        CreateObjectManager temp = Camera.main.transform.gameObject.AddComponent <CreateObjectManager>();

        temp.RandomGameObject(CreateObjectManager.GameObjectType.LargeObject);
        temp.RandomGameObject(CreateObjectManager.GameObjectType.MiddleObject);
        temp.RandomGameObject(CreateObjectManager.GameObjectType.SmallObject);
        temp.RandomObjectName(CreateObjectManager.GameObjectType.LargeObject);
        temp.RandomObjectName(CreateObjectManager.GameObjectType.MiddleObject);
        temp.RandomObjectName(CreateObjectManager.GameObjectType.SmallObject);
        temp.CreateGameObject();
    }
コード例 #8
0
    void Start()
    {
        Debug.Log("Stroe Start()!!!");
        m_Canvas   = GameObject.Find("Canvas");
        m_ShopItem = new List <int>();

        DiamondNum = m_Canvas.transform.Find("Window/StoreWindow/Diamond/DiamondCount").GetComponent <Text>();
        GlodNum    = m_Canvas.transform.Find("Window/StoreWindow/Glod/GlodCount").GetComponent <Text>();
        if (DiamondNum != null)
        {
            DiamondNum.text = GlobalUserInfo.getUserInsure().ToString();
        }
        if (GlodNum != null)
        {
            GlodNum.text = GlobalUserInfo.getUserScore().ToString();
        }

        //TODO  获取服务器商品列表

        GlobalUserInfo    pGlobalUserInfo = GameNet.GlobalUserInfo.GetInstance();
        tagGlobalUserData pGlobalUserData = pGlobalUserInfo.GetGlobalUserData();
        long lModelIndex0 = pGlobalUserData.lModelIndex0;

        for (int idx = 0; idx < 64; idx++)
        {
            if (((int)lModelIndex0 & 0x01) != 0)
            {
                m_ShopItem.Add(idx);
            }

            lModelIndex0 = lModelIndex0 >> 1;
        }
        //m_ShopItem.Add(1);
        ////m_ShopItem.Add(2);
        //m_ShopItem.Add(3);
        ////m_ShopItem.Add(4);

        ShopItemInit();
    }
コード例 #9
0
    public void UpdateInfo()
    {
        if (DiamondNum != null)
        {
            DiamondNum.text = GlobalUserInfo.getUserInsure().ToString();
        }
        if (GlodNum != null)
        {
            GlodNum.text = GlobalUserInfo.getUserScore().ToString();
        }
        if (StoreDiamonNum != null)
        {
            StoreDiamonNum.text = GlobalUserInfo.getUserInsure().ToString();
        }

        if (StoreGlodNum != null)
        {
            StoreGlodNum.text = GlobalUserInfo.getUserScore().ToString();
        }
        if (ExpNum != null)
        {
            ExpNum.fillAmount = (GlobalUserInfo.getUserExp() % 100) / 100.0f;
        }
        if (ExpNumTxt != null)
        {
            ExpNumTxt.text = String.Format("等级: {0}", GlobalUserInfo.getUserExp() / 100);
        }
        if (Name != null)
        {
            Name.text = GlobalUserInfo.getNickName();
        }
        if (HeadImage != null && UserInfoWin.GetInstance != null)
        {
            HeadImage.overrideSprite = UserInfoWin.GetInstance.GetHeadImage(int.Parse(GlobalUserInfo.GBToUtf8(GlobalUserInfo.getHeadHttp())));
        }
    }
コード例 #10
0
    private PlayerBase AddAHide(bool isAI, int nChairID = 0, byte cbModelIndex = 0, byte cbAIId = HNMJ_Defines.INVALID_AI_ID)
    {
        HNGameManager.hidePrefabFileNames.Clear();
        HNGameManager.hidePrefabNames.Clear();
        HNGameManager.hidePrefabPath.Clear();
        GlobalUserInfo    pGlobalUserInfo = GlobalUserInfo.GetInstance();
        tagGlobalUserData pGlobalUserData = pGlobalUserInfo.GetGlobalUserData();
        string            name            = "";

        if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
        {
            name = ItemListManager.GetInstance.GetMapName(pGlobalUserData.cbMapIndexRandForSingleGame);
        }
        else if (GameManager.s_gameSingleMultiType == GameSingleMultiType.MultiGame_WangHu)
        {
            name = ItemListManager.GetInstance.GetMapName(pGlobalUserData.cbMapIndexRand);
        }


        for (int i = 0; i < HNGameManager.listItem.Count; i++)
        {
            if (HNGameManager.listItem[i].Map == name)
            {
                for (int j = 0; j < HNGameManager.listItem[i].SchemeItem.ModelNameList.Count; j++)
                {
                    HNGameManager.hidePrefabFileNames.Add(HNGameManager.listItem[i].SchemeItem.ModelNameList[j].FileName);
                    HNGameManager.hidePrefabNames.Add(HNGameManager.listItem[i].SchemeItem.ModelNameList[j].Name);
                    HNGameManager.hidePrefabPath.Add(HNGameManager.listItem[i].SchemeItem.ModelNameList[j].Path);
                }
                break;
            }
        }
        int playerIndexInTeam = _playerArray.Count;

        GameObject role = null;

        GameObject hideTeam = GameObject.Find("Player/HideTeam");

        //mChen add, for HideSeek WangHu
        bool bIsLocalHuman = (_teamType == GameObjectsManager.s_LocalHumanTeamType && nChairID == HNGameManager.m_iLocalChairID);

        if (bIsLocalHuman && !isAI)
        {
            HNGameManager.MapIndex.GetComponent <Text>().text = pGlobalUserData.cbMapIndexRand.ToString() + "   " + cbModelIndex;
        }
        if (isAI)
        {
            bIsLocalHuman = false;
        }

        ///int cbModelIndex = nChairID % hidePrefabNames.Length; ;//(int)(MersenneTwister.MT19937.Real3() * 8f);//[0,7]
        cbModelIndex = (byte)(cbModelIndex % HNGameManager.hidePrefabFileNames.Count);
        if (isAI)
        {
            // AI Hide
            GameObject loadObj = Resources.Load(HNGameManager.hidePrefabPath[cbModelIndex]) as GameObject;
            role = UnityEngine.Object.Instantiate(loadObj);
            GameObject ModelObj = role.transform.GetChild(0).gameObject;
            ModelObj.tag = "Hide";
            //if (ModelObj.transform.childCount == 0)
            //{
            //    ModelObj.transform.GetComponent<Renderer>().enabled = false;
            //}
            //else if (ModelObj.transform.childCount > 0)
            //{
            //    for (int i = 0; i < ModelObj.transform.childCount; i++)  //隐藏模型Renderer
            //    {
            //        if (ModelObj.transform.GetChild(i).GetComponent<Renderer>() != null)
            //            ModelObj.transform.GetChild(i).GetComponent<Renderer>().enabled = false;
            //    }
            //}
            role.name = HNGameManager.hidePrefabNames[cbModelIndex];
            //role.tag = "Hide";
            role.transform.SetParent(hideTeam.transform, false);
            role.transform.localPosition = Vector3.zero;
            role.SetActive(true);

            //MeshCollider mCollider = role.GetComponent<MeshCollider>();
            //if (mCollider != null)
            //    mCollider.enabled = false;
            //BoxCollider bCollider = role.GetComponent<BoxCollider>();
            //if (bCollider != null)
            //    bCollider.enabled = false;
            Collider collider = role.GetComponent <Collider>();
            if (collider != null)
            {
                collider.enabled = false;
            }
            collider = null;
            collider = ModelObj.GetComponent <Collider>();
            if (collider != null)
            {
                collider.enabled = false;
            }

            AI ai = role.GetComponent <AI>();
            if (ai == null)
            {
                ai = role.AddComponent <AI>();
            }
            ai.MaxMoveSpeed = PlayerBase.AISpeed * 0.7f;

            // Handle BehaviorTree and NavMeshAgent
            BehaviorDesigner.Runtime.BehaviorTree behaviorTree = role.GetComponent <BehaviorDesigner.Runtime.BehaviorTree>();
            UnityEngine.AI.NavMeshAgent           navMeshAgent = role.GetComponent <UnityEngine.AI.NavMeshAgent>();
            if (nChairID == HNGameManager.m_iLocalChairID)
            {
                // 本地AI

                if (behaviorTree == null)
                {
                    behaviorTree = role.AddComponent <BehaviorDesigner.Runtime.BehaviorTree>();
                    behaviorTree.ExternalBehavior = Resources.Load("BehaviorDesigner/BehaviorTree/HideAI") as BehaviorDesigner.Runtime.ExternalBehavior;//HideAI TaggerAI
                }
                //behaviorTree.enabled = false;

                // Handle NavMeshAgent
                if (navMeshAgent == null)
                {
                    navMeshAgent = role.AddComponent <UnityEngine.AI.NavMeshAgent>();
                }
                navMeshAgent.height    *= 0.5f;
                navMeshAgent.baseOffset = 0f;
            }
            else
            {
                // 其它玩家的AI

                if (behaviorTree != null)
                {
                    GameObject.Destroy(behaviorTree);
                }

                if (navMeshAgent != null)
                {
                    navMeshAgent.enabled = false;
                }
            }
        }
        else
        {
            if (bIsLocalHuman)
            {
                Debug.Log("----------------------Hider  bIsLocalHuman");
                // Local Human Hide
                Debug.Log("---------------------AddAHide: Create Local Human Hide");

                GameObject loadObj = Resources.Load(HNGameManager.hidePrefabPath[cbModelIndex]) as GameObject;
                role = UnityEngine.Object.Instantiate(loadObj);
                //role.name = "LocalHide";
                role.name = HNGameManager.hidePrefabNames[cbModelIndex];
                role.tag  = "LocalHuman";
                role.transform.SetParent(hideTeam.transform, false);
                role.transform.localPosition = Vector3.zero;
                role.SetActive(true);

                Human human = role.GetComponent <Human>();
                if (human == null)
                {
                    human = role.AddComponent <Human>();
                }

                //Rigidbody rigi = role.AddComponent<Rigidbody>();
                //rigi.mass = 0.1f;
                //rigi.drag = 10;
                //rigi.useGravity = false;
                //rigi.constraints = RigidbodyConstraints.FreezeRotation;
                //CharacterController cc = role.AddComponent<CharacterController>();

                //Main Camera
                //if (ControlManager.s_IsFirstPersonControl)
                {
                    //if (Camera.main.transform.parent != null)
                    //{
                    //    Camera.main.transform.parent.SetParent(role.transform, false);
                    //    Camera.main.transform.parent.transform.localPosition = Vector3.zero;
                    //}
                    GameObject PosPoint    = GameObject.Find("PosPoint");
                    GameObject LookAtPoint = GameObject.Find("LookAtPoint");
                    if (PosPoint != null && LookAtPoint != null)
                    {
                        if (Camera.main.transform.parent != null)
                        {
                            Camera.main.transform.parent.transform.position         = PosPoint.transform.position;
                            Camera.main.transform.parent.transform.localEulerAngles = PosPoint.transform.localEulerAngles;
                            Camera.main.transform.LookAt(LookAtPoint.transform);
                            Camera.main.transform.localPosition = Vector3.zero;
                        }
                    }
                }
                float      y        = 0;
                float      z        = 0;
                GameObject ModelObj = role.transform.GetChild(0).gameObject;
                ModelObj.tag = "Hide";
                if (ModelObj.transform.childCount == 0)
                {
                    y = ModelObj.gameObject.GetComponent <Renderer>().bounds.size.y;
                    z = ModelObj.gameObject.GetComponent <Renderer>().bounds.size.z;
                }
                else if (ModelObj.transform.childCount > 0)
                {
                    y = ModelObj.transform.GetChild(0).GetComponent <Renderer>().bounds.size.y;
                    z = ModelObj.transform.GetChild(0).GetComponent <Renderer>().bounds.size.z;
                }
                Camera.main.transform.localPosition = new Vector3(0, y * 1.5f + 1, -(z * 1.5f + 2));
                //HNGameManager.CameraLocalPos = Camera.main.transform.localPosition;
                Camera.main.transform.localEulerAngles = new Vector3(30, 0, 0);
                //if (Camera.main.GetComponent<DirectionKey>() == null)
                //    Camera.main.gameObject.AddComponent<DirectionKey>();

                //ControlManager.GetInstance().ControlModelSwitch(ControlManager.CameraControlMode.PlayerViewMode);
            }
            else
            {
                // Other Human Hide

                GameObject loadObj = Resources.Load(HNGameManager.hidePrefabPath[cbModelIndex]) as GameObject;
                role      = UnityEngine.Object.Instantiate(loadObj);
                role.name = HNGameManager.hidePrefabNames[cbModelIndex];
                //role.tag = "Hide";
                role.transform.SetParent(hideTeam.transform, false);
                role.SetActive(true);

                GameObject ModelObj = role.transform.GetChild(0).gameObject;
                ModelObj.tag = "Hide";

                Human human = role.GetComponent <Human>();
                if (human == null)
                {
                    human = role.AddComponent <Human>();
                }

                //Rigidbody rigi = role.AddComponent<Rigidbody>();
                //rigi.mass = 0.1f;
                //rigi.drag = 10;
                //rigi.useGravity = false;
                //rigi.constraints = RigidbodyConstraints.FreezeRotation;
            }
        }

        // Pos
        if (GameManager.ListHiderPosition.Count != 0)
        {
            while (GameManager.RandomNumH.Count != GameManager.ListHiderPosition.Count)
            {
                int index = (int)(MersenneTwister.MT19937.Int63() % GameManager.ListHiderPosition.Count);
                if (!GameManager.ListRandomNumH.Contains((index)))
                {
                    GameManager.ListRandomNumH.Add(index);
                    GameManager.RandomNumH.Add(index, 0);
                }
            }
            if (role.tag == "LocalHuman")
            {
                if (GameManager.RandomNumH.Count > 0)
                {
                    role.transform.position          = GameManager.ListHiderPosition[nChairID].transform.position;
                    role.transform.position         += new Vector3(0, 0.5f, 0);
                    role.transform.localEulerAngles  = GameManager.ListHiderPosition[nChairID].transform.localEulerAngles;
                    GameManager.RandomNumH[nChairID] = 1;
                }
                HNGameManager.playerTeamPos = true;   //标记localHuman位置已设置,供断线重连使用
            }
            else
            {
                if (GameManager.RandomNumH.Count > 0)
                {
                    if (isAI)
                    {
                        //int RealPlayerNumH = GameObjectsManager.GetInstance().GetRealPlayerNum(PlayerTeamType.HideTeam);
                        //int RealPlayerNumT = GameObjectsManager.GetInstance().GetRealPlayerNum(PlayerTeamType.TaggerTeam);
                        //int indexAI = TaggerNumLimit - RealPlayerNumT > 0 ? TaggerNumLimit - RealPlayerNumT : 0;      //TaggerNumLimit--警察玩家未满 TaggerNumLimit 个人填充AI至 TaggerNumLimit 人,因为AIId不分警察躲藏者,需了解在警察方有几个AI,才能设置躲藏者AI的位置
                        //indexAI = cbAIId - indexAI;
                        //Debug.LogWarning("----------------------- " + RealPlayerNumH + " " + indexAI + " " + (RealPlayerNumH + indexAI));
                        //role.transform.position = GameManager.ListHiderPosition[GameManager.RandomNumH[(RealPlayerNumH + indexAI) % GameManager.RandomNumH.Count]].transform.position;
                        //role.transform.localEulerAngles = GameManager.ListHiderPosition[GameManager.RandomNumH[(RealPlayerNumH + indexAI) % GameManager.RandomNumH.Count]].transform.localEulerAngles;
                        for (int i = 0; i < GameManager.RandomNumH.Count; i++)
                        {
                            if (GameManager.RandomNumH[GameManager.ListRandomNumH[i]] == 0)
                            {
                                role.transform.position         = GameManager.ListHiderPosition[GameManager.ListRandomNumH[i]].transform.position;
                                role.transform.localEulerAngles = GameManager.ListHiderPosition[GameManager.ListRandomNumH[i]].transform.localEulerAngles;
                                GameManager.RandomNumH[GameManager.ListRandomNumH[i]] = 1;
                                break;
                            }
                            else
                            {
                                continue;
                            }
                        }
                    }
                    else
                    {
                        role.transform.position          = GameManager.ListHiderPosition[nChairID].transform.position;
                        role.transform.localEulerAngles  = GameManager.ListHiderPosition[nChairID].transform.localEulerAngles;
                        GameManager.RandomNumH[nChairID] = 1;
                    }
                }
            }
        }

        //Add InfoPanelPref
        GameObject tempObj = Resources.Load("Player/Prefabs/InfoPanel") as GameObject;
        GameObject infoObj = UnityEngine.Object.Instantiate(tempObj);

        infoObj.name = "InfoPanel";
        infoObj.transform.SetParent(role.transform);
        float      yy       = 0;
        GameObject modelObj = role.transform.GetChild(0).gameObject;

        if (modelObj.transform.childCount == 0)
        {
            yy = modelObj.gameObject.GetComponent <Renderer>().bounds.size.y;
        }
        else if (modelObj.transform.childCount > 0)
        {
            yy = modelObj.transform.GetChild(0).GetComponent <Renderer>().bounds.size.y;
        }
        infoObj.transform.localPosition = new Vector3(tempObj.transform.localPosition.x, yy + 0.2f, tempObj.transform.localPosition.z);
        infoObj.transform.localScale    = tempObj.transform.localScale;

        // Add into Team
        PlayerBase player = role.GetComponent <PlayerBase>();

        player.PlayerIndexInTeam = playerIndexInTeam;
        player.TeamType          = PlayerTeamType.HideTeam;
        //隐藏躲藏者Renderer
        player.SetGameObjVisible(false);

        //mChen add, for HideSeek WangHu
        player.ChairID = nChairID;
        player.IsAI    = isAI;
        player.AIId    = cbAIId;

        //if (/*nChairID > HNGameManager.m_iLocalChairID && */!isAI)
        //{
        //    var kernel = (GameScene)CServerItem.get().GetClientKernelSink();
        //    if (kernel != null)
        //    {
        //        String[] str = kernel.getPlayerByChairID(nChairID).GetNickName().Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
        //        //UIManager.GetInstance().ShowMiddleTips(str[0] + "加入了房间!");
        //        ChatSystem.GetInstance.ShowChatText("通知", str[0] + " 加入了房间!");
        //    }
        //}

        _playerArray.Add(player);
        if (player.IsLocalHuman())
        {
            //根据所属队伍显示相应UI
            ControlManager.GetInstance().Init();
            //ControlManager.GetInstance().ShowButtonUI();
            ControlManager.GetInstance().ControlModelSwitch(ControlManager.CameraControlMode.FreeCameraMode);
            ControlManager.s_speed = PlayerBase.localHumanSpeed * 0.7f;   //躲藏者速度降低30%
            ControlManager.GetInstance().SpeedChange(ControlManager.s_speed);
        }
        UIManager.GetInstance().StartPlayerJionDealInGaming((byte)player.ChairID);
        // Set AI name
        if (isAI)
        {
            //role.name = String.Format("机器人_{0}_{1}_{2}", nChairID, cbAIId, role.name);
            role.name = String.Format("{0}(机器人)", role.name);
        }
        return(player);
    }
コード例 #11
0
    private PlayerBase AddATagger(bool isAI, int nChairID = 0, byte cbModelIndex = 0, byte cbAIId = HNMJ_Defines.INVALID_AI_ID)
    {
        int        playerIndexInTeam = _playerArray.Count;
        GameObject role = null;

        GameObject taggerTeam = GameObject.Find("Player/TaggerTeam");

        //mChen add, for HideSeek WangHu
        bool              bIsLocalHuman   = (_teamType == GameObjectsManager.s_LocalHumanTeamType && nChairID == HNGameManager.m_iLocalChairID);
        GlobalUserInfo    pGlobalUserInfo = GlobalUserInfo.GetInstance();
        tagGlobalUserData pGlobalUserData = pGlobalUserInfo.GetGlobalUserData();

        if (bIsLocalHuman && !isAI)
        {
            HNGameManager.MapIndex.GetComponent <Text>().text = pGlobalUserData.cbMapIndexRand.ToString() + "   " + cbModelIndex;
        }
        if (isAI)
        {
            bIsLocalHuman = false;
        }

        cbModelIndex = (byte)(cbModelIndex % HNGameManager.taggerPrefabNames.Count);

        if (isAI)//if (playerIndexInTeam == 1)
        {
            // AI Tagger

            GameObject loadObj = Resources.Load("Player/Prefabs/Taggers/AIs/AI_" + HNGameManager.taggerPrefabFileNames[cbModelIndex]) as GameObject;
            //GameObject loadObj = Resources.Load(HNGameManager.taggerPrefabPath[cbModelIndex]) as GameObject;
            role      = UnityEngine.Object.Instantiate(loadObj);
            role.tag  = "Tagger";
            role.name = HNGameManager.taggerPrefabNames[cbModelIndex];
            role.transform.SetParent(taggerTeam.transform, false);
            role.transform.localPosition = Vector3.zero;
            role.SetActive(true);

            AI ai = role.GetComponent <AI>();
            if (ai == null)
            {
                ai = role.AddComponent <AI>();
            }

            // Handle BehaviorTree and NavMeshAgent
            BehaviorDesigner.Runtime.BehaviorTree behaviorTree = role.GetComponent <BehaviorDesigner.Runtime.BehaviorTree>();
            if (nChairID == HNGameManager.m_iLocalChairID)
            {
                // 本地AI

                if (behaviorTree == null)
                {
                    behaviorTree = role.AddComponent <BehaviorDesigner.Runtime.BehaviorTree>();
                    behaviorTree.ExternalBehavior = Resources.Load("BehaviorDesigner/BehaviorTree/TaggerAI") as BehaviorDesigner.Runtime.ExternalBehavior;//HideAI TaggerAI
                }
                behaviorTree.enabled = false;

                UnityEngine.AI.NavMeshAgent navMeshAgent = role.GetComponent <UnityEngine.AI.NavMeshAgent>();
                if (navMeshAgent != null)
                {
                    navMeshAgent.enabled    = false;
                    navMeshAgent.height    *= 0.5f;
                    navMeshAgent.baseOffset = 0f;
                }
            }
            else
            {
                // 其它玩家的AI

                if (behaviorTree != null)
                {
                    GameObject.Destroy(behaviorTree);
                }

                UnityEngine.AI.NavMeshAgent navMeshAgent = role.GetComponent <UnityEngine.AI.NavMeshAgent>();
                if (navMeshAgent != null)
                {
                    navMeshAgent.enabled = false;
                }
            }
        }
        else
        {
            // Human Tagger

            if (bIsLocalHuman)
            {
                // Local Human Tagger
                Debug.Log("---------------------AddATagger: Create Local Human Tagger");

                //GameObject loadObj = Resources.Load("Player/Prefabs/Taggers/" + "LocalTagger") as GameObject;//Police_Brown
                GameObject loadObj = Resources.Load(HNGameManager.taggerPrefabPath[cbModelIndex]) as GameObject;
                role = UnityEngine.Object.Instantiate(loadObj);
                ///role = GameObject.Find("LocalHuman");
                //role.name = "LocalTagger";
                role.tag  = "LocalHuman";
                role.name = HNGameManager.taggerPrefabNames[cbModelIndex];
                role.transform.SetParent(taggerTeam.transform, false);
                role.transform.localPosition = Vector3.zero;
                role.SetActive(true);

                Human human = role.GetComponent <Human>();
                if (human == null)
                {
                    human = role.AddComponent <Human>();
                }
                //Rigidbody rigi = role.AddComponent<Rigidbody>();
                //rigi.mass = 0.1f;
                //rigi.drag = 10;
                //rigi.useGravity = false;
                //rigi.collisionDetectionMode = CollisionDetectionMode.Continuous;
                //rigi.constraints = RigidbodyConstraints.FreezeRotation;
                //CharacterController cc = role.AddComponent<CharacterController>();
                //rigi.isKinematic = true;

                ////Material
                ////fix玩家第三人称视角被遮挡:ZMask处理
                //Transform meshBaseTrans = role.transform.FindChild("Model").gameObject.transform.FindChild("mesh_Base");
                //if (meshBaseTrans != null)
                //{
                //    SkinnedMeshRenderer mesh = meshBaseTrans.GetComponent<SkinnedMeshRenderer>();
                //    if (mesh != null)
                //    {
                //        if (!mesh.material.shader.name.Equals("Custom/ZMask"))
                //        {
                //            mesh.material.shader = Shader.Find("Custom/ZMask");

                //            Color col = new Color(0, 0.6f, 1, 0.3f);
                //            mesh.material.SetColor("_ZColor", col);
                //        }
                //    }
                //}

                //Main Camera
                if (ControlManager.isPerson_1st)
                {
                    Camera.main.transform.localPosition = new Vector3(0, 1.7f, 0);
                }
                else
                {
                    Camera.main.transform.localPosition = new Vector3(0, 2.4f, -3);
                }
                //HNGameManager.CameraLocalPos = Camera.main.transform.localPosition;
                Camera.main.transform.localEulerAngles = new Vector3(30, 0, 0);
                if (Camera.main.GetComponent <DirectionKey>() == null)
                {
                    Camera.main.gameObject.AddComponent <DirectionKey>();
                }
                //if (ControlManager.s_IsFirstPersonControl)
                {
                    //if (Camera.main.transform.parent != null)
                    //{
                    //    Camera.main.transform.parent.SetParent(role.transform, false);
                    //    Camera.main.transform.parent.transform.localPosition = Vector3.zero;
                    //}
                    GameObject PosPoint    = GameObject.Find("PosPoint");
                    GameObject LookAtPoint = GameObject.Find("LookAtPoint");
                    if (PosPoint != null && LookAtPoint != null)
                    {
                        if (Camera.main.transform.parent != null)
                        {
                            Camera.main.transform.parent.transform.position         = PosPoint.transform.position;
                            Camera.main.transform.parent.transform.localEulerAngles = PosPoint.transform.localEulerAngles;
                            Camera.main.transform.LookAt(LookAtPoint.transform);
                            Camera.main.transform.localPosition = Vector3.zero;
                        }
                    }
                }
                //ControlManager.GetInstance().ControlModelSwitch(ControlManager.CameraControlMode.PlayerViewMode);
                if (UIManager.GetInstance().m_Canvas != null)
                {
                    UIManager.GetInstance().m_Canvas.transform.Find("Hearts/Heart0").GetComponent <Image>().sprite = Resources.Load("UI/Hearts/Pink", typeof(Sprite)) as Sprite;
                    UIManager.GetInstance().m_Canvas.transform.Find("Hearts/Heart1").GetComponent <Image>().sprite = Resources.Load("UI/Hearts/Pink", typeof(Sprite)) as Sprite;
                    UIManager.GetInstance().m_Canvas.transform.Find("Hearts/Heart2").GetComponent <Image>().sprite = Resources.Load("UI/Hearts/Pink", typeof(Sprite)) as Sprite;
                    UIManager.GetInstance().m_Canvas.transform.Find("Hearts/Heart3").GetComponent <Image>().sprite = Resources.Load("UI/Hearts/Pink", typeof(Sprite)) as Sprite;
                }
            }
            else
            {
                // Other Human Tagger

                GameObject loadObj = Resources.Load(HNGameManager.taggerPrefabPath[cbModelIndex]) as GameObject;
                role      = UnityEngine.Object.Instantiate(loadObj);
                role.name = HNGameManager.taggerPrefabNames[cbModelIndex];
                role.tag  = "Tagger";
                role.transform.SetParent(taggerTeam.transform, false);
                role.SetActive(true);

                Human human = role.GetComponent <Human>();
                if (human == null)
                {
                    human = role.AddComponent <Human>();
                }

                //Rigidbody rigi = role.AddComponent<Rigidbody>();
                //rigi.mass = 0.1f;
                //rigi.drag = 10;
                //rigi.useGravity = false;
                //rigi.constraints = RigidbodyConstraints.FreezeRotation;
            }
        }
        // Pos
        if (GameManager.ListTaggerPosition.Count != 0)
        {
            while (GameManager.RandomNumT.Count != GameManager.ListTaggerPosition.Count)
            {
                int index = (int)(MersenneTwister.MT19937.Int63() % GameManager.ListTaggerPosition.Count);
                if (!GameManager.ListRandomNumT.Contains((index)))
                {
                    GameManager.ListRandomNumT.Add(index);
                    GameManager.RandomNumT.Add(index, 0);
                }
            }
            if (role.tag == "LocalHuman")
            {
                if (GameManager.RandomNumT.Count > 0)
                {
                    role.transform.position          = GameManager.ListTaggerPosition[nChairID].transform.position;
                    role.transform.position         += new Vector3(0, 0.5f, 0);
                    role.transform.localEulerAngles  = GameManager.ListTaggerPosition[nChairID].transform.localEulerAngles;
                    GameManager.RandomNumT[nChairID] = 1;
                }
                HNGameManager.playerTeamPos = true;  //标记localHuman位置已设置,供断线重连使用
            }
            else
            {
                if (GameManager.RandomNumT.Count > 0)
                {
                    if (isAI)
                    {
                        //int RealPlayerNumT = GameObjectsManager.GetInstance().GetRealPlayerNum(PlayerTeamType.TaggerTeam);
                        //Debug.Log("+++++++++++++++++++ " + (RealPlayerNumT + cbAIId));
                        //role.transform.position = GameManager.ListTaggerPosition[GameManager.RandomNumT[(RealPlayerNumT + cbAIId) % GameManager.RandomNumT.Count]].transform.position;
                        //role.transform.localEulerAngles = GameManager.ListTaggerPosition[GameManager.RandomNumT[(RealPlayerNumT + cbAIId) % GameManager.RandomNumT.Count]].transform.localEulerAngles;
                        for (int i = 0; i < GameManager.RandomNumT.Count; i++)
                        {
                            if (GameManager.RandomNumT[GameManager.ListRandomNumT[i]] == 0)
                            {
                                role.transform.position         = GameManager.ListTaggerPosition[GameManager.ListRandomNumT[i]].transform.position;
                                role.transform.localEulerAngles = GameManager.ListTaggerPosition[GameManager.ListRandomNumT[i]].transform.localEulerAngles;
                                GameManager.RandomNumT[GameManager.ListRandomNumT[i]] = 1;
                                break;
                            }
                            else
                            {
                                continue;
                            }
                        }
                    }
                    else
                    {
                        role.transform.position          = GameManager.ListTaggerPosition[nChairID].transform.position;
                        role.transform.localEulerAngles  = GameManager.ListTaggerPosition[nChairID].transform.localEulerAngles;
                        GameManager.RandomNumT[nChairID] = 1;
                    }
                }
            }
        }

        //Add InfoPanelPref
        GameObject tempObj = Resources.Load("Player/Prefabs/InfoPanel") as GameObject;
        GameObject infoObj = UnityEngine.Object.Instantiate(tempObj);

        infoObj.name = "InfoPanel";
        infoObj.transform.SetParent(role.transform);
        infoObj.transform.localPosition = new Vector3(tempObj.transform.localPosition.x, 1.9f, tempObj.transform.localPosition.z);
        infoObj.transform.localScale    = tempObj.transform.localScale;

        // Add into Team
        PlayerBase player = role.GetComponent <PlayerBase>();

        player.PlayerIndexInTeam = playerIndexInTeam;
        player.TeamType          = PlayerTeamType.TaggerTeam;

        //mChen add, for HideSeek WangHu
        player.ChairID = nChairID;
        player.IsAI    = isAI;
        player.AIId    = cbAIId;

        //if (/*nChairID > HNGameManager.m_iLocalChairID && */!isAI)
        //{
        //    var kernel = (GameScene)CServerItem.get().GetClientKernelSink();
        //    if (kernel != null)
        //    {
        //        String[] str = kernel.getPlayerByChairID(nChairID).GetNickName().Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
        //        //UIManager.GetInstance().ShowMiddleTips(str[0] + "加入了房间!");
        //        Debug.Log("------------" + str[0]);
        //        ChatSystem.GetInstance.ShowChatText("通知", str[0] + " 加入了房间!");
        //    }
        //}

        _playerArray.Add(player);
        if (player.IsLocalHuman())
        {
            //根据所属队伍显示相应UI
            ControlManager.GetInstance().Init();
            ControlManager.GetInstance().ControlModelSwitch(ControlManager.CameraControlMode.FreeCameraMode);
            ControlManager.s_speed = PlayerBase.localHumanSpeed;
            ControlManager.GetInstance().SpeedChange(ControlManager.s_speed);
        }
        UIManager.GetInstance().StartPlayerJionDealInGaming((byte)player.ChairID);
        // Set AI name
        if (isAI)
        {
            //role.name = String.Format("机器人_{0}_{1}_{2}", nChairID, cbAIId, role.name);
            role.name = String.Format("{0}(机器人)", role.name);
        }
        return(player);
    }
コード例 #12
0
    void Start()
    {
        //mChen add, try to fix返回大厅后,有小概率HideTeam会剩余一个没清除
        GameObjectsManager.GetInstance().ClearPlayers();

        m_fDeltaTimeAfterLastClick = 0f;

        Debug.Log("startcj");
        Canvas         = GameObject.Find("Canvas");
        DiamondNum     = Canvas.transform.Find("Diamond/DiamondCount").GetComponent <Text>();
        GlodNum        = Canvas.transform.Find("Glod/GlodCount").GetComponent <Text>();
        StoreDiamonNum = Canvas.transform.Find("Window/StoreWindow/Diamond/DiamondCount").GetComponent <Text>();
        StoreGlodNum   = Canvas.transform.Find("Window/StoreWindow/Glod/GlodCount").GetComponent <Text>();

        ExpNum    = Canvas.transform.Find("Experience/ExperienceFill").GetComponent <Image>();
        ExpNumTxt = Canvas.transform.Find("Experience/Level").GetComponent <Text>();
        Name      = Canvas.transform.Find("User/Name").GetComponent <Text>();
        Name.text = GlobalUserInfo.getNickName();
        ID        = Canvas.transform.Find("User/ID").GetComponent <Text>();
        ID.text   = GlobalUserInfo.getUserID().ToString();

        RoomIdValue   = 0;
        hnGameManager = GameObject.FindObjectOfType <HNGameManager>();

        //GameHall场景隐藏GameLogoUI
        hnGameManager.gameplayUIETC.SetActive(false);
        hnGameManager.gamePlayUI_HT.SetActive(false);

        HeadImage = Canvas.transform.Find("User/UserMask/UserImage").GetComponent <Image>();
        if (hnGameManager != null)
        {
            //Sound
            Slider musicSlider = transform.Find("SetupWindow/Music/Slider").GetComponent <Slider>();
            if (musicSlider != null)
            {
                musicSlider.value = hnGameManager.BackgroundAudioSource.volume;
            }

            Slider soundSlider = transform.Find("SetupWindow/Sound/Slider").GetComponent <Slider>();
            if (soundSlider != null)
            {
                soundSlider.value = hnGameManager.GlobalEffectAudioSource.volume;
            }

            //Rule
            hnGameManager.m_baseScore          = 1;
            hnGameManager.m_cbPlayCoutIdex     = 0;
            hnGameManager.m_cbPlayCostTypeIdex = 1;

            //mChen add, for HideSeek
            hnGameManager.m_cbGameEndReason = HNMJ_Defines.GER_NOT_END;
        }

        //控制方案切换
        ControlCase = Canvas.transform.Find("Window/SetupWindow/ControlCase").GetComponent <Button>();
        ControlCase.gameObject.GetComponent <Image>().sprite = Resources.Load("UI/EasyTouchCase/" + HNGameManager.ControlCase, typeof(Sprite)) as Sprite;
        ControlCase.onClick.RemoveAllListeners();
        ControlCase.onClick.AddListener(() =>
        {
            HNGameManager.ControlCase++;
            HNGameManager.ControlCase %= 4;
            ControlCase.gameObject.GetComponent <Image>().sprite = Resources.Load("UI/EasyTouchCase/" + HNGameManager.ControlCase, typeof(Sprite)) as Sprite;
        });
        //ControlType.Add(Canvas.transform.Find("Window/SetupWindow/Joystick/ChangeWindow/BackImage/Joystick1").gameObject.GetComponent<Toggle>());
        //ControlType.Add(Canvas.transform.Find("Window/SetupWindow/Joystick/ChangeWindow/BackImage/Joystick2").gameObject.GetComponent<Toggle>());
        UpdateControlType();
        UserInfo.getInstance().reqAccountInfo();
    }
コード例 #13
0
 /// <summary>
 /// 添加用户缓存
 /// </summary>
 /// <returns>The user cache async.</returns>
 /// <param name="user">User.</param>
 public async Task <bool> AddUserCacheAsync(GlobalUserInfo user)
 {
     return(await RedisHelper.HSetAsync(_hashkey, user.UserId.ToString(), user));
 }
コード例 #14
0
 public void ShowPlayerList()
 {
     for (PlayerTeam.PlayerTeamType teamType = PlayerTeam.PlayerTeamType.TaggerTeam; teamType < PlayerTeam.PlayerTeamType.MaxTeamNum; teamType++)
     {
         PlayerTeam team = GameObjectsManager.GetInstance().GetPlayerTeam(teamType);
         for (int i = 0; i < team.GetPlayerNum(); i++)
         {
             PlayerBase playerBase = GameObjectsManager.GetInstance().GetPlayer(teamType, i);
             if (playerBase != null)
             {
                 if (playerBase.TeamType == PlayerTeam.PlayerTeamType.TaggerTeam)
                 {
                     TaggerList[i].transform.Find("NumInfo").GetComponent <Text>().text = (i + 1).ToString();
                     string name  = "";
                     string state = "";
                     if (playerBase.IsAI)
                     {
                         //String[] str = playerBase.gameObject.name.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                         //name = str[0] + "_" + str[1] + "_" + str[2];
                         name = playerBase.gameObject.name;
                     }
                     else
                     {
                         if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
                         {
                             String[] str = GlobalUserInfo.getNickName().Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
                             name = str[0];
                         }
                         else if (GameManager.s_gameSingleMultiType == GameSingleMultiType.MultiGame_WangHu)
                         {
                             var    kernel = (GameScene)CServerItem.get().GetClientKernelSink();
                             string strNN  = kernel.getPlayerByChairID(playerBase.ChairID).GetNickName();
                             if (strNN != "")
                             {
                                 String[] str = strNN.Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
                                 name = str[0];
                             }
                             else
                             {
                                 name  = playerBase.gameObject.name;
                                 state = "离开";
                             }
                         }
                     }
                     TaggerList[i].transform.Find("NameInfo").GetComponent <Text>().text = name;
                     if (playerBase.Hp != 0)
                     {
                         TaggerList[i].transform.Find("State").GetComponent <Text>().text = "";
                     }
                     else
                     {
                         TaggerList[i].transform.Find("State").GetComponent <Text>().text = "失败";
                     }
                     if (state == "离开")
                     {
                         TaggerList[i].transform.Find("State").GetComponent <Text>().text = "离开";
                     }
                     TaggerList[i].SetActive(true);
                 }
                 else
                 {
                     HideList[i].transform.Find("NumInfo").GetComponent <Text>().text = (i + 1).ToString();
                     string name  = "";
                     string state = "";
                     if (playerBase.IsAI)
                     {
                         //String[] str = playerBase.gameObject.name.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                         //name = str[0] + "_" + str[1] + "_" + str[2];
                         name = "机器人";
                     }
                     else
                     {
                         if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
                         {
                             String[] str = GlobalUserInfo.getNickName().Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
                             name = str[0];
                         }
                         else if (GameManager.s_gameSingleMultiType == GameSingleMultiType.MultiGame_WangHu)
                         {
                             var    kernel = (GameScene)CServerItem.get().GetClientKernelSink();
                             string strNN  = kernel.getPlayerByChairID(playerBase.ChairID).GetNickName();
                             if (strNN != "")
                             {
                                 String[] str = strNN.Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
                                 name = str[0];
                             }
                             else
                             {
                                 name  = playerBase.gameObject.name;
                                 state = "离开";
                             }
                         }
                     }
                     HideList[i].transform.Find("NameInfo").GetComponent <Text>().text = name;
                     if (playerBase.Hp != 0)
                     {
                         HideList[i].transform.Find("State").GetComponent <Text>().text = "";
                     }
                     else
                     {
                         HideList[i].transform.Find("State").GetComponent <Text>().text = "被发现";
                     }
                     if (state == "离开")
                     {
                         HideList[i].transform.Find("State").GetComponent <Text>().text = "离开";
                     }
                     HideList[i].SetActive(true);
                 }
             }
         }
     }
 }
コード例 #15
0
    //显示头顶信息
    public void ShowPlayerTopHeadInfo(PlayerBase playerBase)
    {
        if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
        {
            if (GameManager.s_singleGameStatus == SocketDefines.GAME_STATUS_HIDE || GameManager.s_singleGameStatus == SocketDefines.GAME_STATUS_PLAY)
            {
                Human localHuman = GameObjectsManager.GetInstance().GetLocalHuman();
                if (localHuman != null)
                {
                    //本地玩家为警察时不显示躲藏者信息
                    if (localHuman.TeamType == PlayerTeam.PlayerTeamType.TaggerTeam && playerBase.TeamType == PlayerTeam.PlayerTeamType.HideTeam)
                    {
                        playerBase.SetTopInfoVisible(false);
                        return;
                    }
                    goto TopHeadInfo;
                }
                return;
            }
            else
            {
                return;
            }
        }
        else
        {
            if (CServerItem.get() == null)
            {
                return;
            }
            byte Gamestate = CServerItem.get().GetGameStatus();
            if (Gamestate == SocketDefines.GAME_STATUS_HIDE || Gamestate == SocketDefines.GAME_STATUS_PLAY)
            {
                Human localHuman = GameObjectsManager.GetInstance().GetLocalHuman();
                if (localHuman != null)
                {
                    //本地玩家为警察时不显示躲藏者信息
                    if (localHuman.TeamType == PlayerTeam.PlayerTeamType.TaggerTeam && playerBase.TeamType == PlayerTeam.PlayerTeamType.HideTeam)
                    {
                        playerBase.SetTopInfoVisible(false);
                        return;
                    }
                    goto TopHeadInfo;
                }
                else
                {
                    IClientUserItem pMeItem = CServerItem.get().GetMeUserItem();
                    if (pMeItem == null)
                    {
                        return;
                    }

                    int nStatus = pMeItem.GetUserStatus();
                    if (nStatus == SocketDefines.US_LOOKON)
                    {
                        goto TopHeadInfo;
                    }
                }
            }
            else
            {
                return;
            }
        }

TopHeadInfo:
        {
            GameObject InfoPanelObj = playerBase.gameObject.transform.Find("InfoPanel").gameObject;
            if (InfoPanelObj != null)
            {
                TextMesh nameText  = InfoPanelObj.transform.Find("Name").GetComponent <TextMesh>();
                TextMesh levelText = InfoPanelObj.transform.Find("Level").GetComponent <TextMesh>();
                if (playerBase.IsAI)
                {
                    nameText.text  = playerBase.gameObject.name;
                    nameText.color = Color.white;

                    if (levelText.text == "")
                    {
                        levelText.text = "等级:" + UnityEngine.Random.Range(0, 100);
                    }
                    levelText.color = Color.white;
                }
                else
                {
                    var    kernel = (GameScene)CServerItem.get().GetClientKernelSink();
                    string strNN  = "";
                    if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
                    {
                        strNN = GlobalUserInfo.getNickName();
                    }
                    else if (GameManager.s_gameSingleMultiType == GameSingleMultiType.MultiGame_WangHu)
                    {
                        if (kernel != null)
                        {
                            strNN = kernel.getPlayerByChairID(playerBase.ChairID).GetNickName();
                        }
                    }
                    if (strNN != "")
                    {
                        String[] str = strNN.Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
                        nameText.text  = str[0];
                        nameText.color = Color.white;
                        if (kernel != null)
                        {
                            tagUserInfo userInfo = (tagUserInfo)kernel.getPlayerByChairID(playerBase.ChairID).GetUserInfo();
                            levelText.text = "等级:" + (userInfo.lExperience / 100).ToString();
                        }
                        else
                        {
                            levelText.text = "等级:" + (GlobalUserInfo.getUserExp() / 100).ToString();
                        }
                        levelText.color = Color.white;
                    }
                }
                if (InfoPanelObj != null)
                {
                    InfoPanelObj.transform.LookAt(Camera.main.transform);
                }
            }
            return;
        }
    }
コード例 #16
0
    // Use this for initialization
    void Start()
    {
        GlobalUserInfo    pGlobalUserInfo = GameNet.GlobalUserInfo.GetInstance();
        tagGlobalUserData pGlobalUserData = pGlobalUserInfo.GetGlobalUserData();

        var hnManger = GameObject.Find("HNGameManager").GetComponent <HNGameManager>();

#if (UNITY_IPHONE || UNITY_ANDROID) && !UNITY_EDITOR
        //StartCoroutine(HeaderImageLoadAndShow());
#endif

#if UNITY_IPHONE
        if (pGlobalUserData.bGPIsForAppleReview)
        {
            GameObject canvesTmp = GameObject.Find("Canvas");
            if (canvesTmp != null)
            {
                var inviteObj = canvesTmp.transform.Find("Panel/FunctionButtons/Invite");
                if (inviteObj != null)
                {
                    inviteObj.gameObject.SetActive(false);
                }
            }
        }
#endif

        //PlayerName.text = LoginScene.m_kNickName;
        //PlayerID.text = GlobalUserInfo.getUserID().ToString();
        //Distinction.sprite = hnManger.GenderSprites[LoginScene.m_bMale ? 1 : 0];

        if (hnManger != null)
        {
            string strMatchTime = string.Format("比赛时间:  {0:D2}:{1:D2}", hnManger.m_matchStartTime.wHour, hnManger.m_matchStartTime.wMinute);
            strMatchTime = strMatchTime + string.Format("~{0:D2}:{1:D2}", hnManger.m_matchEndTime.wHour, hnManger.m_matchEndTime.wMinute);
            //MatchTimeLabel.text = strMatchTime;
        }

        if (pGlobalUserData.iSpreaderLevel >= 0)
        {
            GameObject canves = GameObject.Find("Canvas");
            if (canves != null)
            {
                var surrogateObj = canves.transform.Find("Panel/FunctionButtons/Surrogate");
                if (surrogateObj != null)
                {
                    surrogateObj.gameObject.SetActive(true);
                }
            }
        }

        GetComponent <Button>().onClick.RemoveAllListeners();
        GetComponent <Button>().onClick.AddListener(delegate()
        {
            UserInfoWindow.SetActive(true);
#if (UNITY_IPHONE || UNITY_ANDROID) && !UNITY_EDITOR
            UserInfoWindow.transform.Find("UserImage").GetComponent <Image>().sprite = HeaderImage.sprite;
#endif
            UserInfoWindow.transform.Find("UserInfo/NameText").GetComponent <Text>().text = PlayerName.text;
            UserInfoWindow.transform.Find("UserInfo/IDText").GetComponent <Text>().text   = PlayerID.text;
            UserInfoWindow.transform.Find("UserInfo/IPText").GetComponent <Text>().text   = Encoding.Default.GetString(pGlobalUserData.szLogonIP);
            UserInfoWindow.transform.Find("UserInfo/DateText").GetComponent <Text>().text =
                DateTime.Today.ToShortDateString();
        });
    }
コード例 #17
0
    public void SetUserInfo()
    {
        GlobalUserInfo    pGlobalUserInfo = GlobalUserInfo.GetInstance();
        tagGlobalUserData pGlobalUserData = pGlobalUserInfo.GetGlobalUserData();

        CMD_GP_ModUserInfo pData = new CMD_GP_ModUserInfo();

        pData.Init();

        if (strName == null)
        {
            Buffer.BlockCopy(pGlobalUserData.szNickName, 0, pData.szNickName, 0, pGlobalUserData.szNickName.Length);
        }
        else
        {
            byte[] szNickName = Encoding.GetEncoding(936).GetBytes(strName);
            Buffer.BlockCopy(szNickName, 0, pData.szNickName, 0, szNickName.Length);
        }
        if (headIndex == -1)  //预留自定义头像,使用自定义头像时headIndex需置为-1
        {
            Buffer.BlockCopy(pGlobalUserData.szHeadHttp, 0, pData.szHeadHttp, 0, pGlobalUserData.szHeadHttp.Length);
        }
        else
        {
            byte[] szHeadIndex = Encoding.GetEncoding(936).GetBytes(headIndex.ToString());
            Buffer.BlockCopy(szHeadIndex, 0, pData.szHeadHttp, 0, szHeadIndex.Length);
        }

        if (!BWFManager.Contains(strName))
        {
            bool   isNameEquals = true;
            bool   isHeadEquals = true;
            string name1        = Encoding.Default.GetString(pData.szNickName);
            string name2        = Encoding.Default.GetString(pGlobalUserData.szNickName);
            string head1        = Encoding.Default.GetString(pData.szHeadHttp);
            string head2        = Encoding.Default.GetString(pGlobalUserData.szHeadHttp);
            if (name1.Length != name2.Length)
            {
                isNameEquals = false;
            }
            else
            {
                for (int i = 0; i < name1.Length; i++)
                {
                    if (name1[i] == name2[i])
                    {
                        continue;
                    }
                    else
                    {
                        isNameEquals = false;
                        break;
                    }
                }
            }
            if (head1.Length != head2.Length)
            {
                isHeadEquals = false;
            }
            else
            {
                for (int i = 0; i < head1.Length; i++)
                {
                    if (head1[i] == head2[i])
                    {
                        continue;
                    }
                    else
                    {
                        isHeadEquals = false;
                        break;
                    }
                }
            }
            if (!isNameEquals || !isHeadEquals)
            {
                UserInfo.getInstance().modeUserInfo(pData);
                //修改玩资料后,临时变量清空
                strName = null;
                Canvas.transform.Find("Window/UserEditorWindow/UserInfo/UserNameField").GetComponent <InputField>().text = "";
            }
            else if (isNameEquals)
            {
                GameSceneUIHandler.ShowLog("您当前正在使用该昵称!");
            }
        }
        else
        {
            GameSceneUIHandler.ShowLog("该昵称包含敏感词汇,无法使用");
        }
    }
コード例 #18
0
    void Awake()
    {
        Debug.Log("CreateObjectManager Awake()");
        ItemListManager.GetInstance.LoadAndDeserialize();
        m_GameObjectItemList = ItemListManager.GetInstance.items.ItemList;
        for (int i = 0; i < m_GameObjectItemList.Count; i++)
        {
            Scheme            schemeTemp      = null;
            GlobalUserInfo    pGlobalUserInfo = GlobalUserInfo.GetInstance();
            tagGlobalUserData pGlobalUserData = pGlobalUserInfo.GetGlobalUserData();
            string            mapname         = "";
            if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
            {
                mapname = ItemListManager.GetInstance.GetMapName(pGlobalUserData.cbMapIndexRandForSingleGame);
            }
            else if (GameManager.s_gameSingleMultiType == GameSingleMultiType.MultiGame_WangHu)
            {
                mapname = ItemListManager.GetInstance.GetMapName(pGlobalUserData.cbMapIndexRand);
            }
            //string mapname = ItemListManager.GetInstance.GetMapName(pGlobalUserData.cbMapIndexRand);
            if (mapname != m_GameObjectItemList[i].Map)
            {
                continue;
            }
            else
            {
                schemeTemp = m_GameObjectItemList[i].SchemeItem;
            }
            for (int k = 0; k < schemeTemp.ModelNameList.Count; k++)
            {
                String[] str = schemeTemp.ModelNameList[k].FileName.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries);
                switch (Convert.ToInt32(str[str.Length - 1]))
                {
                case 0:     //大
                    m_NameL.Add(schemeTemp.ModelNameList[k].FileName);
                    m_PathL.Add(schemeTemp.ModelNameList[k].Path);
                    break;

                case 1:     //中
                    m_NameM.Add(schemeTemp.ModelNameList[k].FileName);
                    m_PathM.Add(schemeTemp.ModelNameList[k].Path);
                    break;

                case 2:     //小
                    m_NameS.Add(schemeTemp.ModelNameList[k].FileName);
                    m_PathS.Add(schemeTemp.ModelNameList[k].Path);
                    break;
                }
            }
        }
        GameObject[] tempL = GameObject.FindGameObjectsWithTag("BigPoint").OrderBy(g => g.transform.GetSiblingIndex()).ToArray();
        for (int i = 0; i < tempL.Length; i++)
        {
            m_GameObjectL.Add(tempL[i]);
        }
        GameObject[] tempM = GameObject.FindGameObjectsWithTag("MiddlePoint").OrderBy(g => g.transform.GetSiblingIndex()).ToArray();
        for (int i = 0; i < tempM.Length; i++)
        {
            m_GameObjectM.Add(tempM[i]);
        }
        GameObject[] tempS = GameObject.FindGameObjectsWithTag("SmallPoint").OrderBy(g => g.transform.GetSiblingIndex()).ToArray();
        for (int i = 0; i < tempS.Length; i++)
        {
            m_GameObjectS.Add(tempS[i]);
        }
    }
コード例 #19
0
    public void PickupObject(GameObject objToPick, Vector3 pickupPos)
    {
        if (gameObject.GetComponent <PlayerBase>().TeamType == PlayerTeam.PlayerTeamType.HideTeam)  //躲藏的玩家无法执行找操作
        {
            return;
        }
        else
        {
            if (GameManager.s_gameSingleMultiType == GameSingleMultiType.MultiGame_WangHu)
            {
                byte Gamestate = CServerItem.get().GetGameStatus();
                if (Gamestate != SocketDefines.GAME_STATUS_PLAY)
                {
                    return;
                }
            }
            else if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
            {
                if (GameManager.s_singleGameStatus != SocketDefines.GAME_STATUS_PLAY)
                {
                    return;
                }
            }
        }
        if (objToPick == null || this.Hp <= 0)
        {
            return;
        }

        if (this.IsAI)
        {
            //AI没有用射线检测,也就没有距离判断,所以这里要加入

            Vector3 distToPick = objToPick.transform.position - this.transform.position;
            if (distToPick.magnitude > ControlManager.s_MaxTouchCheckDistance)
            {
                Debug.LogError("-----------距离过远!!!!!" + distToPick.magnitude + " " + objToPick.transform.position + " " + this.transform.position);
                //if (objToPick.tag == "Hide" || objToPick.tag == "NormalFurniture") //objToPick.name
                {
                    UIManager.GetInstance().ShowPickupTooFarText();

                    return;
                }
            }
        }

        if (GameManager.s_gameSingleMultiType == GameSingleMultiType.MultiGame_WangHu)
        {
            // Pick event sync
            PlayerEventItem pickEvent = new PlayerEventItem();
            pickEvent.cbTeamType  = (byte)TeamType;
            pickEvent.wChairId    = (ushort)ChairID;
            pickEvent.cbAIId      = (byte)AIId;
            pickEvent.cbEventKind = (byte)PlayerBase.PlayerEventKind.Pick;
            GameObjectsManager.GetInstance().PlayerEventList.Add(pickEvent);
        }
        else
        {
            if (IsAI || !ControlManager.isPerson_1st)  //只有第三人称才有拾取动画
            {
                if (IsLocalHuman())
                {
                    EnableModelDisplay();
                }

                PlayPickupAnim();
                //if (_avatarAnimator != null)
                //{
                //    _avatarAnimator.SetBool("Pickup_b", true);
                //}
            }
        }

        PlayerBase pickedPlayer    = null;
        string     strObjToPickTag = null;

        if (this.IsAI)
        {
            //this是AI时,传的objToPick是根节点(PlayerBase都在根节点)

            pickedPlayer = objToPick.GetComponent <PlayerBase>();

            if (pickedPlayer == null)
            {
                //objToPick是场景中的物体,不是躲藏者

                strObjToPickTag = objToPick.tag;
            }
            else
            {
                Transform model = pickedPlayer.transform.FindChild("Model");
                if (model != null)
                {
                    strObjToPickTag = model.tag;    //tag在model节点
                }
                else
                {
                    Debug.LogError("PickupObject IsAI: model==null");
                }
            }
        }
        else
        {
            //this不是AI时,objToPick如果是躲藏者,传的是Model子节点,否则传的也是根节点

            pickedPlayer = objToPick.transform.parent.GetComponent <PlayerBase>();
            if (pickedPlayer == null)
            {
                //objToPick是场景中的物体,不是躲藏者

                strObjToPickTag = objToPick.tag;
            }
            else
            {
                strObjToPickTag = objToPick.tag;
            }
        }

        if (strObjToPickTag == "Hide" || (strObjToPickTag == "LocalHuman" && pickedPlayer != null && pickedPlayer.TeamType == PlayerTeam.PlayerTeamType.HideTeam)) //objToPick.name
        {
            ObjNamePicked = pickedPlayer.gameObject.name;
            Debug.Log(gameObject.name + " touched Hide: " + ObjNamePicked);

            if (IsLocalHuman())
            {
                Debug.Log("I'm touched Hide: " + ObjNamePicked);
            }

            // Check if objToPick is alive
            if (pickedPlayer != null)
            {
                if (pickedPlayer.IsDead())
                {
                    Debug.Log("It was already dead!");
                }
                else
                {
                    if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
                    {
                        if (IsAI && pickedPlayer.m_isStealth == 1) //AI警察不点隐身的躲藏者
                        {
                            return;
                        }
                        //击杀信息
                        if (gameObject.GetComponent <PlayerBase>().IsAI)
                        {
                            //String[] str = gameObject.name.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                            //String[] pickedStr = pickedPlayer.gameObject.name.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                            UIManager.GetInstance().ShowMiddleTips(gameObject.name + " 找到了: " + pickedPlayer.gameObject.name);
                        }
                        else
                        {
                            String[] str = GlobalUserInfo.getNickName().Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
                            //String[] pickedStr = pickedPlayer.gameObject.name.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                            UIManager.GetInstance().ShowMiddleTips(str[0] + " 找到了: " + pickedPlayer.gameObject.name);
                        }

                        // Heal self
                        AddHP();

                        if (m_hnGameManager != null && IsLocalHuman())  //本地玩家找到躲藏者提示
                        {
                            m_hnGameManager.PlaySoundEffect(-1, (int)AudioManager.Sound_Effect_Defines.SOUND_HIDE_BEFOUNDED);
                        }

                        // make pickedPlayer dead and destroy later
                        pickedPlayer.MakeDead();
                        //if (!pickedPlayer.IsAI)
                        //{
                        //    PlayerChairIDOfPickedDead = pickedPlayer.ChairID;
                        //}
                    }
                    else
                    {
                        //Debug.LogWarning("+++++++++++++++++ " + pickedPlayer.m_isStealth + " " + IsAI);
                        if (pickedPlayer.m_isStealth == 1 && IsAI)  //AI警察不点隐身的躲藏者
                        {
                            //Debug.LogWarning("----------玩家隐身中");
                            return;
                        }
                        // Dead event sync
                        PlayerEventItem deadEvent = new PlayerEventItem();
                        deadEvent.cbTeamType  = (byte)pickedPlayer.TeamType;
                        deadEvent.wChairId    = (ushort)pickedPlayer.ChairID;
                        deadEvent.cbAIId      = pickedPlayer.AIId;
                        deadEvent.cbEventKind = (byte)PlayerEventKind.DeadByPicked;
                        //killer
                        deadEvent.nCustomData0 = (Int32)this.TeamType;
                        deadEvent.nCustomData1 = (Int32)this.ChairID;
                        deadEvent.nCustomData2 = (Int32)this.AIId;
                        GameObjectsManager.GetInstance().PlayerEventList.Add(deadEvent);
                    }

                    //警察找到躲藏者加分
                    GameScore += 50;
                }
            }
        }
        else if (strObjToPickTag == "NormalFurniture")
        {
            ObjNamePicked = objToPick.transform.parent.name;
            Debug.Log("touched normal furniture: " + ObjNamePicked);

            UIManager.GetInstance().ShowPickupWrongUI(pickupPos); //hit.point

            if (m_hnGameManager != null && IsLocalHuman())        //本地玩家点击错误物体提示
            {
                m_hnGameManager.PlaySoundEffect(-1, (int)AudioManager.Sound_Effect_Defines.SOUND_EFFECT_PickObj);
            }
            if (IsLocalHuman())
            {
                UIManager.GetInstance().ShowMiddleTips("该物品不是玩家!");
            }
            if (UIManager.TimeLeft <= 45)   //剩余时间小于45秒时,警察无敌
            {
                return;
            }

            // Hurt self
            if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
            {
                DecHP();
            }
            else
            {
                PlayerEventItem decHpEvent = new PlayerEventItem();
                decHpEvent.cbTeamType  = (byte)this.TeamType;
                decHpEvent.wChairId    = (ushort)this.ChairID;
                decHpEvent.cbAIId      = (byte)this.AIId;
                decHpEvent.cbEventKind = (byte)PlayerBase.PlayerEventKind.DecHp;
                GameObjectsManager.GetInstance().PlayerEventList.Add(decHpEvent);
            }
        }
        else if (strObjToPickTag == "Tagger")
        {
            ObjNamePicked = pickedPlayer.gameObject.name;
            Debug.Log("touched Tagger: " + ObjNamePicked);
        }
        else
        {
            Debug.LogError("PickupObject: incorrect objToPickTag=" + strObjToPickTag);
        }


        //判断是否团灭
        int taggerCount = 0;
        int hideCount   = 0;

        for (PlayerTeam.PlayerTeamType teamType = PlayerTeam.PlayerTeamType.TaggerTeam; teamType < PlayerTeam.PlayerTeamType.MaxTeamNum; teamType++)
        {
            PlayerTeam team = GameObjectsManager.GetInstance().GetPlayerTeam(teamType);
            if (team == null)
            {
                continue;
            }
            for (int i = 0; i < team.GetPlayerNum(); i++)
            {
                PlayerBase playerBase = GameObjectsManager.GetInstance().GetPlayer(teamType, i);
                if (playerBase != null && playerBase.Hp != 0)
                {
                    if (teamType == PlayerTeam.PlayerTeamType.TaggerTeam)
                    {
                        taggerCount++;
                    }
                    else if (teamType == PlayerTeam.PlayerTeamType.HideTeam)
                    {
                        hideCount++;
                    }
                }
            }
        }
        if (taggerCount == 0 || hideCount == 0)
        {
            if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
            {
                if (UIManager.GetInstance() != null)
                {
                    UIManager.GetInstance().ShowWinOrLose();
                }
                m_hnGameManager.StopSingleGame();
                m_hnGameManager.PlayAgainSingleGame();
            }
        }
    }
コード例 #20
0
    void InventoryCreate()
    {
        Debug.LogWarning("InventoryCreate: ListInventoryPoint.Count = " + ListInventoryPoint.Count);
        if (ListInventoryPoint.Count > MAX_INVENTORY_NUM)
        {
            Debug.LogError("InventoryCreate: incorrect ListInventoryPoint.Count = " + ListInventoryPoint.Count);
            return;
        }

        ListInventory.Clear();
        GameObject InventoryObject = GameObject.Find("InventoryObject");

        if (GameManager.s_gameSingleMultiType == GameSingleMultiType.SingleGame)
        {
            for (int i = 0; i < ListInventoryPoint.Count; i++)
            {
                if (ListInventoryPoint[i] != null)
                {
                    int        index   = Random.Range(0, 100) % m_inventoryName.Length;
                    GameObject loadObj = Resources.Load("Player/Prefabs/Invenrtory/" + m_inventoryName[index]) as GameObject;
                    GameObject temp    = Instantiate(loadObj);

                    temp.transform.SetParent(InventoryObject.transform, false);
                    temp.transform.position = ListInventoryPoint[i].transform.position;
                    temp.name = m_inventoryName[index];

                    InventoryObjItem item = new InventoryObjItem();
                    item.id     = (byte)i;
                    item.obj    = temp;
                    item.bUsed  = false;
                    item.bTaked = false;
                    ListInventory.Add(item);
                }
            }
        }
        else if (GameManager.s_gameSingleMultiType == GameSingleMultiType.MultiGame_WangHu)
        {
            GlobalUserInfo    pGlobalUserInfo = GlobalUserInfo.GetInstance();
            tagGlobalUserData pGlobalUserData = pGlobalUserInfo.GetGlobalUserData();
            MersenneTwister.MT19937.Seed((ulong)pGlobalUserData.wRandseedForInventory);

            for (int i = 0; i < ListInventoryPoint.Count; i++)
            {
                InventoryType inventoryType = (InventoryType)pGlobalUserData.sInventoryList[i].cbType;

                if (ListInventoryPoint[i] != null && pGlobalUserData.sInventoryList[i].cbUsed == 0)
                {
                    //Debug.LogWarning("InventoryCreate: inventoryType=" + inventoryType + " i=" + i);
                    if (inventoryType >= InventoryType.Inventory_Type_Num)
                    {
                        Debug.LogError("InventoryCreate: incorrect inventoryType=" + inventoryType + " i=" + i);
                    }

                    int        index   = (int)inventoryType;// (int)(MersenneTwister.MT19937.Int63() % m_inventoryName.Length);
                    GameObject loadObj = Resources.Load("Player/Prefabs/Invenrtory/" + m_inventoryName[index]) as GameObject;
                    GameObject temp    = Instantiate(loadObj);

                    temp.transform.SetParent(InventoryObject.transform, false);
                    temp.transform.position = ListInventoryPoint[i].transform.position;
                    temp.name = m_inventoryName[index];

                    InventoryObjItem item = new InventoryObjItem();
                    item.id     = (byte)i;
                    item.obj    = temp;
                    item.bUsed  = false;
                    item.bTaked = false;
                    ListInventory.Add(item);
                }
            }
        }
    }