Warning: ob_start(): function 'compress_handler' not found or invalid function name in /www/htdocs/xfmantis/core.php on line 18
0002429: Fehlermeldung in medit.exe macht Spielsatz unspielbar - Mantis
Mantis - X-Force Tools
Viewing Issue Advanced Details
2429 Skripteditor major always 30.07.10 15:58 18.08.10 08:43
BlackBetty  
 
normal  
new V0.915b04  
open  
none    
none  
0002429: Fehlermeldung in medit.exe macht Spielsatz unspielbar
Fehlermeldungen: http://i588.photobucket.com/albums/ss328/StinkyNoodle/error.png [^]
im Spielsatz Apocalypse 0.5.6 (download: http://www.mediafire.com/?946dfzdljj0qswg [^] )

Was ich gemacht habe, diese ganzen Fehlermeldungen zu bekommen:
Im Skript Editor: Siehe Unit WI001Func Zeile 33 - 36.

Folgende Zeilen

  repeat
  t1:=random( getarraylength (wiCompanies[company][item_type]) );
  Item:=storage_api_getItembyID(wiCompanies[company][item_type][t1]);
  until (item.Visible)

verursachen den Fehler "Zugriffsverletzung bei adresse 00404668 in Modul 'medit.exe'. Lesen von Adresse 00000000". Die Fehlermeldung kommt beim Testen (F9) und ebenfalls manchmal zufällig beim klicken auf eine beliebige Stelle im Fenster des Editors, oder maximieren und minimieren des Editors.
Bei erneuten Klick auf den "Start" button zum Testen tauchen folgende Fehlermeldungen auf:

Unitname 'WI001Func' doesn't match to filename "
Duplicate identifier "WI000Misc_GetRandomItem"

...Obwohl der Name der Unit mit dem Dateinamen übereinstimmt, und WI000Misc_GetRandomItem tatsächlich nur einmal im Script vorhanden ist.

Der Spielsatz ist dann aufgrund der vielen Fehlermeldungen (die unerklärlicherweise dort auftauchen, wie man im screenshot sehen kann) unspielbar. Wenn ich die betroffenen Zeilen deaktiviere, ist alles wieder in Ordnung.
Im Beispiel ist wiCompanies[company][item_type][t1] ist mehrdimensionaler Array definiert, wobei company die Gesellschaft ist, item_type die Verfügbaren item typen, die die Gesellschaft anbietet, und t1 ist der index für die jeweilige Item.ID. Entweder liegt der Fehler an meiner Programmierung, oder getarraylength() kann nicht auf einen 4 Dimensionalen Array zugreifen. Entweder das, oder es gibt ein Problem mit repeat until. Was allerdings komisch ist, da dieses Konstrukt an anderer Stelle in meinem Spielsatz einwandfrei funktioniert.

Notes
(0004467)
BlackBetty   
30.07.10 16:12   
Was ich noch vergessen habe, erst wenn ich die betroffenen Zeilen deaktiviere, speichere, und den Editor neu starte, dann erst verschwinden die Fehlermeldungen wieder. D.h. Wenn ich den Fehler so ein mal verursache, dann die Zeilen deaktiviere, bleibt das Problem bis zum Neustart bestehen.
(0004468)
DirkF   
30.07.10 16:21   
Der interne Name der Unit, der Objektname im Spielsatzeditor und der aufgerufene Name müssen übereinstimmen, sind die alle drei identisch?
Weil das ist die Fehlermeldung, die hat erstmal nichts mit den Zeilen zu tun.

Du kriegst wahrscheinlich die korrekte Fehlermeldung, wenn Du erstmal alle Warnungen beseitigst, die in medit auftauchen...