Équiper une armure sur un PNJ lorsqu’il rentre dans un trigger

Le langage des scripts.
Avatar du membre
_Red
Confrère
Messages : 56

Équiper une armure sur un PNJ lorsqu’il rentre dans un trigger

Message par _Red »

Bonjour a tous,
J'ai un problème avec un script j'aimerais équiper une armure à un PNJ quand il entre dans un trigger l'armure est sous forme d'outfit (un ensemble d'armures pré enregistrer) mais je bloque j'ai essayé plusieurs techniques mais quand ça veut pas ^^ je laisse ce que j'ai commencé à faire :

Code : Tout sélectionner

ScriptName Test Extends ObjectReference

Actor Property MaisonSoldier Auto
MiscObject Property MaisonDefaultOuflit Auto

Event OnTriggerEnter(ObjectReference akActionRef)
	If akActionRef == Game.GetPlayer()
	       MaisonSoldier.EquipItem(MaisonDefaultOutfit)
        EndIf
EndEvent
j'espère que quelqu'un a une idée merci en tout cas pour l'aide futur
daan
Moddeur aspirant
Moddeur aspirant
Messages : 171

Re: équiper une armure sur un pnj

Message par daan »

bonjour,

je n'est malheureusement pas LA réponse mais je me pose deux questions:
1) "EquipeItem" supporte t il les " Outfit" ? (Je n'est fais qu'une recherche très grossière mais je n'est rien trouvé qui aille dans ce sens.)
2) si a la place de l'"Outfit" tu met directement l'armure cela fonctionne t il ?

désolé de ne pas pouvoir t'aider d'avantage .
Daan
Parce qu'on a pas commencer avec Skyrim ;
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
Avatar du membre
ced909
Confrère
Messages : 151

Re: équiper une armure sur un pnj

Message par ced909 »

Daan a raison.
Malheureusement, on ne peut pas s'équiper (via un EquipItem) d'un Outfit qu'il soit créé ou déjà existant.

On ne peut s'équiper d'une seule pièce d'armure/de vêtement à fois, donc à toi de faire un EquipItem pour chaque pièce d'armure/de vêtement.
Oublie le Outfit pour ton script passe par ça :

Code : Tout sélectionner

ScriptName Test Extends ObjectReference

Actor Property MaisonSoldier Auto
Armor Property Casque Auto
Armor Property Armure Auto
Armor Property Bottes Auto
Armor Property Gants Auto

Event OnTriggerEnter(ObjectReference akActionRef)
   If akActionRef == Game.GetPlayer()
          MaisonSoldier.EquipItem(Casque)
          MaisonSoldier.EquipItem(Armure)
          MaisonSoldier.EquipItem(Bottes)
          MaisonSoldier.EquipItem(Gants)
        EndIf
EndEvent
ATTENTION ton script est MAL conditionné !
à chaque fois qu'il rentrera dans ce Trigger, le Player s'équipera de l'armure.
Avatar du membre
_Red
Confrère
Messages : 56

Re: équiper une armure sur un pnj

Message par _Red »

Merci pour cette réponse,
C'est effectivement ce que je veux :
ced909 a écrit :ATTENTION ton script est MAL conditionné !
à chaque fois qu'il rentrera dans ce Trigger, le Player s'équipera de l'armure.
Hier j'ai réussi à faire mon script avec l'outfit mais malheureusement j'ai eu quelques problèmes techniques, merci Steam puis 2 nd problème j'ai placé quelques pnj pour faire des tests mais IG ils apparaissent tous au même endroit (sur le dernier marker heading que j'ai placé) je pense que c'est a cause du package qui en "InCell" je vais essayer de le mettre en "Radius".
Avatar du membre
ced909
Confrère
Messages : 151

Re: équiper une armure sur un pnj

Message par ced909 »

_Red a écrit : Hier j'ai réussi à faire mon script avec l'outfit .
Ah ?! ça marche avec l'outfit ? j'étais convaincu que ça ne marchait pas...
Comment tu as fait ?
Avatar du membre
_Red
Confrère
Messages : 56

Re: équiper une armure sur un pnj

Message par _Red »

En fait je n'ai pas encore eu le temps de tester mais dès que c'est fait et si marche je mettrais le script sur cette page.

Edit: Par contre j'ai un petit souci avec ton script j'ai peut-être mal expliqué mais est que quand le pnj quand il va entrer dans la zone va bien équiper l'armure sans l'action du joueur ?
daan
Moddeur aspirant
Moddeur aspirant
Messages : 171

Re: équiper une armure sur un pnj

Message par daan »

Bonjour,
...est que quand le pnj quand il va entrer dans la zone va bien équiper l'armure sans l'action du joueur ?
Tel quel : non, si tu laisse comme ça c'est a l'entée du player dans le trigger que le pnj sera équipé de l'armure.
Pour que se soit à l’entré du pnj (et du pnj seul) il faudrait remplacer le « Game.GetPlayer() » par « MaisonSoldier»

A Ced909 :
Mode plaisanterie : ON
Yééé , c’est quoi ce vilain « Game.GetPlayer() » ? :D
Mode plaisanterie : OFF
Ok je sort ! :tomates: :blanc:


Daan
Parce qu'on a pas commencer avec Skyrim ;
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
Avatar du membre
ced909
Confrère
Messages : 151

Re: équiper une armure sur un pnj

Message par ced909 »

daan a écrit :A Ced909 :
Mode plaisanterie : ON
Yééé , c’est quoi ce vilain « Game.GetPlayer() » ? :D
Mode plaisanterie : OFF
Ah! mais ce n'est pas mon script à la base, je n'ai fait que reprendre le sien qui consiste à équiper un PNJ lorsque le Player rentre dans le Trigger ;)

Daan a tout dit sinon...
Ton script dit :
SI c'est le joueur qui rentre dans le Trigger, le PNJ "MaisonSoldier" s'équipe de l'armure.
Je ne sais pas si c'est bien ça que tu veux mais c'est ce que j'ai compris sur le premier post en lisant ton script :)
Avatar du membre
_Red
Confrère
Messages : 56

Re: équiper une armure sur un pnj

Message par _Red »

Ouais merci d'avoir répondu même si j'avais fait la modif il y a un bon bout de temps .J'aimerais juste savoir si on peut faire la même chose avec un terme qui recouvre plusieurs pnj ou s'il faut refaire le script avec des acteurs diffèrent a chaque fois ? Un genre de Game.GetActor si sa existe ?
daan
Moddeur aspirant
Moddeur aspirant
Messages : 171

Re: équiper une armure sur un pnj

Message par daan »

bonjour,
je n'ai jamais tester mais je suppose que ce qui suit devrait fonctionner:

Code : Tout sélectionner

ScriptName Test Extends ObjectReference

Actor Property MaisonSoldier1 Auto
Actor Property MaisonSoldier2 Auto
Actor Property MaisonSoldier3 Auto
Armor Property Casque Auto
Armor Property Armure Auto
Armor Property Bottes Auto
Armor Property Gants Auto

Event OnTriggerEnter(ObjectReference akActionRef)
   If (akActionRef == MaisonSoldier1 || akActionRef == MaisonSoldier2 || akActionRef == MaisonSoldier3)
          akActionRef.EquipItem(Casque)
          akActionRef.EquipItem(Armure)
          akActionRef.EquipItem(Bottes)
          akActionRef.EquipItem(Gants)
        EndIf
EndEvent
à faire vérifier par un expert du script ou à tester pour voir ! lol

Daan
Parce qu'on a pas commencer avec Skyrim ;
faites donc un tour a cette adresse pour vous rappelez votre jeunesse:
http://www.abandonware-france.org
avec par exemple:
http://www.abandonware-france.org/ltf_a ... php?id=332
Répondre

Retourner vers « Entraide sur les scripts »