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 01/11/2024 02:02:28
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 |
Asmo Voyageur Messages: 3 |
Bonjour je souhaite creer un module sur la base de la BD "Landfeust de Troy". Hors dans cet univers l'usage de la magie n'est possible qu'a proximité d'un sage d'Eckmul. Ma question est donc la suivante : est'il possible de n'autoriser l'usage de la magie qu'a proximitée d'un pnj (ici un sage d'Eckmul) et si oui comment?
De plus j'aurais souhaité que les joueurs puisse jouer un sage d'Eckmul comment faire? |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
Limiter l'usage de la magie n'est pas une chose aisée... Les éléments de scripts sont disponibles... mais ce qui m'ennuie, c'est où placer ce script... Il y a la solution du Heart Beat Module... mais cela n'est guère performant... Il faudrait créer des sages avec tous le même début de Tag (ex Mago_1, Mago_Test, Mago_Fylangre ...) avec ceci dans le Heart Beat: NWScript :
void main() { object oLanceur =GetLastSpellCaster(); effect eSort = EffectSpellFailure(100); string sLanceurTag = GetTag(oLanceur); string sMago = GetSubString(sLanceurTag,0,4); if (sLanceurTag != "Mago" ||GetDistanceToObject(oLanceur) >= 10.0 ) { ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eSort,GetLastSpellCaster(), 6.0); } } Encore une fois, je ne suis guère satisfait... en fait c'est la proximité qui d'un sage qui me pose problème... Faire une zone antimagie est relativamant simple... mais les sages d'Eckmul même s'ils ne sont pas très remuants, ils bougent quand même _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
lendraste Grand Maître Chanteur du Conseil Messages: 1403 Localisation: Quelque part ailleurs |
Longbow a écrit : Limiter l'usage de la magie n'est pas une chose aisée...
Le patch 1.62 nous offre cette possibilité, puisque tous les scripts de sorts sont maintenant "interruptibles". De mémoire, je ne me souviens pas de la méthode exacte, mais l'idée est qu'un script générique est appelé par tous les scripts de sort de telle sorte que ce script générique puisse produire une condition d'annulation du sort ou n'importe quel effets supplémentaires et spécifique.
Les éléments de scripts sont disponibles... mais ce qui m'ennuie, c'est où placer ce script... Pour le test en lui-même, je pense qu'il va falloir faire un parcours systématiques de toutes les créatures dans un rayon défini autour du lanceur de sort, dans la mesure ou on doit pouvoir détecter un Sage PNJ ou PJ indifféremment. Je n'ai que des pistes à offrir pour le moment car je n'ai pas le temps ni les moyens de faire mieux à l'instant. _________________ 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 | |
Age Novice Messages: 14 |
La commande pour definir le script qui va etre executé a chaque sort lancé est :
NWScript :
//---------------------------- ------------------------------ -------------------- // Allows the module creator to specify a script that will be run before any spellscript is run // You can call SetModuleOverrideSpellscript() at the end of the script specified by // sScriptName. If you call this function this will prevent the original spellscript // (and all craft item code) from being executed. // If you do not add this line, the original spellscript and/or crafting code will // run in addition to your script //---------------------------- ------------------------------ -------------------- void SetModuleOverrideSpellscript(string sScriptName) Tu trouves cette foncton dans la librairie "x2_inc_spellhook" Dans ton script ,si tu executes la fonction : 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. ,
alors le sort ne va pas s'executer. A partir de ça tu peux faire un systeme permettant de tester la presence d'un Sage. |
Revenir en haut | |
Asmo77 Voyageur Messages: 1 |
Franchement je ne m'attendais pas a ce que l'on me reponde si rapidement. Rien que pour cela je vous remercie. En ce qui concerne les scripts je vais tester cela et vous tenir au courant de mes progrets ou de mes déboires.
_________________ Heureux celui qui connaitra le contact de ma lame car sa mort sera rapide. |
Revenir en haut | |
jetrod Novice Messages: 8 |
Bonjour,
Sur le même thème j'aimerai simplement (vite dit ca) interdire l'usage de la magie grâce à un objet comme un anneau que le porteur ne pourrait enlever sans une intervention divine (ou md à défault). Tout simplement pour faire en sorte qu'un prêtre aillant trahi ou décu son dieu ne puisse plus faire usage de la magie (ou un mage ou encore un sorcier aillant pour une raison X ou Y perdu ses pouvoirs). Je me doute que ca ne doit pas etre simple mais je ferai un effort pour essayer de comprendre (ou je donnerai les réponses a mon scripteur ) Merci d'avance Jetrod de Giamo _________________ |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
Avant de pouvoir limiter l'usage de la magie par cet anneau, il faut empêcher le prêtre de retirer l'anneau... Dès que le joueur veut déposer l'anneau... Il trinque et l'anneau revient à son doigt !! Je pense que cela devrait t'aider... 1. Créer un anneau avec "AnoMaudit" comme Tag et "anomaudit" comme ResRef pour la palette 2. un script NWScript : // A PLACER Dans le UnAcquireItem void main() { object oTest = GetModuleItemLost(); object oPossesseur = GetModuleItemLostBy(); if (GetTag(oTest) == "AnoMaudit") { DestroyObject(oTest); object oNew = CreateItemOnObject("anomaudit",oPossesseur); if (GetItemInSlot(INVENTORY_SLOT_RIGHTRING,oPossesseur) != OBJECT_INVALID) { object oAno = GetItemInSlot(INVENTORY_SLOT_RIGHTRING,oPossesseur); AssignCommand(oPossesseur, ActionUnequipItem(oAno)); } AssignCommand(oPossesseur, ActionEquipItem(oNew,INVENTORY_SLOT_RIGHTRING)); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_SOUND_BURST),oPossesseur); SendMessageToPC(oPossesseur, "Vous ne pouvez retirer cet anneau sans subir la colere de votre Dieu..."); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(20, DAMAGE_TYPE_DIVINE), oPossesseur); } // pour d'eventuels autres objets... // else if (GetTag(oTest) == "????") // { } } _________________ 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