Ejemplo n.º 1
0
        /// <summary>
        /// 给当前英雄添加新的物品配置
        /// </summary>
        public void AddHeroGoodsDisposition()
        {
            cmd_war_equipscheme newScheme = new cmd_war_equipscheme();

            //向上申请新配置
            if (EquipSchemeDataManager.Instance.addEquipScheme(CurrentSelectHero, ref newScheme))
            {
                UGD_GoodsDispositionItem item = new UGD_GoodsDispositionItem();
                item.From(newScheme, true);
                GoodsDispositionList.Add(item);
                CurrentGoodsDispositionID = newScheme.bySchemeID;
            }
            else
            {
                //USpeedUI.TooltipAndDialog.UIDialogData data = new USpeedUI.TooltipAndDialog.UIDialogData(
                //    title: ULocalizationService.Instance.Get("UIView", "GoodsDispositionView", "TitleAsk"),
                //    message: ULocalizationService.Instance.Get("UIView", "GoodsDispositionView", "DispositionFilled"),
                //    buttons: new UIWidgets.DialogActions() {
                //      {ULocalizationService.Instance.Get("UIView", "Common", "ConfirmBtn"), null},}
                //    );
                //UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_COMMON_DIALOG, data);
                UGD_DispositionFilledMsgData msgData = new UGD_DispositionFilledMsgData();
                msgData.HeroID            = CurrentSelectHero;
                msgData.onConfirmCallback = AddHeroGoodsDisposition;
                UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_GOODSDISPOSITION, WndMsgID.WND_MSG_GOODSDISPOSITION_OPEN_DISPOSITIONFILLED, msgData);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取大神推荐装(主城调用)
        /// </summary>
        /// <param name="nHeroID"></param>
        /// <returns></returns>
        public List <cmd_war_equipscheme> getGodRecommandEquipList(int nHeroID)
        {
            List <SSchemeGodRecommdEquip> list = GameMobaSchemesManager.Instance.getGodRecommdEquipList(nHeroID);

            if (list == null)
            {
                return(null);
            }

            List <cmd_war_equipscheme> resultList = new List <cmd_war_equipscheme>();

            byte bySchemeID = (byte)EWEquipSchemeType.EWEST_Max;

            foreach (var item in list)
            {
                cmd_war_equipscheme scheme = new cmd_war_equipscheme();
                scheme.nHeroID      = nHeroID;
                scheme.bySchemeID   = bySchemeID;
                scheme.szAuthorName = item.AuthorName;
                scheme.szSchemeName = item.SchemeName;
                scheme.szTitle      = item.Title;
                scheme.nEquipIDList = item.nEquipList;

                resultList.Add(scheme);

                bySchemeID++;
            }

            return(resultList);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 添加装备方案
        /// </summary>
        /// <param name="nHeroID"></param>
        /// <param name="scheme"></param>
        /// <returns>是否本地添加成功</returns>
        public bool addEquipScheme(int nHeroID, ref cmd_war_equipscheme scheme)
        {
            // 先本地添加,同时会向服务器发送请求
            if (!addNewEquipScheme(nHeroID, ref scheme))
            {
                UIUtil.ShowSystemMessage(EMChatTipID.CHAT_TIP_CUSTOMER_TIP, "装备方案已经满了");
                return(false);
            }

            return(true);
        }
Ejemplo n.º 4
0
        // 增加装备方案
        private void sendAddEquipScheme(int nHeroID, cmd_war_equipscheme scheme)
        {
            cmd_war_add_equipscheme cmd;

            cmd.nHeroID      = nHeroID;
            cmd.szAuthorName = scheme.szAuthorName;
            cmd.szSchemeName = scheme.szSchemeName;
            cmd.szTitle      = scheme.szTitle;
            cmd.nEquipIDList = scheme.nEquipIDList;

            EntityEventHelper.Instance.SendCommand(EntityFactory.getMainPlayer().ID, EntityLogicDef.ENTITY_CMD_WAR_ADD_EQUIPSCHEME, ref cmd);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 分享装备方案到聊听框输入框
        /// </summary>
        /// <param name="scheme"></param>
        public void shareEquipScheme(int nHeroID, cmd_war_equipscheme scheme)
        {
            string equipStr = "";

            string[] strArray = new string[scheme.nEquipIDList.Length];
            for (int i = 0; i < scheme.nEquipIDList.Length; ++i)
            {
                strArray[i] = scheme.nEquipIDList[i].ToString();
            }
            equipStr = String.Join(",", strArray);

            ChatSubItemText_EquipScheme.ShareToInputField(nHeroID, scheme.szAuthorName, scheme.szSchemeName, scheme.szTitle, equipStr);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 保存装备方案
        /// </summary>
        /// <param name="nHeroID"></param>
        /// <param name="scheme"></param>
        public void saveEquipScheme(int nHeroID, cmd_war_equipscheme scheme)
        {
            //if (scheme.bySchemeID == (byte)EWEquipSchemeType.EWEST_None)
            //addEquipScheme(nHeroID, out scheme);
            //else
            //{
            //_addEquipScheme(nHeroID, scheme);

            //sendModifyEquipScheme(nHeroID, scheme);
            //}

            sendModifyEquipScheme(nHeroID, scheme);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 获取英雄的自定义装备方案(主城中调用)
        /// </summary>
        /// <param name="nHeroID"></param>
        /// <param name="schemeList"></param>
        /// <returns>是否获取成功,未成功显示层则可以用一个Loading界面来等待一下</returns>
        public bool getDiyEquipSchemeList(int nHeroID, out List <cmd_war_equipscheme> schemeList)
        {
            Dictionary <byte, cmd_war_equipscheme> tmpSchemeList;

            schemeList = new List <cmd_war_equipscheme>();

            if (!m_EquipSchemeList.TryGetValue(nHeroID, out tmpSchemeList))
            {
                // 是否已经发送请求了
                if (!isReqHeroEquipScheme(nHeroID))
                {
                    // 本地没有数据则向服务器请求
                    sendReadEquipScheme(nHeroID);

                    // 正在向服务器请求该英雄数据
                    m_ReqHeroEquipScheme[nHeroID] = true;
                }

                return(false);
            }

            // 一个装备都没有,添加一个
            if (tmpSchemeList.Count == 0)
            {
                cmd_war_equipscheme newScheme = new cmd_war_equipscheme();
                newScheme.nHeroID      = nHeroID;
                newScheme.nEquipIDList = new int[UDefines.nEquipSchemeMaxEquipNum];
                newScheme.szAuthorName = "";
                newScheme.szSchemeName = DefaultEquipSchemeName;

                if (!addNewEquipScheme(nHeroID, ref newScheme))
                {
                    Debug.LogError("Add new equip scheme failed.");
                    return(false);
                }

                tmpSchemeList = m_EquipSchemeList[nHeroID];
            }

            foreach (var item in tmpSchemeList)
            {
                if (isDiyEquipShceme(item.Value.bySchemeID))
                {
                    schemeList.Add(item.Value);
                }
            }

            return(true);
        }
Ejemplo n.º 8
0
 public bool AddHeroGoodsDispositionFromShare(int _nHeroID, cmd_war_equipscheme _nNewScheme)
 {
     if (EquipSchemeDataManager.Instance.addEquipScheme(_nHeroID, ref _nNewScheme))
     {
         if (_nHeroID == CurrentSelectHero)
         {
             UGD_GoodsDispositionItem item = new UGD_GoodsDispositionItem();
             item.From(_nNewScheme, true);
             GoodsDispositionList.Add(item);
         }
         return(true);
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 9
0
        /// <summary>
        /// 获取某个英雄的某个装备方案
        /// </summary>
        /// <param name="nHeroID"></param>
        /// <param name="bySchemeID"></param>
        /// <param name="scheme"></param>
        /// <returns></returns>
        public bool getEquipScheme(int nHeroID, byte bySchemeID, out cmd_war_equipscheme scheme)
        {
            Dictionary <byte, cmd_war_equipscheme> schemeList;

            scheme = new cmd_war_equipscheme();

            if (!m_EquipSchemeList.TryGetValue(nHeroID, out schemeList))
            {
                return(false);
            }

            if (!schemeList.TryGetValue(bySchemeID, out scheme))
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 10
0
        // 添加一个新的方案
        private bool addNewEquipScheme(int nHeroID, ref cmd_war_equipscheme newScheme)
        {
            EWEquipSchemeType type = getFreeSchemeID(nHeroID);

            if (type == EWEquipSchemeType.EWEST_None)
            {
                return(false);
            }

            // 当前英雄一个装备方案都没有,则增加个默认的
            newScheme.bySchemeID = (byte)type;

            // 添加到本地缓存
            _addEquipScheme(nHeroID, newScheme);

            // 添加到服务器数据库
            sendAddEquipScheme(nHeroID, newScheme);

            return(true);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 拷贝操作只用于当前英雄的当前物品配置
        /// </summary>
        /// <param name="_nHeroID"></param>
        /// <param name="_remainingHeroID"></param>
        /// <returns></returns>
        public bool AddHeroGoodsDispositionFromCopy(int _nHeroID, Action _fillConfirmCallback)
        {
            //当前英雄配置设为目标英雄的
            cmd_war_equipscheme HeroScheme = CurrentGoodsDisposition.To();

            HeroScheme.nHeroID = _nHeroID;

            if (AddHeroGoodsDispositionFromShare(_nHeroID, HeroScheme))
            {
                return(true);
            }
            else
            {
                UGD_DispositionFilledMsgData msgData = new UGD_DispositionFilledMsgData();
                msgData.HeroID            = _nHeroID;
                msgData.onConfirmCallback = _fillConfirmCallback;
                UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_GOODSDISPOSITION, WndMsgID.WND_MSG_GOODSDISPOSITION_OPEN_DISPOSITIONFILLED, msgData);
                return(false);
            }
        }
Ejemplo n.º 12
0
        // 添加装备方案
        private bool _addEquipScheme(int nHeroID, cmd_war_equipscheme scheme)
        {
            Dictionary <byte, cmd_war_equipscheme> schemeList;

            if (!m_EquipSchemeList.TryGetValue(nHeroID, out schemeList))
            {
                schemeList = new Dictionary <byte, cmd_war_equipscheme>();
                m_EquipSchemeList.Add(nHeroID, schemeList);
            }

            if (!schemeList.ContainsKey(scheme.bySchemeID))
            {
                schemeList.Add(scheme.bySchemeID, scheme);
            }
            else
            {
                schemeList[scheme.bySchemeID] = scheme;
            }

            return(true);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 每次切换英雄时,获取当前英雄的所有物品配置列表
        /// </summary>
        protected void SetHeroGoodsDispositionList()
        {
            if (CurrentSelectHero <= 0)
            {
                return;
            }

            List <cmd_war_equipscheme> schemeList;

            if (!EquipSchemeDataManager.Instance.getDiyEquipSchemeList(CurrentSelectHero, out schemeList))
            {
                return;
            }

            GoodsDispositionList.Clear();

            int defaultDispositionID = 0;

            {
                for (int i = 0; i < schemeList.Count; ++i)
                {
                    cmd_war_equipscheme      scheme = schemeList[i];
                    UGD_GoodsDispositionItem item   = new UGD_GoodsDispositionItem();
                    item.From(scheme);

                    if (i == 0)
                    {
                        defaultDispositionID = item.DispositionID;
                        item.IsCurrent       = true;
                    }


                    GoodsDispositionList.Add(item);
                }
            }

            CurrentGoodsDispositionID = defaultDispositionID;
            TimerManager.KillTimer(this, (int)ETimerHandlerID.GoodsDispositionList);
            //UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_GOODSDISPOSITION, WndMsgID.WND_MSG_GOODSDISPOSITION_SET_HEROGOODSDISPOSITIONLIST, null);
        }
Ejemplo n.º 14
0
        // 接收装备方案列表
        public void recvEquipSchemeList(IntPtr ptrParam, int nParamLen)
        {
            IntPtrVaArgParseHelper   helper = new IntPtrVaArgParseHelper(ptrParam, nParamLen);
            cmd_war_equipscheme_list cmd    = helper.get <cmd_war_equipscheme_list>();

            int nHeroID      = cmd.nHeroID;
            int nSchemeCount = cmd.nSchemeCount;

            // 已经获得该英雄的装备方案
            m_ReqHeroEquipScheme[nHeroID] = false;

            if (!m_EquipSchemeList.ContainsKey(nHeroID))
            {
                m_EquipSchemeList.Add(nHeroID, new Dictionary <byte, cmd_war_equipscheme>(0, null));
            }

            for (int i = 0; i < nSchemeCount; ++i)
            {
                cmd_war_equipscheme scheme = helper.get <cmd_war_equipscheme>();

                _addEquipScheme(nHeroID, scheme);
            }
        }
Ejemplo n.º 15
0
 // 保存装备方案
 private void _saveEquipScheme(int nHeroID, cmd_war_equipscheme scheme)
 {
 }