Danke fürs Lob.
Hier noch ein weiteres Teil.
ARMEEN ERSCHAFFEN
Benötigte Dateien:
campaign_script im Ordner data/world/maps/campaign/imperial_campaign
Wenn man es weiß ist es eigentlich leicht und man kann es auch aus dem Originalskript von ME2 oder Kingdoms raussuchen. Trotzdem erwähne ich es mal.
Manchmal möchte man, dass wenn man in der Kampagne ein Ziel erreicht hat, eine Belohnung bekommen. Oder die KI soll eine bekommen, wenn sie das Ziel erreicht. Da bietet sich doch eine Belohnung in Form von Truppen an.
Hier am Beispiel der normans:
monitor_conditions I_TurnNumber = 1 ;wird in Rund 1 gestartet
spawn_army ;erschafft Armee
faction normans ;Fraktion normans
character random_name, named character, age 30, x 252 y 76 ;Kommandat bekommt nen Zufallsnamen ist ein General 30 Jahre alt und erscheint bei Koords 252,76
traits EasternWarlord 3 , GoodCommander 3 , Bloodthirsty 2 , BattleDread 3 , StrategyDread 2 , PublicFaith 4 , Loyal 1, ContentGeneral 3 ;Merkmale des Generals
unit NE Bodyguard exp 0 armour 0 weapon_lvl 0 ;Erste Einheit, die Leibwache
unit Pilgrims exp 0 armour 0 weapon_lvl 0 ;Weitere Einheit
end ;abschluss der Armee
terminate_monitor
end_monitor
Alles anzeigen
Hier erscheint ein General der normans, mit seiner Leibwache und einer Einheit Pilger, in der 1. Runde (Spiel startet in Runde 0) bei den Koordinaten 252:76. Man könnte es jetzt natürlich auch vom Besitz einer Stadt oder mehrer Städte, einem bestimmten Ereigniss usw. abhängig machen. Die Liste der Einheiten ist natülich auch beliebig verlängerbar. Die Einheiten müssen aber von der Fraktion deren Armee da erschaffen wird auch rekrutierbar sein. Auch dürfen es einschließlich Leibwache nicht mehr als 20 Einheiten sein.
monitor_event FactionTurnStart FactionType normans ;Test bei Start des Zuges der normans
and I_SettlementOwner Antioch = normans ;und Antioch im Besitz der normans
spawn_army ;erschaffe Armee
faction normans ;Fraktion normans
character random_name, general, age 30, x 252 y 76 ;Kommandant bekommt nen Zufallsnamen ist ein Hauptmann 30 Jahre alt und erscheint bei den Koords 252,76
unit Pilgrims exp 0 armour 0 weapon_lvl 0 ;Erste Einheit
unit Pilgrims exp 0 armour 0 weapon_lvl 0 ;Weitere Einheit
end ;Abschluß der Armee
terminate_monitor
end_monitor
Alles anzeigen
Am Beginn des Zuges der normans, sollten sie die Stadt Antioch kontrollieren, erscheinen bei den Koordinaten 252:76 nun 2 Einheiten Pilger die von einem Hauptmann kommandiert werden. Also kein General/Familienmitglied.
Man kann auch Einheiten direkt in einer Stadt entstehen lassen.
monitor_event FactionTurnStart FactionType normans ;Test bei Start des Zuges der normans
and I_SettlementOwner Antioch = normans ;und Antioch im Besitz der normans
create_unit Antioch, Pilgrims, num 2, exp 0, arm 0, wep 0 ;erschaffe in Antioch Pilger Anzahl 2
terminate_monitor
end_monitor
Alles anzeigen
Letzteres findet in den Garnisonsscripten verwendung.
weissnicht hat dazu ein gutes Tutorial geschrieben
http://totalwar-forum.de/wbb/index.php?page=Thread&threadID=2278
Das ist auch interessant. Zwar kein Tutorial aber es wird genauer das Erschaffen von Armeen erklärt.
http://www.totalwar-zone.de/fo…=terminate_monitor+einmal
---------------------------------------------------------------------------------------------------------------------------------
ARMEEN ANGREIFEN LASSEN
Benötigte Dateien:
campaign_script im Ordner data/world/maps/campaign/imperial_campaign
Jetzt mal was praktischen um mehr Action auf die Strategiekarte zu bekommen.
Wenn man eine Armee einfach erschafft, dann steht die erstmal nur dumm da. Solange, bis entweder man selbst oder die KI die Armee bewegt. Man selbst weiß mit Truppen ja meist was Gutes anzufangen. Aber bei der KI hege ich da ernsthafte Zweifel. Darum muss man sie ab und an zu ihrem Glück zwingen und sie dazu nötigen eine Siedlung zu belagern/anzugreifen.
Dazu erschaffen wir erstmal eine Armee.
monitor_event FactionTurnStart FactionType slave ;Test beim Start des Zuges der slave
and not I_SettlementOwner Valencia = slave ;uns die Siedlung Valencia nicht im Besitz der slave
spawn_army ;erschaffe Armee
faction slave, sub_faction spain ;Fraktion slave Unterfraktion spain
character El_Cid, named character, age 33, x 94, y 87, label Valencia01 ;Kommandant mit dem Namen El Cid General im Alter von 33 bei den Koords 94,87
unit SE Bodyguard exp 0 armour 0 weapon_lvl 0 ;Erste Einheit, Leibwache
end ;Abschluß der Armee
terminate_monitor
end_monitor
Alles anzeigen
In diesem Fall erscheint der General El_Cid für die slave. Ein 33 Jahre alter General bei den Koors 94,87. Es währen aber auch alle anderen Fraktionen und Namen möglich. Der Name muß aber in der data/descr_names.txt bei der Fraktion für die die Armee gespawned wird vorhanden sein.
Ist aber ein anderes Thema. Hier ist für uns label Valencia01 interessant.
Das label Valencia01 ist wie der Name der Armee. Damit können wir der Armee nach ihrem Erscheinen befehlen eine Stadt zu belagern, eine Runde zu warten und anzugreifen. In diesem Fall nehmen wir als Stadt Valencia.
Passt irgendwie. 
declare_counter attack_valencia 0 ;Counter für den Angriff
monitor_event FactionTurnStart FactionType slave ;Test beim Start des Zugs der slave
and I_CharacterExists Valencia01 ;label Valencia01 muss existieren
if I_SettlementOwner Valencia = slave ;wenn die Siedlung Valencia den slave gehört
terminate_monitor ;endet es hier
end_if
if I_SettlementUnderSiege Valencia ;wenn Valencia belagert wird
and I_EventCounter attack_valencia = 0 ;und Counter auf 0
terminate_monitor ;ebenfalls zuende
end_if
if I_EventCounter attack_valencia = 1 ;wenn der Counter auf 1 ist
siege_settlement Valencia01, Valencia, attack ;soll Valencia01 die Siedlung Valencia angreifen
terminate_monitor
end_if
if I_EventCounter attack_valencia = 0 ;wenn der Counter auf 0 ist
siege_settlement Valencia01, Valencia, maintain ;soll Valencia01 die Siedlung Valencia belagern
set_event_counter attack_valencia 1 ;setzt den Counter auf 1 damit in der nächsten Runde angegrifen wird
end_if
end_monitor
Alles anzeigen
Kurz im Einzelnen.
if I_SettlementOwner Valencia = slave
terminate_monitor
end_if
Sollte die Siedlung in der Zwischenzeit in den Besitz der slave geraten sein, passiert nichts. Die Armee bleibt einfach auf ihren Koords oder was die KI halt mit ihr macht. Das ist deshalb wichtig, da es sonst nen schönen
Crash gibt wenn ne gespawnte Armee ne Stadt belagert, die der Seite aber schon gehören. 
Das
if I_SettlementUnderSiege Valencia
and I_EventCounter attack_valencia = 0
terminate_monitor
end_if
Wenn die Stadt bereits belagert wird macht die Armee ebenfalls nichts. Ebenfalls aus dem Grund, dass es sonst zu einem Crash kommen könnte.
Mit
if I_EventCounter attack_valencia = 1
siege_settlement Valencia01, Valencia, attack
terminate_monitor
end_if
wird die Stadt angegriffen. Wenn der counter auf 1 ist. Das machen wir aber erst im nächsten Schritt, da die Siedlung ja erst 1 Runde belagert werden soll.
Mit
if I_EventCounter attack_valencia = 0
siege_settlement Valencia01, Valencia, maintain
set_event_counter attack_valencia 1
end_if
bekommt die Armee den Befehl die Stadt zu belagern und es setzt den counter auf 1. Eben damit in der nächsten Runde dann angegriffen wird.
Danke an Amon Amarth 930 der mir dabei geholfen hat.
Es ist auch möglich beim Befehl für die Belagerung statt des label Valencia01 den Namen des Generals, in diesem Fall El_Cid, zu verwenden. Allerdings marschiert dann auch nur der General zur Belagerung. Während die Armee wieder dumm rumsteht oder vielleicht sogar wo ganz anders hingeht. Es soll auch gehen den Anführer oder Erben mit ner Belagerung/Angriff zu betrauen. Hab aber keine Erfahrung damit.
----------------------------------------------------------------------------------------------------------------------------------
EVENTS NUR FÜR BESTIMMTE FRAKTIONEN
Benötigte Dateien:
campaign_script im Ordner data/world/maps/campaign/imperial_campaignhistoric_events.txt im Ordner data/text
Für ein eigenes Bild (nicht notwendig da das Spiel einfach auf das Bild des historischen Ereignisses zurückgreift wenn keines hinterlegt ist) einfach eines im den Ordner eventpics in data/ui/southern_european hinterlegen.
Wenn man will dass ein Event nur für bestimmte Fraktionen sichtbar ist und oder ein Event für jede Seiten verschieden aussehen soll, dann sind hier zwei mögliche Wege.
Nr. 1
Man schließt Fraktionen aus welche das Event nicht zu sehen bekommen sollen.
z.B.
monitor_event GeneralCaptureSettlement SettlementName Jerusalem ;Test nach der Eroberung Jerusalems
and not I_LocalFaction russia ;und man spielt nicht russi
and not I_LocalFaction hre ;und man spielt nicht hre
and not I_LocalFaction egypt ;und man spielt nicht egypt
and not I_LocalFaction moors ;und man spielt nicht moors
historic_event jerusalem ;Name des events
end_monitor
Alles anzeigen
Damit bekommen man bei einer Eroberung Jerusalems und man spielt russia, hre, egypt oder moors kein Event mit dem Namen jerusalem gezeigt. Spielt man hingegen eine der anderen Fraktionen schon.
Danach auch wieder für alle Im Ordner data/text/historic_events einen Eintrag hinterlegen.
{JERUSALEM_BODY}Jerusalem ist platt wie ein Pfankuchen. Guten Appetit
{JERUSALEM_TITLE}Jerusalem ist platt
Wenn man ein eigenes Bild für das Ereignis möchte, einfach eines im Ordner data/ui/southern_european/eventpics mit dem Namen des Events (jerusalem) hinterlegen.
Das kann aber sehr langatmig werden wenn es nur 2 oder 3 Fraktionen sehen sollen.Besser Weg Nr. 2
monitor _event GeneralCaptureSettlement SettlementName Jerusalem ;Test nach der Eroberung Jerusalems
historic_event jerusalem factions { england, france, hre, scotland, aragon, spain, } ;Fraktionen die das Event sehen sollen
end_monitor
Damit bekommen man das Event nur zu sehen, wen man eine der in Klammern stehenden Fraktionen spielt.
So könnte man auch für einen Teil der Fraktionen das eine Event und für nen anderen Teil ein Anderes zeigen. Einfach ein weiteres historic_event darunter setzen.
monitor _event GeneralCaptureSettlement SettlementName Jerusalem ;Test nach der Eroberung Jerusalems
historic_event jerusalem factions { england, france, hre, spain, milan, } ;Fraktionen die das eine Event sehen
historic_event test factions { egypt, turks, moors, ziriden, } ;Faktionen die das Event sehen
end_monitor
Jetzt bekommt man, sollte man england, france, hre, spain oder milan spielen das Event jerusalem zu Gesicht.
Spielt man hingegen egypt, turks, moors oder ziriden sieht man das Event test. Danach auch wieder für alle Im Ordner data/text/historic_events einen Eintrag hinterlegen.
{JERUSALEM_BODY}Jerusalem ist platt wie ein Pfankuchen. Guten Appetit
{JERUSALEM_TITLE}Jerusalem ist platt
{TEST_BODY}Essen fassen. Jerusalem ist platt wie ne Flunder. Guten Appetit
{TEST_TITLE}Jerusalem ist platt
Wenn man ein eigenes Bild für das Ereignis möchte, einfach eines im Ordner data/ui/southern_european/eventpics mit dem Namen des Events (jerusalem/test) hinterlegen.
----------------------------------------------------------------------------------------------------------------------------------
Noch ein paar Hinweise:
Koords zu finden/sich zu suchen geht am einfachsten indem man im Spiel mit ö die Konsole öffnet und show_cursorstat eingibt. Dann erhält man die Koordinaten von der Stelle an der sich der Mauszeiger befindet.
toggle_fow zeigt die ganze Karte.
Im Script kann man mit ! not ersetzen
Beispiel:
statt
and not I_SettlementOwner Jerusalem = slave
geht auch
and I_SettlementOwner Jerusalem != slave
nur für den Fall daß ich es oben nicht überall geändert hab. 
Um Ordnung in seinem Script zu halten mit Semikolon ; arbeiten. Alles was in der Zeile nach einem ; steht wird vom Script ignoriert. Damit läßt sich also gut Ordnung halten.
z.B.
;--------------------Start----------------------
oder
;##############Hallo################
oder
;;;;;;;;;;;;;;;;;Entenhausen;;;;;;;;;;;;;;;;;
Zur Diskussion bitte hier entlang