Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tag - Nacht - Wechsel Problem



Deevo
05.11.2007, 17:46
Hallo Community!

Wie mein Thementitel schon zeigt, habe ich ein Problem mit meienm Tag-Nacht-Wechsel.

So ungefähr müsst ihr euch den Code in den Common Events vorstellen:

If switch IMHAUS OFF
If Variable UHRZEIT = 0
Tint Screen 10,10,10,40
wait 60 sek
Variable Uhrzeit + 1

If Variable UHRZEIT = 1
Tint Screen 15,15,15,40
wait 60 sek
Variable Uhrzeit + 1

usw.

Mein Problem:

Wenn ich rasten gehe und die Variable Uhrzeit um 3 erhöhe, verändert sich
im Spiel nicht die Helligkeit/Dunkelheit.

Woran liegt das? Habe ich einen Fehle im Code?
Oder liegt das an dem Wait?

Hoffe ihr könnt mir weiter helfen.

Mordechaj
05.11.2007, 18:06
Ich hätte zuvor 2 Fragen =)

1. Meinst du mit rasten die Übernachtung des Charas in einem Gasthaus, in welchem du womöglich den Switch "IMHAUS" auf ON setzt?
2. Könnte es sein, dass du statt dem = ein > ("größer als") benutzt?

Also bei Beantwortung der Frage 1 mit "ja" würde ich schonmal meinen, dass das Event sich dort garnicht auslösen kann, weil die Bedingung ja nicht erfüllt ist =).
Zweiteres mit einem Nicken abgesegnet deutet darauf hin, dass sich hier mehrere seperate Abläufe überschneiden, wobei ich mich dann doch nicht so gut auskenne, was die Prioritäten angeht. Mir war zumindest so, als würde der Maker sich grundsätzlich nach der hintersten aktivierten Kondition richten, wobei das aber nur für Events mit einzelnen Seiten gelten könnte.

Solltest du die einzelnen Abläufe in solchen Abständen ohne jegliche Waits zwischendrin aufgestellt haben, so solltest du mal probieren, zwischen jede neue Kondition ein Wait von 0.0sec oder auch länger zu setzen. Es kann soweit mir das bekannt ist beim Maker zu gewissen Schwierigkeiten kommen, wenn er zu viele Dinge gleichzeitig überprüfen muss, bzw. wenn das Event immer wieder neustartet, ohne, dass ein Wait verhindert, dass sich der Ablauf überlagert (sprich das Event startet sich bildlich gesehen jede Milisekunde neu und das Programm kommt nich nach, das ganze abzuspielen und sperrt das Event auf diese Weise).

Ich hoffe, das war einigermaßen verständlich. Versuch einfach mal zwischen jede If-Condition ein 0.0sec-Wait zu setzen und schau, was dabei rauskommt ... ist aber denke ich eine Laienlösung >_>

Deevo
05.11.2007, 18:13
1. ich raste im freien ohne den switch zu aktivieren.
2. nein equal also gleich

Hab ich auch schonma versucht mit den waits, mag aber irgendwie nicht ^^

Deevo
07.11.2007, 15:49
kann mir denn hier keiner weiter helfen?

Nemica
07.11.2007, 18:23
Das mit den Waits ist afaik nur beim Autostart.

Vielleicht solltest du mal versuchen, den Schalter IMHAUS einzuschalten, die Variable zu ändern und dann den Schalter wieder auszuschalten.

Deevo
07.11.2007, 20:06
habe ich auch schon versucht, funktioniert auch nicht oO

The_Burrito
08.11.2007, 08:58
Es könnte daran liegen, dass sich dein Code noch in einem 60 Sekunden Wait befindet wenn du deine Variable erhöhst, und er den Wait dadurch natürlich nicht abbricht.

Probier mal deinen Code auf folgende Weise umzuschreiben:


If switch IMHAUS OFF
Variable SekundenZähler + 1
wait 1 sekunde
If Variable SekundenZähler >= 60
Variable Uhrzeit + 1
Variable SekundenZähler = 0
Endif

If Variable UHRZEIT = 0
Tint Screen 10,10,10,40
Endif

If Variable UHRZEIT = 1
Tint Screen 15,15,15,40
Endif
....
Endif


Dadurch sollte dein Event schneller auf Änderungen des Zeitwertes reagieren.
Du musst dann beim Rasten einfach den Uhrzeitwert um 3 erhöhen und den Sekundenzähler auf 0 zurücksetzen (sonst kann es passieren, dass er wenige Sekunden später gleich wieder einen Zeitsprung macht).
Noch schneller reagiert dein Event natürlich wenn du die Waits auf 0.1 Sekunde setzt (und dafür dann den Wert auf >= 600 überprüfst), die Frage ist nur ob das zu Performanceproblemen führen kann wenn du alle Zehntelsekunden den Screentone änderst. Da musst du dann ein wenig experimentieren.

Deevo
08.11.2007, 12:31
Hey danke!
Super idee. werd ich gleich ma nach der arbeit ausprobieren.