------
Voici donc la traduction de ce que l'on sait actuellement sur la partie <codearray> des scripts. Partie réellement utilisée par le moteur de script de X².
Niveau 0
-> Entrée 0 : Racine du <codearray>.
Type Table de taille 10.
Niveau 1
-> Entrée 1 : Nom du script
Type Chaine
-> Entrée 2 : Version du moteur de script
Type Entier
Valeur 25 pour X², on peut supposer que ce sera 30 pour X³
-> Entrée 3 : Description du script
Type Chaine
-> Entrée 4 : Version du script
Type Entier
Valeur Par défaut, 0
-> Entrée 5 : [inconnu] probablement un caractère séparateur.
Type Entier
Valeur 0
-> Entrée 6 : Declaration des variables utilisées par le script.
Type Tableau, dont la taille dépend du nombre de variables.
Chaque sous entrée de ce tableau est de type "string" (chaine) et correspond à une variable utilisée par le script. Si on utilise par exemple dans le script la variable I, on trouvera une entrée de valeur "I" et de type string.
-> Entrée 7 : Le script en lui même. Le premier niveau est un tableau dont la taille correspond au nombre de lignes utiles du script. Dans ce tableau chaque commande est elle même définie par un sous tableau dont la taille dépend du nombre de paramêtres pour la commande en question.
Chaque sous-tableau se compose ainsi :
- La première valeur correspond à la commande elle même. C'est un entier et sa valeur est récupérée dans le fichier de langue du jeu. (exemple pour un INC (incrémente) c'est 142).
- Les valeurs suivantes sont les paramêtres passés à la commande. C'est aussi un entier dont la valeur correspond à la sous entrée correspondante dans la liste des variables (voir l'entrée 6). La première variable declarée étant la numero 0.
-> Entrée 8 : Liste des parametres passés au script. Si aucun c'est un simple entier de valeur 0. Sinon c'est un tableau dont la taille correspond au nombre de paramêtres. Les sous entrées de ce tableau sont alors présentées ainsi :
- Un entier pour représenter le type du parametre (ex : var/station), dont le numero est déterminé depuis le fichier de langue correspondant.
- Une chaine contenant la description du parametre.
Le nom de la variable sera celui se trouvant au même niveau dans la declaration des variables (voir entrée 6)
-> Entrée 9 : Commandes "décoratives" comme les commentaires, les "end" etc.. Si vide, sa valeur c'est un simple entier de valeur 0. Sinon c'est un tableau de la taille du nombre de commandes de ce type.
[il me manque quelques détails à ce sujet pour une explication détaillée]
-> Entrée 10 : C'est la description qui sera utilisée si ce script est utilisée sur un navire. Elle peut etre de type String (avec comme contenu la description elle même) ou de type Entier (avec comme contenu la référence dans un fichier langue). Si ce script n'est pas destiné à être utilisé sur un navire c'est un entier de valeur 0.
Voilà pour l'instant. C'est surement excessivement indigeste pour la plupart d'entre vous mais je rajouterai des exemples pour eclairer votre lanterne quand j'aurais un peu plus de temps libre.
------
Sinon en réponse à Redeclipse dans un autre topic qui commençait à devenir pas mal hors sujet et dont la réponse se trouvera beaucoup mieux ici :
Oki c'est bien ce que je pensais, donc CQFD un bloc note peut pas remplacer un SE, à la limite comme script viewer ça passouille.RedEclipse wrote:Je voulais dire qu'en modifiant un script tapé sur le script editor (on va se la jouer vieux routard et taper "se", hein) par un bloc-note, le vieux titre du script aparaissait tjrs la liste de script du se, mais pas le nouveau texte. Il m'a fallu copier le script (avec c je crois) et le renommer pour tomber sur le bon texte. Du coup,dans si d'autres script appelait celui-la, je l'aurais eu dans le baba.
Yep, <codearray>, lu par l'interpréteur de script, chargé et utilisé par X². Et <scriptarray>, version humainement lisible, probablement utilisée pour afficher les lignes plus rapidement dans le SE sans que X² ai a tripatouiller le fichier de langue à chaque chargement dans le SE.Sinon, pour moi la vision du code arrayque je me fais est qu'il bien utilisé à l'appel de script.
Yep, l'initialisation de toutes les variables du script est faite à ce que j'en ai lu dans la partie 6 du codearray. Une fois ces variables chargées en mémoire par X², il passe à la 7 qui contient les commandes elles même avec les réferences aux variables declarées dans la partie 6.Je ne connais pas les commandes exactes, mais si tu tapes un truc du style $toto = appel du script machin, je pense que l'initialisation du type de $toto est faite avant l'appel du script. C'est plus rapide si c'est pas dynamique. (il faut analyser tout les return sinon et c'est un truc qui peut être fait avant l'execution d'un script, tu comprend ce que je veux dire ?)
Vi vi, t'as du mal me lire, j'ai dit que je doutais de l'utilité du <scriptarray>. Et qu'en fait on pourrait y ecrire joyeusement n'importe quoi sans que ça n'influence réellement le script. Enfin supposition, je n'ai pas testé.De plus, je doute que le code array soit juste là pour faire joli, avec ses résumés de variable d'entrée. Pour moi il est lu et utilisé à l'appel.
Pour être honnète ça m'arrangerait follement de discuter de l'éditeur de script en priorité dans le forum anglais. D'une part parce qu'on y retrouve les gens (de toutes les langues) qui s'y connaissent le mieux dans ce domaine (doubleshadow,moggy2, moonraven, et j'en passe) et d'autre part parce qu'on y a déjà un topic dédié au sujet[edit] au fait, ca ne me dérange pas de travailler en anglais (bon... en allemand, chui une taupe mais en anglais ca va)
Voilou voilou.