浏览代码

月卡特权头像

zhaoyang 2 年之前
父节点
当前提交
408fe139ff

+ 2 - 1
FGUIProject/assets/RoleInfo/components/ListHeadBorderItem.xml

@@ -7,7 +7,8 @@
       <gearDisplay controller="button" pages="1"/>
     </image>
     <loader id="n6_v95q" name="loaBorder" xy="0,13" pivot="0.5,0.5" size="230,203" aspect="true" touchable="false" url="ui://374k3dwvr9ri23" autoSize="true"/>
-    <image id="n7_v95q" name="imgNew" src="r9ril" fileName="images/grxx_xinxin.png" xy="154,45" pkg="eg2y0ldp"/>
+    <image id="n7_v95q" name="imgNew" src="r9ril" fileName="imagesExport/grxx_xinxin.png" pkg="eg2y0ldp" xy="154,45"/>
+    <image id="n8_mbf1" name="imgUnGet" src="cs8jthx" fileName="images/yx_whd.png" pkg="eg2y0ldp" xy="26,100"/>
   </displayList>
   <Button mode="Radio"/>
 </component>

+ 2 - 1
FGUIProject/assets/RoleInfo/components/ListHeadItem.xml

@@ -7,7 +7,8 @@
     <image id="n5_r9ri" name="n5" src="r9rik" fileName="images/grxx_txxzlx.png" xy="2,2">
       <gearDisplay controller="button" pages="1"/>
     </image>
-    <image id="n7_r9ri" name="imgNew" src="r9ril" fileName="images/grxx_xinxin.png" xy="140,18" pkg="eg2y0ldp"/>
+    <image id="n7_r9ri" name="imgNew" src="r9ril" fileName="imagesExport/grxx_xinxin.png" pkg="eg2y0ldp" xy="140,18"/>
+    <image id="n8_mbf1" name="imgUnGet" src="cs8jthx" fileName="images/yx_whd.png" pkg="eg2y0ldp" xy="11,89"/>
   </displayList>
   <Button mode="Radio"/>
 </component>

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RoleInfo/UI_ListHeadBorderItem.cs

@@ -10,6 +10,7 @@ namespace UI.RoleInfo
         public GLoader m_loaIcon;
         public GLoader m_loaBorder;
         public GImage m_imgNew;
+        public GImage m_imgUnGet;
         public const string URL = "ui://374k3dwvv95qg3";
         public const string PACKAGE_NAME = "RoleInfo";
         public const string RES_NAME = "ListHeadBorderItem";
@@ -60,12 +61,14 @@ namespace UI.RoleInfo
             m_loaIcon = (GLoader)comp.GetChild("loaIcon");
             m_loaBorder = (GLoader)comp.GetChild("loaBorder");
             m_imgNew = (GImage)comp.GetChild("imgNew");
+            m_imgUnGet = (GImage)comp.GetChild("imgUnGet");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_loaIcon = null;
             m_loaBorder = null;
             m_imgNew = null;
+            m_imgUnGet = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RoleInfo/UI_ListHeadItem.cs

@@ -9,6 +9,7 @@ namespace UI.RoleInfo
         public GButton target;
         public GLoader m_loaIcon;
         public GImage m_imgNew;
+        public GImage m_imgUnGet;
         public const string URL = "ui://374k3dwvr9ri9";
         public const string PACKAGE_NAME = "RoleInfo";
         public const string RES_NAME = "ListHeadItem";
@@ -58,11 +59,13 @@ namespace UI.RoleInfo
         {
             m_loaIcon = (GLoader)comp.GetChild("loaIcon");
             m_imgNew = (GImage)comp.GetChild("imgNew");
+            m_imgUnGet = (GImage)comp.GetChild("imgUnGet");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_loaIcon = null;
             m_imgNew = null;
+            m_imgUnGet = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 40 - 8
GameClient/Assets/Game/HotUpdate/Views/RoleInfo/ChangeHeadView.cs

@@ -1,5 +1,5 @@
 using UI.RoleInfo;
-using System.Text.RegularExpressions;
+using System.Collections.Generic;
 using FairyGUI;
 using UI.CommonGame;
 
@@ -8,6 +8,8 @@ namespace GFGGame
     public class ChangeHeadView : BaseWindow
     {
         private UI_ChangeHead _ui;
+        private List<ItemCfg> _headCfgs = new List<ItemCfg>();
+        private List<ItemCfg> _headBorderCfgs = new List<ItemCfg>();
         private int _selectHeadId = 0;
         private int _selectHeadBorderId = 0;
 
@@ -47,6 +49,10 @@ namespace GFGGame
             base.OnShown();
             RoleInfoManager.Instance.SortHeadDatas();
             RoleInfoManager.Instance.SortHeadBorderDatas();
+            _headCfgs.AddRange(ItemCfgArray.Instance.GetCfgsByitemTypeAndsubType(ConstItemType.HEAD, ConstItemSubType.ROLE_HEAD));
+            _headCfgs = SoreItemCfgDatas(_headCfgs);
+            _headBorderCfgs.AddRange(ItemCfgArray.Instance.GetCfgsByitemTypeAndsubType(ConstItemType.HEAD, ConstItemSubType.ROLE_HEAD));
+            _headBorderCfgs = SoreItemCfgDatas(_headBorderCfgs);
             OnTabChange();
             // _ui.m_list.selectedIndex = 0;
             // _ui.m_listBorder.selectedIndex = 0;
@@ -56,6 +62,8 @@ namespace GFGGame
         {
             base.OnHide();
             _ui.m_c1.selectedIndex = 0;
+            _headCfgs.Clear();
+            _headBorderCfgs.Clear();
         }
         private async void OnBtnSureClick()
         {
@@ -79,11 +87,11 @@ namespace GFGGame
 
         private void RenderListItem(int index, GObject obj)
         {
-            int headId = RoleInfoManager.Instance.headDatas[index];
-            ItemCfg cfg = ItemCfgArray.Instance.GetCfg(headId);
+            int headId = _headCfgs[index].id;
             UI_ListHeadItem item = UI_ListHeadItem.Proxy(obj);
-            item.m_loaIcon.url = ResPathUtil.GetHeadPath(cfg.res);
+            item.m_loaIcon.url = ResPathUtil.GetHeadPath(_headCfgs[index].res);
             item.m_imgNew.visible = RoleInfoManager.Instance.isNewHead(headId);
+            item.m_imgUnGet.visible = ItemDataManager.GetItemNum(headId) <= 0;
             if (RoleInfoManager.Instance.isNewHead(headId))
             {
                 ItemProxy.ReqSetItemRead(headId).Coroutine();
@@ -98,12 +106,13 @@ namespace GFGGame
         private void RenderListBorderItem(int index, GObject obj)
         {
             ItemCfg headCfg = ItemCfgArray.Instance.GetCfg(RoleDataManager.headId);
-            int headBorderId = RoleInfoManager.Instance.headBorderDatas[index];
-            ItemCfg borderCfg = ItemCfgArray.Instance.GetCfg(headBorderId);
+            ItemCfg borderCfg = _headBorderCfgs[index];
+            int headBorderId = borderCfg.id;
             UI_ListHeadBorderItem item = UI_ListHeadBorderItem.Proxy(obj);
             item.m_loaIcon.url = ResPathUtil.GetHeadPath(headCfg.res);
             item.m_loaBorder.url = ResPathUtil.GetHeadBorderPath(borderCfg.res);
             item.m_imgNew.visible = RoleInfoManager.Instance.isNewHeadBorder(headBorderId);
+            item.m_imgUnGet.visible = ItemDataManager.GetItemNum(headBorderId) <= 0;
             if (RoleInfoManager.Instance.isNewHeadBorder(headBorderId))
             {
                 ItemProxy.ReqSetItemRead(headBorderId).Coroutine();
@@ -120,6 +129,11 @@ namespace GFGGame
         {
             GObject obj = context.data as GObject;
             _selectHeadId = (int)obj.data;
+            if (ItemDataManager.GetItemNum(_selectHeadId) <= 0)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("暂未获得");
+                return;
+            }
             UpdateView();
         }
 
@@ -127,6 +141,11 @@ namespace GFGGame
         {
             GObject obj = context.data as GObject;
             _selectHeadBorderId = (int)obj.data;
+            if (ItemDataManager.GetItemNum(_selectHeadBorderId) <= 0)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("暂未获得");
+                return;
+            }
             UpdateView();
         }
 
@@ -136,11 +155,11 @@ namespace GFGGame
             _selectHeadBorderId = RoleDataManager.headBorderId;
             if (_ui.m_c1.selectedIndex == 0)
             {
-                _ui.m_list.numItems = RoleInfoManager.Instance.headDatas.Count;
+                _ui.m_list.numItems = _headCfgs.Count;
             }
             else
             {
-                _ui.m_listBorder.numItems = RoleInfoManager.Instance.headBorderDatas.Count; ;
+                _ui.m_listBorder.numItems = _headBorderCfgs.Count;
             }
             UpdateView();
         }
@@ -161,5 +180,18 @@ namespace GFGGame
                 _ui.m_txtDesc.text = headBorderCfg.desc;
             }
         }
+        private List<ItemCfg> SoreItemCfgDatas(List<ItemCfg> list)
+        {
+            list.Sort((ItemCfg a, ItemCfg b) =>
+            {
+                long hasA = ItemDataManager.GetItemNum(a.id);
+                long hasB = ItemDataManager.GetItemNum(a.id);
+                if (hasA > 0 && hasB <= 0) return 1;
+                if (hasB > 0 && hasA <= 0) return -1;
+
+                return b.id - a.id;
+            });
+            return list;
+        }
     }
 }

二进制
GameClient/Assets/ResIn/UI/RoleInfo/RoleInfo_fui.bytes