game maker
Gebruikersnaam:
Wachtwoord:
Home Info Forums Help
Welkom, Gast. Alsjeblieft inloggen of registreren.
De activerings e-mail gemist?
+  Forums
|-+  Werken met Game Maker
| |-+  Tutorials en Uitbreidingen (Moderator: Maarten Baert)
| | |-+  [Tut] GameMaker Errors uitgelegd
Pagina's: [1] 2 3 4
« vorige volgende »
Print
Advertenties

lucb1e
Gebruiker


Offline Offline

Berichten: 4530


WWW
« Gepost op: 21 December 2010, 03:40:16 »

Een groot aantal GameMaker errors uitgelegd
Versie: De meeste errors zullen op alle versies van toepassing zijn, maar vrijwel allemaal zijn geschreven met Game Maker 8.0 als uitgangpunt.
Niveau: Gemiddeld, varieert per error.
Pro: N.v.t. Varieert ook per error.

Inleiding
In deze tutorial staan een groot aantal GameMaker-errors uitgelegd. Ik heb deze tutorial gemaakt omdat er best veel topics in het beginners forum waren met allerlei errormeldingen, en niemand zin had om eerst te gaan zoeken of het antwoord misschien nog ergens stond. Met deze tutorial hoop ik een duidelijke uitleg te bieden, waarvoor je geen 3 topics na moet gaan zoeken of jou probleem er ook bij staat en of er dan een oplossing gevonden is.
Hieronder staat een inhoudsopgave van alle errors. Deze zijn alfabetisch gesorteerd, en de nummers staan dus door elkaar. In de rest van de tutorial staan ze natuurlijk wel op volgorde ;) Dit is gedaan zodat er een nieuwe error toegevoegd kan worden, zonder de helft van de errors te gaan hernummeren, terwijl het nu nog net zo makkelijk is een error te vinden (het ziet alleen rommelig uit, maar ik kan hier helaas geen PHP gebruiken).
Onder de inhoudsopgave heb ik ook een klein stukje staan over wat de foutmeldingen nou precies inhouden en wat waarvoor dient.

Inhoudsopgave
Spring naar: Errornummer 1 - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie
51: *De game sluit opeens af*
79: .. .exe werkt niet meer (Windows error).
76: A game must have at least one room to run.
93: Access violation at address xxxxx in module xxxx.dll. Read of address xxxxx.
52: An error occurred installing the extension package.
78: Asking to change into non-existing object ..
28: Array index >= 32000
24: Assignment operator expected.
26: Cannot apply sqrt to negative number.
7: Cannot assign to the variable
9: Cannot compare arguments.
65: Cannot execute
81: Cannot focus an invisible or disabled window.
29: Cannot open another file (maximum exceeded).
58: Cannot redeclare a builtin variable.
92: Cannot load saved game with other version.
80: Cannot use global in with statement.
35: Case statement only allowed inside switch statement.
72: Constant name is not valid.
61: Creating instance for non-existing object:
49: Data structure with index does not exist.
34: Default statement only allowed inside switch statement.
18: Division by 0.
63: ERROR
44: Error Creating Stand-Alone : Cannot find valid runner data
83: Error Creating Stand-Alone : Cannot save the game file.
8: Error creating stand-alone: cannot find the required dlls
16: Error defining an external function
31: Error in function ln().
31: Error in function log2().
31: Error in function log10().
31: Error in function logn().
31: Error in function arccos().
31: Error in function arcsin().
31: Error in function arctan().
31: Error in function arctan2().
31: Error in function cos().
31: Error in function sin().
31: Error in function tan().
64: Error in function power().
3: Error in function real().
43: Error opening file for writing.
62: Error reading byte.
53: Error retrieving file size.
84: Error Saving: Cannot create the game file. The game has not been saved!Try saving your work under a different name.
66: Expression expected.
40: Failed to create temp dir. This can cause serious problems with sounds, etc.
73: Failed to define constants.
23: Failed to initalize drawing surfaces
27: Failed to run the game
50: Failed to set data for ''
12: File is not opened for reading.
33: File is not opened.
85: Illegal argument count calling script "scriptnaam".
90: In secure mode you cannot use DLLs.
54: INI files must be located in the same directory as the program
36: INTERNAL ERROR: Adding too many variables
69: Image too large to create.
46: Keyword until expected
55: Left hand side must be a real value.
87: libeay32.dll ontbreekt
18: Modulo by 0.
60: Moving to next room after the last room.
59: Moving to previous room before the first room.
5: Negative array index
71: Onvoldoende opslagruimte om deze opdracht te verwerken.
70: Out of memory.
82: Out of system resources
25: Program ends before end of the code.
48: Repeat count must be a number
21: Runtime error.
68: Sprite too large to create.
88: Statement expected.
11: Symbol , or ) expected.
47: Symbol : expected.
57: This function is not available in the Lite Edition.
57: This function is only available in the Pro Edition.
42: This program must be run under Win32
67: This will create a loop in parents.
37: Trying to assign to a non-existing path.
13: Trying to close unexisting text file.
37: Trying to delete non-existing object.
37: Trying to delete non-existing sprite.
37: Trying to delete non-existing timeline.
37: Trying to draw non-existing background.
37: Trying to draw non-existing sprite.
37: Trying to duplicate non-existing room.
37: Trying to execute non-existing file.
37: Trying to execute non-existing script.
45: Trying to get texture from non-existing background
37: Trying to use non-existing surface.
39: Trying to read/write from undefined INI file
37: Trying to replace non-existing sound.
32: Trying to rewrite unopened file.
38: Trying to save .. to empty image file name.
37: Trying to set non-existing font.
37: Trying to set non-existing message background.
37: Trying to set non-existing message button.
30: Trying to set the room speed to a value <= 0.
91: Unexisting room number: [...].
41: Unexpected end of code reached.
17: Unexpected error occured when running the game
89: Unknown action.
15: Unknown function or script
74: Variable name expected.
10: Variable/function name expected
20: Video file not found (or name too long).
14: Wrong type of arguments to .. .
19: Wrong type of arguments to unary operator
22: Wrong type of array index
56: Wrong type of variable index
75: You need to select or add an event before you can add actions.
86: Unexpected symbol.
1: Unexpected symbol in expression
4: Unknown variable or array index out of bounds
6: Unknown variable
2: Wrong number of arguments to function or script.
77: Wrong type of arguments for ^.
77: Wrong type of arguments for &.
77: Wrong type of arguments for |.
Spring naar: Inleiding - Errornummer 1 - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie


Uitleg wat er nu precies in een errormelding staat
Errors kunnen op 2 plaatsen opgemerkt worden:
- In de code-editor:
Als je in de code-editor het knopje aan hebt staan voor de code te checken () zie je al bij het schrijven van de code als er een typefout in zit. Gamemaker zal lang niet alle errors er dan al uit kunnen halen, de code wordt namelijk niet uitgevoerd. Errors zoals 'onbekende variabele' zal gamemaker niet opmerken, hij neemt dan gewoon aan dat de variabele bekend is. Dingen als dat je bijvoorbeeld een { gebruikt in plaats van een ( zal het wel opmerken. Dit is veel makkelijker te detecteren zonder de code uit te hoeven voeren.
Een ander voorbeeld is als een script of functie niet bestaat. Gamemaker kijkt dus bij alles waar haakjes achter staan (() dus) of wat ervoor staat ofwel een ingebouwde functie is (draw_text, show_message, etc), of dat het onder scripts in de resource-tree staat. [De resource tree zijn alle 'resources' aan de linkerkant: sprites, backgrounds, scripts, objects, rooms, game info, enz.] Als dit niet het geval is, kun je zoiets te zien krijgen:

Het markeert dus de regel waar de fout plaatsvindt, en geeft onderaan in het venster weer wat de foutmelding precies is. In dit geval is dat:
ERROR at line 2 pos 2: Unknown function or script: object_create
Dit betekent dat op de tweede regel van het script, bij het tweede teken, een error is opgetreden. De naam van de error is 'unknown function or script', en het geeft ook aan wat volgens hem onbekend is ('object_create').
De oplossing hiervan is dat het instance_create moet zijn, een object kun je namelijk niet op een x- en ypositie aanmaken maar een instance van dat object wel. Het precieze verschil tussen een object en een instance heeft Erik Leppen goed omschreven:
Citaat van: Erik Leppen's onderschrift
OBJECT. Resourcetype met events en acties. Definitie van gedrag. "Materiaal" waar spelinstanties van gemaakt zijn, bijvoorbeeld "muur" of "vijand".

INSTANTIE. Voorwerp in de spelwereld, met een positie (x, y), snelheid (speed), etc. De instantie is gemaakt van een zeker materiaal (object_index) en volgt het gedrag dat in het object is vastgesteld.

Als je dus een vijand in je room hebt, dan is dat een instantie van het object "vijand" dat je in de Game Maker-editor gedefinieerd hebt.

Je kan ook een errormelding krijgen tijdens het spelen/testen of laden van de game
Deze errors komen in een mooi apart venstertje met wat meer informatie. Ik gebruik even dezelfde code als hierboven:

Bij sommige errors kun je op Ignore klikken. Gamemaker zal dan het script afbreken maar daarna wel verder gaan met de game uitvoeren alsof er niks gebeurd is. Het kan wel zijn dat dit vreemde resultaten oplevert, maar je kunt het altijd proberen.
Ik zal even uitleggen wat de inhoud van deze errormelding precies betekent:
Citaat
___________________________________________
COMPILATION ERROR in Script: maak_vijand
Bij het compileren (praktisch gezien: laden van de game) is een error opgetreden in het script genaamd 'maak_vijand'. Dit kan ook een syntax error zijn in plaats van compilation error.
Error in code at line 2:   Deze error was op regel 2
   object_create( argument0, argument1, obj_vijand ); Een kopie van de hele regel code
   ^  Het pijltje geeft een globaal idee waar op de regel het fout is gegaan, maar dit werkt heel vaak niet (vooral bij langere regels)
at position 2: Unknown function or script: object_create
Op positie 2 (tweede letter van de regel): [globale errornaam]: [eventueel een specifieke naam van variabele of functie]
Als je in deze tutorial zoekt naar een error, moet je altijd de 'globale errornaam' zoeken. Je kunt in de bovenstaande lijst kijken, of via CTRL + F het opzoeken.

« Laatste verandering: 13 Juli 2012, 00:48:54 door lucb1e »

Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4530


WWW
« Antwoord #1 Gepost op: 21 December 2010, 03:40:41 »

Spring naar: Inleiding - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie

1) Unexpected symbol in expression.
Dit kan een aantal oorzaken hebben:
- Je hebt een foutje gemaakt met {, }, ( of ). Ook kan het zijn dat je }else{ verkeerd hebt staan. Bijv:
GML:
if( i==10 )
{
   show_message("10");
}
else
{
   show_message("niet 10");
}
else
{
   show_message("Ook niet 10");
}
Die tweede else kan natuurlijk niet, en dit staat hier behoorlijk stom, maar als je een minder overzichtelijke en complexere code hebt kan het gebeuren.
Andere mogelijke fouten:
GML:
if keyboard_check(vk_escape)){ ... } //een ) te veel aangezien je bij het begin van het if-statement geen ( gebruikt
if(a==2){if(b>3){ ... }}} //een } te veel
if(a==2) ... } //een { vergeten aan het begin
if a!==2 //!= kan, maar !== niet (kan bijv. wel in PHP maar in GML niet)
Het kan overigens zijn dat het een afwijking heeft met de positie;
GML:
if a==2 then a=2; //werkt
if a==2) then a=2; //error at position 8
if a==2( then a=2; //error at position 10
Het kan dus zelfs voorkomen dat je een regel eerder moet kijken.

- Je bent achter var var1,var2 een ; vergeten. Daarom is het trouwens beter overal ;'s te gebruiken na een statement, kun je ze nooit vergeten als het opeens toch nodig is.

- Operators worden niet op de juiste manier gebruikt. Een assignment operator zoals bijvoorbeeld -= of += werkt niet binnen een expressie. De volgende voorbeelden zullen dus deze error produceren:
GML:
variabele = 12 -= 3; //om af te trekken, gebruik - zonder = teken
variabele += (100+x) /= y; //om te delen, gebruik / zonder = teken
variabele = (10:=12); //om te delen, gebruik / in plaats van : (en ook geen = teken dus)
Overigens, de complete regel code heet een statement, en het deel achter de variabele= of variabele+= is een expressie (of beter gezegd, het deel achter de assignment operator).

- Je hebt een keyword op de verkeerde plaats staan, zoals not als argument in een functie (instance_change(obj_x, not); moet instance_change(obj_x, false); zijn).



2) Wrong number of arguments to function or script.
Dit is een fout aantal 'dingen' die je tussen haakjes achter een functie hebt gezet. Dus bijvoorbeeld instance_destroy() heeft geen argumenten (er moet niks tussen de haakjes). Als je dan instance_destroy(obj_auto) doet krijg je die foutmelding.
Ander voorbeeld draw_text(x,y,string) moet iets zijn als draw_text(100,50,"TEKST"). Als je dan draw_text(100,50,"TEKST",10) intypt krijg je deze error ook.



3) Error in function real().
Dit betekent dat een string-variabele geen getal kan zijn. Het kan voorkomen bij
GML:
getal = get_string("Vul een getal in:", "")
Als de gebruiker geen getal invult, of een letter of iets anders erbij is het geen getal. Dan geeft dus real(getal) de foutmelding.

Als je de variabele op een andere manier 'genereert' kan het ook voorkomen dat abc="12x". Dan geeft real(abc) een error. Met het script is_valid_real van BlueMoonProductions kun je kijken of het een geldig getal is:
GML:
if( is_valid_real(abc) )
{
    abcAlsGetal = real(abc);
}
else
{
    show_message("De variabele abc is geen geldig getal!");
}
(Let op: Je moet dus een nieuw script aanmaken, het de naam geven is_valid_real, en in de inhoud die tutorial van BlueMoonProductions zetten).

Update: De tekst hierboven klopt nu, eerst stond er is_real in plaats van is_valid_real. Echter, is_real("5") geeft false! Dit zijn een paar voorbeelden van hoe het werkt:
GML:
is_real( 1 ); //geeft true terug
is_real( "1" ); //geeft false terug
is_valid_real( "1" ); //geeft true terug

is_real( "-10.1" ); //false
is_valid_real( "-10.1" ); //true

is_real( "-10.1.1" ); //false
is_valid_real( "-10.1.1" ); //false
Mocht het verschil tussen is_valid_real en string_digits niet helemaal duidelijk zijn, zie deze reactie van mij in het topic over het script (mocht het niet goed doorlinken, ik heb het over antwoord nummer 16).



4) Unknown variable <varnaam> or array index out of bounds
Of de variable players bestaat niet, of de index* is zo groot dat het niet in de array past. De index kan tot 32000 gaan dus dat laatste is onwaarschijnlijk.
*index is dus het getal tussen []: asdf[INDEX]=10;

Zorg er dus voor dat je in het create event varnaam[0]=0; (of andere waarde) hebt staan (treat uninitialized variables as 0 in de global game settings lost het ook op, maar het wordt afgeraden dit te gebruiken).

edit: Het kan ook zijn dat je gewoon vergeten bent om het object in de room te zetten, en het daarom niet herkend wordt.



5) Negative array index
De index van een array is negatief. vb. asdf[-1]=1; kan niet.



6) Unknown variable <varnaam>
Dit kan een aantal oorzaken hebben:
- [D&D] Je hebt relative aangevinkt bij het aanmaken/instellen van de variabele. Je kan relative alleen gebruiken bij een variabele die al bestaat, in het create event meestal niet.
- Controleer of je de variabele goed gespeld hebt, kopieer eventueel de variabelenaam zodat je geen kleine foutjes over het hoofd ziet (ik heb wel eens 10 minuten zitten debuggen op recieved in plaats van received :p)
[Vanaf hier gaat de rest meer over GML, maar als de bovenstaande punten niet hielpen kun je hieronder toch even doorlezen om te kijken of het dat misschien is]
- Je hebt de variabele die op de plek <varnaam> staat nog niet ingesteld. Vaak werkt het door in het create event van het betreffende object <varnaam>=0; te zetten. Hierdoor krijgt de variabele een waarde (0), en zal hij niet meer als onbekend aangemerkt worden.
- Als je var test; gebruikt kun je niet direct test+=1; doen, aangezien test wel aangemaakt is maar nog geen waarde heeft. Je moet het voorstellen als dat een stukje in het geheugen gereserveerd wordt, maar nog niks erin staat. Je zou immers kunnen zeggen dat 'leeg' dus "" is (lege tekst), maar het kan ook 0 zijn. Aangezien je het geen waarde hebt gegeven, weet het niet wat het is.
- Als je objectnaam.variabelenaam gebruikt, controleer of het object wel in de room staat. Dit kan bijvoorbeeld als volgt:
GML:
if( instance_exists(objectnaam) )
{
    //doe wat je wilde doen
}
else
{
    show_message("Error: objectnaam staat niet in de room!");
}
Natuurlijk is dit alleen om te testen of je code nu wel werkt. Het staat een beetje stom als je iemand anders z'n spel download en je krijgt zo'n foutmelding!

- Ook kan bijvoorbeeld zijn dat je een bestandsnaam of URL zonder aanhalingstekens gebruikt, bijvoorbeeld:
GML:
ini_open(voorbeeld.ini);
//voorbeeld.ini is geen variabele, en er moet een string staan. Dus met "" erom:
ini_open("voorbeeld.ini");

//Wat eventueel ook kan:
bestandsnaam = "voorbeeld.ini";
ini_open( bestandsnaam );

- Bij variable_...-functies een variabele in plaats van string ingevuld:
GML:
variable_local_set(global.test, 0);
//moet zijn:
variable_local_set("global.test", 0);
//nu zet hij variabele met de naam 'global.test' op 0.
//omdat je >de naam< moet opgeven moet het dus een string zijn, en geen variabele



7) Cannot assign to the variable
Kan de variabele niet toewijzen. Bijvoorbeeld dingen als x = "a"; kunnen niet want "a" is geen positie op het scherm.
(kan wel a zijn zonder "", als a een getal is (a=5;) )
Sommige variables kunnen ook niet aangepast worden (bijvoorbeeld mouse_x, zoiets heet een read-only variable (alleen-lezen variabele)), dan krijg je ook deze error.



8) error creating stand-alone: cannot find the required dlls
Als je zeker weet dat de DLL's nog staan waar ze stonden toen je ze eerst toevoegde ('includde') en de gmk ook niet verplaatst is, is het een interne fout in Game Maker waar je weinig aan kan doen. Ik heb de error nooit gezien en het topic erover is niet opgelost, maar misschien werkt gamemaker opnieuw installeren.



9) Cannot compare arguments.
Kan de argumenten niet vergelijken. Bijv als je hebt
GML:
if( naam==0 )
{
    //code
}
kan het zijn dat je deze fout krijgt (aangenomen dat naam een string bevat zoals 'piet'). Hierbij is ongeveer hetzelfde aan de hand als bij de real()-error: naam (of enige andere string-variabele) is geen getal, en kan daarmee dus niet vergeleken worden.
Andersom gaat ook niet, if(getal=="abc") zal niet werken als getal een integer/real is.
Dit is een fout die ik net tegenkwam:
GML:
target = instance_nearest(x, y, object6);
if( target != "" )
{
    //knip
}
Aangezien instance_nearest het instance ID teruggeeft, kan het niet vergeleken worden met een lege string (tekst). Het id is een getal.

Het makkelijkste is dit op te lossen door beide waarden een string te maken:
GML:
if( string(getal) == "abc" )
{
    //code
}

Let hier ook op als je een ini uitleest, je kan het resultaat van een ini_read_string natuurlijk niet kunnen vergelijken met een getal (of omgekeerd een ini_read_real met tekst vergelijken).



Spring naar: Inleiding - Errornummer 1 - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie



10) Variable/Function name expected
Dit kan vanalles zijn. Het meest voorkomende is dat je een objectnaam hetzelfde hebt als een variabele of functie.
Bijvoorbeeld je hebt een object speler, maar ook de variabele van de naam van de speler heet ook speler. Dan weet de game niet of het over het object gaat of de variabele.
Ook kan het zijn dat de naam 'ongeldig' is waardoor het niet wordt herkend als zodanig, of je hebt er iets anders gezet als variabele/functie. De eisen voor een variabele staan in de handleiding:
Citaat van: handleiding
A variable has a name that must start with a letter and can contain only letters, numbers, and the underscore symbol '_'. (The maximal length is 64 symbols.)
Vertaling: Een variabele naam moet beginnen met een letter, en kan alleen letters, cijfers en een underscore (laag streepje '_') bevatten. De maximale lengte is 64 tekens.

Een voorbeeld van wat ik zelf had: global.player.x probeerde ik uit te lezen, maar dat gaf deze error. Bleek dat degene waarmee ik samenwerkte een sprite player had aangemaakt, waardoor dus het als een resource gezien werd in plaats van variabele naam. Het is vrij makkelijk te herkennen als je er even op let: in je code krijgen resources altijd een apart kleurtje, dus als een deel van je variabele een vreemde kleur krijgt weet je dat er een gelijknamige resources is.
Tip: gebruik altijd dingen als sprPlayer of spr_player voor resource namen (spr voor sprites, obj voor objects, rm voor rooms, enzovoorts), dan kan dit nooit verkeerd lopen.



11) Symbol , or ) expected.
'Je bent een ) of , vergeten.' Oplossing: controleer je script of je niet ergens een ) of , vergeten bent..
Maar dit klopt vaak niet, er kan hierbij heel veel aan de hand zijn waar GM niet op bedacht is. Hier een voorbeeld wat ik ben tegengekomen op het forum:
obj=instance_create(x+=0,y+=0,obj_bullet);
In een functie kun je geen variabelen bewerken (wat x+=0 doet). x+0 kan wel, al heeft dat dezelfde uitwerking als x. (x+y is een realistischer voorbeeld, maar x+=y kan dus ook niet binnen een functie).

Nog een voorbeeld:
draw_text(64x,48y,string(global.naam))
64x is wiskundig goed, maar in programmeertaal moet het 64*x zijn.

En nog een:
draw_text draw_text (x,y,"lives:" lives)
moge duidelijk zijn, driemaal zelfs  Tong
-draw_text draw_text kan niet,
-(x,y,"lives:" lives) kan niet,
-en variabele lives is geen string maar een integer (getal/real).
Moet dus zijn draw_text(x,y,"lives: "+string(lives))

Tot slot het laatste voorbeeld:
draw_sprite(spr_pistool,0,obj_speler.x,obj_speler.y,)
Achter de laatste obj_speler.y moet de komma weg.

Er zijn nog veel meer voorbeelden te bedenken, maar daarover zou je een heel nieuwe topic kunnen starten.



12) File is not opened for reading.
Bestand is niet geopend om te lezen.  Voorbeeld van fout:
GML:
file_text_open_write("...\Bureaublad\Hoi.txt")
file_text_write_string("...\Bureaublad\Hoi.txt", "Hoi")
file_text_close("...\Bureaublad\Hoi.txt")
file_text_open_write, geeft een fileid terug. Hiermee moet je dan gaan werken.
dus:
GML:
file = file_text_open_write("...\Bureaublad\Hoi.txt")
file_text_write_string(file, "Hoi")
file_text_close(file)
Ook kan het voorkomen dat je gewoon vergeten bent het bestand te openen.



13) Trying to close unexisting text file.
Probeert een nietbestaand bestand te sluiten.
Vrijwel zelfde probleem als vorige error.



14) Wrong type of arguments to .. .
Verkeerd type argument voor .. .
'..' kan zijn +, -, /, *, div, mod, &&, ||, ^^, |, &, ^, << en >>.
Bijvoorbeeld var="lol"+12; kan niet omdat 12 en "lol" andere type variabelen/gegevens zijn (namelijk 12 is een getal en "lol" is string (=tekst)).
Oplossing: var="lol"+string(12); of var="lol"+"12";



15) Unknown function or script
Dit betekent dat de functie of het script dat je probeert aan te roepen dat niet bestaat. Bijvoorbeeld had ooit iemand het probleem met If. De oplossing was dat If met een kleine letter moest Knipoog (trouwens ook de meest lullige fout die ik ken Tong).
Andere oplossingen kunnen zijn typfoutjes verbeteren, het script aanmaken, of het kan zijn dat je de naam van de functie verkeerd had onthouden.



16) Error defining an external function
Error bij het definiëren van een functie in een DLL, dit kan komen door:
- De DLL staat niet in de juiste map, of heeft een andere naam;
- De DLL bevat de functie die je probeert de definiëren niet, dit is dan een fout van de maker;
- Een variabele die je gebruikt bij het definiëren is al in gebruik als constante.



17) Unexpected error occured when running the game
Dit is de ergste error die er is. Je weet hiermee namelijk helemaal niets. Het betekent dat er intern in Game Maker een error is ontstaan, waarmee Game Maker geen rekening had gehouden. Soms kan je het oplossen door na te gaan wanneer de error voorkomt, of welk stuk code de error veroorzaakt.

Citaat van: matrebatre
"An unexpected error occured when running the game" betekent eigenlijk gewoon: Er is een error, maar ik weet niet zeker wat er is misgelopen of waar het is misgelopen. Dit komt omdat game maker zelf niet alle errors kan voorzien. In de meeste gevallen ziet Game Maker zelf in dat iets niet kan (bijvoorbeeld als je een getal probeert te delen door nul), maar soms vergeet Game Maker iets. Dit heeft dan als resultaat dat het programma vastloopt.

Bijna alle oorzaken gaat uiteindelijk bijna altijd over teveel RAM gebruik. Zoek dus eerst eens of je spel niet ergens per ongeluk een oneindige loop heeft, waardoor er ergens oneindig veel instances of oneindig grote arrays/data structures gemaakt worden.

Lijst met bekende oorzaken:

- Dlls en extensies:
Als er een fout gebeurt in een DLL, dan zal dat er in game maker uitzien als een 'unexpected error occured' error. Controleer dus eerst of de fout niet bij de Dlls of de extensies zit, voor je verder zoekt.

- Teveel resources gebruiken met de 'preload' checkbox aan:
Zet de checkbox uit bij de dingen die te groot zijn (voornamelijk backgrounds en muziek, en zeer grote sprites).

- Array index groter dan 32000:
In de meeste omstandigheden geeft dit een errorbericht 'array index >= 32000' maar in sommige andere omstandigheden gaat het spel eerst zeer veel RAM gebruiken, om vervolgens de 'unexpected error occured' error te geven.

- In d3d_set_projection_ext de angle of aspect op 0 zetten:
Als angle of aspect 0 is, zal DirectX een error geven, wat in game maker een 'unexpected error' geeft.

- Een te lang getal gebruiken:
In sommige omstandigheden zal dit een 'unexpected error occured' error geven. Maar dit gebeurt pas vanaf getallen met 20+ cijfers, dus dit is niet vaak de oorzaak.

Er is ook een variant op deze error. Als de fout zich voordoet tijdens het starten van je spel (dus bij het laden of in een create event) krijg je meestal deze error. Maar als dit gebeurt tijdens de rest van het spel, kan er ook iets anders gebeuren: Game Maker stopt gewoon met het verder uitvoeren van het script en gaat meteen verder met het volgende script. (Vergelijkbaar met het exit commando, maar in dit geval zal Game Maker het geheugen dat in het script gebruikt werd niet wissen, waardoor je merkt dat het spel steeds meer RAM gebruikt.) Of nog erger: het stopt met het uitvoeren van de huidige step en gaat meteen door naar de volgende. Meestal lijkt het alsof het spel plots veel te snel gaat maar het beeld zal niet meer werken (maar je hoort bijvoorbeeld nog wel het geluid, dat veel te snel gaat).

Ook kan het zijn dat je bij ini bestanden het tweede argument ('key') als getal hebt in plaats van als string, of als het een lege string is. Misschien dat hetzelfde geld voor het eerste argument ('chapter'), mocht iemand een unexpected error krijgen check dit voor de zekerheid ook.

En tot slot is nog een bekende oorzaak wanneer je een ini_write_* functie gebruikt op een bestand dat door een ander proces in gebruik is. Dit gebeurt bijvoorbeeld wanneer je twee executables in dezelfde map runt met de volgende code:
GML:
//executable1.exe
file_text_open_write("test.ini");

//executable2.exe
ini_open("test.ini");
while (true) { //voor altijd
    ini_write_string("testgame", "key", "waarde");
}
Dan zal de tweede executable een unexpected error geven omdat gamemaker het niet goed afhandelt wanneer een ini_write functie faalt - en deze faalt omdat die file_open_write het bestand markeert als 'in gebruik' tot je file_close gebruikt.
Stel dat je executable1.exe tweemaal runt, dan zal de tweede "error opening file for writing" of iets dergelijks geven. Errors met file_ functies worden wel goed afgehandeld.



18) .. by 0
.. kan division, of modulo zijn.
Division kan komen door delen door 0, of door div gebruiken in combinatie met 0:
GML:
getal = get_integer("Getal?", 0); //vraagt een getal, 0 is standaard
//als niks of 0 wordt ingevuld zullen de volgende functies dus de error geven:
a = 1/getal;
b = 1 div getal;
Modulo is dus als je mod gebruikt in combinatie met 0:
GML:
c = 1 mod getal;

Makkelijk op te lossen met:
GML:
if(variable!=0){/*uit te voeren code*/}
//oftewel:
getal = get_integer("Getal?", 0);
if( getal != 0 )
{
   a = 1/getal;
   b = 1 div getal;
   c = 1 mod getal;
}
else
{
   show_message("0 kan niet!");
}



19) Wrong type of arguments to unary operator
Verkeerd type argumenten voor een unaire operator. Meestal is het wat Erik Leppen hier uitlegt:
Citaat van: Erik Leppen
Een unaire operator is een operator met maar één argument. Dit in tegenstelling tot een binaire operator, die twee argumenten heeft. Dat heeft niets met binair rekenen te maken, maar simpelweg met het feit dat bi = 2. Hetzelfde geldt voor un = 1. Een voorbeeld van een binaire operator is + (optellen); je hebt A + B en je moet dus twee dingen opgeven om op te tellen; de operator + heeft dus twee argumenten (die dan worden opgeteld). Een unaire operator heeft maar één argument. Eentje die ik kan verzinnen is - (negatief, niet aftrekken), want de uitdrukking is -A en dat heeft maar één argument, en not (ontkenning) want de uitdrukking is not A en dat heeft maar één argument. Maar er zijn er vast nog meer (zie handleiding, bij iets als "operators"). Merk op dat GM onderscheid maakt tussen operator en function, want random() heeft ook maar één argument, maar valt in GM onder de categorie van functies en niet die van de operatoren.

En deze foutmelding zegt dus dat dat ene argument dat je hebt gebruikt van het verkeerde type is. Bijvoorbeeld de code not "hoi" geeft een foutmelding, want je kunt een string niet ontkennen want er is geen true of false aan een string te koppelen.

Een afgeleide hiervan is als je bijvoorbeeld deze code probeert te gebruiken:
GML:
if not vari="abc" then {}
Het zal proberen te doen:
Als (niet vari) gelijk is aan ("abc") dan ...
Maar wat je wilt dat het doet is:
Als niet ((vari) is gelijk aan ("abc")) dan ...
Dan zal het namelijk kijken of vari niet "abc" is. De code hiervoor is:
GML:
if not (vari="abc") then {}



Spring naar: Inleiding - Errornummer 1 - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie



20) Video file not found (or name too long).
'Video niet gevonden (of naam te lang).'
Zorg dat het bestand altijd in dezelfde map staat als de game, en het een niet te lange naam heeft. In de handleiding staat echter niet hoelang het maximaal mag zijn, maar normaal hoef je geen duizenden video's te hebben. Een paar letters zullen dus altijd volstaan voor unieke bestandsnamen.



21) Runtime error
Deze error geeft net als bij 'unexpected error occured when running the game' zeer weinig informatie. Je zal waarschijnlijk stukje voor stukje je code na moeten gaan om te kijken waar het probleem zit.
Het is in ieder geval geen syntax fout en waarschijnlijk ook geen dll fout.



22) Wrong type of array index
Je kan geen string gebruiken voor een array index.
GML:
//Fout:
array["nul"] = 10; //"nul" kan niet gebruikt worden als array index
array["0"] = 10; //0 staat nog altijd tussen "" dus kan niet gebruikt worden omdat het een string is

//Goed:
array[0] = 10;

//Dit kan ook:
nul = 0;
array[nul] = 10; //nul zonder aanhalingstekens wordt behandeld als variabele
//dus omdat de variabele op 0 gezet is zal het array nummer 0 uitlezen



23) Failed to initalize drawing surfaces
Dit is hoogstwaarschijnlijk als je videokaart (ookwel grafische kaart) de surfaces niet aankan. Wat je kan proberen is je computer herstarten, of een stappenplan van Matrebatre:
Citaat
- klik met de rechtermuisknop op het bureaublad en kies eigenschappen
- ga naar het tabblad 'instellingen'
- druk op de knop 'geavanceerd'
- ga naar het tabblad 'probleem oplossen'
- schuif de hardwareversnelling meter volledig naar rechts
- herstart de computer

Probeer het daarna nog eens.
Een andere tip van tristanb is even hier of op de site van je videokaart kijken voor de laatste drivers van je videokaart.

Nog een oplossing (die schijnbaar ook in de error vermeld wordt) is de schermresolutie lager zetten:
Rechtsklikken op bureaublad (naast een icoontje dus), naar het tabblad instellingen gaan, en de schermresolutie lager schuiven.

Als het allemaal niet helpt kun je proberen te downgraden naar GameMaker 6 of zelfs 5. Je hebt dan natuurlijk een stuk minder functionaliteit, maar voor die ene game kan het werken.



24) Assignment operator expected.
Betekent meestal '= teken verwacht'.
Ergens staat waarschijnlijk een typfoutje of code die niet bestaat. Let op dingen als spaties in (resource* of variabele) namen, variabelen met dezelfde naam als een resource (of omgekeerd), en of je geen haakjes vergeten bent achter functies (dus '()'  ). Ook kan het zijn dat je in één event tweemaal var gebruikt (dit mag slechts eenmaal), of dat je var 1; gebruikt wat niet kan aangezien je een variabele probeert te maken en variabelen geen getallen mogen zijn.

*resource is wat links in de 'resource tree' staat, sprites, backgrounds, sounds, fonts, rooms, objecten, etc.



25) Program ends before end of the code.
Als je execute a piece of code begint met {, en je achter de laatste } nog code hebt staan komt deze error. Bijvoorbeeld:
GML:
{
  //code
}
//meer code
Die 'meer code' mag niet omdat het buiten de laatste } staat, dus buiten het einde van het script.
Hoe dus op te lossen? Gewoon die laatste code binnen de } zetten, of het script niet beginnen met een { (het is namelijk niet verplicht).
Ook kan het zijn dat je while(a==b) zonder iets erachter gebruikt, of een ander statement waar iets achter móet (if, for, repeat of else).



26) Cannot apply sqrt to negative number.
sqrt betekent square root, vertaald naar het Nederlands vierkantswortel. Aangezien een wortel het tegenovergestelde is van een kwadraat, kan het niet negatief zijn. Probeer maar eens een negatief getal te maken uit een kwadraat!
Dus om de error op te lossen gewoon zorgen dat het niet negatief kan zijn, of een if-voorwaarde eraan stellen.
GML:
if( x>0 )
{
    sqrt(x);
}



27) Failed to run the game
Dit is een hele vervelende error. 'Kon het spel niet uitvoeren' zegt uitermate weinig, en het kan vanalles zijn. Soms ligt het aan gamemaker zelf; als je in plaats van op de play knop drukt een executable maakt werkt het vaak wel.

Als je trouwens eerder error nummer 83 ('error saving the game') hebt gekregen en dan probeert de game te runnen, krijg je ook deze error. Gamemaker probeert de 'working directory' (zie handleiding) op die map in te stellen, en als je daar geen rechten hebt werkt dat dus niet.

Ook vaak is het probleem verholpen zodra gamemaker herstart wordt (afgesloten en weer geopend dus). Vergeet je werk niet op te slaan, bij voorkeur in een tweede GMK in plaats van over het origineel heen (als dat al ging). Stel dat het opslaan ook een fout bevat is je hele game weg. Als alles na het opnieuw starten van gamemaker (of je hele computer) weer werkt kun je natuurlijk de originele naam weer gaan gebruiken.



28) Array index >= 32000
De index van de array is groter dan of gelijk aan 32000, en zoals de handleiding al noemt mag dit niet. De index van de array is dat wat tussen [ en ] staat. Dus bijvoorbeeld bij a[5] is '5' de index. De index kan ook een variabele zijn.
Om dit probleem op te lossen kun je een gewone variabele gebruiken in plaats van een array, maar let op dat je spel nu wel erg veel geheugen gebruikt.
Om een gewone variabele in te stellen kun je bijvoorbeeld dit doen:
GML:
variable_local_set("XX"+string( YY ),"ZZ");
Hierin is XX de arraynaam, YY wat normaal het arraynummer zou aangeven, en ZZ wat er achter het =-teken staat. Voorbeeld:
GML:
a[x]=y;
//vervang je dan door
variable_local_set("a"+string(x),y);



29) Cannot open another file (maximum exceeded).
Vertaling: Kan geen ander bestand openen (maximum overschreden).
Kort gezegd: je hebt al een aantal bestanden geopend via file functies, en daar kan geen meer bij.
Oplossing: gebruik file_close direct wanneer het mogelijk is. Je kan het later toch weer openen om verder in het bestand te werken.



Spring naar: Inleiding - Errornummer 1 - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie



30) Trying to set the room speed to a value <= 0.
Vertaling: Probeert de room speed naar een waarde kleiner of gelijk aan 0 te zetten.
De roomspeed is wat de game probeert te halen in frames per seconde (fps). 0 zou pauze zijn en dat pikt 'ie kennelijk niet (dan zou het ook nooit meer verder kunnen, niks checkt wanneer het verder moet want alles ligt stil), en kleiner dan 0 is onmogelijk. Zelfs al ging de game achteruit dan is de framerate (fps) nog groter dan 0.
Oplossing: zorg dat de waarde waaraan je de room speed gelijk stelt nooit kleiner kan zijn dan 0. Voorbeeld:
GML:
//origineel
room_speed=level;
//oplossing
if( level>0 )
{
    room_speed=level;
}



31) Verzameling van de volgende errors:
Citaat
Error in function exp().
Error in function ln().
Error in function log2().
Error in function arcsin().
Error in function arctan2().
Error in function logn().
Dit zijn allemaal errors die komen doordat je iets met een van die wiskundige functies hebt geprobeert wat niet kan. Zoek in de handleiding of op internet op hoe de functie precies gebruikt moet worden. Als je er niet uit komt, post maar dan zet ik die even apart.



32) Trying to rewrite unopened file.
Vertaling: Probeert een ongeopend bestand opnieuw te schrijven.
Waarschijnlijk ben je gewoon vergeten het bestand te openen. Voor meer uitleg over files, zie hier.



33) File is not opened.
Vertaling: Bestand is niet geopend.
Oplossing: Open het bestand voor je die file functie gebruikt. Voor meer uitleg over files, zie hier.



34) Default statement only allowed inside switch statement.
Je probeert default: ergens buiten een switch-statement te gebruiken.
Voorbeeld:
GML:
//goed
switch( health )
{
    case 0: /*doe iets*/ break;
    default: /*nogiets*/ break;
}

//fout
switch( health )
{
    case 0: /*doe iets*/ break;
}
default: /*nogiets*/ break;



35) Case statement only allowed inside switch statement.
Zelfde als vorige error, maar dan met case in plaats van default. Zorg dat nergens losse case's rondzwerven!



36) INTERNAL ERROR: Adding too many variables
Vertaling: INTERNE ERROR: Teveel variabelen toe aan het voegen
Ik denk dat je gewoon de game lichter moet maken (zo min mogelijk resources en efficient werken), en minder variabelen gebruiken.



37) Trying to .. a non-existing .. .
Zorg ervoor dat de/het sprite/font/script/timeline/object/room/background/sound/path/surface/bestand/bitmap (altijd) bestaat en de variabele of naam goed is. Ook kan het probleem veroorzaakt worden door het niet goed inladen van een externe resource.



38) Trying to save .. to empty image file name.
Probeert .. (background, surface) op te slaan in een lege bestandsnaam.
Een bestand moet natuurlijk altijd een naam hebben, zorg dat als je een variabele gebruikt het geen lege string is.



39) Trying to read/write from undefined INI file
Je moet een ini bestand openen met ini_open(bestandsnaam) voor je in dat ini kan lezen of schrijven. Dit moet er dus voor gebruiken van de ini-functies staan
GML:
filename="naam.ini";
ini_open(filename);
//of
ini_open("naam.ini");
Je kan wel op beide plekken waar naam.ini staat een eigen bestandsnaam invullen, maar laat de quotes ( " ) wel staan (overigens de naam hoeft niet te eindingen op .ini, het kan ook bla.pietjepuk zijn).
Voor meer informatie over ini bestanden kijk hier.



Spring naar: Inleiding - Errornummer 1 - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie



40) Failed to create temp dir. This can cause serious problems with sounds, etc.
Tijdelijke map kan niet worden aangemaakt waardoor grote problemen met geluid enzo kunnen ontstaan.
Het kan zijn dat de schijf beveiligd is tegen schrijven. Hier is denk ik niks aan te doen.



41) Unexpected end of code reached.
Dit komt voor als je achter bijvoorbeeld een if-voorwaarde iets bent vergeten te zetten. Bijvoorbeeld if(iets==true) geeft die error (als je er dus niks achter hebt staan). Het is simpelweg een half afgemaakt statement.
Hier is een lijstje waarbij het kan voorkomen:
if(..) zonder {} of iets erachter
do {} zonder until
repeat zonder {}



42) This program must be run under Win32
'Dit programma moet uitgevoerd worden onder Win32', wat zoveel betekent als dat je een moderne versie van Windows modig hebt om het programma uit te voeren.



43) Error opening file for writing.
'Fout bij het openen van bestand om in te schrijven.'
Je hebt hoogstwaarschijnlijk een van de volgende tekens in de bestandsnaam:
\ / : * ? < > |
Die mogen niet voorkomen in bestandsnamen, probeer maar eens in windows een bestand te hernoemen naar ??.?? ofzo, dan krijg je ook zo'n ballonnetje met dat je die tekens niet mag gebruiken. Het kan ook dat je probeert te schrijven naar een beveiligde plaats (bijvoorbeeld de C-schijf als de gebruiker geen administrator is, of als bij Windows Vista of 7 UAC ingeschakeld is).



44) Error Creating Stand-Alone: Cannot find valid runner data
Dit is een fout van Game Maker zelf, niet van het spel. Als de schijf of USB stick waarvanaf je gamemaker draait (tussendoor) uitgetrokken is zul je deze error krijgen (dus bijvoorbeeld als je gamemaker van een usbstick start, en dan je usbstick eruit hebt getrokken, krijg je de error).
Als het dat niet is kun je opnieuw installeren proberen.



45) Trying to get texture from non-existing background
Citaat van: mikey
Het betekent dat je een functie hebt gebruikt (waarschijnlijk background_get_texture) waarin je dus bezig bent een texture te maken van een background. Alleen bestaat de background die jij hebt ingevuld niet.



46) Keyword until expected
Als je do { ... } gebruikt zonder until. Dus NIET zo:
GML:
do
{
   i+=1;
}
Maar zo:
GML:
do
{
   i+=1;
}
until( i>10 )



47) Symbol : expected.
Je bent hoogstwaarschijnlijk achter case <waarde> vergeten een : te zetten. Bijvoorbeeld:
GML:
//fout:
switch a
{
    case 0 draw_background(background2); break;
    case 1 draw_background(background3); break;
}

//goed
switch a
{
    case 0: draw_background(background2); break;
    case 1: draw_background(background3); break;
}



48) Repeat count must be a number
Bij het repeat-statement moet je een getal in vullen.
GML:
//fout:
repeat("honderd"){ ... }
//fout:
repeat("100"){ ... }
//fout:
repeat( real("honderd") ){ ... } //geeft 'error in function real'

//goed:
repeat(100){ ... }
//goed:
repeat( real("100") ){ ... }



49) Data structure with index does not exist.
Data structuur met index bestaat niet.
Je probeert een datastructuur te benaderen die niet bestaat. Misschien vergeten aan te maken met ds_*_create(..)? De asteriks (dus de *) staat voor grid, queue, stack, list, map of priority. Kijk in je code welk type je probeert te benaderen, en welke je dus moet aanmaken.
Waarschijnlijk als je de error niet snapt ben je nog niet gevorderd genoeg om datastructuren te gebruiken. Vraag de schrijver van de code als je dit niet zelf bent hoe het werkt, probeer een simpelere manier (arrays), lees de handleiding over datastructuren of lees een tutorial erover.

« Laatste verandering: 25 Oktober 2011, 19:56:44 door lucb1e »

Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4530


WWW
« Antwoord #2 Gepost op: 21 December 2010, 03:41:02 »

Spring naar: Inleiding - Errornummer 1 - Reactie knop / tekstvak voor snelle reactie



50) Failed to set data for ''
Een of andere bug van gamemaker 7.0, schijnbaar voorkomend in Vista. Ik weet niet zeker of het ook voorkomt in Gamemaker 8, Windows 7 en of UAC effect erop heeft, maar GM7 in Vista (die niet als administrator wordt uitgevoerd) is bevestigd.
Het probleem zit hem in het uitvoeren als administrator, als je rechtsklikt en dan 'uitvoeren als administrator' kiest (of 'run as administrator' in de Engelse versie) zou de error weg moeten zijn. Je kan volgensmij ook standaard instellen dat het als administrator uitgevoerd wordt ergens in de instellingen, maar dan moet je iedere keer op 'doorgaan' klikken als Gamemaker gestart wordt (tenzij UAC uit is, google naar 'Turn UAC off Vista' ofzo). Als iemand dit moet hebben reageer maar dan kijk ik even hoe precies de instellingen zitten.



51) *De game sluit opeens af*
Dit is geen error, de game sluit alleen af op een gegeven moment zonder enige waarschuwing. Beetje offtopic, maar voor de volledigheid leek het me toch handig te vermelden.
De enige oorzaak die ik ken is als een script zichzelf blijft aanroepen:
GML:
//scriptnaam "hetscript" (zonder aanhalingstekens)
hetscript();
Of iets subtieler:
GML:
//scriptnaam "deelDoor2" (zonder aanhalingstekens)
//deelDoor2(getal);
getal=argument0;
if( getal/2 == round(getal/2) )
{
    return getal / 2;
}
else
{
    getal = getal * 1.1;
    deelDoor2( getal );
}
Het is natuurlijk een stom script, maar op een iets minder overduidelijke manier kan het ergens voorkomen dat het script oneindig zichzelf blijft herhalen. Zonder dat je game vastloopt zal het (vrijwel direct) afsluiten.

Een andere mogelijkheid is als je GM026 (applies to self) of instance_destroy(); in het Destroy event hebt staan. Dit is niet nodig, aangezien de instance zich dan al aan het vernietigen is. Opnieuw het object vernietigen (instance_destroy uitvoeren) heeft dan geen nut meer.



52) An error occurred installing the extension package.
(Windows Vista / 7)
Hoogstwaarschijnlijk heb je geen rechten/machtigingen, gamemaker moet als administrator uitgevoerd worden voor het werkt. Rechtsklik op gamemaker.exe of de snelkoppeling naar gamemaker, en kies 'Uitvoeren als administrator' of 'Run as administrator'. Indien nodig, typ het administrator wachtwoord in of vraag je ouders hiervoor.
Nu zou het goed moeten installeren.

Algemeen
Als je dus geen Windows Vista of Windows 7 hebt, of de bovenstaande suggestie niet werkt, is het Extensie-pakket beschadigd. Je kan eens proberen opnieuw te downloaden of een andere download zoeken (bijv. een andere mirror indien beschikbaar), maar waarschijnlijk moet je de maker vragen voor een update of her-upload. Anderen zouden trouwens ook hetzelfde probleem moeten hebben met installeren, als dit niet het geval is kun je proberen om gamemaker te verwijderen en weer installeren.



53) Error retrieving file size.
Kan de bestandsgrootte niet vinden. Waarschijnlijk heb je een bestand proberen te openen dat niet bestaat, of een lege string als bestand opgegeven. Controleer of het bestand wel echt bestaat met file_exists(bestandsnaam)!



54) INI files must be located in the same directory as the program
Het ini-bestand moet in dezelfde map staan als de game zelf.



55) Left hand side must be a real value.
"Zijde aan de linkerhand moet een getal zijn."
Klinkt vreemd, maar er wordt mee bedoeld de linkerzijde van de variabele. Bijvoorbeeld in object0.variabele is object0 de linkerzijde.
Dus:
GML:
object0.test = "test"; //is goed
"object0".test = "test"; //is fout
Ook als je een constante hebt, bijvoorbeeld constante 'test' staat op 'object0' zal het deze error geven zodra je test.variabele doet.



56) Wrong type of variable index
Bijna hetzelfde als #55, alleen zit de "left hand side" in een variabele. Ik bedoel dus zoiets:
GML:
new_object_id = instance_create( 0, 0, object0 );
new_object_id = string( new_object_id );
new_object_id.test = "test";
Zal deze error geven.
Of als je dus per ongeluk een verkeerde variabele gebruikt in plaats van een objectnaam (of instance-id), en die variabele wel een string is, kun je dit krijgen.



57) This function is only available in the Pro Edition. of not available in the Lite Edition.
Deze functie is alleen beschikbaar in de Pro of Standard editie.
Je moet gamemaker kopen (ookwel 'registreren') om deze functie te kunnen gebruiken. Als je een example gmk download (een voorbeeld game of programma door iemand anders gemaakt) en uitvoert met Game Maker Lite kan het zijn dat de example ergens een standard of pro-functie gebruikt. Je kan even proberen het zelf op te lossen, of anders vraag de maker van de example of het ook in Lite kan.
Nog beter is misschien om gewoon Standard of Pro te kopen Knipoog (Ik ben niet gesponsord door YoYoGames om dat te zeggen).



58) Cannot redeclare a builtin variable.
Kan een ingebouwde variabele niet opnieuw aanmaken (declareren). Bijvoorbeeld argument0 en x zijn ingebouwde variabelen die dus niet aangemaakt kunnen worden via var.
GML:
var a, b, x; //zal voor x de error geven
var argument0; //geeft de error voor argument0
Beter kun je dus aan het einde van het script variabele=0; zetten. Normaal zou je, als je var gebruikt, het zowieso aan het einde van het script verwijderd worden. Nu gebruikt de variabele nog wel 1 byte, maar zo rampzalig is dat denk ik niet lol.



59) Moving to previous room before the first room.
Je gebruikt room_goto_previous(); of GM034 terwijl er geen vorige room is. Je kan controleren of de vorige room wel bestaat:
GML:
if( room_exists(room_previous(room)) )
{
    room_goto_previous();
}
Of met:
GM038
    GM063
    GM034
    GM066



Spring naar: Inleiding - Errornummer 1 - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie



60) Moving to next room after the last room.
Je gebruikt room_goto_next(); of GM035 terwijl er geen volgende room meer is. Je kan controleren of de volgende bestaat:
GML:
if( room_exists(room_next(room)) )
{
    room_goto_next();
}
Of met:
GM039
GM063
GM035
GM066



61) Creating instance for non-existing object:
Je probeert een object te maken die niet bestaat. Alle objecten hebben een nummer, bijvoorbeeld als je een lege game hebt en een object maakt zal deze altijd de naam krijgen object0. Als je vervolgens show_message(string(object0)); zou doen zie je dat dit gewoon een variabele is met de waarde 0.
Je kan zo ook instance_create(0,0, 0); gebruiken om een instance van een object te maken dat het nummer 0 heeft.
Als je dan dus een nummer invult van een object dat niet (meer) bestaat, zul je deze error krijgen. Bijvoorbeeld instance_create(0,0, -1); zal deze error altijd geven.
Wat je kan doen om de error te voorkomen is dit:
GML:
het_object = //object of nummer van object dat je wil maken
if( instance_exists(het_object) && het_object>=0 )
{
    instance_create(x, y, /*getal of variabele*/ );
}
Alleen instance_exists zonder het_object>=0 werkt niet, bij -1 zal deze altijd zeggen dat het bestaat. Dit komt doordat -1 self is, -2 other en -3 all, hij zal deze dus altijd herkennen ook als je dat instance niet kan maken. Maar echte objecten hebben altijd een nummer >=0 dus checken we dat gewoon.

Update: Mocht het zeggen dat object -100 niet bekend is, ben je bij GM023 vergeten een object in te vullen (er staat dan nog 'object: No object'). Klik op no object om een object te kiezen.



62) Error reading byte.
Error bij het lezen van de volgende byte uit het bestand geopend in binaire modus (file_bin_open). Kan komen doordat het bestand niet bestaat, of je nog de volgende byte probeert te lezen terwijl het einde van het bestand al bereikt is. Oplossingen:
GML:
//Om te checken of het bestand bestaat:
bestand = "test.txt";
if( file_exists(bestand) ){
    file_id = file_bin_open(bestand, 0);
    //de rest van de normale code die je gebruikt voor te lezen etc hier.
}
//let op dat je ook uitkijkt dat je vervolgens niet file_bin_close(file_id) gebruikt, maar weer controleren of ofwel het bestand bestaat of dat de variabele is aangemaakt

//Om te controleren of je niet al aan het einde van het bestand bent
//open het bestand en sla de handler op in file_id.
while( file_bin_position(file_id) < file_bin_size(file_id) ){
    file_bin_read_byte(file_id); //of wat je normaal met lezen zou doen
}
//close ofzo



63) ERROR
Dit is de standaardtekst die alle string-functies returnen als er iets fout is gegaan. Bijvoorbeeld string(getal) zal dit teruggeven wanneer het getal meer als 20cijfers lang is, en dit geld hetzelfde met functies als string_format, string_char_at, etcetera.

Controleer via show_message() eens wat je in de string-functie stopt (dus vervang wat voor string-functie je gebruikte door show_message). Als het dan bij het testen een unexpected error geeft kun je bij die error verder kijken wat de oorzaak is (#17 in dit topic). Hoogstwaarschijnlijk is het in ieder geval een getal van meer dan 20 cijfers.



64) Error in function power().
Ongeveer dezelfde error als 'error in function real' (#3), je hebt bij (een van) beide argumenten een string of te groot getal ingevuld.



65) Cannot execute <bestandsnaam>
Het bestand dat je probeert uit te voeren, kan niet uitgevoerd worden. Het kan zijn dat het bestand niet bestaat, of dat de game geen toegangsrechten heeft.



66) Expression expected.
'Vergelijking verwacht' (vrij vertaald). De enige oorzaak die ik ken is als je een string zonder operator in een if-statement gebruikt. Bijvoorbeeld:
GML:
if( "a" ) //zal in de code editor niks zeggen,
        //maar bij het runnen krijg je de expession-expected error
{
    show_message("str");
}

variabele = true;
if( string(variabele) ) //weer dezelfde error dus
{
    show_message("str");
}

if( variabele ) //werkt wel!
{
    show_message("str");
}
Er kan dus alleen een getal in het if-statement, maar ook functies of operators die getallen returnen werken. De == is bijvoorbeeld een operator die kijkt of het gelijk is aan en dan true of false teruggeeft. True is gewoon 1 en false 0, je kan ze ook compleet door elkaar gebruiken.
GML:
if( 1 )
{
    //dit wordt uitgevoerd
}
else
{
    //dit wordt nooit uitgevoerd
}

if( 1==0 )
{
    //dit wordt niet uitgevoerd
}
else
{
    //dit wordt uitgevoerd
}

if( "1"==1 ) //error: 'cannot compare arguments', appels met peren vergelijken hè

if( "1"=="1" )
{
    //wordt uitgevoerd
}
else
{
    //wordt niet uitgevoerd
}

if( "1"==string(1) )
{
    //wordt uitgevoerd
}
else
{
    //wordt niet uitgevoerd
}

if( 1==true ) //geen appels met peren vergelijken: je kan true eigenlijk
            //zien als een globale variabele voor 1 (of een constante om iets preciezer te zijn)
{
    //wordt uitgevoerd
}
else
{
    //wordt niet uitgevoerd
}

if( false==1 ) //1=true, en false is niet true hè
{
    //wordt niet uitgevoerd
}
else
{
    //wordt uitgevoerd
}

//etcetera :)



67) This will create a loop in parents.
Je kan de parent van een object niet hetzelfde maken als het object zelf. Stel je hebt dus een object obj_test, en je zou de parent daarvan ook op obj_test proberen in te stellen, krijg je deze melding.

Ook kan het zijn dat je twee objecten hebt, objA en objB, en objB een parent is van objA, en je dan objA een parent van objB probeert te maken.



68) Sprite is too large to create.
Je kan geen sprite zo groot maken, het limiet ligt op 10 000x10 000.



69) Image is too large to create.
Je kan geen background zo groot maken, het limiet ligt rond 10 000x10 000.



Spring naar: Inleiding - Errornummer 1 - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie



70) Out of memory.
Dit is een algemene error dat je teveel geheugen gebruikt, bijvoorbeeld in Game Maker's sprite editor krijg je dit wanneer je een zeer grote sprite probeert te maken. Of in een game kun je het krijgen bij het aanmaken van een hele grote ds_grid.

Wanneer je dit in de sprite editor krijgt, sla de sprite niet op. De game zal waarschijnlijk anders blijven erroren en kan misschien zelfs de hele gmk kapot maken. Als je de sprite afsluit zonder wijzigingen op te slaan heb je nog een goede kans dat alles weer werkt. Sla de game voor de zekerheid toch onder een andere naam op (zodat je de vorige gmk als backup hebt).



71) Onvoldoende opslagruimte om deze opdracht te verwerken.
Kreeg ik toen ik een sprite van 10 001x10 000 wilde maken.



72) Constant name <constante> is not a valid.
Je hebt een constante aangemaakt met een ongeldige naam. Bij het instellen van de constante checkt gamemaker niet of deze wel geldig is, maar bij het laden van de game zul je deze error wel krijgen. Als je op Ok klikt krijg je daarna (eventueel na nog een paar ongeldige constante errors) error#73.
Constanten moeten beginnen met een letter of underscore (dat is een _), en mogen daarna alleen alfanumerieke karakters en meer underscores bevatten. Andere tekens zullen deze error veroorzaken. Eigenlijk dezelfde regels als voor normale variabelen dus, alleen constanten kunnen niet van een bepaald object zijn (er mag namelijk geen . in voorkomen zoals obj_player.variabele).



73) Failed to define constants.
Bij het definiëren van constanten is er iets misgegaan, enige bekende oorzaak is error#72.



74) Variable name expected.
Er wordt een variabele naam verwacht, maar gamemaker kan deze niet vinden. Voorbeelden:
GML:
show_message( obj_test. );
//hier zal het dus achter de . zoeken welke variabele binnen obj_test
//je opvraagt, maar het kan er geen vinden

show_message( obj_test.pi );
//pi is een constante, geen variabele. show_message(pi) zou wel
//werken, maar dus niet binnen een object.

pi = "test";
//deze wordt er pas uitgehaald bij het runnen van de game.
Als je een constante zelf definieert als string (constante 'const' met waarde 'test' ofzo), en dan const.variabele gebruikt zul je error#55 krijgen.
Als je deze als getal instelt (bijvoorbeeld 'const'=45) en je doet dan const.variabele zal het uit objectnummer 45 (het object dat toen je 'm aanmaakte object45 heette) proberen de variabele 'variabele' proberen uit te lezen.
Als een constante gelijknamig is aan een object of andere resource, en je gebruikt dan die naam, zal het altijd het object gebruiken. De constante wordt dan als het ware genegeerd.



75) You need to select or add an event before you can add actions.
Als je in een object nog geen event hebt aangemaakt kun je geen D&D icoontjes toevoegen. Klik dus eerst op 'add event'.



76) A game must have at least one room to run.
Zonder room kan een game niet runnen. Maak dus eerst een room aan, en zet de instanties waar je ze wil hebben. Probeer de game daarna nog eens te runnen.



77) 79: Wrong type of arguments for .. .
Je gebruikt een bitsgewijze operator, maar geeft deze een verkeerd type argumenten. Waarschijnlijk is een van de variabelen ervoor of erachter een string.



78) Asking to change into non-existing object ..
instance_change heeft een ongeldig object in het eerste argument. Dezelfde error krijg je als je bij GM025 een object invult wat later verwijderd wordt, dan kent gamemaker opeens het object-id niet meer en krijg je deze error.

Als je krijgt "Asking to change into non-existing object -100", ben je vergeten iets bij het object in te vullen. Er staat dan nog Change into: No Object. Klik op no object om een object te kiezen.



79) .. .exe werkt niet meer. (Windows error)
Deze error kan erg veel oorzaken hebben. In de meeste gevallen zul je deze error niet eens krijgen, maar zal het spelvenster simpelweg verdwijnen. Mogelijke oorzaken zijn:
- Als je een script hebt testScript, en in dat script wordt te vaak testScript(..); aangeroepen.
- Als je instance_change met perform events aan, in het destroy of create event hebt staan.
- Andere dingen die een ongecontroleerde reeks van acties kan veroorzaken.

Oneindige loops (while(true), for(i=1; i>0; i+=1), etc) laten je spel meestal een aantal seconden vast hangen voordat je iets merkt. Dit is echter een Windows instelling en kan dus varieren, maar standaard is het meen ik 5 seconden.



Spring naar: Inleiding - Errornummer 1 - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie



80) Cannot use global in with statement.
Je kan global niet in een with statement gebruiken. Sleutelwoorden (keywords) zoals all, other en self kunnen wel, maar global zal deze error geven. De volgende code is dus fout:
GML:
with( global )
{
    test = 0;
    tekst = "voorbeeld";
}
De enige reden om iets met global te willen doen in een with, is als je globale variabelen wil instellen (zie hier als je niet weet wat dat zijn). In plaats van de with, kun je wel dit gebruiken:
GML:
global.test = 0;
global.tekst = "voorbeeld";



81) Cannot focus a disabled or invisible window.
Een kleine bug uit Delphi (de taal waarin Gamemaker geschreven is), als je bijvoorbeeld de vraag krijgt of je de game wil opslaan en dan dubbelklikt op "no" zal het deze error geven. Het venstertje dat vraagt of je de game wil opslaan wordt waarschijnlijk al uitgeschakeld (disabled) of onzichtbaar gemaakt, en als je er dan nog eens op klikt voordat de wijziging wordt doorgevoerd zul je deze error krijgen. Gewoon niet dubbelklikken op die knoppen dus Gemoedelijk



82) Out of system resources
Deze error kan voorkomen als je een groot game icoon probeert in te stellen, of als je RAM-geheugen vol is. De computer opnieuw opstarten helpt vaak.
In Game Maker 7 of lager werden alleen 32x32 iconen geaccepteerd, in Game Maker 8 werken volgensmij vrijwel alle iconen (ik heb er tientallen getest, waarvan één zelfs 256x256 met 32 bits, wat tot mijn verbazing goed ging aangezien deze error bij iemand kwam die een 128x128 icoon probeerde te gebruiken).



83) Error Creating Stand-Alone : Cannot save the game file.
Deze error komt voor als gamemaker de .exe of .gmk niet kan opslaan, waarschijnlijk omdat het bestand in gebruik is. Zorg ervoor dat je rechten hebt in de map waarin je probeert de game weg te schrijven.



84) Error Saving: Cannot create the game file. The game has not been saved!Try saving your work under a different name.
Zie error nummer 83 direct hierboven.



85) Illegal argument count calling script "scriptnaam".
'Ongeldig aantal argumenten voor het aanroepen van het script "scriptnaam".'
Het script op de plek van "scriptnaam" heeft een ander aantal argumenten nodig. Bijvoorbeeld als je een script naar_links(wie,hoeveel); hebt, en je geeft alleen het wie argument op (maar vergeet hoeveel), dan zul je deze error krijgen.



86) Unexpected symbol.
In je GML code staat een teken dat Game Maker niet kent. Bijvoorbeeld een micro-teken (µ) ergens willekeurig in de code, of een e met een trema (ë). Als je teksten wil gebruiken in GML moet je deze tussen quotes (" en " of ' en ') zetten, zie GML tutorials.



87) libeay32.dll ontbreekt
Error in Game Maker 8.1. Enige bekende oplossing is 8.0 gebruiken. A.u.b. een reactie plaatsen als je een oplossing hebt gevonden!



88) Statement expected.
Er werd een statement verwacht, maar er stond er geen. Dit kan bijvoorbeeld voorkomen bij code als deze:
GML:
miliseconden = current_time;
while (miliseconden + 2000 < current_time);
Het doel van deze code zou zijn de while loop uit te voeren maar geen code, zolang miliseconden+2000 kleiner is als het huidige aantal miliseconden. Dit zou de game dus 2 seconden pauzeren.
Maar in Game Maker kan dit op deze manier niet. Je moet altijd iets van code achter de while loop zetten, al is het maar dit:
GML:
miliseconden = current_time;
while (miliseconden + 2000 < current_time) {}



89) Unknown action.
Als je deze error krijgt missen er waarschijnlijk zogeheten 'action libraries'. Dit zijn de .lib bestanden die in je Game Maker installatiemap staan, en waar alle acties in staan. Acties zijn dus die dingen die rechts in het venster van een object staan.
Je kan ook zelf action libraries maken en installeren, dan komt er dus een tabblad met van die acties bij. Als je deze gebruikt hebt, en vervolgens op bijvoorbeeld een andere computer (die die library niet heeft) de .gmk opent, kun je deze error krijgen.
Hier is een tutorial over action libraries door Blijbol.



90) In secure mode you cannot use DLLs.
In veilige modus kun je geen DLL's inladen in Game Maker. Deze veilige modus kun je uitzetten in het menu: File > Preferences > vink "Run games in secure mode" uit.



Spring naar: Inleiding - Errornummer 1 - Errornummer 50 - Reactie knop / tekstvak voor snelle reactie



91) Unexisting room number
De room waar je naartoe probeert te gaan (met de functie room_goto()) bestaat niet. Als je bijvoorbeeld room_goto(0) doet kan het zijn dat je deze error krijgt. Of bijvoorbeeld "a = 1; room_goto(a);" geeft ook deze error wanneer een room met de index 1 niet bestaat. Je kan controleren of een room bestaat door middel van de functie room_exists.
Een iets minder duidelijk probleem onstaat wanneer de room dezelfde naam heeft als een variabele of andere resource. Zoals op het screenshot hieronder kan dit voorkomen aangezien "huis" zowel een room als een object is. Game Maker weet dan niet welke van de twee je bedoelt.

De oplossing in dit geval is om een van de twee te hernoemen. Het beste zou zijn het als volgt te maken:
- Objects:
    - objMenu
    - objHuis
- Rooms:
    - rmMenu
    - rmHuis

En daarna uiteraard de code ook aan te passen naar "room_goto(rmHuis)". Op die manier kun je nooit fouten maken hierin.

Let trouwens op dat dit probleem niet alleen ontstaat met objecten die dezelfde naam hebben, maar ook sounds, sprites, backgrounds, timelines, enz. En variabelen niet te vergeten, als je ergens "huis = 5" in je code hebt staan om aan te geven welk huis in bezit is van de speler en vervolgens room_goto(huis) gebruikt (terwijl "huis" ook een bestaande room is) kan je ook een dergelijke error krijgen!



92) Cannot load saved game with other version.
De error is vertaald: Kan geen opgeslagen spel met een andere versie laden. Als je dus eerst een game in Game Maker 7 maakt en vervolgens in Game Maker 8, dan kun je niet de savefiles van de oudere versie in de nieuwere laden.



93) Access violation at address xxxxx in module xxxx.dll. Read of address xxxxx.
Deze error kan vanalles betekenen en door vanalles veroorzaakt worden. Erger dan "Unexpected error while running the game," deze error kan veroorzaakt worden door je computer of Game Maker zelf. Je kan proberen Game Maker opnieuw op te starten, de computer opnieuw op te starten, Game Maker opnieuw te installeren, in een nieuwe gmk te beginnen (dus alles overzetten/kopiëren, een rotklusje maar wellicht lost het de error op), of zelfs Windows opnieuw installeren (of proberen de game of gmk op een andere computer te draaien). In enkele gevallen kan het ook zijn dat je iets met een DLL doet waar de DLL niet op berekend is (zoals 39dll ongeldige invoer geven).

Veel van deze 'oplossingen' zijn niet echt handig, maar de error is ook een van de vervelendste die je kan hebben.

Twee bekende oorzaken zijn
- Wanneer je je computer in de sluimerstand zet terwijl Game Maker 8.1 open blijft staan en daarna een resource aanmaakt, kan de error optreden. De resource tree kan ook vreemd gaan doen (screenshot, dank aan flori9 hiervoor). Dit is simpelweg op te lossen door Game Maker of de computer opnieuw te starten. De gmk wordt hier niet corrupt van.
- Bij het veranderen van de schermresolutie kan de error ook voorkomen (al hoeft dat niet altijd), deze zijn als het goed is weg te klikken en dan kun je gewoon verder werken.



Succes met troubleshooten! Gemoedelijk
Als je nog andere errors tegenkomt, post maar! Graag even wat uitleg erbij geven als je het weet, anders vermeld hoe je de error kreeg en dan zoek ik het zelf even uit/op Knipoog

-Luc

« Laatste verandering: 13 Oktober 2012, 20:56:19 door lucb1e »

Naar boven Gelogd

Maartenz
Gebruiker


Offline Offline

Berichten: 3421

Ponies


« Antwoord #3 Gepost op: 6 Januari 2011, 22:01:25 »

Ik weet niet hoeveel topics hiervan nu zijn dus ik hoop dat ik in de goede post.
Ik heb de error al gevonden:
Division by 0.
Je zegt door iets te delen door 0.
Ik was aan het proberen zonder examples een topdown besturing te maken.
Daarvoor had ik dit:
GML:
   x += keyboard_check(vk_left)/keyboard_check(vk_right)*2
Ik weet nu dat ik / moet vervangen door or.
Hier kreeg ik ook dit:

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

Error in code at line 3:
   x += keyboard_check(vk_left)/keyboard_check(vk_right)*2
                                ^
at position 31: Division by 0.
Wat deel ik nu door 0?

Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4530


WWW
« Antwoord #4 Gepost op: 6 Januari 2011, 22:03:41 »

keyboard_check geeft true of false terug. Maar gamemaker kent geen échte booleans, true is gewoon een constante 1 en false is de constante 0. Als je dus vk_right niet indrukt returnt de functie false, ofwel 0, en zul je dus de Division by 0-error krijgen Knipoog

edit: ik scroll net terug naar boven, had echt zoiets van wat is dit voor gigantisch topic Emotieloos Grijns

« Laatste verandering: 6 Januari 2011, 22:05:14 door lucb1e »

Naar boven Gelogd

Treehouse Productions
Gebruiker

Offline Offline

Berichten: 56


WWW
« Antwoord #5 Gepost op: 6 April 2011, 15:37:14 »

Hallo,

Ik kreeg gisteren - toen ik mijn game opstartte via Game Maker - een nogal rare error die ik nog nooit eerder had gekregen: een Windows foutmelding met "Out of system resources". Het spel sloot af na het weg klikken van de melding, daarna drukte ik weer op runnen en was de foutmelding gelukkig weg. Voor degene die deze error in de toekomst misschien ook krijgen, moeten eerst proberen het spel gewoon opnieuw te starten(dat was wat ik dus deed). Als dat niet werkt Game Maker herstarten, mocht dat dan niet werken zal het herstarten van je computer wel helpen en anders moet je Game Maker even herinstalleren.

Bron...

Groeten,
Treehouse Productions


GML - Visual Basic .NET - Visual C++ - Java - PHP & MySQL - HTML & CSS - Javascript
Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4530


WWW
« Antwoord #6 Gepost op: 6 April 2011, 16:47:04 »

Bedankt voor het melden, ik voeg het dalijk toe Gemoedelijk


Naar boven Gelogd

Kevinskie555
Gebruiker

Offline Offline

Berichten: 17


« Antwoord #7 Gepost op: 14 April 2011, 20:41:50 »

Ik heb nog een andere oorzaak voor
''51: *De game sluit opeens af*''
Als je een al gedeleted object wilt deleten, sluit hij zomaar af.
Bijvoorbeeld:
In de ''On destroy'' event zet je de action ''Destroy object: Self"

Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4530


WWW
« Antwoord #8 Gepost op: 14 April 2011, 22:13:10 »

Ik heb nog een andere oorzaak voor
''51: *De game sluit opeens af*''
Als je een al gedeleted object wilt deleten, sluit hij zomaar af.
Bijvoorbeeld:
In de ''On destroy'' event zet je de action ''Destroy object: Self"
Staat erbij, bedankt! Gemoedelijk


Naar boven Gelogd

Kevinskie555
Gebruiker

Offline Offline

Berichten: 17


« Antwoord #9 Gepost op: 28 April 2011, 22:22:48 »

Ik heb er nog een voor de game sluit opeens af:
Code:
if variable = 1 or 2 then {actie hier}
De ''Or 2'' Klopt niet en daarom crasht hij, denk ik. Kan ook aan mij liggen, zou het even uittesten.


« Laatste verandering: 28 April 2011, 22:46:38 door Kevinskie555 »
Naar boven Gelogd

Treehouse Productions
Gebruiker

Offline Offline

Berichten: 56


WWW
« Antwoord #10 Gepost op: 28 April 2011, 22:26:11 »

Zo dacht ik in het begin eerst ook, maar eigenlijk moet het dit zijn:
GML:
if (variable == 1 or variable == 2)
{
  // acties
}



GML - Visual Basic .NET - Visual C++ - Java - PHP & MySQL - HTML & CSS - Javascript
Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4530


WWW
« Antwoord #11 Gepost op: 28 April 2011, 22:26:47 »

Hier kan ik het probleem niet reproduceren, ergens anders in de code moet een fout zitten.

« Laatste verandering: 28 April 2011, 23:56:56 door lucb1e »

Naar boven Gelogd

Kevinskie555
Gebruiker

Offline Offline

Berichten: 17


« Antwoord #12 Gepost op: 28 April 2011, 22:47:17 »

Hier kan ik het probleem niet reproduceren, ergens anders in de code moet een fout zitten.
Heb je de code geprobeerd?
Mmm ik denkt dat het toch aan mij ligt :$

Anyways, hier is nog een nieuwe error:
Code:
Error creating Stand-Alone: Cannot save the game file.
Dit krijg je als je een executable maakt en het bestand dat je wilt overschrijven in gebruik is.

@Treehouse Productions
Ja dat weet ik, ik laat alleen de error zien :]

« Laatste verandering: 28 April 2011, 22:51:23 door Kevinskie555 »
Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4530


WWW
« Antwoord #13 Gepost op: 28 April 2011, 22:48:17 »

Die heb ik inderdaad nog niet, bedankt! Gemoedelijk

Edit: staat erbij.

« Laatste verandering: 28 April 2011, 22:56:23 door lucb1e »

Naar boven Gelogd

Kevinskie555
Gebruiker

Offline Offline

Berichten: 17


« Antwoord #14 Gepost op: 28 April 2011, 22:54:56 »

Code:
randomnumber = irandom_range(1,15)
if randomnumber >= 1 and randomnumber <= 12 then instance_change(BestaandeInstance,true)
Dit gaf die error van toen straks dacht ik, maar als ik van die ''(1,15) ''  ''(0,15)'' werkt het opeens wel... raar hoor... (Opnieuw, misschien ligt het echt gewoon aan mij Grijns)

Edit:
Ok, ik heb een nieuwe game gemaakt, daar werkt die code wel gewoon goed...
Twijfelachtig

« Laatste verandering: 28 April 2011, 22:57:26 door Kevinskie555 »
Naar boven Gelogd

Advertenties
« vorige volgende »
Pagina's: [1] 2 3 4
Print


Topic Informatie
0 geregistreerde leden en 1 gast bekijken dit topic.

Ga naar:  

Powered by SMF 1.1.20 | SMF © 2006-2007, Simple Machines
www.game-maker.nl © 2003-2014 Nederlandse Game Maker Community