05/12/2018, 21:28
Créer un tuto sur la création de spell est un peut utopique puisque les combinaisons sont très nombreuses , je ne peux donc que reprendre le wiki et les centraliser sur une seule page .
1) Pour créer un sort grâce aux DBx je recommande de suivre ces quelques règles :
- Ne jamais supprimer une ligne ou modifier un N° d'index d'un spell original
- Toujours garder des sauvegardes avant modification
- Comme dans smartAI faire attention au temporisation pour certaines Aura : certaines aura par exemple peuvent durer 10s mais lancer un regen chaque 2s , ce temps est donné en mili seconde , oublier de renseigner la bonne case équivaut a le définir comme lancer un regen chaque 0s . Je ne vous fais pas un dessin surtout si plusieurs mobs lancent ce sort .
- Mème pour une création je vous recommande de ne pas partir de zero mais de dupliquer un spell similaire et de modifier cette copie , c'est le meilleur moyen de ne pas oublier une variable/colonne secondaire (tout les sort n'utilisent pas les mêmes variables/colonne)
- Afin de ne pas faire un tuto trop compliqué qui ferait 25 pages , je n'entrerais pas dans les détails . Reportez vous au wiki afin d'avoir plus de renseignement sur les dbc .
- Une valeur ou un texte , par exemple un montant de dégât ou le nom d'un sort
- Un pointeur vers une autre DBx , dans ce cas vous trouverez dans cette colonne l'ID de cette DBx pointé (indiqué par le nom de la colonne)
- spell.dbc : c'est la dbc principale qui sert de sommaire
- spellmisc.dbc : cette dbc est une extension de spell.dbc , je suppose que blizzard a séparé cette dbc de spell.dbc afin de brouiller les pistes
- spelleffect.dbc : cette dbc défini ce que va faire ce spell , dégat , regen , morph , etc
spell.dbc :
- ID : doit être unique
- Name_lang : Le nom du spell comme il apparait dans le jeu
- Description_Lang : ce qui s'affiche lorsque l'on passe la soris sur son icone
- AuraOption (optionnel) : cette colonne pointe sur SpellAuraOptions.dbc et sert par exemple pour un sort qui reste actif a définir le nombre de fois qu'il peut être actif .
- Cooldowns (optionnel) : cette colonne pointe sur SpellCooldowns.dbc et défini le temps de recharge du spell
- EquippedItemID (optionnel) : cette colonne désigne un équipement nécéssaire pour utiliser ce sort (arme une main, deux mains , dague , etc)
- ShapeshiftID (optionnel) : cette colonne pointe sur SpellShapeshift.dbc et défini que ce spell a besoin du changeform pointé de SpellShapeshift.dbc pour etre utilisable.
- MiscID (indispensable) :cette colonne pointe sur Spellmisc.dbc et doit etre crée ou exister , par commodité perso j'utilise la meme ID pour un spell custom que pour l'ID de Spellmisc.dbc
- ID : doit être unique
- Attribute_x (optionnel) : Défini des flag pour un spell comme par exemple , doit être de face , désactive un changeform , doit etre camouflé , etc
- CastingTimeIndex (optionnel) : pointe sur SpellCastTimes.db2 et défini le temps pour lancer un sort
- DurationIndex (optionnel) : pointe sur SpellDuration.db2 et défini la durée de vie du spell
- Range (optionnel) : pointe sur SpellRange.db2 et défini la distance d'action du spell
- Speed (optionnel) : Peux jouer/buguer l'animation du spell
- SpellIconID (optionnel) : Pointe sur spellicon.dbc , je recommande d'extraire le client avec CascExplorer pour retrouver facilement un icon et donc son nom pressent dans spellicon.dbc . un icon perso peut etre placé dans le client \Interface\Icons
- ActiveIconID (optionnel) : Un icone alternatif par exemple quand une aura est actif
- ShoolMask (optionnel) : type de magie : Physique=1 , Sacré=2 , Feu=4 , Nature=8 , Givre=16 , Ombre=32 , Arcane=64
Les 3 colonnes principales :
- Effect : défini le type d'action comme 2=degats des sort,17=degats des arme , 6=aura (option importante qui indique que le sort agit dans le temps , dans ce cas Effect aura,EffectAudaPeriod doivent etre renseigné) , 32=lance un spell en parallele , ...
- SpellID : l'ID du spell
- EffectIndex : chaque sort peux avoir plusieurs effets , chaque effet a un EffectIndex propre
- EffectAura : Complémentaire a Effect 6 défini le type d'action pour une aura c'est a dire un sort qui dure un certain temps
- EffectAuraPeriode : en mili seconde , indique que EffectAura s'executera chaque x mili seconde
- EffectBasePoint : une valeur pour l'effet , par exemple un spell de soin avec un EffectBasePoint = 100 soignera 100 pv ou 100% en fonction de l'effect , indépendant du lvl
- EffectChaintargets : le nombre de cible
- EffectMechanic : pour certain sort indique que ce sort provoque un fear,stun,etc
- EffectMiscValue : paramétrè pour certain spell
- EffectRadius_1 : indique un rayon d'action du spell (tributaire de la colonne implicit_target )
- EffectRadius_2 : sert généralement pour la taille d'un cercle de selection
- EffectRealPointsPerLevel : similaire a EffectBasePoint mais en fonction des level . je conseille de renseigner aussi EffectBasePoint pour ne pas avoir des spell qui tape a 1 au lvl 1
- EffectTriggerSpell : spell lancé en parallèle
- ImplicitTarget_1 : désigne la cible ami , ennemie , pet , zone ,etc . Certains sort peuvent nécessiter ImplicitTaget_1 & ImplicitTaget_2 par exemple un certain rayon au tour d'un ennemie
4) Les DBx secondaires : nécessaire pour renseigner par exemple une durée ou une consommation
- SpellAuraOptions.dbc : nombre de fois qu'un spell de type aura peut etre appliqué
- SpellPower.db2 : consomation de mana , rage , combo , etc
- SpellXSpellVisual.db2 : animation et visuel d'un spell
- SpellIcon.dbc : icone d'un spell
- SpellCooldowns.dbc : temps de recharge
- SpellLevels.dbc : joue sur les effect d'un spell en fonction d'un level en définissant un level de base , mini/maxi qui surplantera le lvl du joueur
- SpellDuration.db2 : durée de vie du spell
- SpellRange.dbc : porté du spell
- SpellRadius.db2 : rayon du spell
- SpellCastTimes.db2 : temps pour lancer un spell