Hallo, liebe Anno-1503-Skripter (so denn noch vorhanden
),
die meisten werden wohl mit dem Problem der ziemlich lahmen KI vertraut sein, die im Kriegsfall ein, zwei halbherzige Angriffe fährt und einen ansonsten in Ruhe lässt. Ich habe in den letzten paar Tagen ein wenig "Forschungsarbeit" betrieben, und ich denke, ich habe einen Weg gefunden, mit denen man die CGs immerhin dazu bringen kann, die Angriffe nicht einzustellen.
Das ganze sollte funktionieren, indem man über SET_PROFILE den Kampftyp des CGs auf 5 einstellt und in regelmäßigen Abständen kurz aus- und dann weiter einschaltet.
Das Skript würde also z.B. ungefähr so aussehen:
INITBLOCK()
{
SET_DIPLOMACY("CG01", "HUMAN01", -128 );
TIMER_SET(1, 0);
TIMER_START(1);
}
IF TIMER_1 == 60 THEN
{
SET_PROFILE( "CG01", "COMPCAPS_KAMPFTYP", 0);
SET_PROFILE( "CG01", "COMPCAPS_KAMPFTYP", 5);
TIMER_SET(1,0);
}
Im Anhang ist ein Beispielszenario, bei dem ich das ganz erfolgreich getestet habe. Dort sind vier CGs vorhanden, die alle exakt die gleichen Startinseln haben, und im Editor genau die gleichen Parameter bekommen haben (damit unterschiedliches Verhalten nicht durch unterschiedliche andere Voraussetzungen entstehen kann). Kurz nach Spielbeginn erklären alle dem Spieler den Krieg. Beim blauen CG passiert nichts weiter; beim gelben wird der Kampftyp auf fünf gesetzt (ohne das spätere aus- und anschalten) und den anderen beiden (türkis und orange) habe ich oben beschriebene Methode angewandt.
Zu Beginn sollten sie dann alle ein paar Mal angreifen - doch mit der Zeit haben der Blaue und der Gelbe die Kampfhandlungen im Wesentlichen eingestellt, während der Orange und der Türkise durchgängig fast im Minutentakt Soldaten bei mir abgeladen haben.
Das sind dann zwar immer noch die üblichen CG-Angriffe in Form einer einzelnen Schiffsladung an Soldaten, die für sich genommen nicht so wirklich gefährlich sind - aber ab einer Zahl von 4 CGs oder mehr, die dann auch zufällig gleichzeitig angreifen können, können schon durchaus ernstzunehmende Angriffe entstehen.
Ich habe das auch noch in ähnlicher Form in zwei anderen Szenarien gestestet, ebenfalls erfolgreich, ich hoffe also, dass das ganze kein Zufallstreffer war. Falls es bei irgendjemanden nicht funktioniert, gerne schreiben, dann schaue ich mir es nochmal genauer an
Für diejenigen, die es interessiert, hier meine Theorie dahinter, bzw., wie ich auf die Idee gekommen bin:
In den herkömmlichen Endlosspielen bzw. Szenarien beobachtet man ja in der Regel, dass zu Kriegsbeginn einige wenige Angriffe stattfinden und der CG dann ziemlich schnell passiv wird. Ich habe mir also überlegt, ob man diesen "Kriegsbeginn" nicht skriptseitig simulieren kann, sodass der CG permanent so handelt, als wäre er gerade am Anfang des Krieges. Zuerst hatte ich probiert, regelmäßig SET_DIPLOMACY entsprechend aufzurufen, doch das hat nicht geklappt. Also habe ich die Skriptbefehle mal durchgeblättert und nach ähnlichen Befehlen gesucht und bin mit SET_PROFILE fündig geworden.
Warum ausgerechnet Kampftyp 5, kann ich nicht sagen
ich hatte es auch noch mit 7 und 6 probiert, aber das hat nicht geklappt. Eventuell erzielt man mit anderen Typen ähnliche oder bessere Ergebnisse - das müsste ich vielleicht mal irgendwan ausprobieren.
Ansonsten - frohes Verteidigen und bis zum nächsten Mal
Julien