Как да оправя "index out of bonds" грешка в конзолата?

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
bigexplosion
Извън линия
Потребител
Потребител
Мнения: 46
Регистриран на: 31 Окт 2021, 21:45
Се отблагодари: 14 пъти
Получена благодарност: 1 път

Как да оправя "index out of bonds" грешка в конзолата?

Мнение от bigexplosion » 11 Мар 2022, 13:40

Здравейте. Реших да добавя един плъгин в основния код (source code / .sma file) на зомби сървъра си. След като го направих, започнах да получавам следното съобщение в конзолата на сървъра:

L 03/11/2022 - 13:21:12: [AMXX] Displaying debug trace (plugin "zombie_plague_advance_v1-6-1.amxx")
L 03/11/2022 - 13:21:12: [AMXX] Run time error 4: index out of bounds
L 03/11/2022 - 13:21:12: [AMXX] [0] zombie_plague_advance_v1-6-1.sma::zombie_countdown (line 13606)


Вкарах countdown плъгина в основния код, за да станат един цял плъгин.

Това е часта от кода, която причинява проблема:

Код за потвърждение: Избери целия код

public zombie_countdown()
{    
	new speak[ 10 ][] = { "fvox/zp_one.wav", "fvox/zp_two.wav", "fvox/zp_three.wav", "fvox/zp_four.wav", "fvox/zp_five.wav", "fvox/zp_six.wav", "fvox/zp_seven.wav", "fvox/zp_eight.wav", "fvox/zp_nine.wav", "fvox/zp_ten.wav" }
	
	emit_sound( 0, CHAN_VOICE, speak[ countdown ], 1.0, ATTN_NORM, 0, PITCH_NORM )
	countdown--
	
	set_dhudmessage(random(256), random(256), random(256), -1.0, 0.28, 2, 0.02, 1.0, 0.01, 0.1);
	show_dhudmessage(0, "Infection in %i", time_s); 
	--time_s;
	
	if(time_s >= 1)
	{
		set_task(1.0, "zombie_countdown")
	}
}
Това е ред номер 13606:

Код за потвърждение: Избери целия код

emit_sound( 0, CHAN_VOICE, speak[ countdown ], 1.0, ATTN_NORM, 0, PITCH_NORM )
Някой би ли ми обяснил как да оправя проблема?

Благодаря.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Как да оправя "index out of bonds" грешка в конзолата?

Мнение от OciXCrom » 12 Мар 2022, 21:09

Грешката е защото "countdown" става над 9 и излиза извън ограниченията на "speak". Опитай да разместиш тези два реда:

Код за потвърждение: Избери целия код

emit_sound( 0, CHAN_VOICE, speak[ countdown ], 1.0, ATTN_NORM, 0, PITCH_NORM )
countdown--

Аватар
bigexplosion
Извън линия
Потребител
Потребител
Мнения: 46
Регистриран на: 31 Окт 2021, 21:45
Се отблагодари: 14 пъти
Получена благодарност: 1 път

Как да оправя "index out of bonds" грешка в конзолата?

Мнение от bigexplosion » 14 Мар 2022, 18:48

OciXCrom написа: 12 Мар 2022, 21:09 Грешката е защото "countdown" става над 9 и излиза извън ограниченията на "speak". Опитай да разместиш тези два реда:

Код за потвърждение: Избери целия код

emit_sound( 0, CHAN_VOICE, speak[ countdown ], 1.0, ATTN_NORM, 0, PITCH_NORM )
countdown--
Мерси за опита за помощ, но не разбрах какво точно имаш предвид. Какво точно има да се редактира по тези два реда?

Ето го пълния код:

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <zombie_plague_advance>

#define PLUGIN "[ZP] Countdown"
#define VERSION "1.0"
#define AUTHOR "Draken"

new countdown
new time_s

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}

public plugin_precache()
{
	precache_sound( "fvox/zp_ten.wav" )
	precache_sound( "fvox/zp_nine.wav" )
	precache_sound( "fvox/zp_eight.wav" )
	precache_sound( "fvox/zp_seven.wav" )
	precache_sound( "fvox/zp_six.wav" )
	precache_sound( "fvox/zp_five.wav" )
	precache_sound( "fvox/zp_four.wav" )
	precache_sound( "fvox/zp_three.wav" )
	precache_sound( "fvox/zp_two.wav" )
	precache_sound( "fvox/zp_one.wav" )
}

public event_round_start()
{
	set_task(4.0, "zombie_countdown")
	time_s = 10
	countdown = 9
}

public zombie_countdown()
{    
	new speak[ 10 ][] = { "fvox/zp_one.wav", "fvox/zp_two.wav", "fvox/zp_three.wav", "fvox/zp_four.wav", "fvox/zp_five.wav", "fvox/zp_six.wav", "fvox/zp_seven.wav", "fvox/zp_eight.wav", "fvox/zp_nine.wav", "fvox/zp_ten.wav" }
	
	emit_sound( 0, CHAN_VOICE, speak[ countdown ], 1.0, ATTN_NORM, 0, PITCH_NORM )
	countdown--
	
	set_dhudmessage(0, 0, 138, -1.0, 0.28, 2, 0.02, 1.0, 0.01, 0.1, 10); 
	show_dhudmessage(0, "Infection in %i", time_s); 
	--time_s;
	
	if(time_s >= 1)
	{
		set_task(1.0, "zombie_countdown")
	}
}  
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
Сега би ли ми обяснил кое точно не му е наред, за да разбера?

Аватар
SmirnoffBG
Извън линия
Потребител
Потребител
Мнения: 267
Регистриран на: 27 Ное 2016, 19:43
Местоположение: nz
Се отблагодари: 77 пъти
Получена благодарност: 38 пъти
Обратна връзка:

Как да оправя "index out of bonds" грешка в конзолата?

Мнение от SmirnoffBG » 14 Мар 2022, 20:08

нямаш speak[-1]
когато cooldown стане -1 и то тръгне да търси -1... нема -1
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015

Аватар
bigexplosion
Извън линия
Потребител
Потребител
Мнения: 46
Регистриран на: 31 Окт 2021, 21:45
Се отблагодари: 14 пъти
Получена благодарност: 1 път

Как да оправя "index out of bonds" грешка в конзолата?

Мнение от bigexplosion » 14 Мар 2022, 21:55

SmirnoffBG написа: 14 Мар 2022, 20:08 нямаш speak[-1]
когато cooldown стане -1 и то тръгне да търси -1... нема -1
Къде да добавя "speak[-1]"?

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Как да оправя "index out of bonds" грешка в конзолата?

Мнение от OciXCrom » 15 Мар 2022, 20:55

Мерси за опита за помощ, но не разбрах какво точно имаш предвид. Какво точно има да се редактира по тези два реда?
Нали казах просто да ги разместиш?

Аватар
bigexplosion
Извън линия
Потребител
Потребител
Мнения: 46
Регистриран на: 31 Окт 2021, 21:45
Се отблагодари: 14 пъти
Получена благодарност: 1 път

Как да оправя "index out of bonds" грешка в конзолата?

Мнение от bigexplosion » 22 Мар 2022, 10:04

OciXCrom написа: 15 Мар 2022, 20:55
Мерси за опита за помощ, но не разбрах какво точно имаш предвид. Какво точно има да се редактира по тези два реда?
Нали казах просто да ги разместиш?
Направих го, но не се оправи проблема.

Промених кода по следния начин:

Код за потвърждение: Избери целия код

emit_sound( 0, CHAN_VOICE, speak[ countdown ], 1.0, ATTN_NORM, 0, PITCH_NORM )
--countdown
===>

Код за потвърждение: Избери целия код

countdown--
emit_sound( 0, CHAN_VOICE, speak[ countdown ], 1.0, ATTN_NORM, 0, PITCH_NORM )
Сега отново получавам същата грешка:

[AMXX] Run time error 4: index out of bounds
[AMXX] [0] zombie_plague_advance_v1-6-1.sma::zombie_countdown (line 13601)


Ред номер 13601 е втория ред от следния код:

Код за потвърждение: Избери целия код

countdown--
emit_sound( 0, CHAN_VOICE, speak[ countdown ], 1.0, ATTN_NORM, 0, PITCH_NORM )
След като направих разместването което ми препоръча, получих и втори проблем. Сега, отброяването започна от 9 надолу, а не от 10 надолу както беше преди. HUD съобщението отброява от 10 надолуа, но звук за числото 10 няма, а звуците са само от числото 9 надолу.
Последно промяна от bigexplosion на 24 Мар 2022, 21:21, променено общо 1 път.

Аватар
SmirnoffBG
Извън линия
Потребител
Потребител
Мнения: 267
Регистриран на: 27 Ное 2016, 19:43
Местоположение: nz
Се отблагодари: 77 пъти
Получена благодарност: 38 пъти
Обратна връзка:

Как да оправя "index out of bonds" грешка в конзолата?

Мнение от SmirnoffBG » 22 Мар 2022, 20:14

над emit_sound сложи
if(0 <= cooldown <= 9)
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015

Аватар
bigexplosion
Извън линия
Потребител
Потребител
Мнения: 46
Регистриран на: 31 Окт 2021, 21:45
Се отблагодари: 14 пъти
Получена благодарност: 1 път

Как да оправя "index out of bonds" грешка в конзолата?

Мнение от bigexplosion » 24 Мар 2022, 23:43

SmirnoffBG написа: 22 Мар 2022, 20:14 над emit_sound сложи
if(0 <= cooldown <= 9)
Не стана.

След като добавих кода, който ми каза да добавя, получавам тази грешка при опит за компилиране:

zombie_plague_advance_v1-6-1.sma(13600) : error 017: undefined symbol "cooldown"

По принцип, кода "if(0 <= cooldown <= 9)" не присъства в оригиналния код на countdown плъгина.

Ред номер 13600 е този ред, на който добавих "if(0 <= cooldown <= 9)".

Аватар
SmirnoffBG
Извън линия
Потребител
Потребител
Мнения: 267
Регистриран на: 27 Ное 2016, 19:43
Местоположение: nz
Се отблагодари: 77 пъти
Получена благодарност: 38 пъти
Обратна връзка:

Как да оправя "index out of bonds" грешка в конзолата?

Мнение от SmirnoffBG » 25 Мар 2022, 02:06

извинявай не съм видял добре.
Преправи думата cooldown в countdown и предполагам няма да имаш повече проблеми
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Помощ в скриптирането”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 24 госта