CODE |
//darkstone edit private DateTime m_NextPickup; public override void OnThink() { base.OnThink(); if (DateTime.Now < m_NextPickup) return; m_NextPickup = DateTime.Now + TimeSpan.FromSeconds(3); Container pack = this.Backpack; if (pack == null) return; ArrayList list = new ArrayList(); foreach (Item item in this.GetItemsInRange(0)) { if (item.Movable && item.Stackable) list.Add(item); } for (int i = 0; i < list.Count; ++i) { Item item = (Item)list[i]; if (!pack.CheckHold(this, item, false, true)) return; bool rejected; LRReason reject; NextActionTime = DateTime.Now; Lift(item, item.Amount, out rejected, out reject); if (rejected) continue; Drop(this, Point3D.Zero); } } |