少年修仙传客户端代码仓库
client_linchunjie
2018-11-05 91e536a44e0ec86c1363e428c1cfdfb585eabaaf
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
2个文件已修改
196 ■■■■■ 已修改文件
Fight/GameActor/GA_NpcFunc.cs 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorNpcNoFight.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_NpcFunc.cs
@@ -12,6 +12,16 @@
    private H0406_tagNPCAppear m_H0406;
    private HeadUpQuestSign m_MissionSign;
    private int m_WeaponID;
    private int m_SecondaryID;
    private int m_WingID;
    private int m_HorseID;
    private GameObject m_WeaponModel;
    private GameObject m_SecondaryModel;
    private GameObject m_WingModel;
    private GameObject m_HorseModel;
    protected override void OnInit(GameNetPackBasic package)
    {
        m_H0406 = package as H0406_tagNPCAppear;
@@ -63,10 +73,176 @@
        {
            Pos = Constants.Special_Hide_Position;
        }
        if (m_HorseModel)
        {
            m_HorseModel.transform.SetParent(m_Root);
            m_HorseModel.transform.localPosition = Vector3.zero;
            m_HorseModel.transform.localRotation = Quaternion.identity;
            var _horseConfig = Config.Instance.Get<HorseConfig>(m_HorseID);
            var _modelResConfig = Config.Instance.Get<ModelResConfig>(_horseConfig.Model);
            var _horseBindNode = m_HorseModel.transform.GetChildTransformDeeply(_modelResConfig.BindPoint);
            if (_horseBindNode)
            {
                m_Model.transform.SetParent(_horseBindNode);
                m_Model.transform.localPosition = Vector3.zero;
                m_Model.transform.localEulerAngles = new Vector3(90, 0, 0);
                var _animator = m_Model.GetComponent<Animator>();
                _animator.SetInteger(GAStaticDefine.Param_Action, GAStaticDefine.Act_HorseIdle);
                switch (_horseConfig.ActionType)
                {
                    case 0:
                        _animator.Play(GAStaticDefine.State_HorseIdleHash);
                        break;
                    case 1:
                        _animator.Play(GAStaticDefine.State_HorseIdle1Hash);
                        break;
                    case 2:
                        _animator.Play(GAStaticDefine.State_HorseIdle2Hash);
                        break;
                    case 3:
                        _animator.Play(GAStaticDefine.State_HorseIdle3Hash);
                        break;
                    case 4:
                        _animator.Play(GAStaticDefine.State_HorseIdle4Hash);
                        break;
                }
            }
        }
        else if (m_Model)
        {
            m_Model.transform.SetParent(m_Root);
            m_Model.transform.localPosition = Vector3.zero;
            m_Model.transform.localRotation = Quaternion.identity;
        }
    }
    public override void InitPerformance(uint clientInstID, int npcID)
    {
        base.InitPerformance(clientInstID, npcID);
        if (string.IsNullOrEmpty(NpcConfig.Equips))
        {
            return;
        }
        string[] _ids = NpcConfig.Equips.Split('|');
        int _weaponId = int.Parse(_ids[0]);
        int _secondaryId = _ids.Length > 1 ? int.Parse(_ids[1]) : -1;
        int _horseId = _ids.Length > 2 ? int.Parse(_ids[2]) : -1;
        int _wingId = _ids.Length > 3 ? int.Parse(_ids[3]) : -1;
        // Debug.LogFormat("weapon: {0}, secondary: {1}, horse: {2}, wing: {3}", _weaponId, _secondaryId, _horseId, _weaponId);
        int _job = NpcConfig.MODE.Contains("A_Zs") ? 1 : 2;
        if (_weaponId > 0)
        {
            SetEquip(_weaponId, GAStaticDefine.WeaponBindBoneName, ref m_WeaponModel, ref m_WeaponID);
        }
        if (_secondaryId > 0)
        {
            SetEquip(_secondaryId, GAStaticDefine.SecondaryBindBoneName[_job - 1], ref m_SecondaryModel, ref m_SecondaryID);
        }
        if (_wingId > 0)
        {
            SetEquip(_wingId, GAStaticDefine.WingBindBoneName, ref m_WingModel, ref m_WingID);
        }
        if (_horseId > 0)
        {
            var _horseConfig = Config.Instance.Get<HorseConfig>(_horseId);
            var _modelResConfig = Config.Instance.Get<ModelResConfig>(_horseConfig.Model);
            var _prefab = InstanceResourcesLoader.LoadModelRes(_modelResConfig.ID);
            m_HorseModel = GameObjectPoolManager.Instance.RequestGameObject(_prefab);
            var _animator = m_HorseModel.GetComponent<Animator>();
            if (_animator)
            {
                _animator.runtimeAnimatorController = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                                                                 _modelResConfig.ResourcesName);
            }
            _animator.enabled = true;
            m_HorseID = _horseId;
        }
    }
    private void SetEquip(int resID, string bindNodeName, ref GameObject model, ref int id)
    {
        if (resID > 0)
        {
            GameObject _prefab = InstanceResourcesLoader.LoadModelRes(resID);
            model = GameObjectPoolManager.Instance.RequestGameObject(_prefab);
            Transform _weaponNode = m_Model.transform.GetChildTransformDeeply(bindNodeName);
            model.transform.SetParent(_weaponNode);
            model.transform.localPosition = Vector3.zero;
            model.transform.localRotation = Quaternion.identity;
            id = resID;
        }
    }
    protected override void OnUnit()
    {
        if (m_WeaponModel)
        {
            var _prefab = InstanceResourcesLoader.LoadModelRes(m_WeaponID);
            if (_prefab)
            {
                GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_WeaponModel);
                m_WeaponModel = null;
                m_WeaponID = 0;
            }
        }
        if (m_SecondaryModel)
        {
            var _prefab = InstanceResourcesLoader.LoadModelRes(m_SecondaryID);
            if (_prefab)
            {
                GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_SecondaryModel);
                m_SecondaryModel = null;
                m_SecondaryID = 0;
            }
        }
        if (m_WingModel)
        {
            var _animator = m_WingModel.GetComponent<Animator>();
            if (_animator)
            {
                _animator.enabled = false;
            }
            var _prefab = InstanceResourcesLoader.LoadModelRes(m_WingID);
            if (_prefab)
            {
                GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_WingModel);
                m_WingModel = null;
                m_WingID = 0;
            }
        }
        if (m_HorseModel)
        {
            var _animator = m_HorseModel.GetComponent<Animator>();
            if (_animator)
            {
                _animator.enabled = false;
            }
            var _horseConfig = Config.Instance.Get<HorseConfig>(m_HorseID);
            var _modelResConfig = Config.Instance.Get<ModelResConfig>(_horseConfig.Model);
            var _prefab = InstanceResourcesLoader.LoadModelRes(_modelResConfig.ID);
            if (_prefab)
            {
                GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_HorseModel);
                m_HorseModel = null;
                m_HorseID = 0;
            }
        }
        if (m_NPCInteractProcessor)
        {
            m_NPCInteractProcessor.npcIntergactEvent -= OnClick;
Fight/GameActor/GActorNpcNoFight.cs
@@ -60,13 +60,6 @@
        Root.gameObject.layer = LayerUtility.Monster;
        if (m_Model)
        {
            m_Model.transform.SetParent(m_Root.transform);
            m_Model.transform.localPosition = Vector3.zero;
            m_Model.transform.localRotation = Quaternion.identity;
        }
        if (NpcConfig.ModeProportion != 1)
        {
            Root.localScale = Vector3.one * NpcConfig.ModeProportion;
@@ -198,7 +191,18 @@
                    }
                    else
                    {
                        _controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix, NpcConfig.MODE);
                        string _name = NpcConfig.MODE;
                        if (_name.Contains("A_Zs"))
                        {
                            _name = "A_Zs";
                            GameObjectPoolManager.Instance.AddDontDestroyGoInstID(m_Model.GetInstanceID());
                        }
                        else if (_name.Contains("A_Fs"))
                        {
                            _name = "A_Fs";
                            GameObjectPoolManager.Instance.AddDontDestroyGoInstID(m_Model.GetInstanceID());
                        }
                        _controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix, _name);
                    }
                    if (_controller)
                    {