La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 20:43:17
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Bubulle Novice Messages: 14 Localisation: Dans mon bocal |
Posté le : 27/04/2003 08:25:33 Sujet du message : Comment faire pour faire apparaitre un perso en cours de jeu
En fait je voudrait faire apparaitre un PNJ, seulement lorsqu'une quete vient de se finir. Pour être plus clair : Lorsque la quete se fini, un personnage arrive et se dirige vers le PJ pour lui parler.
Je suis un niewbie et j'ai pas reussi a trouve comment on peut faire pour obtenir cet effet. Merci d'avance pour vos réponses |
Revenir en haut | |
Tuyen Demi-dieu Messages: 460 Localisation: Chez moi |
Ca dépend du type de ta quête...
S'il faut tuer une créature tu n'as qu'à mettre dans le OnDeath de celleci le script ( script A ) qui va créer ton perso avec la fonction CreateObject, où il faudra préciser le tag du perso à créer, l'endroit et compagnie... Puis tu crée ton perso de facon normale, tu n'oublies pas de mettre le même tag que dans celui du script. Ensuite dans le OnPerceive du perso tu lui mets un script B qui l'oblige à te parler s'il te voit, genre : Code : void main()
{ iResult = GetLocalInt(OBJECT_SELF,"sDejaparler"); if (GetIsPC(oSeen)&&(iResult==0)) { ActionStartConversation (oSeen,"",FALSE); SetLocalInt(oObject, "sDejaparler", 1); } } Bon là le perso viendra te parler directement... voila voila! Bon si tu veux qu'il apparaisse dans d'autres circonstance, comme par exemple lors d'un dialogue, c'est pareil, sauf que tu mets le script A dans Condition d'Exécution... Ba après ca dépend de ce que tu veux hein! |
Revenir en haut | |
Bubulle Novice Messages: 14 Localisation: Dans mon bocal |
Merci le mec viens me parler mais je n'arrive pas à le faire apparaitre (car je ne suis pas encore treès familier avec les scripts.
Si quelqu'un pouvait me rediger un exemple du script "CreateObject" ou m'indiquer un site qui explique un peu la creation de script.... Comme le PNJ doit apparaitre lorsque qu'une quete est fini je ne sait pas trop ou placer le script "CreateObject". J'ai penser à un declencheur mais comment inclure dans le script le fait qu la quete doit être fini ? Voilà voilà |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Ce genre de topic à plutôt sa place dans le forum Scripts
Je déplace... _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Tuyen Demi-dieu Messages: 460 Localisation: Chez moi |
Pour le CreateObject j'en sais pas plus que toi, ca fait partie des 99,9% des fonctions que je connais po et que j'ai jamais utilisé!
Mais sinon pour que le déclencheur sache que tu as terminé la quête, tu peux mettre une variable à 1 sur le PJ quand la quête est finie : Code : //A mettre dans action conséquente d'un dialogue
void main() { SetLocalInt (GetPCSpeaker(),"quete0001",1);} Et une fois que le PJ passe sur le déclencheur, celui ci teste cette variable.. S'il n'a pas encore réalisé la quête, ben par défaut la variable est à 0, donc rien ne se passe... Et s'il a fini la quête, cette variable "quête0001" sera mise à 1 par le script d'en haut, donc le déclencheur créera la créature ( ca c'est un autre problème! lol!... Ah c'est compliqué! lol!... ) Bon pour tester la variable c'est quelque chose qui ressemble à ca ( à placer dans OnEnter du déclencheur ) : Code : void main()
{ int iResult; object oPC=GetEnterringObject(); if(GetIsPC(oPC)) {if(iResult = GetLocalInt (GetPCSpeaker(),"quete0001",1) /*Là tu met les codes qui te permettent de créer le perso qui vient te parler*/ } } A NOTER : j'ai fait tout ca de tête donc il y a de fortes chances pour que ca rate car je suis débutant mais je te donne ca pour te donner un ptit exemple... A NOTER : il se peut aussi que ca marche... |
Revenir en haut | |
Bubulle Novice Messages: 14 Localisation: Dans mon bocal |
Bon pour le faire apparaitre j'utilise le script CreateObject et forcement j'y arrive pas (je suis un niewbie hein souvenez vous !!!)
Voilà ce que j'ai mis : EDIT de Cassin : utilise les balises [ code ] et [ /code ] (sans les espaces) pour tes scripts, ça sera plus lisible Code : void main()
{ CreateObject (int nObjectType = OBJECT_TYPE_CREATURE; string sTemplate = liam; location lLocation = NW_liamappears; int bUseAppearAnimation=FALSE) } nObjecType : j'ai recopier une des valeurs qui étaient proposer dans l'aide sTemplate : j'ai mis le tag du PNJ a faire apparaitre iLocation : le tag du marqueur que j'ai creé dans la zone à l'endroit où le type doit apparaitre bUseAppearAnimation : j'avoue que je ne sait pas trop quoi faire de cette ligne donc j'ai laisser false Est-ce que la syntaxe est bonne, est-ce qu'il faut mettre de " autour des tag, est-ce qu'il faut bien mettre des = ??? Merci d'avance pour votre aide precieuse |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Code :
void main()
{ CreateObject (int nObjectType = OBJECT_TYPE_CREATURE; string sTemplate = liam; location lLocation = NW_liamappears; int bUseAppearAnimation=FALSE) } Oui ben là ça m'étonnes pas du tout que ça marche pas ! Ta syntaxe de script n'est pas DU TOUT bonne, essaie de faire quelques tutoriaux de scripts pour comprendre comment ça marche, tu t'en sortiras beaucoup mieux par la suite... Code : object oPNJ = GetObjectByTag("TagDeTonPNJ"); location lLocPNJ = GetLocation(GetObjectByTag("TagDeTonWP"); void main() { CreateObject (OBJECT_TYPE_CREATURE, oPNJ, lLocPNJ, FALSE); } devrait déjà marcher beaucoup mieux Mais comme je te le disais, fait des tuto (sur JOL par exemple, ils en ont des très bons), sinon tu ne t'en sortiras jamais... On est tous passés par là, mais une fois la logique du truc comprise, on s'en sort sans trop de mal... _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Bubulle Novice Messages: 14 Localisation: Dans mon bocal |
Ok merci beaucoup pour toutes ces infos. Effectivement ca ne risquait pas de marcher
Et je vais suvre ton conseil et allez faire quelques tuto.. |
Revenir en haut | |
Bubulle Novice Messages: 14 Localisation: Dans mon bocal |
Bon ca marche a moitié maintenant
Voici mon script: Code : object lLieu=GetWaypointByTag("NW_DRUIDE"); void main() { CreateObject (OBJECT_TYPE_CREATURE, "PNJ_LIAM", GetLocation(lLieu), FALSE); } Tout marche sauf que c'est un blaireau qui apparait à la place du PNJ ??? |
Revenir en haut | |
Taern Ecuyer Messages: 45 Localisation: 92 |
Le blaireau, c'est parceque tu t'es trompé dans un des arguments de la fonction:
la chaîne de caractère que tu utilise doit être le blueprint de la créature, et non son tag (car ce dernier peut être commun à plus objet s du module, mais pas le blueprint). |
Revenir en haut | |
Bubulle Novice Messages: 14 Localisation: Dans mon bocal |
Ok c'était bien ca le pb.
Maintenant c'est bien le bon PNJ qui apparait. Merci beaucoup pour votre aide |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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