(I'm going to explain in as much detail what I am requesting in this post. I'm not trying to be rude or demanding, just, as someone who's taken requests before, I myself much prefer having TONS of details, rather than vagueness, so that's what I'm gonna write here.)
I am requesting a plugin that will improve enemy AI's, specifically, how they target their actions. As oppose to other enemy AI scripts, such as Yanfly's AI Core, what I am requesting does not override the default enemy move selection system, but instead builds upon it. This makes it more newcomer friendly, easier to read, and I think also will make on the whole smarter AIs. I will explain below.
In VX Ace, I have used for years a modified version of this script, by Shad3Light:
(I've wanted to thank him for this script for years, but he hasn't logged on in so long!)
This is a great, and very easy to use, system. In my time with it, I've also improved upon the few problems I saw with it, namely with its sorting and randomizing methods.
I am asking for essentially a system like this, but improved in a few spots.
My algorithm goes as such:
> Enemy picks an action from their action list, based on how skills are normally selected (turn, rate, switch, etc.)
> Find all potential targets for this selected skill.
> Shuffle, randomizing all these targets.
> Sort them based on the notetags (Examples and explanations below in spoiler).
> Choose the target based on what was sorted to the top.
> Use that skill on that target.
Example Enemy:
Enemy Moves:
Edward Slayer, used every 3x turns, rate 9
Default attack, used every turn, rate 1
MP Drain, used when switch 3 is on, rate 2
Speed Buster, used every 1 + 3x turns, rate 5
if(b.name == "Edward")
return 2;
else
return 1;
</action_target>
//This checks to see if there is any actor named Edward on the team, prioritizing them. However, states 5 and 3 grant physical damage immunity, so anyone with those 2 states are prioritized the lowest, even if they're named Edward.
//Due to the 2nd part of the algorithm, shuffling all the targets, if 2 equally valid targets are selected at once, say 2 team members named Edward, a random one will be picked. However, if there is only 1 Edward, then that 1 will always be sorted to the top.
//Sorted: An Edward if he doesn't have states; Everyone else not with states; Everyone else with either of those 2 states.
<action_target: 2>
if(!b.state(5) && !b.state(3)){
return (1 - (b.hp / b.maxhp));}
else{
return 0;}
</action_target>
//Going with before, this will try to avoid actors with those 2 physical immunity states.
//However, after finding someone who's not in those states, it'll sort for the one with the least HP percent.
//Sorted: Lowest HP to Highest; Has State 3 or 5.
<action_target: 3>
return b.mp;
</action_target>
//Sorted: Most current MP.
<action_target: 4>
if(a.spd > b.spd)
return 1;
else
return 0;
</action_target>
//Checks all targets based on their speed compared to the enemy's. Selects a target with a higher speed, if one exists.
//Sorted: Higher Speed; Everyone else.
That's my plugin request. An extension of the default enemy AI, as oppose to an overhaul of it. If it can be compatible with Yanfly's AI Core, that's great, but not needed. This is a pretty different AI system than Yanfly's, after all!
So, thank you for your help!
And thank you Shad3Light for a brilliant little Ruby script!
Hello! I would like to know if there are any pluggings or any way to customize how battles look?
I was thinking that when you start the battle for it to appear the eyes of your characters and opponents sorta like Ace Attorney.
Sadly I don't know how that would be possible so I would be needing help! If you can help me in any way I would really apreciate it!
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.