Latest Posts

Topic: Fehlermeldungen beim laden von Erweiterungen

hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2745
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2024-08-05, 22:01

Hi mit dieser kleinen Softwäreänderung
https://github.com/widelands/widelands/pull/6493

konnte ich eine funktionierende Demo bauen, der MAuerbauer sucht nach Haftnotizen, läuft hin und baut eine Mauer.


Attachment:
Screenshot 2024-08-05 214922.jpg

Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 220
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-08-06, 16:54
  • Interessanter Screenshot .
    Ich habe zwei etwas bessere Screenshots , aber wie schon in der Privatnachricht geschrieben , befinde ich mich mit dem Addon noch in der geschlossenen nicht öffentlichen Entwicklungsphase .
    Es wird noch dauern bis ich in die offene öffentliche Entwicklungsphase übergehe .

  • Ich benötige Ressourcen :
    Die Texturen für die Atlanter Gebäude (Wand, Dach)
    Die 3D-Blender Datei für die Kaserne des Imperiums

  • Der Link zu den Widelands Ressourcen ist nicht mehr aktuell , zu den 3D-Dateien :
    https://bazaar.launchpad.net/~widelands-media-dev/widelands-media/widelands-media/files funktioniert nicht mehr . Der Link führt ins leere .
    https://launchpad.net/~widelands-media-dev/widelands-media/widelands-media/files funktioniert ebenfalls nicht , führt aber zur Fehlermeldungsseite .
    https://launchpad.net/~widelands-media-dev Bis zu diesen Punkt funktioniert der Link noch .

  • Im Stammes Addon der Europäher von MarkMcWire habe ich in der units.lua eine Zeile entdeckt von der ich positiv überrascht bin , jedoch auch ein paar Nachfragen habe :
    include "tribes/scripting/help/time_strings.lua"
    Damit kann man offensichtlich damit eine beliebige andere Lua-Datei aufrufen .
    Die Frage die ich mir jetzt stelle ist , ob dies auch unter der folgenden Konstellation geht :
    wl.Descriptions():new_tribe{
    ... text ...
    include "tribes/something/beispiel.lua"
    ... text ... }
    Also dass das include innerhalb eines anderen Befehls steht .
    Ich könnte dies selber herausfinden ob das geht , nur würde das dann wohl voraussichtlich ein paar Monate noch dauern , da andere Fehlermeldungen im Fall der Fälle das dies so nicht geht ,
    vor dieser Fehlermeldung kommen würden und ich momentan sowieso aufgrund einer Umstrukturierung mein Addon nicht testen kann , vorerst .

  • Fehlermeldung bei der Widelands Website beim Privatnachrichten Postfach
    Wenn man versucht https://www.widelands.org/messages/outbox/ aufzurufen , dann kommt die Fehlermeldung :
    Internal server error : We are sorry about that! The widelands website administrators have been automatically informed about this issue.

Top Quote
kaputtnik
Avatar
Joined: 2013-02-18, 20:48
Posts: 2550
OS: Archlinux
Version: current master
Ranking
One Elder of Players
Location: Germany
Posted at: 2024-08-06, 17:01

Teayo wrote:

  • Fehlermeldung bei der Widelands Website beim Privatnachrichten Postfach
    Wenn man versucht https://www.widelands.org/messages/outbox/ aufzurufen , dann kommt die Fehlermeldung :
    Internal server error : We are sorry about that! The widelands website administrators have been automatically informed about this issue.

Ich bin schon benachrichtigt worden, jedoch kann ich den Fehler nicht reproduzieren. Solche Sachen bitte im Forum Homepage posten.


Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 2055
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2024-08-06, 18:12

Teayo wrote:

  • Ich benötige Ressourcen :
    Die 3D-Blender Datei für die Kaserne des Imperiums

Die Kaserne wurde von DragonAtma mit povray erstellt, also gibt es keine Blender-Quelle. (Thread).

  • Im Stammes Addon der Europäher von MarkMcWire habe ich in der units.lua eine Zeile entdeckt von der ich positiv überrascht bin , jedoch auch ein paar Nachfragen habe :
    include "tribes/scripting/help/time_strings.lua"
    Damit kann man offensichtlich damit eine beliebige andere Lua-Datei aufrufen .
    Die Frage die ich mir jetzt stelle ist , ob dies auch unter der folgenden Konstellation geht :
    wl.Descriptions():new_tribe{
    ... text ...
    include "tribes/something/beispiel.lua"
    ... text ... }
    Also dass das include innerhalb eines anderen Befehls steht .
    Ich könnte dies selber herausfinden ob das geht , nur würde das dann wohl voraussichtlich ein paar Monate noch dauern , da andere Fehlermeldungen im Fall der Fälle das dies so nicht geht ,
    vor dieser Fehlermeldung kommen würden und ich momentan sowieso aufgrund einer Umstrukturierung mein Addon nicht testen kann , vorerst .

Die Funktion include(path) führt die als Argument angegebene Datei als Lua-Skript aus. Aktuell hat die Funktion keinen Rückgabewert; es gibt ein offenes PR damit das Skript per return einen Wert vom Typ table zurückgeben darf.

Was du also machen kannst, ist dass du häufig benutze Variablendefinitionen in ein separates Skript packst, das sie als globale Variablen setzt, also so:

common.lua

some_variable_1 = "Wiederverwendbarer Text …"
some_variable_2 = "Mehr wiederverwendbarer Text."

Datei 1

... text ...
foo = some_variable_1,
bar = some_variable_2,
... text ...

Datei 2

... text ...
foo = some_variable_1,
bar = some_variable_2,
... text ...

Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2745
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2024-08-06, 23:15

Ok, wie bereits in einer privaten Nachricht geschrieben, ist es aus meiner Sicht nicht möglich, mit der bestehenden Code Basis ein funktionierendes Addon zur Errichtung von Mauern an einer vom Spieler zu kontrollierenden Stelle zu implementieren.
Für Änderungen an der Code Basis bedarf es aber einer breiten Zustimmung in der Community.
Diese Zustimmung wiedrum bedarf der öffentlichen Diskussion.
Ich bin gerne bereit alle Aspekte um ein solches Feature öffentlich zu diskutieren, und habe bereit eine erste potentiell hilfreiche Codeänderung zum Review gestellt.
Ich bin allerdings nicht länger bereit solche Dinge nicht öffentlich zu diskutieren, da dies aus meiner Sicht dem Transparenzgedanken in der Definition von OSS widerspricht, sowie mutwillig positive Inputs /Ideen aus der Community ignoriert werden. Daher viel Erfolg bei der nichtöffentlichn Entwicklung, jedoch ohne meine weitere Beteiligung.


Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 220
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-11-10, 02:18

Ich bin verwirrt über die Struktur wenn man einen neuen Stamm mittels einer Erweiterung hinzufügen möchte .
Die Dokumentation EN beschreibt folgenden Aufbau :

..\addon_name.wad\tribes\tribe_name\init.lua sowie units.lua
..\addon_name.wad\tribes\initialization\tribe_name\init.lua sowie units.lua

MarkMcWire nutzt für seine Erweiterung folgenden Aufbau :

..\europeans_main.wad\tribes\initialization\init.lua sowie units.lua

Ich nutze momentan folgenden Aufbau :

..\empire_plus.wad\tribes\empire_plus\initialization\init.lua sowie units.lua

Mit meiner Variante wird meine Erweiterung aktuell zumindest in der Liste der installierten Erweiterungen angezeigt .
Momentan noch nicht funktionsfähig da Fehlermeldungen beim laden aber die haben andere Ursachen und hiermit , mit der Struktur wohl nichts zu tun .

Was ist den nun die "offizielle" beziehungsweise gewünschte Struktur ?

Status Update :
Ich habe als Vorbereitung nun alle Programme von allen Produktionsgebäuden durch Auskommentierung deaktiviert ,
so das nun alle Gebäude kein Ablauf Programm haben . Dies sollte eine vermutete Warenabhängigkeits-Schleife aufheben .
Ob diese Schleife zum Problem werden könnte beim laden , werde ich erst dann feststellen können ,
wenn meine Erweiterung Fehlerfrei läd und ich dann Stück für Stück die Programme der Produktionsgebäude wieder reaktiviere .
Sollte es auch bei den Produktions-Gebäuden zum Schleifen-Problem kommen , werde ich das Transportmittel-Konzept durch Auskommentierung bedauerlicherweise erstmal deaktivieren .
Die ganzen Mauern habe ich auch erstmal wieder rausgenommen , damit diese keine Fehlerquelle beim laden sein können .


Notiz : hessenfarmer's Vorschlag für das Mauern Skript

  • transform-Schleifen Problem auch hier weiterhin offen

Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 2055
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2024-11-10, 10:19

Die vorgesehene Struktur ist

$addon_name.wad/tribes/$ANY_DIRECTORY_NAME/{init,units}.lua

Empfohlen wird, das Verzeichnis ANY_DIRECTORY nach dem Volk zu benennen, aber jeder andere Name wird ebenfalls erkannt.
Die Struktur muss genau dieser Template folgen; wenn du ein weiteres Unterverzeichnis hinzufügst, wird Widelands das Volk nicht finden.


Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 220
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-11-10, 23:54

Kleiner Bugreport
Die Fehlermeldungen die im Erweiterungsmenü unten angezeigt werden , werden aber nicht im Fehlermeldungsprotokoll "stdout.txt" ausgegeben.


Attachment:
Screenshot (1001).png

Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 2055
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2024-11-11, 00:28

Ich seh das eher als Feature/Hilfestellung als als Bug. Ursprünglich war es so, dass ein defektes Add-On erst aufgefallen war, wenn du versucht hast, damit ein Spiel zu starten und sich dann herausgestellt hat, dass ein Fehler auftritt. Der Add-On-Manager hat dieses Infopanel bekommen, damit einige leicht aufzuspürende Klassen von Fehlern schon im Voraus erkannt werden können. Allerdings kann der Manager nicht alle Arten von Fehlern finden.

Die Statuszeile im Manager richtet sich in erster Linie an Endnutzer, die ein defektes Add-On installiert haben (oder mit Abhängigkeitsproblemen kämpfen, weil ich immer noch nicht dazu gekommen bin, eine brauchbare automatische Abhängigkeitsauflösung zu konzipieren …).
Wenn du als Add-On-Entwickler dein Add-On debuggen willst, ist es dafür besser, direkt ein Spiel zu starten und zu schauen, was dann dort in der Ausgabe erscheint.


Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 220
OS: Windows 11 Home 64-bit
Version: 1.2.1~rc1
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-11-11, 15:53
...
Error in worker program harvest:
Error reading line 'findobject=empire_plus_immovable_cabbage_field_ripe radius:1':
Unknown findobject predicate empire_plus_immovable_cabbage_field_ripe

"findobject=empire_plus_immovable_cabbage_field_ripe radius:1",
"findobject=attribute:empire_plus_immovable_cabbage_field_ripe radius:1",

"findobject=attrib:empire_plus_immovable_cabbage_field_ripe radius:1",

Komisch das nur die unterste Zeile funktioniert und keinen Fehler auslöst.

Nachtrag:
Aber bei der Aktion plant= kann man hingegen direkt das Objekt erschaffen ohne Attribut Nutzung.

Edited: 2024-11-11, 15:56

Top Quote