Exemple #1
0
    public bool Check(uint itemid, uint willUseNum)
    {
        table.ItemDataBase itemTb = GameTableManager.Instance.GetTableItem <table.ItemDataBase>(itemid);
        if (itemTb.maxUseTimes != 0)
        {
            if (willUseNum > itemTb.maxUseTimes)
            {
                return(false);
            }
        }
        int itemCount = DataManager.Manager <ItemManager>().GetItemNumByBaseId(itemid);

        if (itemCount < willUseNum)
        {
            TipsManager.Instance.ShowTipsById(6);
            return(false);
        }

        if (!CanLevelUp(itemid))
        {
            TipsManager.Instance.ShowTips(LocalTextType.Ride_Rank_zuoqidengjiyiman);
            return(false);
        }

        return(true);
    }
Exemple #2
0
    public void ShowRewardTips(uint taskid)
    {
        QuestTraceInfo questTrace = QuestTranceManager.Instance.GetQuestTraceInfo(taskid);

        if (questTrace != null)
        {
            if (questTrace.gold > 0)
            {
                //进背包飘字,先注释
                //TipsManager.Instance.ShowTips("获得金币X" + questTrace.gold);
            }
            if (questTrace.money > 0)
            {
                //进背包飘字,先注释
                //TipsManager.Instance.ShowTips("获得文钱X" + questTrace.money);
            }
            if (questTrace.Items.Count > 0)
            {
                for (int i = 0; i < questTrace.Items.Count; ++i)
                {
                    table.ItemDataBase itemDb = GameTableManager.Instance.GetTableItem <table.ItemDataBase>(questTrace.Items[i]);
                    if (itemDb != null)
                    {
                        //进背包飘字,先注释
                        //TipsManager.Instance.ShowTips("获得" + itemDb.itemName + "X" + questTrace.ItemNum[i]);
                    }
                }
            }
        }
    }
Exemple #3
0
    public bool UpdateData(uint baseId, GameCmd.ItemSerialize serverdata = null)
    {
        bool success = false;

        if (null != serverdata)
        {
            this.serverData = serverdata;
            StructServerItemAttribute();
            if (serverdata.pos != null)
            {
                UpdateServerLocation(serverdata.pos.loc);
            }
            this.baseId = serverdata.dwObjectID;
        }
        else
        {
            this.baseId = baseId;
        }

        m_baseData = GameTableManager.Instance.GetTableItem <table.ItemDataBase>(baseId);
        if (null != BaseData)
        {
            success = true;
        }

        m_bBaseReady = null != m_baseData;
        if (!m_bBaseReady)
        {
            return(false);
        }
        //tab attr
        m_sortID   = (int)BaseData.sortID;
        m_subType  = (int)BaseData.subType;
        m_useRole  = (int)BaseData.useRole;
        m_grade    = (int)BaseData.grade;
        m_baseType = (GameCmd.ItemBaseType)BaseData.baseType;

        //serverattr
        UpdateServerProperty();
        OnUpdateData();
        return(success);
    }
Exemple #4
0
    public void OnOpenNpcShopCommond(List <uint> tabs, uint npc_id)
    {
        Reset();
        tabList = tabs;
        NpcShopTabs data = new NpcShopTabs();
        Dictionary <uint, List <StoreDataBase> > dic = new Dictionary <uint, List <StoreDataBase> >();

        for (int i = 0; i < tabs.Count; i++)
        {
            for (int j = 0; j < tables.Count; j++)
            {
                if (tables[j].storeId == tabs[i])
                {
                    if (!tabDic.ContainsKey(tabs[i]))
                    {
                        List <int> sec = new List <int>();
                        sec.Add((int)tables[j].tag);
                        tabDic.Add(tabs[i], sec);
                        tabNames.Add(tabs[i], tables[j].NpcTag);
                    }
                    else
                    {
                        if (!tabDic[tabs[i]].Contains((int)tables[j].tag))
                        {
                            tabDic[tabs[i]].Add((int)tables[j].tag);
                        }
                    }
                    if (!dic.ContainsKey(tables[j].tag))
                    {
                        List <StoreDataBase> list = new List <StoreDataBase>();
                        list.Add(tables[j]);
                        dic.Add(tables[j].tag, list);
                    }
                    else
                    {
                        dic[tables[j].tag].Add(tables[j]);
                    }
                }
            }
            data.param.Add(tabs[i], dic);
        }


        data.names = tabDic;
        uint taskid = DataManager.Manager <TaskDataManager>().DoingTaskID;

        if (taskid != 0)
        {
            QuestTraceInfo questInfo = QuestTranceManager.Instance.GetQuestTraceInfo(taskid);
            if (questInfo != null)
            {
                if (questInfo.taskSubType == TaskSubType.DeliverItem && questInfo.doingNpc == npc_id)
                {
                    table.ItemDataBase itemdb = GameTableManager.Instance.GetTableItem <table.ItemDataBase>(questInfo.QuestTable.usecommitItemID);
                    if (itemdb != null)
                    {
                        if (!string.IsNullOrEmpty(itemdb.MissionNpcParam))
                        {
                            string[] split = itemdb.MissionNpcParam.Split('_');
                            if (split.Length == 2)
                            {
                                int obj = int.Parse(split[1]);
                                ItemManager.DoJump(uint.Parse(split[0]), obj);
                            }
                            else
                            {
                                Engine.Utility.Log.Error("道具表格中ID为{0}的任务NPC跳转参数缺失,长度不够!", questInfo.QuestTable.usecommitItemID);
                            }
                        }
                        else
                        {
                            Engine.Utility.Log.Error("道具表格中ID为{0}的任务NPC跳转参数为空!", questInfo.QuestTable.usecommitItemID);
                        }
                    }
                }
                else
                {
                    DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.NpcShopPanel, data: new NpcShopTabs()
                    {
                        names = data.names,
                        param = data.param,
                    });
                }
            }
            else
            {
                DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.NpcShopPanel, data: new NpcShopTabs()
                {
                    names = data.names,
                    param = data.param,
                });
            }
        }
        else
        {
            DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.NpcShopPanel, data: new NpcShopTabs()
            {
                names = data.names,
                param = data.param,
            });
        }
    }
Exemple #5
0
    public static ViewPlayerData BuildViewData(uint uid, string name, uint job, int level, uint sex = 0)
    {
        retData          = new ViewPlayerData();
        retData.job      = job;
        retData.sex      = sex;
        retData.userid   = uid;
        retData.username = name;
        table.RobotDataBase data = GameTableManager.Instance.GetTableItem <table.RobotDataBase>(job, level);
        if (data != null)
        {
            retData.power = data.power;

            retData.user_level = data.dwLevel;

            retData.viewRoleData       = new GameCmd.ViewRoleData();
            retData.viewRoleData.maxhp = (uint)(data.hp * 1.15f);
            retData.viewRoleData.maxsp = (uint)(data.mp * 1.15f);

            retData.viewRoleData.pdam_min = (uint)(data.pdam * 0.8f);
            retData.viewRoleData.pdam_max = (uint)(data.pdam * 1.15f);

            retData.viewRoleData.mdam_min = (uint)(data.mdam * 0.8f);
            retData.viewRoleData.mdam_max = (uint)(data.mdam * 1.15f);

            retData.viewRoleData.pdef_min = (uint)(data.mdef * 0.8f);
            retData.viewRoleData.pdef_max = (uint)(data.mdef * 1.15f);

            retData.viewRoleData.liliang      = data.liliang;
            retData.viewRoleData.minjie       = data.minjie;
            retData.viewRoleData.zhili        = data.zhili;
            retData.viewRoleData.tizhi        = data.tizhi;
            retData.viewRoleData.jingshen     = data.jingshen;
            retData.viewRoleData.esdam        = data.esdam;
            retData.viewRoleData.ssdam        = data.ssdam;
            retData.viewRoleData.lsdam        = data.lsdam;
            retData.viewRoleData.vsdam        = data.vsdam;
            retData.viewRoleData.lucky        = data.lucky;
            retData.viewRoleData.mlucky       = data.mlucky;
            retData.viewRoleData.criti_ratio  = data.criti_ratio;
            retData.viewRoleData.cure         = data.cure;
            retData.viewRoleData.phit         = data.phit;
            retData.viewRoleData.hide_per     = data.hide_per;
            retData.viewRoleData.pabs         = data.pabs;
            retData.viewRoleData.mabs         = data.mabs;
            retData.viewRoleData.harm_add_per = data.harm_add_per;
            retData.viewRoleData.harm_sub_per = data.harm_sub_per;

            List <uint> equipList = new List <uint>();

            /*1;    //  头盔
            *  2;    //  护肩
            *  3;    //  上衣
            *  4;    //  护腿
            *  5;    //  戒指
            *  7;    //  盾牌
            *  8;    //  武器
            *  9;    //  鞋子
            *  10;   //  护腕
            *  11;   //  腰带
            *  12;   //  披风
            *  13;   //  项链*/
            equipList.Add(data.Hat);
            equipList.Add(data.Shoulder);
            equipList.Add(data.Coat);
            equipList.Add(data.Leg);
            equipList.Add(data.Adornl_1);
            equipList.Add(data.Adornl_2);
            equipList.Add(data.Shield);
            equipList.Add(data.Equip);
            equipList.Add(data.Shoes);
            equipList.Add(data.Cuff);
            equipList.Add(data.Belf);
            equipList.Add(data.Necklace);

            GameCmd.ItemSerialize item = null;
            for (int i = 0; i < equipList.Count; i++)
            {
                if (equipList[i] == 0)
                {
                    continue;
                }
                table.ItemDataBase itemdb = GameTableManager.Instance.GetTableItem <table.ItemDataBase>(equipList[i]);
                if (itemdb == null)
                {
                    continue;
                }
                //GameCmd.eItemAttribute
                item            = new GameCmd.ItemSerialize();
                item.dwObjectID = equipList[i];

                GameCmd.EquipPos[] pos = EquipDefine.GetEquipPosByEquipType((GameCmd.EquipType)itemdb.subType);
                if (pos.Length == 2)
                {
                    uint loc = 0;
                    if (i == 4)
                    {
                        loc = ItemDefine.TransformLocal2ServerLocation(GameCmd.PACKAGETYPE.PACKAGETYPE_EQUIP, new UnityEngine.Vector2()
                        {
                            x = 0, y = (int)pos[0]
                        });
                    }
                    else if (i == 5)
                    {
                        loc = ItemDefine.TransformLocal2ServerLocation(GameCmd.PACKAGETYPE.PACKAGETYPE_EQUIP, new UnityEngine.Vector2()
                        {
                            x = 0, y = (int)pos[1]
                        });
                    }

                    item.pos = new GameCmd.tItemLocation()
                    {
                        loc = loc
                    };
                }
                else if (pos.Length == 1)
                {
                    uint loc = ItemDefine.TransformLocal2ServerLocation(GameCmd.PACKAGETYPE.PACKAGETYPE_EQUIP, new UnityEngine.Vector2()
                    {
                        x = 0, y = (int)pos[0]
                    });
                    item.pos = new GameCmd.tItemLocation()
                    {
                        loc = loc
                    };
                }
                item.dwNum = 1;
                item.numbers.Add(new GameCmd.PairNumber()
                {
                    id = (int)GameCmd.eItemAttribute.Item_Attribute_Bind, value = itemdb.bindMask
                });
                item.numbers.Add(new GameCmd.PairNumber()
                {
                    id = (int)GameCmd.eItemAttribute.Item_Attribute_Grade, value = itemdb.grade
                });

                table.EquipDataBase equipdb = GameTableManager.Instance.GetTableItem <table.EquipDataBase>(itemdb.itemID);
                if (equipdb == null)
                {
                    continue;
                }
                item.numbers.Add(new GameCmd.PairNumber()
                {
                    id = (int)GameCmd.eItemAttribute.Item_Attribute_Dur, value = equipdb.maxDurable
                });
                item.numbers.Add(new GameCmd.PairNumber()
                {
                    id = (int)GameCmd.eItemAttribute.Item_Attribute_HoleNum, value = 0
                });
                item.numbers.Add(new GameCmd.PairNumber()
                {
                    id = (int)GameCmd.eItemAttribute.Item_Attribute_FightPower, value = equipdb.fightPower
                });

                retData.itemList.Add(item);

                if (equipdb.act_show != 0)
                {
                    table.SuitDataBase suitDb = GameTableManager.Instance.GetTableItem <table.SuitDataBase>(equipdb.act_show, 1);
                    if (suitDb != null)
                    {
                        retData.suit_data.Add(new GameCmd.SuitData()
                        {
                            baseid = suitDb.base_id, suit_type = (GameCmd.EquipSuitType)suitDb.type
                        });
                    }
                }
            }
        }

        return(retData);
    }
    protected override void OnShow(object data)
    {
        base.OnShow(data);
        RegisterGlobalEvent(true);

        Vector3 pos = Vector3.zero;

        if (null != data && data is SuitPanelParam)
        {
            SuitPanelParam par = (SuitPanelParam)data;
            pos           = (Vector3)par.vec;
            m_CurType     = par.m_type;
            isOtherPlayer = par.isOther;
        }
        if (null != m_trans_Content)
        {
            m_trans_Content.transform.localPosition = pos;
        }
        StrengthenDataDes.Clear();
        m_lstSuitLv.Clear();
        if (isOtherPlayer)
        {
            ViewPlayerData retData = ViewPlayerData.GetViewPlayerData();
            if (retData == null)
            {
                return;
            }
            List <GemInlayList>  gem_data     = retData.gem_data;
            List <StrengthList>  strengthList = retData.strengthList;
            List <ItemSerialize> itemList     = retData.itemList;
            List <uint>          tempStrength = new List <uint>();
            #region 宝石等级
            ActiveStoneSuitLv = 0;
            for (int i = 0; i < gem_data.Count; i++)
            {
                uint itemID             = gem_data[i].base_id;
                table.ItemDataBase item = GameTableManager.Instance.GetTableItem <table.ItemDataBase>(itemID);
                if (item != null)
                {
                    ActiveStoneSuitLv += item.grade;
                }
            }
            #endregion
            #region 颜色等级
            ActiveColorSuitLv = 0;
            List <BaseItem> items = new List <BaseItem>();
            for (int i = 0; i < itemList.Count; i++)
            {
                BaseItem baseItem = new BaseItem(itemList[i].dwObjectID, itemList[i]);
                if (baseItem != null)
                {
                    if (baseItem.EquipColor >= EquipDefine.EquipColor.Orange)
                    {
                        items.Add(baseItem);
                    }
                }
            }
            for (int j = 0; j < colors.Count; j++)
            {
                uint count = 0;
                for (int x = 0; x < items.Count; x++)
                {
                    if (items[x].Grade >= colors[j].grade)
                    {
                        count++;
                    }
                }
                if (count >= colors[j].equip_num)
                {
                    ActiveColorSuitLv = colors[j].level;
                }
            }
            #endregion
            #region 套装强化等级
            ActiveStrengthenSuitLv = 0;
            List <GridStrengthenSuitDataBase> StrengthenDataBase = GameTableManager.Instance.GetTableList <GridStrengthenSuitDataBase>();

            for (int i = 0; i < StrengthenDataBase.Count; i++)
            {
                if (StrengthenDataBase[i].job == retData.job)
                {
                    uint matchNum = 0;
                    m_lstSuitLv.Add(StrengthenDataBase[i].suitlv);
                    StrengthenDataDes.Add(StrengthenDataBase[i].des);
                    for (int j = 0; j < strengthList.Count; j++)
                    {
                        if (strengthList[j].level >= StrengthenDataBase[i].triggerStrengLv)
                        {
                            matchNum++;
                        }
                    }
                    if (matchNum >= StrengthenDataBase[i].triggerPosNum)
                    {
                        ActiveStrengthenSuitLv = StrengthenDataBase[i].suitlv;
                    }
                }
            }

            #endregion
        }
        else
        {
            ActiveStrengthenSuitLv = DataManager.Manager <EquipManager>().ActiveStrengthenSuitLv;
            ActiveColorSuitLv      = DataManager.Manager <EquipManager>().ActiveColorSuitLv;
            ActiveStoneSuitLv      = DataManager.Manager <EquipManager>().ActiveStoneSuitLv;
            m_lstSuitLv.AddRange(DataManager.Manager <EquipManager>().CurGroupSuitData.GetStrengthenLvDatas());
            for (int i = 0; i < m_lstSuitLv.Count; i++)
            {
                string des = DataManager.Manager <EquipManager>().CurGroupSuitData.GetLocalStrengthenData(m_lstSuitLv[i]).Des;
                StrengthenDataDes.Add(des);
            }
        }
        CreateData();
    }
Exemple #7
0
    void InitPanel(ActiveTakeParam data)
    {
        m_label_Title.text = "活跃领取";
        boxID = data.boxID;
        DailyAwardDataBase awardData = GameTableManager.Instance.GetTableItem <DailyAwardDataBase>(boxID);

        m_label_Des_Label.text = string.Format(DataManager.Manager <TextManager>().GetLocalText(LocalTextType.Local_Txt_Daily_BoxTips), awardData.liveness);
        m_lst_UIItemRewardDatas.Clear();
        if (awardData.Exp > 0)
        {
            m_lst_UIItemRewardDatas.Add(new UIItemRewardData()
            {
                itemID = 60006,
                num    = awardData.Exp,
            });
        }
        if (awardData.gold > 0)
        {
            m_lst_UIItemRewardDatas.Add(new UIItemRewardData()
            {
                itemID = 60001,
                num    = awardData.gold,
            });
        }
        if (awardData.ticket > 0)
        {
            m_lst_UIItemRewardDatas.Add(new UIItemRewardData()
            {
                itemID = 60002,
                num    = awardData.ticket,
            });
        }
        string[] items = awardData.awarditem.Split(';');

        for (int i = 0; i < items.Length; i++)
        {
            string[] item = items[i].Split("_".ToCharArray());
            uint     itemID;
            uint     num = 1;
            if (uint.TryParse(item[0], out itemID))
            {
                table.ItemDataBase itemdata = GameTableManager.Instance.GetTableItem <ItemDataBase>(itemID);
                if (itemdata != null)
                {
                    if (uint.TryParse(item[1], out num))
                    {
                        m_lst_UIItemRewardDatas.Add(new UIItemRewardData()
                        {
                            itemID = itemdata.itemID,
                            num    = num,
                        });
                    }
                    else
                    {
                        m_lst_UIItemRewardDatas.Add(new UIItemRewardData()
                        {
                            itemID = itemdata.itemID,
                            num    = 1,
                        });
                    }
                }
                else
                {
                    Engine.Utility.Log.Info("宝箱奖励的道具ID配置有误!");
                }
            }
        }

        m_ctor_UIItemRewardCreator.CreateGrids(m_lst_UIItemRewardDatas.Count);

        if (!data.ids.Contains(boxID))
        {
            if (data.canGetState == 1)
            {
                m_btn_btn_Take.isEnabled = true;
                m_btn_btn_Take.transform.GetComponentInChildren <UILabel>().text = "领取";
            }
            else if (data.canGetState == 2)
            {
                m_btn_btn_Take.isEnabled = false;
                m_btn_btn_Take.transform.GetComponentInChildren <UILabel>().text = "已领取";
            }
            else
            {
                m_btn_btn_Take.isEnabled = false;
                m_btn_btn_Take.transform.GetComponentInChildren <UILabel>().text = "领取";
            }
        }
        else
        {
            m_btn_btn_Take.isEnabled = false;
            m_btn_btn_Take.transform.GetComponentInChildren <UILabel>().text = "已领取";
        }
    }