Wegelagererproblem

Fragen zum Szenarienbau und Mapdesign

Moderatoren: Henning, Björn_Jernside

Mein Problem ist folgendes: In meiner Kampagne sollen Wegelagerer vorkommen, die Marktkarren und deren Begleitung angreifen, wenn diese in der Nähe ihres Lagers sind. Andere Einheiten oder Gruppen sollen nicht angegriffen werden. Nachdem der Marktkarren und dessen Begleitung vernichtet sind sollen die Wegelagerer zum Lager zurückgehen. Ich wüsste jetzt gerne, wie das Ganze mit Schaltern oder KI gemacht werden muss.
Ich hoffe ihr habt eine Idee, ich hab nämlich keine.
Gruß Thrawn
Am ehesten würde hier eine Schalterlösung funktionieren.
Bei "Objekt im Gebiet/Marktkarren" werden die Wegelagerer per Objekt zuweisen zu diesem Gebiet bewegt. Ein Problem dabei könnte jedoch sein , das Marktkarren ziemlich schnell sind.^^
Wenn jedenfalls Marktkarren mit Begleitung wieder weg oder vernichtet verschwinden die Wegelagerer wieder.

Mit KI ... da fällt mir dazu nichts ein.
Die Aktion "attack-now" ist zu allgemein ... und du kannst mit KI kein Gebiet vorgeben, welches angegriffen werden soll.
Hier reicht normalerweise die "Immobile Units"
Das Problem ist halt, dass die Wegelagerer nur Marktkarren und deren Begleitung angreifen, aber andere Personen unbehelligt lassen sollen. Ich weiß nicht wie ich das machen soll, dass nur die Begleitsoldaten der Marktkarren angegriffen werden sollen, aber andere Soldaten nicht.

EDIT: Die Geschwindigkeit ist nicht so das Problem,denn die Wegelagerer haben nur Freischärler.
Hmm, für KIs gibt es nen Zusatzbefehl für Spezialattacken:

(set-strategic-number sn-special-attack-type1 xxx)

Wobei bei xxx die Unit-ID eingegeben werden muß.
Für beladene/ unbeladene Marktkarren ist die z.B. 128 bzw 204.

Allerdings ist dieser Befehl sehr schwammig, und nicht wirklich 100% zuverlässig.

Du könntest natürlich noch einen Diplomatiewechsel einstellen, der die Räuber auf Neutral bzw Verbündet setzt, wenn weniger als 1 Marktkarren existieren.
Geht natürlich nur wenn der Spieler nicht zeitgleich noch irgendwo anders Marktkarren hat.

Das "Zuweisen" Problem was Günni angesprochen hat kannst du vielleicht damit lösen, daß die Angreifer nicht direkt zu dem Gebiet geschickt werden, sondern auf ein Fleck etwas weiter voraus auf der Strecke zugewiesen werden, also gewissermaßen den Marktkarren auflauern.
Ich weiß nicht wie ich das machen soll, dass nur die Begleitsoldaten der Marktkarren angegriffen werden sollen, aber andere Soldaten nicht.
Hmm. Ist zwar umständlich, aber theoretisch kannst du einen Dauerschalter (Bedingung egal) einrichten, der die Räuber ins Lager zurückschickt, sie also daran hindert, auszuschwärmen bzw Einheiten anzugreifen.
Ein zweiter Schalter deaktiviert diesen jeweils, SOBALD aber mind. 1 Marktkarren (voll oder beladen) in das gewünschte Gebiet kommt.
Alle anderen Soldaten die dann da noch mitlaufen, sind ja dann mehr oder weniger Eskorte.
Natürlich müßte der Schalter sich jedes Mal neu aktivieren, wenn der Angriff erfolgt ist, damit die Räuber nach getaner Arbeit nicht da stehen bleiben, sondern ins Lager zurückkehren.

Könnte z.B. so aussehen (ohne Gewähr ;) ):


Schalter_1 (Räuber ins Lager)
Bed.: Zeitgeber x sec
Effekt: alle Räubereinheiten von best. Gebiet zurück ins Lager zuweisen
Ausgangsstellung: AN
Triggerschleife: AN

Schalter_2 (Eine Karawane kommt)
Bed.: Objekte im Gebiet Marktkarren Sp. 1 Anzahl: 1
Effekt1: deaktiviere Schalter_1
Effekt2: aktiviere Schalter_3
Effekt3: aktiviere Schalter_4
Effekt4: Diplomatiewechsel Räuber ->Spieler 1: feindlich
Ausgangsstellung: AN
Triggerschleife: AUS

Schalter_3 (Räuber greifen an!)
Bed.: z.B. Zeitgeber 3 sec
Effekt: Räuber zuweisen auf einen vorgelagerten Punkt, um die Marktkarren abzufangen
Ausgangsstellung: AUS
Triggerschleife: AN oder AUS (wahlweise)

Schalter_4 (Reset-Schalter)
Bed.: Weniger Objekte Sp. 1 Marktkarren: 0
Effekt1: ggf. deaktiviere Schalter_3
Effekt2: reaktiviere Schalter_1
Effekt3: reaktiviere Schalter_2
Effekt4: Diplomatiewechsel Räuber ->Spieler 1: neutral bzw. verbündet
Ausgangsstellung: AUS
Triggerschleife: AUS


Mit Schalter_4 werden nach jedem erfolgten Angriff die Ausgangsbedingungen wieder hergestellt.
@ Barbarossa Die Schalterkonstruktion funktioniert soweit, nur besteht das Problem, dass es nur einmal geht, da Spieler 1 ja nur einen Marktkarren haben kann. Aber ich brauch das Ganze wahrscheinlich mehrmals.
Nur einmal? :confused:

EDIT: Ah so, wenn Spieler 1 sowieso nur EINEN Karren hat, mußt du natürlich "Weniger eigene Objekte: Marktkarren: 0"
statt "Weniger eigene Objekte: Marktkarren: 1" eingeben.
Ich bin halt davon ausgegangen daß noch mindestens 1 übrig bleibt.


Ich probiers gleich mal selbst aus...

Hm, ich mir ist aber sowieso noch eine gute KI-Lösung
eingefallen:

; Marktkarren gesichtet!

(defrule
(players-unit-type-count 1 trade-cart > 0)
=>
(set-stance 1 enemy)
)

;Angriff abbrechen
(defrule
(players-unit-type-count 1 trade-cart == 0)
=>
(set-stance 1 neutral) ; bzw "ally"
)


Weiß nicht wie gut du dich mit KI's auskennst.
Diese beiden Befehle lassen die Ki nur dann feindlich werden, wenn mind. 1 Marktkarren in ihr Sichtfeld (ihrer Einheiten, Gebäude, Kartenaufdecker etc.) kommt.
Sieht sie keine mehr, wechselt sie die Diplomatie zu "neutral" oder "ally" (je nachdem was erwünscht).

Probier mal aus:

a) nur die KI (ohne die Schalter);
dafür verteile noch Kartenaufdecker auf dem Weg/ Ziel-Gebiet, so daß die KI auch ohne Einheiten rumstreunern zu lassen "sieht" wenn ein Marktkarren daher kommt.
Das sollte eigentlich funzen.

b)die KI in Kombination mit einem der Schalter oder dem ganzen System).

Eines davon müßte eigentlich nach etwas Anpassung ein brauchbares Ergebnis erzielen.
EDIT: Sorry, in der KI war ein kleiner Fehler! Hab ihn eben korrigiert!
@ Barbarossa Es funktioniert nur einmal, weil nachdem der erste Marktkarren vernichtet wurde, die Wegelagerer den nächsten nicht mehr angreifen.

Ich hab die KI grad mal ausprobiert, aber sie funktioniert nicht. Alle Wegelagerer verteilen sich über die ganze Karte und greifen nur einzeln an (und auch nur wenn der Karren in ihrer Nähe ist). Ich wollte aber, dass sie als Gruppe angreifen.

EDIT: Da war ich wohl zu langsam beim Schreiben.
Oder ich zu schnell. :D

Hmja, ich habs auch gerade gemerkt, daß der Diplomatiewechsel nicht funzt.
Komisch.

Achso, das hab ich vergessen zu sagen:
du mußt natürlich eine passive KI als Basis nehmen (am besten Immobile Units wie Günni schon geraten hat).

Wichtig ist daß der Befehl
(set-strategic-number sn-task-ungrouped-soldiers 0)
drin ist.
Der verhindert ein Ausschwärmen der Einheiten.
@ Barbarossa Ich hab grad nochmal getestet, die Wegelagerer schwärmen nicht mehr aus, der Diplomatiewechsel funktioniert aber nicht. Am Anfang Wechsel zu Neutral, aber wenn ein Marktkarren in der Nähe eines ihrer Außenposten ist, gibt es keinen Wechsel zu Feindlich.
@ Barbarossa Ich hab grad nochmal getestet, die Wegelagerer schwärmen nicht mehr aus, der Diplomatiewechsel funktioniert aber nicht. Am Anfang Wechsel zu Neutral, aber wenn ein Marktkarren in der Nähe eines ihrer Außenposten ist, gibt es keinen Wechsel zu Feindlich.
Hab ich auch gerade festgestellt. Merkwürdig.

Müßte man mal ausprobieren ob das generell so nicht funzt oder nur bei Marktkarren.

ALSO: VERGISS DIE KI-LÖSUNG!
Schade, wär am einfachsten gewesen.
Dafür hab ich den Fehler beim Schaltersystem gefunden:
Schalter_2 muß natürlich AUCH von Schalter_4 wieder neu aktiviert werden!!! :KopfgegenWand:

Ich hab das Schaltersystem nochmal editiert (s.o.) und noch einen Diplomatiewechsel mit eingebaut.
Somit erübrigt sich die KI.

EDIT: Du kannst natürlich trotzdem die Ki benutzen (ohne den nicht funzenden Teil) und noch folgende rules ergänzen bzw abändern:

(set-strategic-number sn-percent-enemy-sighted-response 100)
-> bedeutet daß 100 % der Räubereinheiten zum Angriff benutzt werden, die gerade Sichtkontakt zu dir haben.

(set-strategic-number sn-task-ungrouped-soldiers 0)
->Wie oben erklärt; der Wert "0" heißt hier: Einheiten untätig lassen

(set-strategic-number sn-number-attack-groups 1)
->Legt die Anzahl der Angriffsgruppen fest, hier also z.B. alle Einheiten in nur einer.

(set-strategic-number sn-minimum-attack-group-size 20)
-> Wichtig! Dieser Befehl legt die minimale Angriffsgruppengröße auf 20 Einheiten fest.
Verhindert i.d.R. daß die CPU nur Kleckerkram schickt.

(set-strategic-number sn-enemy-sighted-response-distance 10)
-> Legt die Angriffsreichweite fest.
"10" heißt 10 tiles. Also die Sichtweite von 10.
Gegner die weiter wegstehen werden von der Einheit ignoriert.

Das sollte bewirken, daß die KI bei Feindkontakt kompakte Angriffsgruppen benutzt, sonst aber eher passiv ist.
Ein bißchen Feinabstimmung (je nach Map) ist halt bei jeder Ki nötig.
@ Barbarossa Ich hab die überarbeitete Fassung nochmal getestet, aber es geht wieder nur bei einem Karren. Beim zweiten gehen die Wegelagerer nicht mehr aus dem Lager raus.
Also bei mir gehts einwandfrei.

Wenn du die Schalter alle so eingestellt hast wie beschrieben, kanns eigentlich nur an dem "zuweisen" Effekt bei Schalter_3 liegen.
Ist der vielleicht falsch eingestellt?
Bzw. stehen in dem Gebiet von dem aus er zuweisen soll (Lager) im fraglichen Moment keine Einheiten?

Zur Not kann ich dir meine Testmap schicken, da kannst du's vergleichen. Ich kenn die Räumlichkeiten deiner Map ja auch nicht.

EDIT: Auf was hast du eigentlich die Bedingung bei Schalter_2 eingestellt?
Volle oder leere Marktkarren?
Beides geht nämlich in einem Schalter nicht!
Besch...eidenerweise heißen die im Editor auch beide "Marktkarren".

Damit die Kette bei VOLLEN und LEEREN Marktkarren klappt, kannst du entweder:

a) bei Bed. Schalter_2 gar nichts einstellen außer bei "Objekt-Typ" unten rechts die Rubrik "Zivilist".
NACHTEIL: Dann wird der Schalter auch bei Dorfis und Mönchen ausgelöst.

b) noch einen Schalter_2a ergänzen, der genauso aufgebaut ist wie Schalter_2, nur halt als Bedingung den anderen Karren enthält.

Falls es daran liegt, kann ich dir die Schalterkonstellation auch noch mal posten.
@ Barbarossa Ich hab jetzt alles nochmal neu gemacht und getestet. Es geht, bis auf die Tatsache, dass die Wegelagerer den zweiten Marktkarren nicht angreifen. Sie sammeln sich an der Stelle zu der ich sie zugewiesen hab und tun nichts.
Tun nichts?

Also d.h. sie greifen den nächsten Marktkarren NICHT an, obwohl der direkt an ihnen vorbeifährt oder wie meinst du das?

Nicht daß wir aneinander vorbeireden:

Wieviele Marktkarren hat Spieler 1 denn jetzt gleichzeitig?
Also mit "der zweite" meinst du: nicht der zweite im Konvoi, sondern ein neuer, der erst nach der Zerstörung des ersten produziert wurde.

Kommt denn der Diplomatiewechsel zu "Feindlich" wieder?
Das würde es erklären. Weil bei "neutral" werden ja keine Zivilisten angegriffen.

Die Immobile KI greift ja nur an was sie sieht, oder soll die KI auch nach Feinden suchen?
Dann müßte man noch ein paar Sachen ergänzen.

Wenn nicht schick ich dir gleich mal meine Testmap.
Da werden die Räuber auch immer auf die selbe Stelle zugewiesen, und sie greifen auch jedesmal den Konvoi an, bis der betreffende Markkarren zerstört ist oder ich sie vorher besiegt hab.
Also der zweite Marktkarren ist zwar von Anfang an da, wird aber erst nach der Vernichtung des ersten losgeschickt.
Diplomatiewechsel hab ich keinen, da es auch so ganz gut geht.
Als KI hab ich die Immobile Units genommen.

EDIT: Die Wegelagerer greifen den Karren nicht an, auch wenn er direkt neben ihnen steht. Da ich keinen Diplomatiewechsel habe, sind die Spieler immer feindlich zueinander.
EDIT: Die Wegelagerer greifen den Karren nicht an, auch wenn er direkt neben ihnen steht. Da ich keinen Diplomatiewechsel habe, sind die Spieler immer feindlich zueinander.
???
Dat vasteh ik nich!
Wie geht denn sowas???

Feindlich plus in Sichtweite und trotzdem kein Angriff?
Das hab ich ja auch noch nie gehabt.

Und wenn du in der KI die Angriffsreichweite auf was höheres setzt als "10"?
Aber das kanns eigtl. nicht sein, wenn der Karren sogar DIREKT nebendran steht, muß die KI normalerweise angreifen...

ZITAT: Also der zweite Marktkarren ist zwar von Anfang an da, wird aber erst nach der Vernichtung des ersten losgeschickt.
Dann mußt du aber auch die Schalter_4 Bedingung anpassen, weil die Bedingung ja nicht die Marktkarren im GEBIET zählt, sondern ALLE die Spieler 1 gerade besitzt!
Aber das scheint ja zu klappen.

Nur das mit dem Nicht-Angreifen kapier ich so nicht.
Dann MUSS die KI aus irgendeinem Grund neutral sein.
Bei "feindlich" gibts keinen Grund warum die eine Feindeseinheit vor ihrer Nase ignoriert.
Die KI ist eindeutig Feindlich. Der erste Karren wird auch anstandslos angegriffen, dann gehen die Wegelagerer zurück und kommen beim zweiten wieder, greifen aber nicht an.
EDIT: *Idee* Welche Immobile Units AI hast du denn?
Da gibts nämlich mehrere Versionen von.
Falls vorhanden mußt du unbedingt alle diplomatie-bezogenen Rules löschen, da diese die Schalter und Editor-Einstellungen dominieren!

Ansonsten kann ich da jetzt ohne die Map selbst gesehen zu haben nix zu sagen. :(
Es macht jedenfalls keinen Sinn.

Es kann höchstens sein daß noch irgendein Zuweisen-Effekt wirkt, der sie davon abhält anzugreifen.
Halte ich aber eher für unwahrscheinlich, das würde man ja an den "zuckenden Bewegungen" erkennen.
Ich hab die Immobile Units, die bei den Arenaspielen dabei war. Die hat aber keine Diplomatieeinstellungen.
Das mit dem Zuweisen-Effekt kann sein, aber das müsste aber auch beim ersten Karren so sein. Die Wegelagerer sehen so aus als würden sie immer wieder auf den Abfangpunkt zugewiesen werden. Aber der hat eindeutig keine Triggerschleife. Und das passiert nur beim zweiten Karren.

EDIT: Ich hab nochmal rumprobiert, aber das Ergebnis ist das selbe. Der Erste wird vernichtet, beim Zweiten versammeln sich die Wegelagerer, ohne anzugreifen.

EDIT2: Schick mir mal deine Karte, dann kann ich nachsehen wo der Fehler liegt.