Autor Thema: Stärke der Abdunkelung beim Taschenlampenscript  (Gelesen 6094 mal)

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Stärke der Abdunkelung beim Taschenlampenscript
« am: 07. Januar 2014, 18:50:44 »
Hallo Zusammen,

weiß jemand wie man die Grad der Abdunkelung beim benutzen des Taschenlampenscrips verändern kann. Man geht in einen Raum und der ist dunkel. Nun ist es eben so das die Abdunkelung (wenn man das Taschenlampenscript/Flashlight benutzt) sehr stark ist.

Wie kann man die Stärke der Abdunkelung regulieren? Mit Flashlight.Transparency = 0 oder 50 oder 100 geht es nicht.

Danke für alle nützlichen Hinweise.
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.

rulaman

  • Moderator
  • Teenie Tentakel
  • *****
  • Beiträge: 354
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #1 am: 07. Januar 2014, 21:06:32 »
Bei der 3er-Version der Villa, habe ich ein Bild verwendet, das in der Mitte transparent ist, alles andere außen herum ist schwarz. Ansonsten müsste ich auch probieren.
Baden ist die einzige Möglichkeit, den Dreck der Füße an den Hals zu bekommen.

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #2 am: 07. Januar 2014, 23:05:10 »
Ich benutze AGS 3.2.1, also die 3er-Version von AGS, falls du das meinst.

Aber was du danach schreibst verstehe ich nicht ganz. Es geht hier NICHT um den Lichtkreis, sondern darum wie dunkel der ganze Raum generell ist. Ich finde es etwas zu dunkel und will es etwas heller machen so das man auch bei Dunkelheit etwas mehr erkennt. Der Lichtkreis der Taschenlampe spielt hier überhaupt keine Rolle.

Wenn es irgendeine Funktion gibt mit der die Dunkelheit in jedem Raum individuell angepasst werden kann, wäre das genau das wonach ich suche.
Beispiel: flashlight.setDarkness(50); -> soll heißen 50% Dunkelheit, Raum also halb dunkel

Ich habe schon einige Funktionen von Flashlight ausprobiert, doch ich habe es nicht hinbekommen die Dunkelheit zu ändern. Was mich an der Stelle interessiert ist wie die Dunkelheit generell erzeugt wird? Sollte es mit einem Bild gemacht worden sein, müsste man dieses austauschen, und das auch zur Laufzeit wenn in unterschiedlichen Räumen es unterschiedlich dunkel sein soll. Dafür bräuchte man dann auch eine Funktion.
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

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #3 am: 07. Januar 2014, 23:08:38 »
Wenn dieses Bild auf einem GUI ist, muss man nur die Transparenz des GUIs verändern...

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #4 am: 08. Januar 2014, 00:32:34 »
Wenn dieses Bild auf einem GUI ist, muss man nur die Transparenz des GUIs verändern...

Was genau meinst du mit "Wenn dieses Bild auf einem GUI ist"? Und wo/wie kann ich prüfen ob es so ist?
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

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #5 am: 11. Januar 2014, 20:45:00 »
Du könntest z.B. in der Liste der GUIs nach einem namens "gFlashlight" suchen.
Ich bin gerade zu faul, selber nachzuschauen.

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #6 am: 12. Januar 2014, 14:18:21 »
Danke für den Tipp aber danach habe ich auch schon gesucht. Es wird mir aber nur der Lichtkreis angezeigt. Im folgenden ein Screenshot vom AGS Editor mit geöffnetem Menüpunkt GUI und gFlashliegt:

http://www.uploadarea.de/files/u31b3lcc3gy9er552pw2fykq3.png

Da der Screensoht etwas groß ist habe ich den unwichtigen Teil (in dem nix angezeigt wird) rausgeschnitten. Wie man sieht ist ein dunkles Bild nicht zu finden. Wie genau wird den die Dunkelheit im Raum erzeugt? Wird dort überhaupt mit einem dunkel-tranzparentem Bild gearbeitet? Ich vermute fast das es irgendwie anders funktioniert. Vielleicht werden die Farbwerte mathematisch so verändert das alles dunkel erscheint aber die Konturen vom Raum und Objekten noch zu erkennen sind. Nur so eine Vermutung von mir. Wenn dem so sein sollte, müsste es dafür eine Funktion oder Methode geben die ich dann abändern müsste. Oder ich schreibe selber eine neue Funktion(im Flashlight Script) mit der die Veränderungen durchgeführt werden.

An der Stelle noch gleich eine Frage: Was ist der Unterschied zwischen

- gFlashlight
- v_Flashlight und
- Flashlight ?

Dazu finde ich weder im Flashlight.asc noch im Flashlight.ash Script etwas. Außer das Flashlight im asc Script exportiert und im ash Script importiert wird.
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.

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #7 am: 12. Januar 2014, 20:15:23 »
Sorry für den Doppelpost aber mir ist gerade was wichtiges eingefallen:

Die Abdunkelung in den Räumen kann eigentlich garnicht mit einem dunkel-transparentem Bild gemacht werden. Grund für diese Überlegung ist die Tatsache das man es mit dem Flashlight in jedem Raum dunkel machen kann, egal wie groß bzw. lang er ist. Beispiel:

Der Raum in der Villa mit den Drähten (Dachboden) ist sehr klein und der Kellerraum groß. Wenn nun beides mit einem Bild abgedunkelt werden soll müsste man unterschiedlich große (passende) Bilder haben. Da man aber Räume ganz unterschiedlicher Größe erstellen kann (und der Entwickler vom Flashlight Script die Größen auch vorher nicht alle kennen konnte) muss es wohl anders gemacht worden sein.

Oder es wurde ein extrem langes dunkeles Bild benutzt. So lang das der Entwickler davon ausgehen konnte das es keine längeren Räume geben wird. Das ist möglich weil in AGS Objekte auch über den Grafikrand hinaus geschoben werden können. Mmh :cl das klingt allerdings schon recht komisch, es so zu machen. Wahrscheinlicher ist dann doch die mathematische Methode. Dann sollte es aber auch einfacher sein den Farbwert der Dunkelheit zu ändern.
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

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #8 am: 12. Januar 2014, 22:56:37 »
Du denkst zu kompliziert :)
Es reicht, den kompletten Bildschirm abzudunkeln. Der Rest des Raums ist nicht abgedunkelt, aber auch nicht zu sehen.

Ein kurzer Blick in Flashlight.ash, und die Antwort war sofort gefunden:

[ags]  Flashlight.Transparency = 60;[/ags]

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #9 am: 13. Januar 2014, 00:18:44 »
Du hast nicht richtig aufgepasst. :P
Wie in meinem Anfangspost schon beschrieben funktioniert es so nicht. An der Stelle zitiere ich mich mal selbst:

...
Wie kann man die Stärke der Abdunkelung regulieren? Mit Flashlight.Transparency = 0 oder 50 oder 100 geht es nicht.
...

Und mit einem Wert von 60 geht es auch nicht den keiner der Werte zeigt irgendeine Veränderung. In der room_Load() Funktion des Raumes steht bezüglich Flashlight folgendes:

gFlashlight.Visible = true;
v_Flashlight(false);
//Flashlight.Enabled = true; -> ob diese Zeile drin steht oder nicht macht keinen Unterschied(auch nicht bei false), deshalb auskommentiert
Flashlight.Transparency = 60; // -> das bewirkt nichts, leider

Ich habe schon verschiedene Kombinationen der einzelnen Zeilen ausprobiert (also Parameter geändert(true vs. false) oder Zeile ganz weggelassen) doch das gewünschte Ergebnis trat nicht auf.
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

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #10 am: 13. Januar 2014, 12:19:56 »
Stimmt, aber ich lese nicht jedesmal wieder den kompletten Thread durch... ::)

Bei mir steht:
[ags]  Flashlight.Transparency = 30;
  Flashlight.Enabled = true;[/ags]

Ergebnis:


Mit 60:


Machst Du ein 8-bit Spiel? Denn da geht Transparenz nicht.

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #11 am: 13. Januar 2014, 12:50:21 »
Machst Du ein 8-bit Spiel? Denn da geht Transparenz nicht.

Nein, bei den General Settings steht ganz oben bei Coluor depth 32-bit (true colour)  Oder meinst du was anderes?

Ich habe es so ausprobiert wie du es auch gemacht hast. Das Ergebnis ist seltsam. Wenn ich es so in einem Raum der Villa mache, dann geht es. Wobei die Verdunkelung erst eine Sekunde nachdem man den Raum betreten hat, aktiv wird. Und ja, ich habe den Code in die room_Load() Funktion kopiert.

Jetzt kommt das schlimmere Problem:
Wenn ich es genauso in einem neuen Raum mache(den ich selber angelegt habe), passiert nix. Und ich meine überhauptnix, es gibt dann garkeine Verdunkelung mehr.

*total ratlos sein*
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.

MalleTheRedPhoenix

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1239
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #12 am: 13. Januar 2014, 13:00:44 »
Ich habe es so ausprobiert wie du es auch gemacht hast. Das Ergebnis ist seltsam. Wenn ich es so in einem Raum der Villa mache, dann geht es. Wobei die Verdunkelung erst eine Sekunde nachdem man den Raum betreten hat, aktiv wird. Und ja, ich habe den Code in die room_Load() Funktion kopiert.

Ich will mich ja nicht einmischen, aber was ist, wenn Du KhrisMUCs Skript bei "Before_Enter_Room" hinzufügst? Das müsste doch das Problem beheben, dass die Verdunkelung erst später auftritt, oder? (Bin mir aber nicht so sicher...) :cl
« Letzte Änderung: 13. Januar 2014, 13:02:14 von MalleTheRedPhoenix »
Wie Phönix aus der Asche

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #13 am: 13. Januar 2014, 13:37:26 »
Ich will mich ja nicht einmischen, aber was ist, wenn Du KhrisMUCs Skript bei "Before_Enter_Room" hinzufügst? Das müsste doch das Problem beheben, dass die Verdunkelung erst später auftritt, oder? (Bin mir aber nicht so sicher...) :cl

Natürlich darfst du dich einmischen. Je mehr Leute an der Sache arbeiten um so eher ist es gelöst.  ;)

Zu deiner Idee: "Before_Enter_Room" ist die room-load Funktion. Es gibt aber noch eine weitere Funktion, nämlich "first time enters room", aber damit besteht das Pronlem der Verzögerung auch noch.

Die Sache ist das es im neuen Raum garnicht klappt. Deshalb habe ich immer geschrieben das es mit "Flashlight.Transparency = ..." nicht klappen würde. Aber damit geht es, allerdings nur in Räumen die schon im SP drin sind, NICHT bei neuen Räumen. Das habe ich dadurch rausgefunden das ich es einfach mal in einem "alten" Raum ausprobiert habe, und da geht es (wenn auch mit 1 Sek. Verzögerung). Ich habe vor einiger Zeit schonmal mit dem Flashlight herumexperimentiert, aber nur in "alten" Räumen. KhrisMUC's Bilder waren auch in einem alten Raum (vor der Villa), so habe ich es auch in einem alten Raum ausprobiert.

Das Problem hat sich nun dahingehend verändert das es nicht in neuen Räumen klappt. Entweder dort ist so dunkel wie immer oder garnicht.
« Letzte Änderung: 13. Januar 2014, 13:39:14 von Kiwa »
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

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Stärke der Abdunkelung beim Taschenlampenscript
« Antwort #14 am: 13. Januar 2014, 14:20:00 »
Ich habs mal ausprobiert und einen neuen Raum angelegt, Raum 44. Hintergrundbild war ein PNG mit 16bit Farbtiefe.

Dann habe ich in den General settings die room transition auf FadeIn/FadeOut gestellt (Crossfade war eingestellt).

Zuletzt habe ich das before fadein event verlinkt und Folgendes eingetragen:
[ags]function room_Load()
{
  Flashlight.Transparency = 40;
  Flashlight.Enabled = true;
  Wait(1);
}[/ags]

Alles funktioniert einwandfrei, und dank des Wait(1); ist der Raum bereits während des Hereinblendens abgedunkelt.
Grafiktreiber macht auch keinen Unterschied.