| | |
| | | {
|
| | | public static UnityAction<bool> onShowEffect;
|
| | | private bool m_LoadDefaultHorse;
|
| | | protected struct EquipInfo
|
| | | public struct EquipInfo
|
| | | {
|
| | | public int place;
|
| | | public uint itemID;
|
| | | public int suitID;
|
| | | public int suitLevel;
|
| | | public int suitLV_1;
|
| | | public int suitLV_2;
|
| | | }
|
| | | protected int m_SuitCount;
|
| | |
|
| | | protected Material m_WingMaterial;
|
| | | protected Material m_HorseMaterial;
|
| | |
| | | WeaponItemID = uint.MaxValue;
|
| | | SecondaryID = uint.MaxValue;
|
| | | WingItemID = uint.MaxValue;
|
| | | m_SuitLevel = 0;
|
| | | MovingState = E_MovingState.Normal;
|
| | |
|
| | | SystemSetting.Instance.qualityLevelChangeEvent += OnGameQualityChange;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | if (m_SMRenderer)
|
| | | {
|
| | | MaterialLoader.Release(m_SMRenderer.material);
|
| | | m_SMRenderer.material = null;
|
| | | }
|
| | | m_Material = null;
|
| | |
|
| | | foreach (var _effect in m_GodWeaponEffectDict.Values)
|
| | | {
|
| | | SFXPlayUtility.Instance.Release(_effect);
|
| | | }
|
| | | m_GodWeaponEffectDict.Clear();
|
| | |
|
| | | UnloadSuitSFX();
|
| | | ReleaseLifeBar();
|
| | | ReleaseName();
|
| | | ReleaseShadow();
|
| | |
| | | private GameObject m_HorseModel;
|
| | | private GA_Guard m_Guard;
|
| | |
|
| | | private List<SFXController> m_SuitEffect = new List<SFXController>();
|
| | |
|
| | | private Transform m_HorseBindNode;
|
| | |
|
| | | protected uint ClothesItemID { get; private set; }
|
| | |
| | | protected uint SecondaryID { get; private set; }
|
| | | protected uint WingItemID { get; private set; }
|
| | | protected uint GuardID { get; private set; }
|
| | |
|
| | | protected byte m_SuitLevel;// 套装等级
|
| | |
|
| | | private Animator m_ClothesAnimator;
|
| | | private Animator m_WingAnimator;
|
| | |
| | | m_SMRenderer = m_ClothesModel.GetComponentInChildren<SkinnedMeshRenderer>();
|
| | | if (m_SMRenderer)
|
| | | {
|
| | | m_Material = m_SMRenderer.material;
|
| | | MaterialLoader.Release(m_SMRenderer.material);
|
| | | m_Material = m_SMRenderer.material = MaterialLoader.LoadClothesMaterial(_resID, false, false);
|
| | | }
|
| | |
|
| | | m_ClothesAnimator = m_ClothesModel.GetComponent<Animator>();
|
| | |
| | | HorseID = _newHorseID;
|
| | | }
|
| | |
|
| | | private void SyncSuitSFX(int suitEffectID)
|
| | | {
|
| | | if (!m_ClothesModel)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | UnloadSuitSFX();
|
| | |
|
| | | if (suitEffectID <= 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | SuitEffectConfig _suitEffect = Config.Instance.Get<SuitEffectConfig>(suitEffectID);
|
| | |
|
| | | // 上特效
|
| | | if (_suitEffect != null)
|
| | | {
|
| | | Transform _parent = null;
|
| | | SFXController _sfx = null;
|
| | | for (int i = 0; _suitEffect.bindbones != null && i < _suitEffect.bindbones.Length; ++i)
|
| | | {
|
| | | if (string.IsNullOrEmpty(_suitEffect.bindbones[i])
|
| | | || _suitEffect.effectIds[i] == 0)
|
| | | {
|
| | | continue;
|
| | | }
|
| | |
|
| | | _parent = m_ClothesModel.transform.GetChildTransformDeeply(_suitEffect.bindbones[i]);
|
| | |
|
| | | if (_parent == null)
|
| | | {
|
| | | Debug.LogErrorFormat("套装: {0} 配置的骨骼节点: {1} 不存在", suitEffectID, _suitEffect.bindbones[i]);
|
| | | continue;
|
| | | }
|
| | |
|
| | | _sfx = SFXPlayUtility.Instance.PlayBattleEffect(_suitEffect.effectIds[i], _parent);
|
| | | m_SuitEffect.Add(_sfx);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private PlayerSuitModel _suitModel;
|
| | | private PlayerSuitModel SuitModel
|
| | | {
|
| | | get { return _suitModel ?? (_suitModel = ModelCenter.Instance.GetModel<PlayerSuitModel>()); }
|
| | | }
|
| | |
|
| | | private PlayerPackModel m_PlayerBackModel;
|
| | | private PlayerPackModel PlayerBackModel
|
| | | {
|
| | | get
|
| | | {
|
| | | return m_PlayerBackModel ?? (m_PlayerBackModel = ModelCenter.Instance.GetModel<PlayerPackModel>());
|
| | | }
|
| | | }
|
| | |
|
| | | public void ChangeEquip(int place, uint itemID, int suitLevel)
|
| | | {
|
| | | if (PlayerDatas.Instance.PlayerId != ServerInstID)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | var _equipModel = PlayerBackModel.GetSinglePackModel(PackType.rptEquip);
|
| | |
|
| | | int _suitCount = 0;
|
| | |
|
| | | int _start = (int)RoleEquipType.retHat;
|
| | | int _end = (int)RoleEquipType.retShoes;
|
| | | int _rank = 0;
|
| | |
|
| | | ItemModel _itemModel = null;
|
| | |
|
| | | // 先取得衣服的阶数
|
| | | _itemModel = _equipModel.GetItemModelByIndex((int)RoleEquipType.retClothes);
|
| | | if (_itemModel == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | _rank = _itemModel.chinItemModel.LV;
|
| | |
|
| | | for (int i = _start; i <= _end; ++i)
|
| | | {
|
| | | _itemModel = _equipModel.GetItemModelByIndex(i);
|
| | |
|
| | | if (_itemModel == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | |
|
| | | if (_itemModel.chinItemModel.SuiteiD <= 0)
|
| | | {
|
| | | continue;
|
| | | }
|
| | |
|
| | | if (SuitModel.suitModelDict.ContainsKey(i))
|
| | | {
|
| | | if (SuitModel.suitModelDict[i].ContainsKey(1)
|
| | | || SuitModel.suitModelDict[i].ContainsKey(2))
|
| | | {
|
| | | if (_itemModel.chinItemModel.LV >= _rank)
|
| | | {
|
| | | _suitCount += 1;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | if (_suitCount == 5)
|
| | | {
|
| | | var _itemConfig = Config.Instance.Get<ItemConfig>((int)ClothesItemID);
|
| | | if (_itemConfig != null)
|
| | | {
|
| | | var _newMat = MaterialLoader.LoadClothesMaterial(_itemConfig.ChangeOrd, false, true);
|
| | | if (_newMat)
|
| | | {
|
| | | m_SMRenderer.material = m_Material = _newMat;
|
| | | }
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | var _itemConfig = Config.Instance.Get<ItemConfig>((int)ClothesItemID);
|
| | | if (_itemConfig != null)
|
| | | {
|
| | | var _newMat = MaterialLoader.LoadClothesMaterial(_itemConfig.ChangeOrd, false, false);
|
| | | if (_newMat)
|
| | | {
|
| | | m_SMRenderer.material = m_Material = _newMat;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public void UnloadSuitSFX()
|
| | | {
|
| | | for (int i = 0; i < m_SuitEffect.Count; ++i)
|
| | | {
|
| | | SFXPlayUtility.Instance.Release(m_SuitEffect[i]);
|
| | | }
|
| | | m_SuitEffect.Clear();
|
| | | }
|
| | | public abstract void ChangeEquip(EquipInfo equipInfo);
|
| | |
|
| | | private bool TryRequest(uint itemID, ref GameObject model)
|
| | | {
|
| | |
| | | AnimatorStateInfo _stateInfo = m_ClothesAnimator.GetCurrentAnimatorStateInfo(0);
|
| | |
|
| | | return _stateInfo.shortNameHash == GAStaticDefine.State_StunHash;
|
| | | }
|
| | |
|
| | | public bool IsCollecting()
|
| | | {
|
| | | if (!m_ClothesAnimator)
|
| | | {
|
| | | return false;
|
| | | }
|
| | |
|
| | | AnimatorStateInfo _stateInfo = m_ClothesAnimator.GetCurrentAnimatorStateInfo(0);
|
| | |
|
| | | return _stateInfo.shortNameHash == GAStaticDefine.State_CollectHash;
|
| | | }
|
| | |
|
| | | public sealed override void Hurt()
|