Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Thema gestartet von: Kiwa am 11. Oktober 2017, 21:56:52

Titel: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will [GELÖST]
Beitrag von: Kiwa am 11. Oktober 2017, 21:56:52
Hallo zusammen,

es ist mal wieder soweit, AGS will mich ärgern. Ich wollte nun voller Tatendrang an meinen alten Projekten weiterarbeiten welche alle mit AGS 3.2.1 unter WindowsXP erstellt wurden. Nun habe ich einen neuen PC mit Win10 und habe mir das aktuelle AGS 3.4 mit Patch4 installiert.

Zum testen der neuen AGS Version habe ich erst einmal ein altes Spiel von mir geladen, "EdsPaket" (ist eine MMMMM-Epi).

Wenn man es öffnen will sagt mir AGS auch das es mit einer älteren Version erstellt wurde und lädt dann alle Ressourcen ohne Probleme. Wenn man es dann im AGS Editor starten will, kommt (wenn man "Build EXE" anklickt) folgende Meldung:

(https://abload.de/img/screenshotxfsrx.jpg)

Ich hab dann etwas rumexperimentiert und die Zeile einfach ausgeschaltet (mit // als Kommentar stehenlassen), worauf eine neue Fehlermeldung erschien:

(https://abload.de/img/screenshot2gssba.jpg)

In Zeile 6 dieser Datei steht die Funktion "FaceDirection" mit den 2 Parametern "this Character*" und "eDirection dir". Wenn ich nun auch diese ganze Funktion ausschalte (mit /* am Anfang und */ am Ende der Funktion), dann wird die EXE erstellt und man kann das Spiel starten.

Problem:
Der Character steht (blickt) oft falsch zum Objekt, schaut also in die falsche Richtung, aber das Spiel läuft. Bevor ich jetzt noch weiter in den Tiefen des Quellcodes rumfurwerke (und es am Ende nicht rückgängig machen kann), frag ich lieber mal nach. Weiß von euch jemand Rat?

EDIT: Ich habe das MansionSP Version 1.5 benutzt (bevor es überarbeitet wurde, falls dem schon so ist), das noch als Hinweis.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 11. Oktober 2017, 22:20:24
Fakt: Du hast meinen Post über die Probleme mit AGS 3.4 von vor 2,5 Jahren (!) nicht durchgelesen, obwohl ich dichvor ein paar Monaten explizit darauf hingewiesen habe.

FaceDirection war ein für MMM feschruebener Befehl, seit AGS 3.4 gibt es aber standartdmässig als internen Befehl. Weil AGS das überladen von Funktionennicht erlaubt, erzeugt unsere Definition nun eine Fehelermeldung. Die ist Lösung ist, wie du ganz reccht bemerkt hast, das Löschen der FaceDirection-Definition. Das danach Probleme mit der Blickrichtung auftreten, liegt daran das AGS zwar die gleiche Schreibweise für den Funktionsnamen verwendet, nicht aber für die Parameter. Statt beispielsweise eDirDown wird eDirectionDown verwendet. Du kannst nun also entweder überall die Parameter ändern, oder die Defininionen ändern. Bsp: #define eDirDown eDirectionDown Die alten Definitionen müssen natürlich geloscht werden.

Srry für den unvollständigen Post gerade. Irgendwie scheint mein Telefon den Post abzuschicken, wenn ich ein Scharfes schreiben will.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cmdr am 11. Oktober 2017, 22:22:24
Dein Problem besteht darin, dass AGS 3.4 jetzt eine eigene Facedirection implementiert hat und sich diese mit der alten MMM-Implementierung in der playerextends beißt.

Um das zu lösen gibt es 2 Möglichkeiten :
- Du löschst die playerextends.asc. Das ist das sauberste, macht aber unter Umständen viel Arbeit, da du alle deine Scripte auf das neue Umstellen musst.
- Du ersetzt die Zahlen in der playerextends.asc durch die Bezeichnung der jeweiligen neuen AGS -Facedirection.
Also z.b.
eDirFaceUp = eDirectionFaceup.

Hoffe du kannst damit schon was anfangen, ist schon zu spät für genauere Erklärungen.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 11. Oktober 2017, 22:24:12
Fakt: Du hast meinen Post über die Probleme mit AGS 3.4 von vor 2,5 Jahren (!) nicht durchgelesen, obwohl ich dichvor ein paar Monaten explizit darauf hingewiesen habe.

Das ich etwas derartiges um die Ohren bekomme habe ich schon befürchtet, wollte jetzt aber auch nicht den gesamten alten Dialog durchlesen.
Ich bitte um Gnade.

FaceDirection war ein für MMM feschruebener Befehl, seit AGS 3.4 gibt es aber standartdmä

Dieser Satz, sofern es einer ist oder sein soll, ergibt für mich keinen inhaltlichen Sinn. Was meinst du damit?

EDIT
@Cmdr
Danke für den Hinweis, das ist schon mal ein nützlicher Hinweis. Ich habe die playerextends.asc komplett gelöscht (Header und Script) dann kommt die Meldung:
Mansion.ash(7): Error (line 7): PE03: Parse error at 'eDirection'

Die zweite Lösung werde ich testen sobald ich die playerextends.asc wieder hergestellt habe, ist ja nun gelöscht. Ich werde das Projekt nochmal von einem alten Rechner kopieren, dann müsste die Datei ja wieder da sein.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 11. Oktober 2017, 22:50:51
Sorry für den Doppelpost aber geht gerade nicht anders.

@Cmdr:
Die erste Fehlermeldung bezieht sich auf eine Codezeile in der ash Datei. Du sagst aber ich soll die asc Datei löschen. Mir ist das gerade erst aufgefallen das du nur von der asc Datei gesprochen hast, ich hatte beide Dateien gelöscht.

Um Missverständnisse zu vermeiden, die ash ist die Headedatei und die asc das Script, ist das richtig. Im neuen AGS wird die Dateiendung nicht angegeben sondern nur von Header und Script gesprochen.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 11. Oktober 2017, 23:10:43
Zitat
Das ich etwas derartiges um die Ohren bekomme habe ich schon befürchtet, wollte jetzt aber auch nicht den gesamten alten Dialog durchlesen.
Denn soetwas wie die Suchfunktion gibt es ja nicht. Ich habe vor 2 Jahren eine genaue Auflistung aller Probleme gemacht, samt Lösungansatz UND IMPLEMENTATION. Sorry, aber das es mich aufregt, dass es praktisch niemanden interessiert hat (obwohl es jeden etwas angeht) und jetzt genau die Person nach einer Lösung fragt, die man noch zuvor in einer langen Diskussion auf den Post mit der Lösung hingewiesen hat, dass sollte glaube ich nachvollziehbar sein.

Zitat
Dieser Satz, sofern es einer ist oder sein soll, ergibt für mich keinen inhaltlichen Sinn. Was meinst du damit?
Post zu früh abgeschickt.

Zitat
Mansion.ash(7): Error (line 7): PE03: Parse error at 'eDirection'
eDirection war ein Enum, der in der playerExtends definiert war. Da das Script gelöscht wurde, sieht AGS also nur noch einen undefinierten Datentyp. Stelle entweder die playerExtends wiederher oder, die schlauerer Methode, ersetze eDirection überall durch den neuen AGS-eigenen Datentyp CharacterDirection.

Zitat
Um Missverständnisse zu vermeiden, die ash ist die Headedatei und die asc das Script, ist das richtig. Im neuen AGS wird die Dateiendung nicht angegeben sondern nur von Header und Script gesprochen.
Bitte sag mir nicht, dass du die Dateien im Dateimanager gelöscht hast...
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 11. Oktober 2017, 23:33:53
@ConeArex
Das es dich stört das damals niemand auf deine Posts (und auf deine Arbeit) reagiert hat kann ich nachvollziehen. Ich fand es auch blöd das niemand auf mein NES-SP reagiert hat, aber man kann sowas eben nicht erzwingen. Deswegen bitte ich dich jetzt das alte Thema beiseite zu legen, es nützt niemanden wenn wir noch lange darauf rumreiten.

Zitat
ersetze eDirection überall durch den neuen AGS-eigenen Datentyp CharacterDirection

Nur wo ist "überall"? Wenn ich nun hunderte Einträge bearbeiten soll dann ist das Projekt für mich gestorben bzw. müsste auf eine alte AGS Version zurück greifen. Ich kann den arbeitsaufwand von deiner Lösung nicht abschätzen.

Zu deiner Frage:
Zitat
Bitte sag mir nicht, dass du die Dateien im Dateimanager gelöscht hast...

Ich habe die Dateien mit einem Rechtsklick und dann DELETE gelöscht, und zwar genau hier:
(https://abload.de/img/screenshot3u3shz.jpg)

Wo soll ich den sonst löschen? Direkt im Verzeichnis? Ich denke der AGS Editor ist zum bearbeiten der Dateien da, oder nicht?
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 12. Oktober 2017, 00:24:33
Zitat
Das es dich stört das damals niemand auf deine Posts (und auf deine Arbeit) reagiert hat kann ich nachvollziehen.
Eine Sache will ich dazu noch loswerden, dann können wir es von mir aus ruhen lassen: Was mich aufregt, ist nicht direkt das niemand auf meine Arbeit reagiert. Wäre es irgendeine Episode oder ein neues SP, wäre es mir egal. Das bis heute niemand auf das angefange Razor-Starterpack eingegangen ist, habe ich nie lamentiert. Was mich aufregt, ist das es allgemeines Problem war, das früher oder später hätte angegangen werden müssen. Es war nicht einmal ein bloßes Feststellen des Problems, sondern bereits fertig gelöst und implentiert. Jahre bevor das Problem überhaupt akut wurde (AGS 3.4 war 2 Jahre lang in Alpha- und Beta-Phase), damit bei Erscheinen direkt alles gelöst ist. Man respektiert sogar das Verhalten vieler User, die grundlos an veralteten Befehlen festhalten und stellt die Änderungen zur Diskussion, anstatt das Erzwingen neuer Befehle rigoros durchzuboxen. Damit eben nicht hinterher Beschwerden kommen, das die SPs an den Usern vorbei entwickelt werden. Aber es hat niemanden bis auf einen interessiert. Als es dann notwendig war, die SPs upzudaten habe ich einfach entschieden es so zu machen, wie es für richtig hielt. Gegenstimmen gab es keine und wie wir alle wissen: Enthaltung heißt Zustimmung. Und was ist anschließend passiert? Genau das was ich befürchtet hatte. Es gab Beschwerden darüber. Obwohl genug Zeit war, seine Meinung kundzutun. Das mich das zur Weißglut treibt, sollte verständlich sein.

Zitat
Nur wo ist "überall"?

"Überall" heißt natürlich "überall wo das Wort steht".
Zitat
Wenn ich nun hunderte Einträge bearbeiten soll dann ist das Projekt für mich gestorben bzw. müsste auf eine alte AGS Version zurück greifen. Ich kann den arbeitsaufwand von deiner Lösung nicht abschätzen.
Du sollst die natürlich nicht von Hand ändern, sondern automatisch über die Volltextsuche.

Zitat
Wo soll ich den sonst löschen? Direkt im Verzeichnis?
Nein, eben nicht. Deine Frage, ob du die Header-Datei auch löschen sollst, hatte das aber vermuten lassen. Als da es in AGS gar nicht möglich ist, nur Header- oder Source-File zu löschen.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 12. Oktober 2017, 01:03:01
Ok, habe es zur Kenntnis genommen. Damit ist das alte Thema erledigt.

Zitat
Du sollst die natürlich nicht von Hand ändern, sondern automatisch über die Volltextsuche.

Danke für den Tipp. Da ich die Suchfunktion in AGS noch nie benutzt habe poste ich mal hier einen Screenshot um sicher zu gehen das ich das richtige benutze (im AGS Editor unter "Edit" -> "Replace All...") Anmerkung: es gibt auch eine "Replace" Funktion aber die würde wohl nur einmal die Übersetzung durchführen, oder sehe ich das falsch? Hier ein Screenshot von "Replace All..."

(https://abload.de/img/screenshot4wgs2w.jpg)

Bei "Look in" muss ich aber "Current Projekt" angeben, oder? Das habe ich gerade noch bemerkt.

Und natürlich noch die alte Funktion, wie schon beschrieben, deaktivieren. Das müsste dann so passen, oder? Ich will nur auf Nummer sicher gehen.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 12. Oktober 2017, 01:38:32
 :o
Es gibt eine Replace all-Funktion? For fucks sake, AGS! Warum kannst du die nicht WIE ALLE ANDEREN PROGRAMME UNTER STRG+H SETZEN?

Zitat
Bei "Look in" muss ich aber "Current Projekt" angeben, oder?
Ja. Currect Document ersetzt dann nur im aktuell geöffeneten Script (z.B. Room02 oder GlobalScript).

Zitat
Das müsste dann so passen, oder?
Wenn du dich auch schon dem Problem mit den Türen angenommen hast, ja.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 12. Oktober 2017, 12:15:11
AGS sagt mir das er 600 Treffer hatte.

Dann kommt aber folgender Fehler und ich denke nicht das dieser was mit den Türen zu tun hat:

(https://abload.de/img/screenshot58pszl.jpg)

Ich habe das mit playerextends Datei (die FaceDirection-Funktion war nur deaktiviert) ausprobiert und habe es dann nochmal ausprobiert mit gelöschter playerextends Datei. Beide male das gleiche Ergebnis. Am Quellcode selber habe ich NIX geändert.

Zitat
Es gibt eine Replace all-Funktion? For fucks sake, AGS! Warum kannst du die nicht WIE ALLE ANDEREN PROGRAMME UNTER STRG+H SETZEN?

Kannst du mir das bitte so erklären das man es versteht? Ist das nun ironie oder was, so hilft mir das nichts. Was hat die Funktion mit der Tastenkombination zu tun mit der sie aufgerufen wird? AGS sagt mir auch nichts von Strg + H sondern Strg + Umschalt + E. Aber es ist die selbe Funktion. Ich verstehe den Sinn deines Posts nicht. Und versuche bitte durchgängig deutsch zu sprechen, es ist zwar toll das du der englischen Sprache mächtig bist, aber das hilft mir nichts. Und diese Beiträge sollen ja auch für ALLE da sein.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cmdr am 12. Oktober 2017, 13:37:17
AGS sagt mir das er 600 Treffer hatte.

Dann kommt aber folgender Fehler und ich denke nicht das dieser was mit den Türen zu tun hat:

(https://abload.de/img/screenshot58pszl.jpg)

Ich habe das mit playerextends Datei (die FaceDirection-Funktion war nur deaktiviert) ausprobiert und habe es dann nochmal ausprobiert mit gelöschter playerextends Datei. Beide male das gleiche Ergebnis. Am Quellcode selber habe ich NIX geändert.

Du hast die Funktion also einmal gelöscht und einmal deaktiviert und beides Mal wird sie nicht gefunden?

Ich denke du kannst dir deine Antwort selbst geben ;)

Cones Aussage verstehe ich auch nicht ganz. Entweder ist es Sarkasmus (wovon ich ausgehe)  oder er regt sich darüber auf, dass die Funktion nicht über eine übliche Tastenkombination aufgerufen werden kann. Beides trägt somit nicht zum Thema bei...
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 12. Oktober 2017, 14:52:40
@Cmdr

Das ich die Funktion lösche bzw. ausschalten soll/muss habe ich so den vorhergehenden Posts entnommen. Zudem ist es nach meinem Verständnis so das diese Funktion nun AGS selber mitbringt und somit diese Funktion aus dem SP nicht mehr gebraucht wird. So hab ich das verstanden.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cmdr am 12. Oktober 2017, 14:54:34
Das ist auch so, nur hat die AGS-Funktion eine andere Bezeichnung. Also solltest du diese nun auch überall ändern.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 12. Oktober 2017, 15:00:15
Das ist auch so, nur hat die AGS-Funktion eine andere Bezeichnung. Also solltest du diese nun auch überall ändern.

Wenn du mir jetzt noch genau sagst wie die alte und wie die neue heist so das man es direkt in die Maske vom AGS Editor eingeben kann dann wäre ich dir sehr dankbar.

Da noch ein Problem mit den Türen anstehen soll fürchte ich das es nie aufhört. Wenn nun erstmal tagelang kompatibilitäts Probleme behoben werden müssen dann neige ich eher dazu bei einer älteren AGS Version zu bleiben (mit alten SPs).

Aber gut, noch versuche ich es mit dem aktuellen AGS.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 12. Oktober 2017, 15:11:39
Zitat
AGS sagt mir auch nichts von Strg + H sondern Strg + Umschalt + E.
Exakt. Das ist der Fehler. AGS legt die Funktion auf irgendwelche zufällig gewählte Tastenkombination, anstelle von dem korrekten Strg+H, so das sie kein Schwein findet und gezwungen ist, die einzelne Replace-Funktion zu verwenden.

Zitat
Und versuche bitte durchgängig deutsch zu sprechen, es ist zwar toll das du der englischen Sprache mächtig bist, aber das hilft mir nichts.
Das ich da nur geflucht habe, sollte auch für jemanden ohne Englisch-Kenntnisse ersichtllich sein.

Aber jetzt zu deinem Fehler:
AGS hat jede Instanz von eDirection durch CharacterDirection ersetzt, auch FaceDirection. Für die zukunft lässt sich vermeiden, in dem man nach " eDirection" (mit Leerzeichen vorne dran) sucht durch " CharacterDirection" (auch mit Leerzeichen) ersetzen lässt. Übrig gebliebene Instanzen von eDirection ändert man dann manuell. (Sollten weniger als 4 sein und können gefunden werden, in dem man das Spiel testweise kompiliert.)

Zitat
Da noch ein Problem mit den Türen anstehen soll fürchte ich das es nie aufhört.
Das Problem mit den Türen sind <= 10 Zeilen Quellcode.

Zitat
Wenn nun erstmal tagelang kompatibilitäts Probleme behoben werden müssen dann neige ich eher dazu bei einer älteren AGS Version zu bleiben (mit alten SPs).
Wenn man weiß, was behoben werden muss und es richtig macht, ist das pro Projekt in unter 10 Minuten erledigt.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cmdr am 12. Oktober 2017, 15:32:52
Das ist auch so, nur hat die AGS-Funktion eine andere Bezeichnung. Also solltest du diese nun auch überall ändern.

Wenn du mir jetzt noch genau sagst wie die alte und wie die neue heist so das man es direkt in die Maske vom AGS Editor eingeben kann...

Das weiß ich nicht auswendig, kannst du aber über die Autovervollständigung finden.
Gebe z.b ein "cDave." und such dir die Funktion aus der Liste. Wenn keine Liste kommt probier mal Strg+Leertaste.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 12. Oktober 2017, 22:45:30
Zitat
Das ist der Fehler. AGS legt die Funktion auf irgendwelche zufällig gewählte Tastenkombination, anstelle von dem korrekten Strg+H, so das sie kein Schwein findet und gezwungen ist, die einzelne Replace-Funktion zu verwenden.

Wieso Fehler? Weil AGS die Tastenkombination nicht so belegt wie du es haben willst? Jetzt sag mir bitte nicht das du die zig hundert Änderungen in den SPs einzeln geändert hast?

Ich habe nun die eDirection, die EnterRoom und die 4 Richtungsangaben (z.B. eDirDown zu eDirectionDown usw.) entsprechend abgeändert.
Wenn man nun die EXE erstellen will kommt die Meldung:

Flashlight.asc(189): Error (line 189): undefined symbol 'eEventChangeRoomBeforeFadein'

Also habe ich kurzerhand die Zeile Code im Flashlight Script ausgeschaltet, dann geht es aber so weiter mit dieser Meldung:

GlobalScript.asc(2470): Error (line 2470): undefined symbol 'eEventChangeRoomBeforeFadein'

Da bisweilen von einer solchen Funktion nicht die Rede war, hier nochmal die Frage wie es weiter geht? Gehört das schon zum Türenproblem oder ist das was anderes? Wenn ConeArex schon all das gefixt hat dann wäre es vielleicht hilfreich wenn hier mal jemand den Link dazu postet. Sicher auch gut für alle anderen die das selbe Problem (früher oder später) haben werden.
Konnte durch die Suchfunktion im Forum es nicht finden.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 12. Oktober 2017, 23:31:39
Zitat
Weil AGS die Tastenkombination nicht so belegt wie du es haben willst?
Nicht wie ICH es haben will, sondern wie es betriebsystemübergreifend STANDARD ist.

Zitat
Jetzt sag mir bitte nicht das du die zig hundert Änderungen in den SPs einzeln geändert hast?
Doch. Durch genervtes durchklicken.

Zitat
Wenn man nun die EXE erstellen will kommt die Meldung:...
Dieser Fehler ist mir nicht bekannt. Als ich das Mansion-SP upgedatet habe, ist etwas derartiges nicht aufgetreten.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 12. Oktober 2017, 23:42:51
Sorry für den Doppelpost, aber sonst geht die Änderung unter.

Der Fehler wurde erneut durch die ReplaceAll-Funktion verursacht. "eEventChangeRoomBeforeFadein" muss eigentlich eEventEnterRoomBeforeFadein" heißen.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 13. Oktober 2017, 00:04:10
Zitat
Jetzt sag mir bitte nicht das du die zig hundert Änderungen in den SPs einzeln geändert hast?
Doch. Durch genervtes durchklicken.

Jetzt verstehe ich langsam warum du so genervt bist. Das muss STUNDEN gedauert haben sich durch ALLE SPs durchzuklicken. Wenn ich überlege das (AGS zeigt immer die Anzahl der Treffer an) es sich alleine bei dem einen SP schon um ca. 1000 Treffer handelte (was ich bis jetzt so grob in Summe in Erinnerung habe) dann muss einem dabei doch irgendwann der Finger abfallen beim durchklicken.
Oh Cone, jetzt tust du mir schon (fast) ein wenig leid, aber mal bei einer neuen Version auf die Einträge der Menüleiste zu klicken um zu schauen was sich da so verändert hat ist aber auch nicht unüblich. Tja, jetzt hast du auch mal einen Bock geschossen, sowas passiert.

Zitat
Der Fehler wurde erneut durch die ReplaceAll-Funktion verursacht. "eEventChangeRoomBeforeFadein" muss eigentlich eEventEnterRoomBeforeFadein" heißen.

Danke für den Hinweis. Das ist natürlich ein Nachteil dieser Funktion. AGS erkennt den String "EnterRoom" und ändert diesen dann auch wenn dieser innerhalb anderer Zeichenketten vorkommt. Ärgerlich. Schreib doch mal einen Hinweis an das AGS Team das man solche Probleme umgehen kann, für Groß/Kleinschreibung gibt es schließlich auch eine Einstellung bei der Such- und Ersetzfunktion. Warum du dennen schreiben sollst und nicht ich? Weil dein englisch besser ist als meins.

Nur nochmal der Vollständigkeit halber:
1. Die Datei playerExtends in AGS komplett löschen
2. Dann die Funktionsnamen von eDirection, eDirUp usw, und EnterRoom auf die neuen ändern
3. Türproblem beheben (von dem ich noch nicht weiß wie das Problem aussieht und wie es behoben wird).

Richtig so oder fehlt noch was? Nochmal die Bitte den Link zum Update hier posten, das vergrößert die Chanche das auch andere es finden.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 13. Oktober 2017, 00:44:34
Zitat
Das muss STUNDEN gedauert haben sich durch ALLE SPs durchzuklicken.
Nö. Ein paar Minuten für alles. Was aber an der repetitiven Arbeit, die sich bei mir in physischen Beschwerden äußert, nichts ändert.

Zitat
aber mal bei einer neuen Version auf die Einträge der Menüleiste zu klicken um zu schauen was sich da so verändert hat ist aber auch nicht unüblich.
Ich lese die Changelogs, um heraus zu finden was es neues gibt. Und da wurde es nie aufgeführt. Strg+H geht nicht und die Suchfunktion hat zusätzlich eine Replace-Funktion (was auch nicht standardkonform ist). Also habe ich angenommen, dass die Replace-All-Funktion einfach nicht implementiert ist. Würde zu AGS passen.
BTW: Die Menüleiste beachte ich gar nicht mehr, als ich sie nur selten brauche (Build EXE und Make Template). Die Zeiten der Menüleiste ist ohnehin schon lange vorbei.

Zitat
Das ist natürlich ein Nachteil dieser Funktion.
Das lässt sich umgehen, in dem man nicht nach "EnterRoom" sondern nach ".EnterRoom" suchen lässt.

Zitat
Schreib doch mal einen Hinweis an das AGS Team das man solche Probleme umgehen kann
Das ist kein Bug, sondern genauso vorgesehen.

Zitat
Nur nochmal der Vollständigkeit halber: [...]
Im Prinzip ja. Es fehlt noch ProcessClick, aber das ist vernachlässigbar. Außerdem sind in machen SPs (und vermutlich noch viel Episoden) noch veraltete Befehle aus 2.62-Zeiten vorhanden, wie die alten Formen von FaceDirection und EnterRoom die von der Suche wegen der anderen Syntax nicht gefunden werden. Aber das sollten so wenige sein, das sie von Hand entsorgt werden können. (Und wenn nicht, einfach die Suche ändern.)

Zitat
3. Türproblem beheben (von dem ich noch nicht weiß wie das Problem aussieht und wie es behoben wird).
Für jede Tür sind nur zwei Richtungen angegeben, obwohl vier benötigt werden. Z.B. die Haustür der Bernoullis: Angegeben sind nur eDirLeft (Spieler schaut vom Flur auf die Tür) und eDirUp (Spieler schaut von draußen auf die Tür). Wenn man aber durch die Tür durchgeht, schaut der Spieler aber nach eDirRight (wenn von der Haustür in den Flur gegangen wurde) und eDirDown (vom Flur nach draußen gegangen). Diese beiden Richtungen wurden aber nicht explizit angegeben. Stattdessen werden die angegebenen Richtungen irgendwie "umgedreht".
Das ganze hat mit dem selbstdefinierten eDirection funktioniert (weil es ja dafür geschrieben wurde), mit dem AGS-internen Datentyp CharacterDirection funktioniert das nicht mehr. (Hier sei anzumerken, dass das keine Fehlermeldung erzeugt. Das Spiel kompiliert widerstandslos. Stattdessen führt es zum fehlerhaften Verhalten, dass der Spieler in die falsche Richtung schaut.) Ich habe nicht herausgefunden, wie das "Umdrehen" der Richtungen funktioniert. Ich verstehe die beiden Zeilen einfach nicht.
Mein schmutziger Lösungsansatz dafür war, eine Funktion zu schreiben die eine Richtung entgegen nimmt und die entgegengesetzte Richtung zurück gibt. Im Türen-Skript werden dann die Variablen mit der Rückgabe-Wert der Funktion befüllt.
Ein Beispiel dafür ist hier im Mansion-SP: https://raw.githubusercontent.com/ManiacMansionMania/Mansion-SP/master/GlobalScript.asc
Nach "reverseDirection" suchen, die Funktion kopieren und die Variablen l_Direction und l_NewDirection damit füttern. Und die alten Zeilen auskommentieren. (Einfach drei mal nach reverseDirection suchen und anschließend nach "// I have no idea what these lines are supposed to do.")
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 13. Oktober 2017, 01:32:01
Danke für die Hinweise.

Was die zwei Zeilen angeht,

//l_Direction       = (l_Direction+2)%4;
//l_NewDirection    = (l_NewDirection+2)%4;

so gehe ich mal davon aus du diese deaktiviert hast. Falls diese schon ausgeschaltet waren dann ist das wohl nur ein Rest aus einer alten Vorversion des Scriptes.
l_direction und l_NewDirection ist wohl ein Integer, den sonst könnte man damit nicht rechnen und die Funktion ClickSpecial gibt auch einen Zahlenwert (int) zurück. Der % Operator ist der Rest-Operator in AGS, so steht es hier:
http://www.adventuregamestudio.co.uk/wiki/Script_language_keywords

Sowas benutzt man oft wenn man Zahlen auf gerade oder ungerade prüfen will, wobei man dann eher durch 2 teilt. Mmh, mysteriös diese Zeilen  :cl
Man müsste genau wissen wie das mit der Blickrichtung funktioniert, wahrscheinlich werden die 4 Blickrichtungen durch Zahlenwerte dargestellt.
Aber wenn ich das richtig verstehe funktioniert das Spiel auch ohne die 2 Zeilen, bzw. es ist egal ob diese Zeilen an oder aus sind, es funktioniert in beiden Fällen nicht!?
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 13. Oktober 2017, 01:51:08
Erstmal heißt nicht "deaktiviert" sondern "auskommentiert".
Ich weiß selbstverständlich das es Integer sind und was der Rest-Operator ist.

Zitat
wahrscheinlich werden die 4 Blickrichtungen durch Zahlenwerte dargestellt.
Ja, werden sie. Siehe die Definiton im playerExtends: https://github.com/ManiacMansionMania/Mansion-SP/blob/05c6ab2f6f431f152815c3400d424c52b5bdcb87/playerExtends.ash

Zitat
Aber wenn ich das richtig verstehe funktioniert das Spiel auch ohne die 2 Zeilen
, bzw. es ist egal ob diese Zeilen an oder aus sind, es funktioniert in beiden Fällen nicht!?[/quote]
Ja, tut es. Weil die Variablen schon Werte haben. Es sind aber halt nicht die Richtigen ergo der Spieler schaut in die falsche Richtung.

Zitat
bzw. es ist egal ob diese Zeilen an oder aus sind, es funktioniert in beiden Fällen nicht!?
Mit dem neuem Datentyp (CharacterDirection) funktioniert es in beiden Fällen nicht.

EDIT: Ich habe das ganze nochmal untersucht. Ich verstehe jetzt, wie die Richtungen errechnet werden (ich hatte einen Denkfehler drin). Allerdings funktioniert es dennoch nicht mit dem neuen Datentyp. Obwohl (!) die Zahlenwerte die gleichen sind.

EDIT²: Ich habe mich vertan. Die Zahlenwerte sind nicht die gleichen. Das ist das Problem.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 13. Oktober 2017, 02:22:58


Ich hab die Gleichung bzw. Zuweisung (den eine Gleichung ist es nicht) l_Direction = (l_Direction+2)%4 mal für die 4 Fälle durchgerechnet:

(0 + 2) / 4 = Rest 0 

(1 + 2) / 4 = Rest 0

(2 + 2) / 4 = Rest 0

(3 + 2) / 4 = Rest 1

Der Rest-Operator gibt immer nur den Rest zurück der bei einer Division übrigbleibt, wenn der Zähler kleiner gleich dem Nenner ist müsste also der Rest Null sein. Oder?

Man kann also mit der Zeile Code jeweils prüfen ob der Spieler nach rechts schaut, denn dann ist Rest = 1, nach dieser Definition:

#define DIR_UP    0 
#define DIR_LEFT  1
#define DIR_DOWN  2 
#define DIR_RIGHT 3

Wozu sollte man das brauchen? Es bleibt rätselhaft  :cl
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 13. Oktober 2017, 02:35:32
Zitat
wenn der Zähler kleiner gleich dem Nenner ist müsste also der Rest Null sein. Oder?
Eben nicht. Das war mein Denkfehler. Ist der Divident kleiner als der Divisor gibt der modulo den Dividenten zurück. Nicht 0. (Für mich als Informatiker ist so ein Fauxpas oberpeinlich.)

Entsprechend:
(0 + 2) %4 = 2

(1 + 2) %4 = 3

(2 + 2) % 4 = 0

(3 + 2) %4 = 1

Die Zahlenwerte von CharacterDirection sind:
Down: 0
Left: 1
Right: 2
Up: 3

Jetzt finde jemand eine mathematische Abhängigkeit.

Zitat
#define DIR_UP    0
#define DIR_LEFT  1
#define DIR_DOWN  2
#define DIR_RIGHT 3
Den Kram kannst du ignorieren. Das ist Legacy-Code aus 2.62-Zeiten.

Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 13. Oktober 2017, 02:55:47

Entsprechend:
(0 + 2) %4 = 2

(1 + 2) %4 = 3

(2 + 2) % 4 = 0

(3 + 2) %4 = 1

Die Zahlenwerte von CharacterDirection sind:
Down: 0
Left: 1
Right: 2
Up: 3

Jetzt finde jemand eine mathematische Abhängigkeit.

Ich geh das mal in gedanken durch, vielleicht kommen wir dann auf die Lösung:
1. Der Spieler dreht sich von 0 (Down, blick uns an) nach 2 (rechts) -> Spieler dreht sich nach links
2. Spieler dreht sich von 1 Left nach 3 Up (Blickt von uns weg) -> Spieler dreht sich nach rechts
3. von 2 (rechts) nach 0 Down -> Spieler dreht sich nach rechts
4. von 3 (Up) nach 1 Left -> Spieler dreht sich nach rechts links

Der Spieler kann sich also mittels dieser Zuweisung 3 mal nach rechts und einmal nach links drehen, oder hab ich jetzt einen Drehwurm?
Schlauer werd ich daraus auch nicht aber vielleicht fängt das irgendeinen Sonderfall ab, zu erkennen ist das nur einmal eine Linksdrehung vorkommt. Oder hab ich mich mal vertan?


EDIT: Ich hatte einen Fehler, er dreht sich zweimal nach rechts und zweimal nach links.

EDIT2: Jetzt komm ich gerade ganz durcheinander, je nachdem aus welcher Perspektive man das sieht. Aus der Sicht des Menschen der vor dem PC sitzt oder aus Sicht der Spielfigur im Spiel. Down müsste doch heißen, Spieler schaut uns an und Up Spieler schaut von uns weg, also zum Objekt z.B. tür. Hab schon länger nix in AGS gescriptet.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cmdr am 13. Oktober 2017, 07:09:20
Interessante Diskussion, die ihr hier mitten in der Nacht führt. :D
Aber wo liegt das Problem?
Es wird einfach der Zahlenwert der Direction genommen, +2 gerechnet und modulo 4 genommen, um im 4er Zahlenbereich zu bleiben. Das Ergebnis ist bei der definierten Reihenfolge der Richtungen immer die umgekehrte Richtung.

AGS definiert die Reihenfolge dagegen so, wie sie auch in den Views verwendet wird, deshalb geht diese schicke Richtung nicht mehr auf.
Ich habe mir deshalb eine Funktion geschrieben, die einfach ganz stumpf die momentane Richtung abfragt und durch die Gegenrichtung ersetzt. Diese Lösung ist zwar nicht so schön elegant wie die alte, aber die funktioniert.

CharacterDirection invertDir(CharacterDirection dir)
{
  if(dir==eDirectionDown)
  {
    return eDirectionUp;
  }
  else if(dir==eDirectionUp)
  {
    return eDirectionDown;
  }
  else if(dir==eDirectionLeft)
  {
    return eDirectionRight;
  }
  else if(dir==eDirectionRight)
  {
    return eDirectionLeft;
  }
  else return eDirectionDown;
}

Der Aufruf der Funktion kommt dann an die Stelle der alten Rechnungen und ist:
Zitat
l_Direction       = invertDir(l_Direction);
l_NewDirection    = invertDir(l_NewDirection);

Edit: Ich verwende noch die alten MMM-Directions, die ich wie oben beschrieben umgebogen habe. Habe die Codezeilen hier auf die neuen AGS-Funktionen umgeändert. Da ich das jetzt nicht überprüfen kann, gebe ich keine Garantie auf korrekte Syntax.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kaktus am 13. Oktober 2017, 09:07:48
//l_Direction       = -(l_Direction-3)%4;
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cmdr am 13. Oktober 2017, 10:42:42
//l_Direction       = -(l_Direction-3)%4;

Genial!  Danke!
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 13. Oktober 2017, 12:38:59
Interessante Diskussion, die ihr hier mitten in der Nacht führt. :D

Danke :D  Ich konnte nicht schlafen bzw. war noch munter und ein bißchen "fachsimpeln" macht doch immer Spaß.

Zitat
Es wird einfach der Zahlenwert der Direction genommen, +2 gerechnet und modulo 4 genommen, um im 4er Zahlenbereich zu bleiben.

Aber danke das du das Geheimnis nun gelüftet hast. Das die Zahlenwerte immer zwischen 0 und 3 liegen müssen hätte man doch auch durch eine if-Abfragen lösen können, oder? Wäre einfacher und verständlicher gewesen. Es wird wohl seinen Grund geben warum der Autor das so gemacht hat.

@Kaktus
Macht diese Zeile l_Direction = -(l_Direction-3)%4; nun genau das gleiche wie der ganze Code von Cmdr? Will jetzt nicht schon wieder jedes Szenario durchgehen  ::) :-[
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cmdr am 13. Oktober 2017, 13:22:58
@Kiwa: Ja, im Prinzip tut sie das.
Einfach die alten Rechnungen, die ihr hier so ausführlich disktutiert habt, durch Kaktus Version ersetzen. Dann klappt das Türenscript auch mit den neuen Directions.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 13. Oktober 2017, 15:04:48
Danke, es funktioniert  :D :D :D

So, da wohl auch andere damit eventuell Probleme haben könnten hier nochmal eine ausführliche Zusammenfassung(wurde so beim Mansion SP Version 1.5 angewendet):

1. Datei playerExtends in AGS komplett löschen
2. Mit der "Replace All" Funktion in AGS folgendes ersetzen:

ALT: eDirection -> NEU: CharacterDirection
ALT: .EnterRoom -> NEU: .ChangeRoom
ALT: eDirUp -> NEU: eDirectionUp => für die anderen Richtungen entsprechend das selbe durchführen
HINWEIS: Das "FacCharacterDirectionIfEdison" und "FacCharacterDirectionIfNotEdison" hatten vorher auch andere Bezeichnungen(weiß gerade nicht mehr genau wie die hießen), diese durch die hier gezeigten ersetzen. Das passiert durch die Replace All Funktion.

Nach jeder Aktion solltet ihr alles abspeichern und einmal "Build EXE" anklicken (oder F5 drücken) und dann den angezeigten Fehler bearbeiten, so hab ich es geamcht und es hat funktioniert. Bei mir ist es vorgekommen das AGS (bei vielen Treffern) schon mal abgestürzt ist, deshalb nach jeder Aktion alles abspeichern.

Jetzt noch im GlobalScript die folgenden 2 Zeilen löschen (am besten nach l_Direction suchen)
l_Direction = (l_Direction+2)%4;
l_NewDirection  = (l_NewDirection+2)%4;

und durch diese ersetzen:

l_Direction = -(l_Direction-3)%4;
l_NewDirection = -(l_NewDirection-3)%4;

DIE ANWENDUNG ERFOLGT NATÜRLICH AUF EIGENE GEFAHR ! ! !

Ich hoffe das hier ist eine kleine Hilfe. Vielleicht wäre es sinnvoll wenn man das ganze in einem eigenen Thread plaziert der dann alle updates behandelt und der dann geschlossen wird. Sonst findet man das hier irgendwann nicht mehr wieder wenn hier noch weitere Leute was posten.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cmdr am 13. Oktober 2017, 15:32:14
Super Zusammenfassung. Damit das andere leichter finden können, könntest du die Anleitung auch nochmal im Wiki eintragen.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 13. Oktober 2017, 16:58:53
Zitat
Aber wo liegt das Problem? Es wird einfach der Zahlenwert der Direction genommen, +2 gerechnet und modulo 4 genommen, um im 4er Zahlenbereich zu bleiben.
Es gab kein Problem mehr. Wie ich schon schrieb:
Zitat
Das war mein Denkfehler. Ist der Divident kleiner als der Divisor gibt der modulo den Dividenten zurück. Nicht 0.

Zitat
Ich habe mir deshalb eine Funktion geschrieben, die einfach ganz stumpf die momentane Richtung abfragt und durch die Gegenrichtung ersetzt. Diese Lösung ist zwar nicht so schön elegant wie die alte, aber die funktioniert.
Exakt die gleiche Funktion befindet sich schon lange in den SPs.

Zitat
ALT: eDirection -> NEU: eFaceDirection
Falsch. eDirection -> CharacterDirection. (In beiden Fällen mit Leerzeichen vorne dran suchen, damit FaceDirection nicht überschrieben wird.)

Zitat
Das "FacCharacterDirectionIfEdison" und "FacCharacterDirectionIfNotEdison" hatten vorher auch andere Bezeichnungen(weiß gerade nicht mehr genau wie die hießen), diese durch die hier gezeigten ersetzen
Nein.

Zitat
Nach jeder Aktion solltet ihr einmal "Build EXE" anklicken und dann den angezeigten Fehler bearbeiten, so hab ich es geamcht und es hat funktioniert.
Run (F5) reicht aus.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kiwa am 13. Oktober 2017, 22:34:20
Super Zusammenfassung. Damit das andere leichter finden können, könntest du die Anleitung auch nochmal im Wiki eintragen.

Danke. Wenn ich mich irgendwann mal an mein Wiki Passwort erinnere kann ich das machen. Es darf aber auch gerne jeder andere dort posten.

@ConeArex
Wenn man bei eDirection mit einem Leerzeichen sucht kann es passieren das es nicht gefunden wird wenn das Wort direkt hinter einem Komme steht oder direkt am linken Rand. Ich weiß nicht ob es IMMER garantiert ist das ein Leerzeichen vor dem Wort steht.
So muss man dann eben (ich glaub es waren 3) Einträge mit FacCharacterDirectionIfEdison und FacCharacterDirectionIfNotEdison ändern.
Am Ende ist es geschmackssache was besser ist.

EDIT: Ich habe es mit der Suchfunktion nochmal ausprobiert und dann wird es nicht gefunden wenn kein Leerzeichen vorne dran ist(wenn man mit führendem Leerzeichen sucht). Es kann sein das die Replace All Funktion da anderes arbeitet, das habe ich nicht extra getestet.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: KhrisMUC am 16. Oktober 2017, 09:51:41
//l_Direction       = -(l_Direction-3)%4;

Das sieht natürlich schick aus, aber bei Werten von 0-3 ist das nix anderes als

  l_Direction          = 3 - l_Direction;
Oder?
Vielleicht auch ein bisschen leichter zu sehen, dass mit dieser "Formel" zwei Zahlen ineinander umgerechnet werden, deren Summe 3 ist, also 0 <-> 3 bzw. 1 <-> 2.
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Kaktus am 16. Oktober 2017, 13:07:18
Stimmt, das ist natürlich die einfachste und beste Variante ;D
Titel: Re: Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will
Beitrag von: Cone Arex am 18. Oktober 2017, 07:48:33
Zitat
Wenn man bei eDirection mit einem Leerzeichen sucht kann es passieren das es nicht gefunden wird wenn das Wort direkt hinter einem Komme steht oder direkt am linken Rand.
Das ist klar.

Zitat
Ich weiß nicht ob es IMMER garantiert ist das ein Leerzeichen vor dem Wort steht.
Nein, ist es nicht. Man wird Instanzen manuell ändern müssen.

Zitat
So muss man dann eben (ich glaub es waren 3) Einträge mit FacCharacterDirectionIfEdison und FacCharacterDirectionIfNotEdison ändern.
Nein. Wenn man nach eDirecton ohne Leerzeichen sucht, werden alle Instanzen von FaceDirection geändert, nicht nur drei Stück.