La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 15:49:08


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
AZAZEL11
Seigneur
Inscrit le: 08 Fév 2006
Messages: 156
Répondre en citant
Posté le : 20/10/2006 21:03:01 Sujet du message : effets non dissipables

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

}
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.

_________________
L'imagination est plus importante que le savoir. (Albert Einstein)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 61.797ms