PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tag-Nacht wecksel (Map übergreifend)



Tingles
16.09.2012, 22:29
so, da ich jetzt Zufallsberechnung drauf habe kommt die Nächste frage,
wie kann ich ein Tag-Nacht wecksel einbauen, der auch Mapübergreifend funktioniert.

Einfach gedacht würd ich sagen:

Timer 5 min, wenn abgelaufen TAB Tag AUS, TAB Nacht AN
TAB Nacht an gibt den befehl Timer 5 Min, danach den TAB Nacht AUS TAB Tag AN
der TAB Tag an macht das ganze von vorne.

Frage 1: geht das so?
Frage 2: kann ich einstellen das bei TAB Tag An,wenn der Timer auf 3min steht das ein anderer TAB an geht, zb. Bauer bestellt das Feld. Und wenn er Timner auf 4 min steht das er wieder iwo sitzt?
Frage 3: Wie geht das Mapübergreifend, also das der Timer auch weiterläuft wenn ich die Map A verlasse und Map B betrete?
Frage 4: Wie geht es besser?

Danke schonmal =)

Brei
16.09.2012, 22:50
ob das so geht? probiers doch aus :D
müsste eig, halte ich aber nicht für elegant.

wenn du was mapübergreifendes willst nimm dir commen events (parallel procress).
im simpelsten fall sieht das hin etwa so aus:
wait(100);
toggle switch "tag";

das sollte auch helfen:
http://www.youtube.com/watch?v=e7LXxm-D6tw

Tingles
17.09.2012, 00:11
das hat mir geholfen, aber ich muss noch gucken ob es auch mit 2k läuft.


edit: Ist es möglich das ein event auch läuft wenn man nicht auf der map ist?
also: es ist 18 uhr
der typ der die Lichter anmacht geht von laterne zu latern und zündet sie an. Macht er das auch wenn ich nicht auf der map bin und dann wieder hingehe, ist er dann an seiner startposition oder halt soweit wie er sein sollte?

Wenn es iwi geht, bitte genau erklären, danke

Tingles
17.09.2012, 14:31
neue frage, siehe "edit" beim letzten post

Brei
17.09.2012, 14:40
Macht er das auch wenn ich nicht auf der map bin und dann wieder hingehe, ist er dann an seiner startposition oder halt soweit wie er sein sollte?

Probiers aus.

Wird aber nicht der Fall sein. Du musst ihn dann schon bei betreten der Map (Tageszeitabhängig) an die Stelle setzen, an der er sein soll.

Oder du lebst damit, dass er sich ebend nicht auf halbem Weg befinden kann, wenn der Spieler auf die Map kommt. Ich würd es so machen, dass er entweder noch nicht Losgelaufen ist (spieler ist 17:59 da) oder schon da (spieler kommt 18:00 auf die Map). Die Chance dass der Spieler GENAU in diesem winzigen Laufweg auf die Map kommt ist imo vernachlässigbar gering (und selbst wenn er den Punkt mal erwischt, wird sich wohl keiner über den fehlenden realismus Grad beschweren.)

Tingles
17.09.2012, 15:31
ja, ich hab schon ne möglichkeit gefunden, ich werde mein uhrsystem von 24 einheiten auf 72 erweitern, sprich: 0 uhr, 0:20 uhr, 0:40, 1 uhr usw. Dann frag ich beim betreten der map ab wie spät es ist, setze das ganze auf die nächste volle zeit, also genau 0 oder genau 0:20 und der laternenzünder wird dann an die stelle gesetzt an die er sich ca. befinden würde wenn er den weg so gelaufen wär.
ich denke mit 72 zeiteinheiten wird das tag/nacht system schon einiges bieten können.

nachteil: der Spieler kann durch weckseln der map das tag/nacht system beschleunigen.

Brei
17.09.2012, 16:04
was spricht denn gegen parallel process und waits?


naja...deine sache.

Tingles
17.09.2012, 16:17
eig nichts, aber ich will ja nicht nur ein event haben was die kerzen anzündet, alle sollen einen tagesablauf bekommen. Und soviele parallel prpcess einbauen? ich glaub das wär nicht gut. Ich muss eh nochmal gucken, so wie ich mir das denke wirds sicher nicht ganz klappen. Jedes Event muss ja ein paar standpunkte haben, dann noch die wegfindung und soweiter. ich denke aber mit cordinaten wird das wohl....gucken was möglich ist^^

Brei
17.09.2012, 16:48
so meinte ich das nicht.

um die zeit zu berechnen sollst du den PP nutzen, nicht um alle einzelnen events zu bewegen.

also statt "addiere bei jedem mapwechsel 1Zeiteinheit"
ist doch "addiere alle [20] sekunden 1Zeiteinheit" eher was du willst? (soweit ich weiß wird das in dem tutorial auch so gemacht, daher wär jede weitere erläuterung eine mehrfachnennung ^^)

Tingles
17.09.2012, 17:15
also wenn es im tutorial so gemacht wurde dann mach ich das auch so, habs einfach übernommen und stadt 6-12-18-0 halt 0-0:20-0:40-1 usw. gemacht wenn du das meinst? sonst hab ich kp was du von mir willst :-D

porschefan
20.09.2012, 20:07
*push*
Als Tut für ein wunderbar funzendes T/N-System kann ich dir nur das hier empfehlen:
http://rpg2000.4players.de/index.php?inhalt=derkurs/kursinhalt&id=6
Unter Punkt Tag Nacht-System wird es sehr ausführlich beschrieben.(War zu faul zum vid gucken sry xD)
Und soweit ich weiß, ist es im rm2k NICHT möglich, bestimmte Events von anderen Maps aus zu steuern.
(Sollte ich falsch liegen so lasse ich mich eines besseren belehren)
Am besten kann man das regeln,indem man ab "18 uhr" einen Switch anmacht und bei den laternen auf
einer 2ten page den Switch einstellt und dann als Grafik die angeschaltete Laterne.
Greetz

Tingles
20.09.2012, 20:11
danke, das prob mit dem events steuern ist gelöst, ein t/n system mit möglichst kleinen zeitsprüngen. Also am besten jede min abfragen, aber das is zuviel des guten.
Beim betreten der map eine dunkelzeit "ladezeit" einbauen und die events die richtige positon einnehmen lassen, danach das mapgeschehen starten. :-D ich bau das erste rpgspiel mit ladezeiten ;)

porschefan
20.09.2012, 20:27
Wieso zeitsprünge?
Wie kommen die denn zustande?

Tingles
20.09.2012, 22:51
nun, ich rechne die zeit ab, sprich
von 13Uhr bis 14Uhr vergehen z.B. 10min, dann rechne ich mit 24 Variable möglichkeiten: 0-23 Uhr. Ein tag dauert jetzt 240min und ich habe 24 schnittstellen indenen ich helligkeit und alles andere verändern kann.
Dann kann ich Anzündtyp an 24 stellen am tag befehle erteilen, jede stunde eben. Somit hab ich von 13.01 bis 13.59 keine möglichkeit in seinen tagsablauf einzugreifen.

Da die zeit bei mir jetzt aber in 20ger schritten läuft (13:00 zu 13:20 zu 13:40 und dann zu 14:00) hab ich 72 schnittstellen an denen ich eingreifen kann. Somit kann ich sein Tagesablauf genauer bestimmen und ihn beim betreten der map genauer positionieren, oder die helligkeit besser darstellen, zeitquest werden genauer usw.

Demnach ist ein TNsystem mit 1440 schnittstellen, also jede reale min viel genauer als andere, dies ist natürlich viel zu klein klein und unnötig genau für ein rpgmaker game.

Hoffe man konnte mir folgen und ich hab nix falsches gesagt. Wenn man die genauigkeit auch mit einem 24schnittstellen system hinbekommt, sagt es mir bitte nicht :-D:-D ich fand meine überlegung so schön ;-) ..ne, immer raus damit wenn ich scheiße laber.

edit, mein skriptcode ist leider zulang, sonst würd ich es euch zeigen, aber ich denke jeder der was davon versteht weiß wie sowas aussieht.
edit2: das prob was man dann aber hat ist, das man nichtmehr variable 1 für 1 uhr und 2 für 2 uhr benutzen kann, aber wenn mans ordentlich auf ein papier schreibt kommt man nicht durcheinander, oder man rechnet mit 3ger schritten ;-) aber ich bin faul :-D

BDraw
21.09.2012, 10:18
Und wenn du einfach jede Sekunde deine Variable um 1 erhöhst und das als "ingame-Stunde" wertest? Zeitlich passt das meistens ganz gut und es kommt mir irgendwie simpler vor... xD

<>Wait: 1.0
<>Set Variable[0001:Zeit] +1

Den Wert kannst du ja dann überall einfach abfragen. Das Problem bei 10 Minuten für eine Stunde ist einfach, dass man alleine für einen ganzen Tag schon 240 Minuten, ergo 4 Stunden bräuchte. Für ein Tag-Nacht-Script wäre mir das als Spieler zu lange, zumindest sofern keine Timeskip-Funktion eingebaut ist.
Du kannst das natürlich auch kleinschrittiger machen, aber das sollte dich trotzdem nicht viel mehr an Befehlen kosten... Sofern du nicht gerade einen ellenlangen Code ständig nebenher laufen lässt, sollte für die Zeit ein simples Wait mit 1.0 reichen, wieviel Zeit du jetzt so einer "echten Sekunde" zugestehst ist ja in der Theorie erstmal egal.

Tingles
21.09.2012, 18:24
ja, das ist in der theorie egal, darum hab ich mir die zahl 10 min auch nur ausgedacht, noch läuft das in msec. ab :-D ...und ich mach eig auch nix anderes als das was du geschrieben hast, ich warte und setze die zeitvariable um 1 höhe, doch diese 1 ist keine stunde sondern 20 min.







http://img5.fotos-hochladen.net/uploads/ankndigung1dlae5grqib.png (http://www.fotos-hochladen.net)