• Anmelden

Expresseon

unregistriert

1

Dienstag, 28. Juli 2009, 19:32

Pathfinding

Habe ohne aktuelle Ergebnisse nach neueren, fehlerfrei laufenden Pathfinding-Skripten gesucht. Viele der Links im Forum gehen halt nicht mehr... Kann mir jemand aushelfen? Es darf kein SDK vorausgesetzt werden.

2

Dienstag, 28. Juli 2009, 19:37

Im ScriptExplorer findest du ein -Pathfinding- von Near Fantastica, das benötigt kein SDK.
Sollte auch fehlerfrei laufen. Den ScriptExplorer kannst du auf der Hauptseite unter Tools downloaden.

Expresseon

unregistriert

3

Dienstag, 28. Juli 2009, 20:01

Das Skript funktioniert, allerdings verstehe ich nicht, wie man ein bestimmtes Event bewegen kann. Es gibt nur player, self.event und self...

4

Dienstag, 28. Juli 2009, 20:15

Na entweder schreibst du in ein CallScript

Ruby Quellcode

1
self.event.find_path(x,y)
wodurch das Event mit dem CallScript an die besagte Stelle läuft, oder bei Set Moverout den Befehl Script self.find_path(x,y).
Steht alles im Scriptkopf.

Edit: Bei Set Move Rout, wählst du ja oben ein Event aus, so kannst du ein bestimmtes Event bewegen.

Expresseon

unregistriert

5

Dienstag, 28. Juli 2009, 20:26

Das im Edit war es, was ich nicht verstand. Danke. ;)

Expresseon

unregistriert

6

Dienstag, 28. Juli 2009, 21:31

Kleines Problem: Der Wait For Move's Completion Befehl funktioniert jetzt nicht mehr!

7

Dienstag, 28. Juli 2009, 22:00

Man könnte es so wie im angehangenen Bild machen. Das Problem: Wird das Event durch den Hero ausgelöst (zB durch Action Button) so kann der Hero sich während des Laufens nicht mehr bewegen. Ist jetzt die Frage ob du genau diesen Fall verhindern musst.

EDIT: Ansonsten könnte man nämlich auch das Script anpassen. Unter Zeile 37 (@runpath = false) könnte man einen Switch umschalten oder ein CE aufrufen.
»Monsta« hat folgendes Bild angehängt:
  • pathfinding.png

Expresseon

unregistriert

8

Dienstag, 28. Juli 2009, 22:20

Das Event wird nicht durch den Hero ausgelöst, sondern durch ein anderes Event.
Allerdings taucht ein NoMethodError auf, für runpath. Das liegt wahrscheinlich daran, dass ich nicht self.event sondern nur self verwende. Bei self.event gibt es nämlich einen NME schon beim Bewegungversuch.

9

Dienstag, 28. Juli 2009, 22:55

Du musst übrigens nicht den MoveEvent Befehl benutzen um andere Events damit zu steuern. So in einem normalen Call Script (Die 1 ist die EventID):

Ruby Quellcode

1
$game_map.events[1].find_path(15,13)


Also musst du im Conditional Branach folgende Abfrage benutzen:

Ruby Quellcode

1
$game_map.events[1].runpath == false

Expresseon

unregistriert

10

Mittwoch, 29. Juli 2009, 11:06

Wunderbar. Allerdings werden nun folgende Move-Befehle nicht mehr ausgeführt!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Expresseon« (29. Juli 2009, 11:12)


Social Bookmarks