[DD SPELL]Ray Of Frost

Répondre
Partager Rechercher
Code PHP:

//::///////////////////////////////////////////////
//:: Ray of Frost
//:: [NW_S0_RayFrost.nss]
//:: Copyright (c) 2000 Bioware Corp.
//:://////////////////////////////////////////////
/*
    If the caster succeeds at a ranged touch attack
    the target takes 1d4 damage.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: feb 4, 2001
//:://////////////////////////////////////////////

#include "NW_I0_SPELLS"    
void main()
{
    
//Declare major variables
    
object oTarget GetSpellTargetObject();
    
int nMetaMagic GetMetaMagicFeat();
    
int nCasterLevel GetCasterLevel(OBJECT_SELF);
    
int nDam d3(1);
    
effect eDam;
    
effect eVis EffectVisualEffect(VFX_IMP_FROST_S);
    
effect eRay EffectBeam(VFX_BEAM_COLDOBJECT_SELFBODY_NODE_HAND);

    if(!
GetIsReactionTypeFriendly(oTarget))
    {
        
//Fire cast spell at event for the specified target
        
SignalEvent(oTargetEventSpellCastAt(OBJECT_SELFSPELL_RAY_OF_FROST));
        
eRay EffectBeam(VFX_BEAM_COLDOBJECT_SELFBODY_NODE_HAND);
        
//Make SR Check
        
if(!MyResistSpell(OBJECT_SELFoTarget))
        {
        if (
TouchAttackRanged(oTarget,TRUE)==0)
        {
        
SendMessageToPC(OBJECT_SELF,"You missed the target, and lost the magic energy in the process");
            
// Calcule la position du miss
vector vPos GetPosition(oTarget);
float vPos.x=vPos.x+Random(5.0)-2.0;
float vPos.y=vPos.y+Random(5.0)-2.0;
vPos Vector(vPos.x,vPos.y,vPos.z);
lLocation Location(GetArea(oTarget),vPos,1.0);
                
ApplyEffectAtLocation(DURATION_TYPE_INSTANTeVisoLocation);
        return;
        }
            
//Enter Metamagic conditions
            
if (nMetaMagic == METAMAGIC_MAXIMIZE)
            {
               
nDam ;//Damage is at max
            
}
            else if (
nMetaMagic == METAMAGIC_EMPOWER)
            {
               
nDam nDam nDam/2//Damage/Healing is +50%
            
}
            
//Set damage effect
            
eDam EffectDamage(nDamDAMAGE_TYPE_COLD);
            
//Apply the VFX impact and damage effect

            
ApplyEffectToObject(DURATION_TYPE_INSTANTeVisoTarget);
            
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamoTarget);
        }
    }
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARYeRayoTarget1.7);

GASP !!!!
Je m'imaginais déjà scripter ou réflechir a faire la fonction rangeTouchAttack...Mais c implementé !!
Mais pourquoi bioware l'utilise pas ??
Surement que le gars qu ia fait la fonction a du etre viré en cours de developpement et il a pas eu le temps de dire au autres developpeurs de l'utiliser lol ! :bouffon:
Enfin bon, c cool ca ^^.

Autre idée a développer : plutot que d'avoir un
Code PHP:

ApplyEffectToObject(DURATION_TYPE_INSTANTeVisoTarget); 

avec le
Code PHP:

eVis EffectVisualEffect(VFX_IMP_FROST_S); 

si il loupe le sort, ben il ne devrais pas il y avoir un impact vu que l'on misse la cible. A la place ce qui serait sympa, mais ca demande plus de bidouille, c que le bout "aggressif" du rayon ne soit pas sur la cible elle meme si ca misse, mais un peu a coté (je ne crois pas qu'on puisse gerer ca avec les location vu que leffet beam demande un Objet, mais peut etre qu'en prenant un objet au hasard au alentour ca pourrait bien rendre (enfin faut voir si ca part derriere ce n'est peut etre pas top ^^ mais on peut gerer ca avec un shape_cone invisible qui liste les objets dans le cone et donc le rayon ciblerait un objet au hasard dans ce cone.)
Je vais essayer de voir ce que ca donne ^^ et je montre le code une fois fini.
j'essairait bien un ApplyEffectToLocation, avec
Code PHP:

vector vPos GetPosition(oTarget);
float vPos.x=vPos.x+Random(5.0)-2.0;
float vPos.y=vPos.y+Random(5.0)-2.0;
vPos Vector(vPos.x,vPos.y,vPos.z);
lLocation Location(GetArea(oTarget),vPos,1.0); 
Non ? Je pense que ca devrait marcher, mais je connais mal les effets Beam...
Mmmh, l'effet beam a ce que j'ai compris est emis d'un objet a une partie de cet objet (node hand ou head), mais apres l'autre bout est geré par le apply effect, donc oui avec ton script ca devrait le faire
la je vais me coucher, je testerai demain
J'étais en train de me demander...
C'est normal qu'il y ait la chose suivante dans le script :

Code PHP:

int nDam Random(3) + 
J'avoue que je suis encore un sacré noob en script, donc j'aimerais avoir la confirmation de la chose suivante :

Quand on utilise la commande "Random(X)", cela génère un nombre entre 0 et X ou un nombre entre 1 et X ? Si eMRaistlin n'a pas fait d'erreur, c'est la première hypothèse la bonne... Mais je préfère être sûr ... Quelqu'un confirme ?
Random(X) génère un nombre entre 0 et X-1...
pour générer un chiffre de 1 a 3, on peut utiliser d3()... ou Random(3)+1... ce qui revient exactement au même...
Voilà, j'ai fait une petite mise en page de ton script modifié eMRaistlin (et je me suis permis de remplacer "Random(3) + 1" par "d3(1)"... Mais peut-être peut-on mettre simplement "d3" ?)

Code PHP:

//:://///////////////////////////////////////////////////
//:: Ray of Frost
//:: [NW_S0_RayFrost.nss]
//:: Copyright (c) 2000 Bioware Corp.
//:://///////////////////////////////////////////////////
//
//   Bioware Effect : The target takes 1D4+1 cold damage
//   automatically (without ranged touch attack).
//
//:://///////////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: feb 4, 2001
//:://///////////////////////////////////////////////////
//:: Modified By: eMRaistlin
//:: Modified On: may 20, 2003
//:://///////////////////////////////////////////////////
//
//   Modified Effect : If the caster succeeds at a ranged
//   touch attack, the target takes 1d3 cold damage.
//
/////////////////////////////////////////////////////////

#include "NW_I0_SPELLS"
void main()
{
    
//Declare major variables
    
object oTarget GetSpellTargetObject();
    
int nMetaMagic GetMetaMagicFeat();
    
int nCasterLevel GetCasterLevel(OBJECT_SELF);
    
int nDam d3(1)
    
effect eDam;
    
effect eVis EffectVisualEffect(VFX_IMP_FROST_S);
    
effect eRay EffectBeam(VFX_BEAM_COLDOBJECT_SELFBODY_NODE_HAND);

    if(!
GetIsReactionTypeFriendly(oTarget))
    {
        
//Fire cast spell at event for the specified target
        
SignalEvent(oTargetEventSpellCastAt(OBJECT_SELFSPELL_RAY_OF_FROST));
        
eRay EffectBeam(VFX_BEAM_COLDOBJECT_SELFBODY_NODE_HAND);
        
//Make SR Check
        
if(!MyResistSpell(OBJECT_SELFoTarget))
        {
        if (
TouchAttackRanged(oTarget,TRUE)==0)
        {
        
SendMessageToPC(OBJECT_SELF,"You missed the target, and lost the magic energy in the process");
                
ApplyEffectToObject(DURATION_TYPE_INSTANTeVisoTarget);
        return;
        }
            
//Enter Metamagic conditions
            
if (nMetaMagic == METAMAGIC_MAXIMIZE)
            {
               
nDam ;//Damage is at max
            
}
            else if (
nMetaMagic == METAMAGIC_EMPOWER)
            {
               
nDam nDam nDam/2//Damage/Healing is +50%
            
}
            
//Set damage effect
            
eDam EffectDamage(nDamDAMAGE_TYPE_COLD);
            
//Apply the VFX impact and damage effect
            
ApplyEffectToObject(DURATION_TYPE_INSTANTeVisoTarget);
            
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamoTarget);
        }
    }
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARYeRayoTarget1.7);

Le problème dans tout cela, c'est qu'une fois importé dans un module (en ayant bien pris garde à ce que le script "NW_I0_SPELLS" soit également inclus dans le module) , le message d'erreur suivant s'affiche lorsque je veux compiler "NW_S0_RayFrost.nss" :

20/05/2003 12:46:26 : Erreur. 'nw_s0_rayfrost' n’est pas compilé.
nw_s0_rayfrost.nss(31): ERREUR : PARSING VARIABLE LIST.

D'où est ce que ça peut venir ?
ca vient precisement du fait que tu ai mis d3 au lieu de random(3)+1;

en fait, le d4(1) de Bioware, c'est une fonction qui fait ca :
Code PHP:

int d4(int nNb=1)
{
int nSumm 0;
while (
nNb>0)
{
nSumm Random(4)+nSumm;nNb--;}
return 
nSumm;

est qui est dans le nwscript (je crois, ou sinon, qui est hard-coded, ce qui revient au meme)

Donc, soit tu remet Random(3)+1;, soit tu met ca :

Code PHP:

int d3(int nNb=1)
{
int nSumm 0;
while (
nNb>0)
{
nSumm Random(3)+nSumm;nNb--;}
return 
nSumm;

juste au dessus du void main() de ton script, et tu pourra utiliser la fonction d3()
Non la fonction d3() est utilisable directement sans aucun include a inserer...
Le probleme vient de cette ligne :
Code PHP:

int nDam d3(1
(ligne 30)
il manque betement un ; a la fin
(tu peux mettre directement int nDam = d3(); qui utilise la valeur 1 par défaut )
Yes ! ça marche !
Merci à vous deux !

On devrait peut-être utiliser "int nDam = d3();" pour la version finale du script. ça a l'avantage d'être plus clair visuellement : "d3();" est plus explicite que "Random(3) + 1" pour le novice je pense (je parle en connaissance de cause huhu )

On fait comme ça ?
Voici la version avec le rayon qui va à côtés, en utilisant la proposition d'eMR.

Il demeure une petite ombre au tableau, lorsque le rayon passe à côté, on voit la tache blanche sur le sol, mais pas le rayon.
Quelque chose à changer la dedans ?
Code PHP:

        vector vPos GetPosition(oTarget);
        
vPos.vPos.x+Random(5)-2;
        
vPos.vPos.y+Random(5)-2;
        
vPos Vector(vPos.x,vPos.y,vPos.z);
        
location lLocation Location(GetArea(oTarget),vPos,1.0);
        
ApplyEffectAtLocation(DURATION_TYPE_INSTANTeVislLocation1.7f);
        return; 
J'ai essayé d'introduire un ApplyEffectAtLocation avec le eRay, mais ça change rien.

Deuxième ombre au tableau, pour le Jet de toucher à distance. Je ferai un peu plus de test ce soir, mais le jet ne semble vraiment pas difficile. Et ne semble pas varier en fonction de la taille.

Code PHP:

#include "NW_I0_SPELLS"
void main()
{
    
//Declare major variables
    
object oTarget GetSpellTargetObject();
    
int nMetaMagic GetMetaMagicFeat();
    
int nCasterLevel GetCasterLevel(OBJECT_SELF);
    
int nDam d3(1);
    
effect eDam;
    
effect eVis EffectVisualEffect(VFX_IMP_FROST_S);
    
effect eRay EffectBeam(VFX_BEAM_COLDOBJECT_SELFBODY_NODE_HAND);

    if(!
GetIsReactionTypeFriendly(oTarget))
    {
        
//Fire cast spell at event for the specified target
        
SignalEvent(oTargetEventSpellCastAt(OBJECT_SELFSPELL_RAY_OF_FROST));
        
eRay EffectBeam(VFX_BEAM_COLDOBJECT_SELFBODY_NODE_HAND);
        
//Make SR Check
        
if(!MyResistSpell(OBJECT_SELFoTarget))
        {
        if (
TouchAttackRanged(oTarget,TRUE)==0)
        {
        
SendMessageToPC(OBJECT_SELF,"You missed the target, and lost the magic energy in the process");
        
vector vPos GetPosition(oTarget);
        
vPos.vPos.x+Random(5)-2;
        
vPos.vPos.y+Random(5)-2;
        
vPos Vector(vPos.x,vPos.y,vPos.z);
        
location lLocation Location(GetArea(oTarget),vPos,1.0);
        
ApplyEffectAtLocation(DURATION_TYPE_INSTANTeVislLocation1.7f);
        return;
        }
            
//Enter Metamagic conditions
            
if (nMetaMagic == METAMAGIC_MAXIMIZE)
            {
               
nDam ;//Damage is at max
            
}
            else if (
nMetaMagic == METAMAGIC_EMPOWER)
            {
               
nDam nDam nDam/2//Damage/Healing is +50%
            
}
            
//Set damage effect
            
eDam EffectDamage(nDamDAMAGE_TYPE_COLD);
            
//Apply the VFX impact and damage effect
            
ApplyEffectToObject(DURATION_TYPE_INSTANTeVisoTarget);
            
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamoTarget);
        }
    }
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARYeRayoTarget1.7);

[EDIT]
Le jet de toucher à distance, c'est D20+Bonus de DEX. Ils se sont pas cassé la tête à récupérer le BAB.
Je pense que le probleme sur le fait que le rayon n'apparaissent pas vient du fait que l'effet beam est un rayon entre 2 objets, or si on fait avec une loc, ca marche pas.
Donc il faudrait creer un objet illusoire a la loc aleatoire calculée au dessus et ensuite appliquer l'effet de rayon sur cet objet illusoire.

Finalement ce soir je sors donc je peux pas trop bidouiller, vouinnnn

PS : pour ma solution au dessus, dites mois si c pas le genre de script qui va trop bouffer en ressource, sinon on lache l'affaire avec le rayon qui miss, il ne se lancera pas et c tout.

PS 2 : pour le jet de toucher a distance, je m'en occupe des que j'ai le temps, je gererai la bonne CA du monstre (que la dex prise en compte) et aussi le bon jet de toucher avec prise du BAB. On ne fait pas les choses qu'a moitié hannn ^^

[EDIT] le code de l'obtention du BAB se trouve ici
J'ai encore des probleme pour obtenir la bonne CA contre un jet de toucher a distance, mais je cherche, je cherche
bon, concernant le rayon, le probleme est que tu appliques l'effet d'explosion de d'impact de froid au lieu du beam lors d'un echec, donc normal qu'il apparaisse pas. Néanmoins, apres moults test, il s'avere que l'on ne peut pas utiliser ApplyEffectTOLocation pour un effet beam.
Donc la solution est de creer un objet temporaire a la location aleatoire et ce pendant la durée du rayon (donc 1,7 sec)
Avec une creature de base, ca marche bien, mais c pas tres design ^^ Donc c pour ca j'attends de pouvoir chopper le modele "invisible" d'une creature, comme ca l'objet apparaitra sans prendre de ressource ou si peu, de part sa taille et par son invisibilité, une fois la durée du rayon écoulé, je detruit l'objet et voila.

Maintenant il me faut des renseignement des caids des script. Car je ne sais pas si le code en lui est tres pêu consommateur de ressource, car je ne pense pas qu'u_ne creation d'objet a la volée soit anodine au nouveau ressource. Donc...need backup ^^.

En tout cas, le code est bientot fini pour le ray of frost, il suffira de l'appliquer pour tous les rayons et ca videra pas mal de sorts ^^. C cool
Bah ca arrive sans arret la création d'objet a la volée tout au long du jeu... quand tu declenche un encounter, quand tu ouvre un coffre, etc... le fait est que des que tu declare une variable object quelque part tu reserves de la place memoire pour un objet complet... la seule difference c'est que tu l'affiches pas forcement.

Ah puis il existe deja un placeable 'Invisible object', pourquoi ne pas utiliser celui-ci pour servir de 'cible' ?
Citation :
Provient du message de Slay
Bah ca arrive sans arret la création d'objet a la volée tout au long du jeu... quand tu declenche un encounter, quand tu ouvre un coffre, etc... le fait est que des que tu declare une variable object quelque part tu reserves de la place memoire pour un objet complet... la seule difference c'est que tu l'affiches pas forcement.

Ah puis il existe deja un placeable 'Invisible object', pourquoi ne pas utiliser celui-ci pour servir de 'cible' ?
Oui pourquoi pas, je m'y connais en algo, mais en bidouille pour nwn, je suis pas tres fort, je viens de démarrer

Ce qu'il me faudrait, c un objet :
*qui me serve de cible pour le rayon mais qui ne gene en rien le deplacement d'un personnage. Pas que des qu'on lance un rayon qui foire, ben on est bloqué dans un couloir ^^
*Qui soit invisible
*et qui ne bouge pas si on passe a coté (genre qd plusieurs creature se bousculent, certaines font des pas de cotés.)
Bon c'est bon, j'ai géré le fait que les rayons partent a coté si le caster miss.
Merci pour vos tips.
Euhh, sinon, ben j'ai fini le code pour le Ray of Frost.
Maintenant, il est considéré comme sort de rayon, cad :
  • Il y'a un jet de contact a distance pour pouvoir toucher la cible : 1d20 + BAB + bonus de dex + bonus de 1 grâce au don "Tir a bout portant" si l'on caste a moins de 10 m de la cible.
  • La CA de la cible n'est pas une CA "normale" car on prends tous les bonus en compte sauf :

    * Le bonus de CA naturelle du monstre
    * Le bonus de CA obtenue grâce à une armure
    * Le bonus de CA obtenu grâce à un bouclier
Seulement, comme la fonction GetCA() ne retourne que la valeur de la CA totale sans aucune customisation, je ne pouvais obtenir ces differents bonus, donc j'ai du "construire" la CA de la cible a partir de la valeur de base 10 et en ajoutant tous les bonus possibles excepté les bonus du dessus.
Malheureusement, je n'ai pas pu obtenir les bonus du aux sorts non plus, car je devrais faire le tri entre les bonus de CA naturelle et les autres, et je peux obtenir l'effet et son type (EFFECT_TYPE_AC_INCREASE) mais je ne peux obtenir le type de bonus a la CA (naturel par exemple.) car la fonction GetEffectType() donne le type d'amélioration, mais ne gere pas les valeurs (donc on ne peut pas savoir de cb c augmenté...) et donc je ne peux pas soustraire a la CA calculée. Donc ce n'est pas possible a gerer.
Meme topo pour les bonus d'objets :
  • Un rayon peut faire un coup critique, c un critique de type 20/x2, donc en cas de critique, doublement des dommages du sort.
  • Affichage des jets de toucher a distance dans le log avec un SendToPC()
  • Gestion des ratés de sort : Lorsque le jet de toucher est loupé, alors la cible de l'effet visuel n'est plus la cible réele mais une cible factice pour indiquer que le sort a bien loupé (a 3 m de la cible par exemple, ca se voit bien qu'on a fait un jet de quiche )

Voici le code, et il nécéssite 2 include imbriqués qui sont disponible dans ce =.erf=

Code PHP:

//::///////////////////////////////////////////////
//:: Ray of Frost
//:: [NW_S0_rayfrost.nss]
//::
//:://////////////////////////////////////////////
/*
    If the caster succeeds at a ranged touch attack
    the target takes 1d3 damage.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: feb 4, 2001
//:: Modified By: Dolanor
//:: Modified On: 22/05/2003
//:://////////////////////////////////////////////

#include "NW_I0_SPELLS"

//Inclus les fonctions de jet de toucher a distance et les fonctions de decalage de cible en cas de miss
#include "raw_code_rta"


void main()
{
    
//Declare major variables
    
object oTarget GetSpellTargetObject();
    
int nMetaMagic GetMetaMagicFeat();
    
int nCasterLevel GetCasterLevel(OBJECT_SELF);
    
int nDam d3(1);
    
effect eDam;
    
effect eVis EffectVisualEffect(VFX_IMP_FROST_S);
    
effect eRay EffectBeam(VFX_BEAM_COLDOBJECT_SELFBODY_NODE_HAND);

    if(!
GetIsReactionTypeFriendly(oTarget))
    {
        
//Fire cast spell at event for the specified target
        
SignalEvent(oTargetEventSpellCastAt(OBJECT_SELFSPELL_RAY_OF_FROST));
        
eRay EffectBeam(VFX_BEAM_COLDOBJECT_SELFBODY_NODE_HAND);
        
//Make SR Check
        
if(!MyResistSpell(OBJECT_SELFoTarget))
        {
            
//Enter Metamagic conditions
            
if (nMetaMagic == METAMAGIC_MAXIMIZE)
            {
                
nDam ;//Damage is at max
            
}
            else if (
nMetaMagic == METAMAGIC_EMPOWER)
            {
                
nDam nDam nDam/2//Damage/Healing is +50%
            
}

            switch(
RangeTouchAttack(oTarget,TRUE))
            {
                
//Miss
                
case 0:
                {
                    
SendMessageToPC(OBJECT_SELF,"You missed the target, and lost the magic energy in the process");
                    
vector vPos MissRangeTouchAttack(oTargetATTACK_TYPE_SPELL);
                    
vPos Vector(vPos.x,vPos.y,vPos.z);
                    
location lLocation Location(GetArea(oTarget),vPos,1.7);
                    
//creation de l'objet fictif a la position decalee
                    
object oTEMP CreateObject(OBJECT_TYPE_PLACEABLE"neantobject"lLocation);

                    
ApplyEffectToObject(DURATION_TYPE_TEMPORARYeRayoTEMP1.7);
                    
DestroyObject(oTEMP2.0);
                    return;
                    break;
                }
                
//Critique
                
case 2:
                    
nDam nDam d3();
                    break;
            }
            
//Set damage effect
            
eDam EffectDamage(nDamDAMAGE_TYPE_COLD);
            
//Apply the VFX impact and damage effect
            
ApplyEffectToObject(DURATION_TYPE_INSTANTeVisoTarget);
            
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamoTarget);
            
ApplyEffectToObject(DURATION_TYPE_TEMPORARYeRayoTarget1.7);

        }
    }


Voilà, il me reste encore quelques trucs a gerer :
*Gestions des bonus de buffs/d'items pour la CA de la cible et pour le jet d'attaque du caster. Mais je dois attendre que Bioware sorte des fonctions supplementaires sinon je ne peux rien faire, et si il sort les fonction pour permettre ce bidouillage, je pense que diminuer la CA totale par des bonus divers sera plus simple et moins gourmand en ressource.
*Gestion des animations d'esquive de la cible lorsque le bonus de dex ou d'esquive est responsable du miss voire une parade avec l'arme du rayon (déviation stylé ^^) Mais pour le moment, je pense que c'est infaisable.

En tout cas, merci pour les tips sur le fait de gerer les effet avec un objet en invisible, sans vous je n'y serais pas arrivé, je suis un sale nioub en nwscript ^^

.erf total incluant le sort et les includes + le placeable invisible pour les miss de sorts, a importer et utiliser directement sans autre manipulation.

CORRECTIONS apportées :
*gestion de l'effet de type "rayon"
*gestion du critique
*1d3 au lieu de 1d4
Impressionant
J'ai remarqué que tu avais aussi rajouté le "double dégâts" si jamais il y a coup critique ! C'est vrai que même sur papier, c'est une règle que l'on a souvent tendance à oublier avec les sorts utilisant un jet pour toucher. Cela n'a pas que des désavantages de devoir faire des jets pour toucher : Quand on fait un critique lors d'un jet pour toucher avec le sort Energie négative (niv.5, 1D4 niveaux négatifs), on se retrouve ni plus ni moins avec l'effet d'un sort d'Absorption d'Energie (niv.9, 2D4 niveaux négatifs) ! ... Et oui ça doit marcher également pour les niveaux négatifs (l'exemple est même cité dans le supplément D&D3 "Par l'Encre et le Sang" )
Citation :
Provient du message de Solaufein
Impressionant
J'ai remarqué que tu avais aussi rajouté le "double dégâts" si jamais il y a coup critique ! C'est vrai que même sur papier, c'est une règle que l'on a souvent tendance à oublier avec les sorts utilisant un jet pour toucher. Cela n'a pas que des désavantages de devoir faire des jets pour toucher : Quand on fait un critique lors d'un jet pour toucher avec le sort Energie négative (niv.5, 1D4 niveaux négatifs), on se retrouve ni plus ni moins avec l'effet d'un sort d'Absorption d'Energie (niv.9, 2D4 niveaux négatifs) ! ... Et oui ça doit marcher également pour les niveaux négatifs (l'exemple est même cité dans le supplément D&D3 "Par l'Encre et le Sang" )
Oui
Mais ca ne marche pas de cette maniere, pour un sort absorbant des niveaux ou des carac, le critique se resume a dommage de 1 d'energie negative (maintenant, si tu peux me donner la page ou tu trouves cela dans tome and blood, je ne retrouve plus et cela me gene, car je ne sais plus si c 1 de dommage d'energie negative ou 1 dmg par pt de carac/nivo enlevé d'energie negative. Ca change pas mal de choses.)

Citation :
Impressionant
héhé, merci ca fait plaisir ^^
Répondre

Connectés sur ce fil

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