Maniac Mansion Mania Forum
MMM-Werkzeugkiste => Technik => Thema gestartet von: fireorange am 30. Mai 2023, 11:03:55
-
Ich hätte da mal eine Frage: Den folgenden Code hatte ich noch gespeichert... er ermöglichte es in einer früheren AGS-Version (könnte noch 2.7x gewesen sein?), ein Objekt per Skript durch ein anderes auszutauschen, wenn eine übersetzte Version vorliegt. Kurz und gut: Ich möchte den Titelschriftzug in der englischen Version austauschen.
if (IsTranslationAvailable()) {
string buffer;
GetTranslationName(buffer);
if (StrCaseComp(buffer, "English") == 0) {
SetObjectGraphic(0, 482);
}
}
Natürlich lehnt die von mir genutzte AGS-Version diesen Code ab. Meines Wissens nutze ich 3.5.0, wenn ich aus dem Kopf heraus jetzt nicht allzu falsch liege. Wie müsste dieser Code also in abgeänderter Form lauten? Eine Suche innerhalb der AGS-Hilfedatei hat mich leider bloß verwirrt, daraus konnte ich mir keine passende Lösung erschließen. Ich wäre euch also sehr dankbar, wenn ihr mir damit weiterhelfen könntet! :)
-
Probier mal folgendes:
if(IsTranslationAvailable() && Game.TranslationFilename=="English")
{
//TUE DINGE
}
-
Ich habe das mal ausprobiert und es hat tatsächlich funktioniert... jedenfalls nachdem ich herausgefunden hatte, dass ich diese Aktion nicht ins Before-Fadein-Skript schreiben sollte. ;D Vielen lieben Dank! :)
-
jedenfalls nachdem ich herausgefunden hatte, dass ich diese Aktion nicht ins Before-Fadein-Skript schreiben sollte.
Kannst Du das näher ausführen? Warum sollte das ein Problem sein, wenn man nur ein Objekt-Sprite ändert?
-
Hm... es dürfte wahrscheinlich daran gelegen haben, dass ich im "after-Fadein" noch ein Skript stehen hatte, durch das der Titel erst nach einer kurzen dramatischen Wartezeit sichtbar wird. Es war also doch etwas mehr Chaos vorhanden, das bedacht werden musste. ;)
-
Sollte trotzdem keinen Unterschied machen :cl
Hier ist jedenfalls noch die andere Methode, der Vollständigkeit halber:
String titleSprite = GetTranslation("60 (game title sprite slot)");
oTitle.Graphic = titleSprite.AsInt;
So kann man die Grafik einfach per Übersetzungsdatei austauschen und muss nicht Code für jede Sprache schreiben.
-
Vielen lieben Dank! Wird evtl. nochmal zur Anwendung kommen. :)