Zapisywanie wielu danych

0

Czołem.
Nie mam wiele doświadczenia jeżeli chodzi o C# więc być może jest to banalna sprawa.

Potrzebuję porady w jaki sposób mogę zapisać dane w formie takiej jak:

Account[playerid][Nick] // Wartość przykładowa: Shivson
Account[playerid][Money] // Wartość przykładowa: 12500
Account[playerid][Logged ]// Wartość przykładowa: 1

etc.

Następnie po użyciu przykładowo

Account[playerid][Money] - chciałbym otrzymać wartość tam zapisaną, czyli 12500
Account[playerid][Nick] - chciałbym otrzymać wartość tam zapisaną, czyli Shivson

Pozdrawiam, Shivson

0

Rozumiem że chcesz zapisać dane i po ponownym uruchomieniu aplikacji odczytać? Jeśli tak to najlepiej zapisać je w bazie danych albo w pliku tekstowym.

0

Chodzi mi o to że pobieram dane z bazy MySQL i w momencie gdy gracz loguje się na swoje konto, dane z bazy mają być przypisane do zmiennych, dzięki czemu będę mógł operować wewnątrz programu a nie bazy danych.

Przykładowo z bazy danych pobieram:

Nick: Shivson
Money: 12500

Gra przydziela graczowi numer id 1 - gdyż wszedł do gry jako pierwszy

Chcę zapisać te dane w formacie

Account[1][Nick] = Shivson;
Account[1][Money] = 12500;

W trakcie gry będę mógł z poziomu skryptu edytować te dane poprzez zmienianie przykładowo wartości Account[1][Money] i dopiero na końcu zapisać te dane do bazy MySQL.

Trochę chaotycznie opisane.

0

Chodzi Ci o dostęp jak w tablicach?

 array[1] = "asas"

Jeśli tak to mozesz skorzystać z indeksatorów, visual studio ma nawet skrót na to, piszesz indexer i 2 razy tab

         public object this[int index]
        {
            get { /* return the specified index here */ }
            set { /* set the specified index to value here */ }
        }

Podwójne możesz zaimplementować np tak:

        class Accounts
        {
            private readonly Dictionary<int, Account> acc = new Dictionary<int, Account>();
            public Account this[int index]
            {
                get { return acc.ContainsKey(index)?acc[index]:null;}
                set { acc[index] = value; }
            }
            public class Account
            {
                private readonly Dictionary<string, dynamic> properties = new Dictionary<string, dynamic>();
                public int MagicznaZmienna{ get; set; }
                public dynamic this[string index]
                {
                    get { return properties.ContainsKey(index)?acc[index]:null; }
                    set { properties[index] = value; }
                }
            }
        }

Swoją drogą dość dziwne podejście, bo mógł byś napisać po prostu klasę z odpowiednimi polami, i przechowywać jest w jakiejś kolecji lub klasie z tą kolekcja. Miałbyś to samo tylko prościej a zamiast klamerek była by kropka.

0

Okej, zabrałem się za umieszczenie tego w klasie.

Jednak pytanie jest inne.

Jeżeli mam przedstawione to w taki sposób.

public class Account
{
        public int ID;
        public int PermLevel;
        public int Money;
        public int Skin;
}
Account gracz = new Account();
gracz.Money = 2500;

To jak mam przypisać osobną ilość dla gracza z przykładowym ID 1 i ID 2?

0

uzyj serializacji danych (pozniej przy starcie deserializujesz dane i wszystko bedziesz miec wczytane)

jezeli nie wiesz co to jest, poczytaj

1 użytkowników online, w tym zalogowanych: 0, gości: 1