Einige Fragen zum Starcraft 2 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

Der_Neue
Zergling
Beiträge: 20
Registriert: 24.10.2011, 17:21
Liga 1vs1: Platin
Mainrace: Random

Einige Fragen zum Starcraft 2 Editor...

Beitrag von Der_Neue »

Hallo Zusammen,
Ich hoffe ich bin hier richtig (ich find mich in Foren nicht richtig zurecht ^^)
Ich würde mir gerne eine eigene Map erstellen, eine special forces map. (soll ähnlich sein wie night special forces) Terrain ist schon erstellt und einige Sachen hab ich auch in verschiedenen Tutourials gefunden, aber manches krieg ich nicht hin.

1.Wie kann ich ein Voting system einbauen für verschiedene Schwierigkeiten oder wie kann ich es so einstellen, dass man in der Lobby die Schwierigkeit einstellen kann. (also z.b dann in höheren Schwierigkeiten die Trefferpunkte und den Schaden der Gegner erhöhen etc.)

2.Wie kann ich das einstellen, dass jedes mal wenn ein bestimmtes Gebäude zerstört wird die Trefferpunkte und der Schaden von bestimmten Einheiten zunehmen.

Das wärs erstmal^^ vielleicht kommen später noch ein paar Fragen dazu. Danke im Vorraus.
ImpKatzelot
Space-Marine
Beiträge: 31
Registriert: 30.01.2011, 15:07
Liga 1vs1: Gold
Liga 2vs2: Platin
Mainrace: Random
Kontaktdaten:

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von ImpKatzelot »

Hallo,

erstmal willkommen im Forum.

Zu deiner ersten Frage: Damit habe ich mich mal ausführlicher befasst, siehe hier: viewtopic.php?f=14&t=2427&start=660 (ab dem ersten Post auf der Seite steht, wies alles nich klappt, der Post vom 21.07.2011 1:07 zeigt, wie es klappt). //Edit: Damit = Mit dem Einstellen von Zeugs in der Lobby.

Zur zweiten Frage: Es gibt eine Funktion, die im englischen Editor Unit - Set Unit Property heißt. Damit kannst du Eigenschaften direkt beeinflussen. Schöner wäre vermutlich eine Lösung, bei der du Upgrades erstellst, die den Powerups entsprechen und die dann verteilt werden. Das krieg ich grad auf die Schnelle aber nicht zusammen.

Ich hoffe das hilft dir schonmal etwas weiter.

Viele Grüße
ImpKatzelot
Der_Neue
Zergling
Beiträge: 20
Registriert: 24.10.2011, 17:21
Liga 1vs1: Platin
Mainrace: Random

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Der_Neue »

Erstmal danke für deine Antwort, hat mir schonmal ein kleiiines Stück weiter geholfen :D
Also ich bin ganz neu im Editor, hab auch vorher nie mit sowas gearbeitet, find mich gerade so einigermaßen zurecht also bitte mal für ganz Dumme ^^
Habs jetzt schonmal soweit hinbekommen, dass ich mir die Spielvariante und Attribute erstellt habe. Also 4 verschiedene Schwierigkeiten. Wie genau funktioniert das jetzt mit der Variable? ^^ ich erstell mir also die Variable und dann leg ich da welchen wert wie fest? Und wie frag ich das dann Als Ereignis ab?

P.S.:Achja und rein Interesse halber wie kann ich ein Voting System einführen, also wenn das Spiel startet öffnet sich ein Fenster wo man z.b auch Schwierigkeiten oder Ähnliches wählen kann?

P.P.S:Und wie kann ich eine Art Dialog machen, also, dass dann auf dem Bildschirm erscheint: (Name):(Text, den die Einheit sagen soll)
ImpKatzelot
Space-Marine
Beiträge: 31
Registriert: 30.01.2011, 15:07
Liga 1vs1: Gold
Liga 2vs2: Platin
Mainrace: Random
Kontaktdaten:

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von ImpKatzelot »

Ich habe den Editor nur auf Englisch, daher sind alle Befehle in Englisch.
Die Variable kannst du im Auslöser-Editor hinzufügen wie einen neuen Auslöser (Rechtsklick -> New -> New Variable oder so).
Dann wählst du den Typ aus: zum Beispiel eine Zahl - Integer.
Um diese Variable jetzt anzupassen, brauchst du im Trigger, der bei der Karteninitialisierung ausgelöst wird, folgendes:

Code: Alles auswählen

Karteninitialisierung
    Events
        Game - Map initialization
    Local Variables
        Schwierigkeit = (Schwierigkeitsgrad game value) <Attribute Value>
    Conditions
    Actions
        General - If (Conditions) then do multiple (Actions)
            If Then Else
                General - Else if (Conditions) then do (Actions)
                    Else If
                        Schwierigkeit == Lv1 - Moderat
                    Then
                        Variable - Set Schwierigkeitsgrad = 1
            If Then Else
                General - Else if (Conditions) then do (Actions)
                    Else If
                        Schwierigkeit == Lv2 - Normal
                    Then
                        Variable - Set Schwierigkeitsgrad = 2
usw. usw.
Die Variable Schwierigkeitsgrad kannst du jetzt beliebig abfragen.

Wenn du neu im Editor bist, würde ich dir für die Trigger allgemein empfehlen, bei Youtube mal nach Tutorials zu schauen. Das verschafft dir einen Überblick.

P.S.: Das funktioniert über Dialoge, die sind eine eigene Gruppe im Trigger Editor. Damit kenne ich mich aber nicht genauer aus - jetzt hast du mal einen Begriff nach dem du suchen kannst.

P.P.S.: Texteinblendungen laufen über die Befehlsgruppe UI (User Interface). Der Befehl ist UI - Display Message for (All players) to Subtitle area
Benutzeravatar
Artery
Zergling
Beiträge: 16
Registriert: 25.10.2011, 18:27
Liga 1vs1: Keine
Liga 2vs2: Keine

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Artery »

Also zu dem Voting zeugs ;)

Wie du schon gesagt hast musst du einen Dialog erstellen, das funktioniert folgendermaßen:

Code: Alles auswählen

        Dialog - Einen Modal Dialog mit der Größe (500, 400) bei (0, 0) relativ zu Mitte des Bildschirms erstellen
        Variable - Dein Dialog = (Zuletzt erstellter Dialog) festlegen
        Dialog - Titel von Dein Dialog zu "Dein Titel!" setzen
        Dialog - Anzeigen Dein Dialog für (Alle Spieler)
Damit erstellst du einfach ein Dialogfenster! Was du jetzt noch brauchst sind z.b. Buttons, diese erstellst du folgender Maßen:

Code: Alles auswählen

Dialog - Schaltfläche für den Dialog Dein Dialog erstellen
Variable - Dein Button = (Zuletzt erstellter Dialoggegenstand) festlegen
Du solltest darauf achten, dass du immer alle Dialoggegenstände und Dialoge in variablen speicherst, weil du sonst nicht mehr auf sie zugreifen kannst!

Was dir jetzt noch fehlt, ist ein Trigger wenn z.b. ein Spieler einen button drückt etwas passiert.
Das sieht so aus:

Code: Alles auswählen

Event:
        Dialog - Beliebiger Dialoggegenstand wird von Spieler Beliebiger Spieler mit Ereignis Geklickt verwendet


Conditions:
                (Dialog enthält (Verwendeter Dialoggegenstand)) == Dein Dialog

Bei bedarf kannst du das Event noch weiter einschränken, weil es jetzt immer greift wenn auf ihrgendeinem Dialog ihrgendein Dialogegenstand gedrückt wurde ;)

Bei den bedingungen musst du darauf achten, dass wenn du für jeden Spieler einen Dialog erstellst auch für jeden Dialog die Bedingung vorhanden ist!
Z.B. sonst passiert nur was wenn Spieler 1 auf seinem Dialog was drückt, obwohl alle anderen ihren Dialog sehen ;)

Du musst aber nicht unbedingt Buttons nehmen, kannst auch Pulldown menüs. checkboxes usw. benutzen.

Guck einfach mal unter :

Code: Alles auswählen

        Dialog - Schaltfläche für den Dialog (Zuletzt erstellter Dialog) erstellen
Da stehen alle verwendbaren Dialogegenstände =)

Viel Spaß damit und beim rumprobieren :P

MfG Artery
Der_Neue
Zergling
Beiträge: 20
Registriert: 24.10.2011, 17:21
Liga 1vs1: Platin
Mainrace: Random

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Der_Neue »

Danke euch beiden für die Antworten =)
Müsste ich hinkriegen. Hab gerade keinen Nerv dafür, setze mich dann in den nächsten Tagen mal dran und gebe noch mal ne Rückmeldung. Danke nochmals ^^

Edit: Ok funktioniert soweit alles super :)
Ich versteh das nur noch nicht genau mit dem einschränken. Wie gesagt ich bin neu ^^
Also nur mal als Test ich will jetzt, dass immer, wenn ich Button 1 drücke, Einheit x getötet wird und wenn ich Button 2 drücke, Einheit y.
Muss ich dann den Buttons jeweils Variablen zuordnen und dann in "Dialog - Beliebiger Dialoggegenstand wird von Spieler Beliebiger Spieler mit Ereignis Geklickt verwendet" das "Beliebiger Dialoggegenstand" durch die Variable ersetzen? Klappt irgendwie nicht, die Variable steht da nicht zur Auswahl.
Deathwing
Moderator der Leere
Moderator der Leere
Beiträge: 287
Registriert: 30.04.2010, 16:15
Liga 1vs1: Meister
Liga 2vs2: Keine
Mainrace: Random
Wohnort: Berlin

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Deathwing »

Hallo Der_Neue im Forum erstmal von mir!
Es gibt 2 Möglichkeiten damit du diese Unterscheidung machen kannst!
Die 1. Option besteht darin das du als Ereignis halt

Code: Alles auswählen

Dialog - Beliebiger Dialoggegenstand wird von Spieler Beliebiger Spieler mit Ereignis Geklickt verwendet
benutzt und dann eine Condition(Bedingung) zum Auslöser hinzufügst, die dann lautet:

Code: Alles auswählen

(Benutzter Dialoggegenstand) Gleich (Button 1)
Die 2. Variante besteht darin, dass du über ein CustomScript das Ereignis bei der Dialogerzeugung miterstellst, dort kannst du dann auch machen, dass das Ereignis halt ist:
"Dialog - Button1 wird von Spieler Beliebiger Spieler mit Eregnis Geklickt verwendet"
Dies kannst du aber nicht via dem normalen Editor GUI machen, sondern nur über ein CustomScript!

Also dafür gehste am besten zu den Auslöser wo du
Button 1 = Letzter erstellter Dialoggegenstand
definierst, dann fügste eine neue Aktion ein, diese heißt Custom Script.
Dort schreibste dann EXAKT das folgende rein:

Code: Alles auswählen

TriggerAddEventDialogControl(gt_DEINZIELAUSLÖSER, c_playerAny, gv_DEINDIALOGGEGENSTANDSNAME, c_triggerControlEventTypeClick);
Du solltest "DEINZIELAUSLÖSER" mit den namen des auslösers ersetzen, welcher dann für das Einheitentöten ist. Dabei ist zubeachten das das erste Wort des Auslösers klein geschrieben werden mus und zusammen ohne Sondernzeichen,
also aus: Kill-Units wird killUnits
Das Gleiche gilt auch für "DEINDIALOGGEGENSTANDSNAME" halt nur der Name des Buttons :)

Ich hoffe ich konnte Dir damit weiterhelfen, falls du noch Probleme hast, melde Dich einfach bei mir.

grüße

Deathwing
It is done... All have been given that which must be given.
I now seal the Dragon Soul forever...
For it to be as it must, yes.

Bild
Benutzeravatar
Artery
Zergling
Beiträge: 16
Registriert: 25.10.2011, 18:27
Liga 1vs1: Keine
Liga 2vs2: Keine

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Artery »

@Deathwing
Ich glaube das mit dem Custom Script (Galaxy) sollte er erstmal lassen, wenn er keine programmier erfahrung hat ;)


@Topic,

also ich habe es dir nochmal ausführlich geschrieben hier:

Code: Alles auswählen

Dialog_erstellen
    Ereignisse
        Spiel - Karteninitialisierung
    Lokale Variablen
    Bedingungen
    Aktionen
        Dialog - Einen Modal Dialog mit der Größe (500, 400) bei (0, 0) relativ zu Mitte des
               Bildschirms erstellen
        Variable - DeinDialog = (Zuletzt erstellter Dialog) festlegen
        Dialog - Titel von DeinDialog zu "Dein Titel" setzen
        Dialog - Erstellt eine Schaltfläche für den Dialog DeinDialog mit den Dimensionen 
                (200, 50), verankert an Oben mit einem Offset von (0, 150). Setzt den  
                Tooltip auf "" mit dem Schaltflächentext "Töte Einheit X"  und dem  
                Schwebebild ""
        Variable - DeinDialoggegenstand_X = (Zuletzt erstellter Dialoggegenstand) 
                festlegen
        Dialog - Erstellt eine Schaltfläche für den Dialog DeinDialog mit den Dimensionen 
                 (200, 50), verankert an Oben mit einem Offset von (0, 200). Setzt den 
                 Tooltip auf "" mit dem Schaltflächentext "Töte Einheit X"  und dem 
                 Schwebebild ""
        Variable - DeinDialoggegenstand_Y = (Zuletzt erstellter Dialoggegenstand) 
                 festlegen
        Dialog - Anzeigen DeinDialog für (Alle Spieler)
so könntest du den Dialog erstellen!

Und das wäre jetzt der Trigger für das Töten der units:

Code: Alles auswählen

Dialog_Event
    Ereignisse
        Dialog - Beliebiger Dialoggegenstand wird von Spieler Beliebiger Spieler mit Ereignis Geklickt verwendet
    Lokale Variablen
    Bedingungen
        (Verwendeter Dialoggegenstand) == DeinDialoggegenstand_X
        (Verwendeter Dialoggegenstand) == DeinDialoggegenstand_Y
    Aktionen
        Allgemein - Wenn (Bedingungen), dann führe (Aktionen) aus, sonst führe (Aktionen) aus
            Wenn
                (Verwendeter Dialoggegenstand) == DeinDialoggegenstand_X
            Dann
                Einheit - Unit_X vernichten
            Sonst
                Allgemein - Wenn (Bedingungen), dann führe (Aktionen) aus, sonst führe (Aktionen) aus
                    Wenn
                        (Verwendeter Dialoggegenstand) == DeinDialoggegenstand_Y
                    Dann
                        Einheit - Unit_Y vernichten
                    Sonst
Deathwing
Moderator der Leere
Moderator der Leere
Beiträge: 287
Registriert: 30.04.2010, 16:15
Liga 1vs1: Meister
Liga 2vs2: Keine
Mainrace: Random
Wohnort: Berlin

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Deathwing »

Ja, da ist was dran, ich wollte Ihm nur die Option zumindest geben.

Aber gute Arbeit von Dir!

Ich hatte das heute Mittag angefangen in einer Map für Ihn zu machen, als dann mein Laptop einen BlueScreen bekam....

Nur bitte...besorg dir den englischen Editor, das kann man sich ja net anschauen die deutschen Lokalisierungen. :)

grüße
It is done... All have been given that which must be given.
I now seal the Dragon Soul forever...
For it to be as it must, yes.

Bild
Benutzeravatar
Artery
Zergling
Beiträge: 16
Registriert: 25.10.2011, 18:27
Liga 1vs1: Keine
Liga 2vs2: Keine

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Artery »

Ich scripte eh nicht mitm galaxy editor :D Scripte im Galaxy++-Editor, von daher ist mir das bis jetzt wumpe gewesen ;)
Aber stimmt die lokalisierungen sind scheiße, die hättens wenigstens machen sollen wie in WC3..
Der_Neue
Zergling
Beiträge: 20
Registriert: 24.10.2011, 17:21
Liga 1vs1: Platin
Mainrace: Random

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Der_Neue »

Hehe, danke für die Hilfe, hat geklappt. Ja das mit dem Scripten lass ich wohl lieber :D
Hab mich immer gefragt wieso so ziemlich jeder den Englischen Editor verwendet, aber ich glaube jetzt weiß ichs xD sowas wie "Klippenstufe Tu nicht untersuchen" :lol: ^^ Dann mach ich mal weiter und wenn noch Fragen aufkommen meld ich mich wieder.

mfg
Deathwing
Moderator der Leere
Moderator der Leere
Beiträge: 287
Registriert: 30.04.2010, 16:15
Liga 1vs1: Meister
Liga 2vs2: Keine
Mainrace: Random
Wohnort: Berlin

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Deathwing »

Ich finde, dass eine Lokalisierung in einem Editor nichts zusuchen hat oder
zumindest in einem Teil wo es um eine Programmiersprache geht, denn
sowas ist einfach immer englisch, schon damit man sich besser darüber unterhalten kann.
Klar die Sprache und so selbst ist alles englisch, aber die deutsche GUI vom Trigger-Editor
hätten Sie auch einfach auf Englisch lassen können, das hätte sicher keinen gestört.

Aber gut, damit lernt man zu leben!

@Der_Neue
Zögere natürlich nicht weitere Fragen zu stellen, wenn welche aufkommen.

grüße
It is done... All have been given that which must be given.
I now seal the Dragon Soul forever...
For it to be as it must, yes.

Bild
Der_Neue
Zergling
Beiträge: 20
Registriert: 24.10.2011, 17:21
Liga 1vs1: Platin
Mainrace: Random

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Der_Neue »

Hey Leute, hätte da noch ne Frage.
Und zwar will ich, dass immer, wenn Einheiten von z.B. Spieler 1 sich in einer bestimmten Region befinden, eine Angriffswelle ausgelöst wird.
Habe dazu einige Auslöser und eine Variable gemacht. Also Alle X Sekunden von Spielzeit wird eine Welle ausgelöst (Bedingung Variable > 0)
Immer wenn eine Einheit von Spieler 1 die Region betritt: Variable +1
Immer wenn eine Einheit von Spieler 1 die Region verlässt: Variable -1
Immer wenn eine Einheit von Spieler 1 in der Region stirbt: Variable -1
Aber es funktioniert nicht ^^ Solange keine Einheit stirbt, klappt es noch. Aber gehe ich z.B mit 4 Hydras in die Region, 2 davon sterben aber in der region und die anderen beiden verlassen die Region. Danach hatte die Variable Wert 6. Zweiter versuch: 1 Hydra geht rein und stirbt in der Region, Variable = 3. Versuche ich das gleiche mit Zerglingen (4 gehen rein, 2 sterben, 2 verlassen) ist die Variable = 4. :bekloppt:
Von Einheit zu Einheit verschieden...
Woran kann das liegen?

Edit: Mit Sonden Oder WBFs z.B funktioniert es aber ^^
Zuletzt geändert von Der_Neue am 28.10.2011, 11:36, insgesamt 1-mal geändert.
Deathwing
Moderator der Leere
Moderator der Leere
Beiträge: 287
Registriert: 30.04.2010, 16:15
Liga 1vs1: Meister
Liga 2vs2: Keine
Mainrace: Random
Wohnort: Berlin

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Deathwing »

Hmmm, das klingt erstmal so als ob irgendwie ein mathematischer Fehler in deinen Auslöser vorliegt. :)
Am Besten wäre es, wenn du mal den Auslöser hierreinkopieren könntest als Text oder halt deine Map zur Not.

grüße
It is done... All have been given that which must be given.
I now seal the Dragon Soul forever...
For it to be as it must, yes.

Bild
Der_Neue
Zergling
Beiträge: 20
Registriert: 24.10.2011, 17:21
Liga 1vs1: Platin
Mainrace: Random

Re: Einige Fragen zum Starcraft 2 Editor...

Beitrag von Der_Neue »

Code: Alles auswählen

Ereignisse
     Einheit - Beliebige Einheit betritt Auslösen_Welle1
Lokale Variablen
Bedingungen
     (Besitzer von (Auslösende Einheit)) == 1
Aktionen
     Variable - Auslösewert anpassen: +1

Code: Alles auswählen

Ereignisse
     Einheit - Beliebige Einheit verlässt Auslösen_Welle1
Lokale Variablen
Bedingungen
     (Besitzer von (Auslösende Einheit)) == 1
Aktionen
     Variable - Auslösewert anpassen: -1

Code: Alles auswählen

Ereignisse
     Einheit - Beliebige Einheit stirbt
Lokale Variablen
Bedingungen
     Und
       (Besitzer von (Auslösende Einheit)) == 1
       ((Auslösende Einheit) befindet sich in Auslösen_Welle1) == Wahr
Aktionen
     Variable - Auslösewert anpassen: -1

Code: Alles auswählen

Ereignisse
     Timer - Alle 5.0 Sekunden von Spielzeit
Lokale Variablen
Bedingungen
     Auslösewert > 0
Aktionen
     Einheit - Erstellen von 30 Space-Marine für Spieler 15 bei Welle1 unter Nutzung von Punktausrichtung (Keine Optionen)
Und dann eben noch die Integer Variable.
Antworten