thelee Posted June 6, 2018 Posted June 6, 2018 (edited) Example: most built-in scripts have a few basic conditionals and then a long list of abilities, each with carrying "prioritize by". My understanding is that 1. Check conditionals (like "target: in melee range") 2. Use an ability, starting from the top of the list. I don't understand where the "prioritize by" comes into play, especially when different abilities in the list have different priorities. If I have: Conditional: Target: is spellcaster Action: 1. Sap / Prioritize by: nearest 2. Withering Strike / Prioritize by: most damage done If I'm in a fight with two spellcasters, one with 20 armor and at 2m and another with 0 armor at 8m, what will this script do? Relatedly, is "target: is spellcaster" borked? I have aloth set to cast spell reflection buffs under condition 'target: is spellcaster' and he seems to do it in virtually any fight (he just did it in a fight with some beetles). Edited June 6, 2018 by thelee
Climhazzard Posted June 6, 2018 Posted June 6, 2018 (edited) If multiple targets meet your conditionals it'll check the priorities next to choose a target. So if you set.. Target: Is a spellcaster It'll check for enemy spellcasters, then pick from them based on your priority. Set to "nearest" it will target the nearest spellcaster. Set to "greatest number of enemies" it will try to target the spellcaster with the most enemies around it. Set to "lowest fortitude/reflex/deflection, etc..." it will try to target the spellcaster with the lowest of those scores. Etc... And yeah, some conditionals aren't to picky. I think as long as the target has a spell like ability then it's considered a spell caster. If you pick "only has a ranged weapon equipped" the same thing happens with various enemies. Edited June 6, 2018 by Climhazzard 1
thelee Posted June 6, 2018 Author Posted June 6, 2018 So in my OP example: it'll start with "sap" then find the nearest target? In such a script, when would "withering strike" ever get used, so long as I have sap?
Climhazzard Posted June 6, 2018 Posted June 6, 2018 So in my OP example: it'll start with "sap" then find the nearest target? In such a script, when would "withering strike" ever get used, so long as I have sap? Yeah if sap is first It'll target the nearest spellcaster with sap. Using different skills on the same AI set doesn't work unless it's a skill that gets replaced by a better version. So if I have both torment's reach and raised torment on the same set it'll just use whichever of the two I have since you can't have both. Another thing you can do with sap or similar skills is set a conditional to prevent it from being used on the same target twice, like follows... Target: Is a spell caster Sap Nearest Target: Has intellect condition (not) Target: Has dexterity affliction (not) Then it would cycle through spellcasters that it hasn't hit yet until they are all afflicted by sap, it runs out of targets, or you run out of resource. I tend to use cooldowns on the sets because I don't like the AI to dump all it's resources at once. Then you can copy the whole set if you want it to be used more than once in a time period. If sap lasted for 18 seconds and you want the AI to sap 2 targets every 18 seconds then you can use an 18 second cooldown with two copies of the whole set. Which is also what you should do if you want it to use whithering strikes as well, just make a separate set for it. 1
Climhazzard Posted June 6, 2018 Posted June 6, 2018 Personally I just set one counter per enemy type, like crippling strikes on whichever enemy my pet is attacking, blinding strikes on ranged attacker, etc. I would set one for each of those with a cooldown equal to the affliction they do, then if I want to do more I'll do it manually.
evilcat Posted June 6, 2018 Posted June 6, 2018 (edited) Question: IF taget is enemy, then prioritize by number of enemies does refer to my enemies, or enemies of the target? I use something like: Number of allies>0 && number of enemies not>0/ fireball/ enemy/ greatest number of enemies. Edited June 6, 2018 by evilcat
Climhazzard Posted June 6, 2018 Posted June 6, 2018 (edited) Question: IF taget is enemy, then prioritize by number of enemies does refer to my enemies, or enemies of the target? I use something like: Number of allies>0 && number of enemies not>0/ fireball/ enemy/ greatest number of enemies. Conditionals are relative to the target, like Target: Allies in range > 0 will refer to the allies near your ally if you have ally set as the target. But priority "greatest number of enemies" just refers to your enemies so if you have ally set as the target you can use something like amplified wave (has to target an ally) to hit as many enemies as possible. Edited June 6, 2018 by Climhazzard
Myztik Posted June 6, 2018 Posted June 6, 2018 How did you set a conditional to check whether your pet is attacking a target? From what I remember (can't check now) you can't set conditionals based on specific party members
Climhazzard Posted June 7, 2018 Posted June 7, 2018 How did you set a conditional to check whether your pet is attacking a target? From what I remember (can't check now) you can't set conditionals based on specific party members Check in the Status: Target category, you'll find one for animal companion attacking the target. There's also a priority for targets your animal companion is attacking.
CountGrishnackh Posted June 7, 2018 Posted June 7, 2018 Relatedly, is "target: is spellcaster" borked? I have aloth set to cast spell reflection buffs under condition 'target: is spellcaster' and he seems to do it in virtually any fight (he just did it in a fight with some beetles). the only viable target for reflect spells is always "self", so unless your aloth is somehow not a spellcaster the script is working as it should ^^ 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now