HUD funktioniert nicht

German
User avatar
niwla23
Member
 
Posts: 93
Joined: Sat Nov 17, 2018 17:40
In-game: Niwla

HUD funktioniert nicht

by niwla23 » Wed Nov 28, 2018 18:49

Hallo,
ich probiere gerade etwas mit LUA modding rum und wollte einen HUD erstellen.
Das ist mein Code:
Code: Select all
local player = minetest.get_player_by_name("singleplayer")
local idx = player:hud_add({
     hud_elem_type = "text",
     position      = {x = 0.5, y = 0.5},
     offset        = {x = 0,   y = 0},
     text          = "Hello world!",
     alignment     = {x = 0, y = 0},  -- center aligned
     scale         = {x = 100, y = 100}, -- covered later
})

Und das die Debug.txt
Code: Select all
       .__               __                   __   
  _____ |__| ____   _____/  |_  ____   _______/  |_
 /     \|  |/    \_/ __ \   __\/ __ \ /  ___/\   __\
|  Y Y  \  |   |  \  ___/|  | \  ___/ \___ \  |  | 
|__|_|  /__|___|  /\___  >__|  \___  >____  > |__| 
      \/        \/     \/          \/     \/       
2018-11-28 19:36:28: ACTION[Main]: World at [C:\Program Files\Minetest\minetest-0.4.17.1-win64\bin\..\worlds\ggggggggggggggggggggggg]
2018-11-28 19:36:28: ACTION[Main]: Server for gameid="minetest" listening on 0.0.0.0:61027.
2018-11-28 19:36:30: WARNING[Main]: Irrlicht: PNG warning: iCCP: known incorrect sRGB profile
2018-11-28 19:36:31: ACTION[Server]: singleplayer [127.0.0.1] joins game.
2018-11-28 19:36:31: ACTION[Server]: singleplayer joins game. List of players: singleplayer
2018-11-28 19:45:02: ERROR[Main]: ModError: Failed to load and run script from C:\Program Files\Minetest\minetest-0.4.17.1-win64\bin\..\mods\hud\init.lua:
2018-11-28 19:45:02: ERROR[Main]: ...inetest\minetest-0.4.17.1-win64\bin\..\mods\hud\init.lua:2: attempt to index local 'player' (a nil value)
2018-11-28 19:45:02: ERROR[Main]: stack traceback:
2018-11-28 19:45:02: ERROR[Main]:    ...inetest\minetest-0.4.17.1-win64\bin\..\mods\hud\init.lua:2: in main chunk
2018-11-28 19:45:02: ERROR[Main]: Siehe debug.txt für Details.

Hat da wer ne Idee?
 

User avatar
Krock
Developer
 
Posts: 4242
Joined: Thu Oct 03, 2013 07:48
Location: Switzerland
GitHub: SmallJoker

Re: HUD funktioniert nicht

by Krock » Wed Nov 28, 2018 19:04

EDIT: Falsches Forum! Bitte nächstes mal im deutschsprachigen Teil oder hier auf Englisch fragen. DANKESCHÖN

Ja. Die Lösung ist sehr einfach: Lua führt das gesamte Script beim Laden der Welt aus. Das heisst, alle Funktionen werden definiert und die globalen Variablen festgelegt. In deinem Script wird der Code ebenfalls unmittelbar ausgeführt - zu einem Zeitpunkt wo der Server noch gestartet wird. Auch wenn der Error nach "singleplayer joins game. List of players: singleplayer" erscheint - der Spieler ist zu diesem Zeitpunkt für die API noch nicht bekannt.

Lösung: Ein `on_joinplayer` Callback registrieren, welches den Funktions-Code bei dessen Aufruf erst ausführt:
Code: Select all
-- Für andere Funktionen zugänglich
local players_hud_id = {}

minetest.register_on_joinplayer(func(player)
   -- Eventuell hier auf "singleplayer" beschränken?
   local player_name = player:get_player_name()

   players_hud_id[player_name] = player:hud_add({
      hud_elem_type = "text",
      position      = {x = 0.5, y = 0.5},
      offset        = {x = 0,   y = 0},
      text          = "Hello world!",
      alignment     = {x = 0, y = 0},  -- center aligned
      scale         = {x = 100, y = 100}, -- covered later
   })
end)
>> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>
 

User avatar
niwla23
Member
 
Posts: 93
Joined: Sat Nov 17, 2018 17:40
In-game: Niwla

Re: HUD funktioniert nicht

by niwla23 » Wed Nov 28, 2018 19:27

Danke!
Jetzt bekomme ich nur noch Atom noch diese Meldung:
Code: Select all
2018-11-28 20:25:27: ERROR[Main]: ModError: Failed to load and run script from C:\Program Files\Minetest\minetest-0.4.17.1-win64\bin\..\mods\hud\init.lua:
2018-11-28 20:25:27: ERROR[Main]: ...inetest\minetest-0.4.17.1-win64\bin\..\mods\hud\init.lua:6: ')' expected (to close '(' at line 4) near 'local'
2018-11-28 20:25:27: ERROR[Main]: Siehe debug.txt für Details.

Ich verstehe nicht wo die Klammer fehlt.
 

User avatar
Krock
Developer
 
Posts: 4242
Joined: Thu Oct 03, 2013 07:48
Location: Switzerland
GitHub: SmallJoker

Re: HUD funktioniert nicht

by Krock » Fri Nov 30, 2018 18:08

Den Code habe ich nicht getestet. "func" steht so in der Dokumentation (lua_api.txt), ist aber als "function" gemeint. Also einfach ersetzen und der Fehler verschwindet.
>> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>
 

User avatar
niwla23
Member
 
Posts: 93
Joined: Sat Nov 17, 2018 17:40
In-game: Niwla
 


Return to Deutsch



Who is online

Users browsing this forum: No registered users and 1 guest