少年修仙传客户端代码仓库
client_Wu Xijin
2019-04-27 1e1c85bfc8fd8dc61dff684e67d4882d77382bd6
3335 编写新的查询其他玩家装备逻辑。
1个文件已修改
114 ■■■■■ 已修改文件
System/RoleParticulars/OtherPlayerEquipModel.cs 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/RoleParticulars/OtherPlayerEquipModel.cs
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Reflection;
using LitJson;
namespace Snxxz.UI
{
@@ -31,6 +31,8 @@
        public event Action selectedLevelChangeEvent;
        Dictionary<int, EquipDetailsGroup> equipDetailsGroups = new Dictionary<int, EquipDetailsGroup>();
        RoleParticularModel roleParticularModel { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
        public override void Init()
        {
@@ -48,11 +50,38 @@
            }
            else
            {
                //向服务端请求装备信息
                switch (roleParticularModel.viewPlayerType)
                {
                    case 4:
                    case 7:
                        {
                            var sendInfo = new CC002_tagCGViewCrossPlayerInfo();
                            sendInfo.PlayerID = (uint)roleParticularModel.viewPlayer;
                            GameNetSystem.Instance.SendInfo(sendInfo);
                        }
                        break;
                    case 5:
                    case 6:
                        {
                            var sendInfo = new CA212_tagCMViewPlayerInfo();
                            sendInfo.PlayerID = (uint)roleParticularModel.viewPlayer;
                            sendInfo.EquipClassLV = (byte)level;
                            GameNetSystem.Instance.SendToCrossServer(sendInfo);
                        }
                        break;
                    default:
                        {
                            var sendInfo = new CA212_tagCMViewPlayerInfo();
                            sendInfo.PlayerID = (uint)roleParticularModel.viewPlayer;
                            sendInfo.EquipClassLV = (byte)level;
                            GameNetSystem.Instance.SendInfo(sendInfo);
                        }
                        break;
                }
            }
        }
        public void OnGetEquipDetails()
        public void OnGetEquipDetails(HA719_tagSCPlayerEquipCacheResult info)
        {
        }
@@ -63,7 +92,7 @@
            {
                var equipDetailsGroup = equipDetailsGroups[selectedLevel];
                var equipBriefs = new Dictionary<int, EquipBrief>();
                foreach (var details in equipDetailsGroup.EquipDetails.Values)
                foreach (var details in equipDetailsGroup.equips.Values)
                {
                    var config = ItemConfig.Get(details.itemId);
                    equipBriefs[config.EquipPlace] = new EquipBrief()
@@ -100,12 +129,12 @@
                return default(ItemTipUtility.OtherPlayerEquipInfo);
            }
            if (equipDetailsGroups[level].EquipDetails.ContainsKey(place))
            if (equipDetailsGroups[level].equips.ContainsKey(place))
            {
                return default(ItemTipUtility.OtherPlayerEquipInfo);
            }
            var details = equipDetailsGroups[level].EquipDetails[place];
            var details = equipDetailsGroups[level].equips[place];
            return new ItemTipUtility.OtherPlayerEquipInfo();
        }
@@ -125,13 +154,80 @@
        {
            public int itemId;
            public int star;
            public int strengthLevel;
            public int evolveLevel;
            public List<int> stones = new List<int>();
            public int trainLevel;
            public List<int> trainValues = new List<int>();
            public List<Int2> legendProperties = new List<Int2>();
            public EquipDetails(JsonData serverInfo)
            {
                itemId = (int)serverInfo["ItemID"];
                star = serverInfo.Keys.Contains("Star") ? (int)serverInfo["Star"] : 0;
                strengthLevel = serverInfo.Keys.Contains("PlusLV") ? (int)serverInfo["PlusLV"] : 0;
                evolveLevel = serverInfo.Keys.Contains("EvolveLV") ? (int)serverInfo["EvolveLV"] : 0;
                if (serverInfo.Keys.Contains("Stone"))
                {
                    var stoneJson = serverInfo["Stone"];
                    for (int i = 0; i < stoneJson.Count; i++)
                    {
                        stones.Add((int)stoneJson[i]);
                    }
                }
                if (serverInfo.Keys.Contains("Wash"))
                {
                    var washJson = serverInfo["Wash"];
                    trainLevel = (int)washJson["LV"];
                    var washValueJson = washJson["Value"];
                    for (int i = 0; i < washValueJson.Count; i++)
                    {
                        trainValues.Add((int)washValueJson[i]);
                    }
                }
                if (serverInfo.Keys.Contains("UserData"))
                {
                    var userDataJson = serverInfo["UserData"];
                }
            }
        }
        public class EquipDetailsGroup
        {
            public int level = 0;
            public int fightPoint = 0;
            public Dictionary<int, EquipDetails> EquipDetails = new Dictionary<int, EquipDetails>();
            public readonly int level = 0;
            public readonly int fightPoint = 0;
            public Dictionary<int, EquipDetails> equips = new Dictionary<int, EquipDetails>();
            public EquipDetailsGroup(int level, string equipInfo)
            {
                this.level = level;
                var json = JsonMapper.ToObject(equipInfo);
                foreach (var key in json.Keys)
                {
                    var serverPlace = 0;
                    int.TryParse(key, out serverPlace);
                    if (serverPlace == 0)
                    {
                        continue;
                    }
                    var equipPosition = EquipSet.ServerPlaceToClientPlace(serverPlace);
                    equips[equipPosition.y] = new EquipDetails(json[key]);
                }
                fightPoint = EquipFightPower.Instance.CalculatePower();
            }
        }