PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfache Wegpunktansteuerung möglich?



SEEEDinator
05.09.2012, 16:34
Aloha,
für mein Contestprojekt arbeite ich gerade an einer Sequenz in der folgendes passiert:

Der Spieler erhält ein bestimmtes Zeitlimit um sich zu verstecken.
Schafft er dies nicht, aktiviert sich ein Skript.
Nach einem Dialog wird der gerade gespielte Charakter aufgefordert, zu einem bestimmten Punkt zu gehen.
Diesen habe ich per Event auf der Map markiert.

Also, angenommen der Charakter befindet sich gerade oben rechts in der Map und hat kein Versteck gefunden.
Der Punkt, der jetzt angesteuert werden soll, befindet sich drei Kurven weiter im Süden. Hindernisse etc. sind auch vorhanden.

Wie bewerkstellige ich es jetzt, dass der "Held" sich auf genau diesen Punkt, egal wo er selbst gerade steht, bewegt?

Habe bereits versucht, das mehr oder minder bekannte "Folge-dem-Helden-Skript" dafür abzuändern.

Dafür habe ich die Variablenabfrage soweit verändert, dass immer erst die Koordinaten des Ziels mit denen der Spielfigur abgeglichen werden.
Wenn dies nicht der Fall ist, dann soll die Figur in die jeweilige Richtung gehen.


http://www7.pic-upload.de/05.09.12/6dk4k1awaw9k.png (http://www.pic-upload.de/view-15909116/codebeispiel.png.html)


Nun, lange Rede kurzer Sinn: Das funktioniert so nicht.

Hoffentlich habe ich mich einigermaßen verständlich ausgedrückt, und hoffentlich könnt ihr mir helfen :-)

Greetz

djeurissen
05.09.2012, 16:42
Ähm hast du 2003? Das Pathfinding Plugin...

Kelven
05.09.2012, 17:24
Funktioniert dieses Pathfinding-Script denn in Echtzeit ohne merkliche Lags? Ich glaube, dass hab ich schon mal gefragt.

@SEEEDinator
Ohne Pathfinding wird es schwierig, eine Methode zu finden, mit der der Held immer perfekt zum Ziel rennt. Falls dieses Minispiel nur auf einer einzigen Map vorkommt, kannst du aber tricksen. Du weißt ja wo alle Hindernisse stehen. Also fragst du immer die Position vom Helden ab und lässt ihn so laufen, dass er an keines stößt. Alternativ könntest du auch eine ähnliche Methode wie Step Toward Hero benutzen, aber damit kann man an Hindernissen hängen bleiben.

DNKpp
05.09.2012, 17:37
ja, das plugin funktioniert
wie ich schonmal gesagt habe, es findet immer einen weg, sofern einer existiert, nur leider nicht immer den kürzesten (das passiert aber nur wenn der weg eine bestimmte form annimmt, liegt an meiner implementierung, die nicht ganz fertig ist). allerdings ist es durch das sdk auch nur bedingt möglich, auf sich bewegende objekte zu reagieren (zur zeit der berechnung war event x auf 4/3, beim durchlaufen bewegt es sich aber auf 4/4). deswegen empfehle ich dieses plugin in der form auch noch nicht.

aber um auf deine frage zurück zu kommen, ja es geht lag frei.

MarcL
05.09.2012, 17:39
Funktioniert dieses Pathfinding-Script denn in Echtzeit ohne merkliche Lags? Ich glaube, dass hab ich schon mal gefragt.

Soweit ich das jetzt in meinem Projekt verwendet habe, denke ich hängt das davon ab, wie das eingebaut wird...

Auf einer 40x40 Map ruckelt es bei mir etwas, obwohl nicht so viel im Weg steht... dafür gibt es aber einen Haufen PP auf der Map... Das ist in dem Teil auch etwas kompliziert, wie das Script eingesetzt wird... Jedes Mal wenn man ein Geräusch macht, läuft der NPC dorthin, wird man aber zwischenzeitlich gesehen (zusätzliches Stealth Script mit pixelgenauer Erkennung (das von Kazesui)) dann muss der NPC den Helden Jagen bzw. seinen Weg abbrechen...
Auf einer anderen Map (40x40) läuft der NPC dem Helden einfach Zielgenau hinterher, da ruckelt nix ^^

Hier ein Beispiel wie es mit der ruckeligen 40x40 aussieht: http://i.minus.com/1346946771/8oyqsmwvKT5r4eIIcBZdVw/dsPGPIeQgMne7/Untitled1.mp4

SEEEDinator
18.09.2012, 21:34
Pathfindingskript klingt interessant.
Problem war aber nicht, dass ein beliebiges Event auf den Helden zuläuft, sondern eben genau andersrum (sprich: Held, der sich zum Zeitpunkt des Timerablaufs auf variabler Stelle befindet, soll zu bestimmten Event gehen).
Muss ich mal gucken. Danke jedenfalls erstmal für die Hinweise bezüglich des Pathfindingscripts, werd ich mir...*zähl und abschätz*... überübernächste Woche mal ansehen :-)

Greetz

Itaju
18.09.2012, 21:49
Du hast hier einen gravierenden Fehler im Code. :)

Und zwar hast du das "Else"-Procedere nur wenn V99 nicht gleich V97 ist. Du musst das auch machen, wenn V98 nicht gleich V96 ist (am besten einfach mit Go to Label an den Anfang der anderen Else-Bedingungen gehen falls V98 NICHT V96 ist)