[SPELL] Tenser Transformation.

Répondre
Partager Rechercher
Bon, c'est surement un peu tard, mais vu que je viens juste de la re-visiter pour NwNRo, je vous livre ici ma version du Sort Tenser Transformation :

en gros :
  • +2d4 en For (maximisable ou Extendable)
    +2d4 en Dex (maximisable ou Extendable)
    +4 en CA (type Dodge)
    +5 en Fortitude
    +1D6 HP par niveau du personnage (maximisable ou Extandable)
    +2 Attack par round
    +1 ToHit pour chaque 2 niveaux du mage.
    Tous les sorts lancés par le mage echoueront. (ie : il peut essayer, mais ca marchera pas...)

Code PHP:

//::///////////////////////////////////////////////
//:: Tensor's Transformation
//:: NW_S0_TensTrans.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
//    Gives the caster the following bonuses:
//        +1 Attack per 2 levels
//        +4 Natural AC
//        20 STR and DEX and CON
//        1d6 Bonus HP per level
//       +5 on Fortitude Saves
//        -10 Intelligence
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 26, 2001
//:://////////////////////////////////////////////
//: Sep2002: losing hit-points won't get rid of the rest of the bonuses
/*#include "ro_ro_rules"
#include "ro_randmatk"
#include "ro_generic"
*/

effect eTenser(int nCasterLevel int MetaMagic METAMAGIC_NONE);

void main()
{
    
//Declare major variables
    
int nLevel GetCasterLevel(OBJECT_SELF);
    
int nHPnCntnDuration,nMod;
    
nDuration GetCasterLevel(OBJECT_SELF);

    
int nMeta GetMetaMagicFeat();
    
//Metamagic
    
if(nMeta == METAMAGIC_EXTEND)
    {
        
nDuration *= 2;
    }
    
//Declare effects
    
effect eDur EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
    
object oPC OBJECT_SELF;
    
effect eFX eTenser(nLevel,nMeta);
/*
////////////////////////////////////////////////////////////////
//:MODIF 2-2 HERE
///////////////////////////////////////////////////////////////
                if (GetIsSecondClass(OBJECT_SELF,10)==TRUE || GetIsSecondClass(OBJECT_SELF,9)==TRUE)
                    {
                    effect eSwing = EffectModifyAttacks(1);
                    eSwing = EffectLinkEffects(EffectRegenerate(5,6.0),eSwing);
                    eFX = EffectLinkEffects(eSwing, eFX);
                    nMod = nLevel;
                    }
*/

    
effect eVis EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
    
//Signal Spell Event
    
SignalEvent(OBJECT_SELFEventSpellCastAt(OBJECT_SELFSPELL_TENSERS_TRANSFORMATIONFALSE));

    
ApplyEffectToObject(DURATION_TYPE_INSTANTeVisOBJECT_SELF);
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARYeFXOBJECT_SELFRoundsToSeconds(nDuration));

/*
    DelayCommand(0.5,TemporaryRoRules(oPC,CLASS_TYPE_FIGHTER,GetCasterLevel(oPC)-1+nMod,RoundsToSeconds(nDuration)));
    DelayCommand(1.2,SendMessageToPC(oPC,"Power : "+ IntToString(GetLocalInt(OBJECT_SELF,"FPower")+GetLocalInt(oPC,"Power"))));
    DelayCommand(1.2,SendMessageToPC(oPC,"Flee : "+ IntToString(GetLocalInt(OBJECT_SELF,"FFlee"))));
    DelayCommand(1.2,SendMessageToPC(oPC,"Def : "+ IntToString(GetLocalInt(OBJECT_SELF,"FDef"))));
    DelayCommand(1.2,SendMessageToPC(oPC,"mAtk : "+ IntToString(GetLocalInt(OBJECT_SELF,"FmAtk"))));
    DelayCommand(1.2,SendMessageToPC(oPC,"Recomputing Ro_stats can pervert your Tenser Stats"));
*/
}



effect eTenser(int nCasterLevel int MetaMagic METAMAGIC_NONE)
{
int nNb d6(nCasterLevel);
int nStr d4(2);
int nDex d4(2);

if(
MetaMagic==METAMAGIC_MAXIMIZE)
    {
    
nNb 6*nCasterLevel;
    
nStr 8;
    
nDex 8;
    }
else if(
MetaMagic == METAMAGIC_EMPOWER)
    {
    
nNb d6(nCasterLevel) *3/2;
    
nStr d4(2) *3/2;
    
nDex d4(2) *3/2;
    }

effect eArmor EffectACIncrease(4);
effect eTempHitPoints EffectTemporaryHitpoints(nNb);
effect eStrInc EffectAbilityIncrease(ABILITY_STRENGTH,nStr);
effect eDexInc EffectAbilityIncrease(ABILITY_DEXTERITY,nDex);
effect eSavFort EffectSavingThrowIncrease(SAVING_THROW_FORT,5);
effect eNoSpell EffectSpellFailure();
effect eAttack EffectAttackIncrease(nCasterLevel/2);
effect eSwing EffectModifyAttacks(2);

effect eLink EffectLinkEffects(eArmor,eTempHitPoints);
eLink =EffectLinkEffects(eStrInc,eLink);
eLink =EffectLinkEffects(eDexInc,eLink);
eLink =EffectLinkEffects(eSavFort,eLink);
eLink =EffectLinkEffects(eNoSpell,eLink);
eLink =EffectLinkEffects(eAttack,eLink);
eLink =EffectLinkEffects(eSwing,eLink);

return 
eLink;

enjoy.
Ben que dire de plus sinon bravo

Je rajoute a mon vieux grimoire (faudrait changer le titre de ce thread eM, mais l'appeler : "Le grimoire" ca serait cool =)

(Le grimoire avait été abandonné par manque de temps, et perte de motivation dus aux hardcode/limite de moteur bloquant, mais avec l'arrivée de HotU, je reprends du service sous peu )

EDIT : En version 3.5, le sort fait :

*+4 en CA, dexteritée, force et constitution
*+5 en vigueur
*Le personnage devient doué au maniement de toutes les armes courantes et de guerre.
*Son BAB est egal a son niveau de personage (cad niveau global ? ou de lanceur de sort ? Je pense celui du nivo global. Donc un bab de guerrier )
*Ses sorts et ses capacité a activer des objets magiques sont perdus pendant la durée du sort
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés