Important Dates

Latest Posts

Topic: Fehlermeldungen beim laden von Erweiterungen

Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 194
OS: Windows 11 Home 64-bit
Version: 1.2 from Juni (06) 2023
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-06-08, 17:42

Fehlermeldung

[05:21:42.084 real] ERROR:
FATAL EXCEPTION: game class:

[D:/a/widelands/widelands/src/scripting/lua_errors.cc:21]
modify_unit: error:

[D:/a/widelands/widelands/src/scripting/lua_errors.cc:21]
empire_worker_wallmason: Error in worker program create_wall:

Error reading line 'createbob=empire_worker_wall_add_e':
[D:/a/widelands/widelands/src/scripting/lua_errors.cc:21]

Error loading animation 'walk' for map object 'empire_worker_wall_add_e':
Direction '_ne': Animation with one picture addons/mauerbauer.wad/mauern_impulse/plus_e/\walk_ne_4.png must not 

init.lua

...
    animations =
    {
        idle =
        {
            hotspot = { 0, 0 }
        },
        walk =
        {
            --basename = "idle"
            fps = 1,
            frames = 2,
            columns = 1,
            rows = 2,
            directional = true,
            hotspot = { 12, 12 }
        },
        walkload =
        {
            --basename = "idle"
            fps = 1,
            frames = 2,
            columns = 1,
            rows = 2,
            directional = true,
            hotspot = { 12, 12 }
        }
    },
    buildcost = {},
    vision_range = 0,
    programs = 
    {
        main =
        {
            actions =
            {
                "walk=e",
                --"animate=idle duration:28800s"
                "remove="
            }
        }
    }
...

Dateien im Ordner

normal
pruefen (enthält temporär walkload.png's)

register.lua
init.lua

idle_0.5.png
idle_1.png
idle_2.png
idle_4.png

walk_e_0.5.png
walk_e_1.png
walk_e_2.png
walk_e_4.png

walk_ne_0.5.png
walk_ne_1.png
walk_ne_2.png
walk_ne_4.png (Die betroffene Datei aus der Fehlermeldung) [Größe 192x96 px]

walk_nw_0.5.png
walk_nw_1.png
walk_nw_2.png
walk_nw_4.png

walk_se_0.5.png
walk_se_1.png
walk_se_2.png
walk_se_4.png

walk_sw_0.5.png
walk_sw_1.png
walk_sw_2.png
walk_sw_4.png

walk_w_0.5.png
walk_w_1.png
walk_w_2.png
walk_w_4.png

Vorherige Fehlermeldung behoben , nun neue Fehlermeldung

Um die vorherige Fehlermeldung zu beheben , habe ich alle walk und walkload Bilddateien angepasst von 96x96 auf 96x192 als Beispiel um aus einen Bild ein Spritesheet zu erstellen .
Leider akzeptiert das Widelands weiterhin nicht und , so das ich von 0 fps auf 1 fps in der init.lua umstellen musste .
Aber auch danach möchte Widelands etwas nicht , was ich nicht verstehe , nähmlich die aktuelle Fehlermeldung , die in diesen Post beschrieben wird .
Ich habe doch alles so gemacht wie beim Arbeiter , der bereits funktioniert .
Ich probier mal rum , denke aber nicht zeitnah eine Lösung zu finden .


Das Imperium schlägt zurück ! TY

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

Direction '_ne': Animation with one picture addons/mauerbauer.wad/mauern_impulse/plus_e/\walk_ne_4.png must not

ergänze: … "have 'fps'"

Animationen mit nur einem Bild dürfen keine FPS-Rate angeben. Nicht 1, nicht 0 (0 ergibt ohnehin keinen Sinn…), der Key darf schlicht nicht existieren.


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

Wenn in dem spritesheet aber nur ein Bild ist, (was ich annehme) dann macht aber eine Angabe von 2 Zeilen (rows) auch wenig SInn.


Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 194
OS: Windows 11 Home 64-bit
Version: 1.2 from Juni (06) 2023
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-06-08, 23:32

Vorheriges Problem mit den "animate_ne" gelöst .

Allerdings habe ich jetzt wieder ein neues Problem , was meinen aktuellen Plan wie ich das umsetzen möchte , durchkreuzt und verhindert .
Ich bekomme nun eine Fehlermeldung das die Aktion "remove=" nicht existiert .
Deaktiviere ich die "remove=" Aktion und aktiviere dafür die "return" Aktion , so kommt es zu einer vermeintlichen Fehlfunktion .
Anstatt das Objekt zu erzeugen , geht der Arbeiter bei Ankunft an der selektierten Position direkt wieder zurück zu seinen Gebäude .
Eine Test-Animation "animate=work duration:2s", die hinter der Aktion "createbob=empire_worker_wall_add_e" , wird nicht abgespielt .
Da aber im Programm von "empire_worker_wall_add_e" die aktivierte "return" Aktion als letztes ,
vor einer weiteren 2 Sekündigen Test-Animation und einen "walk=e" kommen , bedeutet dies ,
Das die Aktion "createbob=empire_worker_wall_add_e" vom Arbeiter "empire_worker_wallmason" fehlschlug und das komplette Programm abgebrochen wurde
und eine nicht sichtbare , beziehungsweise übergeordnete "return" Aktion ausgeführt wurde .

Darüber muss ich erst einmal eine weile nachdenken , ob es überhaupt eine Möglichkeit gibt das Impuls-Konzept direkt in den Arbeiter "empire_worker_wallmason" zu integrieren .
Zumindest wird es scheinbar wohl erstmal sehr schwierig die Mauer Objekt Animationen zu synchronisieren .
Ich muss in der Dokumentation nochmal nachschauen was für Aktionen in Programmen es bei Tieren gibt .
Außerdem sehe ich viele Wenn dann und Wenn nicht , Falls sonst Fälle , ich weiß nicht wie man das in das Arbeiter Programm umsetzen kann ,
da es offenbar schon bei dem ersten Fehlschlag sofort das Programm abbricht und ins "return" übergeht .
Das wird sehr schwierig .

Umgehen könnte ich das Problem , indem ich das Impuls-Konzept beziehungsweise das Konzept der Mauer-Verbindungen , komplett verworfen wird
und dafür dann Abstriche beim Spielerlebnis gemacht werden , dann wird die Mauer schlicht wie ein Baum in die Welt platziert ,
ohne das es sichtbare Verbindungen zu anderen Mauern gibt .


Das Imperium schlägt zurück ! TY

Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 194
OS: Windows 11 Home 64-bit
Version: 1.2 from Juni (06) 2023
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-07-14, 17:56

Nachtrag

was bereits den relevanten Personen , unter anderen @Nordfriese bekannt ist , das ich das Problem habe ,
mein Addon hochzuladen . Entsprechende Konversation dazu : https://www.widelands.org/messages/view/11952/ .
Das Problem besteht wohl nur in der aktuellen Widelands 1.2 Release Version .
Der entsprechende Bug dazu : https://codeberg.org/wl/wl_addons_server/issues/87 mit der Lösung : https://github.com/widelands/widelands/pull/6437 .
Da ich keine Ahnung habe wie ich mit der verlinkten Lösung umgehen soll , warte ich auf eine neue Entwicklungsversion zur 1.3 , in der die Lösung bereits integriert ist .
Ich würde es jedoch begrüßen wenn ich benachrichtigt werde , entweder per Privatnachricht oder hier unter diesen Thread ,
wenn eine neue Entwicklungsversion zur 1.3 verfügbar ist , in der das Problem voraussichtlich behoben sein soll .

Was mir noch ganz wichtig ist , ist das ich es begrüßen würde , wenn die Sicherheitsüberprüfung in Lua-Skripten bei transforms entfernt wird .
Dies ist unerlässlich , da ich kein Spiel starten kann mit geschlossener transform Schleife in meinen Addon .
Momentan funktioniert mein Addon immer nur dann wenn ich die Schleife durchtrenne .

Geschlossene Schleife

Objekt-A
programs =
{
 remove_e = { "transform=object_b" },
}

Objekt-B
programs =
{
 add_e = { "transform=object_a" },
}

Durchtrennte Schleife

Objekt-A
programs =
{
 --remove_e = { "transform=object_b" },
}

Objekt-B
programs =
{
 add_e = { "transform=object_a" },
}

ODER

Objekt-A
programs =
{
 remove_e = { "transform=object_b" },
}

Objekt-B
programs =
{
 --add_e = { "transform=object_a" },
}

Ladezeiten bei geschlossener Schleife

Anmerkung : Es sind alle 64+3 Objekte aktiviert und bei den 64 Objekten sind alle transforms in ein Richtung ( add ) aktiviert , dies funktioniert ohne Probleme .
Zum Testen wurden schrittweise die transforms auch in die andere Richtung ( remove ) aktiviert und das Ergebnis der Ladezeiten findet sich in der unteren Tabelle .

Objekte
Gesamt
Involviert
1 Objekte
aus
Gruppe V0-1
6 Objekte
aus
Gruppe V1-1
3 Objekte
aus
Gruppe V2-1
6 Objekte
aus
Gruppe V2-2
6 Objekte
aus
Gruppe V2-3
6 Objekte
aus
Gruppe V3-1
Ladezeit
2
Schleifen : 1
1
6x1 ---> Gruppe V1-1
1
5x6 ---> Gruppe V2-
Gruppe V0-1 <--- 1x1
unter < 5 Sekunden
7
Schleifen : 6
1
6x1 ---> Gruppe V1-1
6
5x6 ---> Gruppe V2-
Gruppe V0-1 <--- 1x6
5 bis 10 Sekunden
10
Schleifen : 9
1
6x1 ---> Gruppe V1-1
6
5x6 ---> Gruppe V2-
Gruppe V0-1 <--- 1x6
3
4x3 ---> Gruppe V3-
Gruppe V1-1 <--- 2x3
20 bis 35 Sekunden
13
Schleifen : 12
1
6x1 ---> Gruppe V1-1
6
5x6 ---> Gruppe V2-
Gruppe V0-1 <--- 1x6
3
4x3 ---> Gruppe V3-
Gruppe V1-1 <--- 2x3
3
4x3 ---> Gruppe V3-
Gruppe V1-1 <--- 2x3
8 bis 10 Minuten
16
Schleifen : 15
1
6x1 ---> Gruppe V1-1
6
5x6 ---> Gruppe V2-
Gruppe V0-1 <--- 1x6
3
4x3 ---> Gruppe V3-
Gruppe V1-1 <--- 2x3
6
4x6 ---> Gruppe V3-
Gruppe V1-1 <--- 2x6
über > 30 Minuten
17
Schleifen : 16
1
6x1 ---> Gruppe V1-1
6
5x6 ---> Gruppe V2-
Gruppe V0-1 <--- 1x6
3
4x3 ---> Gruppe V3-
Gruppe V1-1 <--- 2x3
6
4x6 ---> Gruppe V3-
Gruppe V1-1 <--- 2x6
1
4x1 ---> Gruppe V3-
Gruppe V1-1 <--- 2x1
NaN
das dauert mir zu
lange ---> Taskmanager
Widelands abgewürgt

CPU als auch RAM waren aber bei allen Ladevorgängen stets unauffällig und nicht ausgelastet .
Die Ausgabedatei stdout.txt von Widelands zeigt keine Hinweise oder Auffälligkeiten die mit diesen Problem in Zusammenhang stehen könnten .


Das Imperium schlägt zurück ! TY

Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 194
OS: Windows 11 Home 64-bit
Version: 1.2 from Juni (06) 2023
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-07-21, 23:07

Beim Versuch ein Spiel zu starten oder zu laden , Widelands stürzt komplett ab , wenn man bei

wl.Descriptions():modify_unit
(
    "tribe","empire","add_ware","empire_ware_mortar_trowel", 4, 1, 1,

zu folgenden ändert

wl.Descriptions():modify_unit
(
    "tribe","empire","add_ware","empire_ware_mortar_trowel", 5, 1, 1,

Für mich war dieser Fehler echt sehr schwer zu finden .
Warum kann man das Inventar eines Stammes nicht bei der Anordnung anpassen ?

Edited: 2024-07-21, 23:08

Das Imperium schlägt zurück ! TY

Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 194
OS: Windows 11 Home 64-bit
Version: 1.2 from Juni (06) 2023
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-07-21, 23:28

Ich erhielt die im Screenshot zu sehende Spiel interne Nachricht / Meldung als Fehlermeldung .

Da ich mit der Anordnung der Eingangswaren in der Imperium Werkzeugschmiede unzufrieden war , habe ich folgendes in der postload.lua integriert :
* Entferne Wareneingang Stämme (8)
* Entferne Wareneingang Eisen (8)
* Füge Wareneingang Stämme hinzu (6)
* Füge Wareneingang Bretter hinzu (6)
* Füge Wareneingang Eisen hinzu (6)

Den ich erkannte das die Funktion "modify_unit ... add_ware" die neu hinzuzufügende Ware immer an der Listenposition -1 (Als letztes) einsetzt .
Da ich aber von der Anordnung her wollte das die Bretter zwischen den Stämmen und dem Eisen sind , hatte ich obriges probiert und meine Vermutung
das der Wareneingang so als Liste gehandhabt wird , hat sich tatsächlich bestätigt und es hat schon beim ersten Versuch geklappt ,
bis auf diese komische interne Fehlermeldung . Aber diese werde ich ignorieren .


Attachment:
addon_fehler_bild_1.png

Das Imperium schlägt zurück ! TY

Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2724
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2024-07-22, 10:27

Die Fehlermeldung besagt, dass eine Startbedingung (z.B. fortified village) versucht die Inputs zu füllen, dafür aber nicht genügend Platz ist. Das kommt daher, dass dies Größe der Inputs von 8 auf 6 verringert wurde. Entweder ist das wieder auf 8 zu erhöhen oder aber die Startbedingung muss ebenfalls angepasst werden.

Teayo wrote:

Ich erhielt die im Screenshot zu sehende Spiel interne Nachricht / Meldung als Fehlermeldung .

Da ich mit der Anordnung der Eingangswaren in der Imperium Werkzeugschmiede unzufrieden war , habe ich folgendes in der postload.lua integriert :
* Entferne Wareneingang Stämme (8)
* Entferne Wareneingang Eisen (8)
* Füge Wareneingang Stämme hinzu (6)
* Füge Wareneingang Bretter hinzu (6)
* Füge Wareneingang Eisen hinzu (6)

Den ich erkannte das die Funktion "modify_unit ... add_ware" die neu hinzuzufügende Ware immer an der Listenposition -1 (Als letztes) einsetzt .
Da ich aber von der Anordnung her wollte das die Bretter zwischen den Stämmen und dem Eisen sind , hatte ich obriges probiert und meine Vermutung
das der Wareneingang so als Liste gehandhabt wird , hat sich tatsächlich bestätigt und es hat schon beim ersten Versuch geklappt ,
bis auf diese komische interne Fehlermeldung . Aber diese werde ich ignorieren .


Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2724
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2024-07-22, 23:17

Teayo wrote:

Beim Versuch ein Spiel zu starten oder zu laden , Widelands stürzt komplett ab , wenn man bei
~~~~ wl.Descriptions():modify_unit ( "tribe","empire","add_ware","empire_ware_mortar_trowel", 4, 1, 1, ~~~~ zu folgenden ändert ~~~~ wl.Descriptions():modify_unit ( "tribe","empire","add_ware","empire_ware_mortar_trowel", 5, 1, 1, ~~~~ Für mich war dieser Fehler echt sehr schwer zu finden .
Warum kann man das Inventar eines Stammes nicht bei der Anordnung anpassen ?

kann man momentan, solange man die Waren in eine der 5 existierenden Spalten einsortiert (lua zählt ab 0 daher ist der Eintrag 4 die 5. Spalte.)
eine 6. Spalte ist momentan Szenario spezifischen Waren zugeordnet, da diese im Gegensatz zu Waren aus dem Addon nicht dauerhaft zur Verfügung stehen uns man die gewohnte Anordnung der "normalen Waren nicht durcheinander bringen wollte.

Ist aber ggf. ne Anregung für Addons die Definition neuer Spalten zu erlauben.


Top Quote
Teayo
Avatar
Topic Opener
Joined: 2015-03-09, 22:11
Posts: 194
OS: Windows 11 Home 64-bit
Version: 1.2 from Juni (06) 2023
Ranking
Widelands-Forum-Junkie
Location: Deutschland
Posted at: 2024-07-23, 00:40

Mal etwas anderes was für mich kein Problem darstellt , aber ich war neugierig und hatte folgendes im angehängten Bild zusehendes ausprobiert :
Es hat sogar keine Fehlermeldungen beim laden gegeben , da dachte ich schon das dies tatsächlich so funktionieren würde , jedoch hat der Nachfolgende Praxistest Ernüchterung gebracht .

Beobachtetes Verhalten :

Wenn das Gebäude fertig ist , dann wird nur die erste Zeile von den beiden gleichen Waren Zeilen gefüllt .
Die zweite Zeile zeigt an , dass die Ware unterwegs ist , aber die Ware wird nicht geliefert .

Wenn man für die zweite Zeile die Priorität ändert , wird die Priorität auch für die erste Zeile von den beiden gleichen Waren Zeilen geändert .
Dies hatte ich erwartet und auch hatte ich erwartet , dass wenn man die Priorität für die erste Zeile ändert , dass die Priorität auch für die zweite Zeile geändert wird .

Das ändern des maximalen Warenfüllstandes für die erste Zeile , von den beiden gleichen Waren Zeilen , funktioniert ganz normal (Schaltfläche verringern und vergrößern) .
Wenn man jedoch versucht den maximalen Warenfüllstand für die zweite Zeile ändern möchte , dann passiert folgendes :
* Vergrößert man den maximalen Warenfüllstand , passiert nichts . Der maximale Warenfüllstand bleibt bei 6/6 .
Dies hat auch keine Auswirkungen auf den maximalen Warenfüllstand der ersten Zeile .

* Verringert man den maximalen Warenfüllstand , passiert bei der zweiten Zeile , bei der man diese Eingabe tätigt , nichts . Der maximale Warenfüllstand bleibt bei 6/6 .
Jedoch wird der maximale Warenfüllstand der ersten Zeile immer auf 5/6 gesetzt . Syntax ausgedrückt :
Der maximale Warenfüllstand der ersten Zeile wird immer auf <Maximal-Wert-Zeile> minus 1 gesetzt .
Dabei ist es egal , welchen maximalen Warenfüllstand die erste Zeile , von den beiden gleichen Waren Zeilen , hatte .
Auch wenn der maximale Warenfüllstand bereits auf 5/6 ist , jeder weitere Klick ändert nichts mehr .
Allerdings kann der maximale Warenfüllstand der ersten Zeile danach auch wieder ganz normal geändert werden , wenn man eine entsprechende Eingabe für die erste Zeile tätigt .


Attachment:
glitch_waren_eingabe.jpg

Das Imperium schlägt zurück ! TY

Top Quote