JonathanTBM (01-23-2013)
This will use the f5-f10 keys to play a skills sequence.
Ive only tested it with evy but i dont see why it wont work with anyone.
What im going to show you simply replaces the emotes code so that when the game calls on the emote it gets the skills code.
Ok lets get started, im going to use evy's files in this tut
First we start by getting the necessary HFS files the to we will use are:
6FA1027FAEF56718A1E30F50777B89DFAEACB849.hfs
-This contains "pc_evy_staff_magic_motion.txt"
And
1725BDA3ADE5793E823E9F33DD7AA434EA49D943.hfs
Which contains "pc_evy_motion.txt"
(Other character's motion file's at bottom)
Now we use vzipflip to convert the HFS file and extract the zips (or you can just edit them while zipped)
I assume you know how to do this if not look up the tut.
Open "pc_evy_staff_magic_motion.txt" and find the skill your looking for
Ill use blind arrow as an example:
Code:"magic_blind_arrow" { "0" { "event" "AE_CLEAR_QUEUED_ACTION_STATE" "is_finally" "1" } "0" "AE_SET_CONDITION COND_ATTACK" "0" "AE_STATE_SET_CONDITION As_Cond_SPSkill" "$endframe-1$" { "event" "AE_STATE_CLEAR_CONDITION As_Cond_SPSkill" "is_finally" "1" } "0" "AE_STATE_SET_CONDITION As_Cond_ScalablePlayRateByAtkSpeed" "$endframe-1$" { "event" "AE_STATE_CLEAR_CONDITION As_Cond_ScalablePlayRateByAtkSpeed" "is_finally" "1" } // "0" "AE_CUSTOM_MOTION FACE_TO_PRE_INPUTTED_ANGLE_OR_IGNORE_AT_CAM_ATK_DIR" // "0" "AE_GAIN_AGGRO 30" "0" "AE_CAMERA_EFFECT interpolation 1" // ÀÎÅÍÆú·¹ÀÌ¼Ç »ç¿ë ÇÔ" "0" "AE_ENABLE_CAMERA_TARGET_BONE" // Ä«¸Þ¶ó Ÿ°Ùº» »ç¿ëÇÔ "$endframe-1$" { "event" "AE_DISABLE_CAMERA_TARGET_BONE" "is_finally" "1" } "0" "AE_DISABLE_CAMERA_ORIGIN_BONE" // Ä«¸Þ¶ó ¿À¸®Áøº» »ç¿ë¾ÈÇÔ "0" "AE_CAMERA_EFFECT fov_zoom_begin 1.2 0.1" "20" "AE_CAMERA_EFFECT fov_zoom_begin 1.0 0.1" // ///////// ¾ÆÀÌÅÛ Æ¯È* À̺¥Æ®////////////// // SP °ÔÀÌÁö¸¦ ±ð´Â ½ÃÁ¡ "0" "AE_ITEM_COMMAND Prepare" "0" "AE_ITEM_COMMAND PlayEffect" "0" "AE_ITEM_COMMAND ApplyStatusEffect" "0" { "event" "AE_ITEM_COMMAND Finish" "is_finally" "1" } // ////////////////////////// "1" "AE_FIND_ENEMY_FROM_CAMERA 45 2000" "1" "AE_FACE_TO_ENEMY_OR_AIM_ANGLE" // ãÀº ÀûÀ̳ª Ä«¸Þ¶ó ¹æÇâÀ¸·Î ¾ó¶óÀÎÇÑ´Ù. "5" "AE_CREATE_PROJECTILE_GROUP bolt1 evy_bolt_blind_arrow_loop_new 1" "12" "AE_THROW_PROJECTILE_GROUP bolt1" // À¯Àúµé ¿ø¼º ¾È »ç·Á¸é À§¿¡ Prepare, Use ÇÏ´Â ºÎºÐÀ» ¿©±â ÇÁ·¹ÀÓ¿¡ ¸ÂÃç¾ßÇÑ´Ù. "12" "AE_CREATE_PROJECTILE_GROUP bolt2 evy_bolt_blind_arrow_loop_new 1" "22" "AE_THROW_PROJECTILE_GROUP bolt2 0 25 0 0 -30 0" "22" "AE_CREATE_PROJECTILE_GROUP bolt3 evy_bolt_blind_arrow_loop_new 1" "32" "AE_THROW_PROJECTILE_GROUP bolt3 0 -5 0 0 30 0" "32" "AE_CREATE_PROJECTILE_GROUP bolt4 evy_bolt_blind_arrow_new 1" "42" "AE_THROW_PROJECTILE_GROUP bolt4 0 35 30 0 -30 0" "42" "AE_CREATE_PROJECTILE_GROUP bolt5 evy_bolt_blind_arrow_loop_new 1" "52" "AE_THROW_PROJECTILE_GROUP bolt5 0 -5 -30 0 30 0" "62" "AE_CREATE_PROJECTILE_GROUP bolt6 evy_bolt_blind_arrow_loop_new 1" "72" "AE_THROW_PROJECTILE_GROUP bolt6 0 25 0 0 -30 0" "72" "AE_CREATE_PROJECTILE_GROUP bolt7 evy_bolt_blind_arrow_new 1" "82" "AE_THROW_PROJECTILE_GROUP bolt7" "82" "AE_CREATE_PROJECTILE_GROUP bolt8 evy_bolt_blind_arrow_loop_new 1" "92" "AE_THROW_PROJECTILE_GROUP bolt8 0 25 0 0 -30 0" "92" "AE_CREATE_PROJECTILE_GROUP bolt9 evy_bolt_blind_arrow_loop_new 1" "102" "AE_THROW_PROJECTILE_GROUP bolt9 0 -5 30 0 30 0" // "103" "AE_CREATE_PROJECTILE_GROUP bolt10 evy_bolt_blind_arrow_new 1" // "112" "AE_THROW_PROJECTILE_GROUP bolt10 0 45 0 0 -30 0" "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt1" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt2" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt3" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt4" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt5" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt6" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt7" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt8" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt9" "is_finally" "1" } // "$endframe-1$" // { // "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt10" // "is_finally" "1" // } "0" "AE_CUSTOM_MOTION ENABLE_SUPER_ARMOR_NO_DOWN_MODE" "130" { "event" "AE_CUSTOM_MOTION DISABLE_SUPER_ARMOR_NO_DOWN_MODE" "is_finally" "1" } "0" "AE_METAMORPHOSIS additive_attack" // º¯½Å ÈÄ Ãß°¡ °ø°Ý °¡´É // ÀÌÆåÆ®/////////////////////////// "18" "AE_CL_PLAY_EFFECT effects/player/evy_bolt_cast_lvl2.efx" "18" "AE_CL_PLAY_EFFECT effects/player/sprint_run_ground_effect.efx" // "23" "AE_CL_PLAY_EFFECT effects/player/fiona_dash_dust.efx" // "25" "AE_CL_PLAY_EFFECT effects/player/fiona_dash_dust.efx" "18" "AE_CL_PLAY_EFFECT effect_vibration_self 800 500 800" "15" "AE_CL_PLAYSOUND Player.Evy.AttackLong" "85" "AE_CL_PLAYSOUND Player.Evy.StrongAttack" "10" "AE_CL_PLAYSOUND Player.MagicArrow.Fire" "$endframe-1$" "AE_KEY_CLEAR" "$endframe-1$" "AE_ACTIVATE_STATE_CHANGE_CONDITION BattleIdle" "$endframe-1$" "AE_ACTIVATE_STATE_CHANGE_CONDITION BattleRun" "$endframe-1$" "AE_ACTIVATE_STATE_CHANGE_CONDITION SprintRun" "$endframe-1$" "AE_ACTIVATE_STATE_CHANGE_CONDITION SprintRunGamePad" "0" "AE_ACTIVATE_STATE_CHANGE_CONDITION EvyDash" "0" "AE_FLEX_FADE_IN hostile" "10" "AE_FLEX_FADE_IN angry" "15" "AE_FLEX_FADE_IN angry_shout" "85" "AE_FLEX_FADE_IN hostile" }
Now copy all the code between the main opening and closing brackets "{ and }" NOT the name
Now open "pc_evy_motion.txt" and navigate to the emote you're looking for:
"emo_cheering"
"emo_followme"
"emo_frustration"
"emo_greeting"
"emo_dance"
"emo_salute"
Replace all the code under the name between the main opening and closing brackets "{ and }" NOT the name
It should look like:
Now just re-compress them, convert them to HFS, and re-sign them.Code:"emo_greeting" { "0" { "event" "AE_CLEAR_QUEUED_ACTION_STATE" "is_finally" "1" } "0" "AE_SET_CONDITION COND_ATTACK" "0" "AE_STATE_SET_CONDITION As_Cond_SPSkill" "$endframe-1$" { "event" "AE_STATE_CLEAR_CONDITION As_Cond_SPSkill" "is_finally" "1" } "0" "AE_STATE_SET_CONDITION As_Cond_ScalablePlayRateByAtkSpeed" "$endframe-1$" { "event" "AE_STATE_CLEAR_CONDITION As_Cond_ScalablePlayRateByAtkSpeed" "is_finally" "1" } // "0" "AE_CUSTOM_MOTION FACE_TO_PRE_INPUTTED_ANGLE_OR_IGNORE_AT_CAM_ATK_DIR" // "0" "AE_GAIN_AGGRO 30" "0" "AE_CAMERA_EFFECT interpolation 1" // ÀÎÅÍÆú·¹ÀÌ¼Ç »ç¿ë ÇÔ" "0" "AE_ENABLE_CAMERA_TARGET_BONE" // Ä«¸Þ¶ó Ÿ°Ùº» »ç¿ëÇÔ "$endframe-1$" { "event" "AE_DISABLE_CAMERA_TARGET_BONE" "is_finally" "1" } "0" "AE_DISABLE_CAMERA_ORIGIN_BONE" // Ä«¸Þ¶ó ¿À¸®Áøº» »ç¿ë¾ÈÇÔ "0" "AE_CAMERA_EFFECT fov_zoom_begin 1.2 0.1" "20" "AE_CAMERA_EFFECT fov_zoom_begin 1.0 0.1" // ///////// ¾ÆÀÌÅÛ Æ¯È* À̺¥Æ®////////////// // SP °ÔÀÌÁö¸¦ ±ð´Â ½ÃÁ¡ "0" "AE_ITEM_COMMAND Prepare" "0" "AE_ITEM_COMMAND PlayEffect" "0" "AE_ITEM_COMMAND ApplyStatusEffect" "0" { "event" "AE_ITEM_COMMAND Finish" "is_finally" "1" } // ////////////////////////// "1" "AE_FIND_ENEMY_FROM_CAMERA 45 2000" "1" "AE_FACE_TO_ENEMY_OR_AIM_ANGLE" // ãÀº ÀûÀ̳ª Ä«¸Þ¶ó ¹æÇâÀ¸·Î ¾ó¶óÀÎÇÑ´Ù. "5" "AE_CREATE_PROJECTILE_GROUP bolt1 evy_bolt_blind_arrow_loop_new 1" "12" "AE_THROW_PROJECTILE_GROUP bolt1" // À¯Àúµé ¿ø¼º ¾È »ç·Á¸é À§¿¡ Prepare, Use ÇÏ´Â ºÎºÐÀ» ¿©±â ÇÁ·¹ÀÓ¿¡ ¸ÂÃç¾ßÇÑ´Ù. "12" "AE_CREATE_PROJECTILE_GROUP bolt2 evy_bolt_blind_arrow_loop_new 1" "22" "AE_THROW_PROJECTILE_GROUP bolt2 0 25 0 0 -30 0" "22" "AE_CREATE_PROJECTILE_GROUP bolt3 evy_bolt_blind_arrow_loop_new 1" "32" "AE_THROW_PROJECTILE_GROUP bolt3 0 -5 0 0 30 0" "32" "AE_CREATE_PROJECTILE_GROUP bolt4 evy_bolt_blind_arrow_new 1" "42" "AE_THROW_PROJECTILE_GROUP bolt4 0 35 30 0 -30 0" "42" "AE_CREATE_PROJECTILE_GROUP bolt5 evy_bolt_blind_arrow_loop_new 1" "52" "AE_THROW_PROJECTILE_GROUP bolt5 0 -5 -30 0 30 0" "62" "AE_CREATE_PROJECTILE_GROUP bolt6 evy_bolt_blind_arrow_loop_new 1" "72" "AE_THROW_PROJECTILE_GROUP bolt6 0 25 0 0 -30 0" "72" "AE_CREATE_PROJECTILE_GROUP bolt7 evy_bolt_blind_arrow_new 1" "82" "AE_THROW_PROJECTILE_GROUP bolt7" "82" "AE_CREATE_PROJECTILE_GROUP bolt8 evy_bolt_blind_arrow_loop_new 1" "92" "AE_THROW_PROJECTILE_GROUP bolt8 0 25 0 0 -30 0" "92" "AE_CREATE_PROJECTILE_GROUP bolt9 evy_bolt_blind_arrow_loop_new 1" "102" "AE_THROW_PROJECTILE_GROUP bolt9 0 -5 30 0 30 0" // "103" "AE_CREATE_PROJECTILE_GROUP bolt10 evy_bolt_blind_arrow_new 1" // "112" "AE_THROW_PROJECTILE_GROUP bolt10 0 45 0 0 -30 0" "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt1" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt2" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt3" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt4" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt5" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt6" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt7" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt8" "is_finally" "1" } "$endframe-1$" { "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt9" "is_finally" "1" } // "$endframe-1$" // { // "event" "AE_REMOVE_UNTHROWN_PROJECTILE_GROUP bolt10" // "is_finally" "1" // } "0" "AE_CUSTOM_MOTION ENABLE_SUPER_ARMOR_NO_DOWN_MODE" "130" { "event" "AE_CUSTOM_MOTION DISABLE_SUPER_ARMOR_NO_DOWN_MODE" "is_finally" "1" } "0" "AE_METAMORPHOSIS additive_attack" // º¯½Å ÈÄ Ãß°¡ °ø°Ý °¡´É // ÀÌÆåÆ®/////////////////////////// "18" "AE_CL_PLAY_EFFECT effects/player/evy_bolt_cast_lvl2.efx" "18" "AE_CL_PLAY_EFFECT effects/player/sprint_run_ground_effect.efx" // "23" "AE_CL_PLAY_EFFECT effects/player/fiona_dash_dust.efx" // "25" "AE_CL_PLAY_EFFECT effects/player/fiona_dash_dust.efx" "18" "AE_CL_PLAY_EFFECT effect_vibration_self 800 500 800" "15" "AE_CL_PLAYSOUND Player.Evy.AttackLong" "85" "AE_CL_PLAYSOUND Player.Evy.StrongAttack" "10" "AE_CL_PLAYSOUND Player.MagicArrow.Fire" "$endframe-1$" "AE_KEY_CLEAR" "$endframe-1$" "AE_ACTIVATE_STATE_CHANGE_CONDITION BattleIdle" "$endframe-1$" "AE_ACTIVATE_STATE_CHANGE_CONDITION BattleRun" "$endframe-1$" "AE_ACTIVATE_STATE_CHANGE_CONDITION SprintRun" "$endframe-1$" "AE_ACTIVATE_STATE_CHANGE_CONDITION SprintRunGamePad" "0" "AE_ACTIVATE_STATE_CHANGE_CONDITION EvyDash" "0" "AE_FLEX_FADE_IN hostile" "10" "AE_FLEX_FADE_IN angry" "15" "AE_FLEX_FADE_IN angry_shout" "85" "AE_FLEX_FADE_IN hostile" }
NOTES:
You can also go into you options and change the keys the emotes are bound to.
these are the emotes:
"emo_cheering" emote 1
"emo_followme" emote 2
"emo_frustration" emote 3
"emo_greeting" emote 4
"emo_dance" emote 5
"emo_salute" emote 6
Other character's motion file's
"pc_fiona_motion.txt" is in 2269E3A298014B9E0D6C5FFE5F3276C86FEE91B2.hfs
"pc_kalok_motion.txt" is in 77B17FB69387C2253B8F6B20DB59E5FAD69A2038.hfs
"pc_kay_motion.txt" is in D6B5B21ECDEC97D23232D8E2A73493CDA40448F8.hfs
"pc_lethita_motion.txt" is in AE88BB531C59DB444C6687934B51A351791EE653.hfs
"pc_vella_motion.txt" is in BC2FC399811FC4A7B0898B1197BFE63B9661A392.hfs
"pc_evy_staff_magic_motion.txt" is in 6FA1027FAEF56718A1E30F50777B89DFAEACB849.hfs
(this is for evy's skills when using a staff)
"pc_evy_motion.txt" is in 1725BDA3ADE5793E823E9F33DD7AA434EA49D943.hfs
other skills can be replace with another skills code.
ie. I replaced "battle_cast_magic_arrow" code with "magic_blind_arrow" so my main left click attack is blind arrow
JonathanTBM (01-23-2013)
Simple, but awesome Thank you.
Starting my first DirectX book.
Very Nice but how do you re-sign the hfs to the UpToDateInfo? Do you have a new hfssign that works now after the patch (EU)?
https://www.mpgh.net/forum/267-vindic...7-hfssign.html
No need new Hfssign.
Starting my first DirectX book.
if i use an old UpToDateInfo.dat whitch is befor the update then i can sign the hsf to it. But if i use the actual UpToDateInfo.dat from the update then i get the error "hfssign has stopped working". So i think we have to wait until someone makes a new hfssign which applies to the new UpToDateInfo.dat
So now we can skip map with this? O_o