La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 01/05/2025 05:48:46


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Panda Fou
Grand Chevalier
Inscrit le: 15 Nov 2003
Messages: 101
Localisation: Qui me parle ?
Répondre en citant
Posté le : 23/12/2003 15:17:08 Sujet du message : Dernier souffle

Salut,
Je voudrais savoir si on peut faire qu'un pnj soit alonger sur le sol, agonisant et dès que le pj apperçois le pnj, il court dans sa direction et commence un dialogue. Et dès que le dialogue est terminé, le pnj meurt.
C'est possible ???
Merci de me répondre.
-Panda Fou-
_________________
Suis-je fou ?
-Panda Fou-
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 23/12/2003 16:56:11 Sujet du message :

Je suis pas sûr de moi mais je pense que :

Dans le OnPerception du PNJ Agonisant :
NWScript :
void main()
{
object oPJ = GetLastPerceived();
object oPNJ = GetObjectByTag("Tag_du_PNJ_agonisant");
//on annonce qui est quoi

if (GetIsPC(oPJ)&&GetLastPerceptionSeen())
//si ton perso agonisant voit un perso, qui est un perso jouable
{
AssignCommand(oPJ, ClearAllActions());
//le perso jouable arrete ce qu'il faisait

SetCommandable(FALSE,oPJ);
//il n'est plus controlable par le joueur

AssignCommand(oPJ, ActionForceMoveToObject(oPNJ, TRUE, 1.0));
//il court vers le perso agonisant

AssignCommand(oPNJ, ActionStartConversation(oPJ, "nom du dialogue"));

}
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


En action conséquente, à la fin du dialogue :
NWScript :
void main()
{
object oPJ = GetLastPerceived();
object oPNJ = GetObjectByTag("Tag_du_PNJ_agonisant");
//on annonce qui est quoi

SetCommandable(TRUE,oPJ);


ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(1000, DAMAGE_TYPE_BLUDGEONING, DAMAGE_POWER_NORMAL), oPNJ);
//on acheve l'agonisant
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


peut être, éventuellement... Embarassed
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Panda Fou
Grand Chevalier
Inscrit le: 15 Nov 2003
Messages: 101
Localisation: Qui me parle ?
Répondre en citant
Posté le : 23/12/2003 17:26:29 Sujet du message :

Merci de m'avoir répondu aussi vite mais...
Le problème c'est que dès que le pnj agonisant voit mon pj, il va le voir alors que normalement c'est le contraire, puis le dialogue se met en route et quand le pnj meurt, le pj est toujours sans contrôle.
Voilà. Est-ce que tu peux (ou quelqu'un d'autre) arranger ça SVP car j'y connais rien au script. Grand merci.
_________________
Suis-je fou ?
-Panda Fou-
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 24/12/2003 01:04:42 Sujet du message :

Je vais essayer une autre méthode...

1. Créer un PNJ dont le nombre de points de vie est de 35
2. Lui donner le Tag "Bavard"
3. Lui mettre le script suivant dans son script SPAWN pour lui infliger des dégats et qu'il soit réellement agonisant...

NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


4. C'est là que les chose se complique mais cela fonctionne
Ce script est à placer dans son heartBeat...

NWScript :
// On HeartBeat
void main()
{
  object oPC = GetNearestCreature ( CREATURE_TYPE_PLAYER_CHAR , PLAYER_CHAR_IS_PC );


if (GetLocalInt(GetModule(), "resteassis") < 10)
    {
    PlayAnimation (ANIMATION_LOOPING_DEAD_BACK, 1.0, 7.0);
    }

else if (GetLocalInt(GetModule(), "resteassis") == 10)
    {
    ClearAllActions();
    SpeakString("a..attendez...");
    SetLocalInt(GetModule(), "resteassis", 20);
    }

else if (GetLocalInt(GetModule(), "resteassis") > 10)
    {
    ClearAllActions();
    ActionForceMoveToObject(oPC, FALSE);
    ActionStartConversation(oPC);
    }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


5. Lui donner un dialogue et mettre le script suivant dans "Fichier actuel" complètement à droite des onglets...

NWScript :
// dans "normales" et "abandon"
void main()
{
object oDeath = GetObjectByTag("Bavard");
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectDeath(TRUE), oDeath);
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


6. Fermer le PNJ et créer un déclencheur à proximité mais pas trop près (à la limite de l'audition d'un PJ)

7. Placer le script suivant dans le OnEnter du déclencheur

NWScript :
void main()
{
object oPC = GetEnteringObject();
if (GetIsPC(oPC))
    {SetLocalInt(GetModule(), "resteassis", 10);
    FloatingTextStringOnCreature("J'entend une plainte...", oPC);
    DestroyObject(OBJECT_SELF,1.0);
    }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Je l'ai testé... cela fonctionne... Le PNJ met un heartbeat avant de se traîner vers le joueur (donc pas trop près de lui).
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Panda Fou
Grand Chevalier
Inscrit le: 15 Nov 2003
Messages: 101
Localisation: Qui me parle ?
Répondre en citant
Posté le : 25/12/2003 11:45:49 Sujet du message :

Trop class !!!
Merci Longbow, ça marche très bien. Cool
_________________
Suis-je fou ?
-Panda Fou-
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Panda Fou
Grand Chevalier
Inscrit le: 15 Nov 2003
Messages: 101
Localisation: Qui me parle ?
Répondre en citant
Posté le : 25/12/2003 20:19:22 Sujet du message :

En fait j'ai un problème: le pnj meurt avant que le dialogue finisse et donc le dialogue stop.
_________________
Suis-je fou ?
-Panda Fou-
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 25/12/2003 23:02:03 Sujet du message :

As-tu bien placé le script avec EffectDeath est bien intégré dans le dialogue ni dans "Conditions d'exectution" ni dans "Actions Conséquentes" mais bien dans "Fichiers Actuels"...
Ainsi ce script ne se déclenche qu'à la fin du dialogue soit parceque le dialogue est eini soit parce que la discussion a été abandonnée... Donc en aucune manière au milieu du dialogue...
Vérifie toutes les cases "Actions Conséquentes"
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Panda Fou
Grand Chevalier
Inscrit le: 15 Nov 2003
Messages: 101
Localisation: Qui me parle ?
Répondre en citant
Posté le : 28/12/2003 18:15:48 Sujet du message :

J'ai réussi à faire ce que je voulais, merci et désolé de ne pas avoir répondu plus tôt (j'avais oublié Embarassed ).
_________________
Suis-je fou ?
-Panda Fou-
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 55.419ms