Login : Password : Se souvenir de moi
 
SmartSection is developed by The SmartFactory (http://www.smartfactory.ca), a division of InBox Solutions (http://www.inboxsolutions.net)
Publié par Xeolani le 5/10/2006 (3575 lus)
Attention ce tutorial a été réalisé pour nwn1 par Leviathan. il sera certainement nécessaire de l'adapter pour nwn2 notamment au niveau des références de lignes. Mais le principe reste cependant le même. Une fois que nous en saurons plus sur NwN2, ce tutorial sera mis à jour.

Tutorial sur la création de sort par Hitzaar(Version téléchargeable)


Bien bien, passons à la création d'un sort. Qui n'a jamais rêvé de devenir un super guerrier lvl 3 ? Et bien sachez que pour ça, vous allez en baver, surtout pour assimiler entièrement le fonctionnement du spells.2da qui est très compliqué.

Commençons par ouvrir le spells.2da

Je vous évite le screenshot, vous devez avoir pas moins de 805 références qui désignent les sorts de toutes les classes mais aussi les capacités des créatures telles que les aura de peur etc.

Avant de commencer, vous allez voir une liste effrayante de colonnes. Je vous rassure elles sont effrayantes à gérer même quand on les connait, mais c'est comme de tout, on fini par s'y faire !

Etape 1 : Faire apparaître le sort dans le jeu

  • ID : Le numéro de ligne correspondant à votre sort. ( je vous conseille de commencer vers les 900 même si je ne l'ai pas fait. )
  • Label : Le nom 2da du sort ( le nom n'est pas réutilisé d'aprés ce qu'a laissé entendre Bioware, aucun espace n'est autorisé, aussi mettez les "_" )
  • Name : Le nom du sort référencé dans votre tlk. ( vous mettez le numéro du tlk correspondant )
  • IconResRef : L'icone du sort. Vous pouvez en avoir créé vous même ou reprendre un icone utilisé par un ou plusieurs sorts déjà existant ou utiliser les icones de base des écoles.
  • - Abjuration : is_abjure
    - Conjuration : is_conjure
    - Divination : is_divine
    - Enchantement : is_enchant
    - Evocation : is_evoke
    - Illusion : is_illusion
    - Necromantie : is_necromancy
    - Transmutation : is_transmut
  • School : L'école de magie du sort.
    A = Abjuration
    C = Conjuration
    D = Divination
    R = Enchantement
    V = Evocation
    I = Illusion
    N = Necromantie
    T = Transmutation
  • Range : La portée du sort.
    P = Personnel ( seul le lanceur de sort est touché )
    T = Touché ( Nécessite un contact par exemple les sorts de soin )
    S = Short ( 25ft + 5ft/2 lvl ) ft = ? ( je penche pour 2,5m, à voir... ) C'est utilisé pour le cône de froid et les invocations de monstre en général.
    M = Medium ( 100ft + 10ft/lvl ) Sort à moyenne portée tel que le rayon affaiblissant etc.
    L = Long ( 400ft + 40 ft/lvl ) Sort à longue portée tel que chaîne d'éclair, nuage incendiaire, missile magique etc.
  • VS: composante Verbale et Somatique du sort.
    V = Verbal ( le sort de silence peut le faire échouer... )
    S = Somatique ( les pénalités d'armure interviennent )
    VS = Verbal ET Somatique
    - = Aucun ( Vive les Grobill... )
  • MetaMagic : Les Meta permettant d'utiliser le sort... Là les choses deviennent très complexes, suivez bien.

Tout s'écrit en Hexadécimal 0x00, voici le fonctionnement.
0x01 = 1 = Extention d'Effet
0x02 = 2 = Extention de Durée
0x04 = 4 = Quintescence des Sorts
0x08 = 8 = Incantation Rapide
0x10 = 16 = Incantation Silencieuse
0x20 = 32 = Incantation Statique

Vous pouvez les additionner afin de permettre plusieurs dons de Meta, voici la procédure à suivre.

Exemple : je veux que mon sort puisse avoir une Extention d'Effet, une Extention de Durée et une Incantation Statique.

J'additionne : 1 + 2 + 32 = 35

A présent passons celà en Hexadécimal

1. Ouvrez la calculette windows, allez dans "Affichage" et mettez "Scientifique"
2. Dans la partie supèrieure gauche vous avez 4 cases "Hex" "Dec" " Oct" "Bin". Si "Dec" n'est pas coché, cochez le et écrivez donc 35.
3. 35 apprait à l'écran, cochez maintenant "Hex" et vous obtenez "23"
4. Revenez au spells.2da et entrez la valeur 0x23 et c'est gagné !

  • TargetType : Là vous désignez la/les cibles possibles de votre sort. Vous n'avez pas fini avec l'Hexadécimal !
    0x01 = 1 = Self = Le lanceur de sort lui même.
    0x02 = 2 = Creature = Un PNJ hostile ou non.
    0x04 = 4 = Area/Ground = une zone d'effet au sol
    0x08 = 8 = Items = Un objet
    0x10 = 16 = Doors = Les portes
    0x20 = 32 = Placeables = Les objets placeables du jeu
    0x40 = 64 = Trap Triggers & Area transition Triggers = Pièges posé ( si détectés ) et zones de transition au sol. Attention, cette fonction ne marche pas correctement et Bioware n'a pas pris le risque de l'utiliser pour l'heure...

    Comme précédament, ces valeurs peuvent être additionnées.
  • ImpactScript : Le Script qui sera exécuté et qui contient les effets du sort. Je vous conseille d'ouvrir le script d'un sort proche de celui que vous souhaitez créer afin de vous en inspirer.
  • Bard, Cleric, Druid, Paladin, Ranger, Wiz_Sorc, Innate : Ici vous désignez le niveau du sort pour chaque classe. Si vous voulez qu'une classe n'ait pas accès au sort, mettez ****. Si vous voulez par exemple que votre nouveau sort figure à la page de niveau 3 du livre de sort de druide, mettez 3 dans la colonne Druid.

Innate correspond au talent inné de certaines créatures qui ont accés aux sorts de façon naturelle et pas par livre de sortilège. ( par exemple les aura des dragons )

  • ConjTime : La durée de Conjuration du sort avant l'animation visuelle du sort déclanchée par le script. Par défaut tous les sorts sont à 1500 ( sauf un seul mais c'est spécial )
  • ConjAnim : L'animation physique du personnage, autrement dit ses mouvements de bras.
    hand = Les mouvements de bras se font face au lanceur de bras.
    head = Les mouvements de bras sont orientés vers le ciel
    **** = Aucun mouvement.
  • ConjHeadVisual : Ici vous pouvez ajouter une animation au dessus du lanceur de sort durant la conjuration, c'est à dire, avant le lancement du script.

Quelques exemples :

Ice_Storm = vco_mehancold03
Resurrection = vco_mehanelec01
Premonition = vco_mehanelec03
Meteor_Swarm = vco_mehanevil03

Il y en a beaucoup d'autres, à vous de voir si cela vous semble utile.

  • ConjHandVisual : Ici vous pouvez ajouter une animation sur ou entre les mains du lanceur de sort durant la conjuration.
  • ConjGrndVisual : Ici vous pouvez ajouter une animation sous les pieds du lanceur de sort.
  • ConjSoundVFX : Ici vous pouvez ajouter un son qui ne sera pas la voix du lanceur de sort, mais le son de l'énergie.
  • ConjSoundMale, ConjSoundFemale : Ici vous indiquez quel chant sera associé au sort. Un bon copier coller à partir d'un sort de même type ne fera pas de mal !
  • CastAnim : La pose que tiendra le lanceur de sort aprés que la conjuration soit terminée... Vous savez quand il tend la main style Kamehame vers l'ennemi ou qu'il ouvre grand les bras vers le ciel...

Les possibilités sont :
Area
out
self
touch
up
****

  • CastTime : La durée en millisecondes durant laquelle le lanceur de sort tient la pose indiquée dans le CastAnim...

1000 pour la plupars des sorts
1700 pour les rayons ou les cones...

  • CastHeadVisual : Encore inutilisé par Bioware...
  • CastHandVisual : L'effet visuel qui se produit aprés le sort, par exemple la lumière brillante qui émane telle une étoile du lanceur de sort aprés le sort d'Aide.
  • CastGrndVisual : Encore inutilisé par Bioware...
  • CastSound : Le son joué aprés la conjuration.
  • Proj : Il s'agit de dire si un projectile se déplacera entre le lanceur de sort et sa cible.

1 = oui
0 = non

  • ProjModel : Vous avez dit qu'il y avait un projectile, a présent il faut dire lequel. Voici la liste utilisée actuellement.

vpr_aroacid
vpr_ectoacid01
vpr_ectocold01
vpr_ectoevil01
vpr_ectofire01
vpr_ectomind01
vpr_ectonatr01
vpr_ectoodd01
vpr_ectosonc01
vpr_fireball
vpr_ringsmal
vpr_wraith

  • ProjType : Le comportement du projectile.

accelerating
homing
linked

  • ProjSpwnPoint : D'où part le projectile ?

hand = des mains
head = de la tête

  • ProjSound : Le son qui accompagne le projectile.
  • ProjOrientation : S'il y a un projectile mettez "path" autrement laissez ****
  • ImmunityType : Les immunités possible face au sort

Acid
Cold
Death
Disease
Divine
Electricity
Fear
Fire
Mind_Affecting
Negative
Poison
Positive
Sonic

Vous tirez une boule de feu, une immunité au feu neutralisera logiquement l'effet...

  • ItemImmunity : Y a t'il des objets immunisés au sort ?

1 = oui
0 = non

  • SubRadSpell1 - 5 : Les sous-menus de sorts, par esemple la protection contre l'alignement donne deux choix, c'est ici que ça se passe.
  • Le fonctionnement est le suivant. Vous créez un menu de base, par exemple un sort qui donne le choix entre différents types de bénédictions.
Dans SubRadSpell1 vous mettez l'ID du premier sort. Attention, si vous commencez une série de sorts en SubRad, les ID doivent OBLIGATOIREMENT se suivre. Le premier est a 903, les autres seront a 904, 905, 906, 907 !
L'ID du sort qui fait office de menu n'est pas important.
  • Category : C'est l'équivalent des constantes TALENT_CATEGORY_* que l'on trouve dans les scripts.

(AoE = Area of Effect)
1 = Nocif AoE Discriminant ( ne touche que les ennemis dans la zone d'effet )
2 = Nocif à distance
3 = Nocif au contact
4 = Benefique Soin AoE ( soin de groupe )
5 = Benefique Soin au contact
6 = Benefique Conditionnel AoE (e.g.,
Voir les Invisibles)
7 = Benefique Conditionnel Simple
8 = Benefique Amélioration AoE ( de masse )
9 = Benefique Amélioration Simple
10 = Benefique Amélioration sur Soi
11 = Nocif AoE Indiscriminant
(Touche tout le monde indépendament de la faction ou de l'attitude y compris les alliés )
12 = Talent Benefique de Protection sur Soi
13 = Talent Benefique de Protection
Simple
14 = Talent Benefique de Protection AoE ( de zone )
15 = Talent Benefique d'Invocation
16 = Auras et Rages
17 = Special Don de Moine
19 = Attaques de Dragons

( pas de 18 pour des raisons obscures !)

  • Master : On en revient au problème des SubRad, et oui vous avez développé les sous menus a partir du Master, maintenant il faut aller dans chaque sort sous-radial et désigner le premier sort qui les contient tous en tant que master. si 850 est master de 903, 904 et 905, vous irez dans 903, 904 et 905 et y mettrez pour chacun 850 comme master.
  • UserType : Quel type d'utilisation ?
1 = Sortilège
2 = Capacité de Créature
3 = Don
4 = Pouvoir d'Objet
  • SpellDesc : Mettez la référence tlk de la description du sort. Si vous voulez un blanc, mettez comme référence "59"
  • UseConcentration : Si le lanceur de sort est touché, doit-il faire un jet de concentration sous peine de perdre le sort ?

1 = oui
0 = non ( utilisé pour les créatures en général )

  • SpontaneouslyCast : Colonne spéciale prêtres. Il s'agit de dire si un sort de soin ou de blessure peut être lancé en dépit d'un autre.

1 = oui
0 = non

  • AltMessage : Le message diffusé aux autres, référencé dans le tlk. Par exemple "Mourrez bande d'infidèles !".
  • HostileSetting : Si vous plantez un sort sur un NPC, va t'il prendre ça pour une attaque et changer l'attitude de la faction ?

1 = oui
0 = non

  • FeatID : Il y a des dons qui agissent comme des sorts. Il faut mettre la référence ID du feat qui se trouve probablement dans le feat.2da.

Voilà, votre sort existe et vous pouvez en créer autant que vous en désirez.

Maintenant, vous voulez certainement pouvoir l'associer à des parchemins, des potions ou toute sorte d'objet.

Chargez l'iprp_spells.2da

Etape 2 : permettre d'intégrer un sort a divers objets

  • ID : Le numéro de ligne correspondant à votre sort. Inutile de reprendre le même que dans le spells.2da
  • Label : Le nom de votre sort, exactement identique a celui du spells.2da
  • CasterLvl : Le niveau du sort vis à vis de l'objet : de 1 à 20 ( agit sur les bonus )
  • InnateLvl : De 1 à 20 aussi, je met un chiffre similaire au sort sur lequel je me suis basé pour créer le mien. Aucune idée de l'utilité dans ce 2da ( l'innate a l'air de devoir être le même que dans le spells.2da, confirmer )
  • Cost : La valeur monétaire du sort. Attention a ce que l'addition des prix ne donne au final une limite de niveau trop haute.
  • SpellIndex : Le numéro de ligne correspondant à votre sort dans le Spells.2da
  • PotionUse : Peut-on appliquer le sort a une potion ?

1 = oui
0 = non

  • WandUse : Peut-on appliquer le sort à une baguette ?

1 = oui
0 = non

  • GénéralUse : Peut-on intégrer le sort a un objet divers ?

1 = oui
0 = non

  • Icon : L'icone du sort, reprennez un icone utilisé par un autre sort.

Voilà votre sort existe et peut être appliqué a des objets, le problème c'est qu'il ne marche pas, et oui vous n'avez pas créé le script qui va avec. Ce sujet ne sera pas abordé ici, il y a assez de ressources sur le net.

Etape 3 : Intégrer au module

Ne pas mettre les 2da dans l'override mais créer un hak C'est essentiel de regrouper les 2da dans un hak.
Attention, veuillez noter que le CEP, le PRC ou encore le LPP contiennent leurs propre spells.2da ! Votre hak se doit donc d'être dans le module d'une priorité supérieure à ces derniers.

Et voilà vous avez terminé !

Créateur(s): Hitzaar, Source

Pour plus d'informations, contactez le créateur du tutorial sur le forum source.


Avertissement

Tout ce qui est déposé sur ce site est la propriété de son auteur. En déposant quelque chose de sa conception sur ce site, il renonce au droit d'en limiter la distribution puisque tout le monde peut utiliser les ressources déposées ici. La communauté Nwn2 en général peut donc copier et utiliser pour son propre usage, dans son propre site, suivant ses besoins.

Il est d'usage cependant de ne pas s'attribuer le travail d'autrui. Merci de le respecter en remerciant le créateur de l'information par la citation de son nom.

 

 

www.neverwinternights2.fr

 
 
Le moteur du site de NeverwinterNigths2.fr utilise XoopS
Le design officiel est NWN2-Drako - 1.0
Les commentaires sont la propriété de leur auteur et de leur responsabilité.
Voir l'ensemble du copyright © 2005-2007.