Ankündigung

Einklappen
Keine Ankündigung bisher.

Endlosschleife...? (Map Scripts)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Endlosschleife...? (Map Scripts)

    Hi

    Ich hab da mal eine Frage zu folgenden Punkt im Map Script Editor und zwar ob es möglich ist Endlosschleifen zu erstellen die sich selbst immer erweitern.

    Aktuell arbeite ich an einer Map wo über den Script nach ein paar Sekunden, Wellen von Feinden auftauchen. Nach einer weile werden es halt immer mehr Wellen, die auch immer stärker werden.

    Mein Problem ist nun das 1 Welle von gut 10 Einheiten zu scripten eigentlich kein Problem ist, doch wenn man so mindestens 100 Wellen scripten will dann, dann wird man schon gut nach der 10ten Welle verrückt weil immer und immer wieder der gleichen Vorgang (grob 40 Zeilen script pro Welle) erledigen muss bis auf ein paar kleine leichte Veränderungen.


    Bisher habe ich da nur 2 möglichkeiten gefunden.
    Die erste ist wohl die die hoffentlich noch funktioniert.
    Script Recyclen.
    Sind dann zwar auch pro Welle viel zu viele Scripts aber das ist noch ertragbar wenn man später immer mehr Recyclen.

    Das andere wäre ein Automatischer Prozess.
    Da es die möglichkeit gibt im Editor Berechnungen zu machen, hoffe ich ja das man damit vielleicht arbeiten könnte.


    Nun mal hier ein Teil des Script


    Welle 1

    Order:
    Platzierung


    *** IF ***
    Timer '/Welle' has expired.
    *** THEN ***
    Turn AI Wall Builder for Player '<This Player's Enemies>' On
    Spawn Unit 'Nod Wave 1 Emessary 01' of type 'NODEmissary' on Team 'Wave' at waypoint Waypoint 'Wellen Punkt 01'
    Play Sound 'GDI_RadarScan' as though it was a 2D sound (NOT RECOMMENDED for 3D sounds).
    Unit 'Nod Wave 1 Emessary 01' EXACTLY follows waypoints, beginning at Waypoint Path 'Wave 1'
    Spawn Unit 'Nod Wave 1 Emessary 02' of type 'NODEmissary' on Team 'Wave' at waypoint Waypoint 'Wellen Punkt 02'
    Unit 'Nod Wave 1 Emessary 02' EXACTLY follows waypoints, beginning at Waypoint Path 'Wave 1'
    Spawn Unit 'Nod Wave 1 Emessary 03' of type 'NODEmissary' on Team 'Wave' at waypoint Waypoint 'Wellen Punkt 03'
    Unit 'Nod Wave 1 Emessary 03' EXACTLY follows waypoints, beginning at Waypoint Path 'Wave 1'
    Spawn Unit 'Nod Wave 1 Emessary 04' of type 'NODEmissary' on Team 'Wave' at waypoint Waypoint 'Wellen Punkt 04'
    Unit 'Nod Wave 1 Emessary 04' EXACTLY follows waypoints, beginning at Waypoint Path 'Wave 1'
    Spawn Unit 'Nod Wave 1 Emessary 05' of type 'NODEmissary' on Team 'Wave' at waypoint Waypoint 'Wellen Punkt 05'
    Unit 'Nod Wave 1 Emessary 05' EXACTLY follows waypoints, beginning at Waypoint Path 'Wave 1'
    Spawn Unit 'Nod Wave 1 Emessary 06' of type 'NODEmissary' on Team 'Wave' at waypoint Waypoint 'Wellen Punkt 06'
    Unit 'Nod Wave 1 Emessary 06' EXACTLY follows waypoints, beginning at Waypoint Path 'Wave 1'
    Spawn Unit 'Nod Wave 1 Emessary 07' of type 'NODEmissary' on Team 'Wave' at waypoint Waypoint 'Wellen Punkt 07'
    Unit 'Nod Wave 1 Emessary 07' EXACTLY follows waypoints, beginning at Waypoint Path 'Wave 1'
    Spawn Unit 'Nod Wave 1 Emessary 08' of type 'NODEmissary' on Team 'Wave' at waypoint Waypoint 'Wellen Punkt 08'
    Unit 'Nod Wave 1 Emessary 08' EXACTLY follows waypoints, beginning at Waypoint Path 'Wave 1'
    Spawn Unit 'Nod Wave 1 Emessary 09' of type 'NODEmissary' on Team 'Wave' at waypoint Waypoint 'Wellen Punkt 09'
    Unit 'Nod Wave 1 Emessary 09' EXACTLY follows waypoints, beginning at Waypoint Path 'Wave 1'
    Spawn Unit 'Nod Wave 1 Emessary 10' of type 'NODEmissary' on Team 'Wave' at waypoint Waypoint 'Wellen Punkt 10'
    Unit 'Nod Wave 1 Emessary 10' EXACTLY follows waypoints, beginning at Waypoint Path 'Wave 1'
    Turn Skirmish AI for Player Player '<This Player's Enemies>' On




    Order:
    Welle Wins


    *** IF ***
    Unit 'Nod Wave 1 Emessary 01' exists and is alive.
    *AND* Unit 'Nod Wave 1 Emessary 01' has reached the end of Waypoint Path 'Wave 1'
    *** OR ***
    Unit 'Nod Wave 1 Emessary 02' exists and is alive.
    *AND* Unit 'Nod Wave 1 Emessary 02' has reached the end of Waypoint Path 'Wave 1'
    *** OR ***
    Unit 'Nod Wave 1 Emessary 03' exists and is alive.
    *AND* Unit 'Nod Wave 1 Emessary 03' has reached the end of Waypoint Path 'Wave 1'
    *** OR ***
    Unit 'Nod Wave 1 Emessary 04' exists and is alive.
    *AND* Unit 'Nod Wave 1 Emessary 04' has reached the end of Waypoint Path 'Wave 1'
    *** OR ***
    Unit 'Nod Wave 1 Emessary 05' exists and is alive.
    *AND* Unit 'Nod Wave 1 Emessary 05' has reached the end of Waypoint Path 'Wave 1'
    *** OR ***
    Unit 'Nod Wave 1 Emessary 06' exists and is alive.
    *AND* Unit 'Nod Wave 1 Emessary 06' has reached the end of Waypoint Path 'Wave 1'
    *** OR ***
    Unit 'Nod Wave 1 Emessary 07' exists and is alive.
    *AND* Unit 'Nod Wave 1 Emessary 07' has reached the end of Waypoint Path 'Wave 1'
    *** OR ***
    Unit 'Nod Wave 1 Emessary 08' exists and is alive.
    *AND* Unit 'Nod Wave 1 Emessary 08' has reached the end of Waypoint Path 'Wave 1'
    *** OR ***
    Unit 'Nod Wave 1 Emessary 09' exists and is alive.
    *AND* Unit 'Nod Wave 1 Emessary 09' has reached the end of Waypoint Path 'Wave 1'
    *** OR ***
    Unit 'Nod Wave 1 Emessary 10' exists and is alive.
    *AND* Unit 'Nod Wave 1 Emessary 10' has reached the end of Waypoint Path 'Wave 1'
    *** THEN ***
    All of Player '<This Player's Enemies>''s buildings and units are dealt a lethal amount of damage.


    Ordner: Kill Wave Unit

    *** IF ***
    Unit 'Nod Wave 1 Emessary 01' has been destroyed.
    *** THEN ***
    Player '<This Player's Enemies>' gets $ 20

    *** IF ***
    Unit 'Nod Wave 1 Emessary 02' has been destroyed.
    *** THEN ***
    Player '<This Player's Enemies>' gets $ 20

    *** IF ***
    Unit 'Nod Wave 1 Emessary 03' has been destroyed.
    *** THEN ***
    Player '<This Player's Enemies>' gets $ 20

    *** IF ***
    Unit 'Nod Wave 1 Emessary 04' has been destroyed.
    *** THEN ***
    Player '<This Player's Enemies>' gets $ 20

    *** IF ***
    Unit 'Nod Wave 1 Emessary 05' has been destroyed.
    *** THEN ***
    Player '<This Player's Enemies>' gets $ 20

    *** IF ***
    Unit 'Nod Wave 1 Emessary 06' has been destroyed.
    *** THEN ***
    Player '<This Player's Enemies>' gets $ 20

    *** IF ***
    Unit 'Nod Wave 1 Emessary 07' has been destroyed.
    *** THEN ***
    Player '<This Player's Enemies>' gets $ 20

    *** IF ***
    Unit 'Nod Wave 1 Emessary 08' has been destroyed.
    *** THEN ***
    Player '<This Player's Enemies>' gets $ 20

    *** IF ***
    Unit 'Nod Wave 1 Emessary 09' has been destroyed.
    *** THEN ***
    Player '<This Player's Enemies>' gets $ 20

    *** IF ***
    Unit 'Nod Wave 1 Emessary 10' has been destroyed.
    *** THEN ***
    Player '<This Player's Enemies>' gets $ 20


    (Ich hatte versucht diesen Teil auf 1 Script zu vereinfachern aber irgendwie spinnt der Script dann total rum.)


    Tja so sieht bisher 1 Welle aus und ich darf wirklich für jede weitere Welle den ganzen kram komplett nach Editieren.
    Kopieren nimmt mir zwar schon eine menge Arbeit ab aber es ist immer noch zuviel.
    Das sind gut mal 5-15 Minuten rum geklicke pro Welle.
    Bei 100 geplanten Wellen vollkommen inakzeptable.


    Sooo, hat jemand also eine Lösung oder eine Idee wie man das noch mehr vereinfachen kann und dabei das Grundprinzip bei behält?

  • #2
    AW: Endlosschleife...? (Map Scripts)

    Seltsam, 56 Aufrufe aber nicht 1 Antwort.
    Nicht mal "Puh keine Ahnung wie das gehen soll, das ist zu hoch" oder "versteh die Frage nicht".


    Also mal eine Andere Frage, gibt es eine möglichkeiten Scripts von MS Word in den Editor zu kopieren?

    Kommentar


    • #3
      AW: Endlosschleife...? (Map Scripts)

      Frage1:Keine Ahnung,sorry
      Frage2:Glaube nicht aber wieso machst du die Scripts auf Word?Mache sie doch lieber gleich im Worldbuilder richtig.
      Die Ungläubigen werden brennen Nod´s Flammenpanzer werden das verdorbene Lande vernichten und Kane wird zurückkehren,niemand wird Nod im Weg stehen ein neues Zeitalter zu beginnen,das Tiberium Zeitalter wird die Welt verbessern.
      !Lang lebe Nod nieder mit der GDI!

      Kommentar


      • #4
        AW: Endlosschleife...? (Map Scripts)

        Grundlegend gehts dir raum, eine Welle immer und immer wieder aufzurufen, und neben dieser Welle immer noch eine weitere gleichzeitig zu spawnen, oder? Heißt:

        Well1: Welle1
        Welle2: Welle1 + Welle2
        Welle3: Welle1 + Welle2 + Welle3

        Oder irre ich mich da jetzt?

        Was du afaik machen könntest wär, die Scripts standardmäßig deaktiviert zu lassen, und die immer dann aktivierst wenn du sie benötigst. Wenn die Einheiten der Welle vernichtet wurden, sollte das Script wieder deaktiviert werden. Weiß grad nicht wo genau die aktivierungs und deaktivierungs Scripts sind, so sollts aber funktionieren.

        Was du sonst brauchst sind eben noch Counter und oder Timer, mit denen du Steuern kannst bei welcher Welle du bist, bzw. nach wie viel Zeit die nächste Welle kommen soll.


        Thundermods.net - DIE C&C3 Modding-Community!

        Join #thundermods @ irc.freenode.org!

        Kommentar


        • #5
          AW: Endlosschleife...? (Map Scripts)

          Zitat von xxtakerxx Beitrag anzeigen
          Frage1:Keine Ahnung,sorry
          Frage2:Glaube nicht aber wieso machst du die Scripts auf Word?Mache sie doch lieber gleich im Worldbuilder richtig.
          Nein ich schreib die nicht in Word aber bei der ganzen klick arbeit wäre das um längen einfach wenn man es machen könnte.

          Einfach Suche erstetzten und reinkopieren.


          Zitat von ThunderX86 Beitrag anzeigen
          Grundlegend gehts dir raum, eine Welle immer und immer wieder aufzurufen, und neben dieser Welle immer noch eine weitere gleichzeitig zu spawnen, oder? Heißt:

          Well1: Welle1
          Welle2: Welle1 + Welle2
          Welle3: Welle1 + Welle2 + Welle3

          Oder irre ich mich da jetzt?

          Was du afaik machen könntest wär, die Scripts standardmäßig deaktiviert zu lassen, und die immer dann aktivierst wenn du sie benötigst. Wenn die Einheiten der Welle vernichtet wurden, sollte das Script wieder deaktiviert werden. Weiß grad nicht wo genau die aktivierungs und deaktivierungs Scripts sind, so sollts aber funktionieren.

          Was du sonst brauchst sind eben noch Counter und oder Timer, mit denen du Steuern kannst bei welcher Welle du bist, bzw. nach wie viel Zeit die nächste Welle kommen soll.

          Counter brauch ich nicht wirklich, Timer reicht da vollkommen aus.
          Das mit den Aktivieren und deaktivieren ist auch kein wirkliches Problem.
          Ich hoffe ja wie gesagt das wenn ich 20 Wellen gescriptet habe, das ich die dann immer und immer wieder neu verwenden kann und nicht "Alles" immer wieder ändern muss.


          Die Wellen verändern sich ja ständig. Zuerst kommen 10 Schützen dann 10 Tanks dann 10 Mammuts usw.

          Es wäre halt sehr angenehm wenn ich nur noch den Einheiten Typ und nicht mehr überall den Einheiten Namen ändern müsste.

          Nochmal hier ein kleines Anschauungs Beispiel wie es bisher ausschaut mit dem Script.
          Angehängte Dateien

          Kommentar


          • #6
            AW: Endlosschleife...? (Map Scripts)

            Hab mir das Replay jetzt nicht angesehen, ABER: Spawnst du einzeln benannte Einheiten? Das ganze würd eventuell einfacher gehen, wenn du gleich benannte TEAMS spawnen würdest. Schau dir mal den Teameditor an (das Icon müsst gleich neben dem Scripteditor sein).


            Thundermods.net - DIE C&C3 Modding-Community!

            Join #thundermods @ irc.freenode.org!

            Kommentar


            • #7
              AW: Endlosschleife...? (Map Scripts)

              Theoretisch gesehen ist das richtig.
              Aber ich brauche zugriff auf die Einheiten für weitere scripts und deswegen die Namen.

              Beispiel

              *** OR ***
              Unit 'Nod Wave 1 Emessary 10' exists and is alive.
              *AND* Unit 'Nod Wave 1 Emessary 10' has reached the end of Waypoint Path 'Wave 1'

              *** THEN ***
              All of Player '<This Player's Enemies>''s buildings and units are dealt a lethal amount of damage.


              Hatte ich mit Team versucht, aber irgendwie gabs da immer einen Fehler und der Script wurde zu früh ausgelöst.
              bzw. garnicht mehr ausgelöst.


              Anderer Punkt ist dieser,
              *** IF ***
              Unit 'Nod Wave 1 Emessary 01' has been destroyed.
              *** THEN ***
              Player '<This Player's Enemies>' gets $ 20


              Das geht im Team überhaupt nicht da der nach der ersten Abfrage den Script nicht mehr weiter nutzt. Für die Berechnung gilt es als beendet sobald 1 Einheit des Teams zerstört wurde.



              Aber wenn du da ein paar Scripts kennst die sowas Team basierend vereinfachern, dann würd mir das schon sehr weiter helfen.
              Zuletzt geändert von ccdx21; 12.01.2008, 15:57.

              Kommentar

              Lädt...
              X