[Résolu] Ajouter et retirer un cri quand on équipe ou retire un masque

Le langage des scripts.
Répondre
Avatar du membre
Miraak
Traducteur en herbe | Moddeur en herbe
Traducteur en herbe | Moddeur en herbe
Messages : 160

Ajouter et retirer un cri quand on équipe ou retire un masque

Message par Miraak »

Bonjour j'ai besoin d'aide pour créer un scrip
(je pense que celui ci devrait être facile à réaliser)
je voudrais que lorsqu'on s'équipe d'un objet ici du masque de miraak
ont obtient un cri et ses trois mots
et que lorsqu'on l'enlève le cri s'enlève aussi
Avatar du membre
Kesta
Maître de Forge
Maître de Forge
Messages : 1077

Re: besoin d'aide script

Message par Kesta »

Tu as les events OnObjectEquipped et OnObjectUnequipped, dans l'idéal à placer sur un Alias sur le joueur ou un active magic effect (en le rajoutant à la liste de l'enchantement de base du masque).

Pour ajouter un cri ça doit être AddSpell(akSpell), à moins qu'il n'y ai un AddShout qui existe. Pour les mots utilise .SetPlayerKnows sur chacun des 3 mots.
Faites un feu à un homme, il aura chaud un jour.
Mettez le feu à un homme, il aura chaud jusqu'à la fin de sa vie.

Terry Pratchett
Avatar du membre
Miraak
Traducteur en herbe | Moddeur en herbe
Traducteur en herbe | Moddeur en herbe
Messages : 160

Re: besoin d'aide script

Message par Miraak »

je connais les codes pour les cris c'est addshout et pour les mot je connaissais teachword
je vais essayer mais c'est la première fois que je modifie les scripts et malheureusement je n'ai pas trouver de tuto sur la confrérie
sinon je comptait faire un magic effect j'avais juste besoin d'aide pour le script
merci

voila une idée de script et je compte le tester:

Event OnObjectEquipped(Form akBaseObject, ObjectReference akReference)
if _BaseObject == id du masque (il y a plusieurs masque en fonction du niveau je dois faire un script pour touts les masques ?)
Debug . Trace("Vous venez d'équiper le masque de Miraak!")
player.addshout (id du cri)
player.teachword (id du mot)
player.teachword (id du mot)
player.teachword (id du mot)
endIf
endEvent

Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference)
if _BaseObject == id du masque
Debug.Trace("This actor just unequipped a piece of armor!")
player.removeshout (id du cri)
endIf
endEvent

pour les id je doit mettre le nom de la baseid dans le creation kit ou les chiffres ?
Avatar du membre
Kesta
Maître de Forge
Maître de Forge
Messages : 1077

Re: besoin d'aide script

Message par Kesta »

Le plus simple pour la comparaison : référence le masque en tant que property, et compare akBaseObject avec ta Property.
Idem pour tous les "id du ...", référence les en tant que property et met les ici.

Addshout / teachword sont des commandes consoles, qui ne sont pas forcément exactement les mêmes en script papyrus.

Après vérif, il y a effectivement bien un AddShout, en revanche il faudra bien utiliser SetPlayerKnows sur les mot de pouvoir.
Faites un feu à un homme, il aura chaud un jour.
Mettez le feu à un homme, il aura chaud jusqu'à la fin de sa vie.

Terry Pratchett
Avatar du membre
Tissendel
Maîtresse de Forge
Maîtresse de Forge
Messages : 1157

Re: besoin d'aide script

Message par Tissendel »

Petit complément ici.

Pour les différent masques de Miraak

On peut créer une FormList dans laquelle on glisse tout les masques de Mirrak

Ici je l'ai appelée TissListMiraakMasks

Image

Dans le code fait une property FormList que tu référence avec et tu utilises la condition suivante pour savoir si ton objet _BaseObject est dans cette liste

Code : Tout sélectionner

formlist property ListMiraakMasks auto

if TissListMiraakMasks.HasForm(_BaseObject )
	;Blablabla
endIf;
Répondre

Retourner vers « Entraide sur les scripts »