|
StarCraft II Inhalte
|
|
|||||||
| Registrieren | Hilfe | Benutzerliste | Kalender | Avatare | Banliste | Clanforum anfordern | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1
|
|
Dschungelbestie
Registriert seit: Okt 2009
Beiträge: 26
|
Eigene KI Scripten - Fähigkeiten - Expandieren
![]() ![]() Ich wollte jetzt einige Dinge fragen und hoffe mir kann hier geholfen werden. Ich bin kein Profi mit dem SC2 Editor und hoffe auf ausführliche genaue Antworten, sodass ich die netten Antworten auch gleich umsetzen kann^^' 1. Ich suche eine Bedingung wie im SC1 editor: "Spieler Befehligt Anzahl Einheiten" Sodass ich sagen kann, wenn er so viele Einheiten z.B. Marines befehligt, soll er angreifen gehen. 2. Ist es möglich der KI zu sagen sie soll ihre Bunker besetzen? Wenn ja, wie? 3. Ich würde die KI gerne ab einer bestimmten Menge Mineralien oder Einheitenanzahl, oder auch Supplyhöhe Expandieren lassen. Wie mache ich das? Dazu muss ich sagen, ich habe es "manuell" gelöst, indem ich sie einfach ein Hauptgebäude bauen lasse und dann halt Einheiten zum sammeln, geht aber ist eben nicht die schönste Lösung^^ 4. Kann ich die KI auch so dinge machen lassen wie einen Drop durchzuführen, oder mit einer Warpprisma in die Eco zu fliegen und dort zu warpen? Wenn ja wie? 5. Gibt es eine möglichkeit wie im SC1 Editor die Funktion "Auslöser aufbewahren" zu nutzen, sodass ein Auslöser immer dann zündet wenn die Bedingungen erfüllt sind? Das wäre super um z.B. der KI zu sagen sie soll konstant bei min. 4 Kasernen sein, etc. Ich glaube das war es soweit, ich habe das Tutorial wie gesagt durch, aber keine Fortsetzung gefunden. Ich freue mich schon auf die hilfreichen Antworten und Danke schonmal im voraus^^ Gruß |
|
|
|
|
|
#2 |
|
Maps
|
1. Das ganze geht. Dazu wäre es wohl am besten zu einem geeigneten Zeitpunkt (z.B. bei der fertigstellung einer Einheit) zu zählen wie viele Einheiten eines Einheiten Typs ein spieler besitzt. Dazu würde ich eine "For Each Unit in Unit Group"-Schleife machen und als Einheiten gruppe dann alle einheiten des jeweiligen Spielers. In der Schleifen sollte wohl dann der Einheitentyp geprüft werden und bei übereinstimmung ein zähler um eins erhöht werden.
Nach der Schleife würde die zählervariable der Anzahl der Einheiten entsprechen. Man kann also diese überprüfen und dann die aktionen einleiten die man bei der Einheiten anzalh einleiten möchte. 2. Bunker besetzen geht wohl am besten über den "smart" befehl. Dieser entspricht dem rechtsklick. 3. Ich glaube zur Zeit geht es nur Manuell. Mit Patch 1.5 soll ein KI editor dazu kommen. Der könnte vllt einiges einfacher machen. 4. Ich bin mir hier nicht ganz sicher da ich es nie wirklich genutzt habe aber ein Drop sollte wohl durch einen Befehl zum Ausführen der Dropfähigkeit funktionieren. Die meisten Cargo-Fähigen Units sollten ja einen Drop All befehl haben, der einen Punkt als Ziel hat. Du solltest einfach der Unit befehlen diesen auszuführen. 5. Du kannst in SC2 Auslöser an- und ausschalten. Es gibt auch die möglichkeit Bedingungen in Auslöser einzufügen, dies ist glaube ich weniger fehler-anfällig (hier meine ich Fehler durch die Person die Scriptet). Da so meist klar ist wann ein Auslöser funktioniert und wann nicht, als wenn man ihn in der Laufzeit ausschaltet. Der Auslöser wird in dem Fall nur ausgeführt wenn diese Bedingung erfüllt ist. Dies geht im Bedingungsblock des Auslösers oder auch in einem normalen if-then-else-Block. Es tut mir leid wenn ich hier begriffe aus dem englischen editor genutzt habe. Aber ich glaube du solltest die nötigen dinge in der deutschen version finden können. So wie es aussieht hast du ja so einige Sachen schon recht gut hinbekommen. Falls irgendwas davon nicht klar ist würde ich es etwas detailierter erklären, oder ein Beispiel posten |
|
|
|
|
|
#3 |
|
Dschungelbestie
Registriert seit: Okt 2009
Beiträge: 26
|
Danke erstmal für die Antworten. Zu
1. Wie mache ich es denn, dass eine Einheit, wenn sie ausgebildet, nicht einfach nur erstellt, sondern wirklich ausgebildet wird, in diese Gruppe kommt? Wie mache ich das mit dem Zähler? geht das über Variablen oder anders? Außerdem erscheint es mir recht... umständlich für jeden Einheitentyp eine eigene solche Funktion zu erstellen, geht das wirklich nicht anders? wäre echt schade^^ Achja und dann wollte ich nochmal was wissen, meine KI Senkt keine Depots und setzt auch keine Mules ein, ich habs versucht aber bekomme es einfach nicht hin, vllt kann mir da ja nochmal jemand helfen. Und zuletzt, was meinst du mit "smart"-Befehl, Rechtsklick, meinst du damit Rechtsklick auf den Bunker? Weil das geht nicht, denn es ist eine Melee KI Die ich hier Bastel^^ |
|
|
|
|
|
#4 |
|
Maps
|
Also zu 1 hab ich was besseres gefunden als ich in den editor geschaut habe. Das geht etwas einfacher. Es gibt die Funkton Units matching Condition. Die sollte eigentlich ne geeignete Unitgorup rausgeben.
Dann gibt es die funktion "units in unit group". Diese zählt automatisch alle einheite in der gruppe. Der Smart befehl ist bei den Befehlen in den Presets zu finden. Das mit den Mules einsetzen und Depots senken wird über Fähigkeiten gemacht, ich weiß nicht wie gut die eigenbauten KI funktionen sind. In zweifels fall musst du das selbst Triggern, dir also geeignete Events aussuchen und dann dem KI-Spieler befehlen diese Fähigkeiten einzusetzen. (Also du erst die geeingeneten Einheiten finden bei den mules also ein command center und dann dieser einheit den befehl geben die "Call Down Mule"-Fähigkeit einzusetzen) Hier eine kleine Beispiel map für ein paar der sachen. Hier reagieren die Trigger auf chat events da es so schneller zu testen geht: count - gibt die anzahl an marines aus bunker - gibt 4 marines den befehl in einen Bunker rein zu gehen unload - gibt dem Bunker den befehl alle einheiten rauszuschmeßen senken - gibt dem supply depot den befehl sich zu senken |
|
|
|
|
|
#5 |
|
Dschungelbestie
Registriert seit: Okt 2009
Beiträge: 26
|
omg sobald ich Zeit hab schau ich mir das mal an
Ich hab leider den Deutschen Editor und muss da erstmal durchgucken, weil so wie du das jetzt gemacht hast, ist das für mich schon 3 Stufen weiter und komplizierter^^ Bin noch nicht so geübt mit dem Auslösereditor, aber naja ransetzen dann wird das schon irgendwie^^ aber das mit der Karte... Super danke!!! so mal geschaut, das Problem ist, wie gesagt, das Depot ist ja noch nicht auf der Karte, alles wird erst gebaut, es wird eine Meele KI Wie bekomme ich denn neu gebaute Depots in so eine Einheitengruppe? Weil dann würde das ja funktionieren^^ Geändert von AleXusher (20. Mai 2012 um 19:21 Uhr) |
|
|
|
|
|
#6 |
|
Maps
|
Also wenn du es über eine gruppe machen willst kannst du ähnlich wie bei der marine zählen sache machen, bloß mit Depots als Einheiten typ.
Falls aber z.B. ein Depot sich nach dem Bau senken soll, so könntest du einen Auslöser machen der feuert, wenn der Bau eines Gebäudes abgeschlossen ist und als eingrenzende bedingung hat, dass die Einheit die gebaut wurde (also den Auslöser auslöst) den Typ Depot haben soll. Hier ein kleines Beispiel in Englisch Depot senken Hier müsste natürlich dann der KI Spieler als Controller auch Computer angegeben haben, bei testen sollte diese zweite Bedingung vllt lieber raus. Als kleiner Zusatz: Du könntest natürlich auch zusätzlich das Depot zu einer Einheiten gruppe hinzufügen, die du als Globale Variable definiert hast. Dies würde z.B. die rechenzeit sparen, wenn du auf diese gruppe zugreifst, da du dann nicht immer die Gruppe neu generieren musst über die "Units matching Condition" funktion. Geändert von Tomura (22. Mai 2012 um 15:16 Uhr) |
|
|
|
|
|
#7 |
|
Dschungelbestie
Registriert seit: Okt 2009
Beiträge: 26
|
hm bei mir klappt das nicht >.<
http://imageshack.us/photo/my-images...apptnicht.png/ habs jetzt auch mit konstruktionsfortschritt versucht, klappt aber auch nicht >.< http://imageshack.us/photo/my-images...pptnicht2.png/ hier nochmal ein Versuch aber es klappt einfach nicht habs jetzt auch versucht ohne die Bedingung == Computer aber klappt auch nicht >.< Geändert von AleXusher (23. Mai 2012 um 10:44 Uhr) |
|
|
|
|
|
#8 |
|
Maps
|
Das Problem ist dass Auslösende Einheit nicht das Depot ist.
Das Depot bzw. die Einheit die fertig gestellt ist, kann mit der Funktion Auslösende Fortschritts Einheit aufgerufen werden. (Steht auch in der Beschreibung des Events) BTW Trigger musst du nicht hochladen: wir haben im Forum den [ gui][/gui] Tag. Einfach den kompletten Trigger auswählen und dann Rechtsklick -> Als Text Kopieren Diesen Text kannst du dann zwischen den GUI-Tags packen und es wird hier im Forum wie im Trigger Editor angezeigt Geändert von Tomura (23. Mai 2012 um 11:10 Uhr) |
|
|
|
|
|
#9 |
|
Dschungelbestie
Registriert seit: Okt 2009
Beiträge: 26
|
hm hat super funktioniert o.o
gibts vllt eine Bedingungsart, die die Sat-Com auswählt? Weil dann könnte ich das mit dem Mule mal versuchen^^ Bei dem Depot ist klar, jedes das gebaut wird wird gesenkt, super sache, aber das bauen der Sat Com ist ja was einmaliges o.o |
|
|
|
|
|
#10 |
|
Dschungelbestie
Registriert seit: Okt 2009
Beiträge: 26
|
Hm ich habe mir jetzt den Auslöser mit dem Depot mal genauer angeschaut und was probiert, aber ich verstehe einfach nicht wie der funktioniert!
Ich habe jetzt versucht, den PC einen bestimmten Einheitentyp ausbilden zu lassen, wenn jemand eine bestimmte Einheit ausbildet. z.B. Linge, dann soll er Hellions machen.
Spieler 1 ist eben der andere Spieler, der den Auslöser auslösen soll, wenn er z.B. jetzt einen Marine ausbildet, soll meine KI Linge und Banes machen, aber nichts passiert! habs zuerst mit dem Ausbildungsfortschritt versucht statt mit dem Konstruktionsfortschritt weil eine Einheit ja kein Gebäude ist aber das funktioniert auch nicht! also ich hab es jetzt so hinbekommen, dass es im Grunde funktioniert, nur das mit der Bedingung des Spielers will nicht hinhauen. Die KI ist spieler 2 ich habe versucht die Bedingung, Besitzer/Spieler der Auslösenden Einheit ist 1 und einmal versucht ist ungleich also !=2 klappt aber nicht Wie muss so eine Bedingung denn aussehen damit das funktioniert? Edit: Also ich wollte das jetzt mal mit einer Variable probieren. Habe auch eine Variable, Integer erstellt mit dem Wert 1. Wie ordne ich dieser Variable jetzt aber einen Spieler zu, sodass ich bei der Bedingung dann, statt Spieler == 2 die Variable auswählen kann und darin sich der gewünschte Spieler, hier ich glaube Spieler 1 weil die KI für Spieler 2 gescriptet ist, befindet? Oder geht das doch einfacher? Ich bin leider noch nicht dahintergestiegen Geändert von AleXusher (26. Mai 2012 um 13:07 Uhr) |
|
|
|
|
|
#11 |
|
Dschungelbestie
Registriert seit: Okt 2009
Beiträge: 26
|
Wäre echt super, falls jemand das weis, er würde mir kurz helfen^^
Danke |
|
|
|
|
|
#12 |
|
Dschungelbestie
Registriert seit: Okt 2009
Beiträge: 26
|
Hallo^^
ich habe versucht, eine KI bei einer gewissen Anzahl von Mineralien Truppen ausbilden zu lassen, nur klappt das nicht, ich vermute mal ich muss das über eine Bedingung machen, habs auch versucht, aber es klappt nicht, versuche das schon länger aber komme nicht dahinter, vllt kann mir ja jemand helfen, das wäre nett
Geändert von AleXusher (04. Juni 2012 um 08:00 Uhr) |
|
|
|
|
|
#13 |
|
Maps
Moderator SC2-Mapping Forum Registriert seit: Mär 2004
Beiträge: 965
|
Mit patch 1.5 kommt ein neuer AI Editor, weiss noch nicht genau wie der funktioniert, aber da es ne open betai st kannste dir den ja mal angucken.
Einfach in dein battlenet account einloggen und bei spiele verwalten die ptr version runterladen. Evtl kannste sowas da besser regeln, dann würde ich an deiner stelle auf patch 1.5 warten.
__________________
(20:16:42) (Shihatsu) [19:04:19] kennt andi ueberhaupt eine bo? (20:16:42) (Shihatsu) [19:04:25] niemand is schlechter als andi (20:16:42) (Shihatsu) [19:04:31] nichtmal ripper |
|
|
|
|
|
#14 |
|
Dschungelbestie
Registriert seit: Okt 2009
Beiträge: 26
|
hm das wäre natürlich toll^^
aber davon abgesehen, vllt kann mir ja jemand trotzdem helfen, wäre aufjeden Fall super! und zwar folgendes: ich habe ein Problem, nämlich baut meine KI zwar schön viele Dronen, aber die Verteilung von diesen ist einfach nur Mist da sind dann 6 Reihen in einer Base und 1 in der anderen. Gibt es eine Möglichkeit, der KI zu sagen, sie soll pro Expo eine bestimmte Anzahl an Dronen sammeln lassen? Wenn ja, welche? |
|
|
|
|
|
#15 |
|
Maps
Moderator SC2-Mapping Forum Registriert seit: Mär 2004
Beiträge: 965
|
nächstes mal bitte nen neuen thread erstellen, sonst gehts unter.
Hab mal nen neuen thread erstellt, aber ich glaub, dass das kaum was wird, meinte ja bereits KI is nicht so die spezialität ![]() aber es gibt bereits einige Leute die neue KIs erstellt haben für bestimmte blizzard maps, weiss aber nimmer wie die genau hiessen. nutz mal die SuFU
__________________
(20:16:42) (Shihatsu) [19:04:19] kennt andi ueberhaupt eine bo? (20:16:42) (Shihatsu) [19:04:25] niemand is schlechter als andi (20:16:42) (Shihatsu) [19:04:31] nichtmal ripper |
|
|
|
![]() |
|
||||||
| Themen-Optionen | |
| Ansicht | |
|
|









