[WIP] Pipboy destructible
- sagittarius22
- Moddeur émérite | Traducteur chevronné
- Messages : 2948
Re: [WIP] Pipboy destructible
Après plusieurs semaines sans y avoir touché, j'ai repris l'esp. Je suis coincé par la nature même du PipBoy, avec n'importe quel autre objet le mod serait fini depuis bien longtemps déjà
Si vous enlevez le PipBoy, et que vous le rééquipez - ce que fait ce mod - et bien vous n'avez plus « Le » PipBoy, mais PipBoy de PNJ. C'est à dire, avec un écran vert lumineux, avec aucune interaction possible, hormis « sortir et ranger » son bras, avec au passage le droit de se faire exploser les yeux si il est 3h du matin et que vous jouez dans le noir.
Pour palier à ce problème, la commande ResetPipBoyManager est nécessaire. Son but est refaire le lien entre le mesh du PipBoy, et les menus, et de rendre le PipBoy interactif.
Initialement, je l'avais mise à la suite de chaque changement :
Le problème... c'est que ça ne marche que dans 75% des cas, le PipBoy est bien remplacé par sa nouvelle version, mais n'est pas réinitialisé. Je crois d'ailleurs que c'est toujours le même stade qui pose problème (stade 2 ou 3, je vais revérifier), comme si cette ligne en particulier n'était pas lue.
Pour contourner ça, j'ai collé la commande entre un Begin Gamemode [ ] et un End indépendant, afin qu'elle soit exécutée en permanence. Ça marche, seulement quand on reset le PipBoy, on éteint aussi la lumière si elle est active... donc impossible d'éclairer un endroit plus d'une seconde. Ça doit couper la radio également sur le même principe.
Idem en Menumode, le sélecteur rotatif se remet en position haute. Du coup, le mod n'est pas « propre », et ça m'embête beaucoup.
Le code n'est pas complet, c'est juste la partie qui me semble défaillante. Avez-vous des suggestions ?
Si vous enlevez le PipBoy, et que vous le rééquipez - ce que fait ce mod - et bien vous n'avez plus « Le » PipBoy, mais PipBoy de PNJ. C'est à dire, avec un écran vert lumineux, avec aucune interaction possible, hormis « sortir et ranger » son bras, avec au passage le droit de se faire exploser les yeux si il est 3h du matin et que vous jouez dans le noir.
Pour palier à ce problème, la commande ResetPipBoyManager est nécessaire. Son but est refaire le lien entre le mesh du PipBoy, et les menus, et de rendre le PipBoy interactif.
Initialement, je l'avais mise à la suite de chaque changement :
► Afficher le texte
Pour contourner ça, j'ai collé la commande entre un Begin Gamemode [ ] et un End indépendant, afin qu'elle soit exécutée en permanence. Ça marche, seulement quand on reset le PipBoy, on éteint aussi la lumière si elle est active... donc impossible d'éclairer un endroit plus d'une seconde. Ça doit couper la radio également sur le même principe.
Idem en Menumode, le sélecteur rotatif se remet en position haute. Du coup, le mod n'est pas « propre », et ça m'embête beaucoup.
Le code n'est pas complet, c'est juste la partie qui me semble défaillante. Avez-vous des suggestions ?
- sagittarius22
- Moddeur émérite | Traducteur chevronné
- Messages : 2948
Re: [WIP] Pipboy destructible
Oui, j'ai une idée; place ce script sur chaque Pipboy:
Ainsi, à chaque fois que le pipboy sera ajouté au joueur, la commande sera utilisée; et seulement lorsque le PipBoy est ajouté, ce qui t'évitera d'appliquer un script en permanence.
Code : Tout sélectionner
scn PipBoyOnAddScript
Begin OnAdd player
ResetPipBoyManager
End
Re: [WIP] Pipboy destructible
Ah oui, ça me rappelle j'avais testé également une solution de ce type, avec un OnEquip - sans succès. Mais je n'avais pas dû mettre la référence player. On va voir ce que ça donne, merci
- sagittarius22
- Moddeur émérite | Traducteur chevronné
- Messages : 2948
Re: [WIP] Pipboy destructible
Ça ne fonctionne pas avec OnEquip si l'objet a été équipé via un script; en revanche ça devrait fonctionner pour le block OnAdd
Re: [WIP] Pipboy destructible
Même résultat, des fois ça marche, des fois non.
Je vais essayer un dernier truc, un doOnce du genre :
- à chaque changement de PipBoy, mettre à 1 une variable.
- dans un Begin Gamemode à part, quand cette variable est à un 1, reset
- puis remise à 0 et End.
Ça fonctionnait bien, c'est juste que je n'ai pas pensé tout de suite à intégrer un doonce pour éviter qu'il réactualise en permanence
M'enfin c'est agaçant que la commande ne soit prise que dans certains cas et pas dans d'autres alors que l'architecture est identique. Sur cette base, qu'est-ce qui dit que mes variables sont bien setées quand je le veux
Edit : même résultat, bien qu'apriori le bug ne soit concentré plus que sur un seul stade (le premier).
Je vais essayer un dernier truc, un doOnce du genre :
- à chaque changement de PipBoy, mettre à 1 une variable.
- dans un Begin Gamemode à part, quand cette variable est à un 1, reset
- puis remise à 0 et End.
Ça fonctionnait bien, c'est juste que je n'ai pas pensé tout de suite à intégrer un doonce pour éviter qu'il réactualise en permanence
M'enfin c'est agaçant que la commande ne soit prise que dans certains cas et pas dans d'autres alors que l'architecture est identique. Sur cette base, qu'est-ce qui dit que mes variables sont bien setées quand je le veux
Hors-sujet
Au fait, au delà de 1340 caractères dans un messagebox, le CTD est immédiat et sans appel
Edit : même résultat, bien qu'apriori le bug ne soit concentré plus que sur un seul stade (le premier).