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 05:53:32
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
scalam Voyageur Messages: 2 |
J'aimerai savoir comment faire pour qu'un Pnj s'assoi sur une chaise, je sais que ce n'est pas possible qu'il soit assis des le debut alors ce que je voudrai savoir c'est comment faire pour pour que au lancement du module le pnj aille s'assoir sur la chaise
_________________ cul qui gratte le soir, doigt qui pue le matin!!! |
Revenir en haut | |
Asmo Voyageur Messages: 3 |
Tient en espérant que cela puisse te servir.
Scripts servant à faire assoir un joueur ou un pnj sur terre ou sur un banc, une chaise, un tonneau etc... Assoir un Joueur sur une chaise, banc, ect : NWScript :
void main() { object oUtilisateur = GetLastUsedBy (); // l'utilisateur d l'objet object oChaise; if (GetIsPC(oUtilisateur)) // si l'utilisateur est un joueur (PC) { oChaise = GetNearestObjectByTag ("Chaise", oUtilisateur, 0); // Chaise (ou ce que vous voudrez) est le tag que doit avoir l'objet; une chaise, banc, tabouret, ect. Du moins, avec GetNearestObjectByTag() le joueur essayera d'aller s'assoir sur l'objet le plus proche et portant ce tag. if (GetIsObjectValid(oChaise) && !GetIsObjectValid (GetSittingCreature (oChaise))) { AssignCommand (oUtilisateur, ActionSit (oChaise)); // Assit le joueur sur l'objet Chaise } } } ATTENTION : Ce script doit être dans le OnUsed de l'objet. Assoir un PNJ (personnage non-joueur) sur une chaise, banc, ect : * Ce script est déjà présent dans le jeu sous le nom de NW_C2_SITTING sous All Ressources NWScript :
void main() { if (!GetIsInCombat() && !IsInConversation(OBJECT_SELF)) if (GetCurrentAction() != ACTION_SIT) { ClearAllActions(); int i = 1; // trouver la premiere chaise de libre object oChaise = GetNearestObjectByTag("Chaise", OBJECT_SELF,i); int bFoundChair = FALSE; while (bFoundChair == FALSE && GetIsObjectValid(oChaise) == TRUE) { // Cette chaise est libre if (GetIsObjectValid(GetSittingCreature(oChaise)) == FALSE) { bFoundChair = TRUE; ActionSit(oChaise); // le NPJ s'assoit } else // pas de chaise libre, alors on en cherche une autre { i++; oChaise = GetNearestObjectByTag("Chaise", OBJECT_SELF,i); } } if (bFoundChair == FALSE) // on a trouver aucune chaise, objet ou s'assoir { ClearAllActions(); ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD); } } } ATTENTION : Ce script doit être dans le OnHeartBeat de l'objet si vous voulez qu'il se rassoit après un combat ou une discution. Voila deux scripts de base très utile ! Maintenant, voici comment faire assoir un joueur sur le sol. Le script doit être placer dans le OnUsed d'un objet : NWScript :
void main() { // joueur qui va executer l'animation object oPC=GetLastUsedBy(); // type d'animation; ici c'est s'assoir sur le sol int nAnimation = ANIMATION_LOOPING_SIT_CROSS; // vitesse d'execution de l'animation; ici normale float fVitesse = 1.0; // duree, en seconde, de l'animation; ici le joueur va rester au sol 1000 sec ou jusqu'a ce qu'il se releve float fDuree = 1000.0; AssignCommand(oPC, ActionPlayAnimation(nAnimation,fVitesse,fDuree)); // Ici on assigne au joueur oPC l'action de d'executer l'animation nAnimation pour fDuree de seconde } Pour faire assoir un PNJ, il suffit de remplacer le object oPC=GetLastUsedBy() ; par object oPC=OBJECT_SELF ; et de mettre le tout dans son OnHeartBeat. [Edit d'Alenn Tax :] Il y a sur ce forum une balise <nwscript>. Merci de l'utiliser.[/Edit] |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
erreur de frappe... sorry... _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
Pourquoi ne pas te donner directement l'adresse du site, parce que tu n'as pas l'air de connaître sinon tu n'aurais pas poser cette question...
[http] Voili voilou. Il y a énormément de scripts (141) prêts à l'emploi, bien expliqués et super utiles... _________________ Cogito ergo sum. |
Revenir en haut | |
Psychopompos Seigneur Messages: 209 Localisation: Ici |
Asmo a écrit : Assoir un PNJ (personnage non-joueur) sur une chaise, banc, ect : * Ce script est déjà présent dans le jeu sous le nom de NW_C2_SITTING sous All Ressources NWScript :
void main() { if (!GetIsInCombat() && !IsInConversation(OBJECT_SELF)) if (GetCurrentAction() != ACTION_SIT) { ClearAllActions(); int i = 1; // trouver la premiere chaise de libre object oChaise = GetNearestObjectByTag("Chaise", OBJECT_SELF,i); int bFoundChair = FALSE; while (bFoundChair == FALSE && GetIsObjectValid(oChaise) == TRUE) { // Cette chaise est libre if (GetIsObjectValid(GetSittingCreature(oChaise)) == FALSE) { bFoundChair = TRUE; ActionSit(oChaise); // le NPJ s'assoit } else // pas de chaise libre, alors on en cherche une autre { i++; oChaise = GetNearestObjectByTag("Chaise", OBJECT_SELF,i); } } if (bFoundChair == FALSE) // on a trouver aucune chaise, objet ou s'assoir { ClearAllActions(); ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD); } } } ATTENTION : Ce script doit être dans le OnHeartBeat de l'objet si vous voulez qu'il se rassoit après un combat ou une discution. En cherchant comment faire un PNJ sur une chaise je suis tombé sur ce topic mais j'ai un peu galéré en raison de l'imprécision de ce message. J'ai finalement trouvé comment faire : - placer une chaise et un PNJ ; - définir la chaise comme "utilisable" ; - lui donner le tag NW_CHAIR ; - définir le script x0_o2_use_chair comme "OnUsed" ; - définir le script NW_C2_SITTING comme OnHeartBeat du PNJ. Pour s'asseoir, il faut juste que le PNJ ait la place d'accéder à la chaise. A propos du tag, voici un extrait du script : 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. Le tag de la chaise doit être identique à celui indiqué entre guillemets dans la parenthèse, NW_CHAIR est juste le nom utilisé dans la version non modifiée du script. Attention, la ligne GetNearestObjectByTag... apparaît deux fois dans le script. _________________ "Oh Destin cruel! Cruel, cruel cruel Destin! Oh cruauté du destin!" |
Revenir en haut | |
zelmir1337 Novice Messages: 5 |
Bonjour, je suis nouveau sur ce forum et je débute avec l'editeur nwn2.
Voici mon problème. J'ai essayé plusieur scripte pour faire en sorte que le joueur puisse s'assoire mais cela ne marche qu'a moitié, quand je clique sur la chaise mon personnage s'assoi mais a coté de la chaise jamais dessu. mon souci est que je ne trouve pas de quoi le problème peu venir. Alors si quelqun pourai m'eclairer sur ce sujet je lui en serais trés reconnaissant. |
Revenir en haut | |
Psychopompos Seigneur Messages: 209 Localisation: Ici |
Aucune idée d'explication, mais ici tu es dans la section dédiée aux scripts de NWN1.
La section des scripts de NWN2 est là : [http] _________________ "Oh Destin cruel! Cruel, cruel cruel Destin! Oh cruauté du destin!" |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Je déplace le sujet dans le bon forum, et j'ajoute au passage que cette question a été posée une trentaine de fois : une recherche aurait sûrement donné un résultat probant
_________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
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