The anicode does not relate to data.enc.
Animation codes for skills that use swords start at 1003 and I'll break down how they work.
The 3 is the skill id multiplied by 3 so 1003 is the animation code for skill id="1" being "Flash Draw". (This does NOT have to be the skill id) Now Flash Draw is a skill every class that uses a sword can use (WA/BL/FS/FB) and that divides up into three different animations and effects being 2-handed (2H), 1-handed (1H) and Dual Wielding (DU).
So how does the client know this skill has to change it's animation and effect based on the equipped weapons? The data in cabal.enc has the info on that. Let's list the data that has a say in this.
- anicode: This tells the client which animatio to look up based on it's name in the ech's, not it's position
- grip_calc: This, if I'm correct, tells the client if the skill is used by 1 class or more resulting in the need to read different efx files depending on the equipped weapons.
- fxcode_on: This sets the link to data.enc where the correct efx is stated and is also the base of the grip calculation
- <condition .../>: This whole line defines which class can use it and what grip type is allowed.
So the anicode being 1003 tells the client it needs to look for SKIL(grip)_001 in the animations list of all ech files. As I said before if you set your anicode to 1300 it should technically look for SKIL(grip)_100 so it does not have to be the skill ID x3.
Now the client will fill in the (grip) based on what your character is equipped with the moment it wants to fire of the skill and the possibilities are 2H, 1H and DU.
If you perform a search for SKIL2H_001/SKIL1H_001/SKILDU_001 you'll see they're all there.
The grip_calc is set to 3 so that depending on your equip you'll load 628/629/630 from data.enc. If you go to your data.enc you'll see 628 is the link to skil_1h_001.efx, 629 to 2h and 630 to du. So you could say the loaded efx is fxcode_on + 0 for 1H + 1 for 2H and + 2 for DU.
The <condition twohand="1" dual="1" onehand="1" bracer="0" exclusive="0" ...
defines the skill can be used by any class since it's not exclusive to a set class and the skill is also available for 1H 2H and DU. These disable or enable the skill for use in-game on set conditions.
So after all this let's look at skill 40 which is a Blader only skill and only usable with 2 blades/katanas equipped.
Code:
<skill id="40" name="skill0040" type="1" group="3" intensity="1" element="0" desc="skill_desc0040" stance="0" icon_id="J_icn_skill040" >
<attribute target="1" max_target="1" reach="0" mreach="1" range="2" range_type="0" >
<code grip_calc="1" anicode="1120" fxcode_on="675" fxcode_keep="" />
<frame term="114" blend_limit="90" hit_frame="65" firing_frame="65" />
<effect multi_sequence="0" visual_type="" movemethod="0" />
<condition twohand="0" dual="1" onehand="0" bracer="0" exclusive="2" usecase="4100" />
</attribute>
<param exp1="57" exp2="60" >
<power atk="15,0,45,3579" ar="10,100" def="" dr="" matk="" dur="" hpmax="" mpmax="" hpregen="" mpregen="" critrate="0,5" critdmg="0,20" critrate2="" critdmg2="" />
<cost ctime="-380,7220" mp="26,234" mpadd="" sp="" />
</param>
</skill>
anicode=1120 -> it's SKIL(grip)_040 that's being searched in the ech files
grip_calc=1 and fxcode_on=675 -> only 675 will be loaded even if you change the skill to allow use of other equips.
conditions dual=1 exclusive=2 -> only a blader can use it with 2 1handed weapons.
=> SKILDU_040 is the only one in the ech
If you rename it to SKIL2H_040 you won't see an animation. If you then set conditions to "twohand=1" you can equip a greatsword on your blader and the animation will be shown again but so will the efx since grip_calc=1
I hope this is clear enough?
Greetz,
Speedy