Forum



~Chris am 24.09.2019 08:26 #15295


Hallo Liebe Community,

Ich wollte nachfragen ob es eine Möglichkeit gibt die Ressourcen, die am Start im HQ sind zu verändern?
Da die AI leider zu wenige Schlosser baut sind dem Ganzen ziemlich schnell Grenzen gesetzt.

Hat man irgendwie Zugang zu einer Config File in der die Werte festgeschrieben sind?

Liebe Grüße,
Chris


etother am 24.09.2019 10:56 #15296


Hallo Chris,

wenn du die Kampagnen spielst, kannst du im Installationsordner unter DATA/MAPS die LUA-Files mit dem Editor anpassen.
Unter der Rubrik "Set Resources" kannst du für Spieler 1 (p=0), Spieler 2(p=1) usw. alles anpassen.
Meiner Meinung nach nehmen Änderungen dahingehend allerdings den Reiz der Missionen.

Für die freien Karten gibt es auch eine Festlegung, was die Wareneinstellung (wenig, mittel, etc.) an Ressourcen vergeben. Wo diese Werte festgesetzt sind und ob du diese ändern kannst, muss dir allerdings ein Entwickler verraten.

Edit: man kann meines Wissens wohl aber auch für alle anderen Maps die LUA-Files schreiben. Da müsste man dann wohl einfach nur den Kontext aus einer bestehenden LUA hinsichtlich der Startressourcen kopieren.

Editiert von etother am 24.09.2019 10:57

~Gast am 24.09.2019 13:37 #15299


Hallo etother,

Danke für deine Antwort!

Für selbst gebaute Maps wäre es natürlich cool.
Also lautet die Frage eigentlich: In welcher LUA File kann man die Presets für die Wareneinstellungen ändern?


Spike am 24.09.2019 15:05 #15300

Im Ruhestand
Die Lua Datei mmuss wie die karte heißen, also custommap.swd + custommap.lua

Ich habe auch schon vorgeschlagen lua dateien als module / addons dazu schalten zu können, sonst musst du deine datei immer umbenennen ;)

---



etother am 24.09.2019 15:58 #15302


Hallo Chris bzw. Gast,

Erstmal das was Spike angesprochen hat, ist richtig. Man kann für jede Karte eine eigene LUA bauen.
Ich habe jetzt mal entsprechend deiner Anfangsfrage eine allgemeine LUA-File für jede Map geschrieben, die mit wenigen Anpassungen deinerseits (siehe Anleitung) immer zum Ändern der Startressourcen genutzt werden kann.

LINK: LUA-File

Das Ganze hab ich als Übung für mich gemacht, Fehler können enthalten sein.

Im Moment ist es so, dass die LUA dir alle Freiheiten bei den Spieleinstellungen im Spiel lässt.
Sie setzt aber in der aktuellen Einstellung die Ressourcen von Spieler 2 (erster Gegner) auf 0.
Das kannst du aber selbst ändern, wenn du willst.

Zum Nutzen der LUA gehst du bitte wie folgt vor:
- herunterladen über Link oben
- LUA in den Ordner mit der Map kopieren, die du spielen willst. (z.B. Installationsordner/RTTR/MAPS/NEW)
- LUA umbenennen, wie die Map, die du spielen willst (z.B. Bergruft.lua) Achtung: .lua muss als Endung erhalten bleiben
- LUA mit Editor öffnen, dann in die Rubrik "set ressources" gehen
- Dort ist der Eintrag mit "...:ClearResources()" - Den kann man löschen, wenn man nur gewisse Güter zusätzlich zu den voreingestellten hinzufügen will. Wenn man alle Ressourcen eigenhändig vergeben will, sollte er erhalten bleiben
- Dann bei den entsprechenden Waren die Anzahl einstellen, die hinzukommen soll.
- Lua speichern und Spiel starten


Wenn man das ganze auch für Spieler 3,4,5... machen will oder sich selbst, dann muss man alles ab "rttr.GetPlayer(1):AddWares..." bis zur letzten Klammer kopieren und nochmal vor dem letzten "end" einfügen und jede 1 durch eine 0(für sich selbst) oder 2,3,4 (andere Spieler) ersetzen.
Will man die Lager der anderen Gegner auch auf 0 bringen, dann natürlich auch den "Clear Ressources()" Part mitkopieren.
Prozedur beliebig für alle Gegner wiederholen.

An alle Profis: Ich hab das als kleine Übung für mich jetzt gemacht. Kann man entsprechende Schleifen bauen, um nicht für jeden Gegner den Code immer kopieren zu müssen (Sprich: Führe Code aus für Spieler 2 bis n)??

Editiert von etother am 24.09.2019 16:01

~Chris am 25.09.2019 08:20 #15305


WOW!

Vielen vielen Dank für deine Arbeit!
Hab mir Datei geholt und versuche das gleich mal. :-)


~Chris am 25.09.2019 08:30 #15306


Mir schmiert das Game ab sobald ich die Karte im Game laden will.
Stimmt was bei meinem Code nicht? Oder sind die Zahlen zu hoch?

Code:

-------------------------------- Lua Version used -------------------------------
function getRequiredLuaVersion()
    return 1
end

-------------------------------- general settings -------------------------------

function getAllowedChanges()    -- change this for enable or disable the checkboxes in settings menu
    
    return {general=true, addonsAll=true, addonsSome=false, swapping=true, playerState = not isSinglePlayer, ownNation = true, ownColor=true, ownTeam=true, aiNation=true, aiColor=true, aiTeam=true}
end


-------------------- set resources - CURRENTLY FOR PLAYER 2 ONLY-----------------

function onStart(isFirstStart)        -- changes only work at game start
    if(not isFirstStart) then
        return
    end
     -- IMPORTANT: This clears all ressources from Player 2 - propably your first opponnent
                        -- delete this line, if u just want to add additional ressources

-- Commentaries for code below    --
-- Change the Value to add the required amount (e.g. 0 to 20 for Beer)
-- This always adds an additional amount of goods
-- If u want to change for yourself or player 3,4,5... just copy/paste the whole code  from rttr:... to the last clip
-- Then Change the Value in "GetPlayer" to 0 for yourself or 2,3,4 for the other players and edit the goods

    rttr:GetPlayer(1):AddWares({        
        [GD_BEER      ] =  0,        
        [GD_TONGS     ] =  0,        
        [GD_HAMMER    ] =  0,        
        [GD_AXE       ] =  0,
        [GD_SAW       ] =  0,
        [GD_PICKAXE   ] =  0,
        [GD_SHOVEL    ] =  0,
        [GD_CRUCIBLE  ] =  0,
        [GD_RODANDLINE] =  0,
        [GD_SCYTHE    ] =  0,
        [GD_WATER     ] =  0,
        [GD_CLEAVER   ] =  0,
        [GD_ROLLINGPIN] =  0,
        [GD_BOW       ] =  0,
        [GD_BOAT      ] =  0,
        [GD_SWORD     ] =  0,
        [GD_IRON      ] =  0,
        [GD_FLOUR     ] =  0,
        [GD_FISH      ] =  0,
        [GD_BREAD     ] =  0,
        [GD_SHIELD    ] =  0,
        [GD_WOOD      ] =  0,
        [GD_BOARDS    ] =  0,
        [GD_STONES    ] =  0,
        [GD_GRAIN     ] =  0,
        [GD_COINS     ] =  0,
        [GD_GOLD      ] =  0,
        [GD_IRONORE   ] =  0,
        [GD_COAL      ] =  0,
        [GD_MEAT      ] =  0,
        [GD_HAM       ] =  0
        })

    rttr:GetPlayer(1):AddPeople({
        [JOB_HELPER        ] =  0,
        [JOB_WOODCUTTER        ] =  0,
        [JOB_FISHER        ] =  0,
        [JOB_FORESTER        ] =  0,
        [JOB_CARPENTER        ] =  0,
        [JOB_STONEMASON        ] =  0,
        [JOB_HUNTER        ] =  0,
        [JOB_FARMER        ] =  150,
        [JOB_MILLER        ] =  100,
        [JOB_BAKER        ] =  100,
        [JOB_BUTCHER              ] =  100,
        [JOB_MINER        ] =  100,
        [JOB_BREWER        ] =  0,
        [JOB_PIGBREEDER              ] =  0,
        [JOB_DONKEYBREEDER        ] =  0,
        [JOB_IRONFOUNDER          ] =  100,
        [JOB_MINTER        ] =  100,
        [JOB_METALWORKER          ] =  100,
        [JOB_ARMORER              ] =  100,
        [JOB_BUILDER              ] =  0,
        [JOB_PLANER        ] =  0,
        [JOB_GEOLOGIST              ] =  0,
        [JOB_PRIVATE              ] =  0,
        [JOB_PRIVATEFIRSTCLASS    ] =  0,
        [JOB_SERGEANT              ] =  0,
        [JOB_OFFICER              ] =  0,
        [JOB_GENERAL              ] =  200,
        [JOB_SCOUT        ] =  0,
        [JOB_SHIPWRIGHT              ] =  0,
        [JOB_PACKDONKEY              ] =  0,
        [JOB_CHARBURNER           ] =  0
        })

    rttr:GetPlayer(2):AddPeople({
        [JOB_HELPER        ] =  0,
        [JOB_WOODCUTTER        ] =  0,
        [JOB_FISHER        ] =  0,
        [JOB_FORESTER        ] =  0,
        [JOB_CARPENTER        ] =  0,
        [JOB_STONEMASON        ] =  0,
        [JOB_HUNTER        ] =  0,
        [JOB_FARMER        ] =  150,
        [JOB_MILLER        ] =  100,
        [JOB_BAKER        ] =  100,
        [JOB_BUTCHER              ] =  100,
        [JOB_MINER        ] =  100,
        [JOB_BREWER        ] =  0,
        [JOB_PIGBREEDER              ] =  0,
        [JOB_DONKEYBREEDER        ] =  0,
        [JOB_IRONFOUNDER          ] =  100,
        [JOB_MINTER        ] =  100,
        [JOB_METALWORKER          ] =  100,
        [JOB_ARMORER              ] =  100,
        [JOB_BUILDER              ] =  0,
        [JOB_PLANER        ] =  0,
        [JOB_GEOLOGIST              ] =  0,
        [JOB_PRIVATE              ] =  0,
        [JOB_PRIVATEFIRSTCLASS    ] =  0,
        [JOB_SERGEANT              ] =  0,
        [JOB_OFFICER              ] =  0,
        [JOB_GENERAL              ] =  200,
        [JOB_SCOUT        ] =  0,
        [JOB_SHIPWRIGHT              ] =  0,
        [JOB_PACKDONKEY              ] =  0,
        [JOB_CHARBURNER           ] =  0
        })

    rttr:GetPlayer(3):AddPeople({
        [JOB_HELPER        ] =  0,
        [JOB_WOODCUTTER        ] =  0,
        [JOB_FISHER        ] =  0,
        [JOB_FORESTER        ] =  0,
        [JOB_CARPENTER        ] =  0,
        [JOB_STONEMASON        ] =  0,
        [JOB_HUNTER        ] =  0,
        [JOB_FARMER        ] =  150,
        [JOB_MILLER        ] =  100,
        [JOB_BAKER        ] =  100,
        [JOB_BUTCHER              ] =  100,
        [JOB_MINER        ] =  100,
        [JOB_BREWER        ] =  0,
        [JOB_PIGBREEDER              ] =  0,
        [JOB_DONKEYBREEDER        ] =  0,
        [JOB_IRONFOUNDER          ] =  100,
        [JOB_MINTER        ] =  100,
        [JOB_METALWORKER          ] =  100,
        [JOB_ARMORER              ] =  100,
        [JOB_BUILDER              ] =  0,
        [JOB_PLANER        ] =  0,
        [JOB_GEOLOGIST              ] =  0,
        [JOB_PRIVATE              ] =  0,
        [JOB_PRIVATEFIRSTCLASS    ] =  0,
        [JOB_SERGEANT              ] =  0,
        [JOB_OFFICER              ] =  0,
        [JOB_GENERAL              ] =  200,
        [JOB_SCOUT        ] =  0,
        [JOB_SHIPWRIGHT              ] =  0,
        [JOB_PACKDONKEY              ] =  0,
        [JOB_CHARBURNER           ] =  0
        })

    rttr:GetPlayer(4):AddPeople({
        [JOB_HELPER        ] =  0,
        [JOB_WOODCUTTER        ] =  0,
        [JOB_FISHER        ] =  0,
        [JOB_FORESTER        ] =  0,
        [JOB_CARPENTER        ] =  0,
        [JOB_STONEMASON        ] =  0,
        [JOB_HUNTER        ] =  0,
        [JOB_FARMER        ] =  150,
        [JOB_MILLER        ] =  100,
        [JOB_BAKER        ] =  100,
        [JOB_BUTCHER              ] =  100,
        [JOB_MINER        ] =  100,
        [JOB_BREWER        ] =  0,
        [JOB_PIGBREEDER              ] =  0,
        [JOB_DONKEYBREEDER        ] =  0,
        [JOB_IRONFOUNDER          ] =  100,
        [JOB_MINTER        ] =  100,
        [JOB_METALWORKER          ] =  100,
        [JOB_ARMORER              ] =  100,
        [JOB_BUILDER              ] =  0,
        [JOB_PLANER        ] =  0,
        [JOB_GEOLOGIST              ] =  0,
        [JOB_PRIVATE              ] =  0,
        [JOB_PRIVATEFIRSTCLASS    ] =  0,
        [JOB_SERGEANT              ] =  0,
        [JOB_OFFICER              ] =  0,
        [JOB_GENERAL              ] =  200,
        [JOB_SCOUT        ] =  0,
        [JOB_SHIPWRIGHT              ] =  0,
        [JOB_PACKDONKEY              ] =  0,
        [JOB_CHARBURNER           ] =  0
        })

    rttr:GetPlayer(5):AddPeople({
        [JOB_HELPER        ] =  0,
        [JOB_WOODCUTTER        ] =  0,
        [JOB_FISHER        ] =  0,
        [JOB_FORESTER        ] =  0,
        [JOB_CARPENTER        ] =  0,
        [JOB_STONEMASON        ] =  0,
        [JOB_HUNTER        ] =  0,
        [JOB_FARMER        ] =  150,
        [JOB_MILLER        ] =  100,
        [JOB_BAKER        ] =  100,
        [JOB_BUTCHER              ] =  100,
        [JOB_MINER        ] =  100,
        [JOB_BREWER        ] =  0,
        [JOB_PIGBREEDER              ] =  0,
        [JOB_DONKEYBREEDER        ] =  0,
        [JOB_IRONFOUNDER          ] =  100,
        [JOB_MINTER        ] =  100,
        [JOB_METALWORKER          ] =  100,
        [JOB_ARMORER              ] =  100,
        [JOB_BUILDER              ] =  0,
        [JOB_PLANER        ] =  0,
        [JOB_GEOLOGIST              ] =  0,
        [JOB_PRIVATE              ] =  0,
        [JOB_PRIVATEFIRSTCLASS    ] =  0,
        [JOB_SERGEANT              ] =  0,
        [JOB_OFFICER              ] =  0,
        [JOB_GENERAL              ] =  200,
        [JOB_SCOUT        ] =  0,
        [JOB_SHIPWRIGHT              ] =  0,
        [JOB_PACKDONKEY              ] =  0,
        [JOB_CHARBURNER           ] =  0
        })

    rttr:GetPlayer(6):AddPeople({
        [JOB_HELPER        ] =  0,
        [JOB_WOODCUTTER        ] =  0,
        [JOB_FISHER        ] =  0,
        [JOB_FORESTER        ] =  0,
        [JOB_CARPENTER        ] =  0,
        [JOB_STONEMASON        ] =  0,
        [JOB_HUNTER        ] =  0,
        [JOB_FARMER        ] =  150,
        [JOB_MILLER        ] =  100,
        [JOB_BAKER        ] =  100,
        [JOB_BUTCHER              ] =  100,
        [JOB_MINER        ] =  100,
        [JOB_BREWER        ] =  0,
        [JOB_PIGBREEDER              ] =  0,
        [JOB_DONKEYBREEDER        ] =  0,
        [JOB_IRONFOUNDER          ] =  100,
        [JOB_MINTER        ] =  100,
        [JOB_METALWORKER          ] =  100,
        [JOB_ARMORER              ] =  100,
        [JOB_BUILDER              ] =  0,
        [JOB_PLANER        ] =  0,
        [JOB_GEOLOGIST              ] =  0,
        [JOB_PRIVATE              ] =  0,
        [JOB_PRIVATEFIRSTCLASS    ] =  0,
        [JOB_SERGEANT              ] =  0,
        [JOB_OFFICER              ] =  0,
        [JOB_GENERAL              ] =  200,
        [JOB_SCOUT        ] =  0,
        [JOB_SHIPWRIGHT              ] =  0,
        [JOB_PACKDONKEY              ] =  0,
        [JOB_CHARBURNER           ] =  0
        })

    rttr:GetPlayer(7):AddPeople({
        [JOB_HELPER        ] =  0,
        [JOB_WOODCUTTER        ] =  0,
        [JOB_FISHER        ] =  0,
        [JOB_FORESTER        ] =  0,
        [JOB_CARPENTER        ] =  0,
        [JOB_STONEMASON        ] =  0,
        [JOB_HUNTER        ] =  0,
        [JOB_FARMER        ] =  150,
        [JOB_MILLER        ] =  100,
        [JOB_BAKER        ] =  100,
        [JOB_BUTCHER              ] =  100,
        [JOB_MINER        ] =  100,
        [JOB_BREWER        ] =  0,
        [JOB_PIGBREEDER              ] =  0,
        [JOB_DONKEYBREEDER        ] =  0,
        [JOB_IRONFOUNDER          ] =  100,
        [JOB_MINTER        ] =  100,
        [JOB_METALWORKER          ] =  100,
        [JOB_ARMORER              ] =  100,
        [JOB_BUILDER              ] =  0,
        [JOB_PLANER        ] =  0,
        [JOB_GEOLOGIST              ] =  0,
        [JOB_PRIVATE              ] =  0,
        [JOB_PRIVATEFIRSTCLASS    ] =  0,
        [JOB_SERGEANT              ] =  0,
        [JOB_OFFICER              ] =  0,
        [JOB_GENERAL              ] =  200,
        [JOB_SCOUT        ] =  0,
        [JOB_SHIPWRIGHT              ] =  0,
        [JOB_PACKDONKEY              ] =  0,
        [JOB_CHARBURNER           ] =  0
        })

    rttr:GetPlayer(0):AddPeople({
        [JOB_HELPER        ] =  0,
        [JOB_WOODCUTTER        ] =  0,
        [JOB_FISHER        ] =  0,
        [JOB_FORESTER        ] =  0,
        [JOB_CARPENTER        ] =  0,
        [JOB_STONEMASON        ] =  0,
        [JOB_HUNTER        ] =  0,
        [JOB_FARMER        ] =  150,
        [JOB_MILLER        ] =  100,
        [JOB_BAKER        ] =  100,
        [JOB_BUTCHER              ] =  100,
        [JOB_MINER        ] =  100,
        [JOB_BREWER        ] =  0,
        [JOB_PIGBREEDER              ] =  0,
        [JOB_DONKEYBREEDER        ] =  0,
        [JOB_IRONFOUNDER          ] =  100,
        [JOB_MINTER        ] =  100,
        [JOB_METALWORKER          ] =  100,
        [JOB_ARMORER              ] =  100,
        [JOB_BUILDER              ] =  0,
        [JOB_PLANER        ] =  0,
        [JOB_GEOLOGIST              ] =  0,
        [JOB_PRIVATE              ] =  0,
        [JOB_PRIVATEFIRSTCLASS    ] =  0,
        [JOB_SERGEANT              ] =  0,
        [JOB_OFFICER              ] =  0,
        [JOB_GENERAL              ] =  200,
        [JOB_SCOUT        ] =  0,
        [JOB_SHIPWRIGHT              ] =  0,
        [JOB_PACKDONKEY              ] =  0,
        [JOB_CHARBURNER           ] =  0
        })
end



etother am 25.09.2019 11:23 #15307


Hallo Chris,

welche Karte wolltest du spielen?
Ich habe den Code von dir jetzt auf BigSlaughter2 (bigslaugh2.swd) - MAP unter RTTR/MAPS/NEW - getestet.
Konnte den Fehler nicht reproduzieren. Spiel hat normal gestartet. Habe mit insgesamt 8 Spielern gestartet.

Edit: Habe den Fehler wohl gefunden. Du sprichst im Code insgesamt 8 Spieler an. Wenn eine Map allerdings weniger als 8 Spieler vorsieht, also weniger als 8 HQ gesetzt sind, dann schmiert das Spiel ab.
Wenn du eine Map mit bspw. 6 HQ spielst, dann darfst du nur insgesamt 6 Spieler mit dem Code ansprechen. Heißt, dass der Teil für Spieler 7 und 8 wegbleiben muss.

Ich werde mal schauen, wie ich das machen muss, dass so etwas nicht passiert. Ist für mich, wie gesagt, auch neu.
Aber danke für den Test und das Finden des Fehlers :)

Editiert von etother am 25.09.2019 11:31

~Chris am 25.09.2019 12:05 #15308


Yeah!
Läuft!
Vielen Dank! :-)


etother am 25.09.2019 18:42 #15309


Super!

Ich habe mir das Ganze nochmal hinsichtlich des Fehlers angeschaut.
Wenn man allen anderen Spielern die selben Güter zuordnen will, kann man auch mit "not 0" arbeiten.

Hab da auch nochmal eine LUA gebaut, bei der man die Ressourcen dann nur ein Mal für alle anderen Spieler außer Spieler 1 festlegt.

LINK: LUA-ressources 2


Flamefire am 29.09.2019 11:30 #15310


Schleifen gehen auch in Lua: https://www.lua.org/pil/4.3.4.html Damit brauch der Code nicht kopiert werden.

Das auf not nil zu testen geht, aber besser wäre es gleich die Spieleranzahl abzufragen: https://github.com/Return-To-The-Roots/s25client/wiki/Lua-Scripting

PS: Das Log bzw. die Konsole enthält in der Regel gute Meldungen zu Abstürzen.

---
Github: https://github.com/Flamefire


etother am 29.09.2019 19:58 #15311


Danke für die hilfreichen Links und Infos.
Ich hatte mich zwischenzeitlich noch mehr mit dem Thema beschäftigt und hab das Ganze schon hinbekommen.

---
I'm doing gaming stuff.
Bin mit Siedler 2 groß geworden und bastel jetzt an Skripten *sigh*.
Manchmal spiele ich auch.
Steam
Twitch
Discord: Sparrow#8771




Feel free to post in English!

Antwort schreiben

Username:
Security code:
Text:

   
  Convert smilies like :), ;) etc. into small graphics?
  Convert WWW-addresses into clickable links?
  Soll Boardcode in ihrer Nachricht aktiviert werden?