RPG-Maker Quartier
http://forum.rpg2000.4players.de/phpBB3/

Events zu Events schicken
http://forum.rpg2000.4players.de/phpBB3/viewtopic.php?f=52&t=99058
Seite 1 von 1

Autor:  KayPi [ Sa Okt 12, 2013 15:42 ]
Betreff des Beitrags:  Events zu Events schicken

Hallo liebe Forenmitglieder,
beschäftige mich erst seit kurzer Zeit mit dem Rpg Maker und bin auf ein kleines Problem gestoßen, dass ich alleine mit meinen aktuellen Kenntnissen leider nicht lösen kann.
Ich möchte einen Tagesablauf von einem Holzfäller simulieren. Dieser soll zu einer bestimmten Zeit zu einem anderen NPC gehen, der andere NPC bewegt sich allerdings zufällig durch die Welt.
Wie der Titel dieses Themas beschreibt suche ich also eine Funktion ein Event mittels (Lauf)-Animation zu einem anderen Event zu schicken. Bei Set Move Route bin ich da leider nicht fündig geworden.
Auch habe ich im Internet mittels Google und Youtube schon erkundig, Antworten habe ich leider aber nicht gefunden.
Ich hoffe auf eure Unterstützung.

MfG KayPi

Autor:  Is-No-Good [ Sa Okt 12, 2013 16:47 ]
Betreff des Beitrags:  Re: Events zu Events schicken

Mit dem rm2k würde ich es wie folgt lösen (hab den XP nicht, sicher würde es dort aber auch so funktionieren):
- bestimme die Position beider Events mit VAR 1x/1y und 2x/2y
- Paralell Event, Bedingung 2x>1x ->move1 right ansonsten move left
- Bedingung 2y>1y -> move1 down ansonsten move up
- zum Schluss ein weiteres paralell Event, Bedingung 2x=1x, 2y=1y -> Tab"angekommen" an und das erste Event stoppen

Unterm Strich nichts sonderlich schwieriges, aber durch hindernisse in der Map kann der Laufprozess unterbrochen werden. Baue in dem Fall villeicht alle 4 Schritte einen Zufallsschritt ein, das hilft meistens. Villeicht solltest du dem anderen Event einfach keine Zufällige Route einbauen, sondern eine vorgegebene, das ist wesentlich unanfälliger für Fehler.

Autor:  TheWhiteShadow [ Do Okt 17, 2013 16:13 ]
Betreff des Beitrags:  Re: Events zu Events schicken

Sobald der Weg nicht mehr eindeutig bestimmt ist, brauchst du ein Pathfinder-Algorhytmus. Es gibt Ruby-Skripte dafür, die ich einem Nicht-Experten nicht empfehlen würde.

Ab Besten machst du es so, wie Is-No-Good geschrieben hat.
Du solltest bei solchen Unterfangen auch sicherstellen, dass das Spiel dabei nicht hängen bleibt, wenn die Bewegung zu keinem Ziel führt.
Beispielsweise nach 10 sek die Kollisionserkennung für das Event ausschalten, also auf through stellen.

Für die Bewegung kannst du allerdings dieses Skript hier oberhalb der main-Seite reinpacken.
Dann brauchst du im Movebefehl nur eine Skriptzeile mit:
Code:
move_toward(1, 2)
, wobei 1 und 2 die Variablen mit den Ziel-Koordinaten sind. Sparst also diverse Abfragen und 2 Variablen.
Code:
class Game_Character
  #--------------------------------------------------------------------------
  # * Move toward position
  #--------------------------------------------------------------------------
  def move_toward(x, y)
    # Get difference
    sx = @x - $game_variables[x]
    sy = @y - $game_variables[y]
    # If coordinates are equal
    if sx == 0 and sy == 0
      return
    end
    # Get absolute value of difference
    abs_sx = sx.abs
    abs_sy = sy.abs
    # If horizontal and vertical distances are equal
    if abs_sx == abs_sy
      # Increase one of them randomly by 1
      rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
    end
    # If horizontal distance is longer
    if abs_sx > abs_sy
      # Move towards position, prioritize left and right directions
      sx > 0 ? (return false if move_left) : (return false if move_right)
      if sy != 0#not moving? and sy != 0
        sy > 0 ? move_up : move_down
      end
    # If vertical distance is longer
    else
      # Move towards position, prioritize up and down directions
      sy > 0 ? (return false if move_up) : (return false if move_down)
      if sx != 0#not moving? and sx != 0
        sx > 0 ? move_left : move_right
      end
    end
  end
end

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/