public void StoreItem(int from, int to) { S.StoreItem p = new S.StoreItem { From = from, To = to, Success = false }; if (NPCPage == null || !String.Equals(NPCPage.Key, NPCObject.StorageKey, StringComparison.CurrentCultureIgnoreCase)) { Enqueue(p); return; } NPCObject ob = null; for (int i = 0; i < CurrentMap.NPCs.Count; i++) { if (CurrentMap.NPCs[i].ObjectID != NPCID) continue; ob = CurrentMap.NPCs[i]; break; } if (ob == null || !Functions.InRange(ob.CurrentLocation, CurrentLocation, Globals.DataRange)) { Enqueue(p); return; } if (from < 0 || from >= Info.Inventory.Length) { Enqueue(p); return; } if (to < 0 || to >= Account.Storage.Length) { Enqueue(p); return; } UserItem temp = Info.Inventory[from]; if (temp == null) { Enqueue(p); return; } if (temp.Info.Bind.HasFlag(BindMode.DontStore)) { Enqueue(p); return; } if (Account.Storage[to] == null) { Account.Storage[to] = temp; Info.Inventory[from] = null; RefreshBagWeight(); Report.ItemMoved("StoreItem", temp, MirGridType.Inventory, MirGridType.Storage, from, to); p.Success = true; Enqueue(p); return; } Enqueue(p); }
public void StoreItem(int from, int to) { S.StoreItem p = new S.StoreItem { From = from, To = to, Success = false }; if (NPCPage == null || NPCPage.Key != NPCObject.StorageKey) { Enqueue(p); return; } NPCObject ob = null; for (int i = 0; i < CurrentMap.NPCs.Count; i++) { if (CurrentMap.NPCs[i].ObjectID != NPCID) continue; ob = CurrentMap.NPCs[i]; break; } if (ob == null || !Functions.InRange(ob.CurrentLocation, CurrentLocation, Globals.DataRange)) { Enqueue(p); return; } if (from < 0 || from >= Info.Inventory.Length) { Enqueue(p); return; } if (to < 0 || to >= Account.Storage.Length) { Enqueue(p); return; } UserItem temp = Info.Inventory[from]; if (temp == null) { Enqueue(p); return; } if (Account.Storage[to] == null) { Account.Storage[to] = temp; Info.Inventory[from] = null; RefreshBagWeight(); p.Success = true; Enqueue(p); return; } Enqueue(p); }