English (American)  中文(简体)

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Make a Character Execute a Move While Performing a Skill
#1
HOW TO MAKE A CHARACTER EXECUTE A SKILL WHEN PERFORMING A MOVE
In this tutorial, I will show you how to make a character perform a skil, regardless of wether the skill the character is performing is completed or not!

In this tutorial, I will use `Iczzy` as an example. The corresponding spt file of Iczzy is `441- Data.Global_iczzySpt.zip`
What I want to do is; When Iczzy is performing the `ICECOL`, (ie. the Ice Explosion), I want him to also be able to do the `ICECOL` again.

You may not understand now. But watch the video first, then, come back to the tutorial!


First, you need to be familiar with HFW, then, you also need to have some basic knowledge about the `Spt.json` files.

Now what we need for what stated above to be possible is only HFW and the HF you wish to modify, In this tutorial, I am using HFv0.7+.exe

1. Open HFW
2. Give it the HF/HF MOD you wish to modify (You can drag and drop the exe/swf inside HFW OR TYPE IN THE CORRECT PATH) and hit enter (Note: Some executable versions HF mods can not be modified)
3. Press 5 (Edit data)
4. Press 1 (List data files)
5. Press 2 (Export data file(s))
6. Type `441` and hit enter. (you will get a zip file containing Iczzy's spt in the folder which HFW was run from)
7. Extract the `Spt.json`
8. Open it with a text editor (I recommend you use Notepad++)
9. The skill we want to modify is `ICECOL` (case sensitive) as it the skill of Ice Explosion.
Press Crtl+F to find and type `ICECOL` (you may want to toggle on "match case")


You should find something similar to this:
[code=JSON]

"81": {
"HFW_classNameXXX": "Data.Action",
"selfLoop": false,
"nextAi": -1.0,
"allowTurnFace": false,
"nextAti": -1.0,
"frame": null,
"aiz2": 250.0,
"special": 0.0,
"landAti": -1.0,
"landAi": -1.0,
"nextAgi": -1.0,
"name": "ICECOL",
"a_keyTgr": null,
"landAgi": -1.0,
"frameIndex": 231.0,
"aix1b": -750.0,
"mpBurn": 0.0,
"index": 81.0,
"aix2": 750.0,
"aiz1": -250.0,
"nextActionName": null,
"type": -1.0,
"aix2b": 750.0,
"aix1": -750.0,
"landActionName": null
},
[/code]

I do not have the strenght to explain all these parameters.
Look at this `"81: {...},`

If you look closely, you would notice that a parameter called `"a_keyTgr"` is set to `null` which means, during, this skill, pressing any other key(s) will have no effect on the character, till the skill is finished or is interrupted.

So, I want Iczzy to perform another skill (the same skill) during this move.

10. Find "STAND" (case sensitive)

[code=JSON]

"name": "STAND",
"a_keyTgr": {
"HFW_ArrayLenXXX": 3,
"0": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 3.0,
"atf": true,
"hp": 0.0,
"ati": 2.0,
"pollhp": 0.0,
"kl": 3.0,
"k": "gra",
"mp": 0.0,
"agi": 0.0,
"rkt": false,
"kr": "gla"
},
"1": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 3.0,
"atf": true,
"hp": 0.0,
"ati": 3.0,
"pollhp": 0.0,
"kl": 3.0,
"k": "grj",
"mp": 125.0,
"agi": 0.0,
"rkt": false,
"kr": "glj"
},
"2": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 4.0,
"atf": true,
"hp": 0.0,
"ati": 3.0,
"pollhp": 0.0,
"kl": 3.0,
"k": "guj",
"mp": 350.0,
"agi": 0.0,
"rkt": false,
"kr": "guj"
}
},
"landAgi": -1.0,
"frameIndex": 1.0,
"aix1b": 0.0,
"mpBurn": 0.0,
"index": 1.0,
"aix2": 0.0,
"aiz1": 0.0,
"nextActionName": null,
"type": -1.0,
"aix2b": 0.0,
"aix1": 0.0,
"landActionName": null
},

[/code]

Now, you can easily see all the skills Iczzy can execute while standing, so, I want the last skill to be performed again, so I will take the last one.

Now,what you want to do is;
(a) copy the skill you want
(b) put it in `ICECOL`
© set the keys


This is the way I know of doing this;


11. Copy this (Under the `"STAND"`):

[code=JSON]
"a_keyTgr": {
"HFW_ArrayLenXXX": 3,
"0": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 3.0,
"atf": true,
"hp": 0.0,
"ati": 2.0,
"pollhp": 0.0,
"kl": 3.0,
"k": "gra",
"mp": 0.0,
"agi": 0.0,
"rkt": false,
"kr": "gla"
},
[/code]

Now, go to `ICECOL` again, delete the whole of `"a_keyTgr"` and paste it there like this:

[code=JSON]
"a_keyTgr": {
"HFW_ArrayLenXXX": 3,
"0": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 3.0,
"atf": true,
"hp": 0.0,
"ati": 2.0,
"pollhp": 0.0,
"kl": 3.0,
"k": "gra",
"mp": 0.0,
"agi": 0.0,
"rkt": false,
"kr": "gla"
},
[/code]

Now, go back again to "STAND", copy the skill with serial number `"2"` like this
[code=JSON]
"2": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 4.0,
"atf": true,
"hp": 0.0,
"ati": 3.0,
"pollhp": 0.0,
"kl": 3.0,
"k": "guj",
"mp": 350.0,
"agi": 0.0,
"rkt": false,
"kr": "guj"
}
},
[/code]

Go back again now to `ICECOL` and replace the whole of this:
[code=JSON]

"0": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 3.0,
"atf": true,
"hp": 0.0,
"ati": 2.0,
"pollhp": 0.0,
"kl": 3.0,
"k": "gra",
"mp": 0.0,
"agi": 0.0,
"rkt": false,
"kr": "gla"
},
[/code]
And replace it with this:
[code=JSON]
"2": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 4.0,
"atf": true,
"hp": 0.0,
"ati": 3.0,
"pollhp": 0.0,
"kl": 3.0,
"k": "guj",
"mp": 350.0,
"agi": 0.0,
"rkt": false,
"kr": "guj"
}
},
[/code]

Change the serial number from "2" to "0"
[code=JSON]
"0": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 4.0,
"atf": true,
"hp": 0.0,
"ati": 3.0,
"pollhp": 0.0,
"kl": 3.0,
"k": "guj",
"mp": 350.0,
"agi": 0.0,
"rkt": false,
"kr": "guj"
}
},
[/code]
Change `"mp": 350.0,` to `"mp": 50.0,`
Change `"k": "guj",` to `"k": "a",`
Change `"kr": "guj",` to `"kr": "a"`
Change `"kl": 3.0,` to `"kl": 1.0,`
Change `"HFW_ArrayLenXXX": 3,` of `ICECOL` to `"HFW_ArrayLenXXX": 1,`
(note, we are modifying the `ICECOl` NOT the `"STAND"`)

I may/may not have time to explain in details the meaning of these parameters.

your final `ICECOL` should look like this


[code=JSON]
"name": "ICECOL",
"a_keyTgr": {
"HFW_ArrayLenXXX": 1,
"0": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 4.0,
"atf": true,
"hp": 0.0,
"ati": 3.0,
"pollhp": 0.0,
"kl": 1.0,
"k": "a",
"mp": 50.0,
"agi": 0.0,
"rkt": false,
"kr": "a"
}
},

[/code]

Now, save that file (`Spt.json`), copy it back to the zip file you extracted it from, paste it there (you may be asked if you want to overwrite the existing Spt.json, simply click yes).
Use HFW to replace Iczzy's spt with the modified one now.
Export exe or swf

When using Iczzy to perform the explosion, press `a` to perform another Explosion immediately!

[spoiler=HELP]

Are the steps too much?
Confusing? don't worry, maybe your'e too small to understand now, I will help you.
1. Usw HFW to get Iczzy's spt
2. Find `ICECOL` and replace the whole of

[code=JSON]
"81": {
"HFW_classNameXXX": "Data.Action",
"selfLoop": false,
"nextAi": -1.0,
"allowTurnFace": false,
"nextAti": -1.0,
"frame": null,
"aiz2": 250.0,
"special": 0.0,
"landAti": -1.0,
"landAi": -1.0,
"nextAgi": -1.0,
"name": "ICECOL",
"a_keyTgr": null,
"landAgi": -1.0,
"frameIndex": 231.0,
"aix1b": -750.0,
"mpBurn": 0.0,
"index": 81.0,
"aix2": 750.0,
"aiz1": -250.0,
"nextActionName": null,
"type": -1.0,
"aix2b": 750.0,
"aix1": -750.0,
"landActionName": null
},
[/code]

With:

[code=JSON]

"81": {
"HFW_classNameXXX": "Data.Action",
"selfLoop": false,
"nextAi": -1.0,
"allowTurnFace": false,
"nextAti": -1.0,
"frame": null,
"aiz2": 250.0,
"special": 0.0,
"landAti": -1.0,
"landAi": -1.0,
"nextAgi": -1.0,
"name": "ICECOL",
"a_keyTgr": {
"HFW_ArrayLenXXX": 1,
"0": {
"HFW_classNameXXX": "Data.A_KeyTgr",
"ai": 4.0,
"atf": true,
"hp": 0.0,
"ati": 3.0,
"pollhp": 0.0,
"kl": 1.0,
"k": "a",
"mp": 50.0,
"agi": 0.0,
"rkt": false,
"kr": "a"
}
},
"landAgi": -1.0,
"frameIndex": 231.0,
"aix1b": -750.0,
"mpBurn": 0.0,
"index": 81.0,
"aix2": 750.0,
"aiz1": -250.0,
"nextActionName": null,
"type": -1.0,
"aix2b": 750.0,
"aix1": -750.0,
"landActionName": null
},
[/code]

Save, replace and export exe.
When using Iczzy to perform the explosion, press `a` to perform another explosion immediately!
[/spoiler]
[Image: Jack-E-s-Signature.png]
Reply
  


Forum Jump:


Users browsing this thread: 1 Guest(s)