DarkEmu_GameServer.Systems.GetFreeSlot C# (CSharp) Метод

GetFreeSlot() публичный Метод

public GetFreeSlot ( ) : byte
Результат byte
        public byte GetFreeSlot()
        {
            #region List free slots
            List<byte> ListSlot = new List<byte>(Character.Information.Slots);
            MsSQL ms = new MsSQL("SELECT * FROM char_items WHERE owner='" + Character.Information.CharacterID + "' AND slot >= '13' AND slot <= '" + Character.Information.Slots + "' AND inavatar='0'");
            using (System.Data.SqlClient.SqlDataReader reader = ms.Read())
            {
                while (reader.Read())
                {
                    ListSlot.Add(reader.GetByte(5));
                }
            }
            ms.Close();
            for (byte i = 13; i < Character.Information.Slots; i++)
            {
                if (!GetCheckFreeSlot(ListSlot, i)) return i;
            }
            return 0;
            #endregion
        }

Usage Example

Пример #1
0
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Exchange Approve
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        void Exchange_Approve()
        {
            try
            {
                Systems sys = GetPlayer(Character.Network.TargetID);
                client.Send(Packet.Exchange_Approve());
                Character.Network.Exchange.Approved = true;
                if (sys.Character.Network.Exchange.Approved)
                {
                    #region Gold update
                    if (Character.Network.Exchange.Gold != 0)
                    {
                        Character.Information.Gold -= Character.Network.Exchange.Gold;
                        client.Send(Packet.UpdateGold(Character.Information.Gold));
                        SaveGold();

                        sys.Character.Information.Gold += Character.Network.Exchange.Gold;
                        sys.client.Send(Packet.UpdateGold(sys.Character.Information.Gold));
                        sys.SaveGold();
                    }
                    if (sys.Character.Network.Exchange.Gold != 0)
                    {
                        sys.Character.Information.Gold -= sys.Character.Network.Exchange.Gold;
                        sys.client.Send(Packet.UpdateGold(sys.Character.Information.Gold));
                        sys.SaveGold();

                        Character.Information.Gold += sys.Character.Network.Exchange.Gold;
                        client.Send(Packet.UpdateGold(Character.Information.Gold));
                        SaveGold();
                    }
                    #endregion

                    #region Items
                    if (Character.Network.Exchange.ItemList.Count > 0)
                    {
                        foreach (Global.slotItem item in Character.Network.Exchange.ItemList)
                        {
                            byte t_slot = sys.GetFreeSlot();
                            Systems.MsSQL.InsertData("UPDATE char_items SET owner='" + sys.Character.Information.CharacterID + "' WHERE owner='" + Character.Information.CharacterID + "' AND itemid='" + item.ID + "' AND id='" + item.dbID + "' AND storagetype='0'");
                        }
                    }

                    if (sys.Character.Network.Exchange.ItemList.Count > 0)
                    {
                        foreach (Global.slotItem item in sys.Character.Network.Exchange.ItemList)
                        {
                            byte t_slot = GetFreeSlot();
                            Systems.MsSQL.InsertData("UPDATE char_items SET owner='" + Character.Information.CharacterID + "' WHERE owner='" + sys.Character.Information.CharacterID + "' AND itemid='" + item.ID + "' AND id='" + item.dbID + "' AND storagetype='0'");
                        }
                    }
                    #endregion

                    client.Send(Packet.Exchange_Finish());
                    sys.client.Send(Packet.Exchange_Finish());
                    Character.State.Exchanging     = false;
                    sys.Character.State.Exchanging = false;
                }
            }
            catch (Exception ex)
            {
                Systems.Debugger.Write(ex);
            }
        }
Systems