Nebelvolk Truppen

» Settlers Map Source Forums » Mapping » Nebelvolk Truppen

Pages: 1 2 Next page

RitterLeo
#1
19-01-2018 16:35
Posts: 141

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?

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

Zedeg
#2
19-01-2018 16:58
Posts: 396

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
Posts: 141

Werde ich mal ausprobieren.
Aber schonmal vielen dank Zedeg.

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

RitterLeo
#4
19-01-2018 17:06
Posts: 141

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?

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

Zedeg
#5
19-01-2018 23:41
Posts: 396

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
Posts: 141

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

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

RitterLeo
#7
20-01-2018 12:15
Posts: 141

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.

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

Siedler1997
#8
20-01-2018 18:38
Posts: 124

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
Posts: 141

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.

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

mcb
#10
22-01-2018 17:39
Posts: 1303

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
Posts: 141

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.

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

mcb
#12
23-01-2018 18:08
Posts: 1303

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
Posts: 141

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.

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

mcb
#14
24-01-2018 22:53
Posts: 1303

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
Posts: 141

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.

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

mcb
#16
25-01-2018 19:32
Posts: 1303

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
Posts: 141

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

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

mcb
#18
25-01-2018 21:41
Posts: 1303

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

RitterLeo
#19
29-01-2018 16:46
Posts: 141

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

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

mcb
#20
30-01-2018 15:14
Posts: 1303

Was ist NV_Platz?
Sicher das du nicht

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

meinst?

RitterLeo
#21
30-01-2018 19:27
Posts: 141

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

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

RitterLeo
#22
30-01-2018 19:33
Posts: 141

Posted by 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.

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

RitterLeo
#23
30-01-2018 20:23
Posts: 141

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

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

mcb
#24
30-01-2018 21:54
Posts: 1303

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
Posts: 141

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

____________________
Siedler hier, Siedler da und das 5 mal bei dedk.

Pages: 1 2 Next page

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

Impressum