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

[ROZWIĄZANE] index out of bounds - nagle wyskoczyly errory


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

#1 olek

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:9
  • Lokalizacja:Polska
Offline

Napisano 06.12.2014 17:48

witam, od dzisiaj takie errory wyskoczylo (plugin chodził pare dni juz bez edytowania go i bylo wszystko ok)

 

L 12/06/2014 - 17:47:26: [AMXX] Run time error 4: index out of bounds
L 12/06/2014 - 17:47:26: [AMXX]    [0] deve.sma::PlayerPreThink (line 127)

 

 

nad plugin init mam:

 

#define MAXPLAYERS 18

new g_PlayerFrames[MAXPLAYERS]

i potem linia 127:

 

public PlayerPreThink(id)

   {
    g_PlayerFrames[id]++
   }
 

 

 

//edit

 

moglo to byc spowodowane wejsciem wiekszej ilosci osob niz 18 na serwer .. ? bo przez chwile taka sytuacja miala miejsce, ale nie wiem czy wlasnie od tego momentu te bledy zaczely sie sypac


Użytkownik olek edytował ten post 06.12.2014 17:49

  • +
  • -
  • 0

#2 he1st

    Diablo Mody i te sprawy ;3

  • Użytkownik

Reputacja: 132
Zaawansowany

  • Postów:357
  • GG:
  • Imię:Michał
  • Lokalizacja:Legionowo
Offline

Napisano 06.12.2014 17:51

Jakieś SMA ?


  • +
  • -
  • 0

b_350_20_000000_000000_FFFFFF_DA0707.png
b_350_20_000000_000000_FFFFFF_DA0707.png


#3 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 06.12.2014 18:11


moglo to byc spowodowane wejsciem wiekszej ilosci osob niz 18 na serwer .. ? bo przez chwile taka sytuacja miala miejsce, ale nie wiem czy wlasnie od tego momentu te bledy zaczely sie sypac

 

Dokładnie to więcej niż 17. Ostatnim elementem tablicy o rozmiarze 18 jest element numer 17. Zdefiniowano MAX_PLAYERS jako 18 i takiego rozmiaru tablica została utworzona. Graczy jest więcej więc plugin próbuje odwołać się do nieistniejącego elementu tablicy. Wyjścia są dwa:

#define MAXPLAYERS 18

zamień na

#define MAXPLAYERS 25

gdzie liczba 25 jest odpowiednia dla serwera 24 slotowego, czyli musisz podać tutaj liczbę slotów +1

 

 

drugie wyjście to:

#define MAXPLAYERS 18
new g_PlayerFrames[MAXPLAYERS]

zamień na

new g_PlayerFrames[get_maxplayers()+1]

wtedy serwer dostosuje wartość zmiennej do ilości slotów na serwerze.


  • +
  • -
  • 1

#4 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 06.12.2014 18:37

#define MAXPLAYERS 18
new g_PlayerFrames[MAXPLAYERS]
new g_PlayerFrames[get_maxplayers()+1]

wtedy serwer dostosuje wartość zmiennej do ilości slotów na serwerze.

 

Pytanie mam, pewnie znasz silnik diablo 5.9, standardowy.. jest tam mnóstwo zmiennych + moja edycja.. duża ilość, naprawdę, wszystkie rejestrujemy globalnie z indexem [33] standardowo.. jeśli użyć tego sposobu.. w dużym stopniu odciąży to serwer i nie będzie miało negatywnego wpływu na jego prace / silnika ? Chodzi mi o jakieś skutki uboczne w postaci bugów. Ogólnie zmiana standardowego [33] na konkretną ilość slotów serwera. Nigdy tak szczerze nie robiłem to pytam.

 

Załóżmy 300 zmiennych z zarejestrowaniem indexów na [33], gdy serwer mój ma o połowe mniej slotów ? Nie wiem czy zmienne w dużym stopniu obciążają serwer.. 


  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#5 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 06.12.2014 18:56

300 zmiennych zarejestrowanych na rozmiar 19 zamiast 33 to ledwo ok 16kB oszczędności pamięci ram. Sam sobie odpowiedz czy się opłaca.

 

Poza tym: new g_PlayerFrames[get_maxplayers()+1] nie zadziała :) rozmiar tablicy musi być stałą.


  • +
  • -
  • 3

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#6 olek

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:9
  • Lokalizacja:Polska
Offline

Napisano 06.12.2014 22:48

Ustawiłem na 20 bo więcej serwer slotów nie ma, dzięki :) błędów już nie ma


  • +
  • -
  • 0

#7 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 06.12.2014 23:37

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
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





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

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