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







La date/heure actuelle est 28/04/2025 23:25:15
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 |
Bien...le probleme du jour
details du probleme A- le PC passe sur le trigger et il s'arrete peu après : le dialogue apparait et il se met à genoux ![]() B- s'il continue sa course : OK pour le dialogue mais il ne se met pas à genoux ![]() voilà le script : NWScript :
void main() { object oEntering = GetEnteringObject(); if (GetIsPC(oEntering)) { if (GetLocalInt(oEntering,"a_genoux")==TRUE) { } else { AssignCommand(oEntering, SpeakString("Par Luchtucruz, ma citee...")); ActionPauseConversation(); AssignCommand(oEntering, ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP, 0.7, 5.0)); SetLocalInt(oEntering,"a_genoux",TRUE); } } } y a t il une fonction qui peut obliger le PC à s'arrêter et tomber à genoux (en perdant la main sur le PC qq secondes) à vos neurones (ne pas tenir compte de ma variable a_genoux) amicalement _________________ Rien ne vaut la recherche lorsqu'on veut trouver quelque chose. [J. R. R. Tolkien] |
Revenir en haut | ![]() ![]() ![]() |
Lavok Légende vivante Messages: 434 Localisation: Sphère planaire |
yellow submarine a écrit : y a t il une fonction qui peut obliger le PC à s'arrêter et tomber à genoux (en perdant la main sur le PC qq secondes) Oui : 'SetCommandable(FALSE, oEntering)' et 'ClearAllActions(oEntering)'._________________ 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 | ![]() ![]() ![]() |
lendraste Grand Maître Chanteur du Conseil ![]() Messages: 1403 Localisation: Quelque part ailleurs |
Lavok a écrit : yellow submarine a écrit : y a t il une fonction qui peut obliger le PC à s'arrêter et tomber à genoux (en perdant la main sur le PC qq secondes) Oui : 'SetCommandable(FALSE, oEntering)' et 'ClearAllActions(oEntering)'.En l'occurrence, il est bon de préciser à quoi servent ces fonctions. SetCommandable (avec le premier paramètre à FALSE) empêche le joueur de continuer à transmettre des commandes à son personnage. Le ClearAllActions va ensuite vider complètement la queue d'action du personnage, ce qui permet d'y insérer autre chose (comme ce que tu cherches à faire). Après cela, il ne faut pas oublier de remettre SetCommandable avec le premier paramètre à TRUE pour que le joueur reprenne la main sur son personnage. Le mieux est d'ailleurs de l'insérer dans la file d'action après les actions forcées que l'on souhaite lui faire faire, de la façon suivante : Code : AssignCommand(oEntering, ActionDoCommand(SetCommandable(TRUE, oEntering))); De cette façon la restitution du contrôle au joueur est ajouté à la queue d'action et jouée après les actions forcées. _________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
merci encore
Lavok a écrit : Oui : 'SetCommandable(FALSE, oEntering)' et 'ClearAllActions(oEntering)'. bien je vais tester cela
amicalement _________________ Rien ne vaut la recherche lorsqu'on veut trouver quelque chose. [J. R. R. Tolkien] |
Revenir en haut | ![]() ![]() ![]() |
Lavok Légende vivante Messages: 434 Localisation: Sphère planaire |
lendraste a écrit : Lavok a écrit : yellow submarine a écrit : y a t il une fonction qui peut obliger le PC à s'arrêter et tomber à genoux (en perdant la main sur le PC qq secondes) Oui : 'SetCommandable(FALSE, oEntering)' et 'ClearAllActions(oEntering)'.En l'occurrence, il est bon de préciser à quoi servent ces fonctions. SetCommandable (avec le premier paramètre à FALSE) empêche le joueur de continuer à transmettre des commandes à son personnage. Le ClearAllActions va ensuite vider complètement la queue d'action du personnage, ce qui permet d'y insérer autre chose (comme ce que tu cherches à faire). Après cela, il ne faut pas oublier de remettre SetCommandable avec le premier paramètre à TRUE pour que le joueur reprenne la main sur son personnage. Le mieux est d'ailleurs de l'insérer dans la file d'action après les actions forcées que l'on souhaite lui faire faire, de la façon suivante : Code : AssignCommand(oEntering, ActionDoCommand(SetCommandable(TRUE, oEntering))); De cette façon la restitution du contrôle au joueur est ajouté à la queue d'action et jouée après les actions forcées. _________________ 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 |
si j ai tout compris cela doit donner cela :
NWScript :
void main() { object oEntering = GetEnteringObject(); if (GetIsPC(oEntering)) { if (GetLocalInt(oEntering,"a_genoux")==TRUE) { } else { SetCommandable(FALSE, oEntering); AssignCommand(oEntering, ClearAllActions()); // mes commandes AssignCommand(oEntering, SpeakString("Par Luchtucruz, ma citee...")); ActionPauseConversation(); AssignCommand(oEntering, ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP, 0.7, 5.0)); SetLocalInt(oEntering,"a_genoux",TRUE); AssignCommand(oEntering, ActionDoCommand(SetCommandable(TRUE, oEntering))); } } } mais j'ai pas du tout comprendre car : le dialogue ok ![]() mais la suite est KKKatastrophique ![]() il ne se met pas à genoux et je perd définitevement la main ![]() amicalement _________________ Rien ne vaut la recherche lorsqu'on veut trouver quelque chose. [J. R. R. Tolkien] |
Revenir en haut | ![]() ![]() ![]() |
lendraste Grand Maître Chanteur du Conseil ![]() Messages: 1403 Localisation: Quelque part ailleurs |
yellow submarine a écrit : mais j'ai pas du tout comprendre car : le dialogue ok ![]() mais la suite est KKKatastrophique ![]() il ne se met pas à genoux et je perd définitevement la main ![]() amicalement Par ailleurs, je tiens à préciser que avec ou sans le SetCommandable, l'animation fonctionnera. Donc, pour faire tes tests, je te suggère de les mettre en remarque jusqu'à ce que tu sois sûr de ton coup. Si j'ai bien compris, la fonction de la variable "a_genoux" est d'empêcher que l'animation soit jouée plus d'une fois (si le personnage entre à nouveau dans le trigger). Ce test peut être évité en détruisant le trigger, tout simplement. Voici ce que cela donnerait (je mets en remarque les SetCommandable qui sont optionnels pour le moment) : NWScript :
void main() { object oEntering = GetEnteringObject(); if (GetIsPC(oEntering)) { AssignCommand(oEntering, ClearAllActions()); AssignCommand(oEntering, ActionSpeakString("")); AssignCommand(oEntering, ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP, 0.7, 5.0)); DestroyObject(OBJECT_SELF); } } Important aussi, le ActionSpeakString à la place du SpeakString. Le premier va s'ajouter dans la queue d'action (ce qui est utile si l'on souhaite insérer une action d'attente (ActionWait) avant une parole) ce qui n'est pas le cas du second qui se joue immédiatement. Essaye ça pour voir (dans un premier temps en laissant le contrôle à ton personnage). Je serais tout de même étonné que cela ne fonctionne pas. PS : j'ai corrigé la phrase prononcée par le personnage en supposant que celui-ci parlait d'une "cité". Désolé si ce n'est pas le cas. _________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
Parfait c'est parfait
![]() amicalement _________________ Rien ne vaut la recherche lorsqu'on veut trouver quelque chose. [J. R. R. Tolkien] |
Revenir en haut | ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
j'ai oublié
lendraste a écrit : (je mets en remarque les SetCommandable qui sont optionnels pour le moment) encore merci amicalement ps: c'est une cité avec des poules, c'est pour cela que j'ai rajouté des "E") ![]() _________________ Rien ne vaut la recherche lorsqu'on veut trouver quelque chose. [J. R. R. Tolkien] |
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