| | |
| | |
|
| | | private int m_ComAtkIndex;// 普攻索引
|
| | |
|
| | | protected Dictionary<int, EquipInfo> m_EquipDict = new Dictionary<int, EquipInfo>();
|
| | |
|
| | | protected override void OnInit(GameNetPackBasic package)
|
| | | {
|
| | | m_H0434 = package as H0434_tagAreaPlayerAppearEx;
|
| | |
| | | // 处理装备
|
| | | H0434_tagAreaPlayerAppearEx.tagEquipInfo _equipInfo;
|
| | |
|
| | | Dictionary<int, List<int>> _userDataDict;
|
| | | EquipInfo _info;
|
| | |
|
| | | // 因为衣服是所有装备的父节点, 需要预先处理衣服
|
| | | for (int i = 0; i < m_H0434.EquipCount; ++i)
|
| | | {
|
| | | _equipInfo = m_H0434.EquipInfo[i];
|
| | |
|
| | | _info = new EquipInfo
|
| | | {
|
| | | itemID = _equipInfo.ItemID
|
| | | };
|
| | |
|
| | | _userDataDict = ConfigParse.Analysis(_equipInfo.UserData);
|
| | | if (_userDataDict.ContainsKey(25))
|
| | | {
|
| | | _info.suitLV_1 = (byte)_userDataDict[25][0];
|
| | | _info.suitLV_2 = (byte)_userDataDict[25][1];
|
| | | }
|
| | | m_EquipDict[_equipInfo.Place] = _info;
|
| | |
|
| | | if (_equipInfo.Place == (byte)RoleEquipType.retClothes)
|
| | | {
|
| | | m_SuitLevel = 0;
|
| | | if (_equipInfo.IsSuite == 1)
|
| | | {
|
| | | Dictionary<int, List<int>> _userData = ConfigParse.Analysis(_equipInfo.UserData);
|
| | | if (_userData.ContainsKey(30))
|
| | | {
|
| | | m_SuitLevel = (byte)_userData[30][0];
|
| | | }
|
| | | }
|
| | |
|
| | | SwitchClothes(_equipInfo.ItemID);
|
| | |
|
| | | ChangeEquip(_equipInfo.Place, _equipInfo.ItemID, m_SuitLevel);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | ActorInfo.horseItemID = _equipInfo.ItemID;
|
| | | }
|
| | |
|
| | | m_SuitLevel = 0;
|
| | | if (_equipInfo.IsSuite == 1)
|
| | | {
|
| | | Dictionary<int, List<int>> _userData = ConfigParse.Analysis(_equipInfo.UserData);
|
| | | if (_userData.ContainsKey(30))
|
| | | {
|
| | | m_SuitLevel = (byte)_userData[30][0];
|
| | | }
|
| | | }
|
| | |
|
| | | ChangeEquip(_equipInfo.Place, _equipInfo.ItemID, m_SuitLevel);
|
| | | }
|
| | |
|
| | | ChangeEquip(default(EquipInfo));
|
| | |
|
| | | if (ActorInfo.horseItemID != 0 && m_H0434.PlayerState == 2)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public override void ChangeEquip(EquipInfo equipInfo)
|
| | | {
|
| | | // 传入ID为0代表脱下了装备
|
| | | if(equipInfo.itemID == 0 && equipInfo.place != 0)
|
| | | {
|
| | | if(m_EquipDict.ContainsKey(equipInfo.place))
|
| | | {
|
| | | m_EquipDict.Remove(equipInfo.place);
|
| | | }
|
| | | }
|
| | |
|
| | | var _suitCount = 0;
|
| | |
|
| | | int _start = (int)RoleEquipType.retHat;
|
| | | int _end = (int)RoleEquipType.retShoes;
|
| | | int _rank = 0;
|
| | |
|
| | | EquipInfo _equipInfo;
|
| | |
|
| | | // 先取得衣服的阶数
|
| | | if (!m_EquipDict.TryGetValue((int)RoleEquipType.retClothes, out _equipInfo))
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | var _itemConfig = Config.Instance.Get<ItemConfig>((int)_equipInfo.itemID);
|
| | | _rank = _itemConfig.LV;
|
| | |
|
| | | for (int i = _start; i <= _end; ++i)
|
| | | {
|
| | | if (!m_EquipDict.TryGetValue(i, out _equipInfo))
|
| | | {
|
| | | continue;
|
| | | }
|
| | |
|
| | | if (_equipInfo.suitLV_1 > 0
|
| | | || _equipInfo.suitLV_2 > 0)
|
| | | {
|
| | | _itemConfig = Config.Instance.Get<ItemConfig>((int)_equipInfo.itemID);
|
| | | if (_itemConfig.LV >= _rank)
|
| | | {
|
| | | _suitCount += 1;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | if (m_SuitCount == _suitCount)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (m_SuitCount < 5 && _suitCount < 5)
|
| | | {
|
| | | m_SuitCount = _suitCount;
|
| | | return;
|
| | | }
|
| | |
|
| | | // Debug.Log("_suitCount: " + _suitCount);
|
| | |
|
| | | if (_suitCount == 5)
|
| | | {
|
| | | _itemConfig = Config.Instance.Get<ItemConfig>((int)ClothesItemID);
|
| | | if (_itemConfig != null)
|
| | | {
|
| | | var _newMat = MaterialLoader.LoadClothesMaterial(_itemConfig.ChangeOrd, false, true);
|
| | | if (_newMat)
|
| | | {
|
| | | MaterialLoader.Release(m_SMRenderer.material);
|
| | | m_SMRenderer.material = m_Material = _newMat;
|
| | | MaterialUtility.SwitchXrayShader(m_SMRenderer.material, false);
|
| | | }
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | _itemConfig = Config.Instance.Get<ItemConfig>((int)ClothesItemID);
|
| | | if (_itemConfig != null)
|
| | | {
|
| | | var _newMat = MaterialLoader.LoadClothesMaterial(_itemConfig.ChangeOrd, false, false);
|
| | | if (_newMat)
|
| | | {
|
| | | MaterialLoader.Release(m_SMRenderer.material);
|
| | | m_SMRenderer.material = m_Material = _newMat;
|
| | | MaterialUtility.SwitchXrayShader(m_SMRenderer.material, false);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | m_SuitCount = _suitCount;
|
| | | }
|
| | |
|
| | | protected sealed override void OnUnit()
|
| | | {
|
| | | ShowOrHideModel(true);
|