Nebelvolk Truppen

» Siedler Map Source Forum » Mapping » Nebelvolk Truppen

Seiten: 1 2 Nächste Seite

RitterLeo
#1
19.01.2018 16:35
Beiträge: 169

Nebelvolk Truppen

Ich versuche grade bei meiner Koop-Map die eine KI Truppen wie Bärenmenschen oder Speerwerfer ausbilden zu lassen klappt aber irgendwie nicht.
Kann mir bitte jemand helfen?

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

Zedeg
#2
19.01.2018 16:58
Beiträge: 403

Beispielaufruf

    MapEditor_SetupAI(4, 1, 4000, 1, "EHQ_P", 0, 0)
    SetAIUnitsToBuild(4, UpgradeCategories.LeaderSword, UpgradeCategories.LeaderPoleArm, UpgradeCategories.LeaderBow)

ZIP mit UpgradeCategories

____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

RitterLeo
#3
19.01.2018 17:00
Beiträge: 169

Werde ich mal ausprobieren.
Aber schonmal vielen dank Zedeg.

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

RitterLeo
#4
19.01.2018 17:06
Beiträge: 169

Funktioniert irgendwie nicht.
Ich verwende diese KI:

local aiID = 4;
local strength = 2;
local range = 13000;
local techlevel = 3;
local position = "HQ_P4";
local aggressiveness = 3;
local peacetime = 3000;
MapEditor_SetupAI( aiID, strength, range, techlevel, position, aggressiveness, peacetime );
SetupPlayerAi( aiID, { extracting = 1, repairing = 1 } );
SetPlayerName( aiID, "Varg" );
Display.SetPlayerColorMapping(4,KERBEROS_COLOR)

Wo muss ich da das einfügen?

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

Zedeg
#5
19.01.2018 23:41
Beiträge: 403

Ach, stimmt, war 'ne Komfort-Funktion:

function SetAIUnitsToBuild(_aiID, ...) --Einheiten für die KI festlegen
    for i = table.getn(DataTable), 1, -1 do
        if DataTable[i].player == _aiID and DataTable[i].AllowedTypes then
            DataTable[i].AllowedTypes = arg
        end
    end
end

Aufruf so wie in meinem Beispiel.

____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

RitterLeo
#6
20.01.2018 11:34
Beiträge: 169

Danke Zedeg.
Und diese ZIP Datei ist auch sehr hilfreich.
Werde es gleich mal ausprobieren.

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

RitterLeo
#7
20.01.2018 12:15
Beiträge: 169

Ich glaube ich bin irgendwie zu blöd das hinzubekommen.
Ich versuche grade die KI 6 halt Bärenmenschen und Speerwerfer ausbilden zu lassen ab irgendwie bekomme ich es nicht hin.
Kannst du das bitte komplett machen denn ich versteh das nicht.

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

Siedler1997
#8
20.01.2018 18:38
Beiträge: 128

Darauf hatte Zedeg schonmal ne Antwort drauf:

http://www.siedler-maps.de/for...mp;postid=135503#posting135503

Offenbar sträubt sich die KI leider bei den Nebelkriegern:/

____________________
"Sieh mal, ein dreiköpfiger Affe!"
- Guybrush Threepwood, ein mächtiger Pirat

RitterLeo
#9
21.01.2018 09:16
Beiträge: 169

Habe da jetzt nur die möglichkeit gefunden Truppen des Nebelvolks zu erschaffen die die KI dann kontrolliert und wenn diese tot sind neue erschaffen werden. Sehe sonst keine andere Möglichkeit das die KI mit Truppen des Nebelvolks spielt.

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

mcb
#10
22.01.2018 17:39
Beiträge: 1334

Am einfachsten währe wahrscheinlich ein SetupAITroopSpawnGenerator.
Wenn du wirklich in Kaserne und Schießplatz ausbilden willst, kannst du Logic.BarracksBuyLeader verwenden. Da musst du aber das rekrutieren und mit Army verbinden selbst machen.
Ich hab irgendwo ne Comfort dafür, nur ist die nicht mit normalen Armeen kompartibel

PS: Kaserne und Schießplatz passen nicht unbedingt zum Nebelvolk, ein Altar mit Verteidigungsgebäuden und einem SetupAITroopSpawnGenerator sollte besser aussehen.

RitterLeo
#11
23.01.2018 15:18
Beiträge: 169

Den SetupAITroopSpawnGenerator habe ich ja auch in meiner Karte AriVsVarg ja auch verwendet. Wenn ich aber die ganzen Truppen da durch Bärenmenschen und Speerwerfer ersetze hört spawnen nach 20 sek (Spawnzeit) wieder 1 neuer Trupp. Weiss nicht woran das liegt.
Die Idee mit dem Altar finde ich schön, fehlt mir nur noch ein Beispiel um zu sehen wie ich das am besten hinkriege.

Die Funktion mit Logic.BarracksBuyLeader kenne ich nicht, wäre schon mal die Funktion zu kennen für evtl. folgende Maps.

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

mcb
#12
23.01.2018 18:08
Beiträge: 1334

Hast du die AI dabei aktiviert? Wenn nicht, ist die Armee immer tot und wird respawned, obwohl die Truppen noch da stehen.

Für den Altar gibt es glaub ich ein paar Entitys, aber Mapgestaltung ist nicht meine Stärke

Logic.BarracksBuyLeader(_barrackId, _upgradeCategory) ist die Funktion. 1. Parameter ist die id der Kaserne/Schießplatz/Stall/Taverne, der 2. die UpgradeCategory von dem entsprechenden Leader. Kostet selbst keine Ressourcen, aber die Soldiers die nach Ausbildungsende gekauft werden schon. An die id des gekauften Leaders ranzukommen ist schon komplizierter.
(Du kannst damit z.B. auch Kanonen in Ställen Ausbilden)

RitterLeo
#13
24.01.2018 19:28
Beiträge: 169

Die Id eines Bärenmenschen ist CU_Evil_Leaderbearman oder? Wüsste sonst nicht was du meinst, glaube aber die Id ist 78. Das Endergebnis ist aber glaube ich dann wie in P4F seine Karte 2Vs3 wo die Krieger bei dem Turm Rekrutierbar sind. In der ZIP Datei von Zedeg kannst du ja mal nachschauen. Muss ich wenn ich das jetzt selber in so einem Turm ausbilden will ein Extra Zeichen setzen (die Giftpfeile oder so)? Der Name des Turmes ist NV_Turm, den habe ich eingegeben und dann die Id des Bärenmenschen 78. Mal sehn obs klappt.

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

mcb
#14
24.01.2018 22:53
Beiträge: 1334

Was genau willst du den machen? Soll die AI Nebeltruppen kaufen oder der Spieler?
Was ist NV_Turm für ein entity?

Zu ids:
- Entities.CU_Evil_LeaderBearman1 ist eine Entitytyp-id (meistens nur Entitytyp genannt)
- UpgradeCategories.Evil_LeaderBearman ist eine UpgradeCategory-id (normalerweise UpgradeCategory genannt)
- GetID("dario" ) ist eine entityid, die von den meisten Logic-Funktionen verwendet wird (da funktioniert der Entityname "dario" nicht)
Das sind alles unterschiedliche Sachen. Wenn jemand von id spricht ist normalerweise die entityid gemeint.

Zu Logic.BarracksBuyLeader und der entityid des Leaders:
Die brauchst du, um den Leader einer army zuzuordnen. Die zu bekommen ist aber nicht so einfach, da Logic.BarracksBuyLeader sie nicht einfach zurückgibt wie z.B. Logic.CreateEntity.

RitterLeo
#15
25.01.2018 19:25
Beiträge: 169

NV_Turm ist ein Turm zu finden bei OtherBuildings. Die AI soll Nebeltruppen kaufen können, aus einem Turm oder was anderem was passt. Mal sehen ob ichs richtig mache.

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

mcb
#16
25.01.2018 19:32
Beiträge: 1334

Richtig ausbilden kannst du die da nicht. Das geht nur bei PB_Barracks, PB_Archery, PB_Stables und PB_Tavern.

RitterLeo
#17
25.01.2018 19:45
Beiträge: 169

Ok, aber die können Speerwerfer und Bärenmenschen in der Kaserne oder einem Schießplatz ausbilden oder?

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

mcb
#18
25.01.2018 21:41
Beiträge: 1334

Ja. Musst einfach nur die passende UpgradeCategory übergeben. Funktioniert sogar mit Kanonen

RitterLeo
#19
29.01.2018 16:46
Beiträge: 169

Ich kriege es einfach nicht hin mit dieser Funktion. Mache doch irgendetwas falsch, weiss aber nicht was.
Logic.BarracksBuyLeader( NV_Platz, UpgradeCategories.Evil_LeaderBearman)

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

mcb
#20
30.01.2018 15:14
Beiträge: 1334

Was ist NV_Platz?
Sicher das du nicht

Logic.BarracksBuyLeader(GetID("NV_Platz"), UpgradeCategories.Evil_LeaderBearman)

meinst?

RitterLeo
#21
30.01.2018 19:27
Beiträge: 169

NV_Platz ist ein Schießplatz.
Lag aber nicht an der Funktion sondern an was anderem das es nicht ging. Suche grade den Fehler.

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

RitterLeo
#22
30.01.2018 19:33
Beiträge: 169

Zitat von RitterLeo:
NV_Platz ist ein Schießplatz.
Lag aber nicht an der Funktion sondern an was anderem das es nicht ging. Suche grade den Fehler.



Fehler gefunden und vielen dank das du es so lange mit mir ausgehalten hast. Werde nach einem erfolgreichem Test die Map evtl noch diese Woche herausbringen.

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

RitterLeo
#23
30.01.2018 20:23
Beiträge: 169

Zu früh gefreut. Die KI bildet nur einmal die Truppe aus. Weisst du woran das liegt?

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

mcb
#24
30.01.2018 21:54
Beiträge: 1334

Weil Logic.BarracksBuyLeader den Befehl gibt, genau einen Leader auszubilden. Wie ich schon geschrieben hab, musst du selbst die Armeegröße überwachen und Logic.BarracksBuyLeader für jeden Leader aufrufen, den du ausbilden willst.

RitterLeo
#25
31.01.2018 18:39
Beiträge: 169

Die Armeegröße ist 23 Truppen. Wenn ich aber die Funktion 23 mal setze werden nur die ersten 3 Ausgebildet.

____________________
Wenn du dir überlegst was du falsch gemacht hast, kannst du gleich nach einer Lösung suchen.

Seiten: 1 2 Nächste Seite

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum