Latest Posts

Topic: Win Condition Waldschrat / Wood Gnome ändern

game_student
Avatar
Topic Opener
Joined: 2018-01-12, 21:17
Posts: 12
Ranking
Pry about Widelands
Posted at: 2018-01-14, 15:25

kaputtnik wrote:

Man kann ja auch andere Werte als type_name abfragen... Such Dir in https://wl.widelands.org/docs/wl/autogen_wl_map/#wl.map.MapObjectDescription das Attribut aus, mit welchem du z.B. den Namen des immovables abfragen kannst. Man muss allerdings wissen wie das Gebäude intern benannt wird. Das steht in der entsprechenden init.lua des Gebäudes.

danke, habe es nochmal mit .name probiert und es funktioniert. Hat vorher komischerweise nicht funktioniert. Danke für die Hilfe.

        local imm = f.immovable
        if imm then
           if imm.descr.name == "barbarians_gamekeepers_hut" then
              _plrpoints[owner] = _plrpoints[owner] + 1
           end
        end

Top Quote
game_student
Avatar
Topic Opener
Joined: 2018-01-12, 21:17
Posts: 12
Ranking
Pry about Widelands
Posted at: 2018-01-14, 15:27

Nordfriese wrote:

kaputtnik wrote:

game_student wrote:

        -- check if field has an critters
        local imm = f.critter

Welche Art von immovable ein 'field' hat weiß ein field nicht. Ein 'field' kann nur die Eigenschaft 'immovable' haben wenn ein immovable drauf steht., oder nicht die Eigenschaft immovable haben wenn nichts drauf steht. Das 'if' im folgenden kann also nicht greifen, weil 'imm' immer 'nil' sein wird.

        -- also tried with „critterS“
        if imm then

Ein Tier ist auch eine Art Immovable ... obwohl es mobil ist face-grin.png

Hier liegt ein Missverständnis vor. Tiere und andere mobile Wesen (z.B. Arbeiter) sind keine Immovables, sondern Bobs. Jedes Feld hat ein Array von Bobs, die sich gerade auf diesem Feld befinden. Um die Tiere auf einem Feld f zu zählen, muss f.bobs abgefragt werden: ~~~~ for idx,bob in ipairs (f.bobs) do if bob:has_attribute ("eatable") then plrpoints[owner] = plrpoints[owner] + 1 end end ~~~~

jetzt muss ich nur mehr die tierhüter zählen aber wie?

Es gibt einen viel einfacheren Weg, um die Tierhüter-Hütten von Spieler x zu zählen: ~~~~ plrpoints [x] = plrpoints [x] + #wl.Game ().players [x]:get_buildings ("barbarians_gamekeepers_hut") ~~~~

danke! hilft mir sehr face-smile.png


Top Quote
WorldSavior
Avatar
Joined: 2016-10-15, 03:10
Posts: 2094
OS: Linux
Version: Recent tournament version
Ranking
One Elder of Players
Location: Germany
Posted at: 2018-01-14, 15:38

Was mich interessieren würde: Könnte man die Tiere so schnell zählen, dass ihre Bewegung keine Rolle spielt?

Und wird das Zählen erschwert, wenn mehrere Tiere auf dem gleichen Feld sind?

Noch ein Gedanke zu dem Argument, dass die Tiere ja auch zum Gegner laufen: Bei Waldschrat ist es sehr wichtig, viel Land zu besitzen. Je mehr Land man hat, desto mehr Tiere sind dann dort, also ist es wahrscheinlich gar nicht schlimm, dass einige Tiere das Gebiet verlassen und zum Gegner überlaufen. Von daher ist es wohl keine so schlechte Idee, die Tiere im Gebiet in den Punktestand einfließen zu lassen.


Wanted to save the world, then I got widetracked

Top Quote
game_student
Avatar
Topic Opener
Joined: 2018-01-12, 21:17
Posts: 12
Ranking
Pry about Widelands
Posted at: 2018-01-14, 16:11

WorldSavior wrote:

Noch ein Gedanke zu dem Argument, dass die Tiere ja auch zum Gegner laufen: Bei Waldschrat ist es sehr wichtig, viel Land zu besitzen. Je mehr Land man hat, desto mehr Tiere sind dann dort, also ist es wahrscheinlich gar nicht schlimm, dass einige Tiere das Gebiet verlassen und zum Gegner überlaufen. Von daher ist es wohl keine so schlechte Idee, die Tiere im Gebiet in den Punktestand einfließen zu lassen.

das wäre mein ursprünglicher Gedanke, dass man zum Beispiel für seltene Tiere mehr Punkte bekommt wenn man diese entdeckt und nicht jagt. z.B im Gletschergebiet entdeckt man Eisbären und Schneehasen, an Teiche entdeckt man Bieber und in großen Wälder entdeckt man Luchs, Wildschwein und Wölfe. Und wenn man diese Tiere entdeckt (die natürlich schwer zu finden sein sollen) dann soll man sie mit dem gamekeeper auch züchten können. Leider reichen meine Programmierkenntnisse nicht aus um es so im Detail umzusetzen.

edit: beim init file für gamekeeper kann ich zwar die tiere ergänzen die der gamekeeper erzeugen soll aber ich würde gerne ein abfrage einbauen die vorher prüft ob sich ein seltenes Tier auf seinem eigenen Gebiet befindet.

programs = { release = { "setbobdescription wildboar bunny wolf wisent lynx brownbear", "findspace size:any radius:3", "walk coords", "animation releasein 2000", "create_bob", "animation releaseout 2000", "return" } },

Edited: 2018-01-14, 16:17

Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 17:07
Posts: 1950
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2018-01-14, 21:52

Was mich interessieren würde: Könnte man die Tiere so schnell zählen, dass ihre Bewegung keine Rolle spielt?

Solange das Skript arbeitet, ist das Spiel angehalten. Das merkt man normalerweise nicht, weil Skripte sehr schnell sind…

Und wird das Zählen erschwert, wenn mehrere Tiere auf dem gleichen Feld sind?

Nein, es dauert nur minimal länger.

dass man zum Beispiel für seltene Tiere mehr Punkte bekommt wenn man diese entdeckt und nicht jagt. z.B im Gletschergebiet entdeckt man Eisbären und Schneehasen, an Teiche entdeckt man Bieber und in großen Wälder entdeckt man Luchs, Wildschwein und Wölfe

Beim Iterieren über f.bobs kannst du den Typ jedes einzelnen bobs abfragen und die Punktzahl davon abhängig machen. Diese Aufgabe sollte recht einfach zu lösen sein…

edit: beim init file für gamekeeper kann ich zwar die tiere ergänzen die der gamekeeper erzeugen soll aber ich würde gerne ein abfrage einbauen die vorher prüft ob sich ein seltenes Tier auf seinem eigenen Gebiet befindet.

Geht leider nicht. Die Möglichkeiten, Programme für Gebäude und Arbeiter zu schreiben, sind äußerst begrenzt…


Top Quote
game_student
Avatar
Topic Opener
Joined: 2018-01-12, 21:17
Posts: 12
Ranking
Pry about Widelands
Posted at: 2018-01-15, 09:37

Nordfriese wrote:

Was mich interessieren würde: Könnte man die Tiere so schnell zählen, dass ihre Bewegung keine Rolle spielt?

Solange das Skript arbeitet, ist das Spiel angehalten. Das merkt man normalerweise nicht, weil Skripte sehr schnell sind…

ja genau, das Skript von dir funktioniert einwandfrei (Achtung: nicht einfach kopieren sondern abtippen und underscore vor plrpoints nicht vergessen)

dass man zum Beispiel für seltene Tiere mehr Punkte bekommt wenn man diese entdeckt und nicht jagt. z.B im Gletschergebiet entdeckt man Eisbären und Schneehasen, an Teiche entdeckt man Bieber und in großen Wälder entdeckt man Luchs, Wildschwein und Wölfe

Beim Iterieren über f.bobs kannst du den Typ jedes einzelnen bobs abfragen und die Punktzahl davon abhängig machen. Diese Aufgabe sollte recht einfach zu lösen sein…

danke für den Hinweis. Das werde ich definitiv einbauen face-smile.png

edit: beim init file für gamekeeper kann ich zwar die tiere ergänzen die der gamekeeper erzeugen soll aber ich würde gerne ein abfrage einbauen die vorher prüft ob sich ein seltenes Tier auf seinem eigenen Gebiet befindet.

Geht leider nicht. Die Möglichkeiten, Programme für Gebäude und Arbeiter zu schreiben, sind äußerst begrenzt…

Schade aber die Typabfrage reicht mir vorerst.

BTW habe den Fischer zum Biberzüchter und den Jäger zum Imker umfunktioniert face-wink.png


Top Quote
WorldSavior
Avatar
Joined: 2016-10-15, 03:10
Posts: 2094
OS: Linux
Version: Recent tournament version
Ranking
One Elder of Players
Location: Germany
Posted at: 2018-01-15, 18:57

Nordfriese wrote:

Was mich interessieren würde: Könnte man die Tiere so schnell zählen, dass ihre Bewegung keine Rolle spielt?

Solange das Skript arbeitet, ist das Spiel angehalten. Das merkt man normalerweise nicht, weil Skripte sehr schnell sind…

Danke für die Infos. Das überrascht mich jetzt nicht besonders...

Und wird das Zählen erschwert, wenn mehrere Tiere auf dem gleichen Feld sind?

Nein, es dauert nur minimal länger.

Ok. Da man im Editor - so weit ich weiß - nicht mehrere Tiere auf ein Feld setzen kann, kam ich zu diesem Gedanken.


Wanted to save the world, then I got widetracked

Top Quote
game_student
Avatar
Topic Opener
Joined: 2018-01-12, 21:17
Posts: 12
Ranking
Pry about Widelands
Posted at: 2018-01-22, 21:28

Hi Leute,

kann ich eigentlich der AI irgendwie sagen, dass sie nicht nur Bäume sondern nun auch Tiere züchten soll? Weiß überhaupt die AI, dass beim wood gnome Modus Bäume zu pflanzen sind?


Top Quote
WorldSavior
Avatar
Joined: 2016-10-15, 03:10
Posts: 2094
OS: Linux
Version: Recent tournament version
Ranking
One Elder of Players
Location: Germany
Posted at: 2018-01-22, 23:24

game_student wrote:

Weiß überhaupt die AI, dass beim wood gnome Modus Bäume zu pflanzen sind?

Nein : (

Edited: 2018-01-23, 00:06

Wanted to save the world, then I got widetracked

Top Quote
game_student
Avatar
Topic Opener
Joined: 2018-01-12, 21:17
Posts: 12
Ranking
Pry about Widelands
Posted at: 2018-02-08, 00:07

Hi Leute,

mein Treehugger Mod ist fertig. Nicht perfekt aber es war ja auch hauptsächlich zu Studienzwecken :) Dowload: http://dermultimediaagent.at/widelands_treehugger_mod/

freue mich auf Feedback


Top Quote