Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
CoD Nowy

[ROZWIĄZANE] [PROBLEM] Index out of bounds w funkcji pokaż informacje - przyczyna?Pobieranie statystyk zabić do rangi gracza.

cod nowy

Najlepsza odpowiedź ex0, 24.12.2014 23:33

Prawdopodobnie: "ranganum" dla danego ID, jest większa niz rozmiar tablicy "rangaxp"

Albo dane ID jest jest większe niż rozmiar ranganum, ale raczej to pierwsze, bo przecież jest sprawdzane, czy gracz jest połączony, a jak tablica ma rozmiar get_maxplayers()+1 to zadziała :D.

 

Więc spróbuj zamienić

while(stats[0] >= rangaxp[ranganum[target]])

na

while(stats[0] >= rangaxp[ranganum[target]] && sizeof rangaxp-1>ranganum[target])

tak samo z 'id'.

Ale ogólnie najlpiej jakbyś pokazał nam jak te zmienne są stworzone ;_;, bo podałeś kawałek kodu, który dużo nam nie mówi co do rozmiaru tablic

Patrząc właśnie na rozmiar tablic stwierdzam, że jestem zwyczajnie głupi, zapomniałem właśnie o tym co napisałeś wyżej a mianowicie:

 a jak tablica ma rozmiar get_maxplayers()+1

Właśnie zapomniałem powiększyć rozmiar tablicy o to +1, takie małe niedopatrzenie a jednak !

Na chwilę obecną poprawiłem to i nie wypluwa nic.
Natomiast jeśli będzie znowu coś bolało ten kod, to będziemy dalej kombinować z tym co pisałeś wyżej :)

Dzięki Panowie, na was zawsze można liczyć :)

Przejdź do postu


  • Zamknięty Temat jest zamknięty
6 odpowiedzi w tym temacie

#1 ex0

    Wolny strzelec.

  • Power User

Reputacja: 383
Wszechpomocny

  • Postów:1 127
  • GG:
  • Imię:Kacper
  • Lokalizacja:Żywiec
Offline

Napisano 14.12.2014 14:10

Hejou. 

Do rzeczy:

 

[AMXX] Run time error 4: index out of bounds 
[AMXX]    [0] LosT_CodMod_nVault.sma::PokazInformacje (line 1441)
[AMXX] Run time error 4: index out of bounds 
[AMXX]    [0] LosT_CodMod_nVault.sma::PokazInformacje (line 1456)
while(stats[0] >= rangaxp[ranganum[target]])
while(stats[0] >= rangaxp[ranganum[id]])

Cała funkcja:

Spoiler

 

Co jest przyczyną?

Ogólnie jest mi w stanie ktoś łopatologicznie nakreślić jak unikać tego typu błędów? 
Syfi konsolę raz na ruski rok, ale syfi :) 

 

Pozdrowionka :) 


  • +
  • -
  • 1

TWORZENIE FOR SPOŁECZNOŚCIOWYCH | ZARZĄDZANIE STRONAMI INTERNETOWYMI
WSPARCIE TECHNICZNE SERWERÓW HLDS | MODERNIZACJA, OPTYMALIZACJA, ZABEZPIECZENIA


Zapraszam do mojego profilu ;)


#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 14.12.2014 14:50

Bład oznacza przekroczenie zakresu indexow, czy jakos tak...
Ogólnie to podajesz index tablicy, który przekracza jej rozmiar...

Myślę że to ranganum[id] przekracza index tablicy rangaxp
  • +
  • -
  • 1

#3 ex0

    Wolny strzelec.

  • Autor tematu
  • Power User

Reputacja: 383
Wszechpomocny

  • Postów:1 127
  • GG:
  • Imię:Kacper
  • Lokalizacja:Żywiec
Offline

Napisano 14.12.2014 15:04

Bład oznacza przekroczenie zakresu indexow, czy jakos tak...
Ogólnie to podajesz index tablicy, który przekracza jej rozmiar...

Myślę że to ranganum[id] przekracza index tablicy rangaxp

Ogólnie jak definuje przykładowo 22 rangi to rozumiem, że wpisuje [23] zamiast [22] zgadza się? 

Bo to jedyne co mi przychodzi do głowy aby powiększyć w tym przypadku. 

Nic innego, dlatego się zastanawiam co może być tutaj przyczyną :/


  • +
  • -
  • 0

TWORZENIE FOR SPOŁECZNOŚCIOWYCH | ZARZĄDZANIE STRONAMI INTERNETOWYMI
WSPARCIE TECHNICZNE SERWERÓW HLDS | MODERNIZACJA, OPTYMALIZACJA, ZABEZPIECZENIA


Zapraszam do mojego profilu ;)


#4 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 21.12.2014 18:53

Dodaj logi wczesniej. Log_amx z ranganum[target] i z ranganum[id].
Wtedy jest tak:
-paczasz w rlogi a tu error (ten co podałeś)
-no to paczasz w logi i sprawdzasz co plugin zalogował wtedy gdy wystąpił error (tam masz godziny, będą identyczne)
-sprawdzasz jaką licznę zlogowało i sprawdzasz czy ta liczba przekracza index tablicy rangaxp
  • +
  • -
  • 1

#5 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 21.12.2014 19:39

Prawdopodobnie: "ranganum" dla danego ID, jest większa niz rozmiar tablicy "rangaxp"

Albo dane ID jest jest większe niż rozmiar ranganum, ale raczej to pierwsze, bo przecież jest sprawdzane, czy gracz jest połączony, a jak tablica ma rozmiar get_maxplayers()+1 to zadziała :D.

 

Więc spróbuj zamienić

while(stats[0] >= rangaxp[ranganum[target]])

na

while(stats[0] >= rangaxp[ranganum[target]] && sizeof rangaxp-1>ranganum[target])

tak samo z 'id'.

Ale ogólnie najlpiej jakbyś pokazał nam jak te zmienne są stworzone ;_;, bo podałeś kawałek kodu, który dużo nam nie mówi co do rozmiaru tablic


  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#6 ex0

    Wolny strzelec.

  • Autor tematu
  • Power User

Reputacja: 383
Wszechpomocny

  • Postów:1 127
  • GG:
  • Imię:Kacper
  • Lokalizacja:Żywiec
Offline

Napisano 24.12.2014 23:33   Najlepsza odpowiedź

Prawdopodobnie: "ranganum" dla danego ID, jest większa niz rozmiar tablicy "rangaxp"

Albo dane ID jest jest większe niż rozmiar ranganum, ale raczej to pierwsze, bo przecież jest sprawdzane, czy gracz jest połączony, a jak tablica ma rozmiar get_maxplayers()+1 to zadziała :D.

 

Więc spróbuj zamienić

while(stats[0] >= rangaxp[ranganum[target]])

na

while(stats[0] >= rangaxp[ranganum[target]] && sizeof rangaxp-1>ranganum[target])

tak samo z 'id'.

Ale ogólnie najlpiej jakbyś pokazał nam jak te zmienne są stworzone ;_;, bo podałeś kawałek kodu, który dużo nam nie mówi co do rozmiaru tablic

Patrząc właśnie na rozmiar tablic stwierdzam, że jestem zwyczajnie głupi, zapomniałem właśnie o tym co napisałeś wyżej a mianowicie:

 a jak tablica ma rozmiar get_maxplayers()+1

Właśnie zapomniałem powiększyć rozmiar tablicy o to +1, takie małe niedopatrzenie a jednak !

Na chwilę obecną poprawiłem to i nie wypluwa nic.
Natomiast jeśli będzie znowu coś bolało ten kod, to będziemy dalej kombinować z tym co pisałeś wyżej :)

Dzięki Panowie, na was zawsze można liczyć :)


  • +
  • -
  • 0

TWORZENIE FOR SPOŁECZNOŚCIOWYCH | ZARZĄDZANIE STRONAMI INTERNETOWYMI
WSPARCIE TECHNICZNE SERWERÓW HLDS | MODERNIZACJA, OPTYMALIZACJA, ZABEZPIECZENIA


Zapraszam do mojego profilu ;)


#7 bicek

    Ja tu tylko sprzątam.

  • Zbanowany

Reputacja: 914
Master

  • Postów:796
  • Lokalizacja:Wieluń
Offline

Napisano 25.12.2014 00:10

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL





Również z jednym lub większą ilością słów kluczowych: cod nowy

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych