PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timer Prob..



IMCPalpatine
30.03.2004, 03:29
Sorry, ist mir ja echt peinlich,
aber was solls.
Ich wollte einen Timer als Common Event einbauen.
Das hab ich schon mal geschafft, aber
ich wollte, dass wenn der zB 30 Sekunden geht,
nach 20 Minuten eine Nachricht erscheint, und nach
10 nochmal und am Ende soll der Held einschlafen,
und der Countdown beginnt von neuem.
Ist irgendwie viel auf einmal,und ich schaff das nicht.

HyperRPG
30.03.2004, 03:55
Also, zuerst machst du bei "Timer Operations" Set Timer auf 30 Sekunden. Dann Timer Start. Dann machst du eine Fork die abfragt ob "Timer" below 0 ist. In dem Falle machst du eine Variable, nenn sie bsp. 30Sekunden und mache da + 1.
Unter der Fork machst du eine weitere die Abfragt ob die Variable 30Sekunden = 40 ist. In diese Fork machst du dann noch eine weitere die Abfragt ob der Switch "Erste Nachricht" off ist. Dann kommt die Nachricht die du verschicken willst und Change Switch "Erste Nachricht" auf on. Unter den beiden Forks noch eine letzte die abfragt ob 30Sekunden = 60 ist. In dieser Fork lässt du den Hero dann einschlafen.:)

IMCPalpatine
31.03.2004, 01:25
irgendwie klappt das nicht..
was mach ich nur falsch:
Hier,schau, so wies da steht:

Time.op. Create:30sec.
Timer op. Start(Soweit ja plausibel)
FORK opt:Timer 0.00 less
Variable CH[30sekunden] +1
<>
:END Case
FORK Opt.Variable CH[30sek]-40
FORK opt Switch(ErsteNachricht)OFF:
Messg: irgendwas..
Change Switch: [Erste Nachricht]-ON set
<>
:END Case
<>FORK Opt.Varb[30.sek]-60
Messg: So, jetzt sollte ich einschlafen
<>
:END Case
Wait: 30.0s.
<>

Es tut sich nichts..

Frägelschö
31.03.2004, 02:12
Es kann sich auch nichts tun, weil erst der Timer startet, dann abgefragt wird ob er 0 ist (was ja nicht sein kann, weil er gerade erst gestartet wurde), dann wird 30 Sekunden gewartet und dann startet der Timer neu.
Du musst einen Cycle oder Labels verwenden.
Mit Labels machst du das so:
Am Anfang machst du Label #1 und nach dem Einschlafen Go to Label #1.
Ausserdem machst du nach Timer op. Start Label #2 und am Ende das Wait weg (oder 0 Sekunden wait, damit es nicht ruckelt) und stattdessen Go to Label #2.
Übrigens kommen so die Nachrichten nach 20 bzw. 30 Minuten, was zwar in deinem ersten Post steht, aber vermutlich ein Versehen ist. Wenn du die Nachrichten nach 20 und 30 Sekunden willst, kannst du die Abfragen mit Variablen weglassen. Ingesamt sähe das dann so aus:
Label #1
Time.op. Create:30sec.
Timer op. Start
Label #2
FORK opt:Timer 0.10 less
FORK opt Switch(ErsteNachricht)OFF:
Messg: irgendwas..
Change Switch: [Erste Nachricht]-ON set
<>
:END Case
FORK opt:Timer 0.00 less
Messg: So, jetzt sollte ich einschlafen
Go to Label #1
<>
:END Case
Go to Label #2

HyperRPG
31.03.2004, 03:20
öhm...ja. mein fehler. Das Set timer würde ich auch noch in eine fork setzen und dann in der Fork nach Set timer nen switch aktivieren der die Fork disabelt. Dann in der Fork wo 30Sek. um +1 erhöht wird den switch wieder deaktivieren.

edit: und vielleicht ganz zum schluss den 30 Sekunden Wait wegmachen. :)

IMCPalpatine
31.03.2004, 19:38
*ächtz*
Na klar,
ich habs mir wieder total kopliziert gemacht!
Danke Echt für eure Hilfe!!

Achja,und noch was:
Wie kann ich ein Item oder so erstellen,dass den Timer auf null setzt?
(Und den natürlich von neuem so beginnen lässt, wie zuvor?

Frägelschö
31.03.2004, 23:26
Man hilft wo man kann:)

Du stellst die Classification des Items auf Switch. Dann machst du ein Common Event auf Auto Start mit Appearance Condition Switch, den Switch, den das Item aktiviert.
Im Common Event wird dann der Timer auf 0 gesetzt und der Switch wieder ausgestellt.
Das müsste funktionieren.

IMCPalpatine
01.04.2004, 02:10
Ne..irgendwie nicht
Hab ein Item mit Switch gekenntzeichnet, und den Swich TimmerNull genannt.
Dann hab ich ein Common Event erstellt, was als Startvorraussetzung Timernull hat, und das den Timer löscht und das Timer Event callt.
Danach wird der Timer Nüll auf aus gestellt.
Der Harken:
Es klappt nur einmal..wieso?o.O

Mephisto
01.04.2004, 02:21
du darfst das andere event nicht callen. das ist ja ein pp und der läuft in ner schleife. und der switch wird ja erst auf off gestellt, nachdem das event mit der timer operation fertig ist... und das ist NIE. ich vermute halt mal, das das das problem ist. du darfst das event nicht callen. du musst einfach den timer löschen, einen neuen einstellen und dann den switch auf off. dann muss es gehen ^_^

HyperRPG
01.04.2004, 02:54
Nunja...es geht ja auch ohne Timer. Dann wäre das Common Event auch nicht so kompliziert (>_<):

Also erst einmal PP und als Start Condition irgendeinen Switch (z.B. Zeit).
Dann:

<>Wait 30.0 sec.
<>Ch. Var. ([0001]30Sek)- +1
<>If Var. ([0001]30Sek) = 40 then
<> Msg. "Ne nachricht."
<>else
<>if Var. ([0001]30Sek) = 60 then
<> Msg. "Einschlafen!!!"
<> end case
<> end case

Ja, das wars dann schon. (Manchmal macht man sichs komplizierter als es sein muss. Und zum Item:

Switch-Item das einen Switch aktiviert.

Dann ein neues Common Event mit Startbedingung diesen Switch (.
Und in dem CE:

<>Ch. Switch "Zeit" = OFF
<>Ch. Var. ([0001]30Sek) Set = 0
<>Ch. Switch "TimerNull"= OFF

Ja, das wars dann auch schon. So müsste es gehen! ;)

IMCPalpatine
01.04.2004, 03:32
....Hüüüüüllllllllfffffffüüüüü
...
>_< >_< >_< >_< >_<

Wer kam eigentlich auf diese beknackte Idee??
Oh,war ich das?
Verdammt^^..:D