Concernant ou placer les exécutions de scripts au démarrage, je t'invite à regarder ça :
http://www.arma3.fr/forum/viewtopic.php?f=120&t=4603&p=26688#p26688
(Ordre d'initialisation des éléments)
Pour la différence entre exec et execVM, elle se trouve dans le fonctionnement du parser. exec, c'est shot & forget, généralement en syntaxe monoligne, par convention, utilisé exclusivement pour les SQS (ancienne syntaxe). L'execVM, lui, est plus poussé, il dispose d'un handler, donc, d'un soft thread qui lui est propre (gain de perfs), ainsi qu'un contrôle d'erreur fonctionnement comme suit :
- Lecture du fichier
- Compilation du fichier
-- Si erreur de compile, abandon
-- Si pas d'erreur, exécution
- retourne un bool quand c'est fini (handler := bool)
(c'est pour cette raison (call compile implicite) qu'un script erroné ne sera jamais exécuté et complètement ignoré).
Pour la question, nous sommes d'accord que tu exec Surrender.sqf avant tout appel de la fonction Pixel_Surrender (btw, weird naming chart).
- Init.sqf
_myFunctions = execVM "Surrender.sqf";
waitUntil {scriptDone _myFunctions}; // On attend qu'il en ait fini avec surrender
execVM "SurrendingScript.sqf";
QUOTE: darkiron_2012
|> @Tom on devais le laisser réfléchir ...
Je ne suis pas d'accord, il est préférable de donner la solution en expliquant le pourquoi du comment. A mon sens, c'est comme ça qu'on avance plus facilement.