[Résolu] Script pour faire apparaître un PNJ

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

Script pour faire apparaître un PNJ

Message 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 ?
Modifié en dernier par _Red le 26 févr. 2013, 11:38, modifié 1 fois.
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: [Question]Script pour faire apparaître un pnj.

Message 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.
Avatar du membre
_Red
Confrère
Messages : 56

Re: [Question]Script pour faire apparaître un pnj.

Message 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.
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: [Question]Script pour faire apparaître un pnj.

Message 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).
Avatar du membre
_Red
Confrère
Messages : 56

Re: [Question]Script pour faire apparaître un pnj.

Message 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.
Avatar du membre
_Red
Confrère
Messages : 56

Re: [Question]Script pour faire apparaître un pnj.

Message 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
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: [Question]Script pour faire apparaître un pnj.

Message 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
Avatar du membre
_Red
Confrère
Messages : 56

Re: [Question]Script pour faire apparaître un pnj.

Message 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
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: [Question]Script pour faire apparaître un pnj.

Message 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.
Avatar du membre
_Red
Confrère
Messages : 56

Re: [Question]Script pour faire apparaître un pnj.

Message 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 ^^
Répondre

Retourner vers « Entraide sur les scripts »