PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Handel der NPC



Sniez
23.10.2010, 11:03
Guten Morgen liebe Helfer, ich habe erneuert eine eher technische Frage.
Ich sollte eine Thread für so viele Fragen, die ich habe, aufmachen...D:

Ich schildere einmal kurz die Situation. Der Held flieht vor einem feindlichen NPC. Es ist einem ermöglicht, von etwas zu springen. Nun soll der Feind nicht immer nur an der Klippe stehen und versuchen, zum Helden zu gelangen. Nein, er soll auch hinunterspringen. Leider weiß ich nicht, wie das funktionieren soll, ohne Move Event zu benutzen.

Cracky
23.10.2010, 11:50
Hmm, warum kannst du denn kein Move Event benutzen?
Dann hätte ich nur den Vorschlag es mit 2 oder mehr (je nachdem wie oft er irgendwo runterspringen kann) Events zu machen.
D.h: der NPC rennt und sobald er an die Klippe kommt wird sein Event mit einem TAB ausgeschaltet oder gelöscht und der NPC kommt als neues Event am Fus der Klippe zum Vorschein und hat die gleichen Eigenschaften (also sprich er rennt weiter hinter dem Spieler her).
Eine Sprunganimation dann mit einzubauen is etwas kniffelig. Aber das lässt sich auch sicher durch Pictures oder BAs lösen, die man nur geschickt positionieren muss.
Ist n bisschen Fummelei. :)

Sniez
23.10.2010, 12:22
Würde es auch mit Move Event funktionieren?

R.F.
23.10.2010, 12:31
Würde es auch mit Move Event funktionieren?
Wieso nicht? NPC rennt zur Klippe, Switch aktiviert sich, wodurch eine zweite Eventseite aktiviert wird. dann wird ein Sprung ausgelöst, Switch deaktiviert sich und weiter gehts.

Sniez
23.10.2010, 12:40
Aber genau an diesem Fleck wird auch das Event ausgelöst, dass der Held springt.

R.F.
23.10.2010, 13:07
Aber genau an diesem Fleck wird auch das Event ausgelöst, dass der Held springt.
Ich rede ja auch von einem parallel laufenden Event, welches nichts mit dem Heldenevent zu tun hat, sondern nur die Bewegungen des NPCs steuert.

Sniez
23.10.2010, 13:20
Oh Gott, ich denke, ich nerve die Menschen mit meinem Unwissen. D:

Hero läuft zur Klippe - Push Key = Herunterspringen.
Switch für NPC aktiviert - NPC läuft zur Klippe
NPC springt herunter - Switch deaktiviert

So? Tut mir Leid, mit solchen Sachen habe ich mich nie richtig befasst. O:

R.F.
23.10.2010, 13:29
Oh Gott, ich denke, ich nerve die Menschen mit meinem Unwissen. D:

Hero läuft zur Klippe - Push Key = Herunterspringen.
Switch für NPC aktiviert - NPC läuft zur Klippe
NPC springt herunter - Switch deaktiviert

So? Tut mir Leid, mit solchen Sachen habe ich mich nie richtig befasst. O:
Das erinnert mich daran, dass ich mir mal vorgenommen hatte, ein Path-Finding-Skript zu schreiben... http://mitglied.multimania.de/rrrrrrrrrr/grinning.png

Ja, so in etwa. Das ist sogar noch sinnvoller, als das, was ich im Kopf hatte. http://mitglied.multimania.de/rrrrrrrrrr/grinning.png

Sniez
23.10.2010, 13:40
Okay, jetzt habe ich es verstanden, danke. Nur eine Sache zum Abschluss. Sobald der Switch für den NPC aktiviert ist, welches Event muss dann starten? Move Event? Das wäre, denke ich, nicht so gut, denn der NPC hat keinen festen Standpunkt sondern bewegt sich ständig. Wie kann man dieses Sprungevent vor der Klippe zum 'Magneten' machen? ^^

R.F.
23.10.2010, 13:49
Okay, jetzt habe ich es verstanden, danke. Nur eine Sache zum Abschluss. Sobald der Switch für den NPC aktiviert ist, welches Event muss dann starten? Move Event? Das wäre, denke ich, nicht so gut, denn der NPC hat keinen festen Standpunkt sondern bewegt sich ständig. Wie kann man dieses Sprungevent vor der Klippe zum 'Magneten' machen? ^^
Das ist dann das Problem mit dem Path-Finding. Zuerst sollte er auf jeden Fall eventtechnisch anhalten (ist ja klar), dann müsstest du seine Standpunktkoordinaten ermitteln und je nachdem wo er steht und wie die jeweilige Umgebung aussieht, muss er dann einen Schritt in die richtige Richtung machen, dann wieder Koordinaten und so weiter. Oder du nimmst dir ein paar Punkte, von denen du sagst, dass er dort starten soll (teleportierst ihn sozusagen dort hin) und gibst dann eine genaue Route vor. Ich würde dir auch raten, nicht zu viele undurchdringliche Objekte auf die Karte zu stellen, sonst wird es nur noch mehr Arbeit (zumindest, wenn du ersterer Methode nimmst). Ich hoffe mal, das war wenigstens halbwegs verständlich. Notfalls einfach nur improvisieren. http://mitglied.multimania.de/rrrrrrrrrr/grinning.png

Wobei man bei ersterer Methode auch eine Route im Vornherein berechnen lassen kann, das würde aber wohl ein bisschen Zeit beanspruchen.

Dhan
25.10.2010, 15:05
Alternativ kannst du prüfen, ob der NPC am Klippenrand steht (du speicherst seine Koordinaten und vergleichst sie mit denen der Klippe) durch ein PP-Event und wenn das der Fall ist, lässt dieses Event den NPC springen.

Generell kommts drauf an, an wievielen Stellen das mit dem Springen möglich ist, ob das was eher einmaliges ist oder gar in einem AKS ständig vorkommen soll.

Pathfinding auf dem 2k is äh eklig. Dafür ist er nicht gemacht. Für tilebasierte Systeme eignet sich dafür insbesondere der Breadth-First-Search (http://de.wikipedia.org/wiki/Breitensuche)-Algorithmus und mit der Nummerierung der Variablen vom Maker is der nur unschön zu implementieren (mach das nicht, wenn dich nicht Hintergründe interessieren sondern nur was im Maker sinnvoll ist, ignoriere diesen Absatz)

Sniez
25.10.2010, 18:37
Wenn wir schon dabei sind, besteht irgendwo ein ausführliches Tutorial bezüglich das mit dem Prüfen? Also allgemein das Event mit der ID/Koordinaten prüfen. Ich blicke da noch nicht richtig durch, und würde das gerne verstehen. (:

Dhan
26.10.2010, 11:41
Jedes Feld hat Koordinaten, links oben beginnts mit 0/0 und nimmt nach rechts und unten eben zu. Die Koordinaten eines Feldes kannst du im Maker rausbekommen, wenn du es im Eventmodus anklickst, steht dann in der Statusleiste. Mit Change Variable kannst du die Koordinaten eines Events in Variablen speichern und dann beispielsweise abfragen, ob ein Event auf bestimmten Koordinaten steht (V1 = 3?, V2 = 5?) oder ob zwei Events die selbe Koordinaten haben (V1=V3? V2=V4?) und du kannst die Koordinaten vorher natürlich noch manipulieren (um beispielsweise zu schauen, ob ein Event direkt vor einem anderen Event steht) et cetera

Sniez
26.10.2010, 15:16
Wenn ein bestimmtes Event also eine festgelegte Route eingespeichert bekommt, und ich möchte, dass dieses nach einer bestimmten Zeit auf eine bestimmte Stelle Map zugeht, muss ich die Route dann mit Variablen zuspeichern, oder wie? ^^ Wenn ich dies erklärt bekomme, dann wüsste ich das Prinzip, denke ich.
(Sorry, dass soviele 'bestimmt' auftauchten.)

Dhan
27.10.2010, 01:08
Sorry, ich versteh nicht so ganz, was das Event machen soll - eine festgelegte Route ist festgelegt, da braucht man keine Zeit zu bestimmen.
Möchtest du ein primitives Wegpunktsystem?
Wenns noch ums Springen an bestimmten Stellen geht wie weiter oben, da wäre es passend, wenn du einfach ständig (per PP) abfrägst, ob das Event die Klippe erreicht hat, und da dann halt sowas wie
Change Variable V1 = Event Blub XCoordinates
Change Variable V2 = Event Blub ÝCoordinates
fork (V1 = 5){
__fork (V2 = 7){
____Move Event Blub Start Jump ... End Jump
__}
}

(wenn die Klippe an Position 5/7 ist)