Esempio n. 1
0
    List <table.ItemDataBase> GetItemListByType(GameCmd.ItemBaseType itype, uint subtype)
    {
        List <table.ItemDataBase> items      = new List <table.ItemDataBase>();
        List <table.ItemDataBase> itemtables = GameTableManager.Instance.GetTableList <table.ItemDataBase>();
        uint level = (uint)((null != DataManager.Instance.MainPlayer)
               ? DataManager.Instance.MainPlayer.GetProp((int)Client.CreatureProp.Level) : 0);

        for (int i = 0, imax = itemtables.Count; i < imax; i++)
        {
            if (itemtables[i].baseType == (uint)itype && itemtables[i].subType == subtype && itemtables[i].useLevel <= level)
            {
                items.Add(itemtables[i]);
            }
        }
        return(items);
    }
Esempio n. 2
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);
    }