RPG-Maker Quartier

Hier dreht sich alles um die RPG-Maker-Reihe von ASCII/Enterbrain. Der RPG-Maker ist ein Tool, mit dem du dir dein eigenes kleines Rollenspiel erstellen kannst. Du findest hier alles, was du dazu brauchst. Aber natürlich umfasst die Community noch mehr!
Aktuelle Zeit: Di Mär 03, 2020 3:08

Alle Zeiten sind UTC + 1 Stunde



Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
Offline
Eintagsfliege
Eintagsfliege
Beiträge: 1
 Betreff des Beitrags: Events zu Events schicken
BeitragVerfasst: Sa Okt 12, 2013 15:42 
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


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Wurstbrot
Wurstbrot
Benutzeravatar
Beiträge: 68
Alter: 29
Wohnort: Marburg
 Betreff des Beitrags: Re: Events zu Events schicken
BeitragVerfasst: Sa Okt 12, 2013 16:47 
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.


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Schweizer Reiter
Schweizer Reiter
Benutzeravatar
Beiträge: 379
 Betreff des Beitrags: Re: Events zu Events schicken
BeitragVerfasst: Do Okt 17, 2013 16:13 
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

_________________


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de