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

Index out of bounds - Przyczyny ? [Ukochany Run Time Error]


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
7 odpowiedzi w tym temacie

#1 ex0

    Wolny strzelec.

  • Power User

Reputacja: 383
Wszechpomocny

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

Napisano 23.06.2014 00:06

Tak jak w temacie, chciałem zapytać o główne przyczyny tego błędu ?

Brak miejsca w tabeli ?
Zapełniona pamięć pluginu ?
A może nie zjadł plugin kolacji i grymasi ?

Co o tym możecie mi powiedzieć ?

 

if(ma_perk[b] && cod_get_user_perk(a) != 0 && random_num(1,4)==1)

Ogólnie rozchodzi się o to powyżej.
Co go tutaj boli ?

A cały plug wygląda tak:

 

new bool:ma_perk[33]

public plugin_init()
{
	register_plugin(perk_name, "1.0", "MasterOfGames")
	
	cod_register_perk(perk_name, perk_desc)
	
	RegisterHam(Ham_Killed, "player", "Kill")
}
public cod_perk_enabled(id)
{
	ma_perk[id] = true
}
public cod_perk_disabled(id)
{	
	ma_perk[id] = false
}
public Kill(a, b)
{
	if(ma_perk[b] && cod_get_user_perk(a) != 0 && random_num(1,4)==1)
	{
		cod_set_user_perk(b, cod_get_user_perk(a))
		cod_set_user_perk(a, 0)
	}
}

Biblioteki:
 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>


Pozdrawiam ! :)


  • +
  • -
  • 0

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


Zapraszam do mojego profilu ;)


#2 Handlarz

    Nowy

  • Zbanowany

Reputacja: 1
Nowy

  • Postów:9
  • Imię:Artur
  • Lokalizacja:Gdynia
Offline

Napisano 23.06.2014 01:56

Jak dla mnie to to

cod_get_user_perk(a) != 0 


#3 Zabijaka Gryps

    Wszechwiedzący

  • Power User

Reputacja: 266
Wszechwidzący

  • Postów:563
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Świdnica
Offline

Napisano 23.06.2014 06:07

Jak dla mnie to to
 

cod_get_user_perk(a) != 0 

Co niby w tym jest nie tak??

@topic
Spróbuj standardowego lekarstwa na problem wychodzenia indexów poza granice, czyli sprawdzenia podłączenia.
if(is_user_connected(a) && is_user_connected(b) && ma_perk[b] && cod_get_user_perk(a) != 0 && random_num(1,4)==1)

  • +
  • -
  • 0

#4 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 23.06.2014 06:48

is_user_connected(a)

po co sprawdzasz 2x czy gracz martwy jest podłączony do serwera

cod_get_user_perk(a) != 0


  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#5 ex0

    Wolny strzelec.

  • Autor tematu
  • Power User

Reputacja: 383
Wszechpomocny

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

Napisano 23.06.2014 06:54

 

is_user_connected(a)

po co sprawdzasz 2x czy gracz martwy jest podłączony do serwera

cod_get_user_perk(a) != 0

 

Czyli wystarczy po prostu zastosować standardowe sprawdzanie gracza z pojedynczym sprawdzeniem if_user tak?

// Okej Działa jak natura przykazała.

Natomiast przy okazji tego tematu co w tej funkcji należy zgwałcić aby nie wyskakiwał ten sam błąd?

Ponownie zastosować sprawdzenie?

Krzyczy o new Float jak coś.

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	new Float:ile = reborn[idattacker]*3.0
        if(!is_user_connected(idattacker))
                return HAM_IGNORED;
        
        if(get_user_team(this) != get_user_team(idattacker) && damagebits & DMG_BULLET)
                cod_inflict_damage(idattacker, this, ile, 0.0, idinflictor, damagebits);
        
        return HAM_IGNORED;
}

 


  • +
  • -
  • 0

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


Zapraszam do mojego profilu ;)


#6 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 23.06.2014 07:42

Tak gdyż gracz nie podłączony nie ma żadnego perka.
Tzn:
if(is_user_connected(b) && ma_perk[b] && cod_get_user_perk(a) != 0 && !random(4))
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
        if(!is_user_connected(idattacker))     return HAM_IGNORED;
        
	new Float:ile = float(reborn[idattacker])*3.0
        if(get_user_team(this) != get_user_team(idattacker) && damagebits & DMG_BULLET)
                cod_inflict_damage(idattacker, this, ile, 0.0, idinflictor, damagebits);
        
        return HAM_IGNORED;
}

Użytkownik BlackPerfum edytował ten post 23.06.2014 07:48

  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#7 Zabijaka Gryps

    Wszechwiedzący

  • Power User

Reputacja: 266
Wszechwidzący

  • Postów:563
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Świdnica
Offline

Napisano 23.06.2014 14:33

is_user_connected(a)

po co sprawdzasz 2x czy gracz martwy jest podłączony do serwera

cod_get_user_perk(a) != 0

A czy aby pobranie perka niepodłączonego gracza nie wyrzuci erroru?
  • +
  • -
  • 0

#8 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 23.06.2014 17:39

Ależ nie
  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika




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

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