Archiv verlassen und diese Seite im Standarddesign anzeigen : Tagesablauf von NPCs
Darksoel
08.05.2006, 21:57
es geht in diesem Threat um die Umsetzung von Tagesabläufen für NPCs.
Man hat also ein Tag-NAcht-sys mit Uhrzeit etc., evtl. auch noch Wochentagen.
Nun soll die Welt, in der der Spieler sich befindet, aber auch leben, d.h., ein NPC geht zur Arbeit, dnach wieder nach Haus, oder ähnliches.
Habt ihr Ideen wie man das Umsetzen könnte.
Also eingeschlossen wenn man die Map verlässt und dann wieder draufgeht, dass der NPC nicht jedesmal von neuem anfängt nach Haus zu gehen, sondern da weitergeht, wo er war.
Ich wollte diese Sache in mein Spiel einbinden, und ich glaube, auch diese Sache ist nicht unmöglich, man muss nur um ein paar Ecken denken, weil ich allerdnigs noch keine wirklich Idee habe, frage ich euch, und ich möchte euch bitten, nicht mit solchen Posts wie "geht eh nicht", oder "das wird im Spiel nicht funktionieren" eure Counters zu erhöhen, sondern wenn ihr eine Idee habt, sei sie auch noch so klein, dazu beizutragen, das hier vielleicht ein vernünftiges System rauskommt, was auch für andere interessant wäre.
Also postet eure Ideen!!!!
Flying Sheep
09.05.2006, 09:04
Ich würde mal einen Blick ins Ebook vorschlagen
http://rpg-atelier.net/ebook/
Da steht schonmal wie man den Tag-Nacht-Wechsel macht. Wenn du dann ein paar switches und Variablen einbaust könnte es gehen^^
Lil_Lucy
09.05.2006, 09:08
Schwierig und aufwändig, wenn du das bei ein, zwei kleineren Orten machst mag es noch gehen, aber wenn du das im großen Stil vorhast wirst du Hilfe brauchen.
Du müsstest erstmal für jeden NPC ein Parallel-Process-Event anlegen, das je nach Uhrzeit die Bewegung der NPCs steuert. Beim Betreten der Map muss ein anderes Event berechnen an welcher Stelle sich die NPCs zu dieser Uhrzeit aufhalten, was schonmal extrem aufwändig wäre, und du musst eien Weg finden die Bewegung an diesem Punkt fortzusetzen, Vermutlich musst du dazu die Marschruten in die einzelnen Schritte aufgliedern und mit Labels oder irgendwas jeden Schritt direkt ansteuern können, sehr aufwändig.
Ausserdem kannst du kein "ignore if can't be moved" benutzen, da sonst Variable Hindernisse, wie z.B. der Held, den Bewegungsablauf durcheinander bringen, musst aber dafür sorgen, das wenn der NPC auf seinem Nachhauseweg angehalten wird, und die ganze Nacht dort rumsteht am nächsten Morgen wieder seinen normalen Zyklus aufnimmt und nicht komplett durcheinander kommt.
Vielleicht geht das auch einfacher, aber ich stelle mir sowas auf dem Maker ziemlich kompliziert vor.
netwarrior
09.05.2006, 09:27
Hier einige Ideen.
Du könntest z.B. in der Nacht einige NPCs einbauen, die man Tagsüber nicht treffen könnte, wie Nachtwächter(zum Patrollieren von der Gassen, da sich z.B. eine Diebesbande ihr unwesen treibt), Schwarzhändler oder streunende Katzen.
Diese NPC könnten erscheinen, wenn z.B. der Nacht-Switch an ist.
Witzig wäre es auch, wenn z.B. die Nachtwächter während ihrer Patrolien auf ihren Weg kurz einen Abstecher ins Wirtshaus machen würden ^^
Das sollte ohne großen Aufwand möglich sein mit einem Parallelevent möglich sein.
Zu deiner Frage, wie man anstellen könnte, dass NPC nicht ständig am selben Fleck stehen, kann du es ja so machen, dass bei betreten der Map ein Event per Zufallsskript die NPC's an verschiedenen Stellen teleportiert/setzt/usw.
z.B. bei einer Zufallszahl von 1-5 soll NPC-1 bei 1 auf die X-Y-Koordinate X15-Y5 gesetzt werden.
MfG
netwarrior
Lil_Lucy
09.05.2006, 09:33
Ich glaube er meinete Ideen zur technischen Umsetzung.
Und da sich das Spiel die Position der NPCs auch beim Mapwechsel merken soll, währe selbst eine einfache Patroullieroute recht kompliziert.
Ich halte es auf dem 2k, in einem kleinen, sehr kleinen Projekt für gerade noch mäglich, aber in einem großen Projekt unmöglich.
Auf dem XP, wäre es schon eher denkbar, auch wenn ich keine Ahnung habe wie.
EIn sehr schneller Rechner müsste glaube ich auch drin sein.
Auf dem XP, wäre es schon eher denkbar, auch wenn ich keine Ahnung habe wie.
Wenn ich mich nicht irre, müsste es so ein Script sogar schon geben.
(Von NearFantastica, der ja schon einige solcher irrsinnigen Scripts gemacht hat, falls es wen interessiert... ^^;)
Saug dir Krötenstuhl Saga und schau dir, wies da umgesetzt ist, da isses ungefähr so wie du beschreibst
Darksoel
10.05.2006, 18:39
Mmh, ok, ich sehe, es scheint doch alles sehr viel komplizierter, als ich zu Anfang dacht.
Werde mir Kröhtenstuhl mal anschauen.
aber wie wärs damit, das is jetzt weniger das technische, sondern eher, wie man es trotzdem darstellen kann, die Frage wäre, ob es nicht zu kompliziert würde:
Bsp. Händler: Nehmen wir an, das Game fängt am Tag an, so, und nun wird es nacht. Der Händler sagt dir, sofern du in seinem Laden stehst, dass er jetzt nach Hause möchte, und du bitte den Laden verlassen sollst. Nun wird er Transparenter gemacht, bis er unsichtbar ist, und es wird ein Switch an gestellt,
"HändlerZuHAuse" ist dieser Switch an, ist der Händler ab da zu Hause, und du kannst ihn bis zum nöchsten Morgen dort aufsuchen.
Nun kann man das so machen, dass wenn man im Wald o.ä.ist, immer bei bestimmten Uhrzeiten bestimmte Switches Geändert werden, sodass der Händler auch dann zuhaus steht, nachts, wenn du nicht vorher im Laden warst.
Das heißt, zu bestimmter Uhrzeit "teleportieren sich die NPCs zu den Stellen, wo sie grad was machen. Nur der Weg würde halt wegfallen.
Wäre das denkbar, oder würde es alles total umständlich und kompliziert machen, sodass es für den Spieler nachher nur verwirrend ist?
Lil_Lucy
11.05.2006, 14:10
Nunja, das komplizierte sind eigentlich die Laufwege, die chars einfach per Schalter weg und woanders hinzumache ist hingegen kicki.
Bedenke nur das es auf dem 2k nicht möglich ist einen Char stufenlos transparent zu machen, das geht nur auf dem XP.
Darksoel
11.05.2006, 14:46
Ja, es ginge jetzt auch nicht um das Technische, das Transparent machen müsste man dann in schritten, aber das sieht man nicht so stark, wenn man nicht hundert prozentig drauf achtet.
es ginge jetzt eher darum, ob das die glaubwürdigkeit, das Verständnis des Spiels vermindern würde, es also den spieler sehr irritieren würde...
Lil_Lucy
11.05.2006, 14:56
Naja, Glaubwürdiger machts es die Welt jedenfalls nicht wenn sich die Leute einfach so auflösen und woanders erscheinen (ausser es ist ein Star Trek-Spiel XD), vielleicht solltest du es mit der Realtime lieber so wie bei den letzten zwei, drei Zeldaspielen machen, also so das die Zeit in Ortschaften stillsteht und nur in der Wildnis ein recht schneller und eher auswirkungsloser Tag/Nachtwechsel stattfindet. Die Zeit in den Städten hängt dann davon ab zu welcher Zeit man sie betritt.
Das ist recht einfach umzusetzen und immernoch glaubwürdig und der Spieler kann selbst entscheiden zu welcher Tageszeit er die Stadt erkundet.
Phönix Tear
11.05.2006, 15:16
An sich wäre das sicherlich in Ordnung. Höchst wahrscheinlich fällt das auch kaum jemandem auf, je nachdem wie lang ein Tag bei dir ist, wird es auch immer unwahrscheinlicher das man genau dann in einem Laden steht wenn der Verkäufer gehen will. Allerdings könntest du, wenn du dich schon "nur" auf die Händler konzentrierst, deren Tagesablauf auch detaillierter darstellen. Die meisten Händler stehen ja sowieso nur hinter dem Tresen in ihrem Laden. Sobald dann die entsprechende Zeit erreicht ist sagt dir der Händler bescheid und geht. Alternativ könnte er dich auch rauswerfen (Teleport auf die Stadtmap). Das Rauswerfen fände ich sogar besser und logischer. Nur sollte er dann auch wirklich aus dem Laden rauskommen und die Tür abschließen. Anschließend musst du dann lediglich die Route zu seinem Haus ablaufen lassen. Dabei ist zu beachten das am Ende seiner Route der Switch "Händler 1 Zuhause" angemacht wird. Sollte man die Stadtmap verlassen und zurückkommen ist der Händler einfach verschwunden und in seinem Haus. Das könnte man natürlich noch verschönern indem man im Haus der Händlers eine weitere Zeitabfrage einbaut ihn dann auch wirklich bei der Tür erscheinen lässt. Dann bewegt er sich zu seiner Position bei der das "Random Movement" (soweit du das so machen willst) startet und Switch "Händler 1 Zuhause" angemacht wird. Das bewirkt, dass der bewegte Char verschwindet aber im selben Moment der "Random Movement" NPC erscheint. Dadurch merkt man keinen Wechsel und der Tag ist abgeschlossen. Das ganze braucht dann nur pro Händler einen Switch und ein bisschen Arbeit bei den Routen. Dazu würde dann noch ein Common-Event gepackt werden, welches die Zeiten der Händler generell regelt (sollte man nicht auf der Map sein schaltet dieses Event die entsprechenden Switches um).
Das wirkt dann sehr realistisch und ist auch noch mit einem angemessenen Aufwand umzusetzen.
Allerdings gibt es Fehler die auftreten könne:
1) Man lässt sich von einem Händler rauswerfen und wartet bis er das Haus verlassen hat, verlässt die Map und kommt sofort wieder rein. Der Händler ist weg aber auch nicht in seinem Haus.
2) Man wartet etwa eine Sekunde ab, nachdem der Händler sein Haus betreten hat und geht dann rein. Der Händler wird sich nun nicht von der Tür aus losbewegen sondern nach einigen weiteren Sekunden mitten im Raum erscheinen (vorausgesetzt das Bewegungsevent wird am Anfang durch ein "Change Graphik" sichtbar gemacht).
3) Ohne einen weiteren Switch wird es dir möglich sein den Shop zu betreten während der Händler noch auf seinem Weg nach Hause ist (selbst wenn man die Tür durch eine zweite ersetzen würde (ohne Switch mit "Change Place") könnte man die Map verlassen und schnell zurücklaufen. Bleibt natürlich nur die Frage was einem das bringt, es wäre aber auf jeden Fall unlogisch. Benutz also lieber zwei Switches ^^
Wenn du ein Beispiel suchst, in dem so ein System ziemlich gut umgesetzt wurde, kannst du dir mal Ultima V (C64) ansehen.
Ubabhängig davon, wie du das Wechseln der Häuser andeutest, solltest du vor allem darauf achten, dass dieser Tag/Nachtwechsel auch gut ins Gameplay integriert ist. Wenn man erst 30 Minuten herumlaufen muss, damit man wieder in die Geschäfte kommt, würde das auf Dauer ziemlich nerven. Andererseits ist so ein System dann natürlich nicht ganz so wirkungsvoll, wenn der Spieler per Tastendruck die Zeit beliebig verstreichen lassen kann. Vermutlich müßte man dem Spieler einen Anreiz geben, auch mal Nachts unterwegs zu sein.
SkullRaven
11.05.2006, 16:00
Man könnte es ja so machen . Beispiel.Es dauert 30 Minuten bis Tagesanbruch (also 30 min Nacht) das man sich ein Zelt nimmt und darin schläft bis zum Morgen.Und der Reiz in der Nacht unterwegs zu sein ist das es Nachts andere Monster gibt.Also Stärkere mit besseren Items.
Man könnte es ja so machen . Beispiel.Es dauert 30 Minuten bis Tagesanbruch (also 30 min Nacht) das man sich ein Zelt nimmt und darin schläft bis zum Morgen.Und der Reiz in der Nacht unterwegs zu sein ist das es Nachts andere Monster gibt.Also Stärkere mit besseren Items.
Sicher das tut sich auch jeder an, eine halbe Stunde rumzueiern und auf den Tag zu warten, wenn man zum Beispiel etwas am Tag erledigen muss und gerade die Nacht hereingebrochen ist. Nene das muss viel schneller gehen.
SkullRaven
11.05.2006, 18:30
@ Narsil
Ich meinte das so.Wen man das Zelt benutzt gehen die 30 Minuten sofort rum.:rolleyes:
Nun gut, dachte schon man müsste 30 min in dem Teil verbringen. XD
Trotzdem ist die Zeitspanne zu lang. Was macht man den dann am Tag? Da kann man ja kein Zelt benutzen außer man hat die letzte Nacht nicht geschlafen.
SkullRaven
11.05.2006, 19:31
Nun gut, dachte schon man müsste 30 min in dem Teil verbringen. XD
Trotzdem ist die Zeitspanne zu lang. Was macht man den dann am Tag? Da kann man ja kein Zelt benutzen außer man hat die letzte Nacht nicht geschlafen.
Du hast Recht.Aber im richtigen Leben muss man auch warten wen es gerade 3 uhr ist und du willst ein Film sehen der um 10uhr kommt.Ok man könnte tags über auch schlafen.Was aber im Spiel dan nich sehr gut wirken würde.Mal gucken ob ich da eine Lösung finde.;)
Lil_Lucy
11.05.2006, 20:49
Du hast Recht.Aber im richtigen Leben muss man auch warten wen es gerade 3 uhr ist und du willst ein Film sehen der um 10uhr kommt.Ok man könnte tags über auch schlafen.Was aber im Spiel dan nich sehr gut wirken würde.Mal gucken ob ich da eine Lösung finde.;)
Man muss ja nicht unbedingt schlafen m die zeit verstreichen zu lassen! Bei Morrowind kann man bspw. an Orten an denen man nicht rasten darf einfach warten, was genauso die zeit rumbringt, aber halt nicht regeneriert. So eine Wartefuntktion wäre mir auf jedenfall lieber als die Fünfminutentage die man in manchen Spielen so erlebt.
Kommt ganz darauf an, wie viel Aufwand du betreiben willst.
Also, die interessante Variante liefe so.
Du unterteilst den Tag in mehrere Abschnitte, in denen sich die NPCs verschiedene Bewegungen haben. Meinetwegen, in "5:00-12:00" und so weiter.
Das ist, was die Switches betrifft, nicht sehr teuer!
Nun, brauchst du noch, leider, für jeden NPC zwei Variablen, nämlich "NPC X" und "NPC Y".
also etwa "NPC Vormittag", "... nachmittag" und so weiter.
Jetzt knüpfst du ein Event an
a)entweder "NPC X" oder "NPC Y"
b)Tageszustand (Vormittag, 5:00 bis 10:00)
In dem Ereignis steht dann eine ganze List von Fork Conditions.
Wenn du nun dein Ereignis an "X" geknüpft hast, fragst die Fork also die Y-Position ab, die der NPC hat.
Mit anderen Worten:
Du fragst die Position ab, die der NPC zu einer bestimmten Tageszeit hat.
Je mehr Tageszeiten du verwendest, desto umfangreicher wird alles.
Nun musst du JEDEN EINZELNEN Schritt JEDES EINZELNEN NPCs einzeln machen.
Also, hat er meinthalben die Position von X "14" und die Position von Y "19".
Dann schreibst du in die entsprechende Positionsfork (abhängig davon, was du nicht an das Ereignis selbst geknüpft hast) "Move Event: Step up" oder so.
Du darfst leider keine "Move all"s verwenden, also wenn du mal in ein Bewegungsereignis mehr als einen Schritt machst, musst du das per "Wait" regeln.
Und so musst du das eben machen.
Was dabei herauskommt:
Pro NPC ein Event, das das Verhalten des jeweiligen NPCs verrät mit SEHR vielen Seiten, weil ja JEDE X-Koordinate (oder Y, wenn du das da in die Ereignisbedingungen geschrieben hast), die der NPC möglicherweise haben kann (also am besten ihn nicht über die ganze Karte laufen lassen) eine Seite erfordert und das zu jeder Tageszeit, für die du Switches besitzt.
Das wäre die feine Lösung- wenn du das umsetzt, wird dein Spiel in der Hinsicht genial... und SEHR viel Zeit benötigen.
Vielleicht ist diese Zelda-Lösung von Lil_Lucy gar nicht so schlecht... nicht ganz so eindrucksvoll, aber doch, wie ich finde, die verhältnismäßig beste!
Ryo Saeba 1000
12.05.2006, 13:45
Nun musst du JEDEN EINZELNEN Schritt JEDES EINZELNEN NPCs einzeln machen.
Oder man verpasst den NPC's eine KI, oder genauer gesagt nutzt ein Pathfindingsystem.
Das frisst allerdings ziemlich viel Prozessorleistung. Einschränken könnte man das ja, indem man festlegt, dass sich die NPC's nicht über ihre Karte hinausbewegen können (also dass zB. eine Stadtwache nur in der Stadt rumlaufen kann und nicht im anliegenden Wald usw.). Dann müssen nähmlich diese NPC's nicht ständig berechnet werden, sondern nur dann, wenn der Spieler die entsprechende Map betritt.
Probleme gibt es beim Pathfinding ja auch nur dann, wenn sich dem NPC unerwarteterweise Hindernisse in den Weg stellen würden. Der Weg eines NPC's muss ja nur einmal berechnet werden, dann wird das Pathfinding erst wieder benötigt, wenn sich ein Hindernis in den Weg stellt. Wenn dies der fall ist, könnte man das Pathfinding ein zweites mal aktivieren, um Performance zu sparen, könnte man eventuell die gespeicherten Daten vom ersten anfänglichen Durchlauf nutzen, denn wenn der zweite Durchlauf wieder auf ein im ersten Durchlauf abgelaufenes Feld, welches hinter dem Hindernis liegt, trifft, dann kann der zweite Durchlauf ja beendet werden und muss nicht bis gaanz zum Ziel durchlaufen.
Ein Pathfindingalgorithmus ist natürlich noch nicht alles, um die KI weiter zu vervollständigen müsste man dem NPC natürlich immernoch den Tagesablauf per Forks verpassen. Diese Tagesabläufe würden dann natürlich auch immer nur beim betreten der entsprechenden Map berechnet werden, müssten dann allerdings ständig im Hintergrund laufen, solange man sich auf der Map befindet.
Also wegen der Performance ist das wie gesagt eher schlecht umsetzbar mit dem RPG Maker, da müsste man mal austesten wieviel NPC's pro Map zumutbar sind, bevor es anfängt zu ruckeln. Die Größe und Struktur der Maps spielt natürlich auch eine Rolle.
Ohmann, ich bin wirklich schlecht im Erklären, wenn man da nicht ein bisschen Ahnung von der Funktionsweise einer Pathfinding Routine hat, wird man aus meinen Ausführungen wohl kaum schlau werden (und selbst wenn, ist es immernoch unverständlich geschrieben^^').
SkullRaven
12.05.2006, 17:04
@ Ryo Saeba 1000
Gute Idee, aber mit der Umsetzung könnte schwierig werden.Villeicht könnte man den NPC ja "below Hero" machen, was widerum auch nicht gut aussehen würde. Aber der NPC müsste so nicht anhalten.Oder man könnte ja auch die X , Y Koordinate des Hero nehmen und die per Fork condition mit der des NPC
vergleichen und wenn die über einstimmen dann kommt ein ereignis z.b der Held geht den NPC aus dem weg oder anders rum.
Ich weiss es ist schei..e erklärt!:D
Darksoel
13.05.2006, 09:10
kann man die Zelda Sachen auch woanders als auf ner Konsole spielen?
hab nämlich weder Konsole noch Spiel^^
@Ryo Saeba 1000
Ich bin skeptisch, ob solche komplizierten Pathfinding-Algorithmen für so ein Feature wirklich Sinn ergeben. Das mag zwar auch daran liegen, dass für mich Tag/Nachtwechsel + sich danach richtende NPCs eher ein unwichtiges Feature sind, aber selbst wenn man das anders sieht, wäre es vielleicht besser die kreative Energie in andere Dinge zu stecken und sich mit einer simpleren Lösung zufrieden zu geben. Vielleicht wäre auch ein ganz simpler Algorithmus ausreichend, der nur kleine Hindernisse umgehen kann ( normalerweise sollte es außer dem Spieler ja keine unvorhergesehen Hindernisse geben ).
@Darksoel
kann man die Zelda Sachen auch woanders als auf ner Konsole spielen?
Legal nicht.
Lil_Lucy
13.05.2006, 14:04
kann man die Zelda Sachen auch woanders als auf ner Konsole spielen?
hab nämlich weder Konsole noch Spiel^^
Das System dort ist ganz einfach: Wenn Link durch die Steppe läuft, oder übers Meer segelt vergeht die Zeit rasend schnell. Länger als fünf Minuten dauert ein Tag da nicht. In Städten und eineigen anderen Orten wie Dungeons dagegen sthet die Zeit still. Je nachdem zu welcher Zeit man die Lokalität betritt ist es dort entweder Nacht oder Tag, wobei glaube ich so Sachen wie Abendrot beibehalten werden. Die Zeit läuft erst weiter wenn man den Ort verlässt.
Man kann im Spiel auch mit einer magischen Flöte oder einem Taktstock die Zeit vordrehehn, wobei der Ort dann neu geladen wird. Irgendeine vergleichbare Funktion wäre auch in deinem Spiel sinnvoll, sofern es dieses oder ein ähnliches Sytem nutzt!
Aldinsys
14.05.2006, 13:09
Das System dort ist ganz einfach: Wenn Link durch die Steppe läuft, oder übers Meer segelt vergeht die Zeit rasend schnell. Länger als fünf Minuten dauert ein Tag da nicht. In Städten und eineigen anderen Orten wie Dungeons dagegen sthet die Zeit still.
Das kann man nicht so leicht pauschalisieren,da es je nach Zelda Spiel unterschiedlich umgesetzt wurde.
Das von dir geschilderte System wurde in "Ocarina of Time" verwendet,weil dort Hyrule aus vorberechneten Hintergründen bestand und man es sich ein wenig leichter machen wollte.
Beim N64 Nachfolger "Majoras Mask" läuft die Zeit aber unaufhörlich weiter.
Das spielt sie aufgrund der 72h Mechanik eine weitaus wichtigere Rolle.
Ich würde mich eher an Gothic oder Morrowind orientieren,weil es da sehr realistisch umgesetzt wurde.
Beim N64 Nachfolger "Majoras Mask" läuft die Zeit aber unaufhörlich weiter.
Das spielt sie aufgrund der 72h Mechanik eine weitaus wichtigere Rolle.
Naja... Ich meine Majoras Mask war ja wirklich darauf ausgelegt. Da hatte die Zeit ja eine zentrale Rolle. Da hätte sie gar nicht drauf verzichten können ohne ein Scheißspiel (Obwohl ichs auch gar nicht sooo gut fand) zu machen.
Kopp
Lil_Lucy
14.05.2006, 15:42
Das kann man nicht so leicht pauschalisieren,da es je nach Zelda Spiel unterschiedlich umgesetzt wurde.
Das von dir geschilderte System wurde in "Ocarina of Time" verwendet,weil dort Hyrule aus vorberechneten Hintergründen bestand und man es sich ein wenig leichter machen wollte.
Beim N64 Nachfolger "Majoras Mask" läuft die Zeit aber unaufhörlich weiter.
Das spielt sie aufgrund der 72h Mechanik eine weitaus wichtigere Rolle.
Ich würde mich eher an Gothic oder Morrowind orientieren,weil es da sehr realistisch umgesetzt wurde.
O.K. Majoras Mask hab ich nie gespielt, aber bei the Wind Waker war's genauso und die Hintergründe waren alle echtzeitberechnet! Und mir ist klar das Gothic und Morrowind (was ich übrigens grad mal wieder spiele) ein realistischeres Zeitsystem haben, wobei Morrowind eigentlich die zeit gänzlich ignoriert, du kannst auch bei nacht einkaufen, denn schlafen tut dort nie jemand...
An Ryo Saeba 1000:
Ähm... ich weiß nicht ganz, ob ich das ganz verstanden habe, aber es gibt da einfach das Problem, dass man als Held ein Hindernis darstellt.
Das könnte man natürlich lösen, indem man die Leute einfach die Leute "Below Hero" schaltet und das sieht seltsam aus.
Und was du mit KI meintest... ja, das hast du schon gesagt... Da muss er rechnen und außerdem benötigt man NOCH MEHR Zeit zum Programmieren.
Naja, vermutlich ist diese Ocarina-of-Time-Variante die beste, wie gesagt.
Kelven sagte ja schon:
Vielleicht ist eine nicht ganz so schöne, aber einfachere Methode besser...
Caine Luveno
15.05.2006, 19:51
Es ist relativ einfach:
Jeder Dorfbewohner bekommt eine Varibale, die da nennt man "AktionPerson1". Ein Common Event überwacht je nach Tag/Nacht und Uhrzeit diese Variable und setzt sie dementsprechend neu.
Dann musst du nur noch auf den Maps entsprechende Dinge einbauen wie z.B. wenn es fünf Uhr ist das der NPC dann von der Arbeit nach Hause geht oder man ihn wieder in seinem Haus antreffen kann.
Halt ich für nicht weiter aufwendig wie das Speichern der Blutvorräte aller Menschen in Vampires Dawn.
Darksoel
16.05.2006, 05:32
Wie wärs denn mit folgender Idee, das Prob war ja jetzt immer, dass die typen immer wieder neu den Heimweg liefen, wenn man zwischendurch auf ner anderen Map war, aber wenn man das einfach s omacht, das die anfangen, den heimweg zu gehen.
wenn sie nun aber noch net fertig sind, und du die Map verlässt, sind sie ab da automatisch im HAus, d.h.sobald du die Map verlässt und neu betrittst, gilt er als im Haus, egal, wie weit er vorher mit dem Rückweg war.
Dann ließe sich das tatsächlich mit nur einer Wari machen, denke ich.
Ähm:
Also:
Ich hab einen NPC angelabert. Währenddessen gehen alle Leute weiter. Ich laber 10 Minuten. So und jezz, jezz is wieder Morgens und er müsste eigentlich zur Arbeit. Hmmm
Irgendwas wird doch da nicht klappen. Alle Leute anhalten wäre blöd.
Kopp
Kopp? Kopp!
Also, ICH hingegen befürchte, dass man tatsächlich alles anhalten muss, selbst die Zeit.
Weil nämlich exakt das Problem auftreten wird:
Wenn alles weiterläuft, kommen sich die Ereignisse eines einzelnen NPCs ins Gehege.
Ja, eine andere Möglichkeit gibt es, glaube ich, nicht.
Gar nicht mal so dumm, die Überlegung.
Das wird in der Tat schwierig...
Vielleicht sollten die sich WIRKLICH nur auflösen.
(Vielleicht sollte ich an dieser Stelle einen Counter einrichten; für jedes Mal, an dem ich sage, die Idee mit laufenden NPCs + Tagesablauf funktioniert nicht oder nur extrem schwierig... ich glaube, ich bin bei 3)
Das mit dem Auflösen würde aber das Textsystem-Problem nicht beheben, es sei denn, man lässt es zu, dass der Charakter mit dem man spricht auf einmal während des Gesprächs verschwindet... oO
Ich glaube dafür die einfachste Lösung wäre, einen Switch zu basteln, der wirklich die Zeit anhält.
Damit das ganze nicht zu blöden Bugs oder Problemen führt, könnte man ja die Zeit in Abschnitte unterteilen (z.B. Morgen-Mittag-Abend-Nacht, mal ganz grob) und wenn ein Abschnitt zuende istwird geprüft, welche Personen denn nun den Ablauf geschafft haben udn welche nicht (->Switches). Findet das Script nun jemanden, der "zu spät" ist macht dieser eben zwei, drei Schritte vorwärts und verschwindet währenddessen.
(Alternativ gäbe es noch die MajorasMask-Methode (die ich aber nicht ausstehen kann... >.<):
Ist so ein Abschnitt erreicht, wird der Bildschirm dunkel, ein Schriftzug erscheint und der Bildschirm wird hell. Während der Bildschirm dunkel ist werden eben die ganzen "Tagesabläufe" resettet und an ihre Position gebracht. Der Spieler sieht nur einen die Personen, das Bild wird schwarz, Schriftzug "Ort xy, Mittagszeit", das Bild wird hell und die Personen sind weg (oder besser gesagt an ihrer "Mittags-Position").
Das müsste eigentlich noch recht elegant gehen, hat aber einen kleinen Nachteil: Bei komplexeren Tagesabläufen, z.B. 5 verschiedenen Aktionen an einem Mittag, gibt's Stress, sofern man nicht bereit ist, den Tag in tausend-und-einen Abschnitt zu unterteilen...
Die IMO mit großem Abstand eleganteste Methode: Pathfinding-System, kein verschwinden sondern wirkliches betreten der Häuser/Orte, Stresstexte, wenn der Char aufgehalten wird und spät dran ist, dementsprechend angepasste waits bei den Texten, die mit Pics angezeigt werden müssten, aber per [Enter] oder [Escape] wie gehabt abgebrchen werden können.
Das ginge zwar, würde aber bei sagen wir allerspätestens 3 bis 5 Städten zu einem Nerven zusammenbruch führen. XD
Das Beste wäre natürlich wenn man einen Sprachskript hätte...
Dann könnte der Mann nur sagen, "Ey keine Zeit, muss zur Arbeit" und dabei Fixed Direction mit Face zum Hero weggehen.
Naja ich finde diese Majoras Mask Variante glaube ich sogar am Besten...
Ha oder man macht ein Event, welches den Weg des Mannes geht, allerdings geht dieses durch alles durch. Und wenn der Mann ganz weit weg vom Event ist, dann macht der einfach schneller!!! Mve Speed Öp
Außer fiesen Bugfixern wird keiner ein Gespräch länger führen als benötigt und ma so nebenbei, das kennen wir aus der Knoppers Werbung: "Ich muss jetzt los..." Wer redet denn bitte viel aufm Weg zur Arbeit? Da schon eher inner Kneipe oder so.
Topp?
Topp!
Da guckste Kacke , wa? http://www.multimediaxis.de/images/smilies/old/glomp.gif
Kopp
Darksoel
26.05.2006, 00:01
Hey, wie wäre es damit: die MEnschen, die nicht so in der Stadt rumlaufen, sondern bei denen du bewirken willst, dass sie auf jeden FAll da ankommen, wo sie sollen, bei denen könnte man doch ein event hero touch machen, und dann in dem Fall halt eine Message, zB: Geh aus dem Weg, ich will nach HAus" oder "MAn war der Tag wieder anstrengend, wären sie so nett aus dem Weg zu gehen, damit ich nach HAus kann" (Sowas dann auch beim Hinweg) und dann nach der Message ein Move Evenet Hero Random Step.
Der HEro würde dem Chara aus dem Weg gehen, und man könnte dann natürlich auch die Messageso machen, dass sie selbst nach dem Ablaufen endet, also dass man gar net enter drücken muss.
Dann noch ein paar Sekunden für solche Fälle in den Weg reingerechnet, und es könnte gut Funktionieren.
Sagte ich sowas???
Jo glaub schon. Aber, sagte ich dann nicht nochwas???
Jo glaube ich auch.
Wenn du dann ganz ganz lange wartest, dann geht die Message von allein weg?
Ha oder man macht ein Event, welches den Weg des Mannes geht, allerdings geht dieses durch alles durch. Und wenn der Mann ganz weit weg vom Event ist, dann macht der einfach schneller!!! Mve Speed Öp
So!!!
;) http://www.multimediaxis.de/images/smilies/old/s_022.gif
Kopp
Darksoel
26.05.2006, 14:45
Nein, es gibt bei den Messages die Funktion \^, damit schliesst sich die Message selbst, soweit ich weiß.
Ja! -.- das weiß ich doch. :)
Nur macht die Person dan Slip Through oder was?
Weil man kann ihr ja solange man will den Weg versperren.
Kopp
Mehr Hähne dem Thread!
An den Kopp:
Also, Darksoel sagte ja, dass dann der Hero ein "Random Step" macht, um dem Chara aus dem Weg zu gehen
Allerdings gibt es natürlich dann immer noch das Problem, dass man abfragen müsste, ob der Held nicht blockiert wäre, wenn er ginge.
Das könnte man lösen, indem man einfach dafür sorgt, dass der Chara niemals irgendwo längs geht, wo der Held beim Ausweichen blockiert würde und man nach jedem Ausweichen abfragt, ob sich nun die Koordinaten des Helden verändert hat, und wenn nicht, das immer wiederholt wird.
Allerdings ist das vermutlich äußerst fehleranfällig.
Ansonsten ist die Idee gar nicht schlecht. Dann müsste der Chara eben einfach immer stehen bleiben.
Allerdings muss ich sagen, dass ich das nicht ausprobiert habe; ich weiß also nicht, ob das funktioniert!
SkullRaven
29.05.2006, 23:54
Äh sorry liegt das an meinem Browser oder hat Kopp 4 mal den gleichen Beitrag gepostet?
Nein... ich seh es auch... ganze 4 mal... *augenreib*
Im Velsarborforum gab es das auch schon... muss irgendwie ruckeln auf dem Server oder so.
Nein, der hat nicht vier Mal denselben Beitrag abgeschickt, sondern der ist nur vier Mal angekommen, schätze ich.
Also ich hab 4 mal auf Antworten geklickt, und 4 mal gelesen, dass es sich um einen Datenbankfehler handel. Wundert mich, dass der Thread überhaupt da ist.
Bei mir is er alledings nur 1 Mal und ich hab auch nur einen Post dazu bekommen.
ICH BIN KEIN SPAMMER!!!! :(
Also, Darksoel sagte ja, dass dann der Hero ein "Random Step" macht
Ja ne is klar. Warum sagt keiner was zu meiner Idee??? Stell vor, dass der Typ einen anspricht, und dann rückwärts geht. Naja.
Kopp
Daen vom Clan
30.05.2006, 17:28
Also ich hab 4 mal auf Antworten geklickt, und 4 mal gelesen, dass es sich um einen Datenbankfehler handel. Wundert mich, dass der Thread überhaupt da ist.
Bei mir is er alledings nur 1 Mal und ich hab auch nur einen Post dazu bekommen.
ICH BIN KEIN SPAMMER!!!! :(
Nein, bist du nicht.
Wir hatten einen Datenbankfehler und ich habe deine überflüssigen Posts gelöscht, also keine Sorge :)
Darksoel
30.05.2006, 21:45
@Kopp
hä, wie???
wieso rückwärts geht???
Move Rechts, Random Step is dann vielleicht links. Das sähe echt lustig aus!
Darksoel
31.05.2006, 18:41
wieso move rechts???
wer denn???
Move Rechts, Random Step is dann vielleicht links. Das sähe echt lustig aus!
Polemiker, verdammter!
Immer gegenan...
Ja, UND?
Ich meine, wo ist der Nachteil, wenn es lustig aussieht? Also ich mag lustig...
Sei es drum:
Also, das musst du als Gleichnis sehen, es bezieht sich nämlich auf die ganze Wintersportindustrie. Random Step ließe sich natürlich durch den Standardschritt machen oder man guckt wo der NPC ist, macht Zufallsprinzip per Variable und lässt ihn dann eben hinlaufen wo es gerade passt und schließt "Rückwärts" aus.
Es geht ums PRINZIP. Die Feinheiten können wir schon DarkSoel überlassen, der kriegt das schon irgendwie so gebacken, dass es passt.
Die Idee finde ich nicht schlecht!
Ach, zu deinem Beitrag:
Ja, das geht bestimmt auch gut, das Problem ist
1.000.000 mal 0 ergibt ungefähr 0.
Wenn du dich dem NPC in den Weg stellst und NICHT wieder weg gehst, dann kann der Spinner so oft "Move Speed Uppen" wie er möchte, der rennt dich trotzdem nicht um.
Und dann wartet man brav bis die Sonne untergeht und er ist immer noch weg.
Andererseits, wenn er RICHTIG doll "Move Speed uppt", rennt er einem davon und man kann ihm gar nicht mehr nachweisen, dass er nicht zu seinem Haus gelaufen ist. Ja, mal gucken
Darksoel
01.06.2006, 16:11
So, ich sitze gerade an einem kleinen Script.
Allerdings gibts ein kleines Problem:
Ich habe bei einem Mann (jetzt ein Bespiel) eine Seite, die Aufgerufen wird, wenn die Vari MannTA auf 1 steht, dann hat der nen Custom Pattern, den er laufen soll. Wenn ich nun über F9 die Vari auf 1 schalte, funzt alles wunder bar, wird sie allerings automatisch durch ein CC in der DAta Base auf 1 geschaltet, guckt er erst nach oben, dann nach rechts dann nach untn, bewegt sich aber kein schritt.
Es liegt nicht daran, dass er nicht gehen kann, habs auf ganz normalem einfachem Boden ausprobiert.
Woran kann das liegen.
Ansonsten funzt alles wie geplant:D
EDIT: hab dden Beitrag mit dem DL-Link und so gelöscvht, hab stattdessen nen eigenen Threat aufgemacht.
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.