KI baut sich nicht auf
» Siedler Map Source Forum » Siedler DEdK Script Forum » KI baut sich nicht auf
Seiten: 1
RitterLeo
|
#1 30.08.2020 17:49 Beiträge: 237 |
KI baut sich nicht auf
Ich bräuchte mal etwas Hilfe.
Die KI baut sich nicht selbstständig auf doch tauchen keinerlei Fehler auf.
function Constructionplans(i) if Logic.GetEntityType(GetID("Hero"..i)) == Entities.CU_Evil_Queen then if GetDistance("Headquarter"..i,"pos_random1") <= 500 then local pos = GetPosition("village_pos1") Logic.CreateEntity(Entities.PB_VillageCenter1, pos.X, pos.Y, 0, i); KalaConstructionplanPos1(i); return true elseif GetDistance("Headquarter"..i,"pos_random2") <= 500 then local pos = GetPosition("village_pos2") Logic.CreateEntity(Entities.PB_VillageCenter1, pos.X, pos.Y, 0, i); KalaConstructionplanPos1(j); return true elseif GetDistance("Headquarter"..i,"pos_random3") <= 500 then local pos = GetPosition("village_pos3") Logic.CreateEntity(Entities.PB_VillageCenter1, pos.X, pos.Y, 0, i); KalaConstructionplanPos1(i); return true elseif GetDistance("Headquarter"..i,"pos_random4") <= 500 then local pos = GetPosition("village_pos4") Logic.CreateEntity(Entities.PB_VillageCenter1, pos.X, pos.Y, 0, i); KalaConstructionplanPos1(i); return true elseif GetDistance("Headquarter"..i,"pos_random5") <= 500 then local pos = GetPosition("village_pos5") Logic.CreateEntity(Entities.PB_VillageCenter1, pos.X, pos.Y, 0, i); KalaConstructionplanPos1(i); return true elseif GetDistance("Headquarter"..i,"pos_random6") <= 500 then local pos = GetPosition("village_pos6") Logic.CreateEntity(Entities.PB_VillageCenter1, pos.X, pos.Y, 0, i); KalaConstructionplanPos1(i); return true elseif GetDistance("Headquarter"..i,"pos_random7") <= 500 then local pos = GetPosition("village_pos7") Logic.CreateEntity(Entities.PB_VillageCenter1, pos.X, pos.Y, 0, i); KalaConstructionplanPos1(i); return true elseif GetDistance("Headquarter"..i,"pos_random8") <= 500 then local pos = GetPosition("village_pos8") Logic.CreateEntity(Entities.PB_VillageCenter1, pos.X, pos.Y, 0, i); KalaConstructionplanPos1(i); return true end end end --Konstruktionspläne für jeden Helden an jeder Position function KalaConstructionplanPos1(i) local constructionplanKala1 = { { type = Entities.PB_Claymine1, pos = GetPosition("Headquarter"..i..""), level = 0 }, -- Lehmgrube { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus { type = Entities.PB_Stonemine1, pos = invalidPosition, level = 0 }, -- Steinmine { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus } FeedAiWithConstructionPlanFile(i,constructionplanKala1) end function KalaConstructionplanPos2(i) local constructionplanKala2 = { { type = Entities.PB_Claymine1, pos = GetPosition("Headquarter"..i..""), level = 0 }, -- Lehmgrube { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus { type = Entities.PB_Stonemine1, pos = invalidPosition, level = 0 }, -- Steinmine { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus } FeedAiWithConstructionPlanFile(i,constructionplanKala2) end function KalaConstructionplanPos3(i) local constructionplanKala3 = { { type = Entities.PB_Claymine1, pos = GetPosition("Headquarter"..i..""), level = 0 }, -- Lehmgrube { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus { type = Entities.PB_Stonemine1, invalidPosition, level = 0 }, -- Steinmine { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus } FeedAiWithConstructionPlanFile(i,constructionplanKala3) end function KalaConstructionplanPos4(i) local constructionplanKala4 = { { type = Entities.PB_Claymine1, pos = GetPosition("Headquarter"..i..""), level = 0 }, -- Lehmgrube { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus { type = Entities.PB_Stonemine1, pos = invalidPosition, level = 0 },-- Steinmine { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus } FeedAiWithConstructionPlanFile(i,constructionplanKala4) end function KalaConstructionplanPos5(i) local constructionplanKala5 = { { type = Entities.PB_Stonemine1, pos = GetPosition("Headquarter"..i..""), level = 0 }, -- Steinmine { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus { type = Entities.PB_Stonemine1, pos = invalidPosition, level = 0 }, -- Steinmine { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus } FeedAiWithConstructionPlanFile(i,constructionplanKala5) end function KalaConstructionplanPos6(i) local constructionplanKala6 = { { type = Entities.PB_ironmine1, pos = GetPosition("Headquarter"..i..""), level = 0 }, -- Eisenmine { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus { type = Entities.PB_ironmine1, pos = invalidPosition, level = 0 }, -- Eisenmine { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus } FeedAiWithConstructionPlanFile(i,constructionplanKala6) end function KalaConstructionplanPos7(i) local constructionplanKala7 = { { type = Entities.PB_Claymine1, pos = GetPosition("Headquarter"..i..""), level = 0 }, -- Lehmgrube { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus { type = Entities.PB_Stonemine1, pos = invalidPosition, level = 0 }, -- Lehmgrube { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus } FeedAiWithConstructionPlanFile(i,constructionplanKala7) end function KalaConstructionplanPos8(i) local constructionplanKala8 = { { type = Entities.PB_Claymine1, pos = GetPosition("Headquarter"..i..""), level = 0 }, -- Lehmgrube { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus { type = Entities.PB_Stonemine1, pos = invalidPosition, level = 0 }, -- Schwefelgrube { type = Entities.PB_Farm1, pos = invalidPosition, level = 0 }, -- Farm { type = Entities.PB_Residence1, pos = invalidPosition, level = 0 }, -- Haus } FeedAiWithConstructionPlanFile(i,constructionplanKala8) end
Aufgerufen wird das ganze mit
for i = 2,Selected_AI do Constructionplans(i) end
wobei i jeweils vom Spieler bestimmt werden kann (also mindestens 3 KI Spieler sind vorhanden) Trotz eigentlich richtiger Abfrage und mehrfachen kontrollieren der Namen deutet nichts auf einen Fehler hin. Ich habe einfach aus Testgründen mit Kala angefangen und werde das dann auf jeden der 12 Helden ausweiten.
Anderer Aufruf mit bspw
for i = 2,Selected_AI do StartBuildingP(i) end
klappt. Es ist zum Haare raufen weil so nichtmal angefangen werden kann zu testen.
Schon vorab, vielen dank für eure Hilfe.
____________________
Die Gier eines Menschen kann man mit der einer Pflanze vergleichen:
Hat sie einmal genug Wasser und Sonne wächst sie um noch mehr zu bekommen.
Play4FuN
|
#2 30.08.2020 20:43 Beiträge: 704 |
KalaConstructionplanPos1(j);
müsste
KalaConstructionplanPos1(i);
sein.
Außerdem rufst du immer KalaConstructionplanPos1 auf und nie KalaConstructionplanPos2 etc.
Ansonsten sollte der entsprechende Spieler genügend Ressis haben.
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
RitterLeo
|
#3 31.08.2020 15:59 Beiträge: 237 |
Kommt leider auf das gleiche Ergebnis raus.
Habe zwar die entsprechenden Fehler berichtigt jedoch tut sich dennoch nix.
Genügend Rohstoffe sind ja vorhanden da die KI sich selbst immer genügend zu schiebt.
Lediglich eine Triggermeldung kommt andauernd (Ist aber, und da bin ich mir zu fast 100% sicher, von ner anderen Funktion).
Habe auch mit LuaDebugger alles Nachgeprüft und finde keinen Fehler.
Sie weigert sich einfach nur etwas zu bauen.
____________________
Die Gier eines Menschen kann man mit der einer Pflanze vergleichen:
Hat sie einmal genug Wasser und Sonne wächst sie um noch mehr zu bekommen.
Play4FuN
|
#4 01.09.2020 08:01 Beiträge: 704 |
Geht's um eine Mehrspielerkarte? Falls ja, dann solltest du prüfen, ob deine Script Entities für die Positionen im Spiel exisiteren. Falls die im Map Editor nämlich z.B. SpielerID 2 haben und im Spiel dann ID 2 gar nicht belegt ist, werden diese allesamt gelöscht.
Ansonsten versuch mal als erstes Gebäude im construction plan ein Wohnhaus oder nen Bauernhof zu verwenden - vielleicht kann aus irgendeinem Grund die Grube nicht platziert werden.
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
Dieser Beitrag wurde von Play4FuN am 02.09.2020 um 09:46 editiert.
RitterLeo
|
#5 04.09.2020 18:09 Beiträge: 237 |
Vielen dank dafür.
Ich habs mal mit nem Bauernhof getestet und es klappte.
Jetz rate mal was der Fehler war?
Er ist unten zu sehen: Rechtschreibung
PB_Claymine1 ist nicht PB_ClayMine1.
Was man so alles im Nachhinein entdeckt...
Dafür baut sie sich jetzt auf.
Vielen dank
____________________
Die Gier eines Menschen kann man mit der einer Pflanze vergleichen:
Hat sie einmal genug Wasser und Sonne wächst sie um noch mehr zu bekommen.
Seiten: 1