von
Günter » Dienstag 11. Januar 2005, 20:42
....danke Günter, aber mit der KI laufen die neu erstellten einheiten zwar rum
........aber angreifen tun die nichts, die rammen sind auch stinkfaul
Tja, der Compi muss natürlich auch wissen, wo der "Feind" sich versteckt.
Das mach ich immer so, das ich einen Späher mit dem Schalterbefehl "Objekt zuweisen" zu irgendeinem Gebäude des Feindes schicke. Dann marschieren die Soldaten normalerweise auch da rüber und attackieren ordentlich.
Vielleicht solltest du auch noch die Größenordnungen der Angriffsformationen in der KI mitangeben.
Sieh so aus:
<pre>
(defconst min-Angriffstrupp <i>Wert1</i> )
(defconst max-Angriffstrupp <i>Wert2</i> )
(defrule
(true)
=>
(set-strategic-number sn-percent-attack-soldiers 100)
(set-strategic-number sn-attack-intelligence 100)
(set-strategic-number sn-defense-distance 100)
(set-strategic-number sn-sentry-distance 100)
(set-strategic-number sn-target-evaluation-siege-weapon 100)
(set-strategic-number sn-target-evaluation-damage-capability 100)
(set-strategic-number sn-number-attack-groups 2)
(set-strategic-number sn-minimum-attack-group-size min-Angriffstrupp)
(set-strategic-number sn-maximum-attack-group-size max-Angriffstrupp)
(attack-now)
(disable-self))
</pre>
Bei <i>Wert1</i> und <i>Wert2</i> gibst du an, wieviel Soldaten der Compi als Angriffstrupp bilden soll, wobei Wert 1 kleiner sein muss als Wert2.
Du kannst auch noch einen Angriffstimer mit einbauen. Das sähe dann so aus:
<pre>
(defconst min-Angriffstrupp <i>Wert1</i> )
(defconst max-Angriffstrupp <i>Wert2</i> )
(defconst Angriffs-Intervall 300)
(defrule
(true)
=>
(set-strategic-number sn-percent-attack-soldiers 100)
(set-strategic-number sn-attack-intelligence 100)
(set-strategic-number sn-defense-distance 100)
(set-strategic-number sn-sentry-distance 100)
(set-strategic-number sn-target-evaluation-siege-weapon 100)
(set-strategic-number sn-target-evaluation-damage-capability 100)
(set-strategic-number sn-number-attack-groups 2)
(set-strategic-number sn-minimum-attack-group-size min-Angriffstrupp)
(set-strategic-number sn-maximum-attack-group-size max-Angriffstrupp)
(attack-now)
(enable-timer 1 Angriffs-Intervall)
(disable-self))
</pre>
Bei dir hört es sich aber eher danach an, als ob immer Angegriffen werden soll, da brauchst du keinen Timer.
Probier das alles mal aus, auch Björns Variante geht natürlich, die wird auch des öfteren verwendet. Die ist allerdings berechenbarer, was aber sowohl ein Vorteil als auch ein Nachteil sein kann. Es kommt im Prinzip immer auf das Scenario an, welche Lösung man wählt.
Ich finde die KI-Variante etwas eleganter
.