Ausführen wenn möglich

  • Hi, ich habe ein Problem was sich in vielen Bereichen in meinem Projekt widerspiegelt und eine Lösung dafür konnte ich nicht finden.
    Es geht um das "tatsächliche Ausführen" von Abläufen in Scripts im Multiplayer.

    Beispiel:
    Ich spawne eine Waffe und möchte diese in die Hand meines Chars geben.


    Das Problem ist, das dies so nicht funktioniert, sondern erst wenn ich einen Delay dazwischen mache, was ich aber für eine weitere Fehlerquelle halte.

    Ich möchte gerne das wenn ich etwas mache, etwa den Spawn des Actors, dass das Programm solange wartet bis dieses wirklich soweit ist und erst dann den Actor etwa in die Hand übergibt. Ohne Delay, sondern wenn es bereit ist.


    Das Problem habe ich in vielen anderen Bereichen und bräuchte dafür eine dauerhafte Lösung.

    Freue mich auf Antworten von euch.


    CustomEvent mit Reliable löst das Problem nicht.

  • Wie hast du es denn bisher geloest? Klar ist es in Multiplayer immer ein Problem mit der Replikation. Ein reines spawn und attach sollte elegant ohne delay funktionieren wenn der gespawnte actor repliziert wird. Klar hast du Latenzen im netzwerk - aber die wirst du immer haben. Wenn der Actor auf always relevant steht sollte er eigentlich immer repliziert werden. Problem loesen ohne davor zu sitzen is eh immer schwierig, machst du spawn und attach in einem Multicast oder wie hast du das realisiert? Wuerde dir echt mal vorschlagen dir mal ein paar Multiplayer templates anzusehen - genre is eigentlich egal - damit du mal siehst wie andere die Replikation loesen. Bin mir nicht mehr sicher - hatte ich nicht mal ein geupdatetes Multiplayer shooter template hochgeladen?



    Edit - hatte das Template doch nicht hochgeladen glaub ich, aber hier isses wenn du mal nen Blick draufwerfen magst.


    MP_SK_4_27.7z

  • CustomEvent mit Server + Reliable -> Switch has Authority -> Authority -> Spawn Actor of Class (mit der Waffe)

    -> Attach to Component = SocketName (Weil ich das ganze nur noch über die Bone Names laufen lasse.)


    Ohne Delay wird die Waffe angeheftet aber in falscher Ausrichtung.

    Mit Delay 0.2 wird die Waffe korrekt angeheftet.

    Also ist da irgendwo eine Verzögerung drinnen die ich gerne beseitigen möchte.

    Beide Blueprints (MyCharacter + Waffenblueprint) sind Replicated + Allways Relevant.


    Ähnliches gibt es auch in anderen Blueprints, ein kurzes Delay und schon funktioniert alles wieder.

    Aber das Problem bei Delay ist das dieser unpräzise ist.