[Modding] KI-Skript für NPC Begleiter

Teac

Junior Member
Registriert
16.10.2015
Beiträge
3
Die bereits im Spiel enthaltenen KI-Skripte um das Kampfverhalten der Begleiter/Gruppe zu steuern, haben mir irgendwie nie gereicht. Für einen reinen Kämpfer oder einen reinen Angriffszauber-Magier, mögen sie ja noch ganz akzeptabel ausreichen.... aber bereits bei Minsk, Imoen ode Jan Jansen, wird nur ein Bruchteil des Potenzials dieser NPCs genutzt... und von solchen NPCs wie Aerie oder Jaheire erst recht nicht.

Andererseits will ich aber auch nicht Konzertdirigent spielen, und in jeder einzelnen Sekunde eines Kampfs, jeden Hangriff der einzelnen NPCs, einzeln steuern. Die NPCs im Spiel, haben eine solch schöne Interaktion miteinander und wirken irgendwie so lebendig... da finde ich, macht dieses Mikromanagement im Kampf, dann wieder diese ganze Lebendigkeit und Persönlichkeit, der NPCs, vollkommen nieder. Abgesehen davon, reißt mich dieses ständige Pause drücken, auch dauernd aus der Spielwelt raus.

Aus diesem Grund bin ich immer mehr dazu übergegangenen, erst nur noch mit einem, maximal zwei Begleitern zu spielen, und letztlich dann eben nur noch Solo durch zu laufen.
Ist aber doch irgendwie auch nicht das Gelbe vom Ei, oder?

Aber da gibt es ja doch noch diese KI-Skript Projekte, z.B. BPSeries usw.
Tolle Sache.... aber irgendwie war ich damit auch nicht glücklich. Ja, sie können unglaublich viel (zu viel vielleicht? ..habe ich den Kampf nun gewonnen, oder war ich nur Zuschauer und die Ki-Gruppe hätte mich gar nicht gebraucht?). Doch auch hier ist mir die Welt wieder zu sehr Kategorisiert. Ein Skript für Ranger, eines für Magier, eines für Diebe usw. …. ok, aber meine NPCs sind anders …. jedes mal wenn ich neu starte sind sie anders. Aerie hat jedes mal andere Zauber.... Jaheira ist mal mehr nur 'Kämpfer', und ein andern mal fast reine Heilerin und Supporter … und Nalia und Imoen, die können nicht nur Zaubern, die können auch Fallen suchen...

Also habe ich irgendwann einmal angefangen, ein eigenes KI-Skript zu machen. Erst sollte es nur Waldläufer und Bogenschützen dazu bringen, das sie ausser ihren Kampffähigkeiten, auch mal ab und zu ihre anderen Fähigkeiten sinnvoll einsetzen. Dann wurde es erweitert das auch Paladine damit gut funktionieren …. dann sollte es auch für eine Kämpfer-geskillte-Jaheira nützlich sein...
Inzwischen ist es so vielseitig geworden, das ich es für JEDEN meiner NPCs einsetze. Und es funktioniert super! Egal ob sie auch nebenher Fallen suchen können, Untote vertreiben, reine Heiler, reine Kampfmagier, reine Nahkämpfer, reine Bogenschützen.. oder irgendein Mischmasch dazwischen sind.


Skript rein in den NPC, und je nach Wunsch, einmalig mit ein paar Tasten (K, G, L, N, B, V und T) konfigurieren wie sich der NPC verhalten soll. Das dauert für alle 6 Gruppenmitglieder, insgesamt nur wenige Minuten.
Und nun werden die NPCs im Kampf, auch wirklich mal ihre Kampffähigkeiten entfalten... sich gegenseitig zur Hilfe kommen, und sowohl ihre Nahkampfwaffen, Fernkampfwaffen als auch Angriffs und Support Zauber sinnvoll einsetzen. Auch Eisenhaut zu Kampfbeginn, Skelette, Tiere und Elementare beschwören etc. wird Sinnvoll gezaubert. Ebenso natürlich Angriffszauber (Magische Geschosse, Feuerpfeil usw.). Und all das passend zum Gegner. Für extrem schwache Einzelgegner, wird der Magier womöglich gar nicht zaubern. Für stärkere Gegner oder Gegnergruppen, werden dann die heftigeren Zauber ausgepackt und auch Monster beschwören.

Jedoch bleibt das alles noch in einem gewissen Maß und der Spieler wird noch gebraucht.

Es ist nur ein einziges Skript. Dieses liegt als fertig compilierte Datei vor und auch als Quellcode-Datei. Jeder der Lust hat, kann also das Skript erweitern und mithelfen es zu verbessern.





Getestet habe ich es mit BG2. Sowohl mit der EE (Enhanced Edition) als auch mit der klassischen CD Installation und mit der ToB Erweiterung. Es sollte eigentlich überall laufen.



Installation
*********
m_k_alg.bs in das Verzeichnis \scripts\ kopieren.
m_k_alg.baf in das Verzeichnis \script compiler\source\ kopieren.
Im Spiel dann, einfach beim Begleiter das Skript auswählen, und mit den Tasten einmalig konfigurieren.


Deinstallieren
***********
Im Spiel bei den Begleitern das Skript raus nehmen.
Die m_k_alg.bs und m_k_alg.baf wieder löschen.


Ein Import z.B. für die Dialog.tlk ist nicht nötig.
 
Zuletzt bearbeitet:

Teac

Junior Member
Registriert
16.10.2015
Beiträge
3
Schnellsteuerung im Kampf (falls man das möchte)
*****************************************
E = Sofort auf Nahkampfwaffe umschalten und nähesten Gegner angreifen!

D = Sofort auf Nahkampfwaffe umschalten und nähesten Gegner angreifen, dabei bevorzugt Magiebegabte Gegner.

F = Sofort auf Fernkampfwaffe umschalten und nähesten Gegner angreifen, dabei bevorzugt Magiebegabte Gegner.



Begleiter-Verhalten konfigurieren VOR dem Kampf
****************************************
S = Stehenbleiben AN/AUS -> Folgen Modus erlauben/deaktivieren. Spielt nur ausserhalb von Kämpfen eine Rolle. Der NPCs wird wenn auf AN gestellt ist und er gerade nichts anderes zu tun hat, dem Anführer der Gruppe folgen wenn dieser weiter weg geht.

G = Hilferuf konfigurieren -> Ab wievielen verbleibenden Lebenspunkten, um Kampfunterstützung gerufen wird.

K = Suche Kampf -> Wenn nichts zu tun ist (nichts zu Zaubern usw.), dann einen Gegner mit Fern/Nahkampfwaffe angreifen.
Wenn AUS, dann wird die Fern/Nahkampfwaffe (falls eines davon erlaubt ist) wirklich nur im Notfall zur Verteidigung benutzt (also für den Fall das man von nahem von einem Gegner angegriffen wird und nichtsmehr zum Zaubern hat)!
Das ausschalten dieser Funktion kann Sinnvoll sein, wenn man z.B. einen Kleriker oder Magier mit einer Waffe austatet damit sie sich im Notfall verteidigen können. Man jedoch nicht möchte das sie den Kampf suchen, sondern sie sich bereit halten sollen fürs Zaubern und andere Heilen. Dadurch können die Magier, Kleriker usw. schneller reagieren und sofort z.B. einen Heilungszauber sprechen wenn jemand hilfe braucht, oder sofort einen Angriffszauber machen wenn ein starker Gegner auftaucht.
Diese Funktion beeinflusst in keiner weisse, ob der NPC jemand anderen zur Hilfe eilt oder nicht!

L = Leiste Kampfunterstuetzung -> Ob und bis zu welcher Entfernung, anderen Kameraden die um Hilfe rufen, geholfen werden soll. Hierbei gibt es die Modis: Nie helfen - Nur wenn Gegner nahe ist - Immer helfen


N = Nahkampfwaffe erlauben -> Automatisches umschalten auf eine Nahkampfwaffe erlauben (passiert wenn ein Gegner nahe ist).
----
B = Fernkampfwaffe erlauben -> Automatisches umschalten auf eine Fernkampfwaffe erlauben (passiert wenn keiner der Gegner nahe ist).
----
Je nach Situation wird der NPC jeweils entweder eine Fern- oder eine Nahkampfwaffe benutzen. Jenachdem wie nahe der Gegner ist.
Möchte man nun z.B. das ein NPC niemals selbstständig zur jeweils anderen Waffe wechselt, dann kann man entsprechend entweder die Nah- oder Fernkampfwaffe speeren.
Speert man die Nahkampfwaffe, dann wird der NPC auch im Nahkampf seine Fernkampfwaffe einsetzen. Das ist Sinvoll wenn der NPC mit seiner Fernkampfwaffe auch im Nahkampf effektiver Schaden macht als er es mit einer Nahkampfwaffe tun würde.
Speert man die Fernkampfwaffe, dann wird der NPC zum Gegner hinlaufen und ihn mit seiner Nahkampfwaffe angreifen.


V = Vorsichtig sein -> Vorsichtiges Kampf abbrechen und sich zurückziehen, wenn die Lebenspunkte des NPCs unter 33% sinken UND entweder die Lebenspunkte des Gegners noch über 20 Punkte oder die eigenen unter 30 Punkte sind.

T = Untote bannen -> Wenn diese Option AN ist, und der NPC 'Untote Vertreiben' kann, dann wird er dies tun sobald er untote Feinde sieht. Bei normalen Feinden (oder bei Untoten wenn diese Option AUS ist), wird er ganz normal angreifen (Je nachdem mit Zauber, Fernkampf- oder Nahkampf-Waffen).
Der NPC wird keine weniger wichtigen Schutzzauber, oder Angriffszauber sprechen. Jedoch wird er sehr wichtige Schutzzauber etc. trotzdem zaubern, oder verwundete Kameraden heilen. Dabei wird er kurzzeitig keine Untote vertreiben.
 
Zuletzt bearbeitet:

Teac

Junior Member
Registriert
16.10.2015
Beiträge
3
Beispiele
*******

Für Magier sind folgende Einstellungen Sinnvoll:
'G -> Hilferuf konfigurieren' -> Bei 75% um Hilfe rufen
'K -> Suche Kampf' -> AN
'L -> Leiste Kampfunterstuetz.' -> Immer helfen
'N -> Nahkampfwaffe erlauben' -> AUS
'B -> Fernkampfwaffe erlauben' -> AN
'V -> Vorsichtig sein' -> AN
'T -> Untote bannen' -> AUS evtl. AN


Für Fernkämpfer (Bogenschützen etz.) sind folgende Einstellungen Sinnvoll:
'G -> Hilferuf konfigurieren' -> Bei 50% um Hilfe rufen
'K -> Suche Kampf' -> AN
'L -> Leiste Kampfunterstuetz.' -> Immer helfen
'N -> Nahkampfwaffe erlauben' -> AUS evtl. AN
'B -> Fernkampfwaffe erlauben' -> AN
'V -> Vorsichtig sein' -> AN
'T -> Untote bannen' -> AUS


Für Heilungs-Kleriker sind folgende Einstellungen Sinnvoll:
'G -> Hilferuf konfigurieren' -> Bei 50% um Hilfe rufen
'K -> Suche Kampf' -> AUS
'L -> Leiste Kampfunterstuetz.' -> Nie helfen
'N -> Nahkampfwaffe erlauben' -> AN
'B -> Fernkampfwaffe erlauben' -> AN
'V -> Vorsichtig sein' -> AN
'T -> Untote bannen' -> AUS evtl. AN


Für Nahkämpfer (z.B. Kämpfer, Paladine, Nahkampf-Waldläufer, Nahkampf-Kleriker usw. ... mit möglichst vielen Lebenspunkten und möglichst guten Rüstungswerten) sind folgende Einstellungen Sinnvoll:
'G -> Hilferuf konfigurieren' -> Bei 75% um Hilfe rufen
'K -> Suche Kampf' -> AN
'L -> Leiste Kampfunterstuetz.' -> Immer helfen
'N -> Nahkampfwaffe erlauben' -> AN
'B -> Fernkampfwaffe erlauben' -> AN
'V -> Vorsichtig sein' -> AUS
'T -> Untote bannen' -> AUS

Anmerkung: Wird der NPC während des Kampfes soweit angeschlagen das er bei 75% um Hilfe ruft, dann führt dies dazu das alle anderen NPCs die ebenfalls zum Kampf mit Fern/Nahkampfwaffe abgestellt wurden und gerade können, sich auf den Gegner konzentrieren mit dem sich Gerade der um Hilfe rufende Kämpfer herumplagt. Der NPC der als erstes um Hilfe ruft, hat sich wahrscheinlich auch den härtesten der Gegner heraus gepickt. Und dieser sollte dann auch natürlich von allen anderen mit bekämpft werden. Dies ist auch der Grund warum es Sinnvoll sein kann, bei einem Nahkämpfer den 'Hilferuf' schon bei 75% machen zu lassen. Obwohl man ja eigentlich meinen würde, die Nahkämpfer können so viel einstecken, das man bei ihnen am ehesten den 'Hilferuf' auf 50% oder noch wenniger stellen könnte.
 
Zuletzt bearbeitet:

Sir Darian

Ritter des Helm
Registriert
01.04.2000
Beiträge
33.895
Hmmm... *grübel*

Willkommen im Forum.

Interessantes Projekt, danke für die Veröffentlichung hier. :)
 

Lokadamus

Buddelmagier
Registriert
01.03.2000
Beiträge
4.861
Ehrlich gesagt liest sich deine Sammlung wie eine Überarbeitung von bereits bestehenden KI- Projekten. Vor Jahren habe ich eines gesehen, was je nach Gegner andere Aktionen gestartet hat. Ein Feuerball auf einen Kobold ist Blödsinn, weshalb der Feuerball nur bei Monster größer/ stärker/ irgendwas ausgelöst wurde usw.

Selber habe ich mir eine einfache Form der KI Skripte gebastelt, um nicht mehr zwischen Nah- und Fernkampf, Diebesfähigkeiten usw. umschalten zu müssen. Auf meine kleine, primitive Sammlung kann ich zur Zeit nicht verweisen, weil Arcor/ Kabel Deutschland meine Seite nicht wieder freischalten will und mir keine Angaben macht, warum nicht. Sie wurde vor einem Jahr neben anderen Seiten des Hosters gehackt.
 
Oben