Script LUA
Racoon 26 oct. 2019
Quelques trucs sur les tableaux en script LUA (Merci Migow )
Création d'une table logistique_array :
Appeler l'élément 1 de la table
Création d'une table logistique_array contenant 2 tables:
Appeler l'élément 1 de la table 1
Création d'une table logistique_array sous la forme de dictionnaire (clé/valeur):
Appeler la valeur de la clé groupname
Ajouter la clé toutou avec comme valeur medor
Supprimer cette clé
Pour ajouter une clé popaul qui contient le tableau {"ronron","miaou"}
Bien sur tout cela se combine à souhait, par exemple:
Pour récupérer "hell" par exemple, qui est la valeur de la clé destination du second tableau.
Encore un grand merci à Migow pour ces explications. Donc je fais suivre si cela peut servir.
Racoon
Création d'une table logistique_array :
local logistique_array = {"dallas" , "loulou" ,"london" , "hell"}
Appeler l'élément 1 de la table
logistique_array[1]
Création d'une table logistique_array contenant 2 tables:
local logistique_array = {{"dallas" , "loulou"} ,{"london" , "hell"}}
Appeler l'élément 1 de la table 1
logistique_array[1][1]
Création d'une table logistique_array sous la forme de dictionnaire (clé/valeur):
local logistique_array = {groupname = "dallas" , destination = "loulou"}
Appeler la valeur de la clé groupname
logistique_array.groupname
Ajouter la clé toutou avec comme valeur medor
logistique_array.toutou = "medor"
Supprimer cette clé
logistique_array.toutou = nil
Pour ajouter une clé popaul qui contient le tableau {"ronron","miaou"}
logistique_array.popaul = {"ronron","miaou"}
Bien sur tout cela se combine à souhait, par exemple:
local logistique_array = {{groupname = "dallas" , destination = "loulou"},{groupname = "titi" , destination = "hell"} }
Pour récupérer "hell" par exemple, qui est la valeur de la clé destination du second tableau.
logistique_array[2].destination
Encore un grand merci à Migow pour ces explications. Donc je fais suivre si cela peut servir.
Racoon
Racoon 26 oct. 2019
Un autre truc.
Voici une fonction qui active le flag 103 puis appelle une autre fonction resetFlag 2 secondes plus tard.
Sauf que si la fonction resetFlag appelée par scheduleFunction génère une erreur, elle restera au mieux silencieux, au pire affichera une fenêtre d'erreur en pleine mission.
Sur les conseils de Migow, la même fonction, mais cette fois les erreurs silencieux deviennent visibles et la fonction est protégée en passant par le "pcall" et le "if result == false" évitant ainsi les erreurs bloquantes au cours d'une mission. (Corrige moi Migow si j'ai dis une connerie)
Voici une fonction qui active le flag 103 puis appelle une autre fonction resetFlag 2 secondes plus tard.
Sauf que si la fonction resetFlag appelée par scheduleFunction génère une erreur, elle restera au mieux silencieux, au pire affichera une fenêtre d'erreur en pleine mission.
function cargo_fusee(GroupName) trigger.action.setUserFlag( 103 , 1) timer.scheduleFunction(resetFlag, 103, timer.getTime() + 2) end
Sur les conseils de Migow, la même fonction, mais cette fois les erreurs silencieux deviennent visibles et la fonction est protégée en passant par le "pcall" et le "if result == false" évitant ainsi les erreurs bloquantes au cours d'une mission. (Corrige moi Migow si j'ai dis une connerie)
Debug = true function cargo_fusee(GroupName) local function Internal_cargo_fusee(GroupName) trigger.action.setUserFlag( 103 , 1) --Flag 103 timer.scheduleFunction(resetFlag, 103, timer.getTime() + 2) end local result local error result , error = pcall(Internal_cargo_fusee,GroupName) if result == false then env.error(error,Debug) end endPour ne plus afficher les messages et mettre la mission en "production", il faut passer la variable Degug à false.