Hauptmenü

Neuigkeiten:

Bitte unterstützt uns und bestellt über diese Links bei Amazon  oder HumbleBumble!

Fehlermeldungen wenn man AGS 3.2.1 Spiele mit AGS 3.4 starten will [GELÖST]

Begonnen von Kiwa, 11. Oktober 2017, 21:56:52

Vorheriges Thema - Nächstes Thema

Kiwa

Zitat von: Cmdr in 13. Oktober 2017, 07:09:20
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ß.

ZitatEs 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  ::) :-[
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

Cmdr

@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.

Kiwa

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.
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

Cmdr

Super Zusammenfassung. Damit das andere leichter finden können, könntest du die Anleitung auch nochmal im Wiki eintragen.

Cone Arex

ZitatAber 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:
ZitatDas war mein Denkfehler. Ist der Divident kleiner als der Divisor gibt der modulo den Dividenten zurück. Nicht 0.

ZitatIch 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.

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

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

ZitatNach 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.


Folge mir auf X und itch.io

Kiwa

Zitat von: Cmdr in 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.

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.
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

KhrisMUC

Zitat von: Kaktus in 13. Oktober 2017, 09:07:48

//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.

Kaktus

Stimmt, das ist natürlich die einfachste und beste Variante ;D

Cone Arex

ZitatWenn 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.

ZitatIch 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.

ZitatSo 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.


Folge mir auf X und itch.io