Teleport auf Random-Map im Dungeon

  • Hallo zusammen,


    ich habe einen Dungeon gebaut, der aus 36 Maps besteht.

    Unter bestimmten Voraussetzungen soll man an einen zufälligen Ort auf einer zufällig ausgewählten Map teleportiert werden.


    Ich dachte zunächst daran, die Map-ID per Variable auszuwürfeln und dann einfach den Teleport-Befehl zu nutzen. Das große Problem dabei sind die X- und Y-Koordinaten.

    Wie kann ich die zufällig auswählen, und dabei garantieren, dass der Hero auf der gewürfelten Position auf einem begehbaren Tile steht und nicht in der Wand?


    Als Workaround werde ich die Position jetzt erstmal fix vorgeben und sicherstellen, dass das gewählte Tile auf allen Maps frei ist.


    Aber optimal wäre, wenn die Position auch immer unterschiedlich sein könnte. Fällt euch da was ein?

  • Kannste das nicht mit Regio IDs machen sodass du alle guten Plätze einer Regio Id zuweist und beim auswürfeln des Zielgebiets noch mal abfragst ob es gewünschte Regio Id ist, wenn nicht dann wird nochmal per Zufall ausgesucht (solange bis es passt, gf mit Loop verbinden)

  • Ich verstehe den Ansatz, und würde es gern so versuchen.


    Meine Idee war, die Regio-ID mit "Get Location Info" in eine Variable zu laden. Und wenn diese Variable eine "verbotene" Regio-ID hat, wird neu gewürfelt.

    Mein Problem ist nur, dass ich scheinbar nur die Regio-ID einer Map ermitteln kann, auf der ich mich bereits befinde?


    Gibt es eine alternative Methode, die Regio-ID einer anderen Map zu ermitteln?

    Sonst müsste ich erst rüberteleportieren, dann prüfen, und dann wird der Hero quasi nochmal teleportiert.


    pasted-from-clipboard.png

  • Als Workaround werde ich die Position jetzt erstmal fix vorgeben und sicherstellen, dass das gewählte Tile auf allen Maps frei ist.

    Das würde ich genauso machen, aber nicht nur mit einer Position pro Map, sondern gleich mit 4 unterschiedlichen Positionen. Und diese dann auch per Zufall auswählen.

    Die Kontrolle der freien Tiles ist sicher etwas mehr Aufwand, aber das sollte doch gehen.

  • Wenn man coden kann, kann man natürlich auch die Regio-IDs auf anderen Maps abfragen. Allerdings steht der Aufwand in keinem Verhältnis. Ich würde auch sagen, das Einfachste ist es, den Bildschirm auszublenden, teleportieren, prüfen ob ID gut, falls ja einblenden, falls nein wieder teleportieren und prüfen. Kann man, wie gesagt, recht gut in einem Loop unterbekommen. Wie oft man dann beim ausgeblendeten Bildschirm portet ist ja vollkommen egal.

  • Danke euch, ich habe es jetzt so gebaut, dass der Hero beim Teleport ausblendet. Auf der neuen Map dauert es tatsächlich schon mal bis zu 30 Frames, ehe eine passende Location gefunden ist, dann wird er wieder eingeblendet. Den Delay habe ich mit einer kleinen Animation kaschiert, das sieht ganz nett aus.


    Mehrere Zufalls-Tiles zu definieren, würde theoretisch gehen, aber praktisch sind mir das einfach zu viele manuelle Handgriffe. Das Script ist so angelegt, dass es immer funktioniert, egal, wie groß der Dungeon ist, wie viele Maps er hat usw. Einmalig die Region-IDs zu setzen, ist schon ziemlich gut.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!