Page 1 sur 2
Script pour faire apparaître un PNJ
Posté : 04 janv. 2013, 23:46
par _Red
Bonjour, j'aurais une question sur les scripts, comment faire pour demander au script de faire apparaître un pnj ou plusieurs je précise que je suis vraiment un débutant pour l’écriture de script

j'ai déjà essayer avec un markerheading et un script basique (enable disable avec la ref d'un acteur sa à marcher avec des objets mais pas avec des acteurs) en gros en français j'aimerais que quand j'appuie sur le bouton (autant de fois que je le souhaite) un pnj apparaisse.
Voilà je sais absolument pas si c'est réalisable merci d'avoir lu en tout cas !
Edit:Bon j'ai partiellement résolu mon problème
Voila le script
ObjectReference Property myMarker auto
ActorBase Property EncForsworn06MissileBretonF01 Auto
Sound Property QSTAstrolabeButtonPressX Auto
Event OnActivate(ObjectReference akActionRef)
If akActionRef == Game.GetPlayer()
QSTAstrolabeButtonPressX.Play(Self)
myMarker.PlaceAtMe(EncForsworn06MissileBretonF01)
EndIf
endEvent
Pour le moment il me permet juste de faire apparaître un pnj sur un markerheading mais comment faire, pour en faire apparaitre plusieurs sur des markersheading diffèrent ?
Re: [Question]Script pour faire apparaître un pnj.
Posté : 05 janv. 2013, 22:27
par Gerauld
Pour en faire apparaitre plusieurs sur plusieurs markerheading différents, il suffit d'ajouter une propriété de type objectreference pour chaque markerheading, de rajouter des propriétés correspondant à ce que tu veux faire apparaitre (actorbase ou actor), de les remplir et de remettre la ligne les faisant apparaitre autant de fois que nécessaire en associant le markerheading voulu à ce que tu veux faire apparaitre.
Tu ajoutes donc des propriétés (à remplir ensuite avec les marqueurs et les actorbase)
objectreference property mymarker1 auto
objectreference property mymarker2 auto
actorbase property EncForswornGuerrierdelamort auto
actorbase property EncForswornMage auto
(ligne que tu avais déjà) :
myMarker.PlaceAtMe(EncForsworn06MissileBretonF01)
lignes ajoutées :
myMarker1.PlaceAtMe(EncForswornGuerrierdelamort)
myMarker2.PlaceAtMe(EncForswornMage)
Si tu nommes les objets et les propriétés de la même façon, en cliquant sur auto-fill dans la fenêtre des propriétés, tu verras la plupart se remplir toutes seules.
Re: [Question]Script pour faire apparaître un pnj.
Posté : 06 janv. 2013, 11:31
par _Red
Merci sa marche très bien seul problème j'ai voulu déplacer un markerheading après avoir paramétré le script je vérifie si tout fonctionne bien Ig mais le pnj continu d'apparaitre à l'endroit ou se trouver le marker avant d'être déplacé j'ai essayé de supprimer le backup et la sav à partir du menu principal mais rien à faire.
Re: [Question]Script pour faire apparaître un pnj.
Posté : 13 janv. 2013, 18:14
par Gerauld
Tu es bien reparti d'une vieille sauvegarde (qui a été faite sans le mod installé) pour vérifier le changement? (dans le cas d'un changement de propriété c'est obligatoire, le reste du temps pas tout le temps mais dans le doute, il vaut mieux procéder ainsi).
Le mieux, quand ton mod arrivera en version finale, ce sera de tester à partir d'une nouvelle partie pour être sûr de ne pas subir l'influence de la sauvegarde du jeu.
Sinon, vérifie dans les détails de l'esp (accessibles depuis la fenêtre de chargement de l'esp dans le CK) si c'est bien le bon marqueur que tu as bougé et non autre chose (regarder dans la CELL concernée).
Le mieux serait d'utiliser tes5edit pour vérifier si tes modifications dans cette CELL ne l'ont pas salie aussi (on déplace rapidement des trucs sans faire attention).
Re: [Question]Script pour faire apparaître un pnj.
Posté : 15 janv. 2013, 18:00
par _Red
Ah j'ai sans doute oublié de repartir d'une version antérieur de la sauvegarde, ya t'il un moyen de supprimer cette partie de la sauvegarde.
Ps:je compte recommencer le jeu peut-être le moyen de repartir d'une sauvegarde vierge.
Re: [Question]Script pour faire apparaître un pnj.
Posté : 17 janv. 2013, 18:37
par _Red
Salut !
J'ai un petit problème avec mon script je l'ai un peut améliorer mais il ne fonctionne pas quelqu'un aurait une idée ?
Code : Tout sélectionner
Message Property ModTestMSGArena Auto
ObjectReference Property ModArenaMarkerM1 auto
ObjectReference Property ModArenaMarkerM2 auto
ObjectReference Property ModArenaMarkerM3 auto
ObjectReference Property ModArenaMarkerM4 auto
ObjectReference Property ModArenaMarkerM5 auto
ActorBase Property EncForsworn01MissileBretonF01 Auto
ActorBase Property EncForsworn01MissileBretonF02 Auto
ActorBase Property EncForsworn01MissileBretonF03 Auto
ActorBase Property EncGuardSonsF01FemaleNord Auto
ActorBase Property EncGuardSonsF02FemaleNord Auto
ActorBase Property EncGuardSonsF03FemaleNord Auto
ActorBase Property EncThalmor01MissileF Auto
ActorBase Property EncThalmor02MissileF Auto
ActorBase Property EncThalmor03MissileF Auto
Sound Property QSTAstrolabeButtonPressX Auto
int button
Event OnActivate(ObjectReference akActionRef)
If akActionRef == Game.GetPlayer()
QSTAstrolabeButtonPressX.Play(Self)
button = ModArenaMSGArena.Show()
if button == 0
ModArenaMarkerM1.PlaceAtMe(EncForsworn01MissileBretonF01)
ModArenaMarkerM2.PlaceAtMe(EncForsworn01MissileBretonF02)
ModArenaMarkerM3.PlaceAtMe(EncForsworn01MissileBretonF03)
ModArenaMarkerM4.PlaceAtMe(EncForsworn01MissileBretonF01)
ModArenaMarkerM5.PlaceAtMe(EncForsworn01MissileBretonF02)
elseif button == 1
ModArenaMarkerM1.PlaceAtMe(EncGuardSonsF01FemaleNord)
ModArenaMarkerM2.PlaceAtMe(EncGuardSonsF02FemaleNord)
ModArenaMarkerM3.PlaceAtMe(EncGuardSonsF03FemaleNord)
ModArenaMarkerM4.PlaceAtMe(EncGuardSonsF01FemaleNord)
ModArenaMarkerM5.PlaceAtMe(EncGuardSonsF02FemaleNord)
elseif button == 2
ModArenaMarkerM1.PlaceAtMe(EncThalmor03MissileF)
ModArenaMarkerM2.PlaceAtMe(EncThalmor02MissileF)
ModArenaMarkerM3.PlaceAtMe(EncThalmor02MissileF)
ModArenaMarkerM4.PlaceAtMe(EncThalmor01MissileF)
ModArenaMarkerM5.PlaceAtMe(EncThalmor03MissileF)
endif
EndIf
EndEvent
Re: [Question]Script pour faire apparaître un pnj.
Posté : 19 janv. 2013, 10:54
par Gerauld
Si tu veux compter le nombre d'appuis sur ton bouton dans un laps de temps limité, tu es assez loin du compte. Heureusement, il y a le script qu'il te faut dans les ressources de la Forge :
http://www.confrerie-des-traducteurs.fr ... 25&t=13783
Re: [Question]Script pour faire apparaître un pnj.
Posté : 19 janv. 2013, 16:51
par _Red
nop je veux pas compter le nombre d'appuis sur le bouton mais j'ai crée une message box avec associé au 0 le pop des parjure au 1 le pop des stormcloak etc c'est en rapport avec le int button
Re: [Question]Script pour faire apparaître un pnj.
Posté : 20 janv. 2013, 13:29
par Gerauld
Je n'avais pas fait attention à la propriété en haut.
Essaie de définir la variable dans l'event pour les menus plutôt qu'en dehors. Cette variable est gardée en mémoire si elle est placée en dehors et pas dans le cas contraire.
un truc du genre :
int button = ModArenaMSGArena.Show() en supprimant la déclaration int button un peu plus haut.
Ensuite, il faut tester sur une sauvegarde qui n'a pas connu la CELL où se trouve le bouton pour que les propriétés du script puissent être à jour.
Enlève le son pour déjà tester uniquement les appuis (ligne QSTAstrolabeButtonPressX.Play(Self)). Il est préférable de définir une instance d'ailleurs quand on joue un son afin d'avoir ensuite le contrôle dessus.
Re: [Question]Script pour faire apparaître un pnj.
Posté : 22 janv. 2013, 16:55
par _Red
okay sa marche plutôt bien merci beaucoup seul problème les pnj pop dans le vide je pense être partie d'une mauvaise sauvegarde
