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 19:22:41
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 |
Zanon-blood Acolyte Messages: 38 |
Bonjour a tous
j'ait esséyer de fair un script que quand je rassemble 4 objets qui sont épée armure bouclier casque qui ont un éffet et qui donne des points de vie que quand les 4 morceaux sont rasembler mait vu que je suis pas douer en scipte je demande votre aide merci d'avence |
Revenir en haut | |
castorus Acolyte Messages: 23 |
Alors, cher ami, nous allons donc aborder ensemble ce sujet qu'est l'effet appliquer sur un objet si il s'équipe de 4 items définis ^^.
il faut savoir que les script de NWN sont déclenchés (appellés) par des events (evenement) definis par le programme Neverwinter Night lui même. l'event que nous utiliseront sera donc un événement se déclenchant dès qu'une créature s'équipe d'un item. Le module en lui meme comporte un event agissant ainsi, il s'agit de l'event OnPlayerEquipItem il se trouve dans : Editer -> Propriétées du module -> Evénements voici donc le script que nous mettrons en l'event OnPlayerEquipItem via son boutton edit : NWScript :
int GetIsEquipped(string ResRefItem,object oCreature); void main() { object oPC = GetPCItemLastEquippedBy(); string sResRefObj1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/ string sResRefObj2 = "obj2"; string sResRefObj3 = "obj3"; string sResRefObj4 = "obj4"; int PV = GetMaxHitPoints(oPC); int PVActuel = GetCurrentHitPoints(oPC); int DiffPV = PV-PVActuel; if((GetIsEquipped(sResRefObj1,oPC)==1)&& (GetIsEquipped(sResRefObj2,oPC)==1)&& (GetIsEquipped(sResRefObj3,oPC)==1)&& (GetIsEquipped(sResRefObj4,oPC)==1)) { ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(DiffPV),oPC); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_HEALING_L),oPC); SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !"); } } int GetIsEquipped(string ResRefItem,object oCreature) { int i = 0; int HasItem = 0; while(i<=NUM_INVENTORY_SLOTS) { if(GetResRef(GetItemInSlot(i,oCreature))==ResRefItem) { HasItem = 1; } i++; } return HasItem; } Ainsi, dès que vous vous équiperez des 4 items prédefinis par leur tag un effet soignant tous les pv du joueurs s'étant équipé de tous les items précisé s'effectuera ^^ .Si ce script ne te conviens pas, précise moi les changements à effectuer , je prendreais les mesures nécessaires ^^. BYEBYE |
Revenir en haut | |
Zanon-blood Acolyte Messages: 38 |
C'est cool vraiment c'est toute a fait sa mait
c'est possible de faire plusieur equipement avec des effet different 5 équipement qui ont chacun 4 morceau et des effet different et aussi de maitre un effet qui dur temp que on a les 4 morceau de l'armure 1 effet de mort un autre de feu de froid de terre et de foudre. et merci deja pour sa |
Revenir en haut | |
castorus Acolyte Messages: 23 |
Oui c'est possible, mais je te demanderais les effets produit par les les cinq lot de 4 items ainsi que les effets visuels qu'ils prduiront sur leur possesseur. ^^
|
Revenir en haut | |
Zanon-blood Acolyte Messages: 38 |
allor pour chaque set d'armure de la mort
VFX_DUR_PROTECTION_EVIL_MAJOR comme effet qui dur augmente les point de vie la 2 eme lui de la foudre VFX_DUR_PROTECTION_GOOD_MAJOR augmente la dextérite le 3 eme lui du feu VFX_DUR_AURA_FIRE augmente la constitusion le 4 eme lui de le terre VFX_DUR_IOUNSTONE augmente la force le 5 eme lui de l'eau VFX_DUR_ELEMENTAL_SHIELD augmente la sagesse Dernière édition par Zanon-blood le 04/02/2006 01:17:09; édité 1 fois
|
Revenir en haut | |
castorus Acolyte Messages: 23 |
Arf problème, les constantes d'effets visuels pouvant duré sont ceux commençant par VFX_DUR_
car les autres leurs effets visuels ne peuvent pas êtres prolongés malheureusement ils auront un effet visuel instantanément. Il faut donc malheureusement en choisir un autre. Je te propose de m'ajouter a ta liste de contact msn : castorus9@hotmail.com je pourrais t'aider pleinement. |
Revenir en haut | |
Zanon-blood Acolyte Messages: 38 |
oui j'ai vue mon ereur je re fait.
|
Revenir en haut | |
Zanon-blood Acolyte Messages: 38 |
excuse moi pour cette faute
|
Revenir en haut | |
castorus Acolyte Messages: 23 |
Pas besoin de s'excuser ^^ si on savait tout sans faire d'erreur tu n'aurais pas besoin de ce forum ^^ on a tous débuter alors profite de ce que tu auras appris simplement ne te pose pas d'autre questions^^
|
Revenir en haut | |
castorus Acolyte Messages: 23 |
Voici donc le script complet :
NWScript :
int GetIsEquipped(string ResRefItem,object oCreature); void main() { object oPC = GetPCItemLastEquippedBy(); int PV = GetMaxHitPoints(oPC); int PVActuel = GetCurrentHitPoints(oPC); int DiffPV = PV-PVActuel; //Set d'armure de la Mort. string sResRefObj1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/ string sResRefObj2 = "obj2"; string sResRefObj3 = "obj3"; string sResRefObj4 = "obj4"; if((GetIsEquipped(sResRefObj1,oPC)==1)&& (GetIsEquipped(sResRefObj2,oPC)==1)&& (GetIsEquipped(sResRefObj3,oPC)==1)&& (GetIsEquipped(sResRefObj4,oPC)==1)) { ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(DiffPV),oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR),oPC); SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !"); } //set d'armure de la foudre string sResRefObjDeux1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/ string sResRefObjDeux2 = "obj2"; string sResRefObjDeux3 = "obj3"; string sResRefObjDeux4 = "obj4"; if((GetIsEquipped(sResRefObjDeux1,oPC)==1)&& (GetIsEquipped(sResRefObjDeux2,oPC)==1)&& (GetIsEquipped(sResRefObjDeux3,oPC)==1)&& (GetIsEquipped(sResRefObjDeux4,oPC)==1)) { ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectAbilityIncrease(ABILITY_DEXTERITY,12),oPC); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR),oPC); SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !"); } //set d'armure du feu string sResRefObjTrois1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/ string sResRefObjTrois2 = "obj2"; string sResRefObjTrois3 = "obj3"; string sResRefObjTrois4 = "obj4"; if((GetIsEquipped(sResRefObjTrois1,oPC)==1)&& (GetIsEquipped(sResRefObjTrois2,oPC)==1)&& (GetIsEquipped(sResRefObjTrois3,oPC)==1)&& (GetIsEquipped(sResRefObjTrois4,oPC)==1)) { ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectAbilityIncrease(ABILITY_CONSTITUTION,12),oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectVisualEffect(VFX_DUR_AURA_FIRE),oPC); SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !"); } //set d'armure de la terre string sResRefObjQuatre1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/ string sResRefObjQuatre2 = "obj2"; string sResRefObjQuatre3 = "obj3"; string sResRefObjQuatre4 = "obj4"; if((GetIsEquipped(sResRefObjQuatre1,oPC)==1)&& (GetIsEquipped(sResRefObjQuatre2,oPC)==1)&& (GetIsEquipped(sResRefObjQuatre3,oPC)==1)&& (GetIsEquipped(sResRefObjQuatre4,oPC)==1)) { ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectAbilityIncrease(ABILITY_STRENGTH,12),oPC); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_DUR_IOUNSTONE),oPC); SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !"); } //set d'armure de l'eau string sResRefObjCinq1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/ string sResRefObjCinq2 = "obj2"; string sResRefObjCinq3 = "obj3"; string sResRefObjCinq4 = "obj4"; if((GetIsEquipped(sResRefObjCinq1,oPC)==1)&& (GetIsEquipped(sResRefObjCinq2,oPC)==1)&& (GetIsEquipped(sResRefObjCinq3,oPC)==1)&& (GetIsEquipped(sResRefObjCinq4,oPC)==1)) { ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectAbilityIncrease(ABILITY_WISDOM,12),oPC); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD),oPC); SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !"); } } int GetIsEquipped(string ResRefItem,object oCreature) { int i = 0; int HasItem = 0; while(i<=NUM_INVENTORY_SLOTS) { if(GetResRef(GetItemInSlot(i,oCreature))==ResRefItem) { HasItem = 1; } i++; } return HasItem; } BYEBYE ^^ |
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