
Klaidos:
(log klaidos):
[CSTRIKE] Non-player entity -1 out of range
[CSTRIKE] Invalid player 12
[FUN] Player out of range (0)
[AMXX] Run time error 4: index out of bounds
(kompiliavimo klaidos):
Warning: Loose indentation on line
Paaiškinimai:
Invalid player/ Player out of range...
Ši klaida atsiranda dėl į funkciją perduodamo neteisingo žaidėjo id. Tai yra jei žaidėjo id yra didesnis arba mažesnis už (1:32) aibę arba tas žaidėjas yra atsijungęs arba tam tikrais atvejais miręs.
Kad ištaisyti šią klaidą, prieš reikiamą funkciją turime patikrinti ar žaidėjas yra gyvas, prisijungęs arba ar tai iš viso žaidėjas.
is_user_connected(id) - Gražina tiesą, jei žaidėjas šiuo metu prisijungęs į serverį, be to patikrina ar tai iš viso yra žaidėjas, tad į šią funkciją galima perduoti bet kokią id reikšmę ir ši bus patikrinta.
is_user_alive(id) - Gražina tiesą, jei žaidėjas šiuo metu prisijungęs į serverį bei yra gyvas(laksto po žemėlapį), be to patikrina ar tai iš viso yra žaidėjas, tad į šią funkciją galima perduoti bet kokią id reikšmę ir ši bus patikrinta. Pastaba: ši funkcija taip pat patikrina tą patį, ką ir is_user_connected, tad jei naudojame is_user_alive, papildomai tikrinti su is_user_connected nereikia.
index out of bounds
Ši klaida dažniausiai atsiranda kai mėginama patikrinti masyvo elementą, kurio nėra. Pvz:
Code: Select all
new turi_batus[33] // Šis masyvas turi reikšmes tik nuo 0 iki 32, tad jei parašysime tarkime turi_batus[50] ar turi_batus[-1], tai gausime index out of bounds klaidą.
Code: Select all
#include <amxmodx> #define is_player(%1) (1 <= %1 <= maxplayers) new maxplayers public plugin_init() { maxplayers = get_maxplayers()} is_player(id) // Tikrinama ar tai žaidėjo id (t.y. ar id yra 0>id<33). Gražina tiesą, arba netiesą.
Ši klaida nėra pavojinga ir dažniausiai ją ignoravus viskas gerai veikia, bet vis dėl to ją būtina pataisyti.
Jei nurodytoje eilutėje gauname tokią klaidą, vadinasi kažkas negerai su kodo lygiavimu, pvz:
Code: Select all
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_cvar("cvar", "1")}
Code: Select all
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_cvar("cvar", "1")}