public void Load() { bool initStorage = false; using (var data = (MySqlDataReader)Server.Instance.CharacterDatabase.RunQuery( "SELECT slots, mesos FROM storage WHERE userid = @userid AND world_id = @worldid", "@userid", Character.UserID, "@worldid", Server.Instance.WorldID )) { if (data.Read() == false) { MaxSlots = 4; Mesos = 0; initStorage = true; } else { MaxSlots = (byte)data.GetInt16(0); Mesos = data.GetInt32(1); } } if (initStorage) { Server.Instance.CharacterDatabase.RunQuery( "INSERT INTO storage (userid, world_id) VALUES (@userid, @worldid)", "@userid", Character.UserID, "@worldid", Server.Instance.WorldID ); } _items = new BaseItem[5][]; SetSlots(MaxSlots); SplitDBInventory.Load( Server.Instance.CharacterDatabase, "storage", $"userid = {Character.UserID} AND world_id = {Server.Instance.WorldID}", (type, inventory, slot, item) => { AddItem(item); } ); }
public void Save() { int userId = Character.UserID; int worldId = Server.Instance.WorldID; Server.Instance.CharacterDatabase.RunQuery( "UPDATE storage SET " + "slots = " + MaxSlots + ", " + "mesos = " + Mesos + " " + "WHERE " + "userid = " + userId + " AND " + "world_id = " + worldId); short slot = 0; for (var i = 0; i < _items.Length; i++) { for (var j = 0; j < MaxSlots; j++) { var x = _items[i][j]; if (x != null) { x.InventorySlot = slot++; } } } SplitDBInventory.Save( Server.Instance.CharacterDatabase, "storage", $"{userId}, {worldId},", $"userid = {userId} AND world_id = {worldId}", (type, inventory) => { if (inventory == 5) { return(new List <BaseItem>()); } return(GetInventoryItems(inventory)); }, Program.MainForm.LogAppend ); }