Community-Tutorials (Source)

Teleportieren mit zufälligen Zielen

Wie man mit mehreren, übereinandergelegten Trigger_Teleport Brushes zu zufällig ausgewählten Zielen teleportieren kann ist ja bekannt. Ich möchte Euch hier eine Methode vorstellen, die mit nur einem Trigger_Teleport Brush auskommt, aber dennoch zu einem zufälligen Ziel teleportiert.

Das brauchen wir:

  • logic_case, damit erzeugen wir die zufällige Auswahl
  • path_track Paare, sie sollen die Ziele bilden
  • path_tracks zu seinem binären Baum zusammengestellt
  • func_tracktrain, Name: Ziel
  • trigger_teleport, der Teleporter (heißt hier auch so)

Die Idee dabei ist, dass mit dem logic_case die Weichen der path_tracks in einem binären Baum gestellt werden und dann der func_tracktrain eine gewisse Zeit auf dem Weg der Zielpaare verbringt. Vom binären Baum aus werden die Ziele angefahren und von dort geht es wieder zum binären Baum zurück. Alles natürlich mit teleport des func_tracktrains.

Wie Ihr den Teleporter mit dem Ziel (also dem func_tracktrain) verbindet, setz ich mal voraus.

Zuerst bauen wir uns einen binären Baum aus path_tracks zusammen. Jeder bekommt einen Namen (hier Weggabel) dem eine Nummer angehängt wird. Den ersten path_track (die Wurzel) nennen wir Weggabel_0, im Eintrag 'Next Stop Target' schreiben wir Weggabel_00 und in den Eintrag 'Branchpath' Weggabel_01.

Jetzt brauchen wir natürlich zwei weitere path_tracks mit den entsprechenden Namen Weggabel_00 und Weggabel_01. Wenn wir nur 4 Ziele bauen wollen sind wir mit dem binären Baum jetzt fertig. In die Einträge für 'Next Stop Target' bzw. 'Branchpath' schreiben wir dann die Ziele hinein.

Sollen es 8 Ziele werden (wie in der Beispielmap) brauchen wir eine weitere Ebene von 4 path_track, die wir dann logischer Weise Weggabel_000 bis Weggabel_011 nennen.

Die Ziele sind Paare von path_tracks. Ich habe sie Ziel_a0 bis Ziel_a7 und Ziel_z0 bis Ziel_z7 gennannt. Jedes Paar also Ziel_a und Ziel_z. In die unterste Ebene des binären Baumes werden die Zielnamen Ziel_a0 bis Ziel_a7 eingetragen, so dass wir direkt von dort zum Ziel gelangen.

Ob der Weg zwischen den Marken Ziel_a und Ziel_z sehr kurz ist, oder doch eine gewisse Länge haben soll bleibt Eurem Geschmack überlassen.

Jetzt die wichtigsten Eintragungen in den path_tracks. Bei allen, außer dem Zielende (Ziel_z), wird das Häkchen bei 'Teleport to THIS path track' gesetzt. Dadurch bewegt sich der func_tracktrain (fast) immer nur auf einer der Zielgeraden.

Kommen wir jetzt zum logic_case (heißt hier Zufallsgeber). Hier brauchen wir soviele Output-Einträge wir unser binärer Baum path_tracks hat. In jedem Output eines 'case' setzen wir den Eintrag: OnCase..., Weggabel_..., ToggleAlternatePath.

In jedem path_track der Zielepaare setzen wir in den Beginn den Output:
'OnPass,Zufallsgeber,PickRandom' und für den trigger_teleport: 'OnPass,Teleporter,Enable'. Am Ende des Zielpaares brauchen wir nun nur noch den Output auf 'OnPass,Teleporter,Disable' setzen. Durch das An- und Abschalten des Teleporters wird verhindert, dass wärend des Schaltens teleportiert werden kann.

Den func_tracktrain habe ich mit einer Nodraw-Textur belegt und passierbar gamcht. Nun wird er noch mit einem der path_tracks verbunden, Geschwindigkeit gesetzen usw. Ich habe hier als erstes Ziel Ziel_a0 gewählt.

Fertig!

PS: Bilder, Skizze und Beispielmap kommen in Kürze.