path_end / path_speed = 0

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • path_end / path_speed = 0

    Hallo GMler
    Ich habe jetzt mal was mit dem GM8 gemacht und hatte gleich ein Problem...
    Ich hab ein simples Wegfindungs-Script erstellt. Ein bisschen Selektierung und Mouse-Over nichts Besonderes.
    Eigentlich klappt alles. Nur wenn man Auf den Gegner klickt, soll man ihn attackieren (klappt eigentlich auch)
    Er soll zum Gegner hinrennen, und wenn man eine gewisse Nähe hat (fürs Example 50 Pixel) soll er stehen bleiben (den Pfad abbrechen) (Klappt soweit auch)
    Jetzt das Problem:
    Egal, wie ich den Pfad abbreche, ob mit "path_end()" oder "path_speed = 0"
    Immer das selbe Ergebnis: Will ich die Figur danach bewegen, ist Sense. Es wird kein neuer Pfad mehr berrechnet.
    Hier die Scripts:

    GML-Quellcode

    1. //command_attack(attacks,attacked)var attacks, attacked,dir;attacks = argument0attacked = argument1attacks.target = attackedwith attacks{ action_range = 80 if point_distance(x,y,target.x,target.y) > action_range { action_try = 2 dir = point_direction(target.x,target.y,x,y) command_move(id,target.x+lengthdir_x(32,dir),target.y+lengthdir_y(32,dir)) endaction = 1 } else action = 2 direction = point_direction(x,y,target.x,target.y) image_angle = direction creature_damage(target,id,5)}effect_create_above(0,x,y,1,255)



    GML-Quellcode

    1. //command_move(target,x,y)with argument0{ target_x = argument1 target_y = argument2 mp_grid_clear_all(path_grid) with creature if id != other.id mp_grid_add_instances(other.path_grid,id,0) mp_grid_path(path_grid,move_route,x,y,target_x,target_y,1) if point_distance(path_get_point_x(move_route,0),path_get_point_y(move_route,0),x,y) < move_speed path_start(move_route,move_speed,0,1) action = 1}


    /edit: Hier noch fürs Stoppen und ich habe die GMK angehängt

    GML-Quellcode

    1. if action_try > 0 and action == 1{ if point_distance(x,y,target.x,target.y) <= action_range { action = action_try path_speed = 0 }}


    Kann mir mal einer sagen, warum immer alles in eine Reihe gequetscht wird, egal wie oft ich es korrigiere?
    Dateien
    • Example.rar

      (11,41 kB, 133 mal heruntergeladen, zuletzt: )

    Die Community die ich einst liebte, ist mehr und mehr zu einer Plattform für kleine Kinder, selbstgerechte Gutmenschen und Heuchler verfallen.
    Viele Jahre habe ich ihr beim Sterben zugesehen aber mittlerweile habe ich alle Hoffnung aufgegeben.

    Golden Sun Camera Sample
    Mechferno Alpha 1.14
    Fruge Beta 3.01

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Sephiroth ()

  • Es wäre sehr freundlich, wenn wenigstens >irgendeine< Resonanz käme. Und wenn es nur: "Finde den Fehler nicht" ist. Dann weiß ich wenigstens, dass Derjenige sich die Mühe gemacht hat, es sich anzugucken...
    So jedoch gucke ich alle paar Stunden erwartungsvoll in den Thread, sehe (vllt - wenn es hoch kommt) 1 Download der Datei und das wars dann auch schon.

    Die Community die ich einst liebte, ist mehr und mehr zu einer Plattform für kleine Kinder, selbstgerechte Gutmenschen und Heuchler verfallen.
    Viele Jahre habe ich ihr beim Sterben zugesehen aber mittlerweile habe ich alle Hoffnung aufgegeben.

    Golden Sun Camera Sample
    Mechferno Alpha 1.14
    Fruge Beta 3.01
  • Hier ist deine Resonanz. "Finde den Fehler nicht."
    Nach ca. 10 Minuten rumsuchen hatte ich ehrlich gesagt keine Lust mehr, die Zusammenhänge zu finden. Es ist unnötig kompliziert und ich verstehe überhaupt nicht, wozu du einen Pfad benutzt. Im Normalfall braucht man nur ein paar Zeilen, um dein Vorhaben umzusetzen. Deshalb wär's vielleicht nicht verkehrt, mal zu erklären, warum du es so machen willst und was konkret passieren soll. Ich kann nicht mal den Fehler nachvollziehen, weil ich die Figur immer bewegen kann.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • EDIT: oh verdammt nochmal, bin mal wieder zu langsam xD


    Ok, dann hier deine Resonanz:
    Ich finde den fehler nicht...


    xD nein Spaß

    Glaube hab rausgefunden woran es liegt:
    Du hast im Stepevent ja diese Aktion die path_speed auf 0 setzt.
    Die sache ist die das auch wenn du die Einheit normal bewegst wird path_speed trotzdemjeden Step wieder auf 0 gesetzt...

    Hier ein Version mit einem Lösungsvorschlag.
    Dateien
    • Example.rar

      (11,45 kB, 131 mal heruntergeladen, zuletzt: )

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • @maugeDie "unnötige" Komplexität entsteht durch die Schnittstellen für andere Dinge, die ich schon vorher einbaue.
    Warum sollte ein Pfad unnötig sein? Nur weil NOCH keine anderen Soliden objekte da sind, außer der Gegner? (was allein dadurch schon Sinn macht)
    Klicke den Gegner doppelt an, dann läuft deine Figur zu ihm und bleibt bei 50 Pixel Distanz stehen - Danach kannst du ihn nicht mehr bewegen (habe ich genauso aber bereits geschrieben)

    Die Community die ich einst liebte, ist mehr und mehr zu einer Plattform für kleine Kinder, selbstgerechte Gutmenschen und Heuchler verfallen.
    Viele Jahre habe ich ihr beim Sterben zugesehen aber mittlerweile habe ich alle Hoffnung aufgegeben.

    Golden Sun Camera Sample
    Mechferno Alpha 1.14
    Fruge Beta 3.01
  • @DragonGamer


    Oh mann xD Klar der fragt ja in dem Teil einfach nur ob er sich bewegt, und nicht ob er gerade angreift...
    Ich werde einfach action_try konkreter abfragen. Ok danke xD
    Wie peinlich

    /edit:
    Sorry für den Doppelpost? Kann den Jemand zusammenschieben?

    Die Community die ich einst liebte, ist mehr und mehr zu einer Plattform für kleine Kinder, selbstgerechte Gutmenschen und Heuchler verfallen.
    Viele Jahre habe ich ihr beim Sterben zugesehen aber mittlerweile habe ich alle Hoffnung aufgegeben.

    Golden Sun Camera Sample
    Mechferno Alpha 1.14
    Fruge Beta 3.01
  • Ok, das mit dem Doppelklick hättest du vielleicht erwähnen können. Jetzt kann man es auch nachvollziehen. Ich glaube, es liegt an der Variable "action_try". Beim Angriff setzt du sie auf 2, dadurch kann sich der Spieler nicht mehr bewegen, wenn ich das richtig deute.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.