Topic: Idee für neuen Stamm: die Allianz

usingUser
Avatar
Topic Opener
Joined: 2024-01-19, 19:54 UTC+1.0
Posts: 35
Version: 1.1 Release
Ranking
Pry about Widelands
Posted at: 2025-09-06, 21:20 UTC+2.0

Nach „etwas“ Vorlaufzeit bin ich nun so weit, daß ich mich an die Umsetzung wagen will.
In welchem Verzeichnis liegen die Daten, die zum Spielen verwendet werden, z. B. die verfügbaren Stämme? Unter GNU/Linux wären die Stämme ja unter /usr/share/games/widelands/data/tribes, jedoch gibt es ja auch andere Systeme und hartgecoded ist ja bekanntlich nicht so elegant…
Gibt es dafür (Umgebungs-) Variablen? Wo find' ich die?


Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07 UTC+1.0
Posts: 2183
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2025-09-07, 11:43 UTC+2.0

usingUser wrote

In welchem Verzeichnis liegen die Daten, die zum Spielen verwendet werden, z. B. die verfügbaren Stämme? Unter GNU/Linux wären die Stämme ja unter /usr/share/games/widelands/data/tribes, jedoch gibt es ja auch andere Systeme und hartgecoded ist ja bekanntlich nicht so elegant…
Gibt es dafür (Umgebungs-) Variablen? Wo find' ich die?

Im Hauptmenü findest du unter »Über Widelands« → »Technische Information« den Pfad zum Data-Verzeichnis. Beachte, falls du Widelands über ein All-in-One-Format wie Flatpak, Snap oder AppImage installiert hast, sind die Dateien darin gebündelt und liegen nicht frei zugänglich auf dem Dateisystem. In dem Fall kannst du sie als Zip von der Release-Seite herunterladen.

Beim Start von Widelands kann mit der Option --datadir ein beliebiges anderes Data-Verzeichnis als das Standardverzeichnis angegeben werden.


Top Quote
usingUser
Avatar
Topic Opener
Joined: 2024-01-19, 19:54 UTC+1.0
Posts: 35
Version: 1.1 Release
Ranking
Pry about Widelands
Posted at: Today 17:21 UTC+2.0

Was macht z. B. die Zeile dirname .. "starting_conditions/headquarters.lua"; ? Wo stehen die Umgebungsvariablen, die in den Luaskripten benutzt werden? Wie setze ich eine blockübergreifend fest oder veränder' die?


Top Quote
kaputtnik
Avatar
Joined: 2013-02-18, 20:48 UTC+1.0
Posts: 2703
OS: Archlinux
Version: current master
Ranking
One Elder of Players
Location: Germany
Posted at: Today 17:53 UTC+2.0

usingUser wrote

Was macht z. B. die Zeile dirname .. "starting_conditions/headquarters.lua";

Die zwei Punkte sind ein "verbingungsoperator" (concatenation operator) für strings. In diesem Fall wird in der variablen ein string stehen und dieser string wird mit dem folgenden string verbunden. zB:

dirname = "addons/NAME/VERZEICHNIS/"

new_dir = dirname .. "starting_conditions/headquarters.lua"

print(new_dir)  -- schreibt in Konsole: "addons/NAME/VERZEICHNIS/starting_conditions/headquarters.lua"

? Wo stehen die Umgebungsvariablen, die in den Luaskripten benutzt werden? Wie setze ich eine blockübergreifend fest oder veränder' die?

Umgebungsvariablen im eigentlichen Sinne gibt es nicht. Es gibt globale variablen und lokale variablen. Letztere sind nur in einem gewissen Kontext (Funktion oder Datei) gültig.

GLOBAL_VAR = "hallo"    -- diese variable ist Global. Wird sie zb in init.lua gesetzt kann man in jeder anderen Datei oder Funktion darauf zugreifen
local local_var = "     -- ein lokale variable. Sie ist nur in der Datei oder Funktion zugreifbar wo sie definiert wurde

Generell gilt jedoch das man möglichst nur lokale Variablen einsetzen sollte, da es sonst leicht zu Fehlern führt die man nur schwer finden kann. Zb aus versehen überschrieben wird. Muss man globale variable nutzen sollten sie klar als solche gekennzeichnet werden, zB nur in Großbuchstaben notieren.

Bitte erwarte nicht das wir hier eine Einführung in lua geben. Es gibt im Internet genug Informationsquellen zu lua.


Top Quote