Aller au contenu
jjacques68

Problème algorithme LUA

Recommended Posts

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

Partager ce message


Lien à poster
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

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah ok vu comme ça :) je restais bloqué sur des fonctions je sais pas pourquoi :)


Envoyé de mon iPhone en utilisant Tapatalk Pro

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Le résultat est le même ;)

Mais ta solution fait : WAOUW le developpeur ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

×