Aller au contenu

Problème algorithme LUA


jjacques68

Messages recommandés

Bonjour à tous,

 

J'ai un algorithme casse-tête :

 

Je souhaite dans une scène, qui peut être déclenchée par plusieurs VG, exécuter une fonction.

La fonction à exécuter est différente suivant le nom de la VG qui fait le déclenchement...

 

Voilà ce que j'ai fait, ça marche mais je trouve ça hyper compliqué !!!!! pour ce que c'est...

y a pas moyen de simplifier ??

--[[
%% properties
%% events
%% globals
VG1
VG2
--]]

local Trigger=fibaro:getSourceTrigger()

--variable Objet contenant les fonctions
local Objet = {
  VG1 = function (self)
    print("Fonction pour la VG1")  
  end,

  VG2 = function (self)
    print("Fonction pour la VG2")  
  end,
}

--variable contenant les Trigger et les actions associées
local VGTrigger = {
  ["VG1"] = Objet:VG1(),
  ["VG2"] = Objet:VG2(),
}

--execution de la fonction
pcall(VGTrigger[Trigger.varName])

merci à vous !!!

Modifié par jjacques68
plantage dans le copier/coller
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Pas simple en effet!!!

Voici ce que j'utilise pour le même résultat:

 

--[[
%% properties
%% events
%% globals
VG1
VG2
--]]

local Trigger=fibaro:getSourceTrigger()

if Trigger["varName"] == "VG1"
then
print("action pour la VG1")  
end

if Trigger["varName"] == "VG2"
then
print("action pour la VG2")  
end

 

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...