Note : Ce tutoriel fonctionne à la fois avec 2k, 2K3, XP et VX. Mais il vous sera surement plus utile avec 2K et 2k3 qui utilisent plus de programmation évènementielle.
Notebis : Ce tutoriel nécessite un minimum de connaissance en programmation évènementielle ou vous risquez de ne pas le comprendre.
Imaginons que vous fassiez un rpg pouvant accepter jusqu'à six héros dans l'équipe. Pour cela, vous êtes obligé de passer outre le système d'équipe de base puisque limité à 4 héros. Vous décidez alors d'utiliser un système de variable utilisant l'identifiant du héros de cette manière :
- Code:
-
Vhéros1 = Idhéros
Vhéros2 = Idhéros
Vhéros3 = Idhéros
Vhéros4 = Idhéros
Vhéros5 = Idhéros
Vhéros6 = Idhéros
Note : Idhéros correspond à chaque fois à l'identifiant d'un héros différent.Maintenant, si vous voulez vérifier la présence d'un héros, vous devrez faire un code ressemblant à peu près à ceci :
- Code:
-
Si Vhéros1 = IdX (pour un Id donné)
Faire action1 (ce que vous faîtes s'il est là)
Sinon
Si Vhéros2 = IdX
Faire action1
Sinon
Si Vhéros3 = IdX
Faire action1
Sinon
Si Vhéros4 = IdX
Faire action1
Sinon
Si Vhéros5 = IdX
Faire action1
Sinon
Si Vhéros6 = IdX
Faire action1
Sinon
Faire action2 (ce que vous faîtes s'il n'est pas là)
Vous avez là un code de 19 lignes. Si vous le faîtes pour 3 héros et en admettant que le code Faire action1 et faire action2 prenne 5 ligne, ce qui est peu, ce la vous fait donc un total de 153 lignes. Et si dans Faire action1, vous vérifiez la présence d'un autre héros, c'est de l'ordre de900 à 1000 lignes, voire plus.
Le problème de ce code de vérification est qu'il n'est pas universel et doit être géré au cas par cas. Maintenant, je vais vous montrer comment simplifier efficacement ce code en utilisant le vérification par interrupteur. Je m'explique. Dans ce cas là, nous devons vérifier si un héros est dans une situation parmi les deux possible, c'est-à-dire :
- Soit il est présent.
- Soit il est absent.
Il est donc intéressant d'utiliser un interrupteur en faisant l'association désactivé/absent et activé/présent.
Maintenant, passons au code :
Tout d'abord, "créez" une variable, un interrupteur et un event commun activé par appel que vous nommez comme vous voulez. Ici, je les nommerai Vid, Intverif et Eventcom. L'event commun contiendra la partie principale du code. Mais avant, voici le code à placer pour vérifier :
- Code:
-
Vid =IdX (toujours pour un Id donné.)
Appeller un event commun : Eventcom
Si Intverif est activé
Faire action1
Sinon
Faire action2
Vous noterez que l'utilisation de la variable pour l'Id sert à la fois à garder la donnée pour Eventcom mais aussi à le rendre plus souple.
Voici ensuite le code à mettre dans Eventcom :
- Code:
-
Désactiver Intverif
Si Vhéros1 = Vid
Activer Intverif
Si Vhéros2 = Vid
Activer Intverif
Si Vhéros3 = Vid
Activer Intverif
Si Vhéros4 = Vid
Activer Intverif
Si Vhéros5 = Vid
Activer Intverif
Si Vhéros6 = Vid
Activer Intverif
Vous noterez que l'interrupteur doit être désactivé pour mettre le cas absent par défaut, c'est-à-dire qu'il est absent si aucune des condition qui suit ne marche c'est-à-dire s'il n'est pas présent.
Ce qui nous fait donc un total de 6 lignes de base, soit en reprenant les 3 vérifications et les 5 lignes pour Faire action1 et Faire action2 un total de 42 lignes, soit un 111 lignes économisées.
Et vous pouvez enregistrer le position du héros dans un variable Vplace en rajoutant 6 lignes de code pour obtenir :
- Code:
-
Désactiver Intverif
Si Vhéros1 = Vid
Activer Intverif
Vplace=1
Si Vhéros2 = Vid
Activer Intverif
Vplace=2
Si Vhéros3 = Vid
Activer Intverif
Vplace=3
Si Vhéros4 = Vid
Activer Intverif
Vplace=4
Si Vhéros5 = Vid
Activer Intverif
Vplace=5
Si Vhéros6 = Vid
Activer Intverif
Vplace=6
Et voilà, c'est fini. N'hésitez pas à poser des question.