Author Topic: [résolu][bug or not bug ?] Probleme avec une variable locale  (Read 104 times)

PhoenixII54

  • Newbie
  • *
  • Posts: 37
    • View Profile
Bonjour,

j'ai un problème avec une varible de mon script de game manager maison :

Code: Lua
  1. --[[
  2. The game utilities
  3.  
  4. This file manages low-level operations such as save management
  5. and manages game handling operations such as getting/setting hero's parameters
  6. (life, money, position) or initializing the game parameters
  7.  
  8. Include it in your scripts if you need some function that couldn't get in other ways,
  9. especially in menus or for debug purpose.
  10. --]]
  11.  
  12. local gu={}
  13. --[[
  14. +---------------+
  15. | GAME HANDLING |
  16. +---------------+
  17. --]]
  18.  
  19. local file_utils=require("scripts/utilities/files")
  20. --print("[game manager] INFO : Preloading file")
  21. local game=nil
  22.  
  23. local debug={   <---la variable fautive
  24.     enabled=true,
  25.     show_grid_marker=true,
  26.     show_debug_hud=true,
  27. }
  28.  
  29. function gu:is_debug_enabled()
  30.   return debug.enabled
  31. end
  32.  
  33. function gu:show_debug_hud()
  34.   return debug.show_debug_hud
  35. end
  36.  
  37. function gu:show_grid_marker()
  38.   return debug.show_grid_marker
  39. end
  40.  
  41.  
  42. --<plein de fonctions de management de quete>
  43.  
  44. return gu

Quand je lance la quete, j'ai ce message d'erreur :
Code: [Select]
Error: In on_started: scripts/system/game_utils.lua:30: attempt to index upvalue 'debug' (a nil value)
stack traceback:
[C]: in function '__index'
scripts/system/game_utils.lua:30: in function 'is_debug_enabled'
menus/hud.lua:50: in function <menus/hud.lua:41>
[C]: in function 'start'
scripts/system/quest_initializer.lua:28: in function <scripts/system/quest_initializer.lua:27>
quand j'essaye d'appeler la fonction gu:is_debug_enabled() depuis un autre fichier.

Hors, dans le même fichier, j'ai une reference a game qui, elle, fonctionne parfaitement alors qu'elle est déclarée dans le même principe (en local dans la racine du fichier donc).

La question est donc : y a t-il un bug du moteur ou ai-je fait une erreur quelque part ?
Merci de m'aider à éclairer ma lanterne :p


UPDATE : ne surtout PAS appaler une variable locale debug, sinon y a conflit avec une classe debug de Lua. Problème résolu !
« Last Edit: June 25, 2018, 09:49:41 pm by PhoenixII54 »