Aller au contenu


[résolu] De La Disparition Des Pnj...


  • Veuillez vous connecter pour répondre
16 réponses à ce sujet

#1 rumpilstilskin

rumpilstilskin

Posté 07 janvier 2010 - 15:44

Bonjour,

La réponse à mon problème existe certainement ici, mais j'ai beau chercher je ne trouve pas.

L'indispensable Erranil à Ald'Rhun a semble t-il décidée de prendre des congés définitives... elle a subitement disparu...

Pourriez-vous s'il vous plait me communiquer la méthode et le code console pour la faire revenir? En prévision d'autres problèmes, je suis preneur d'un lien vers un utilitaire complet de la console.

Merci:)

Modifié par rumpilstilskin, 07 janvier 2010 - 21:10.


#2 Kira

Kira

    Top-modeleuse...


Posté 07 janvier 2010 - 15:53

Bonjour Rumpilstilskin...

Pour replacer un acteur à sa place initiale, tu peux utiliser le code console (²):

RA   [Entrée]

Ce n'est pas une formule très spectaculaire, à voir comme ça, mais c'est radical...
Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#3 rumpilstilskin

rumpilstilskin

Posté 07 janvier 2010 - 16:31

Bonjour Kira et merci pour ta réponse:)

Pourrais-tu me préciser comment faire? Où dois-je mettre le nom du pnj manquant?

#4 Snaïpe

Snaïpe

    ...itset tnus otroh nI


Posté 07 janvier 2010 - 16:40

"ra" réinitialise la position de tous les acteurs en jeu. pas besoin d'indiquer un ID quelconque ;)

#5 elendell

elendell

    Mécano Dell'Arte


Posté 07 janvier 2010 - 17:27

Bonjour,

Voir le messageSnaïpe, le 07.01.2010 à 16:54, dit :

"ra" réinitialise la position de tous les acteurs en jeu. pas besoin d'indiquer un ID quelconque ;)
Dans la cellule où se trouve le PJ uniquement (et sans doute les limitrophes qui sont également chargées).

@ rumpilstilskin : Si le code "RA" ne fonctionne pas, on replacera le PNJ avec son ID et un autre code mais généralement, "RA" suffit. Tu peux l'utiliser par exemple quand un PNJ te gêne le passage parce qu'il s'est mis en plein milieu ou encore quand quelque action a fait disparaitre un PNJ dans le décor.

#6 rumpilstilskin

rumpilstilskin

Posté 07 janvier 2010 - 18:34

Bonsoir,

Merci pour vos réponses, mais je viens d'essayer et ça ne marche malheureusement pas. J'ai essayé en cliquant sur différentes zones autour du point habituel où se tient Erranil sans succès.

Comment dois-je faire pour ta solution alternative elendell?

#7 beziarum

beziarum

Posté 07 janvier 2010 - 18:59

juste une Idée qui peut trés bien ne pas marcher
cherche l'ID du PNJ disparut
puis
kill  [ID du PNJ]   [Entrée]
puis
resurrect [ID du PNJ]   [Entrée]
et normallement le PNJ devrait revenir là où il est cencé être
Il y a seulement 10 sortes de personnes dans la vie, celles qui comprennent le binaire, et celles qui ne le comprennent pas.

#8 Kira

Kira

    Top-modeleuse...


Posté 07 janvier 2010 - 19:14

Coucou, c'est encore moi...

Tuer un personnage pour le ressusciter ensuite n'est pas forcément la meilleure idée...
En effet, le jeu garde en mémoire les morts survenues au cours de ton périple, et le fait d'avoir un personnage qui est mort bloque parfois certaines quêtes, même s'il a été ressuscité...

Si Erranil a vraiment disparu, il vaut mieux engager une remplaçante, l'agence d'interim de la guilde des mages est là pour ça...

Plus sérieusement, il suffit de te positionner à l'endroit qu'occupait Erranil, d'ouvrir ta console, et de taper

Placeatpc erranil 1 1 1   [Entrée]

Une nouvelle Erranil apparaitra, et comme ce personnage n'obéit à aucun script, ça ne risque pas d'avoir d'effets trop dérangeants sur la suite de ta partie...

@Beziarum...
Il me semble que la commande "kill" servait plutôt dans des jeux tels que Dark age of Camelot, en commande de maître de jeu... Pour Morrowind, il me semble qu'elle est inefficace...
Tout n'est qu'illusion... Surtout le fait de le penser.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#9 rumpilstilskin

rumpilstilskin

Posté 07 janvier 2010 - 21:07

Merci Kira:)

Erranil a été sensible à tes arguments... elle a repris sagement sa place et sa fonction... bon je me méfie un peu d'elle et la garde à l'œil... si elle prend à nouveau la poudre d'escampette sans préavis je saurais quoi lui dire!;)

#10 Snaïpe

Snaïpe

    ...itset tnus otroh nI


Posté 07 janvier 2010 - 22:03

Citation

juste une Idée qui peut trés bien ne pas marcher
cherche l'ID du PNJ disparut
puis
Code
kill  [ID du PNJ]   [Entrée]

puis
Code
resurrect [ID du PNJ]   [Entrée]

et normallement le PNJ devrait revenir là où il est cencé être

Citation

@Beziarum...
Il me semble que la commande "kill" servait plutôt dans des jeux tels que Dark age of Camelot, en commande de maître de jeu... Pour Morrowind, il me semble qu'elle est inefficace...

"kill" n'existe pas dans morrowind, en effet ( mais existe dans oblivion )

quant à la syntaxe, c'est ID->resurrect [entrée] et non resurrect ID [entrée] ;)

#11 elendell

elendell

    Mécano Dell'Arte


Posté 07 janvier 2010 - 23:56

Voir le messageKira, le 07.01.2010 à 19:28, dit :

Plus sérieusement, il suffit de te positionner à l'endroit qu'occupait Erranil, d'ouvrir ta console, et de taper

Placeatpc erranil 1 1 1   [Entrée]

Une nouvelle Erranil apparaitra, et comme ce personnage n'obéit à aucun script, ça ne risque pas d'avoir d'effets trop dérangeants sur la suite de ta partie...
D'une manière générale, il est préférable de tenter d'abord un "position" ou un "positionCell" sur l'objet perdu. Cela oblige à taper 3 lignes de codes en plus mais ça prévient tout bug futur. Il n'y a pas que les problèmes de scripts remis à 0 avec "Placeatpc". Même quand il s'agit d'un PNJ ou d'un objet du jeu original, un "mod" peut avoir un script qui lui donne une instruction. Si l'ancien PNJ est toujours dans le jeu, l'instruction ne sera donnée qu'à une seule des 2 références (le premier PNJ trouvé en fonction de la cellule où se trouve le PJ et d'autres critères) mais sera-ce le bon ?

La méthode la plus sure quand un PNJ a disparu est :

1) Replacer les PNJs à leur position définie dans le Tescs : Commande "RA"

2) Chercher si le PNJ est toujours présent dans la cellule où dans le monde extérieur. Code : "IDduPNJ"->GetPos x soit dans ce cas : erranil->GetPos x

Si le résultat du code indique une coordonnée, c'est que le PNJ est présent. Si on le fait à l'extérieur, le jeu cherchera dans tout le monde sauf les cellules intérieures (ni les conteneurs ou inventaires, pour les objets concernés). Si le PNJ est sensé être dans une cellule intérieure, il faut donc faire le code dans cette cellule.

3) S'il n'est pas présent alors qu'il devrait y être, il faut vérifier s'il n'est pas comptabilisé comme mort avec le code : "IDduPNJ"->GetDeadCount  soit dans ce cas : erranil->GetDeadCount

4) S'il est présent, on peut le ramener en place avec la commande "Position". D'abord, il faut placer le PJ à l'endroit où devrait se trouver le PNJ et relever la position avec ces 3 codes :

Player->GetPos x
Player->GetPos y
Player->GetPos z


Ensuite, on s'écarte et on place le PNJ aux coordonnées relevées ;
"IDduPNJ"->Position x y z 0 (les lettres sont bien sûr à remplacer par les coordonnées relevées juste avant et il ne pas oublier le zéro ou un autre chiffre à la fin.)

Note : On peut aussi, pour mener l'enquête se rendre là où il est (parce qu'après tout, quand on a cherché un PNJ on a envie de savoir où il est).
Pour ça : Player->Position x y z 0
S'il est dans le décor et qu'on ne peut pas le traverser, il faut utiliser d'abord le code : TCL
Et utiliser à nouveau "TCL" pour redonner de la substance au PJ.

5) S'il n'apparait toujours pas, on vérifie s'il n'est pas "disablé" : "IDduPNJ"->GetDisabled
Si le code renvoie "1", c'est qu'il l'est. Il faut savoir si ce n'est pas voulu dans le jeu. Si on sait qu'il devrait être visible, il faut utiliser :  "IDduPNJ"->Enable

6) S'il s'obstine à ne pas vouloir apparaitre, on utilise le "PlaceatPC".

C'est plus long et pas toujours nécessaire comme procédure mais toute utilisation de codes-console sur une partie en cours est risquée, si on ne sait pas exactement la situation. La disparition d'un PNJ peut être un simple bug de positionnement ou autre mais elle peut aussi être la conséquence d'un autre problème qui ne deviendrait visible que plus tard dans la partie.

La règle pour garder une partie "saine" est donc à mon avis, de faire le minimum de changements avec la console et de chercher d'où vient l'erreur. A plus forte raison quand il s'agit d'un PNJ du jeu et non celui d'un module.

#12 rumpilstilskin

rumpilstilskin

Posté 08 janvier 2010 - 00:34

Merci pour cette explication très complète elendell. Je ne manquerais pas de procéder ainsi la prochaine fois. Dans le cas d'Erranil, faut-il par prudence faire une recherche comme tu le préconise ou pouvons-nous considérer qu'il n'y aura pas de problèmes puisqu'elle n'est dans aucun script?

Il est possible que l'original ne soit pas bien loin... dans le décor^^

#13 beziarum

beziarum

Posté 08 janvier 2010 - 17:09

Voir le messageSnaïpe, le 07.01.2010 à 22:17, dit :

Citation

juste une Idée qui peut trés bien ne pas marcher
cherche l'ID du PNJ disparut
puis
Code
kill [ID du PNJ] [Entrée]

puis
Code
resurrect [ID du PNJ] [Entrée]

et normallement le PNJ devrait revenir là où il est cencé être

Citation

@Beziarum...
Il me semble que la commande "kill" servait plutôt dans des jeux tels que Dark age of Camelot, en commande de maître de jeu... Pour Morrowind, il me semble qu'elle est inefficace...

"kill" n'existe pas dans morrowind, en effet ( mais existe dans oblivion )

quant à la syntaxe, c'est ID->resurrect [entrée] et non resurrect ID [entrée] :huhu:

oups!! :huhu: ayant joué a morrowind je me mélange trés souvant dans les codes
exusez mon manque de cervelle
(pas de remarques basilikus)

Il y a seulement 10 sortes de personnes dans la vie, celles qui comprennent le binaire, et celles qui ne le comprennent pas.

#14 Snaïpe

Snaïpe

    ...itset tnus otroh nI


Posté 08 janvier 2010 - 17:39

j'ajouterais une petite chose à la démarche d'Elendell :

tu peux rapidement vérifier avec "ORI" dans quelle cellule se trouve le NPC en question.

il te suffira d'entrer "erranil->ori" pour connaitre la cellule, avec les coordonnées de cell si cette cell est extérieure ( genre ( -1, 2 ) )

ça permet au moins de voir si le NPC est parti ou s'il est sorti du décor :huhu:

#15 rumpilstilskin

rumpilstilskin

Posté 08 janvier 2010 - 19:15

Ok, merci Snaïpe

#16 elendell

elendell

    Mécano Dell'Arte


Posté 09 janvier 2010 - 02:29

Salut,

Voir le messagerumpilstilskin, le 08.01.2010 à 00:48, dit :

Dans le cas d'Erranil, faut-il par prudence faire une recherche comme tu le préconise ou pouvons-nous considérer qu'il n'y aura pas de problèmes puisqu'elle n'est dans aucun script?

Il est possible que l'original ne soit pas bien loin... dans le décor^^
Bah, Kira ayant déjà vérifié que le PJ n'est pas utilisé par un script, il ne reste que l'éventualité d'un module à venir, qui agirait sur ce PNJ. C'est sans doute peu probable. Pour le reste si tu as d'autres problèmes de disparitions par la suite, il sera temps de t'y pencher mais garde toujours des sauvegardes, surtout avant chaque utilisation d'un code-console, quand tu n'es pas sûr de la cause du bug.

Voir le messageSnaïpe, le 08.01.2010 à 17:53, dit :

j'ajouterais une petite chose à la démarche d'Elendell :

tu peux rapidement vérifier avec "ORI" dans quelle cellule se trouve le NPC en question.

il te suffira d'entrer "erranil->ori" pour connaitre la cellule, avec les coordonnées de cell si cette cell est extérieure ( genre ( -1, 2 ) )

ça permet au moins de voir si le NPC est parti ou s'il est sorti du décor :mrgreen:

Génial ! Je n'avais jamais pensé à utiliser "ORI" de cette manière. Je ne m'en servais que pour connaitre le module d'origine et pensais que la ligne "Cell" indiquait également la cellule d'origine ("ORI..."  :mrgreen:) . Je viens de vérifier, il indique bien la cellule où se trouve le PNJ au moment où on fait le code, même si le PNJ a été déplacé en cours de partie.

Voila qui peut rendre des services, merci !  :P

#17 Basilik

Basilik

Posté 09 janvier 2010 - 16:49

Voir le messagebeziarum, le 08.01.2010 à 17:23, dit :

.
oups!! :mrgreen: ayant joué a morrowind je me mélange trés souvant dans les codes
exusez mon manque de cervelle
(pas de remarques basilikus)


Et si ! C'est pour oblivion kill hahaha quel écervelé !
.

Modifié par Basilik, 10 janvier 2010 - 13:20.

Rejoignez les MJLA pour la liberté des avatars !!!!

Sympathisant des Premiers Oblivionneurs Chastes
Orthopuriste Image IPB




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)