Exemplo n.º 1
0
        /// <summary>
        /// 通过网络包创建装备信息
        /// </summary>
        /// <param name="net_info"></param>
        /// <returns></returns>
        public EquipInfo CreateEquipFromNet(PkgGoodsInfo net_info, uint bind = 0)
        {
            // pre check
            if (!IsEquipEidExist(net_info.gid))
            {
                GameDebug.LogWarning("装备Eid找不到:" + net_info.gid);
                return(null);
            }

            var equip = new EquipInfo(net_info);

            equip.Bind = bind;
//
//             foreach (var ap_attr in net_info.equip.effects)
//             {
//                 equip.EffectAttrs.Add(ap_attr.id, ap_attr.vals, ap_attr.ep_type);
//             }
//
//             foreach (var base_attr in net_info.equip.base_attrs)
//             {
//                 equip.BasicAttrs.Add(base_attr.attr_id, base_attr.val, 0);
//             }
//
//
//
//             equip.StrongLv = net_info.equip.sgth_lv;
//             equip.StrongAdd =  (float)net_info.equip.sgth_rate / 100.0f;//除100得到真实值
//             equip.StrongStar = EquipHelper.GetStrongStar(net_info.equip.sgth_rate , net_info.equip.sgth_lv);
//             equip.GemInfo = net_info.equip.gems;
//             equip.WashScore = net_info.equip.enchant_score;
// //            equip.ProtectedTime = net_info.protect_time;
//             equip.DisEnableTime = net_info.equip.disable_time;
            return(equip);
        }
Exemplo n.º 2
0
        public EquipInfo GetEquipInfoByOid(ulong oid)
        {
            EquipInfo result = null;

            if (AllEquips.TryGetValue(oid, out result))
            {
                return(result);
            }


            if (BagEquips.TryGetValue(oid, out result))
            {
                return(result);
            }

            if (TmpBagEquips.TryGetValue(oid, out result))
            {
                return(result);
            }

            if (WarehouseEquips.TryGetValue(oid, out result))
            {
                return(result);
            }

            if (TrashEquips.TryGetValue(oid, out result))
            {
                return(result);
            }

            return(null);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 脱下装备
        /// </summary>
        /// <param name="equip"></param>
        public void UnInstallEquip(EquipInfo equip)
        {
            if (LocalPlayerManager.Instance.InBallteStatus)
            {
                UINotice.Instance.ShowMessage(xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_59"));
                return;
            }

            var pack = new C2SEquipUninstall();

            NetClient.GetBaseClient().SendData <C2SEquipUninstall>(NetMsg.MSG_EQUIP_UNINSTALL, pack);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 通过网络包更新现有装备
        /// </summary>
        /// <param name="equip"></param>
        /// <param name="net_info"></param>
        protected void UpdateEquipFromNet(EquipInfo equip, PkgGoodsInfo net_info)
        {
            equip.LegendAttrs.Clear();
//             foreach (var ap_attr in net_info.equip.effects)
//             {
//                 // 只更新附魔后的属性
//                 equip.EffectAttrs.Add(ap_attr.id, ap_attr.vals, ap_attr.ep_type);
//             }
//
//             equip.BasicAttrs.Clear();
//             foreach (var base_attr in net_info.equip.base_attrs)
//             {
//                 equip.BasicAttrs.Add(base_attr.attr_id, base_attr.val , 0);
//             }
//             equip.Bind = net_info.bind;
//             equip.StrongLv = net_info.equip.sgth_lv;
//             equip.StrongAdd =  (float)net_info.equip.sgth_rate / 100.0f;//除100得到真实值
//             equip.StrongStar = EquipHelper.GetStrongStar(net_info.equip.sgth_rate , net_info.equip.sgth_lv);
//             equip.GemInfo = net_info.equip.gems;
//             equip.WashScore = net_info.equip.enchant_score;
// //            equip.ProtectedTime = net_info.protect_time;
//             equip.DisEnableTime = net_info.equip.disable_time;

            // 更新附魔状态
            //foreach (var ap_attr in net_info.ap_attrs)
            //{
            //    equip.EquipAttrs.SetEquipAttrEnchant(ap_attr.id, ap_attr.is_enc == 1);
            //}

            // FIXME 确定下更新装备信息时,其基础属性会不会变

            ClientEventMgr.Instance.FireEvent((int)ClientEvent.CE_EQUIP_INFO_CHANGED, new CEventBaseArgs(equip));

            if (equip.IsInstalled)
            {
                ClientEventMgr.Instance.FireEvent((int)ClientEvent.CE_INSTALLED_EQUIP_INFO_CHANGED, new CEventBaseArgs(equip));
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 穿戴装备
        /// </summary>
        /// <param name="equip"></param>
        public void InstallEquip(EquipInfo equip)
        {
            if (LocalPlayerManager.Instance.InBallteStatus)
            {
                UINotice.Instance.ShowMessage(xc.TextHelper.GetConstText("CODE_TEXT_LOCALIZATION_58"));
                return;
            }

//            if(equip.Lv > LocalPlayerManager.instance.LocalActorAttribute.Level)
//            {
//                UINotice.instance.ShowMessage("无法装备,该装备等级超过玩家等级!");
//                return;
//            }
//
//            if (equip.HiLv > LocalPlayerManager.instance.LocalActorAttribute.HiLevel)
//            {
//                UINotice.instance.ShowMessage("无法装备,该装备巅峰等级超过玩家巅峰等级!");
//                return;
//            }
            var pack = new C2SEquipInstall();

            NetClient.GetBaseClient().SendData <C2SEquipInstall>(NetMsg.MSG_EQUIP_INSTALL, pack);
        }
Exemplo n.º 6
0
 public CEquipStarEventArgs(EquipInfo equip, List <PkgGoodsGidnum> materials)
 {
     Equip     = equip;
     Materials = materials;
 }