Shoutbox

Author Topic: KI cheats abstellen / KI soll Gold auszugeben  (Read 6165 times)

0 Members and 1 Guest are viewing this topic.

Offline dip12

  • Newbie
  • *
  • Posts: 57
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #15 on: 26 July 2015, 18:08:17 »
Koennte man eventuell die lua am Ende so aendern:

Alt:
Code: [Select]
local Proto = ScenarioFindBuildingProto(nil, GL_BUILDING_TYPE_RESIDENCE, 1, -1)
if Proto ~= -1 then
if not CityBuildNewBuilding("City", Proto, "SIM", "Residence") then
return
end
end

New:
Code: [Select]
if DynastyIsShadow("SIM")==false then
local Proto = ScenarioFindBuildingProto(nil, GL_BUILDING_TYPE_RESIDENCE, 1, -1)
if Proto ~= -1 then
if not CityBuildNewBuilding("City", Proto, "SIM", "Residence") then
return
end
end
end

Oder versteh ich den letzten paragraph falsch

Offline Fajeth

  • Hero Member
  • ****
  • Posts: 612
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #16 on: 26 July 2015, 18:11:35 »
in welchem Script befindest du dich jetzt?

Offline dip12

  • Newbie
  • *
  • Posts: 57
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #17 on: 26 July 2015, 18:39:01 »
\Scripts\AI\BaseTree\CheckDynasty\CheckHome.lua

Offline dip12

  • Newbie
  • *
  • Posts: 57
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #18 on: 29 July 2015, 12:43:15 »
Ich habe es geschafft die KI alle Gebaeude zu bauen/kaufen lassen ausser MILL und FRUITFARM.
Ich frage mich doch ob der buildingtype bei den beiden irgendwie anders lauten muss damit es klappt?

z.b. kann ich die KI 4 stonemason or 4 farms bauen lassen, aber immer 0 mill und 0 fruitfarm (getestet auf Lyon und Lyon + Belley)

Offline Fajeth

  • Hero Member
  • ****
  • Posts: 612
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #19 on: 30 July 2015, 12:48:02 »
evtl. kannst du auch auf die Building-ID abfragen

Offline dip12

  • Newbie
  • *
  • Posts: 57
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #20 on: 30 July 2015, 13:51:11 »
Dumme Frage, wie wuerde das in der citypinghour skript aussehen?

Weisst du uebrigens auch wie man die KI dazu bringt mehrere gleiche Betriebe zu fuehren? z.b. mehrere raeuberlager wenn moeglich (ja gut ich koennte das in die pinghour setzen), aber idealerweise nicht mehr bauen, sondern nur kaufen falls verfuegbar bei mehreren werkstaetten

Offline Fajeth

  • Hero Member
  • ****
  • Posts: 612
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #21 on: 30 July 2015, 14:17:41 »
statt AICheckWorkingPlace("", GL_BUILDING_TYPE_FRUITFARM, 1)

dann AICheckWorkingPlace("", 108, 1) (ID aus BuildingTypes.dbt)

aber ob das funktioniert, weiß ich nicht ...

Du meinst, dass ein besitzer eines Räuberlagers "expandiert"?

Also ich könnte mir vorstellen, dass man das entweder in der citypinghour abfragt, also hole mir die ID des Räuberlager-Besitzers und weise ihn an, falls vorhanden, weitere Räuberlager zu kaufen. (wobei ich da nicht weiß, welche Funktion sich dafür am Besten eignet, AIcheckworkingplace ist ja für Settlements)

Oder man schreibt ein neues AI-Script, setzt es unter bspw. Robber und (nach dem selben Muster wie die anderen KI-Scripte dort) lässt dann den Befehl rausgehen, wenn du bereits ein Räuberlager hast, genug Geld und Titel hast und ein Räuberlager verfügbar ist in deiner Stadt, dann kaufe es (aber auch hier brauchst du dann die richtige Funktion, womit wir wieder beim Ursprungsproblem sind. Hier vielleicht wieder in der DefaultCampaign inspirieren lassen).

Sorry, dass ich nicht konkreter werden kann,  ich bin da leider auch noch am rätseln (von daher drück ich dir die Daumen, wenn du da weitere Erkenntnisse gewinnen solltest wäre das auch großartig für mich ^^)

Offline dip12

  • Newbie
  • *
  • Posts: 57
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #22 on: 30 July 2015, 16:30:25 »
Hab ich mal aus CheckHome.lua kopiert und modifiziert. Kannst du mich wissen lassen ob das so stimmt falls ich es in den Robber ordner werfe und ob ich noch woanders was schreiben muss, damit es weiss, das dieses neue skript dann existiert/aufgerufen wird?

Code: [Select]
function Weight()

if not ReadyToRepeat("SIM", "AI_CheckRobber") then
return 0
end
local count = DynastyGetBuildingCount("SIM", GL_BUILDING_CLASS_WORKSHOP, GL_BUILDING_TYPE_ROBBER)
if count<1 then
return 0
end

return -99
end

function Execute()

SetRepeatTimer("SIM", "AI_CheckRobber", 0.5)

if not CityGetRandomBuilding("City", nil, GL_BUILDING_TYPE_ROBBER, 1, -1, FILTER_IS_BUYABLE, "Robber2") then
CityGetRandomBuilding("City", nil, GL_BUILDING_TYPE_ROBBER, -1, -1, FILTER_IS_BUYABLE, "Robber2")
end

if AliasExists("Robber2") then
MeasureRun("Robber2", "SIM", "BuyBuilding")
return
end
end

Falls das so richtig ist, koennte man das fuer jeden Beruf kopieren :D

Offline dip12

  • Newbie
  • *
  • Posts: 57
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #23 on: 30 July 2015, 16:45:55 »
Ausserdem hab ich mir mal CheckFruitResource.lua (unter ordner Fruitfarm) angeguckt und irgendwie denke ich mal, dass es nicht richtig laeuft (also vllt wird das Weight falsch vergeben wegen den ifs), oder dass es versucht Meadow anstelle von Fruitfarm zu finden? Oder wo checkt es ueberhaupt die resource

Offline Serpens66

  • Newbie
  • *
  • Posts: 45
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #24 on: 09 August 2015, 17:25:16 »
@ Fajeth:
Wirst du eure hier besprochenen Verbesserungen in deinen Mod aufnehmen, sobalds fertig ist?
Das mit dem Gebäudekauf klingt ja schon sehr sinnvoll, sofern ihr auch einbaut, dass die Schatten KI ab und an Gebäude auch wieder zum Verkauf reinstellt (schließlich will man als Spieler ja auch ab und zu ein Gebäude kaufen, dann wäre es doof, wenn es dann keines mehr gibt).

Ach und was ist ein CASTLE? Ist das die Söldnerburg, oder was? Und wieso wäre das an die KI "verschenkt"?

Und zum "geldspritze abschalten" ... ich glaube das ist keine so gute Idee. Schließlich gibt die KI ja regelmäßig unnötig Geld aus (zufällig items kaufen, in die schnke gehen, gehld leihen usw usw).  Ich weiß nicht genau, wieviele dieser Geldausgaben dann tatsächlich vim Vermögen abgezogen wird, aber einige werden es bestimmt. Und wenn dann laufend Dynastien deswegen pleite gehen, macht das ja auch keinen Spaß mehr.
Aber du hast schon recht, ein wenig einschränken müsste man es schon... oder mehr möglichkeiten einbauen, eine Dynastie aktiv zu verdrängen... vllt mit neuen Maßnahmen? hmmm...

edit:
dip12 hat ja einige Änderungen bzw. fixes hier(im forum) gepostet, danke dafür :)
Welche davon wirst du, Fajeth, übernehmen, oder welche nicht? (Damit ich weiß, ob ich sie noch selbst einbauen muss, oder nicht ^^)
« Last Edit: 09 August 2015, 17:32:24 by Serpens66 »

Offline Fajeth

  • Hero Member
  • ****
  • Posts: 612
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #25 on: 09 August 2015, 20:50:48 »
wenn du willst, dass eine Measure ausgeführt wird, musst du den weight auf 100 setzen, weiß nicht, was bei -99 passiert ;)

Dein Script musst du mal testen, ich hab da grade nicht so den Kopf für (muss das OOS-Problem beim Modpack lösen ...)

Serp: kann ich noch nicht sagen, weil siehe oben ;)

Offline dip12

  • Newbie
  • *
  • Posts: 57
  • Reputation Power:
Re: KI cheats abstellen / KI soll Gold auszugeben
« Reply #26 on: 09 August 2015, 21:58:45 »
Kann momentan mit den zufaelligen freezes nicht testen bis ich die angeforderten lua bekomme (hab fuer ne weile nur mobil internet)