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 15:49:08
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 |
AZAZEL11 Seigneur Messages: 156 |
salut, après plusieurs tentatives pour résoudre mon problème je m'en remet à vous chers maitres scripteurs. C'est qu'en réalité j'ai un script de lycanthrope ici qui fonctionne bien. Cependant, lorsque le PJ subit un sort de dissipation, tous les effets de lycanthropie et de bonus (ajoutés par moi même) se dissipent. Si je ne me trompe pas un *SuperNaturalEffect* ne fait que garder les paramètres même si le PJ se repose. Donc ici je crois qu'il faut un SubType (extraordinary effect) mais je ne suis pas certain...
Enfin bref, quelqu'un sait ce qu'il faut pour que les sorts de dissipations n'aillent aucuns effets sur ces bonus? (eEffect) ÉDIT: j'ai trouvé la solution, et voici le script opérationnel (pour les intéressés^^) NWScript : #include "nw_i0_tool" void main() { object oPC = GetItemActivator(); // GetItemActivator(); effect eEffect= GetFirstEffect(oPC); int nLvl= GetHitDice(oPC); int nBonus= GetHitDice(oPC) / 2 + 2;// un calcul pour que tout soit proportionnel aux niveaux ////le bonus est proportionnel au niveau ((lvl * 0.5 + 3)) une moyenne assez bonne //pour les bas niveaux, if (nBonus > 10) nBonus = 10; //on exagere pas sur les bonus non plus lol (10 max) object oItem = GetItemActivated(); string sTagItemForme = "SOW_VRAI_GAROU" ; int nAnim= ANIMATION_LOOPING_SPASM; int nAnim2=ANIMATION_FIREFORGET_TAUNT; effect eVfx1 = EffectVisualEffect(VFX_IMP_POLYMORPH); effect ePolyGarou = EffectPolymorph(POLYMORPH_TYPE_WEREWOLF, TRUE); ////////////////////Azazel supernatural effect/////// ////////////////////////////// //////// ////////////////////////////// /////////////////////// //// modification pour que les effets ne soient pas dissipables ////////////////////////////// ////////////////////// effect eAntiDispel= EffectSpellImmunity(EFFECT_TYPE_DISPELMAGICALL); effect eAC= EffectACIncrease(2 + nBonus, AC_NATURAL_BONUS, AC_VS_DAMAGE_TYPE_ALL); effect eAbility = EffectAbilityIncrease(nBonus,ABILITY_DEXTERITY); effect eForce =EffectAbilityIncrease(nBonus,ABILITY_STRENGTH); effect eAttack = EffectAttackIncrease(3 + nBonus, ATTACK_BONUS_OFFHAND); ///je sais pas c lequel pour les mains... effect eAttack2 = EffectAttackIncrease(3 + nBonus, ATTACK_BONUS_ONHAND); ///je sais pas c lequel pour les mains... effect eConstitution = EffectAbilityIncrease(nBonus,ABILITY_CONSTITUTION); effect eDamage = EffectDamageReduction(5, DAMAGE_POWER_NORMAL, 0); effect eRegn = EffectRegenerate(1, 2.0);///desactiver pour erreur de temps sur script ////////////les ExtraordinaryEffect/////////// /// ePolyGarou = ExtraordinaryEffect(ePolyGarou) ; eAC= ExtraordinaryEffect(eAC); eAbility= ExtraordinaryEffect(eAbility); eForce= ExtraordinaryEffect(eForce); eAttack= ExtraordinaryEffect (eAttack); eAttack2 = ExtraordinaryEffect (eAttack2); eConstitution= ExtraordinaryEffect (eConstitution); eDamage= ExtraordinaryEffect(eDamage); eRegn= ExtraordinaryEffect(eRegn); ////////////////////////////// /////////////////// // if( GetTag(oItem) == sTagItemForme ){ if( GetLocalInt(oPC, "FORME_LOUPGAROU") ){ effect eEffect = GetFirstEffect(oPC); while( GetIsEffectValid(eEffect) ){ if ( GetIsEffectValid(eEffect) ) { //if (GetEffectType(eEffect)==EFFEC T_TYPE_POLYMORPH ){ RemoveEffect(oPC, eEffect); RemoveEffect (oPC,eAC); RemoveEffect (oPC,eForce); RemoveEffect (oPC,eAbility); RemoveEffect (oPC,eAntiDispel); } eEffect=GetNextEffect(oPC); } DeleteLocalInt(oPC, "FORME_LOUPGAROU"); } else { // je ne suis pas loup-garou, transformation //if( GetResRef(oItem) == "extraitdebell001" ) return ; // la potion seulement pour le retour a la normale // effect eEffect = GetFirstEffect(oPC); if( GetResRef(oItem) == "extraitdebell001" ) { while(GetIsEffectValid(eEffect)) { /*RemoveEffect (oPC,eAC); RemoveEffect (oPC,eForce); RemoveEffect (oPC,eAbility); RemoveEffect (oPC,eAntiDispel); */ RemoveEffect (oPC,eEffect); //on applique effet } eEffect= GetNextEffect (oPC); } //AssignCommand(oPC, PlaySound("as_an_wolveshw l2")); //ActionWait(1.0); ActionPlayAnimation(nAnim,1.3,2.0); DelayCommand (1.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVfx1, oPC)); //ActionPlayAnimation (nAnim,1.0,3.0); ActionPlayAnimation(nAnim,1.0,2.0); DelayCommand(2.0,ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePolyGarou, oPC)); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAC, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eForce, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAbility, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAttack, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAttack2, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eConstitution, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDamage, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eRegn, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAntiDispel,oPC); AssignCommand(oPC, PlaySound("as_an_wolfhowl1")); DelayCommand(0.1,ActionPlayAnimation(nAnim2, 0.5)); SetLocalInt(oPC, "FORME_LOUPGAROU", TRUE); // CreateItemOnObject("extra itdebell001",oPC); } // test forme actuelle } _________________ L'imagination est plus importante que le savoir. (Albert Einstein) |
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