Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Thema gestartet von: fireorange am 30. Mai 2023, 11:03:55

Titel: Titelschriftzug (Objekt) in englischer Version austauschen
Beitrag 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! :)
Titel: Re: Titelschriftzug (Objekt) in englischer Version austauschen
Beitrag von: Cmdr am 30. Mai 2023, 19:58:09
Probier mal folgendes:

if(IsTranslationAvailable() && Game.TranslationFilename=="English")
  {
    //TUE DINGE
  }
Titel: Re: Titelschriftzug (Objekt) in englischer Version austauschen
Beitrag von: fireorange am 05. Juni 2023, 13:14:13
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! :)
Titel: Re: Titelschriftzug (Objekt) in englischer Version austauschen
Beitrag von: KhrisMUC am 05. Juni 2023, 16:27:20
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?
Titel: Re: Titelschriftzug (Objekt) in englischer Version austauschen
Beitrag von: fireorange am 06. Juni 2023, 20:37:55
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. ;)
Titel: Re: Titelschriftzug (Objekt) in englischer Version austauschen
Beitrag von: KhrisMUC am 06. Juni 2023, 22:11:29
Sollte trotzdem keinen Unterschied machen :cl

Hier ist jedenfalls noch die andere Methode, der Vollständigkeit halber:

Code: (c) [Auswählen]
  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.
Titel: Re: Titelschriftzug (Objekt) in englischer Version austauschen
Beitrag von: fireorange am 09. Juni 2023, 13:41:56
Vielen lieben Dank! Wird evtl. nochmal zur Anwendung kommen.  :)