#1
|
|||
|
|||
AI kommandos erweitern und verbessern
Hallo
mir ist schon seit langem die AI ein Dorn im Auge, sobald ich mein Mod benutze. Der Computer baut einfach keine Einheiten mehr und greift mich an. Dies ist nur in den Singleplayer missionen der fall, im Multiplayer funktioniert alles ganz normal. Das der Computer keine einheiten baut ist aber nur bei einigen SP-Missionen, bei manchen baut er nur sehr wenige einheiten mit denen er sehr selten angreift. Ich habe für mein Mod die FeuerSturm einheiten auch für das normale TS verfügbar gemacht und einige selbsterstellte einheiten hinzugefügt. Nun die Frage, woran es liegt das die KI nicht mehr baut, und wie ich die AI einträge so veränder das sie wieder funktionieren? Gibt es womöglich eine Art AI Editor oder ein Tutorial wo ich erfahren kann, was diese unmengen an Parameter bedeuten und wie man eigene AI Scripte schreibt? Mir würde aber auch schon ein einfaches beispiel genügen bei dem der Computer eine Gruppe von Einheiten, einfach gegen meine Basis schickt (so wie im Multiplayer, wo ja auch keine Wegpunkte und trigger gesetzt werden müssen damit der gegner mich findet und auch angreift). Vielen Dank schon mal im vorraus |
#2
|
||||
|
||||
Für die Missionenen sind die Trigger für jeweiligen Map oft abgeändert oder/und spezielle Trigger in der jeweiligen Map hinzugefügt. Das hat also sehr wenig mit den normalen KI-Verhalten im Gefecht zu tun.
|
#3
|
|||
|
|||
aber wieso baut die KI dann nicht mehr die normalen einheiten, wenn deren Name doch immernoch der selbe wie im original ist. Also z.B. MMCH im original heist auch bei mir noch MMCH und dennoch kommen mir in den meisten missionen keine bsp. Titanen mehr entgegen.
|
#4
|
||||
|
||||
Nun ich weis das auch nicht genau.
Ich modde ja nur für YR. Aber da RA2 ja nur ein verändertes TS ist ist es eigentlich ähnlich. Es ist bei sehr vielen Mods so das die Missionen nicht mehr richtig funktionieren. Ursache unbekannt. ![]() Bei meinem Mod für YR funktioniert z.B: eine Mission nicht mehr bei der man zivile Kraftwerke einnehmen muss. Obwohl ich die Energiewerte nicht verändert habe, kann die Mission nicht beendet werden selbst wenn man alle erobert! |
#5
|
|||
|
|||
ich glaube da kann ich dir den grund sagen Kroko.
bei TS (ist ja nur ein verändertes RA2 ![]() In meinem Mod hatte ich anfangs die Gebäudeliste neu sortiert um mal mehr übersicht auch im spiel reinzubringen. Denn wurde mein letzter Bauhof zerstört und ich habe einen neues MBF gebaut, war die gebäudeliste total durcheinander weil ja alle gebäude auf einmal wieder verfügbar waren (man hat nichts mehr wiedergefunden ![]() Bei allen Missionen wo die vernichtung/eroberung eines Gebäudes das Einsatzziel war, streikte aber von nun an der Computer und erkannte die zerstörung/eroberung nicht mehr. Also die AI hat das Ziel-Gebäude nicht mehr richtig erkannt. Nachdem ich den gebäuden aber wieder ihre orginal nummer zuwies funktionierten die missionen wieder. Ich frage mich nur wie das möglich ist wo doch in den Triggern stets der name des Gebäudes angegeben ist und nicht die nummer der [BuildingTypes] liste. Wenn du in deinem Mod die Gebäude in der Liste neu sortiert hast, solltest du mal versuchen den StandardGebäuden ihre originalnummer zurückzugeben. |
#6
|
||||
|
||||
Nun jetzt ist mir klar wieso das bei Dir nicht mehr funktioniert.
Wenn du die Gebäudeliste umsortierst (ist bei RA2 und TS gleich) können die Skripte nicht mehr funktionieren. Weil der Computer anhand der Liste Gebäudenummern vergibt angefangen mit 131072 aufwärts. Hier mal eine Skripttätigkeit aus TS 5=46,131073 im Orginal bedeutet das Team greift als 5tes Ziel eine Raffinerie an (weil die Raf. an 2 Stelle in der Liste steht) hast du jetzt statt der Raffinerie ein anderes Gebäude an 2 Stelle gesetzt wird dann dieses angegriffen. Deswegen habe ich die Liste nicht umsortiert. Der Handler bei dem Trigger hat eine andere Wirkung. hier ein Beispiel 085A10A0-G=E_GDI missile silo attack 4,084E7F50-G,<all>,8,0,NAMISL,0100000003000000000000000000000000000000000000000000000000000000,40.000 000,10.000000,70.000000,1,0,1,0,084E7E80-G,1,0,0 Dieser Trigger kann nur vom KI ausgelöst werden Wenn der Feind mindestens 1 Raketensilo hat. Und er bestimmt das er für GDI ist Die 0 vor NAMISL heist dieser Trigger wird nur ausgelöst wenn der Feind nachfolgendes Gebäude besitzt die lange Zahlenreihe sagt in der zweiten Ziffer wie viel davon und die 10 Ziffer 3 bedeutet Mindestens! Geändert von Kroko (02-07-2005 um 15:44 Uhr). |
#7
|
|||
|
|||
nein,nein; ich hatte ja die gebäudeliste wieder zurückgesetzt nachdem ich erkannt habe, das die gebäude ihre original nummer brauchen. also mein mod funktioniert ja bei gebäuden ohne probleme.
nur eben einheiten werden nicht mehr gebaut. ich hatte das nur als möglichen grund gesehen warum es bei dir in RA2 nicht funzt. es stellt sich nun die frage ob den einheiten ähnliche zahlen zugeordnet werden. auch wenn dem so ist, meine einheitenliste ist zu 90% original. d.h. es müssten ein großteil der angriffstrupps die gebildet werden sollen funktionieren. doch das tun sie nicht?!? z.B. hat der TTNK immer noch die selbe nummer, aber ein trupp der nur aus TTNK's besteht wird dennoch nicht gebaut?!? Kannst du mir deine Quelle sagen, woher du weist wie sich die Trigger zusammensetzen. gibts da vielleicht sogar einen AI-Editor der das erstellen solcher scripte übernehmen kann? Geändert von Lin Kuei Ominae (02-07-2005 um 18:15 Uhr). |
#8
|
||||
|
||||
Nun das mit den Einheiten weis ich auch nicht.
Was für Werte den Trigger bestimmen habe ich teils selbst herausgefunden teils in einem Tut gesehen. Es gibt meines Wissens kein funktionierenden AI Editor oä. Hier noch mal das Beispiel komplet erklärt: 085A10A0-G=E_GDI missile silo attack 4,084E7F50-G,<all>,8,0,NAMISL,0100000003000000000000000000000000000000000000000000000000000000,40.000 000,10. 000000,70.000000,1,0,1,0,084E7E80-G,1,0,0 Handler=Name zur Erklärung,TeamTyp das ausgelöst wird,Land das den Trigger auslösen kann(in TS unbedeutend da ja nur ein Land je Seite) ,Techlevel (hauptsächlich wichtig für Missionen nicht für Gefecht) , 0 (Bei diesem Trigger) bedeutet das der Feind nachfolgendes , Namisl(Raketensilo) besitzen muss [1 würde bestimmen das man es selbst besitzen muss, 4 das der Gegner mit dem meisten Geld angegriffen wird /in TS bedeutet -1 der Trigger kann ohne sowas zu beachten vorkommen, Handler des Gebäudes oder der Einheit die vorkommen muss hier kann auch <none> verwendet werden, lange Zahlenreihe 2 Ziffer Anzahl die vorhanden sein muss 10 ziffer bedeutungen 1 kleiner oder gleich der Anzahl 2 genau die Anzahl 3 gleich oder größer die Anzahl 4 größer als ,normale Wahrscheinlichkeit mit der dieser Trigger gebracht wird ,minimale Wahrscheinlichkeit mit der dieser Trigger gebracht wird ,maxi´male Wahrscheinlichkeit mit der dieser Trigger gebracht wird ,1 bedeutet KI darf Trigger im Gefecht verwenden 0 nicht also nur 1 sinnvoll ,unbekannt (unbenutzt?) fällt immer auf0 ,legt Seit fest in TS: 0alle Seiten 1 GDI 2Nod ,ist der Trigger ein Verteidigungstrigger 1 ja 0 nein (für neue 0ratsam) ,hier kann man <none> oder ein Teamtyp eingeben wenn ein Teamtyp eingegeben ist wird dieses im Anschluss an das erste produziert die letzten 3 Werte erlauben oder verbieten den Trigger bei Schwierigkeitsgrad ,leicht ,mittel ,hart 1 erlaubt 0 Verbietet wenn du neue Skipte für`s Gefecht machen willst kann ich vielleicht auch helfen. Musst mal sagen was du gern machen willst. |
#9
|
|||
|
|||
Vielen Dank für die Erklärung. Das hilft mir wirklich weiter, diese scripte zu verstehen. (zu zeiten vom Tiberiumkonflikt, war das alles viel einfacher
![]() hat der name "085A10A0-G" irgendeine bedeutung? der sieht mir wie ein Generierter Hashwert aus. Oder kann man dort auch einen beliebigen eigenen Namen wählen? z.B. "00000001-A" So wie ich das sehe müsste man nur darauf achten das der Name nicht schon mal irgendwo verwendet wurde, oder? Fürs Gefecht brauch ich keine Scripte, trotzdem danke fürs angebot. Denn im Gefecht greift der Computer ja ganz normal an und dort kann ich ja direkt die Teams in der AI.ini vergrößern damit es schwieriger wird. Ich muss jetzt nur mal sehen woran es liegt das selbst vom modden unberührte Scripte in vielen Missionen nicht mehr ausgeführt werden. |
#10
|
||||
|
||||
Nun du kannst für den AITrigger im Beispiel 085A10A0-G
Einen beliebigen Wert nehmen Bedingungen: er darf, wie du schon sagtst noch nicht vorhanden sein er muss die gleich Anzahl von Stellen haben und auch - In YR ist es möglich staat G auch andere Buchstaben zu verwenden ob das bei TS genauso ist weis ich nicht. Zusätzlich: Ich habe in meinem YRMod auch Teams vergrößert das geht nicht beliebig groß. Und hängt mit der benötigten Zeit die für die Produktion nötig ist zusammen. Wie die maximale Zeit genau berechnet wird weis ich leider nicht, außerddem ist das aufgrund anderer Wert in RA2 anders als in TS. Diese Zeit hängt mit diesem Wert in der rules zusammen: DissolveUnfilledTeamDelay= Solltest du also mal erleben das er ein Sehr großes TasckForce von einem Team nicht fertig baut und sonst kein Grund dafür zu sehen ist, solltest du das TaskForces des Teams verkleinern oder diesen Wert vergrößern. sonstige Begrenzung: In YR kann man ein TasckForce aus maximal 5 Unterschiedlichen Einheiten machen. Die Anzahl der Einheiten wird wahrscheinlich nur durch die oben angeführt Tatsache begrenzt. Leider habe ich eben auch nie in Erfahrung bringen können warum die Missionen nicht richtig funktionieren. Manchmal habe ich schon gedacht das die KI bei Missionen kontrolliert ob alles Orginal ist aber das ist auch keine richtige ERkärung. |