Skocz do zawartości
Dzień Dziecka z CSHacked

Problem z przypisaniem danych do tablicy o zmienionym rozmiarze indeksu. VC#


# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

Cześć, ogarnia ktoś C# na tyle aby pomoc naprawić błąd z przekroczeniem granicy indeksu?

Program ma na celu obliczyć odległości wroga i wybrać najbliższego. W skrócie działa tak, że w pętli sprawdzam sobie pojedynczo każdego gracza i w momencie gdy jest wrogiem wrzucam go do tablicy zawierającej obiekty klasy Gracz. Przed dodaniem gracza do tabeli zmieniam jej rozmiar tak żeby pozbyć się null'ów. Wg. mnie wszystko powinno śmigać, dodam również że program działa z nullami, ale wolałbym się ich pozbyć bo trochę komplikuje mi to sprawę.

 

Chyba ze to na kolekcje przerobić?

 

 

Spoiler

public class Gracz : IComparable
        {
            public int id;
            public double hyp;
        }

Gracz[] tablicaGraczy = new Gracz[55];

if (ZczytajModulyProcesu() && ZczytajModulyProcesuEngine())
            {
                int i = 0;
                int count = 1;
                while (GetAsyncKeyState(0x02) < 0)
                {
                    //dostaje info o mnie

                    //dosteje info o wrogu

                    if ((myTeam != enemyTeam) && (enemyTeam > 1) && (enemyHealth > 0))
                    {
                        Array.Resize(ref tablicaGraczy, count); //to dziala, zmienia mi rozmiar

                        tablicaGraczy[count] = new Gracz(); //tutaj tworzy prawidlowo
                        tablicaGraczy[count - 1].id = i;  //tutaj wywala mi blad "Indeks wykraczał poza granice tablicy”
                        tablicaGraczy[count - 1].hyp = calcHyp(myPositionX, myPositionY, myPositionZ, enemyPositionX, enemyPositionY, enemyPositionZ);
                        count++;
                    }

                    if(i==55)
                    {
                      //tutaj sortuje tabele i wykonuje najazd na gracza, nastepnie zeruje i zaczynajac wszystko od nowa
                        i = 0;
                    }
                    else
                        i++;
                }
            }

 

 


Edytowane przez querk
Odnośnik do komentarza

jezus maria, nie mieszaj angielskiego z polskim, najlepiej uzywaj tylko angielskiego

 

nie umiem c# i nie znam sie to sie wypowiem xD ale czy jest jakakolwiek potrzeba zmiany rozmiaru tablicy? i tak ja przeciez tworzysz tylko raz, tylko sobie problemy tym tworzysz

 

Odnośnik do komentarza

Niby tak, ale problem pojawiał się gdy przeciwnik zginie, wtedy object zamienia się na null i przy następnym wykonaniu pętli wyrzuca błąd, że obiekt nie istnieje.

 

Zrobiłem to trochę inaczej: sortuje tablice, następnie przeszukuje ją, aż trafię na object. I takim sposobem dostałem index mojej najmniejszej wartości.


Edytowane przez querk
Odnośnik do komentarza
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności