05/12/2018, 19:27
Les postures du guerrier ou du moine , les changeform ou forme de vol du druide comme la forme d'ours , de félin ou de vol utilisent le meme procédé . La seule différence c'est qu'un changeform changera le skin du joueur .
Afin de garder ce tuto le plus simple possible , je ne détaillerais que les colonnes indispensables .
Cette création ce décompose en 3 parties très simples :
- 1) Définition a proprement dit de cette posture/changeform
- 2) Activation de posture/changeform
- 3) Verrouillage de spells pour qu'ils ne soient utilisables que sous cette forme
1) La définition d'une posture ou d'un changeform ce passe dans SpellShapeshiftForm.dbc :
Le nombre de création est illimité sauf si vous désirez utiliser un verrouillage de spell sur une posture , dans ce cas ce vérouillage sera limité aux 64 premières postures .
ID : elle doit etre unique
BonusActionBar : choix de la barre d'action qui sera affiché : 0 pour la barre par defaut , sinon 1 a 4
Name_Lang : Nom de la posture , pour une posture custom qui devra verouiller des spells n'utilisez que les zzReuse
CréatureDisplayID : L'apparence que prendra le joueur , par exemple l'apparence d'un ours ou d'un félin pour le druide (modelid1)
PrésetSpellID : les sort qui seront affiché dans la barre d'action meme si vous ne les connaissez pas . Pour aucun sort non connu , laissez a 0
2) Activation de posture/changeform ce passe dans SpellEffect.dbc
Il vous faudra temps créer un nouveau spell ou alors rajouter une entrée supplémentairement (index) a un spell existant , voir le futur tuto sur la création de spell .
Dans EffectAura il faudra choisir 36 (SPELL_AURA_MOD_SHAPESHIFT) et reporter dans EffectMiscValue_1 la ligne correspondante de SpellShapeshiftForm.dbc , c'est a dire 1 pour forme de félin ou 5 pour forme d'ours .
A ce niveau vous aurez votre changeform par exemple pour vous transformer en ours ou une autre forme custom mais vous pourrez encore utiliser vos sorts , ce qui permettrait a un mage transformé en ours de toujours pouvoir lancer un éclair de givre , ce qui n'est pas top
3) Verrouillage de spells pour qu'ils ne soient utilisable que sous cette forme
- Pour qu'un spell soit utilisable uniquement dans une forme ou groupe de forme il faudra dans un premier temps créer une liste de forme autorisé dans spellshapeshift.dbc ->
- La valeur de spellshapeshift.dbc -> ShapeshiftMask_ est une combinaison de bit (reportez vous au wiki -> spellshapeshiftform.dbc), par exemple si vous voulez que votre spell ne soit utilisable qu'en forme de felin ou forme d'ours c'est a dire la posture N°1 et la posture N° 5 , il faudra renseigner ShapeshiftMask_ avec 1+16 c'est a dire 17
Alors il y a une petite limitation de spellshapeshift.dbc , c'est que seul 32bits peuvent etre activés pour ShapeshiftMask_1 et 32bits pour ShapeshiftMask_2 , soit 64 postures maximum pouvant vérouiller des spells (les 32 premieres dans ShapeshiftMask_1 et les 32 dernieres dans ShapeshiftMask_2) .
Si vous désirez créer forme avec des sorts non vérouillé vous pouvez aller au dela de 64 , par exemple pour une forme de vol , dans ce cas il vous faudra rajouter 1 entrée dans le core -> unit.h -> enum ShapeshiftForm , par exemple : FORM_maposturecustom = 65 .
La logique mais je ne l'ai pas vérifié voudrait que ShapeshiftExlude marche comme pour Shapeshift mais pour interdire ces posture .
Une fois cette entrée crée dans spellshapeshift.dbc (ID) il faut l'affecter au spell , pour cela entrée l'ID de cette ligne crée dans spellshapeshift.dbc dans la colonne ShapeshiftID de spell.dbc
Voila , j’espère que ce tuto vous sera utile et pas trop obscur , bon jeu a vous