Hello La table est presque finie j'ai remarqué 2 soucis: -si l'on perd la dernière ball avec un flipper encore activé , son contacteur et son sound "buzz" reste actif . -les crédits de la table ne restent pas en mémoire dans la table. Sinon pour moi le reste semble OK , j'ai juste isolé en plus un son à la ligne 256 car celui ci restait en permanence actif pendant le jeu (c'est horrible)
sub Motor_Timer 'If GameStart=1 then playsound "motor"
End Sub Voici le lien pour les nouveaux fichiers de la table:https://drive.google.com/drive/folders/1n1jy8jo7H9rncsnvSQk6CRFi7YvFu9R_?usp=sharing
Dernière édition par foxyt le Dim 30 Jan 2022 - 15:02, édité 2 fois
foxyt
Messages : 191 Département : essonnes
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mar 11 Jan 2022 - 16:42
Help
leeoneil
Messages : 1715 Département : 63
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mar 11 Jan 2022 - 16:52
Tu ne peux pas partager ton vbs ?
Je ne sais pas d'ailleurs si tu travailles comme ça, mais c'est beaucoup plus facile. Au cas où je rapelle ce que nous avais montré Arngrim, tu gardes le fichier vpx, dans le même dossier tu as un fichier .vbs (ton script) du nom de la table, et quand tu lances VPX il utilise le vbs. ça permet de faire les modifications de script sans toucher au fichier de la table. (bien entendu une fois terminé il faut fusionner les 2, et impossible de ne pas passer par le .vpx quand on ajoute des trigger par exemple).
Quand on ne modifie que le script, on peut donner tout simplement le fichier vbs à l'auteur de la table, beaucoup plus facile pour les mises à jour !
Désolé si tu fais déjà comme ça, l'info pourra servir à d'autres !
foxyt
Messages : 191 Département : essonnes
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mar 11 Jan 2022 - 17:36
Je ne trouve pas le fichier VBS de cette table ,peux tu me guider car rien vu dans "c>visual pinball>script"
leeoneil
Messages : 1715 Département : 63
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mar 11 Jan 2022 - 17:42
Ah j'ai bien fait de te poser la question !
Pour bosser "plus proprement", c'est à toi de créer ce fichier .vbs (et pas dans le dossier script) Tu ouvre la table avec vpx, tu copie le script intégralement et tu colle tout ça dans un fichier (par exemple avec le bloc note). Le fichier doit s'apeller nom_exact_de_la_table.vbs
Ce fichier tu l'enregistre dans le dossier "tables" de vpx, avec le reste (le fichier table et le fichier b2s, ç fait donc 3 fichiers avec le même nom). Comme ça, tu bosses facilement sur le vbs sans avoir à ouvrir vpx.
Quand tu lances vpx et ta table, il va utiliser ce fichier en priorité. Si tu veux vérifier si ça fonctionne, tu ouvre le script (dans VPX) et en haut de la fenêtre tu as un message qui t'indique où il choppe la source.
edit : attention si tu enregistres la table sur VPX, il va te proposer d'enregistrer le script contenu dans ton VBS sur le script du fichier VPX ! Moi je n'enregistre le tout que quand mon script est terminé !
edit 2 : gros avantage, tu peux bosser sur ton fichier vbs avec un éditeur un peu plus souple que le bloc note ou l'éditeur de VPX. Arngrim m'a conseillé ça et ça fonctionne super bien : https://code.visualstudio.com/
zedrummer aime ce message
foxyt
Messages : 191 Département : essonnes
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mar 11 Jan 2022 - 19:24
J'ai mis le fichier VBS dans mon lien Google Edit: Pour le logiciel , c'est une tuerie
actarus Modérateur
Messages : 1599 Département : 06
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mer 12 Jan 2022 - 9:35
Bonjour, il y a Notepad++ ou Atom qui sont vraiment bien aussi pour l'édition, mais bon, chacun ses préférences. J'espère un jour avoir le temps de m'y coller aussi histoire de vous aider un peu dans cette montagne de taf, mais c'est pas gagné
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mer 12 Jan 2022 - 14:50
Hello ! Donc avec le script j'ai regardé très rapidement le DOF.
Attention il n'y a pas de DOFOff sur les contacteurs de flipper quand la table tilt (ou alors je n'ai pas trouvé). ça veut dire que si tu tilte avec un flipper en position haute, le contacteur reste enclenché... Pas bon !
Arngrim colle simplement un DOF 101, DOFOff DOF 102, DOFOff
Je ne sais pas où le placer par contre. Arngrim va nous aiguiller au mieux.
On pourrais peut-être tout simplement ajouter une routine. Il y a la dim "tilt" qui est utilisé. Du genre :
Code:
Sub DOFTilt if tilt > 0 Then DOF 101, DOFOff DOF 102, DOFOff End sub
Attention j'écris probablement une grosse connerie, je réfléchis "à écriture haute".
Dernière édition par leeoneil le Mer 12 Jan 2022 - 15:26, édité 1 fois
foxyt
Messages : 191 Département : essonnes
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mer 12 Jan 2022 - 15:17
C'est là où je coince ,je ne sais pas où le mettre ainsi que la ligne qui va bien pour garder en mémoire les crédits lorsque l'on ferme la table mais ça c'est moins gênant
leeoneil
Messages : 1715 Département : 63
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mer 12 Jan 2022 - 15:20
Ah pardon je n'avais pas relu les infos de départ ! Donc faudrait réussir à caser tout ça....
Au pire ça peut se mettre dans le Sub Drain_Hit() mais faut attendre que le bille retombe complètement, ça peut être long si ça tilte quand elle est en haut...
Ou dans la subroutine Sub TiltTimer_Timer ? Non ?
actarus Modérateur
Messages : 1599 Département : 06
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mer 12 Jan 2022 - 20:14
EDIT : Pour le flipper figé, en fin de partie je pense qu'il y a un bug : Lignes 220 et suivantes
Code:
Sub Table1_KeyUp(ByVal keycode) If keycode = PlungerKey Then Plunger.Fire PlaySound "Plunger" End If If keycode = LeftFlipperKey Then If Tilt=0 then If GameInProgress=1 then LeftFlipper.RotateToStart PlaySound SoundFXDOF("FlipperDown",101,DOFOff,DOFContactors) stopsound"buzzl"
On teste GameInProgress pour abaisser le flipper (gauche ou droit) quand FlipperKeyUp est appelé (bouton relaché). Mais en fin de partie , dans DrainHIt
Code:
Sub Drain_Hit() ... ... BallstoPlay=BallstoPlay-1 If BallstoPlay=0 then EndofGame()
On appelle EndOfGame() qui set GameInProgress à 0
Code:
Sub EndofGame() Dim numer0 credittext.text=credits If B2SOn then Controller.B2SSetMatch Credits+1 GameinProgress=0 ...
A partir de là, le buttonUp devient inopérant sur le flipper. C'est quand même chelou car il y a les lignes pour ramener les flippers après le EndOfGame() Il faudrait peut être inverser dans DrainHit
Code:
Sub Drain_Hit()
BallstoPlay=BallstoPlay-1 If BallstoPlay=0 then `EndofGame() GameOver.SetValue 1 LeftFlipper.RotateToStart RightFlipper.RotateToStart motor.enabled=False EndOfGame()
Ou alors (solution 2) il faudrait ramener le flipper en position basse / couper son buzz dans EndofGame. La ou ça se complique c'est qu'il faut un check de la position avant de couper histoire d'éviter un double bruit. La solution simple, pas forcément la meilleure, serait de tracker l'état des flips (peut être il y a un méthode associée à la classe flipper mais je ne connais rien à vpx, faudrait lire la doc...). Du genre (dans KeyDown) Lignes 156 et suivantes
Code:
If keycode = LeftFlipperKey Then If Tilt=0 then If GameInProgress=1 then LeftFlipper.RotateToEnd PlaySound SoundFXDOF("FlipperUp",101,DOFOn,DOFContactors) playsound "buzzl",-1 LeftFlipperUp = true End If End If End If If keycode = RightFlipperKey Then If Tilt=0 then If GameinProgress=1 then RightFlipper.RotateToEnd PlaySound SoundFXDOF("FlipperUp",102,DOFOn,DOFContactors) playsound"buzz",-1 RightFlipperUp=true End If End If End If
Idem dans KeyUp
Code:
RightFlipperUp = false ... LeftFlipperUp = false
Et prendre les mesures qui s'imposent dans EndOfGame
Code:
Sub EndofGame() Dim numer0 credittext.text=credits If B2SOn then Controller.B2SSetMatch Credits+1 GameinProgress=0 If RightFlipperUp Then RightFlippeRotateToStart + DOF sound etc...
A creuser la gestion du cas du tilt.
A noter que ce n'est plus du pur DOFfage mais de la correction d'un bug fonctionnel de la table
Je confirme que le bruit du moteur est insupportable.
Sujet: Re: [DOF TERMINÉ] 4 roses (Williams 1962 ) Mer 12 Jan 2022 - 22:29
foxyt a écrit:
C'est là où je coince ,je ne sais pas où le mettre ainsi que la ligne qui va bien pour garder en mémoire les crédits lorsque l'on ferme la table mais ça c'est moins gênant
Il me semble normal que tu ne retrouves pas tes crédits.
Dans le script, ligne 1466 :
Code:
savevalue "roses4", "credit", Credits
Dans le script, ligne 1478 :
Code:
temp = LoadValue("4roses4", "credit")
La valeur n'est donc pas enregistrée au même endroit qu'elle est lue.
En mettant "4roses4" dans le savevalue (comme pour toutes les autres données), ça devrait être ok. Un autre bug du script