
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 02/05/2025 15:31:52
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 |
yellow submarine Grand Chevalier ![]() Messages: 143 |
![]() merci |
Revenir en haut | ![]() ![]() ![]() |
Cassin Papa-poule(t) & poissard intemporel ![]() Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Ton post a plus sa place dans le forum Script, je le déplace
![]() Pour faire déplacer un PNJ, un simple MoveToObject suffit ![]() _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | ![]() ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
merci
non ce que je souhaite c est qu un NPJ lors d une quete me demande de l accompagner vers un lieu (comme garde du corps) mais tout en gardant avec moi mon henchman as tu une idee |
Revenir en haut | ![]() ![]() ![]() |
Cassin Papa-poule(t) & poissard intemporel ![]() Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Ah OK...
J'utilise à peu près le même script sur mon module, sauf qu'il est sur le OnPerception du PNJ, mais c'est facilement modifiable (par exemple en remplaçant GetLastPerceived() par GetLastSpeaker() (si tu met le script sur une conversation), ça devrait marcher) Code : object oPercu = GetLastPerceived();
void main() { if (GetIsPC(oPercu) == TRUE) { ActionForceFollowObject(oPercu, 5.0); } } Le if est là pour vérifier qu'il s'agit bien d'un joueur (des fois que le PNJ se mettrait à suivre n'importe quoi d'autre ![]() _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | ![]() ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
encore merci
je vais de ce pas le tester |
Revenir en haut | ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
encore moi
si je change en GetLastSpeaker() il faut que je change oPercu tu me dire par quoi ![]() merci |
Revenir en haut | ![]() ![]() ![]() |
Cassin Papa-poule(t) & poissard intemporel ![]() Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
En effet "oPercu" ça peut paraître bizarre dans un script de conversation
![]() ![]() Quelque chose comme ça quoi : Code : object oPNJ = GetLastSpeaker();
void main() { if (GetIsPC(oPNJ) == TRUE) { ActionForceFollowObject(oPNJ, 5.0); } } _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | ![]() ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
suite
je dois etre du genre gros blaire ![]() j ai mis ton script dans action taken en fin de dialogue mais il ne me suis toujours pas ![]() j ai oublie qq chose |
Revenir en haut | ![]() ![]() ![]() |
Cassin Papa-poule(t) & poissard intemporel ![]() Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Essaie de mettre le tag de ton PNJ à la place, à la première ligne :
Code : object oPNJ = GetObjectByTag("TagduPNJ"); _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | ![]() ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
donc suite de la suite
j ai mis ceci dans action taken object oPNJ = GetObjectByTag("NW_MALEKID01"); Code : void main()
{ if (GetIsPC(oPNJ) == TRUE) { ActionForceFollowObject(oPNJ, 5.0); } } et devine cela ne marche toujours pasje me suis peut etre mal explique sur ce que je veux je veux que lui me suive et non moi qui dois le suivre merci |
Revenir en haut | ![]() ![]() ![]() |
Cassin Papa-poule(t) & poissard intemporel ![]() Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Ah oui merde
![]() Aheum, erreur d'appréciation dirons nous ![]() Essaie donc ça : Code : object oPJ = GetFirstPC();
(n'oublie pas de changer les autres oPNJ par oPJ sinon ça ne marchera pas ![]() Et si là ça ne marche pas... je veux bien qu'on me redonne mon grade Poulet Rôti ![]() _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | ![]() ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
cela restera entre nous (tu sais l histoire de grand poulet roti)
mais si j ai bien compris et si cela dois donner cela object oPJ = GetFirstPC(); void main() { if (GetIsPC(oPJ) == TRUE) { ActionForceFollowObject(oPJ, 2.0); } } ca marche toujours pas ![]() ps comment je fais pour metre un cadre autour du script merci |
Revenir en haut | ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
j espere que personne ne t a transforme en mac chicken
![]() tas toujours aucune idee a mon pleme merci |
Revenir en haut | ![]() ![]() ![]() |
Wololo Légende vivante Messages: 385 |
ce script va forcer l'objet de tag 'Poulet Roti' à suivre sur 2 mètres le premier pj trouvé ..
NWScript : void main() { object oPJ = GetFirstPC(); object oPNJ = GetObjectByTag("PouletRoti"); AssignCommand(oPNJ,ActionForceFollowObject(oPJ, 2.0)); } _________________ vive les dumps et les livres ! Sanctuaire des Scripts |
Revenir en haut | ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
merci d'abord à Cassin et à Wololo
bien mon autre probleme est de mettre dans un trigger une variable qui me permette de verifier si poulet roti est bien dans la piece cette variable doit me servir en suite de verification dans un dialogue j' ai essayé dan OnEnter avec void main() { SetLocalInt(GetPCSpeaker(), "iratapquet", 200); } puis dans mon dialogue dans conditions exec avec : int StartingConditional() { // Inspecter variables locales if(!(GetLocalInt(GetPCSpeaker(), "iratapquet") == 200)) return FALSE; return TRUE; } et ca marche pas ou est le probleme svp |
Revenir en haut | ![]() ![]() ![]() |
Lavok Légende vivante Messages: 434 Localisation: Sphère planaire |
yellow submarine a écrit : cette variable doit me servir en suite de verification dans un dialogue j' ai essayé dan OnEnter avec
Qu'est-ce que le GetPCSpeaker() fiche là-dedans void main() { SetLocalInt(GetPCSpeaker(), "iratapquet", 200); } ![]() Code : void main()
{ object oPoulet = GetEnteringObject(); if(GetTag(oPoulet)=="Pouletrôti") { SetLocalInt(oPoulet, "irapquet", 200); } } Bien sûr, dans la condition de dialogue, ce sera plutôt : Code : int StartingConditional() { // Inspecter variables locales if(!(GetLocalInt(OBJECT_SELF, "iratapquet") == 200)) return FALSE; return TRUE; } _________________ ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera. Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera. |
Revenir en haut | ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
Merci bien seigneur Lavok
si je peux abuser ![]() je resume, j'ai fais en sorte (voir remerciements) qu'un PNJ me demande sa protection jusqu'a un point donné la mission terminée comment faire pour qu'il ne me suive plus (j'ai pensé à le pétrifier ![]() si t'as une idee encore merci |
Revenir en haut | ![]() ![]() ![]() |
Lavok Légende vivante Messages: 434 Localisation: Sphère planaire |
Script de tout-à-l'heure en un peu plus complet :
Code : void main()
{ object oPoulet = GetEnteringObject(); if(GetTag(oPoulet)=="Pouletrôti") { SetLocalInt(oPoulet, "irapquet", 200); AssignCommand(oPoulet, ClearAllActions()); DestroyObject(OBJECT_SELF); } } Ah, oui, si ton pnj se fait parfois interrompre (par exemple un monstre qui le fait s'enfuir/combattre), va falloir le préciser dans le script. Si c'est le cas, n'hésite pas à me demander. _________________ ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera. Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera. |
Revenir en haut | ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
encore merci Lavok
oui il est vrai si le NPJ ce fait attaquer, il ne me suis plus par la suite, donc je lui parle à nouveau pour que dans action taken il prenne Code : void main()
{ object oPJ = GetFirstPC(); object oPNJ = GetObjectByTag("ratapeg"); AssignCommand(oPNJ,ActionForceFollowObject(oPJ, 1.0)); } c'est la solution actuelle tes idees sont toujours les bienvenues ps comment faire pour encadrer dans le forum (les scripts par ex) EDIT de Cassin : il suffit de mettre ton script entre deux balises [ code ] et [ /code ] (sans les espaces) ![]() |
Revenir en haut | ![]() ![]() ![]() |
Lavok Légende vivante Messages: 434 Localisation: Sphère planaire |
Dans le OnHeartbeat du pnj :
Code : void main ()
{ if(GetLocalInt(OBJECT_SELF, "irapquet")==100) { if(GetCurrentAction()==ACTION_INVALID) { ActionForceFollowObject(GetFirstPC(), 2.0); } } } Modifie dans la foulée le script de fin de conversation pour que ton pnj suive (c'est pour la variable à 100) : Code : void main() { object oPJ = GetPCSpeaker(); ActionForceFollowObject(oPJ, 2.0)); SetLocalInt(OBJECT_SELF, "irapquet", 100); } Désormais, si ce brave pnj ne fait rien pendant 6 secondes alors qu'il est censé suivre le pj, il va directement le suivre de nouveau. Une variante : Code : void main ()
{ if(GetLocalInt(OBJECT_SELF, "irapquet")==100) { if(GetCurrentAction()!=ACTION_FOLLOW || ACTION_DIALOGOBJECT) { ActionForceFollowObject(GetFirstPC(), 2.0); } } } Ici, même pendant un combat, le pnj suivra le pj. En fait, il effectuera cette action tant qu'il n'est pas déjà en train de le suivre ou de parler. _________________ ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera. Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera. |
Revenir en haut | ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
encore merci pour tes lumieres
amicalement |
Revenir en haut | ![]() ![]() ![]() |


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