Jump to content

Recommended Posts

Posted (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 by thelee
Posted (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 by Climhazzard
  • Like 1
Posted

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?

Posted

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.

 

  • Like 1
Posted

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.

Posted (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 by evilcat
Posted (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 by Climhazzard
Posted

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

Posted

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.

Posted

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 ^^

  • Like 1

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...