Errory a jejich významy

Sem vkládejte editovatelné kusy kódu a tutoriály.
Odpovědět
Uživatelský avatar
Seeker
Příspěvky: 40
Registrován: srpen 5, 2011, 11:26 pm
Facebook: http://facebook.com/
Bydliště: Kde domov můj?
Kontaktovat uživatele:

Errory a jejich významy

Příspěvek od Seeker » září 1, 2011, 2:44 pm

(ze starého fóra, nebojte se dopsat další errory)

Vzhledem k častým dotazům, jak řešit errory jsem se rozhodl tu udělat takovou menší databázi errorů, jejich vysvětlení a rady pro opravy. Errorů je určitě dost, takže tu pro začátek určitě nebudou všechny, kdyžtak se podělte o ty své :)

Vysvětlivky:
X - cokoliv

Nejdřív si probereme to, co mají všechny errory společné:

Kód: Vybrat vše

FATAL ERROR in
action number 1
of Create Event
for object object0:

COMPILATION ERROR in code action
Error in code at line 2:
FATAL ERROR - značí vážnost chyby, FATAL je vážná chyba, co se nedá ignorovat
action number 1 - error je v 1. ikonce
of Create Event - Ta 1. ikonka je v eventu Create
for object object0 - a ten event Create je v objektu object0

COMPILATION ERROR - chyba se zaregistrovala už při kompilaci
Error in code at line 2: - pokud je chyba v GML kódu, tak číslo 2 znamená, že chyba je na 2. řádku. Řádky jsou číslované, takže se to dá dohledat rychle.

Následuje výpis toho řádku (stále platí, že chyba je v GML), pod ním je ^, který ukazuje na místo výskytu chyby.

_______________________________

Poslední řádek vypíše typ chyby, zde je tedy seznam typů chyb:

Unknown variable X (Neznámá proměnná X)
-Program si vyžádal hodnotu proměnné, která "ještě" neexistuje. Prakticky vždy ho řeší, když do creatu objektů incializujete proménné, které bude používat.
-inicializace:
X = číslo; //pro real
X = "text"; //pro string

Wrong type of arguments to X (Špatný typ argumentů X)
-X je v tomto případě početní operace. Tento error znamená, že operujete s nekompatibilními hodnotami, např hcete sečíst string(text) a real(číslo)
Chybu hodí např:

Kód: Vybrat vše

i=2;i2="1";i3=i+i2; //Chyba bude "Wrong type of arguments to +"
Symbol X expected (Očekáván symbol X)
-Je to chyba v kódu, pravděpodobně překlep, nejčastěji vynechaná druhá závorka. X je ten znak, který tam má někde být, ale není.
Chybu hodí např:

Kód: Vybrat vše

if(x < 4){x+=1; //Chyba bude "Symbol } expected"
Variable name expected (Očekávána proměnná)
-Často nedopsaný kód, někde program očekává proměnnou a je tam něco jinýho

Kód: Vybrat vše

a = a + ;
Unexpected symbol.
-Zřejmě se vám do kódu dostal znak, co tam nemá co dělat.
Chybu hodí např:

Kód: Vybrat vše

¨x = 1;
Wrong number of arguments to function or script.
-Použili jste funkci - to je název funkce a po ní v závorce čárkami oddělené argumenty
Příklad funkce: intance_create(x,y,obj);
-Tento error znamená, že jste dosadili menší, nebo větší počet argumentů.
Chybu hodí např:

Kód: Vybrat vše

instance_create(x,y);
instance_create(x,y,obj,obj);
Unknown variable X or array index out of bounds
Nenastavili jste (třeba někde v creatu) pole s požadovaným indexem.

Příklad:

Kód: Vybrat vše

// create
a[10] = 10;

// nějaká akce
b = a[11];
EDIT:
Data structure with index does not exist.
Při práci s datovými strukturami předáváte argument neznámé id struktury (která třeba není ani vytvořená) nebo id jiného typu datové struktury (například místo ds_list předáváte id pro ds_grid)

Příklad 1:

Kód: Vybrat vše

//create
a = ds_grid_create(10, 20);

// nějaká akce
ds_list_add(a, 10);
Příklad 2:

Kód: Vybrat vše

//create
a = ds_list_create();

// nějaká akce
a = -1;
ds_list_add(a, 10); // proměnná a není indexem existující datové strukury
FIOLASOFT - Vojta "Se҉eker" Stránský
Tento zbytečný řádek přidělává tvému procesoru zbytečnou práci stovek operací za vteřinu a ty s tím nemůžeš nic udělat.

Uživatelský avatar
chylex
Příspěvky: 59
Registrován: srpen 6, 2011, 1:51 pm
Kontaktovat uživatele:

Re: Errory a jejich významy

Příspěvek od chylex » září 1, 2011, 3:14 pm

Cannot assign to the variable (Nelze přiřadit hodnotu k proměnné)
-Nelze změnit hodnotu proměnné, tyto proměnné poznáte v helpu tak, že mají na konci hvězdičku
Chybu hodí např:

Kód: Vybrat vše

working_directory = "C:\";
Další proměnné, které nemůžete měnit (ale GM je změnit může):
game_id, program_directory, temp_directory, background_width, background_height, sprite_width, sprite_height, sprite_xoffset, sprite_yoffset, image_number, bbox_left, bbox_right, bbox_top, bbox_bottom, fps, proměnné s časem (current_*), event_type, event_number, event_object, event_action, room_first, room_last, room_width, room_height, object_index, id, instance_count, instance_id, mouse_x, mouse_y, path_index, secure_mode, view_current
(možná jich pár chybí, když najdu tak doplním)
Prázdno...

Uživatelský avatar
Pelpet
Příspěvky: 734
Registrován: srpen 6, 2011, 12:03 am
Bydliště: Vsetín
Kontaktovat uživatele:

Re: Errory a jejich významy

Příspěvek od Pelpet » říjen 27, 2011, 5:12 pm

(Boolean) expression expected
- Když do podmínky zadáte něco jiného, než konstrukci, co vrátí číselnou hodnotu.
- například:

Kód: Vybrat vše

if ("GameMaker") then ...
- Když toto zadáte do podmínky, GM vyhodí chybu "expression expected"

- Stejnou chybu vyhodí i cyklus while, ale přibude slovo "boolean", takže vrátí "Boolean expresion expected":

Kód: Vybrat vše

while ("GameMaker"){...}
File is not opened for reading.
- Soubor není otevřen pro čtení.
- Pokud pracujete s textovými soubory, necháte si otevřít neexistující soubor a následně s ním pracujete.
- například:

Kód: Vybrat vše

var f;
f = file_text_open_read("Neexistujici_soubor.txt");
show_message(file_text_read_string(f));
file_text_close(f);
Naposledy upravil(a) Pelpet dne listopad 13, 2011, 9:32 am, celkem upraveno 3 x.
Obrázek Sunken Bridge | Obrázek Moje GM tutoriály | Come on son, let's go outside play Catch the Exception!

Uživatelský avatar
jiribocek
Příspěvky: 159
Registrován: srpen 5, 2011, 11:22 pm
Facebook: http://facebook.com/
Kontaktovat uživatele:

Re: Errory a jejich významy

Příspěvek od jiribocek » říjen 27, 2011, 6:53 pm

Cannot divide 0:
Nelze delit nulou.

Error vypadne kdyz chcete delit nulou.

Priklad:

Kód: Vybrat vše

Create:
delit = 0

Step:
delit/delit

Uživatelský avatar
D-Sheep
Příspěvky: 768
Registrován: září 7, 2011, 10:17 pm
Facebook: http://facebook.com/sheepdave
Bydliště: Praha, CZE
Kontaktovat uživatele:

Re: Errory a jejich významy

Příspěvek od D-Sheep » květen 16, 2012, 3:34 pm

Cannot apply sqrt to negative number.
- V oboru reálných čísel existují pouze odmocniny nezáporných čísel. (sqrt = square root, anglicky druhá odmocnina)

Kód: Vybrat vše

a = sqrt(-1); //Tento řádek způsobí chybu v programu
Moving to previous room before the first room.
- Přechod do předchozí, neexistující místnosti, z první místnosti.

Moving to next room after the last room.
- Přechod do další místnosti z poslední.

Error in function X
- Vetšinou matematická chyba při výpočtu funkce

Kód: Vybrat vše

a = arcsin(2);
a = arccos(2);
a = logn(-1, 2);
a = power(0, -1); //Všechny tyto řádky způsobí chybu
Cannot compare arguments
- Nesrovnalost mezi datovými typy

Kód: Vybrat vše

a = 100;
if (a == "GameMaker") //Nelze porovnávat string a real
Assignment operator expected
- Špatná syntaxe kódu, kdy třeba omylem chybí rovnítko

Kód: Vybrat vše

a + 1; //Chybí operace (správně a += 1;)
INI files must be located in the same directory as the program.
- Otevírání .ini souboru z jiné složky, než ve které je umístěna hra.

Only 1- and 2-dimensional arrays are supported.
- Chyba při kompilaci, když se pokoušíte vytvořit trojrozměrné pole

Kód: Vybrat vše

a[0, 1, 5] = 100; //Chyba kvůli technologickému omezení GameMakeru.
Trying to close unexisting text file.
- Pokus o zavření souboru, který nikdy nebyl otevřen

Kód: Vybrat vše

a = file_text_open_read(...);
file_text_close(b); //"b" neodkazuje na otevřený soubor
Sound does not exist.
- Přehrávání zvuku, který neexistuje

Kód: Vybrat vše

sound_play(-1); //Žádná resource nikdy nemůže mít záporné ID...
Trying to delete/duplicate non-existing X.
- Pokus o smazání neexistující resource

Kód: Vybrat vše

path_delete(-1);
object_delete(-1);
sprite_duplicate(-1);
background_duplicate(-1); //...Tudíž ji nelze smazat ani duplikovat
Trying to execute non-existing script.
- Spouštění neexistujícího skriptu

Kód: Vybrat vše

script_execute(-1);
Unexisting room number: X
- Odkazování na neexistující místnost

Kód: Vybrat vše

room_goto(-1);
Unknown function or script: X
- Volání neznámé funkce nebo skriptu - často pouze překlep v kódu

Kód: Vybrat vše

instance_dstroy(); //Tato funkce není definována
Cannot redeclare a builtin variable.
- Pokus o vytvoření nové (dočasné) proměnné se stejným jménem, jako má nějaká zabudovaná v GM

Kód: Vybrat vše

var speed; //speed již existuje, proto nejde deklarovat znovu
Cannot use global/local in with statement.
- GM obsahuje speciální objekty, které však z nějakého důvodu nelze použít s příkazem with

Kód: Vybrat vše

with (global) { a = 1; }
with (local) { a = 1; } //Prostě to nejde
Array index >= 32000
- GameMaker má maximální velikost jedné dimenze arraye 32000. Poslední přístupný index je tedy 31999.

Kód: Vybrat vše

a[50000] = 1;
b[40000, 10] = 1; //Obojí by vytvořilo moc velké pole
Naposledy upravil(a) D-Sheep dne červen 20, 2015, 9:44 pm, celkem upraveno 14 x.

Blackpuffle
Příspěvky: 397
Registrován: srpen 7, 2011, 5:06 pm
Facebook: http://facebook.com/

Re: Errory a jejich významy

Příspěvek od Blackpuffle » červenec 6, 2012, 12:56 pm

Při testu hry se mi objevila tato chyba:

Kód: Vybrat vše

___________________________________________
ERROR in
action number 1
of  Step Event
for object __newobject361:

Error in code at line 1:
   userTimer -= (userTimer > 0); if (point_distance(mouse_x, mouse_y, mouseXPrevious, mouseYPrevious) > 6 || keyboard_check(vk_anykey)) { userTimer = room_speed * 2; } mouseXPrevious = mouse_x; mouseYPrevious = mouse_y;
                                                                     ^
at position 68: Unknown variable mouseXPrevious
Problém je v tom, že objekt _newobject361 nemám a script na vytvoření objektu taky nemám.
Proměnnou userTimer nepoužívám
mouseXPrevious a mouseYPrevious ani nevím k čemu pořádnou slouží.. Prostě se mi objevila chyba, která nemá s mou hrou nic společného :D..

Nastala z ničeho nic.. Zasekla se hra a toto se objevilo :D
Proč to dělat jednoduše, když to jde i složitě?
Zeptáš-li se, budeš blbcem pět minut. Nezeptáš-li se, budeš blbcem celý život.

Uživatelský avatar
Cpt.Luke
Příspěvky: 600
Registrován: srpen 10, 2011, 7:34 pm
Facebook: https://www.facebook.com/cptluke
Bydliště: Martin
Kontaktovat uživatele:

Re: Errory a jejich významy

Příspěvek od Cpt.Luke » červenec 6, 2012, 3:38 pm

nemáš v GM nejaké addony?
Môj web!

VCH BIATCH
old name - Luko8525

Blackpuffle
Příspěvky: 397
Registrován: srpen 7, 2011, 5:06 pm
Facebook: http://facebook.com/

Re: Errory a jejich významy

Příspěvek od Blackpuffle » červenec 6, 2012, 4:44 pm

Právě že ne :D
Proč to dělat jednoduše, když to jde i složitě?
Zeptáš-li se, budeš blbcem pět minut. Nezeptáš-li se, budeš blbcem celý život.

Uživatelský avatar
Ap0
Redaktor
Příspěvky: 367
Registrován: srpen 5, 2011, 11:24 pm
Facebook: http://facebook.com/
Bydliště: zamiešany v malte
Kontaktovat uživatele:

Re: Errory a jejich významy

Příspěvek od Ap0 » červenec 6, 2012, 8:06 pm

Blackpuffle píše:Právě že ne :D
Neviem teda čo myslel tými addonami, ale možno myslel Resource packy, ktoré používaš, prípadne nejaké DLL?

Blackpuffle
Příspěvky: 397
Registrován: srpen 7, 2011, 5:06 pm
Facebook: http://facebook.com/

Re: Errory a jejich významy

Příspěvek od Blackpuffle » červenec 6, 2012, 8:30 pm

Nee. Z extensions tam mám jen GM Printing.chm, GM Room Transitions.chm a GM Windows Dialogs.chm... Library mám těch 7 základních. A z dll knihoven mám v GM Softwrap.dll
Proč to dělat jednoduše, když to jde i složitě?
Zeptáš-li se, budeš blbcem pět minut. Nezeptáš-li se, budeš blbcem celý život.

ereg
Příspěvky: 500
Registrován: únor 18, 2012, 11:30 am
Facebook: http://facebook.com/

Re: Errory a jejich významy

Příspěvek od ereg » červenec 6, 2012, 10:57 pm

pokud se ti chyba obevuje pravidelneji:
- zjisti si, jestli ten objekt co udajne nemas v projektu opravdu neexistuje( debug mode/show instance, nebo pridej test instance_exist() )
-dale pohledej v:
-- scripts/search in scripts - promenne
-- show resource names - objekt
- userTimer pokud nepouzivas, tak to vypada jako kdyby jsi me v projektu zbloudily script nebo objekt.
- mouseXPrevious bude uzivatelska promenna jeji vyznam se da odhadnout z nazvu :)

kod vypada na snizovani userTimer k nule tak dlouho dokud mys pomalejsi nez 7pix nebo neni zmackla klavesa. pak se nastavi na 2sec (pro step)
mozna se z vyznamu da najit souvislot s nenadalym objevenim kodu, ktery tam jak pises nema byt?

ty chm nepouzivam, takze neposoudim, ale pokud nic z predesleho nepomuze a nejde ani vysledovat pri cem chyba nastane, tak zkus napsat v eventu step_begin test na existenci objektu __newobject361 a promenne userTimer
a zjistit dalsi informace o ni/okolnostech kdyz se pouziva a vznikla atd.

pokud pouzivas dropbox muzes zkusit starsi verzi a zjistit co se zmenilo.(kdyz to nevis z hlavy)
Pokud se vám něco na fóru nelíbí, zkuste si přečíst třeba Wikietiketu a svou kritiku pišete podle ní.

Blackpuffle
Příspěvky: 397
Registrován: srpen 7, 2011, 5:06 pm
Facebook: http://facebook.com/

Re: Errory a jejich významy

Příspěvek od Blackpuffle » červenec 7, 2012, 10:47 am

if(instance_exists(__newobject361)){show_message("__newobject361");} hlásí mě to, že proměnná __newobject361 neexistuje.
Ani jedno z toho, co jsi mi psal v bodech tam není (proměnná,objekt,atd). Chyba mi naskočila nejpravděpodobněji v tomhle případě:

Kód: Vybrat vše

switch(_mistnost)
{
case "1": room_goto(room_1); break;
case "2": room_goto(room_2); break;
default: room_goto(room_chyba); break;
}
kde _mistnost = "3";
tudíž by mě to mělo hodilo do místnosti chyba, kde byl jeden objekt co obsahoval v draw nastavení písma a text, ale místo toho naskočila ta chyba ;)..
Proč to dělat jednoduše, když to jde i složitě?
Zeptáš-li se, budeš blbcem pět minut. Nezeptáš-li se, budeš blbcem celý život.

ereg
Příspěvky: 500
Registrován: únor 18, 2012, 11:30 am
Facebook: http://facebook.com/

Re: Errory a jejich významy

Příspěvek od ereg » červenec 7, 2012, 11:15 am

v samotnem swtich by chyba byt nemela.

zjisti na step presne kdy se chyba objevi
presny radek kodu/ poradi prikazu po kterem jiz chyba je na svete.
ale nemyslim ted podle tve chybove hlasky, nybrz ktery prikaz jsi schopny vysledovat , nez chyba nastala
jde o prochazeni kodu s "breakpointy" a nakonec neni mozne aby jsi se neceho nedopatral.

krome toho pokud mas podezreni na chybu kterou zpusobi _mistnost = "3" ve switch, tak muzes lehce zjistit zda je chyba zpusobena vstupem do mistnosti 3(nahrad mistnor 3 vhodnou jinou mistnosti) nebo jiz před tim. pokud je zpusobena vstupem do mistnosti tri tak zase jestli je zpusobena uvnitr mistnosti nebo necim co se v ni deje, nebo muzes nakonec zjistit ze s tou mistnosati to nema zadnou spojitost.
Pokud se vám něco na fóru nelíbí, zkuste si přečíst třeba Wikietiketu a svou kritiku pišete podle ní.

Blackpuffle
Příspěvky: 397
Registrován: srpen 7, 2011, 5:06 pm
Facebook: http://facebook.com/

Re: Errory a jejich významy

Příspěvek od Blackpuffle » červenec 7, 2012, 1:13 pm

Ale room_3 neexistuje a hlavně se ta chyba objevila jen jednou i když jsem podruhé ten samý krok opakoval.. ;) Nevím, jak ji vyvolat znovu ;).. Napadlo mě, jestli není chyba v game makeru (ne vlastním zaviněním, ale v v každém GM se stejnou verzí, jestli Mark někde neudělal chybu :D)..
Proč to dělat jednoduše, když to jde i složitě?
Zeptáš-li se, budeš blbcem pět minut. Nezeptáš-li se, budeš blbcem celý život.

ereg
Příspěvky: 500
Registrován: únor 18, 2012, 11:30 am
Facebook: http://facebook.com/

Re: Errory a jejich významy

Příspěvek od ereg » červenec 7, 2012, 1:18 pm

tak cilene nezopakovatelnou chybu nenajdes driv nez 1 misto ve sportce. ;)

s tim mistnost 3 mas pravdu, jsem zapomnel :)

kazdopadne pokud mas podezreni na moznost zopakovani chyby ponech hlidani na vyskyt __newobject361, aspon at te upozorni ze se objevila :)

kdyz se objevi instance nabo aspon chyba muzes s tim dal pracovat.
Pokud se vám něco na fóru nelíbí, zkuste si přečíst třeba Wikietiketu a svou kritiku pišete podle ní.

Blackpuffle
Příspěvky: 397
Registrován: srpen 7, 2011, 5:06 pm
Facebook: http://facebook.com/

Re: Errory a jejich významy

Příspěvek od Blackpuffle » prosinec 10, 2012, 10:45 pm

Dovolím si přidat další chybu.
chyba.png
Jde o to, že je přeplněná paměť grafické karty (Už byla nebo se přeplní při startu hry).
Proč to dělat jednoduše, když to jde i složitě?
Zeptáš-li se, budeš blbcem pět minut. Nezeptáš-li se, budeš blbcem celý život.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host