Ich kann mir vorstellen, dass er so ähnlich wie auf dem XP umgesetzt wurde:
Hm, der Code passt zum "Movement Command" "Move Toward Player" unter "Set Move Route". Aber "Approach Player" funktioniert anders.
"Move Toward Player" versucht den direkten Weg, aber bleibt an Hindernissen hängen. In dem Code sehe ich auch keine Überprüfung auf Hindernisse.
"Approach Player" geht nicht den direkten Weg. Events mit diesem "Movement Type" überbrücken nicht einfach stumpf Distanz, sondern scheinen einem zufälligen Muster zu folgen, um Hindernisse zu umgehen. Ganz ohne Vorberechnung. Wie gesagt, keine effiziente Methode, aber ich stelle sie mir einfacher vor und wenn es darum geht, ein Event ans Ziel zu führen, ist sie in einer hindernisreichen Umgebung deutlich erfolgreicher.
Die automatisierten Routen bei RPGXP neigen immer dazu, sehr dickköpfig zu sein und brechen den
Schritt ab, wenn die ausgewählte Richtung nicht passierbar ist, statt danach mal auf eine nächstbeste
andere umzuschalten, das Problem seh ich auch hier. So ein Verhalten hat RPG2000 hingegen nicht.
Besonders die Random-Route bei RPGXP kann dafür sorgen, dass ein Event lange irgendwo in einem
schmalen Durchgang festhängt, weil es sich partout immerzu dazu entscheidet, gegen ne Wand zu
laufen und keine Alternativen suchen will.
Man könnts in RPG2000 per Disassembler angucken, wenn man die Stelle im Code kennt, ich geh aber
nicht davon aus, dass dahinter nix allzu Verrücktes steckt und statt spätestens nach zwei Versuchen
(oder einem wie bei Random) einfach aufzuhören, wird noch irgendwas anderes gemacht, damit ne
Figur nicht die ganze Zeit in einer Ecke stehen bleibt, sowas wie noch gelegentliche Schritte in eine
Zufallsrichtung, um mit etwas Glück nem kleinen Hindernis, also nix, das mehr als vielleicht drei
Schritte Umweg bedeutet, zu entgehen.
Ich würd vermuten, dass es eine Mischung zwischen direktem Weg zum Spieler und einem Zufallswert ist.
Das Event kann also in alle Richtungen per Zufall gehen, aber die Richtung, die zur Spielfigur führt hat ne Wahrscheinlichkeit von 85% und die anderen drei nur 5% oder etwas in der Art.
Ist simpel und effektiv. Und nachdem, wie die Figuren sich bewegen erscheint mir dass die wahrscheinlichste Methode.
@Owly
Ich glaub nicht, dass der Algorithmus vom 2K/2K3 wirklich Hindernisse berücksichtigt. Da ist wohl eher eine Menge Zufall mit dabei.
Er macht das indirekt über "not moving?".Zitat
So ist "approach player" auf dem XP implementiert:
Tatsache. Ich habe das switch-Statement nachgebaut und es verhält sich quasi wie "Approach Player". Soo~ simpel hätte ich es dann doch nicht erwartet. Hast du auch den Code zu move_toward_player?
Ich danke euch bis hierhin schonmal!
Edit: Was frag ich denn so dumm. Hast du ja oben schon getan, Kelven. xD Nochmals danke!
Geändert von Owly (13.07.2016 um 23:32 Uhr)
Der Algorithmus ist minimal anders, von den Wahrscheinlichkeiten her:
10% Random
10% Forward
80% Towards Player
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!Now all new and shiny:CherryShare | Patches und Tools | Programmwunschthread | www.cherrytree.at | Cherry = CherryDT