Core/GameEngine/Model/Config/JadeDynastySuitAttrConfig.cs
New file @@ -0,0 +1,60 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, January 22, 2019 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { public partial class JadeDynastySuitAttrConfig : ConfigBase { public int id { get ; private set ; } public int suiteType { get ; private set ; } public int suiteLV { get ; private set ; } public int[] attrIDList; public int[] attrValueList; public override string getKey() { return id.ToString(); } public override void Parse() { try { id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; suiteType=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; suiteLV=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0; string[] attrIDListStringArray = rawContents[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); attrIDList = new int[attrIDListStringArray.Length]; for (int i=0;i<attrIDListStringArray.Length;i++) { int.TryParse(attrIDListStringArray[i],out attrIDList[i]); } string[] attrValueListStringArray = rawContents[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); attrValueList = new int[attrValueListStringArray.Length]; for (int i=0;i<attrValueListStringArray.Length;i++) { int.TryParse(attrValueListStringArray[i],out attrValueList[i]); } } catch (Exception ex) { DebugEx.Log(ex); } } } } Core/GameEngine/Model/Config/JadeDynastySuitAttrConfig.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: f24aa247ff2e2e24bb6798ab57e55bfb timeCreated: 1548124957 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/GameEngine/Model/ConfigManager.cs
@@ -226,6 +226,7 @@ AddAsyncTask<WeekPartyPointConfig>(); AddAsyncTask<SceneReplaceConfig>(); AddAsyncTask<JadeDynastyBossConfig>(); AddAsyncTask<JadeDynastySuitAttrConfig>(); while (!AllCompleted()) { Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA330_tagCMEquipZhuXianItem.cs
New file @@ -0,0 +1,20 @@ using UnityEngine; using System.Collections; // A3 30 装备诛仙装备 #tagCMEquipZhuXianItem public class CA330_tagCMEquipZhuXianItem : GameNetPackBasic { public byte EquipIndex; //装备在诛仙装备背包中的索引 public byte ItemIndex; //装备在诛仙物品背包中的索引 public CA330_tagCMEquipZhuXianItem () { combineCmd = (ushort)0x03FE; _cmd = (ushort)0xA330; } public override void WriteToBytes () { WriteBytes (EquipIndex, NetDataType.BYTE); WriteBytes (ItemIndex, NetDataType.BYTE); } } Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA330_tagCMEquipZhuXianItem.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: fe3f6d53f831c9342b06158619949c27 timeCreated: 1548121806 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA331_tagCMUnEquipZhuXianItem.cs
New file @@ -0,0 +1,18 @@ using UnityEngine; using System.Collections; // A3 31 卸下诛仙装备 #tagCMUnEquipZhuXianItem public class CA331_tagCMUnEquipZhuXianItem : GameNetPackBasic { public byte EquipIndex; //装备在诛仙装备背包中的索引 public CA331_tagCMUnEquipZhuXianItem () { combineCmd = (ushort)0x03FE; _cmd = (ushort)0xA331; } public override void WriteToBytes () { WriteBytes (EquipIndex, NetDataType.BYTE); } } Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA331_tagCMUnEquipZhuXianItem.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: c42dab7b9edaa2743a3c60e26fbeb981 timeCreated: 1548121806 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/JadeDynastyKnapSack/JadeDynastyEquipBeh.cs
@@ -15,6 +15,7 @@ ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } JadeDynastyEquipModel equipModel { get { return ModelCenter.Instance.GetModel<JadeDynastyEquipModel>(); } } private void OnEnable() { @@ -31,18 +32,16 @@ public void SetDisplay() { bool islock = false; int towerLayer = 1; lockObj.SetActive(islock); lockText.gameObject.SetActive(islock); bool islock = equipModel.IsLockEquipPlace((int)equipType); nameText.text = string.Empty; lockText.gameObject.SetActive(false); nameText.gameObject.SetActive(false); lockObj.SetActive(islock); equipBtn.RemoveAllListeners(); itemCell.cellBtn.RemoveAllListeners(); if(islock) { itemCell.gameObject.SetActive(false); lockText.text = StringUtility.Contact("诛仙塔/n",towerLayer,"层解锁"); } else { @@ -75,7 +74,9 @@ { if (item == null) return; tipsModel.SetItemTipsModel(item.packType,item.itemInfo.ItemGUID); tipsModel.SetItemTipsModel(item.packType,item.itemInfo.ItemGUID,false); tipsModel.SetPutOnTipsBtn(tipsModel.curAttrData); tipsModel.ShowUICtrl(); } } } System/JadeDynastyKnapSack/JadeDynastyEquipModel.cs
New file @@ -0,0 +1,371 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using TableConfig; using LitJson; namespace Snxxz.UI { public class JadeDynastyEquipModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk { public int UnlockTowerLayer { get { return 0; } } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } public override void Init() { ParseFuncConfig(); ParseSuitAttrConfig(); } public void OnBeforePlayerDataInitialize() { } public void OnAfterPlayerDataInitialize() { } public void OnPlayerLoginOk() { } public override void UnInit() { } #region 解析表数据 public Dictionary<int, int> lockEquipLayerDict { get; private set; } public Dictionary<int, List<int>> suitTypeDict { get; private set;} public void ParseFuncConfig() { lockEquipLayerDict = new Dictionary<int, int>(); suitTypeDict = new Dictionary<int, List<int>>(); var equipZhuXian = Config.Instance.Get<FuncConfigConfig>("EquipZhuXian"); var lockEquipData = JsonMapper.ToObject(equipZhuXian.Numerical1); foreach(var key in lockEquipData.Keys) { int equipPlace = int.Parse(key); int towerLayer = int.Parse(lockEquipData[key].ToString()); lockEquipLayerDict.Add(equipPlace,towerLayer); } var suitGroupData = JsonMapper.ToObject(equipZhuXian.Numerical2); foreach(var key in suitGroupData.Keys) { int groupType = int.Parse(key); var equipPlaces = suitGroupData[key]; if(equipPlaces.IsArray) { List<int> list = new List<int>(); suitTypeDict.Add(groupType,list); for(int i = 0; i < equipPlaces.Count; i++) { var equipPlace = equipPlaces[i]; list.Add(int.Parse(equipPlace.ToString())); } } } } public Dictionary<int, Dictionary<int, JadeDynastySuitAttrData>> suitAttrDict { get; private set; } public void ParseSuitAttrConfig() { suitAttrDict = new Dictionary<int, Dictionary<int, JadeDynastySuitAttrData>>(); var suitConfigs = Config.Instance.GetAllValues<JadeDynastySuitAttrConfig>(); foreach(var config in suitConfigs) { int suitLv = config.suiteLV; int type = config.suiteType; var suitAttrData = new JadeDynastySuitAttrData(config.id); if (!suitAttrDict.ContainsKey(type)) { var dict = new Dictionary<int, JadeDynastySuitAttrData>(); dict.Add(suitLv,suitAttrData); suitAttrDict.Add(type,dict); } else { var dict = suitAttrDict[type]; if(!dict.ContainsKey(suitLv)) { dict.Add(suitLv, suitAttrData); } } } } public class JadeDynastySuitAttrData { public int suitLv { get; private set; } public Dictionary<int, int> attrDict { get; private set; } public JadeDynastySuitAttrConfig suitAttrConfig { get; private set; } public JadeDynastySuitAttrData(int id) { suitLv = 0; attrDict = new Dictionary<int, int>(); suitAttrConfig = Config.Instance.Get<JadeDynastySuitAttrConfig>(id); if(suitAttrConfig != null) { suitLv = suitAttrConfig.suiteLV; int[] attrIds = suitAttrConfig.attrIDList; int[] attrValues = suitAttrConfig.attrValueList; if(attrIds != null && attrValues != null) { for(int i = 0; i < attrIds.Length; i++) { int attrId = attrIds[i]; int attrValue = attrValues[i]; if(!attrDict.ContainsKey(attrId)) { attrDict.Add(attrId, attrValue); } else { attrDict[attrId] += attrValue; } } } } } } #endregion #region 封包 #endregion public bool TryGetLockTowerLayer(int equipPlace,out int towerLayer) { towerLayer = 0; return lockEquipLayerDict.TryGetValue(equipPlace,out towerLayer); } public bool TryGetSuitType(int equipPlace,out int suitType) { suitType = 0; foreach(var type in suitTypeDict.Keys) { var equipPlaces = suitTypeDict[type]; if(equipPlaces.Contains(equipPlace)) { suitType = type; return true; } } return false; } public bool TryGetEquipPlaces(int equipPlace,out List<int> equipPlaces) { int suitType = 0; equipPlaces = null; bool isSuit = TryGetSuitType(equipPlace,out suitType); if(isSuit) { equipPlaces = suitTypeDict[suitType]; return true; } return false; } public bool TryGetSuitAttrData(int equipPlace,int suitLv,out JadeDynastySuitAttrData suitAttrData) { suitAttrData = null; int suitType = 0; TryGetSuitType(equipPlace,out suitType); if(suitAttrDict.ContainsKey(suitType)) { var dict = suitAttrDict[suitType]; return dict.TryGetValue(suitLv,out suitAttrData); } return false; } public bool IsWillUnlockEquipPlace(int equipPlace) { int willUnlockPlace = 0; int unlockTowerLayer = UnlockTowerLayer; int minTowerLayer = 0; foreach(var key in lockEquipLayerDict.Keys) { int lockTowerLayer = lockEquipLayerDict[key]; if (lockTowerLayer > unlockTowerLayer && (minTowerLayer > lockTowerLayer || minTowerLayer == 0)) { willUnlockPlace = key; minTowerLayer = lockTowerLayer; } } return willUnlockPlace == equipPlace && willUnlockPlace != 0; } public bool IsLockEquipPlace(int equipPlace) { int unlockTowerLayer = UnlockTowerLayer; int towerLayer = 0; bool isLock = TryGetLockTowerLayer(equipPlace,out towerLayer); if(isLock && towerLayer > unlockTowerLayer) { return true; } return false; } public bool TryGetMaxSuitLV(int equipPlace,out int maxSuitLv) { maxSuitLv = 0; var suitLvs = GetSuitLvList(equipPlace); if(suitLvs != null && suitLvs.Count > 0) { maxSuitLv = suitLvs[suitLvs.Count - 1]; return true; } return false; } public List<int> GetSuitLvList(int equipPlace) { int suitType = 0; bool isSuit = TryGetSuitType(equipPlace,out suitType); if(suitAttrDict.ContainsKey(suitType)) { var dict = suitAttrDict[suitType]; return dict.Keys.ToList(); } return null; } public bool TryGetIsActiveSuit(int equipPlace,int suitLV,out List<int> activeEquips) { activeEquips = new List<int>(); List<int> equipPlaces = null; bool isSuit = TryGetEquipPlaces(equipPlace, out equipPlaces); var itemModel = playerPack.GetItemModelByIndex(PackType.rptJadeDynastyEquip,equipPlace); if(itemModel != null) { int equipLv = itemModel.chinItemModel.LV; if(equipLv >= suitLV) { activeEquips = equipPlaces; return true; } } if(equipPlaces != null) { foreach(var key in equipPlaces) { var model = playerPack.GetItemModelByIndex(PackType.rptJadeDynastyEquip,key); if(model != null) { int equipLv = model.chinItemModel.LV; if (equipLv >= suitLV) { activeEquips.Add(key); } } } } return false; } public bool TryGetSuitLV(int equipPlace,PackType type,out int curSuitLv,out int nextSuitLV) { curSuitLv = 0; nextSuitLV = 0; int maxSuitLv = 0; bool isMax = TryGetMaxSuitLV(equipPlace,out maxSuitLv); switch(type) { case PackType.rptJadeDynastyItem: if(isMax) { curSuitLv = maxSuitLv; return true; } break; case PackType.rptJadeDynastyEquip: int minEquipLv = 0; var suitLvs = GetSuitLvList(equipPlace); List<int> equipPlaces = null; bool isSuit = TryGetEquipPlaces(equipPlace, out equipPlaces); if (isSuit && equipPlaces != null) { foreach (var key in equipPlaces) { var model = playerPack.GetItemModelByIndex(type,key); if(model != null && (minEquipLv > model.chinItemModel.LV || minEquipLv == 0)) { minEquipLv = model.chinItemModel.LV; } else if(model == null) { minEquipLv = 0; break; } } } if(minEquipLv != 0 && suitLvs != null) { for(int i = suitLvs.Count - 1; i > -1; i++) { int suitLv = suitLvs[i]; if(minEquipLv >= suitLv) { curSuitLv = suitLv; break; } } foreach(var suitLv in suitLvs) { if(suitLv > minEquipLv) { nextSuitLV = suitLv; break; } } } if(curSuitLv != 0 || nextSuitLV != 0) { return true; } break; } return false; } public bool TryGetSumSuitAttr(int suitType,PackType type,out JadeDynastySuitAttrData activeSuit,out JadeDynastySuitAttrData nextSuit) { activeSuit = null; nextSuit = null; if (!suitTypeDict.ContainsKey(suitType)) return false; int equipPlace = suitTypeDict[suitType][0]; int curSuitLv = 0; int nextSuitLv = 0; bool isSuitLv = TryGetSuitLV(equipPlace,type,out curSuitLv,out nextSuitLv); TryGetSuitAttrData(equipPlace,curSuitLv,out activeSuit); TryGetSuitAttrData(equipPlace,nextSuitLv,out nextSuit); return activeSuit != null || nextSuit != null; } } } System/JadeDynastyKnapSack/JadeDynastyEquipModel.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 31f790a2de0a97348bd308662d37e513 timeCreated: 1548123671 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/JadeDynastyKnapSack/JadeDynastyItemBeh.cs
@@ -25,7 +25,9 @@ itemCell.cellBtn.RemoveAllListeners(); itemCell.cellBtn.AddListener(()=> { tipsModel.SetItemTipsModel(itemModel.packType,itemModel.itemInfo.ItemGUID); tipsModel.SetItemTipsModel(itemModel.packType,itemModel.itemInfo.ItemGUID,false,true); tipsModel.SetBagTipsBtn(tipsModel.curAttrData); tipsModel.ShowUICtrl(); }); } System/JadeDynastyKnapSack/JadeDynastyKnapSackWin.cs
@@ -19,11 +19,12 @@ } protected override void AddListeners() { closeBtn.AddListener(CloseClick); closeBtn.AddListener(ClickClose); leftBtn.AddListener(ClickLeft); rightBtn.AddListener(ClickRight); funcEquip.AddListener(ClickFuncEquip); } protected override void OnPreOpen() { @@ -64,14 +65,21 @@ CloseSubWindows(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation<JadeDynastyKnapSackWin>(); WindowCenter.Instance.OpenWithoutAnimation<JadeDynastyEquipWin>(); } else { WindowCenter.Instance.Open<JadeDynastyKnapSackWin>(); WindowCenter.Instance.Open<JadeDynastyEquipWin>(); } functionOrder = funcEquip.order; } private void ClickClose() { CloseSubWindows(); CloseImmediately(); } private void CloseSubWindows() { var children = WindowConfig.Get().FindChildWindows(this.GetType().Name); System/JadeDynastyKnapSack/JadeDynastySuitAttrBeh.cs
@@ -3,6 +3,7 @@ using UnityEngine.UI; using System.Collections.Generic; using TableConfig; using System.Linq; namespace Snxxz.UI { @@ -12,60 +13,118 @@ [SerializeField] List<SuitAttr> suitAttrs = new List<SuitAttr>(); [SerializeField] GameObject noneActive; public void SetDisplay(int suitLv,bool isNext = false) JadeDynastyEquipModel equipModel { get { return ModelCenter.Instance.GetModel<JadeDynastyEquipModel>(); } } public void SetDisplay(PackType type,bool isNext = false) { bool isShowNoneActive = false; if (!isNext) { bool isActive = true; isShowNoneActive = !isActive; titleText.text = StringUtility.Contact("套装总属性"); } else { bool isMaxSuitLv = false; isShowNoneActive = isMaxSuitLv; titleText.text = StringUtility.Contact("进阶属性"); } List<int> suitTypes = equipModel.suitTypeDict.Keys.ToList(); bool isNoneActive = true; bool isMaxSuitLv = true; for(int i = 0; i < suitAttrs.Count; i++) { var suitAttr = suitAttrs[i]; if(i < suitTypes.Count) { suitAttr.attrTypeObj.SetActive(true); int suitType = suitTypes[i]; JadeDynastyEquipModel.JadeDynastySuitAttrData curAttrData = null; JadeDynastyEquipModel.JadeDynastySuitAttrData nextAttrData = null; equipModel.TryGetSumSuitAttr(suitType,type,out curAttrData, out nextAttrData); if(isNext) { if(nextAttrData != null) { isMaxSuitLv = false; } } else { if(curAttrData != null) { isNoneActive = false; } } suitAttr.SetDisplay(suitType,type,isNext); } else { suitAttr.attrTypeObj.SetActive(false); } } if(noneActive != null) { noneActive.SetActive(isShowNoneActive); } for(int i = 0; i < suitAttrs.Count; i++) if (isNext && isMaxSuitLv) { var suitAttr = suitAttrs[i]; suitAttr.SetDisplay(i,1,null,null); noneActive.SetActive(true); } else if (!isNext && isNoneActive) { noneActive.SetActive(true); } else { noneActive.SetActive(false); } } } [Serializable] public class SuitAttr { [SerializeField] public GameObject attrTypeObj; [SerializeField] Text suitTypeText; [SerializeField] List<GameObject> attrObjlist = new List<GameObject>(); [SerializeField] List<Text> attrTextlist = new List<Text>(); [SerializeField] Text activeText; [SerializeField] GameObject activeObj; ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } public void SetDisplay(int suitType,int suitLv,List<int> ids,List<int> values) { if (ids == null || values == null) return; bool isActive = true; ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } JadeDynastyEquipModel equipModel { get { return ModelCenter.Instance.GetModel<JadeDynastyEquipModel>(); } } public void SetDisplay(int suitType,PackType type,bool isNext) { JadeDynastyEquipModel.JadeDynastySuitAttrData curAttrData = null; JadeDynastyEquipModel.JadeDynastySuitAttrData nextAttrData = null; JadeDynastyEquipModel.JadeDynastySuitAttrData suitAttrData = null; equipModel.TryGetSumSuitAttr(suitType,type,out curAttrData,out nextAttrData); suitAttrData = isNext ? nextAttrData : curAttrData; if(suitAttrData == null) { attrTypeObj.SetActive(false); return; } else { attrTypeObj.SetActive(true); switch(suitType) { case 0: suitTypeText.text = StringUtility.Contact("诛仙守护LV." + suitLv); break; case 1: suitTypeText.text = StringUtility.Contact("诛仙之力LV." + suitLv); suitTypeText.text = StringUtility.Contact("诛仙守护LV." + suitAttrData.suitLv); break; case 2: suitTypeText.text = StringUtility.Contact("诛仙剑阵LV." + suitLv); suitTypeText.text = StringUtility.Contact("诛仙之力LV." + suitAttrData.suitLv); break; case 3: suitTypeText.text = StringUtility.Contact("诛仙剑阵LV." + suitAttrData.suitLv); break; } } int[] ids = suitAttrData.suitAttrConfig.attrIDList; int[] values = suitAttrData.suitAttrConfig.attrValueList; int equipPlace = equipModel.suitTypeDict[suitType][0]; List<int> activeEquips = null; bool isActive = equipModel.TryGetIsActiveSuit(equipPlace,suitAttrData.suitLv,out activeEquips); activeObj.SetActive(!isActive); if(!isActive) { @@ -74,8 +133,8 @@ for (int i = 0; i < attrObjlist.Count; i++) { var attrObj = attrObjlist[i]; attrObj.SetActive(i < ids.Count); if(i < ids.Count) attrObj.SetActive(i < ids.Length); if(i < ids.Length) { var attrId = ids[i]; var attrValue = values[i]; System/JadeDynastyKnapSack/JadeDynastySuitAttrWin.cs
@@ -40,19 +40,8 @@ private void SetDisplay() { int curSuitLv = 0; int nextSuitLv = 1; bool isMaxSuitLv = false; nextSuitAttrBeh.gameObject.SetActive(!isMaxSuitLv); if(isMaxSuitLv) { curSuitAttrBeh.SetDisplay(curSuitLv); } else { curSuitAttrBeh.SetDisplay(curSuitLv); nextSuitAttrBeh.SetDisplay(nextSuitLv,true); } curSuitAttrBeh.SetDisplay(PackType.rptJadeDynastyEquip); nextSuitAttrBeh.SetDisplay(PackType.rptJadeDynastyEquip, true); } } } System/KnapSack/Logic/EquipTip.cs
@@ -141,6 +141,7 @@ } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } JadeDynastyEquipModel equipModel { get { return ModelCenter.Instance.GetModel<JadeDynastyEquipModel>(); } } ItemAttrData itemAttrData; @@ -863,21 +864,8 @@ jadeDynastySuitObj.SetActive(false); return; } bool isMaxSuitLv = false; int maxSuitLv = 1; int curSuitLv = itemAttrData.packType == PackType.rptJadeDynastyItem ? maxSuitLv : 0; bool isShowNext = !isMaxSuitLv && itemAttrData.packType == PackType.rptJadeDynastyItem; nextJadeDynastySuitAttr.gameObject.SetActive(isShowNext); if(isShowNext) { curJadeDynastySuitAttr.SetDisplay(curSuitLv); nextJadeDynastySuitAttr.SetDisplay(curSuitLv + 1); } else { curJadeDynastySuitAttr.SetDisplay(curSuitLv); } curJadeDynastySuitAttr.SetDisplay(PackType.rptJadeDynastyItem); nextJadeDynastySuitAttr.SetDisplay(PackType.rptJadeDynastyItem,true); } private void SetMidUIHeight(float midHeight) System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -543,14 +543,44 @@ public void SendPutOnQuest(int equipPlace, int itemIndex) { EquipAttrShift(equipPlace); switch((RoleEquipType)equipPlace) { case RoleEquipType.JadeDynasty_Cloak: case RoleEquipType.JadeDynasty_FaceMask: case RoleEquipType.JadeDynasty_Glove1: case RoleEquipType.JadeDynasty_Glove2: case RoleEquipType.JadeDynasty_Pendant: case RoleEquipType.JadeDynasty_Ring1: case RoleEquipType.JadeDynasty_Ring2: case RoleEquipType.JadeDynasty_Ruyi: case RoleEquipType.JadeDynasty_Sword1: case RoleEquipType.JadeDynasty_Sword2: case RoleEquipType.JadeDynasty_Sword3: case RoleEquipType.JadeDynasty_Sword4: SendPutOnJadeDynastyEquip(equipPlace,itemIndex); break; default: SendPutOnNormalEquip(equipPlace,itemIndex); break; } SoundPlayer.Instance.PlayUIAudio(24); } private void SendPutOnNormalEquip(int equipPlace, int itemIndex) { C0703_tagCEquipItem putOnEquip = new C0703_tagCEquipItem(); putOnEquip.RoleEquipType = (byte)equipPlace; putOnEquip.ItemIndex = (byte)itemIndex; GameNetSystem.Instance.SendInfo(putOnEquip); SoundPlayer.Instance.PlayUIAudio(24); } private void SendPutOnJadeDynastyEquip(int equipPlace, int itemIndex) { CA330_tagCMEquipZhuXianItem equipZhuXianItem = new CA330_tagCMEquipZhuXianItem(); equipZhuXianItem.EquipIndex = (byte)equipPlace; equipZhuXianItem.ItemIndex = (byte)itemIndex; GameNetSystem.Instance.SendInfo(equipZhuXianItem); } /// <summary> /// 替换装备时属性转移提示 @@ -622,22 +652,68 @@ ItemModel putOnModel = playerPack.GetItemModelByGUID(guid); if (putOnModel == null || putOnModel.packType != PackType.rptEquip) return; SinglePackModel rptItemPack = playerPack.GetSinglePackModel(PackType.rptItem); if (rptItemPack == null) return; if (rptItemPack.GetRemainGridCount() < 1) SinglePackModel singlePack = null; int remainGrid = 0; int equipPlace = putOnModel.itemInfo.ItemPlace; switch ((RoleEquipType)equipPlace) { case RoleEquipType.JadeDynasty_Cloak: case RoleEquipType.JadeDynasty_FaceMask: case RoleEquipType.JadeDynasty_Glove1: case RoleEquipType.JadeDynasty_Glove2: case RoleEquipType.JadeDynasty_Pendant: case RoleEquipType.JadeDynasty_Ring1: case RoleEquipType.JadeDynasty_Ring2: case RoleEquipType.JadeDynasty_Ruyi: case RoleEquipType.JadeDynasty_Sword1: case RoleEquipType.JadeDynasty_Sword2: case RoleEquipType.JadeDynasty_Sword3: case RoleEquipType.JadeDynasty_Sword4: remainGrid = playerPack.GetReaminGridCount(PackType.rptJadeDynastyItem); if(remainGrid < 1) { SysNotifyMgr.Instance.ShowTip("GeRen_chenxin_998371"); } else { C0704_tagCUnEquipItem putOffEquip = new C0704_tagCUnEquipItem(); putOffEquip.EquipIndex = (byte)putOnModel.itemInfo.ItemPlace; putOffEquip.PackIndex = (byte)rptItemPack.GetNullGridIndex(); GameNetSystem.Instance.SendInfo(putOffEquip); SendPutOffJadeDynastyEquip(equipPlace); SoundPlayer.Instance.PlayUIAudio(25); } break; default: singlePack = playerPack.GetSinglePackModel(PackType.rptItem); remainGrid = playerPack.GetReaminGridCount(PackType.rptItem); if (remainGrid < 1) { SysNotifyMgr.Instance.ShowTip("GeRen_chenxin_998371"); } else { if(singlePack != null) { int gridIndex = singlePack.GetNullGridIndex(); SendPutOffNormalEquip(equipPlace,gridIndex); SoundPlayer.Instance.PlayUIAudio(25); } } break; } } private void SendPutOffNormalEquip(int equipPlace,int itemIndex) { C0704_tagCUnEquipItem putOffEquip = new C0704_tagCUnEquipItem(); putOffEquip.EquipIndex = (byte)equipPlace; putOffEquip.PackIndex = (byte)itemIndex; GameNetSystem.Instance.SendInfo(putOffEquip); } private void SendPutOffJadeDynastyEquip(int equipPlace) { CA331_tagCMUnEquipZhuXianItem unEquipZhuXianItem = new CA331_tagCMUnEquipZhuXianItem(); unEquipZhuXianItem.EquipIndex = (byte)equipPlace; GameNetSystem.Instance.SendInfo(unEquipZhuXianItem); } #endregion #region 发送放入仓库请求 System/WindowBase/ModelCenter.cs
@@ -222,6 +222,8 @@ RegisterModel<OpenServiceAchievementModel>(); RegisterModel<FashionDressModel>(); RegisterModel<JadeDynastyBossModel>(); RegisterModel<JadeDynastyDecomposeModel>(); RegisterModel<JadeDynastyEquipModel>(); inited = true; }