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 21:23:51
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 |
S@ntoS Seigneur Messages: 169 Localisation: J'aimerais bien le savoir. |
Salut,
Je rencontre un problème avec les persos de niveau 20 et plus. Ces satanés PJs sont immunisés contre pas mal de choses. Impossibles de les paralyser, par exemple. Or, j'aimerais les paralyser si ceux-ci pénètrent dans un trigger donné (je sais que s'est possible avec les variables « true » et « false ». Je suis donc obligé de passer par un script. Ce script devra être intégrer dans le « OnEnter » du trigger. Voilà ce que devrais faire le script : 1 : Le pj devra porter une armure particulière (via tag) pour ne pas subir la paralysie. (attention, il doit la porter et ne pas se contenter de la posséder dans son inventaire) 2 : S'il ne porte pas l'armure, il subira une paralysie de « x secondes » ou « x rounds ». (un « DelayCommande » pourrait faire l'affaire avec la variable « True ») Si savez comment réaliser ce script, merci de me le communiquer. Je vous en serai reconnaissant. @+ f€r. _________________ L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Le RP, cé vrémant tro z'injuste ! |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
Quelques chose dans ce goût-là ? NWScript : void main() { object oEnter = GetEnteringObject(); // test pj or not pj ?? porte-t-il l'armure ?? if (GetIsPC(oEnter) && GetTag(GetItemInSlot(INVENTORY_SLOT_CHEST,oEnter)) != "Tagdel'armure") { ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectParalyze(),oEnter, 10.0);} } _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
Akroma-81 Novice Messages: 14 |
Ce script marche mais le probleme c'est si le joueur qui entre sur le trigger est immunisé à la paralysie ou a liberté de mouvement, là ça ne marche plus, faudrait annuler ces effets quand il entre sur le trigger pour qu'il puisse être paralysé, ou alors on met plusieurs effets comme renversement, sommeil, pétrification...pour être sûr qu'il soit bien bloqué.
Pour retirer des effets permanents que donnent des objets équipés sur le joueur je ne sais pas du tout comment faire. |
Revenir en haut | |
S@ntoS Seigneur Messages: 169 Localisation: J'aimerais bien le savoir. |
Salut,
Tout d'abord, merci pour les réponses. Oui, effectivement, Akroma a raison. La première ligne du code ne devrait pas poser de problème, Longbow. Pour la seconde, cela s'avère plus délicat. En fait, je pense qu'il faudrait raisonner en termes de script et non de règles du jeu. Par exemple, quand on veut entamer une discussion entre un PJ et un PNJ via un Speakstring, on commence par bloqué le PJ pour empêcher celui-ci de partir avant la fin du dialogue. La commande "true" et "false" sont appliquées. Concrètement, le joueur n'a plus la main sur son PJ et doit attendre la fin du dialogue pour recommencer à jouer. Bien sur, il s'agit d'un pis-aller mais il pourrait s'avérer efficace. Kiky le Magnifique, avait pondu un script du genre. Malheureusement, avec le hacking du site, ce script fut perdu. Merci de votre aide. @+ f€r. _________________ L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Le RP, cé vrémant tro z'injuste ! |
Revenir en haut | |
S@ntoS Seigneur Messages: 169 Localisation: J'aimerais bien le savoir. |
Ah, au fait, j'ai déjà un script avec plusieurs effets s'appliquant en fonction de la classe du perso. Mais cette solution me convient à moitié. J'aimerais que ces pièges soient dissuasifs et contraignent le joueur à se procurer la dite armure. Je connaît l'ingéniosité et la persévérance de certains rôlistes qui parviennent à des tours de forces jugés impossibles par les créateur de modules.
@+ f€r. _________________ L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Le RP, cé vrémant tro z'injuste ! |
Revenir en haut | |
kiky.le.magnifique Homme très gay Messages: 907 Localisation: Camping de la nation martienne... |
S@ntoS a écrit : Par exemple, quand on veut entamer une discussion entre un PJ et un PNJ via un Speakstring,
Kiky à la rescousse!
on commence par bloqué le PJ pour empêcher celui-ci de partir avant la fin du dialogue. La commande "true" et "false" sont appliquées. Concrètement, le joueur n'a plus la main sur son PJ et doit attendre la fin du dialogue pour recommencer à jouer. Bien sur, il s'agit d'un pis-aller mais il pourrait s'avérer efficace. Kiky le Magnifique, avait pondu un script du genre. Malheureusement, avec le hacking du site, ce script fut perdu. Attention aux secousses! NWScript :
//OnEnter d'un declancheur de tag "aEnter" entourant le PNJ de tag "Marine" void main() { object oPJ = GetEnteringObject(); object oMar = GetObjectByTag("Marine"); if (GetTag(OBJECT_SELF)=="aEnter") { SetCommandable(FALSE, oPJ); AssignCommand(oMar, ActionWait(2.0)); AssignCommand(oMar, ActionSpeakString("")); AssignCommand(oMar, ActionWait(1.5)); AssignCommand(oMar, ActionSpeakString("")); AssignCommand(oMar, ActionWait(1.5)); AssignCommand(oMar, ActionSpeakString("tu devais cauchemarder.")); AssignCommand(oMar, ActionDoCommand(SetCommandable(TRUE, oPJ))); DestroyObject(OBJECT_SELF); } } Je crois que c'est de ça dont tu parlais... _________________ 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 | |
S@ntoS Seigneur Messages: 169 Localisation: J'aimerais bien le savoir. |
Salut, encore...
Voilà, y-qu' a demander, j'veux dire... Merci Kiky. C'est exactement ça. Merci Longbow, aussi. Je compile le script ce soir (si j'ai le temps ou courant cette semaine au plus tard) et je le poste aussitôt. @+ f€r. _________________ L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Le RP, cé vrémant tro z'injuste ! |
Revenir en haut | |
S@ntoS Seigneur Messages: 169 Localisation: J'aimerais bien le savoir. |
Salut,
Voici la seconde partie du script, celle qui immobilise le PJ. NWScript :
//OnEnter d'un declancheur. void main() { object oPJ = GetEnteringObject(); AssignCommand(oPJ,ClearAllActions()); SetCommandable(FALSE, oPJ); DelayCommand (20.0, SetCommandable(TRUE, oPJ)); } Le perso est bien paralysé durant une période de 20 secondes. Problème, le PJ ne s'arrête pas obligatoirement sur le déclencheur. Si le joueur clique sur une partie de la zone au-delà du trigger, le PJ traverse le trigger et ne s'immobile qu'une fois arrivé à destination. J'ai cru qu'avec la commande « ClearActions » le problème serait résolu, mais non. Quelqu'un aurait-il une idée ? D'avance merci. @+. F€r. _________________ L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Le RP, cé vrémant tro z'injuste ! |
Revenir en haut | |
S@ntoS Seigneur Messages: 169 Localisation: J'aimerais bien le savoir. |
Salut,
Je suis fier de moi, un newb de mon niveau (plutôt bas), et pourtant j'ai trouvé la solution - merci au léxicon. La fonction « EffectCutsceneImmobilize » permet d'immobiliser une cible quel que soit le cas de figure. Magnifique ! Par contre tous ces efforts cérébraux ont grillé le dernier neurone qui me restait. Je suis depuis en convalescence. Quelqu'un saurait-il comment compiler ce bout de script avec celui de Longbow? C'est à dire: « If » le PJ possède telle armure, il ne subit aucun effet néfaste. « else », il est parlysé. Merci d'avance. Je vais me boire une grande bière, moi. @+. F€r. Voici le bout de script: NWScript : //OnEnter d'un declancheur de tag. void main() { object oPJ = GetEnteringObject(); AssignCommand(oPJ,ClearAllActions()); effect eImmobilize = EffectCutsceneImmobilize(); effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE); effect eVis2 = EffectVisualEffect(VFX_DUR_PARALYZED); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPJ); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eImmobilize, oPJ, 10.0); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis2, oPJ, 10.0); } _________________ L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Le RP, cé vrémant tro z'injuste ! |
Revenir en haut | |
Athanor salamander Légende vivante Messages: 306 Localisation: Ecole du Script |
Il me semble que les extraordinaryeffect passent à travers les immunités.
A tester _________________ Atha, Artisan Scripteur. meet the most beautiful woman in the world |
Revenir en haut | |
S@ntoS Seigneur Messages: 169 Localisation: J'aimerais bien le savoir. |
Nan nan, testé! Ca marche avec un moine niveau 27 et immunisé à tout ce qu'y pratiquement l'être.
_________________ L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Le RP, cé vrémant tro z'injuste ! |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
Il me semble qu'on arrive à ceci... NWScript : void main() { object oEnter = GetEnteringObject(); if (GetIsPC(oEnter) && GetTag(GetItemInSlot(INVENTORY_SLOT_CHEST,oEnter)) != "Tagdel'armure") // if (GetTag(GetItemInSlot(INVENTOR Y_SLOT_CHEST,oEnter)) == "Tagdel'armure") { AssignCommand(oEnter,ClearAllActions()); effect eImmobilize = EffectCutsceneImmobilize(); effect eVis = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE); effect eVis2 = EffectVisualEffect(VFX_DUR_PARALYZED); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oEnter); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eImmobilize, oEnter, 10.0); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis2, oEnter, 10.0); } } _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
S@ntoS Seigneur Messages: 169 Localisation: J'aimerais bien le savoir. |
Je viens d'arriver du boulot. Je test ça tout de suite. Merci Longbow.
@+. f€r. _________________ L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Le RP, cé vrémant tro z'injuste ! |
Revenir en haut | |
S@ntoS Seigneur Messages: 169 Localisation: J'aimerais bien le savoir. |
Salut,
Le script fonctionne parfaitement. Merci à toit Longbow. Comme il est d'usage, j'ai rajouté ton nom, la date et l'url du site sur lequel le script à été publié. @+. F€r. _________________ L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Le RP, cé vrémant tro z'injuste ! |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Que l'Ombre de Cyric t'accompagne...
_________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
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