EnglishGermanFrenchRussianItalianSpanish
Log inRegister
 
[X3 Tutorial] Création de raccourcis clavier (07.03.06)
Post new topic Reply to topic
View previous topic :: View next topic
Author Message
Serial Kicked





Joined: 12 Aug 2005
Posts: 3493 on topic
Location: France
Thank you for registering your game
modified
PostPosted: Tue, 7. Mar 06, 11:15    Post subject: [X3 Tutorial] Création de raccourcis clavier (07.03.06) Reply with quote Print

======================================
X3 TUTORIAL: GESTION DES RACCOURCIS CLAVIER
======================================

[Anarkis Federation - X2, X3 Script and Modding Station]
======================================

Ce tutorial qui devrait être facile d'accés aux débutants a pour but de vous apprendre à créer de nouveaux raccourcis claviers claviers pour le joueur. Nous allons créer ici un nouveau raccourcis qui aura pour but de faire apparaitre par magie 20 e.cells (photopiles) dans la soute de votre navire.


Arrow Préambule

Ce tutorial va utiliser une variable globale, pour ceux qui savent déjà ce que sont les variables globales et locales vous pouvez passer ce paragraphe. Le moteur de script permet d'enregistrer dans le jeu de façon permanente des variables qui peuvent être récupérées par n'importe quel script du jeu et qui sont sauvegardées quand on sauve sa partie.

Les variables locales: Ce sont des variables que l'on peut associer à un objet particulier du jeu (vaisseau ou station). La syntaxe est la suivante:

Code:
$objet -> set local variable: name='ma.variable' value=$valeur

Sert à définir une variable locale appelée 'ma.variable' sur le vaisseau ou la station $objet, et on lui attribuera la valeur contenue dans $valeur. (ma.variable est une chaine de caractères, string)

Code:
$valeur = $objet -> get local variable: name='ma.variable'

Sert à récupérer dans $valeur la variable locale qui porte le nom 'ma.variable' stockée sur le vaisseau ou la station $objet. S'il n'y a aucune variable portant ce nom sur l'objet en question, la valeur de retour sera 'null'.

Les variables globales: Ce sont celles ci dont nous allons avoir besoin ici. Fonctionne comme les variables locales dans le principe, sauf qu'elles ne sont pas spécifiques à un objet particulier. La syntaxe est la suivante.

Code:
set global variable: name='ma.globale' value=$valeur

Assigne à la variable appelée 'ma.globale' la valeur contenu dans $valeur

Code:
$valeur = get global variable: name='ma.globale'

Récupère dans $valeur le contenu de la variable appelée 'ma.globale'. Si il n'y a pas de telle variable, la valeur de retour sera 'null'.


Arrow 1. Le script pour récupérer les photopiles

C'est un script excessivement simple qui tient en une seule ligne (comme beaucoup de cheats d'ailleurs). Donc, créez un nouveau script appelé 'tutorial.get.ecells'.

Code:
= [PLAYERSHIP] -> add '20' units of 'Energy Cells'

Ligne assez explicite je pense pour se passer d'explication approfondie. Smile


Arrow 2. Le script de setup

Le script de setup est lancé à chaque chargement de partie. C'est donc ici l'endroit ou nous allons créer notre raccourcis clavier. Ce script va devoir déterminé si c'est la première fois qu'on lance une partie avec ce script, et si c'est le cas, il devra créer le raccourcis clavier pour le joueur.

Créez un nouveau script appelé 'setup.tutorial.shortcuts'. Son contenu devra ressembler à ceci :
Code:
$hotkey.id = get global variable: name='tutorial.hotkey'
if $hotkey.id == null
  $description = 'Faire le plein d'énergie'
  $hotkey.id =  register hotkey $description to call script 'tutorial.get.ecells'
  set global variable: name='tutorial.hotkey' value=$hotkey.id
end


Voici l'explication de ce code

Code:
$hotkey.id = get global variable: name='tutorial.hotkey'

On va vérifier s'il existe une variable globale 'tutorial.hotkey' et stock sa valeur dans $hotkey.id.

Code:
if $hotkey.id == null

On vérifie ce que vaut $hotkey.id, s'il n'y a pas de variable globale (que sa valeur est 'null') on exécute le code qui suit ensuite jusqu'au 'end'.

Code:
 $hotkey.id =  register hotkey $description to call script 'tutorial.get.ecells'

C'est ici que l'on va associer le script que l'on a créé tout à l'heure à une nouvelle entrée dans le menu de X3 qui sert à configurer les touches. Le texte correspondant à cette entrée sera celui donné dans la variable $description. Cette fonction renvoie une valeur très importante à sauvegarder. C'est le numéro unique du raccourcis créé, et cette valeur est importante car vous en avez besoin quand vous voulez supprimer le raccourcis. On le met ici dans $hotkey.id.

Code:
set global variable: name='tutorial.hotkey' value=$hotkey.id

On va donc stocker la valeur de $hotkey.id dans la variable globale 'tutorial.hotkey' afin d'une part la stocker dans un endroit facile à récupérer et d'autre part de faire le test "if" du début du script.


Arrow 3. Le script de désinstallation

Maintenant faut quand même prévoir que l'utilisateur risque d'en avoir marre de voir 40 hotkeys de scripts qu'il a supprimé depuis longtemps dans son menu de reglage des controles. Pour celà on va lui fournir un joli script qu'il devra lancer manuellement après avoir supprimé les autres fichiers utilisés par notre cheat. Appelons le 'tutorial.uninstall.hotkey'. Son contenu sera le suivant

Code:
$hotkey.id = get global variable: name='tutorial.hotkey'
if $hotkey.id != null
  unregister hotkey $hotkey.id
  set global variable: name='tutorial.hotkey' value=null
end


On récupère le numéro de la hotkey que l'on a stocké dans notre variable globale 'tutorial.hotkey', on vérifie qu'elle n'est pas nulle. Puis on supprime le raccourcis et enfin supprime la variable globale en la mettant à 'null' vu qu'elle ne sert plus à rien.


Arrow Quelques conseils

Rien de bien spécial à rajouter ici, sinon de nommer vos variables globales et locales d'une façon clairement identifiable et qui ne risque pas d'être utilisées par un autre script. Un trés mauvais nom de variable serait 'hotkey' ou 'check'. Un bon nom de variable serait quelque chose qui donne des indications basiques et qui sera unique comme :
'pirate.guild.active' ou 'acc.carrier.tactics'.

Les raccourcis créés apparaitront dans la partie "Extension" de l'onglet "Interface" du menu de reglage des touches de clavier. Il ne semble pas possible à l'heure actuelle de définir une touche par défaut pour ceux ci.


________

Voilou, rien de bien compliqué ici, mais si vous avez une question relative à ce tutorial, be vous génez pas pour la poser dans ce topic Smile

________

Edit : Correction de quelques oublis d'étourderie.


_________________
X3:TC/AP Pirate Guild 3 - Yaki Armada 2 - Anarkis Defense System

Anarkis Gaming HQ
Independent Game Development
X3 Scripting and Modding Station


Last edited by Serial Kicked on Tue, 7. Mar 06, 12:59; edited 2 times in total
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
cirth





Joined: 25 Feb 2006
Posts: 93 on topic

Thank you for registering your game
PostPosted: Tue, 7. Mar 06, 12:42    Post subject: Reply with quote Print

Quote:
= [PLAYERSHIP] -> add '20' units of 'Energy Cells'

Commençons par une question bête Rolling Eyes Dans l'entente du tutorial tu dis qu'on rajoute seulement 10 photopiles hors là dans cette ligne 20 apparait, j'en déduis que soit c'est 20 qu'il fallait lire dans l'entete (ou 10 dans la ligne) soit le contenu de la fonction add doit etre doublé pour en obtenir le nombre souhaité (j'espere que c'est pas ça Surprised )

Quote:
'Faire le plein d'énergie'

Donc ca c'est la ligne qui suite à l'installation du script va apparaitre dans le menu de configuration de touches si j'ai bien suivit, mais dans quel onglet ? et par défaut le raccourcit clavier est vide ?

Back to top
View user's profile Send private message
Serial Kicked





Joined: 12 Aug 2005
Posts: 3493 on topic
Location: France
Thank you for registering your game
PostPosted: Tue, 7. Mar 06, 12:44    Post subject: Reply with quote Print

Oups pour le 20 et 10, oui c'est la fatigue, je vais corriger ça et mettre tout à 20 Razz

Quote:
Donc ca c'est la ligne qui suite à l'installation du script va apparaitre dans le menu de configuration de touches si j'ai bien suivit, mais dans quel onglet ? et par défaut le raccourcit clavier est vide ?


Oui. Ca l'ajoute en bas de l'onglet appelé "Interface", dans la partie "Extensions". Du moins dans la VO. Et non hélas, il n'est pas possible d'assigner une touche par défaut, c'est à l'utilisateur de la donner.

Voilou Smile


_________________
X3:TC/AP Pirate Guild 3 - Yaki Armada 2 - Anarkis Defense System

Anarkis Gaming HQ
Independent Game Development
X3 Scripting and Modding Station
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
cirth





Joined: 25 Feb 2006
Posts: 93 on topic

Thank you for registering your game
PostPosted: Tue, 7. Mar 06, 12:53    Post subject: Reply with quote Print

ok Smile donc la commande
Code:
register hotkey
correspond à l'assignation d'une nouvelle touche de raccourcit dans l'interface Smile humm je trouve pas la liste des commandes x3 disponibles (pourtant je suis sûr de l'avoir vu quelque part mais je retrouve plus le lien ^^)

Encore une fois un très bon tuto de ta part Smile

Back to top
View user's profile Send private message
Serial Kicked





Joined: 12 Aug 2005
Posts: 3493 on topic
Location: France
Thank you for registering your game
PostPosted: Tue, 7. Mar 06, 12:57    Post subject: Reply with quote Print

Quote:
correspond à l'assignation d'une nouvelle touche de raccourcit dans l'interface


Tout à fait Smile

Quote:
humm je trouve pas la liste des commandes x3 disponibles (pourtant je suis sûr de l'avoir vu quelque part mais je retrouve plus le lien ^^)


Il y a un .pdf, le MSCI Handbook dans les downloads du site qui fait ça , par contre je ne sais pas trop s'il a été mis à jour pour X3 je dois avouer.

Quote:
Encore une fois un très bon tuto de ta part


Merci beaucoup Very Happy


_________________
X3:TC/AP Pirate Guild 3 - Yaki Armada 2 - Anarkis Defense System

Anarkis Gaming HQ
Independent Game Development
X3 Scripting and Modding Station
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
Whismerhill





Joined: 20 Oct 2004
Posts: 531 on topic
Location: France
Thank you for registering your game
PostPosted: Wed, 15. Mar 06, 11:52    Post subject: Reply with quote Print

non c'est toujours le MCSI de X2 et non X3
donc pas les nouvelles commandes
mais tout le reste est pareil apparemment

edit: merci pour le tuto
je vais pouvoir vérifier que j'ai pas fais de bêtises Wink
(j'avais copier la structure sur un script anglais jusqu'à présent )


_________________
[XTM Script]Flying-Ware Collect Software MK1 (The piece of software you always wanted but never knew!)
Or Click Here for egosoft thread
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic Reply to topic
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum
Control Panel
Login Data
The time now is Fri, 17. Aug 18, 19:14

All times are GMT + 2 Hours

[ Disclaimer / Impressum ] | [ Privacy Policy / Datenschutz ]

Board Security

Copyright © EGOSOFT 1989-2018
Powered by phpBB © 2001, 2005 phpBB Group
Template created by Avatar & BurnIt!
Debug: page generation = 0.13981 seconds, sql queries = 20