Hero Fighter Empire - Forums
[Spt] Modifying Ai's Behaviour - Printable Version

+- Hero Fighter Empire - Forums (https://hf-empire.com/forum)
+-- Forum: Hero Fighter Zone (https://hf-empire.com/forum/forumdisplay.php?fid=10)
+--- Forum: Data Changing (https://hf-empire.com/forum/forumdisplay.php?fid=35)
+---- Forum: Tutorials (https://hf-empire.com/forum/forumdisplay.php?fid=36)
+---- Thread: [Spt] Modifying Ai's Behaviour (/showthread.php?tid=452)



Modifying Ai's Behaviour - Almighty Jack E - 29-04-2024

Modifying Ai's Behaviour
The "behavior" of a computer player, Ai, can be modified in the Spt of that character e.g, when to perform a move.

In performing a move by Ai, the distance is an important factor to consider, setting a range of distance values for a specific move will reduce the tendency of Ai performing moves randomly, thereby, increasing the Ai's skill.

1. How to make Ai use a move at a given range of distance;

This is the ICECOL of Iczzy
"81": {
            "__AMF0_OBJECT_CLASSNAME__": "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
        },


"aiz2","aix1b","aix2","aiz1","aix2b" and "aix1" are the parameters governing the distance at which Com will decide to attack. An enemy withing this range is in the territory of Com, so Ai will attack.

We can see that aiz2 = 250, which means; if an enemy is within the range of 1 - 250μm in the positive direction, ie. facing the Ai, Com Iczzy will use the ICECOL in the presence of sufficient mp. (i used μm  as the unit of measurement, this may not be the unit used in the game) Perhaps, at 300μm, enemy won't be affected by the attack, so Com wont use the ICECOL.

aix1b = -750, means; if enemy is within the range of -750 to -1, in the negative direction, i.e behind Ai, Com Iczzy will perform the ICECOL if there's enough mp.

Normal Com Iczzy

2. To make Ai not make use of a particular skill.

Since the distance assists Ai in deciding when to attack, it can be modified in a way that Com won't use this skill.
If the values of "aiz2","aix1b","aix2","aiz1","aix2b" and "aix1" are set to 0, Com Iczzy won't use the ICECOL at any distance.

"81": {
            "__AMF0_OBJECT_CLASSNAME__": "Data.Action",
            "selfLoop": false,
            "nextAi": -1.0,
            "allowTurnFace": false,
            "nextAti": -1.0,
            "frame": null,
            "aiz2": 0.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": 0.0,
            "mpBurn": 0.0,
            "index": 81.0,
            "aix2": 0.0,
            "aiz1": 0.0,
            "nextActionName": null,
            "type": -1.0,
            "aix2b": 0.0,
            "aix1": 0.0,
            "landActionName": null
        },


Simple explanation; Since matter occupies "Space", it's impossible for two things to occupy the same position at a given time, similar reasoning shows that, when those values are set to 0, it means Com will only use that skill when the enemy is standing exactly where Com is, which is not possible.


Thanks to BuEBaiDi, more will be added with time.