Le script global principal doit contenir toutes les fonctions d'interaction (les scripts
Look At Character, Interact With Inventory et autres) et tous les éléments du GUI
(btnSave_Click, etc.).
Mais si vous avez des fonctions personnelles alors vous pouvez les placer dans des modules
séparés pour diviser votre code. Les modules ont l'avantage de pouvoir être facilement exportés
ou importés, si vous voulez partager du code avec d'autres gens, ou même simplement le réutiliser
dans plusieurs jeux.
Les modules sont accessibles à l'aide du "Module Manager" dans le menu Script. Chaque module a son propre script header, où vous placerez vos déclarations import pour le module afin que le reste de votre jeu puisse y accéder correctement.
L'odre desmodules est important. Un module peut utiliser une fonction d'un autre module uniquement si celui-ci se trouve avant lui dans la liste. Le script global et les scripts des pièces peuvent accéder à tous les modules, mais les modules ne peuvent pas accéder au script global ni aux scripts des pièces.
Par exemple, supposez que vous vouliez une fonction spécialle AdditionnerNombres dans un module. Vous devrez créer un nouveau module dans le Module Manager, puis insérer ceci dans le header du module :
import function AdditionnerNombres(int a, int b);Puis, dans le script du module vous mettriez :
function AdditionnerNombres(int a, int b) {
return a + b;
}
Comme vous le voyez, les modules fonctionnent sur le même principe que le script global
et le script header, mais vous permettent de diviser votre code en plusieurs morceaux
plus maniables.Fonctions spéciales
Les modules peuvent-ils utiliser des fonctions spéciales comme game_start et repeatedly_execute ? Eh bien, oui et non. Les modules peuvent uniquement contenir les fonctions suivantes, qui seront appelées juste avant celles du script global :
La commande ClaimEvent fonctionne pour on_key_press, on_mouse_click et on_event. L'utiliser empêche le reste des modules et le script global d'être appelés pour l'événement correspondant.