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); }
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); }