Fragen und Antworten zum Starcraft II Galaxy Editor

Habt ihr Fragen zum Galaxy Editor, oder möchtet ihr eure Karte vorstellen? Alles was mit dem Thema Editor und Modding zu tun hat, gehört hier rein.

Moderatoren: Exekutor[NHF], Deathwing, GarfieldKlon, G A F, SaVi

Benutzeravatar
Deviltiger
Mutalisk
Beiträge: 512
Registriert: 31.07.2008, 18:46
Wohnort: Provinz Neu-Antioch, Shakuras
Kontaktdaten:

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von Deviltiger »

Naja, du kannst eine Variable erstellen, die definierste auf 0, und wenn die Einheit betritt, schalteste um auf 1. Und der Auslöser soll nur anspringen, wenn die Variable=0 ist.

So sollte es funktionieren.
Zuletzt geändert von Deviltiger am 05.08.2010, 20:29, insgesamt 1-mal geändert.
“I may be a sorry case, but I don't write jokes in base 13.” Douglas Adams

Bild
get your own starcraft 2 signature at sc2sig.com
nerostar
Sonde
Beiträge: 6
Registriert: 30.07.2010, 14:37

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von nerostar »

Kannst du mir bitte genauer sagen wie du das machste?
Ich weist nämlich nicht wie ich das mit dem if mache und wie ich die Variable incrementiere, bzw decrementiere.
Flintenzwerg
Moderator des Kel-Moria-Kombinats
Moderator des Kel-Moria-Kombinats
Beiträge: 493
Registriert: 03.09.2007, 20:58
Liga 1vs1: Platin
Liga 2vs2: Keine
Mainrace: Terraner

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von Flintenzwerg »

Einfacher ist es, wenn du als erste Aktion "Turn off (current trigger)" benutzt. So schaltet er sich nach einem Durchgang selbst ab.
Benutzeravatar
Deviltiger
Mutalisk
Beiträge: 512
Registriert: 31.07.2008, 18:46
Wohnort: Provinz Neu-Antioch, Shakuras
Kontaktdaten:

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von Deviltiger »

Ok, ich hab mist erzählt... das mit den Variablen kannste vergessen, klappt (zumindest bei mir) nicht so, wie ich es mir vorgestelt habe.

Was anderes:

Es gibt eine Aktion, die heißt "Auslöser an/ausschalten" (Im englischen vermutlich "Turn Trigger on/off" oder so ähnlich). Diese Aktion in deinem "spawn Zerglinge" Auslöser ausführen. Als Ziel-Auslöser musst du diesen Auslöser selber anwählen.

edit: Tja Flintenzwerg war schneller ^^
“I may be a sorry case, but I don't write jokes in base 13.” Douglas Adams

Bild
get your own starcraft 2 signature at sc2sig.com
Flintenzwerg
Moderator des Kel-Moria-Kombinats
Moderator des Kel-Moria-Kombinats
Beiträge: 493
Registriert: 03.09.2007, 20:58
Liga 1vs1: Platin
Liga 2vs2: Keine
Mainrace: Terraner

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von Flintenzwerg »

Das mit der Variable müsste aber auch klappen.

Du brauchst halt eine Condition, die prüft, ob die Variable = 1 false ist.
Dann in den Aktionen einfach Variable = 1 +Rest.

Aber mit "Turn Off" is halt eleganter ;)
Dersa
Sonde
Beiträge: 2
Registriert: 05.08.2010, 23:18

Timer nicht ablaufend

Beitrag von Dersa »

Hi,

also ich habe ein problem ein weg zu finden wie ich eine Uhr im Spiel anzeigen lassen kann, mit einer geschwindichkeit meiner wahl.

Ich wollte es mit Variablen lösen die hochzählt. Aufgeteilt in Minuten,Stunden,Tage. Aber wie mache ich es damit jeder spieler die Zeit sehen kann?

Und wie kriege ich es hin das es um z.B. 18 uhr immer dunkler wird? wie in der kampagne z.B.

Bin eigendlich noch ein anfänger und nach 2 tagen habe ich langsam keine lust mehr zu suchen. Wenn ihr mir bischen unter die arme greifen könntet währe das super, bin schon gegen so viele bäume gelaufen....ich finde den Wald einfach nicht.

THX schon mal im vorraus
Benutzeravatar
Ghul
Adler
Beiträge: 167
Registriert: 11.04.2010, 22:16
Liga 2vs2: Meister

Re: Timer nicht ablaufend

Beitrag von Ghul »

sollte son kram nicht im frage und antworten thread stehn?
wenn ich mich nicht täusche müsste sich der momentan genau unter deinem frage-thread befinden :B
Bild
Dersa
Sonde
Beiträge: 2
Registriert: 05.08.2010, 23:18

Re: Timer nicht ablaufend

Beitrag von Dersa »

uh, ging aber schnell. sorry habe den thread nicht gesehen, habe verschiedene suchbegriffe verwendet aber nix gefunden was hilfreich wahr, werde mich dann mal nurch die "paar" seiten durchkämpfen.

Edit: Also bin komplett durch. Leider nix gefunden. Kann mir sonst jemand Helfen?
Benutzeravatar
Xyonon
Ultralisk
Beiträge: 1790
Registriert: 15.09.2008, 21:09
Liga 1vs1: Keine
Liga 2vs2: Keine
Mainrace: Zerg
Wohnort: Schweiz

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von Xyonon »

Hab da auch mal ne Frage:

Hab ne 4er Map gemacht und möchte dass sie auf 1v1, 2v2, 3v1 und JvJ möglich ist zu spielen. Doch wenn ich sie dann in SC starte, hab ich 3v1 als standart drin. Wie kann ich das nun so ziehen, dass das 2v2 wird? Ich kann Spieler nur teilen, aber nict zu einer Gruppe zusammenfügen.

Und dann hab ich noch ne Frage wie ich die maximalbevölkerung ändern kann. 200 auf 400 z.B.

Danke schon mal!

lg Xyo
SaVi
Moderator des Zwielichts
Moderator des Zwielichts
Beiträge: 616
Registriert: 21.05.2008, 16:53
Liga 1vs1: Diamant
Liga 2vs2: Platin
Mainrace: Protoss

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von SaVi »

Maximalbevölkerung lässt sich glaub ich nicht ändern und nen Timer als Uhrzeit zu benutzen geht glaub ich auch nicht.. Die Zeit soll ja nicht ablaufen sondern steigen.

Wirst warscheinlich sowas wie nen Leaderboard oder einen Dialog button mit nem Text drauf erstellen müssen. Vll. ein Auslöser der jede Spielsekunde die Uhrzeit um so und so viele Sekunden steigen lässt (soll ja keine 24h dauern bis es nacht wird^^), dann noch das Leaderboard oder den Buttontext updaten und dann einstellen mit wenn dann falls, dass wenn es über die 24. Stunde kommte wieder bei 0 anfangen soll.

Und mit Nach - Tag kannst ja gleich mit abfragen, bei dem Auslöser.

Wenn dann sonst - IF: (Variable (Integer?) >= 18
IF: (Variable <= 5
IF: (Nacht Zyklus (Boolean)) = False
Aktion: Nacht starten
Nacht Tyklus (Boolean) = True setzen

IF: (Variable) <= 18
....

Irgendwie so^^

Wobei du aber schlecht 18 benutzen kannst, da ja ne minute 60 Sekunden dauern^^ musst selber rausfinden welche Zahl du nehmen musst um 18:00 Uhr abzufragen
Bild
scumpy
Zergling
Beiträge: 16
Registriert: 07.08.2010, 11:07

Problem mit Besitzübername-Trigger

Beitrag von scumpy »

Hallo zusammen,

ich bin neu hier und habe folgendes Problem bei einem Auslöser / Trigger.

Auf der Karte gibt es eine Art Arena, wo alle x Minuten Gegner auftauchen:
z.B.:
15 Space Marines für Spieler 15 bei Punkt Arena erstellen und Nutzung der Standardausrichtung

Das klappt soweit.

Auf der Karte sind einige Gebäude verteilt, welche in den Besitz von Spieler 1 übergehen sollen, wenn die in der Arena erzeugten Einheiten besiegt wurden
z. B.:
Den Besitzanspruch von Xel'Naga Turm [x,y] auf SPieler 1 übertragen und Farbe beibehalten

Nur wie kann ich die Bedingung einbauen, dass die Einheiten in der Arena zerstört / tot sein müssen, damit Spieler 1 den Besitz übernimm?

Mit dem Ereignis "Einheit stirbt" bekomme ich das nicht hin, da ich nur Einheiten angeben kann, welche auf der Karte gesetzt wurden und nicht per Trigger generiert wurden?

Hat da jemand eine Idee / Lösung ?
Flintenzwerg
Moderator des Kel-Moria-Kombinats
Moderator des Kel-Moria-Kombinats
Beiträge: 493
Registriert: 03.09.2007, 20:58
Liga 1vs1: Platin
Liga 2vs2: Keine
Mainrace: Terraner

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von Flintenzwerg »

Du musst beim erstellen der Einheiten definieren, dass sie in einer Variable gespeichert werden.
Dazu baust du eine globale Variable vom Typ "Einheitengruppe" und fügst deine Space Marines direkt nach der erstellung via Trigger zu dieser Gruppe hinzu.

Dann checkst du in deinem "Turm-Trigger" ob, wenn eine Einheit stirbt, diese Einheit aus der Gruppe war _und_ ob die Gruppe leer ist.
scumpy
Zergling
Beiträge: 16
Registriert: 07.08.2010, 11:07

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von scumpy »

Hallo Flintenzwerg,

vielen Dank für die Hilfestellung, kannst du evtl. noch ein Beispiel geben, sorry, bin ganz neu auf dem Gebiet :-)
Flintenzwerg
Moderator des Kel-Moria-Kombinats
Moderator des Kel-Moria-Kombinats
Beiträge: 493
Registriert: 03.09.2007, 20:58
Liga 1vs1: Platin
Liga 2vs2: Keine
Mainrace: Terraner

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von Flintenzwerg »

Ich werde gleich ein Beispiel machen und es dann hier rein editieren.

/edit:
Spawn
Events
Game - Map initialization
Local Variables
Conditions
Actions
General - Wait 15.0 Real Time seconds
Unit - Change ownership of Supply Depot [116.00, 115.00] to player 0 and Change Color
Unit - Create 4 Marine for player 2 at (Center of Region 001) using default facing (No Options)
Variable - Set UnitGroup = (Last created units)
Gruppe tot
Events
Unit - (Unit 1 from UnitGroup) dies
Local Variables
Conditions
(All units in UnitGroup are dead) == true
Actions
Unit - Change ownership of Supply Depot [116.00, 115.00] to player 1 and Change Color
Trigger - Run Spawn (Check Conditions, Don't Wait until it finishes)
Das sind die Trigger. "Unit Group" ist einfach eine leere Einheitengruppe als Variable.
Da nicht jeder was mit den englischen Begriffen anfangen kann, gibts die Beispielmap dazu hier.

Ich habe ein paar Sachen zur besseren Übersicht und geringerer Fehleranfälligkeit anders gemacht.
So werden auf der Map keine Units spawnen solange die Einheiten nicht tot sind.
Ausserdem habe ich kein "Periodic Event" genommen, da dieses nach meinen Erfahrungen auch den Timer laufen lässt, wenn der Trigger ausgeschalten ist.
scumpy
Zergling
Beiträge: 16
Registriert: 07.08.2010, 11:07

Re: Fragen und Antworten zum Starcraft II Galaxy Editor

Beitrag von scumpy »

Hallo Flintenzwerg,

vielen Dank, mit dem Beispielt klappt es sehr gut.

Habe nun versucht vollgendes umzusetzen:
nach Spielstart läuft ein Timer ab, nach dessen Ablauf sollen die Einheiten (Einheitengruppe -> Welle1) erscheinen und ein Gebäude (Xel'Naga Turm) wird Spieler 0 zugewiesen, besigt man die Welle, bekommt Spieler 1 den Turm zugesprochen.

In Abständen von 5 Minuten sollen nun weitere Wellen folgen, sodass man alle 5 Minuten den Turm verliert und erst die neue Welle besiegen muss (mit immer stärkeren Einheiten), um ihn wieder zu besitzen. Der Timer soll jedoch nur dann wieder 5 Minuten herunterzählen, wenn die aktuelle Welle besiegt wurde, damit sich keine Übermacht ansammelt...

Bei der ersten Welle klappt das noch, dann jedoch kommt ein Scriptfehler.
Auslöser: get_Auge_Func
Stapel Überlauf

Wahrscheinlich habe ich das eh etwas verkompliziert, hier mal der Code

Code: Alles auswählen

vARIABLEN
Welle01 = (Leere Einheitengruppe) <Einheitengruppe>
TimerZeit = (Neuer Timer) <Zeitschalter>
TimerFenster = Kein Timer-Fenster <Timer-Fenster>
TimerZeit 2 = (Neuer Timer) <Zeitschalter>
TimerFenster 2 = Kein Timer-Fenster <Timer-Fenster>


Nahkampfinitialisierung
    Ereignisse
        Spiel -Karteninitialisierung
    Lokale Variablen
    Bedingungen
    Aktionen
        Standard -Zu Beginn verfügbare Standardspiel-Ressourcen für alle Spieler festlegen
        Standard -Zu Beginn verfügbare Standardspiel-Starteinheiten für alle Spieler erstellen
        Standard -Startet die Standard-KI für alle computergesteuerten Spieler
        Standard -Standardoptionen für alle Spieler für den Spielmodus Standard festlegen
        Timer -TimerZeit als Einmalig Timer starten, der nach 10.0 Spielzeit Sek. abläuft
        Variable -TimerZeit = (Zuletzt gestarteter Timer) festlegen
        Timer -Erstellt unter Verwendung von Verbleibend Zeit (zu Begin Sichtbar) ein Timer-Fenster für TimerZeit mit dem Titel "Versteckter Gegner in:"
        Variable -TimerFenster = (Zuletzt erstelltes Timer-Fenster) festlegen
        Timer -TimerFenster für (Alle Spieler) Anzeigen
        Timer -TimerZeit 2 als Einmalig Timer starten, der nach 200.0 Spielzeit Sek. abläuft
        Variable -TimerZeit 2 = (Zuletzt gestarteter Timer) festlegen
        Timer -Erstellt unter Verwendung von Verbleibend Zeit (zu Begin Versteckt) ein Timer-Fenster für TimerZeit 2 mit dem Titel "Welle 2 in:"
        Variable -TimerFenster 2 = (Zuletzt erstelltes Timer-Fenster) festlegen


Timer ist abgelaufen
    Ereignisse
        Timer -TimerZeit läuft ab
    Lokale Variablen
    Bedingungen
    Aktionen
        Timer -TimerFenster zerstören
        Timer -TimerFenster für (Alle Spieler) Ausblenden
        Einheit -Den Besitzanspruch von Xel'Naga-Turm [59.00,93.00] auf Spieler 0 übertragen und Farbe ändern
        Einheit -15 Marodeur für Spieler 14 bei Endkampf erstellen und Nutzung der Standardausrichtung (Keine Optionen)
        Variable -Welle01 = (Zuletzt erstellte Einheiten) festlegen


Auge
    Ereignisse
        Einheit -(Einheit 1 aus Welle01) stirbt
    Lokale Variablen
    Bedingungen
        (Alle Einheiten in Welle01 sind tot) == true
    Aktionen
        Einheit -Den Besitzanspruch von Xel'Naga-Turm [59.00,93.00] auf Spieler 1 übertragen und Farbe beibehalten
        Auslöser -Auge starten (Bedingungen überprüfen, Nicht warten bis zur Fertigstellung)





zur Zeit deaktiviert:
Timer Fenster 2
    Ereignisse
        Timer -Verstrichene Zeit beträgt 10.0 Spielzeit Sek.
    Lokale Variablen
    Bedingungen
    Aktionen
        Timer -TimerFenster 2 für (Alle Spieler) Anzeigen


zur Zeit deaktiviert:
Timer ist abgelaufen 2
    Ereignisse
        Timer -TimerZeit 2 läuft ab
    Lokale Variablen
    Bedingungen
    Aktionen
        Timer -TimerFenster 2 zerstören
        Timer -TimerFenster 2 für (Alle Spieler) Ausblenden
        Einheit -Den Besitzanspruch von Xel'Naga-Turm [59.00,93.00] auf Spieler 0 übertragen und Farbe ändern
        Einheit -15 Hellion für Spieler 14 bei Endkampf erstellen und Nutzung der Standardausrichtung (Keine Optionen)
        Variable -Welle01 = (Zuletzt erstellte Einheiten) festlegen
Wie kann ich das oben erwähnte umsetzen?
Sorry, wenn das jetzt etwas viel auf einmal ist.
Antworten