|
StarCraft II Inhalte
|
|
|||||||
| Registrieren | Hilfe | Benutzerliste | Kalender | Avatare | Banliste | Clanforum anfordern | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1
|
|
Larve
Registriert seit: Jan 2011
BNet-Account: Warlord
BNet2-Account: [ID:706]
Beiträge: 4
|
Dialogschaltfläche als Bauoption
![]() ![]() Da ich selbst zur Zeit etwas an der eigenen Map herum bastel bin ich nun seid 3 Tagen verzweifeltem Suchen auf das folgende Problem gestossen. Die Spieleranzahl beträgt 8, jeweils in 2 Teams je 4 Spieler. Ich habe 10+ Dialogschaltflächen für alle Spieler bei Karteninitialisierung erstellt, da jeder der 8 Spieler diese als Bauoption hat. Beispiel: Dialogschaltfläche 1 = Kaserne Dialogschaltfläche 2 = Panzer Fabrik usw. Ich möchte nun das der auslösende Spieler bei drücken der Dialogschaltfläche wie durch den Bau von WBFs das zu bauende Gebäude plazieren kann. Zudem soll das Gebäude "im Bau" erstellt werden, noch dazu soll das Gebäude OHNE WBF langsam gebaut werden. Mein bisheriger Auslöser ist wie folgt: Ereignisse - Dialog, Bildschirmschaltfläche 1 wird von auslösender Spieler geklickt. Variable - Ziel Kaserne = kein Punkt <Punkt> Aktion - Variable: [Ziel Kaserne] = Punkt in Welt geklickt bei X,Y bla bla ![]() - Erstelle 1 Kaserne für Spieler 1 bei [Ziel Kaserne] unter nutzung der Standartausrichtung (im Bau) Wegen der Bedingung ist das zum kotzen, am liebsten möchte ich das die Bedinung, das klicken der Dialogschaltfläche 1 sein soll + 500 Mineralien für den Bau des gebäudes, was ich jedoch nicht finden kann. Selbst bei einer Wenn, dann, sonst aktion fehlt irgendwie der Sinn daran. Problem ist nun das wenn ich Schaltfläche 1-10 Klicke das es überall identisch ist, somit Fehler nummer 1. Zudem kann ich nur den Auslöser starten wenn ich bei Ereignisse folgendes Hinzufügen muss. Ereignisse: - UI, Spieler 1, klickt ,linke Maustaste, abwärts Bitte um Hilfe, ich werde sonst noch wahnsinnig !!!!!!! Ich habe mir zudem durch diverse Foren gewälzt und zig tutorial Videos bei YouTube angeguckt, aber leider wird nur das erklärt was ich bereits selber weiss und mir dabei nicht weiter helfen kann. |
|
|
|
|
|
#2 | |
|
Zivilist
|
Zitat:
Ich denke ich habe deine Probleme trotzdem nicht lösen können, da ich noch nicht verstanden habe, wo genau das Problem liegt. Wozu +500 Mienralien für den Bau des Gebäudes? Bräuchte ein paar mehr Details, danke
__________________
Shouldn't I be named "Corrupter"?... |
|
|
|
|
|
|
#3 |
|
Larve
Registriert seit: Jan 2011
BNet-Account: Warlord
BNet2-Account: [ID:706]
Beiträge: 4
|
Servus !
Also folgende Infos: 8 Spieler, 2 Teams jeweils 4 Spieler Wenn möglich bräuchte ich dazu eine Hilfsvariable die ich erstellen soll. Links oben am Bildschirm befinden sich die Dialogschaltflächen. Schaltschläche 1 heist Kaserne. Bei dem Klick darauf, werden 500 Mineralien für das Gebäude abgezogen (bau kosten). Bedingung dafür soll auch das klicken von Dialogschaltfläche 1 sein. Danach soll die Aktion gestartet werden, das die Kaserne durch Spieler plazierbar ist. Kurz um ich möchte Gebäude ohne WBFs bauen können, anstatt durch den WBF wähle ich das zu bauende Gebäude über die Dialogschaltflächen die ich erstellt habe. WBFs sind komplett aus dem Spiel entfernt, Rohstoff sammeln habe ich durch andere Einheiten ersetzt was perfekt läuft. Ich hoffe ich konnte das etwas genauer erklären, es ist nur schwierig das irgendwie verständlich rüber zu bringen
|
|
|
|
|
|
#4 |
|
Zivilist
|
So, da dieses auch neues Gelände für mich war, habe ich mir selbst eine TestMap erstellt.
Gute Nachricht: es hat funktioniert. Damit die Gebäude ohne WBF weitergebaut werden musst du die Fähigkeit "wbf -> bauen" bearbeiten, sodass es nicht "unterbrechbar" ist und das der Arbeiter nicht erhalten bleibt. Siehe Map für genaueres.
__________________
Shouldn't I be named "Corrupter"?... |
|
|
|
|
|
#5 |
|
Larve
Registriert seit: Jan 2011
BNet-Account: Warlord
BNet2-Account: [ID:706]
Beiträge: 4
|
Danke dir vielmals Devourer !
Noch Frage dazu, ob ich dann für mehrere Buttons auch mehrere Variablen erstellen muss die dann spezifisch auf jedes einzelne Button reagiern ? Bzw. Könnte ich auch über einen Auslöser durch Button klick eine Baufähigkeit auswählen (wie das Menü eines WBFs, incl. grünem Gittergebäude zum plazieren) damit das eben optisch besser wirkt und zudem bei ungenügend mineralien auch die Meldung kommt das weitere Mineralien fehlen ?
|
|
|
|
|
|
#6 |
|
Zivilist
|
Ungenügend Mineralien -> Kein Problem. Eine weitere Wenn-Bedingung und, in dem If-Konstrukt, eine Text-Nachricht ausspucken lassen.
Bei dem Grünen Gittern bin ich grade überfragt, bezweifele aber das dieses machbar ist. Zu den ganzen Buttons. Hier kommt was sehr schönes ins Spiel: Arrays. Du brauchst 3 Arrays, 1 vom Typ Dialog-gegenstand, 1 vom Typ Integer und 1 vom Typ Einheitentyp Legende: "Dialoggegenstand" hat den Wert des jeweiligen Dialoggegenstandes (button) "Integer" sind die Preise der Gebäude "Einheitentyp" ist natürlich der Typ der zu platzierede Einheit. Bei einem Druck irgendeines Knopfes wird eine Schleife ausgeführt welche einen Integer Wert immer um 1 erhöht. In der Schleife wird dann abgefragt, ob man genug Geld hat und wenn ja wird auf das Klicken gewartet und dann eine Einheit des entsprechenden Typs erstellt. Dies mag eventuell ein bisschen verwirrend sein, also wenn du Probleme haben solltest oder es einfach unverständlich ist, zögere nicht dieses zu schreiben. Ich werde im Notfall wieder eine Test-Map erstellen.
__________________
Shouldn't I be named "Corrupter"?... Geändert von Devourer (06. Januar 2011 um 21:33 Uhr) |
|
|
|
|
|
#7 |
|
Larve
Registriert seit: Jan 2011
BNet-Account: Warlord
BNet2-Account: [ID:706]
Beiträge: 4
|
Das mit den Arrays kriege ich leider nicht auf die Reihe.
Die Buttons mit Befehlen funktionieren soweit schon mal gut, leider fügt das Spiel irgendwie mehr Einheiten (Obwohl nur eine Einheit plaziert werden darf) hinzu als geplant ist. Button 1, soll= 1 / ist= 1 Button 2, soll= 1 / ist= 2 Button 3, soll= 1 / ist= 3 usw. Ich gebe zwar nur eine Einheit an, erscheinen tuen aber mehr. Bräuchte da bitte hilfe zu, bzw. eine genauere definition zu den Arrays. Gibt es noch die Möglichkeit die Spieler auch in Arrays zu packen, so das Spieler 1 = 1, Spieler 2 = 2 usw. ist ? Bei diversen aktionen fehlen genauere Optionen da es sonst im Multiplayer zu komplikationen führen kann. Zudem gibt es die Möglichkeit den Cursor zu ändern ? Leider finde ich nur die Option, Mauszeicher ein-/ausblenden. Durch die veränderung des Mauszeigers wäre es realisitischer. |
|
|
|
|
|
#8 |
|
Zivilist
|
Das habe ich jetzt nicht ganz verstanden ("Ich gebe zwar nur eine Einheit an, erscheinen tuen aber mehr. Bräuchte da bitte hilfe zu, bzw. eine genauere definition zu den Arrays.")
Arrays sind nichts weiteres als Variablen, die mehrere Werte annehmen können. Wenn man zum Beispiel einen 3-Stelliges Array vom Typ Einheit hat, könnte das Array so aussehen: Array[1] = Einheit A Array[2] = Einheit B Array[3] = Einheit C Es ist zwar die gleiche Variable aber sie hat nun 3 verschiedene Werte. Man kann in Auslösern einzelne Werte abfragen, indem man den richtigen Schlüssel einsetzt. Der Schlüssel ist das, was in den Ecken steht. In SC2 sind das immer Zahlen, vom Typ "Integer". "Spieler" sind übrigens auch nur integers, das ist der Grund, warum es keine Variable vom Typ "Spieler" gibt. Also angenommen du hast einen Array der den Namen der Spieler abgespeichert hat und der den Namen des Spielers ausgeben soll, der den Auslöser aufgerufen hat kann man folgendes machen: Aktion: Text-Nachricht(Array[Auslösender Spieler] für Spieler Auslösender Spieler im Bereich Debug anzeigen) Das mit dem Cursor ändern wird wahrscheinlich nicht sehr einfach gehen, da ich davon ausgehe, dass man die alte Cursor Datei überschreiben muss. Allerdings solltest du dir hier eine zweite Meinung holen.
__________________
Shouldn't I be named "Corrupter"?... |
|
|
|
![]() |
|
||||||
| Themen-Optionen | |
| Ansicht | |
|
|


