Ergebnis 1 bis 16 von 16

Thema: Verfolgen

  1. #1

    Verfolgen

    Hey leute

    Ich habe ein folgenscript erstellt:


    Change Variable: Held X,Held Y, Mitglied X,Mitglied Y
    set event place (Member to Hero)
    <LOOP>
    set variablen von den 4 koordinaten
    abfragen von variablen (obs zu groß oder zu klein ist)
    wait 0,1


    so is mein script aufgebaut, jetzt gibt es das problem dass der member ein hinderniss für den helden is...und ich möchte auch net dass man das facing des held abfrägt weil es passierte oft dass der member auf dem wasser steht, gibt es irgendwie eine andere alternative, den member immer hinterm helden zu behalten?

  2. #2
    Schreib erst mal sauberen Pseudocode, in deinem Pseudocode kommt das Facing nicht vor und trotzdem erwähnst du es.

    Ansonsten, mach das Ding below Hero, speicher seine Zielposition (abhängig vom Facing) und lass es VERSUCHEN, diese Position zu erreichen (mit gescheiten Move Events)

  3. #3
    es darf nicht below hero sein! es sieht so aus als ob der held auf dem member rumtretet...

    Zitat Zitat von EasyEventExporter
    - SCRIPT -
    <> Change Variable: [3] = X position on map (tiles) of event #1
    <> Change Variable: [4] = Y position on map (tiles) of event #1
    <> Set Event Location: Event #1 -> (V[1], V[2])
    <> Loop
    . <> Change Variable: [1] = X position on map (tiles) of hero
    . <> Change Variable: [2] = Y position on map (tiles) of hero
    . <> Change Variable: [3] = X position on map (tiles) of event #1
    . <> Change Variable: [4] = Y position on map (tiles) of event #1
    . <> Fork Condition: If Variable [2] > V[4] then ...
    . . <> Move Event: This event, Frq 8, Pattern: Mv down
    . . <>
    . : End of fork
    . <> Fork Condition: If Variable [2] < V[4] then ...
    . . <> Move Event: This event, Frq 8, Pattern: Mv up
    . . <>
    . : End of fork
    . <> Fork Condition: If Variable [1] > V[3] then ...
    . . <> Move Event: This event, Frq 8, Pattern: Mv right
    . . <>
    . : End of fork
    . <> Fork Condition: If Variable [1] < V[3] then ...
    . . <> Move Event: This event, Frq 8, Pattern: Mv left
    . . <>
    . : End of fork
    . <> Wait: 0,1 sec.
    . <>
    : End of loop

    Das is der script, es funktioniert ganz gut nur is halt der member "Vic" im weg


    ich möcht auch net dass sich die position des members ändert nur weil der held wo anders blickt

    Geändert von RandyTheZeldaFan (28.08.2010 um 18:03 Uhr)

  4. #4
    oder eher gesagt, was ist das beste verfolgungsskript

  5. #5
    Was du machen kannst, is den Krams in ein unsichtbares Event schreiben, den Verfolger auf On Hero Touch stellen und da Code reinhauen a la
    Fork Held schaut nach Norden
    __Move Event this Start Slip Through Step Down Stop Slip Through
    __Move Event Hero Step Up
    Fork Held schaut nach Süden.
    ...

    (sprich wenn der Held gegen das Event läuft, führt dieses eine Bewegungssequenz aus, die es mit dem Helden Position tauschen lässt)


    (kann sinnvoll sein, dann in die normalen Verfolgungsmoves des Verfolgers annen Anfang ein Stop Slip Through zu hauen, sonst kann der Befehl vom Maker "verschluckt" werden, is ein seltsamer Bug)
    (kann hier einen anderen seltsamen Bug geben, wenn der Held direkt auf den NPC zuläuft, probier mal, obs bei dir klappt)

    Geändert von Dhan (28.08.2010 um 19:54 Uhr)

  6. #6
    ich habs genau so gemacht ich box immer gegen ihn, er bewegt sich net weg


    ich bräuchte unbedingt den script von tohou mother, da laufen die members so wie ichs gern möchte


    ich hab alles neu gemacht, und so gemacht wies der script sagte...ich hatte bemerkt, dass das folge-event immer den helden anstößt, da er versucht die selben koordinaten wie der held zu haben

    Geändert von RandyTheZeldaFan (28.08.2010 um 20:21 Uhr)

  7. #7
    Mach sie einfach auf Below Hero. Alles andere ist irrsinn!

    tohou mother? spiel? makerer? link?

  8. #8
    Isn japanisches RPG Maker game...ich kriegs nich zum laufen...

    gib einfach in youtube tohou mother ein, es wurde mit rpg maker gemacht und ein eigenes sks hat es ebenfalls

  9. #9
    Das kannst du wie folgt realisieren:

    1 PP-Event, das prüft, ob der Held seine Position verändert hat und wenn ja das mit Facing-Veränderung als neues Ziel des Verfolgers setzt:
    Variable X1 = Hero X Coords
    Variable Y1 = Hero Y Coords
    wait 0.1
    Variable X2 = Hero X Coords
    Variable Y2 = Hero Y Coords
    fork (X1 != X2) { Switch Moved ON }
    else { fork (Y1 != Y2) { Switch Moved ON }}
    fork (Moved ON) {
    __Variable ZielX = X2
    __Variable ZielY = Y2
    __fork (Hero Face Dir North) {ZielY +=1}
    __fork (Hero Face Dir South) {ZielY -=1}
    __fork (Hero Face Dir Left) {ZielX +=1}
    __fork (Hero Face Dir Right) {ZielX -=1}
    __Switch Moved OFF
    }

    Und dat Verfolger-Event AUF BELOW HERO, das versucht zu ZielX,ZielY zu kommen

    Das macht genau das, was wir in dem japanischen Projekt da sehen.

  10. #10
    [QUOTE=Dhan;2658102]Das kannst du wie folgt realisieren:

    1 PP-Event, das prüft, ob der Held seine Position verändert hat und wenn ja das mit Facing-Veränderung als neues Ziel des Verfolgers setzt:
    Variable X1 = Hero X Coords
    Variable Y1 = Hero Y Coords
    wait 0.1
    Variable X2 = Hero X Coords
    Variable Y2 = Hero Y Coords
    fork (X1 != X2) { Switch Moved ON }
    else { fork (Y1 != Y2) { Switch Moved ON }}
    fork (Moved ON) {
    __Variable ZielX = X2
    __Variable ZielY = Y2
    __fork (Hero Face Dir North) {ZielY +=1}
    __fork (Hero Face Dir South) {ZielY -=1}
    __fork (Hero Face Dir Left) {ZielX +=1}
    __fork (Hero Face Dir Right) {ZielX -=1}
    __Switch Moved OFF
    }


    ich check durch den script einfach nich durch...
    kann ich diesen script auch gleich ins folgen kommando reinhauen? (also da wo varis abgefragt werden und der member halt folgt)

    Geändert von RandyTheZeldaFan (30.08.2010 um 16:49 Uhr)

  11. #11
    Prinzipiell schon, aber ich trenn gerne Move Event-Code und anderen Code, insbesondere wenn dieser waits benötigt wie hier

  12. #12
    könntest du mir den script nochmals aufschreiben? ich komm damit net klar und kapiers net...

  13. #13
    Ich habs so gemacht, wie ich dein script verstehe...es klappt einfach net der switch bleibt OFF

    Zitat Zitat von EasyEventExporter
    - SCRIPT -
    <> Change Variable: [1] = X position on map (tiles) of hero
    <> Change Variable: [2] = Y position on map (tiles) of hero
    <> Wait: 0,1 sec.
    <> Change Variable: [3] = X position on map (tiles) of hero
    <> Change Variable: [4] = Y position on map (tiles) of hero
    <> Fork Condition: If Variable [2] != V[4] then ...
    . <> Change Switch: [2] = ON
    . <>
    : End of fork
    <> Fork Condition: If Variable [1] != V[3] then ...
    . <> Change Switch: [2] = ON
    . <>
    : Else ...
    . <>
    : End of fork
    <> Fork Condition: If Switch [2] == ON then ...
    . <> Change Variable: [5] = V[3]
    . <> Change Variable: [6] = V[4]
    . <> Fork Condition: If Hero is facing up then ...
    . . <> Change Variable: [6] += 1
    . . <>
    . : End of fork
    . <> Fork Condition: If Hero is facing right then ...
    . . <> Change Variable: [6] -= 1
    . . <>
    . : End of fork
    . <> Fork Condition: If Hero is facing down then ...
    . . <> Change Variable: [6] -= 1
    . . <>
    . : End of fork
    . <> Fork Condition: If Hero is facing left then ...
    . . <> Change Variable: [6] += 1
    . . <>
    . : End of fork
    . <> Change Switch: [2] = OFF
    . <>
    : End of fork

    Und auf dem Event der Folger, Parallel Process:

    Zitat Zitat von EasyEventExporter
    - SCRIPT -
    <> Change Variable: [1] = X position on map (tiles) of hero
    <> Change Variable: [2] = Y position on map (tiles) of hero
    <> Set Event Location: This event -> (V[1], V[2])
    <> Loop
    . <> Change Variable: [7] = X position on map (tiles) of this event
    . <> Change Variable: [8] = Y position on map (tiles) of this event
    . <> Fork Condition: If Switch [2] == ON then ...
    . . <> Fork Condition: If Variable [8] > V[6] then ...
    . . . <> Move Event: This event, Frq 8, Pattern: Mv down
    . . . <>
    . . : End of fork
    . . <> Fork Condition: If Variable [8] < V[6] then ...
    . . . <> Move Event: This event, Frq 8, Pattern: Mv up
    . . . <>
    . . : End of fork
    . . <> Fork Condition: If Variable [7] > V[5] then ...
    . . . <> Move Event: This event, Frq 8, Pattern: Mv right
    . . . <>
    . . : End of fork
    . . <> Fork Condition: If Variable [7] < V[5] then ...
    . . . <> Move Event: This event, Frq 8, Pattern: Mv left
    . . . <>
    . . : End of fork
    . . <>
    . : Else ...
    . . <>
    . : End of fork
    . <> Wait: 0,1 sec.
    . <>
    : End of loop

  14. #14
    was is an meinem skript falsch?

  15. #15
    Bei mir hats geklappt - hab die Bedingung des Switches trotzdem nochmal geändert weil der Maker doch recht unpräzise ist.
    Hier hastes als Projekt:
    http://dhan.de/Follower.rar
    (Below Hero hab ich geändert in Same Level mit Slip Through permanent an)

    (ich denke, du weißt, wie man das um weitere Folger erweitert. Das initiale Teleportieren des Verfolgers sollte beim Erweitern für die neuen Folger ebenfalls auf ZielX,ZielY erfolgen damit sie in Haustüren nicht an unmöglichen Orten stehen)


    Wenn es absolut synchron erfolgen soll, wirds schwer - du müsstest den Hero permanent am Laufen hindern und jedesmal, wenn er versucht, zu laufen, die Hindernisse entfernen, ein (unsichtbares) Testprojektil vom Helden nach vorne abfeuern und wenn sich das bewegen konnte, mittels Move Event gleichzeitig Held und Verfolger bewegen. Unnötig kompliziert imho


    An deinem Skript ist erstmal falsch, dass du Variable 6 inkrementierst und dekrementierst wo du das mit Variable 5 machen müsstest. Ansonsten müsste es passen.
    Dass der Switch nie an ist, ist klar, das ist er nämlich nur für einen Sekundenbruchteil pro Heldenbewegung

    Geändert von Dhan (30.08.2010 um 20:45 Uhr)

  16. #16
    asooo....vielen dank

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •