Hello !
Comme prévu on va essayer de faire un sujet pour les tables dofées.
L'intérêt est surtout de poser des infos de façon publique, même si ça risque d'être redondant, pour partager toutes les connaissances que nous a transmis Arngrim.
Je vais éditer le sujet de nombreuse fois, je ne peux pas mettre toutes les infos d'un seul coup !
Attention ceci n'est pas un tuto complet sur le DOF, loin de là !
Plutôt que d'écrire un grand manuel du DOF, on va essayer de poser les idées et les explications à chaque table.
Bien entendu ça va faire sourire Arngrim vu qu'il va y avoir du tâtonnement et des boulettes, mais c'est comme ça qu'on apprend !
Alors donc je me suis lancé dans le DOF de la table Speakeasy de JPSalas, que l'on trouve ici :
https://www.vpforums.org/index.php?app=downloads&showfile=14793
Je l'ai contacté il est ok bien entendu !
Ce qui est en place et qui fonctionne :
- les 2 flippers - sur contacteurs v10 et v8
- les 2 slingshot sur contacteurs v10 et v8
- les 3 bumpers sur contacteurs v10 et v8
- les 5 eject-holes (ou kickers) sur contacteurs V10 et V8 (hourra !)
- le knocker + strobe
- la backboard 5 et 3 LEDS
- l'undercab complex
Ce qui ne fonctionne pas :
- l'undercab et le bouton "play"-> je voudrais qu'ils s'allument lorsque l'on a des crédits, et qu'ils s'éteignent lorsque les crédits sont à zéro ET que la partie est terminée. Je n'ai pas réussi malgré l'astuce D'arngrim. Je détaillerais.
CONFIG-TOOLAvant tout il va falloir nommer dans le config tool les différents éléments pour pouvoir les appeller ensuite avec le script.
Il n'y a pas de règles, mais Arngrim nous a conseillé de commencer par tout ce qui est mécanique, avec les flipper que l'on nomme 101 et 102.
Comme il s'agit d'une table électro-méca, la dénomination dans le configtool sera précédée de la lettre E.
On a donc par exemple E101 pour le flipper gauche, puis E102 flipper droit, E103 slinghot gauche, E104 Slingshot droit, etc...
Les noms peuvent être donné au fur et à mesure que l'on avance dans le script.
Pour ma part, j'ai choisi la numérotation suivante (sauf que j'ai finit par m'embrouiller) :
E1.. -> contacteurs
E2.. -> lumières
E3.. -> knocker et gros toys
SCRIPT DE LA TABLEFlippers : - Citation :
- Sub SolLFlipper(Enabled)
If Enabled Then
PlaySoundAt SoundFXDOF("fx_flipperup",101,DOFOn, DOFFlippers), LeftFlipper:LeftFlipper.EOSTorque = 0.8:LeftFlipper.RotateToEnd
Else
PlaySoundAt SoundFXDOF("fx_flipperdown", 101, DOFOff,DOFFlippers), LeftFlipper:LeftFlipper.EOSTorque = 0.25:LeftFlipper.RotateToStart
End If
End Sub
JPSalas appelle un son pour le flipper (fx_flipperup). On lance en même temps une commande DOFOn, DOFFlippers qui active la ligne DOF 101.
Sur le configtool, j'ai :
- Citation :
- Flipper Left : E101
Le contacteur gauche est donc activé : CLONC !
On remet le contacteur en postion d'origine en dessous, lorsque le son "fx_flipperdown" est joué, avec la commande DOFOff, DOFFlippers : clonc ! (oui c'est un plus petit bruit)
Important, on utilise la commande DOfFlippers.
Slingshots : - Citation :
- Sub LeftSlingShot_Slingshot
If Tilted Then Exit Sub
PlaySoundAt SoundFXDOF("fx_slingshot",109,DOFPulse,DOFcontactors), Lemk
DOF 111, DOFPulse
DOF 200, DOFPulse
...
Même idée, on va chercher le son que JPSalas a mis quand les slingshot s'activent.
Ici j'appelle 3 fonctions !
La première très similaire aux flippers, sauf qu'on a DOFPulse, DOFContactors.
Pas de "ON" sinon le contacteur reste activé et finira par cramer, ce sont donc les fonctions DOFPulse
DOFContactors qui sont utilisées !
DOF 111 et 200, tous les deux sur pulse, appellent des lumières !
La première très standard, est une lumière de la LED backboard.
Sur le config tool, on a :
- Citation :
- 5 Flasher Outside Left : E111 Dark_turquoise
Le flasher LED de gauche va s'allumer sur la couleur sélectionnée.
Pour la deuxième.... je voulais le voir sur une table depuis un moment et j'ai enfin pu le faire !
C'est la gestion du LED undercab.
Dans le config tool j'ai :
- Citation :
- RGB Undercab Complex : E200 White
A chaque fois que j'appelle le DOF 200, l'undercab passe en blanc (par défaut il est en Dark-turquoise).
En gros quand ça tape un truc sur la table (slinghot, bumper), on a une LED bien spécifique qui s'allume (backboard) + l'undercab qui change de couleur.
J'ai fait beaucoup de tests, mais les changements de couleurs trop prononcés rendent épileptiques.
Et nous sommes ici sur une table électro-méca, donc le jeu est censé être assez calme.
L'effet visuel + le son renforce bien l'immersion sur la table, ceux qui ont des undercab comprendront (attention ce n'est pas un flash dans la gueule, c'est discret !)
Bumpersça va être la même idée que pour les slingshots !
- Citation :
- Sub Bumper001_Hit
If Tilted Then Exit Sub
PlaySoundAt SoundFXDOF ("fx_Bumper2",103,DOFPulse,DOFContactors), bumper001
DOF 106, DOFPulse
DOF 200, DOFPulse
AddScore 100 + 900 * LightBumper001.State
End Sub
On cherche la ligne qui lance le son du bumper, et on ajoute la commande DOF
Ici même idée, j'allume une LED de la backboard (en face du bumper tant qu'à faire), et je l'allume de la couleur du bumper + je fais varier le LED undercab.
Côté configtool on a ça:
- Citation :
- 5 Flasher Left : E106 Red
Eject HolesAh là on a une subtilité, ça vaut le coup de s'arrêter dessus !
JPSalas utilise une commande sur une seule ligne, toute imbriquée, et Arngrim nous a trouvé la syntaxe nécessaire pour que le DOF fonctionne !
Salas appelle ça des "kickers" mais bon, on va pas lui en vouloir, il est Espagnol !
Sur cette table j'en ai 5, dont un "caché", je m'en suis aperçu en faisant le DOF !
Sur les tables électro-mécanique on va en bouffer, donc merci Arngrim d'avoir trouvé la soluce pour ce problème.
Voici une commande complète sur l'un d'entre eux :
- Citation :
- Sub kicker1_Hit 'advance right reel
PlaySoundAt "fx_kicker_enter", kicker1
If Tilted Then kicker1.kick 170, 18:Exit Sub
AdvanceRightReel
AddBonus 1
vpmtimer.addtimer 900, "AddScore 1000:DOF 221, DOFPulse:DOF 200, DOFPulse:DOF 114, DOFPulse:PlaySoundAt SoundFX(""fx_kicker"",DOFContactors), kicker1: kicker1.kick 170, 20 '"
End Sub
Au début du script, Salas appelle un son d'entrée, on pourrait apeller un DOF j'ai décidé de ne rien mettre.
En sortie (en gras) Salas envoie un temps supplémentaire + envoi un score suplémentaire + joue un son "fx_kicker". On a placé le code DOF ici. Notez une fois de plus que je fais 3 appels au DOF : le 1er DOF221, DOFPulse c'est une lumière LED de la backboard, puis on a mon fameux "flash undercab" sur le 200, et enfin j'ai fait claquer un contacteur (E114).
TriggersEt ça c'est quoi ?
Arngrim nous a montré comment placer un trigger invisible sur la table pour déclencher un évènement DOF.
Ici j'ai écouté le maitre : mon trigger0004* est placé juste avant la sortie de la rampe de lancement.
Quand la bille passe dessus (commande "_hit") cela déclenche un Pulse sur mon DOF 230.
- Citation :
- ' DOF backboard lights entry
Sub Trigger004_Hit
DOF 230, DOFPulse
If Tilted Then Exit Sub
End Sub
Et mon E230 c'est quoi ?
C'est tout ça !
- Citation :
- 5 Flasher Outside Left - > E230 Dark_turquoise w600 f200
5 Flasher Left -> E230 Dark_turquoise w450 f200
5 Flasher Center -> E230 Dark_turquoise w300 f200
5 Flasher Right -> E230 Dark_turquoise w150 f200
5 Flasher Outside Right -> E230 Dark_turquoise f200
La backboard va allumer successivement les LED comme si elles "suivaient" la bille. Effet garanti !
On part de tout à droite, couleur + f200 : c'est un fade-in, fade-out qui dure 200 millisecondes.
Ensuite à droite, il y a d'abord w150 : il y aura 150 ms de délais avant que la LEd s'allume. En suivant l'idée jusqu'à la LED de gauche on a cet effet de LED qui s'allument les unes derrières les autres.
Led du centre w300 f200 : retard de 300 millisecondes et ensuite fade-in fade-out de 200ms.. etc...
* j'ai essayé de changer son nom, ça ne fonctionnait pas, peut-être à cause du tiret. Donc à commenter dans le script si on veut que quelqu'un qui lise la table comprenne ce que c'est que ce machin posé n'importe où.
Knocker + StrobeLe grand chef a dit que c'était pas mal d'associer un coup de knocker à un grand flash dans la gueule !
Alors j'ai fait comme le grand chef a dit et c'est vrai que l'effet est nickel.
Sur cette table, il y a beaucoup de possibilités pour déclencher le knocker !
Il y a un SPECIAL, on peut gagner des parties au score, et pas courant, gagner des parties lorsque l'on fait tourner la machine à sous ! ça claque souvent !
Ici un exemple :
- Citation :
- If(Score(CurrentPlayer)MOD 1000) = Match Then
PlaySound SoundFXDOF ("fx_knocker",300,DOFPulse,DOFKnocker)
DOF 130, DOFPulse
C'est exactement la même idée que pour les bumpers, on cherche quand JPSalas envoi le son du knocker et on colle nos effets DOF !
Notez qu'on utilise la commande "DOFKnocker".. Pas con !
Le DOF 130 ce sont les strobes !
Côté Config-tool il y a ça :
- Citation :
- Strobe : E130 300
A chaque fois qu'on appelle le DOF 130, le strobe s'enclenche pendant 300 millisecondes.
DrainQuand on perd la bille j'ai mis un petit effet sur la backboard, sur toutes les LED.
- Citation :
- PlaySoundAt "fx_drain", Drain
DOF 231, DOFPulse
J'ai cherché le son de la bille qui tombe et j'ai associé un E231 Dark_turquoise f200 (donc fade in, fade out de 200 millisecondes) sur chaque LED !
Roll Over BonusIl y a 2 Roll-Over importants sur cette table.
JPSalas utilise des switch pour gérer ça (sw001 et sw002)
Le premier est en haut et permet de choper le bonus, le deuxième est à gauche sur la table et désactive le méga bonus du bumper vert !
Comme ce sont 2 éléments importants je fais flasher toutes les LED de la backboard quand ça passe dessus.
Exemple avec le Roll-Over qui désactive le bumper.
- Citation :
- Sub sw002_Hit 'off green bumper
PlaySoundAt "fx_sensor", sw002
DOF 232, DOFPulse
...
Côté Config-Tool, en E232 j'ai ça sur chaque ligne de la backboard :
- Citation :
- E232 Dark_green f200
Un rapide fade-in fade-out sur toute la backboard, cela permet d'interpeller le regard.
J'ai fais pareil en Dark_turquoise pour celui du haut. Pour gagner du temps, j'appelle la même fonction 231 que le drain !
Bille en jeuPour un peu plus de peps, je fais claquer un contacteur quand la bille entre en jeu, on retrouve ça sur beaucoup de table :
J'ai cherché le son de la Ball release dans le script
- Citation :
- PlaySoundAt SoundFXDOF("fx_Ballrel", 110, DOFPulse, DOFContactors), BallRelease
Le E110 c'est le contacteur qui correspond au slingshot droit, je ne prend pas celui du flipper droit, c'est mal ! (beaucoup de pincab ont des contacteurs différents pour les flippers).
Bouton start + undercab - Citation :
- 'turn on GI lights
vpmtimer.addtimer 1500, "GiOn '"
DOF 131, DOFOn : DOF 132, DOFOn
Pour l'instant je suis bloqué, je les allume donc au démarrage de la table, j'ai ajouté ma ligne sous une condition de JPSalas.
131 c'est le bouton play, voici ce qui est écrit dans le config-tool :
- Citation :
- Start Button : E131 Blink fu500 fd600
Blink c'est un allumage intermittent permanent, la lumière clignote faiblement, associé à un Fade Up et Fade Down. Pour les valeurs j'ai suivi les conseils d'Arngrim sans en tester d'autres, c'est parfait !
Alors
@arngrim lui il met 1 heure pour faire tout ça.
Moi ça fait 2 jours que je suis dessus !
Beaucoup de talonnements et de tests, pour voir ce qui pouvait bien rendre ou pas (et donc faut jouer sur la table, ça prend du temps quand il faut réussir à viser un ##%% d'eject-hole !).
Je n'ai pas encore publié le DOF, j'aimerais bien qu'Arngrim me débloque sur l'histoire de l'allumage en fonction des crédits.
Donc pour l'instant pas possible de tester.
A suivre !