Object identifiers
#1
Posted 10 July 2012 - 12:07 AM
Those used in this format [EA.GENERAL.RACE.CLASS.SPECIFIC.GENDER.ALIGN]
Most ones are obvious, I'm mainly looking for details in EA.IDS : PC (Player1 - Player6?) / ALLY (?) / GOODCUTOFF (all green-circled?) / EVILCUTOFF (all red-circled?) at least.
IESDP lists them but gives no details.
you should liquor multiplying great deal supplment your to office apparel predicated copy may possibly be an go through check out this behave as more busy den has an interest in pc
#2
Posted 15 July 2013 - 01:46 PM
Zombie thread.
It certainly deserves to be brought back, for a couple reasons.
(1) [EA.GENERAL.RACE.CLASS.SPECIFIC.GENDER.ALIGN] is fantastic for scripting
(2) Having some user-generated documentation for how these descriptionless identifiers work would be nice.
I know a lot of people use [EVILCUTOFF] but in my scripts I prefer to use [ENEMY]. I know there is a difference but I can't remember what. My intuition tells me that it has to do with evil party members, but I am pretty sure that's not it.
#3
Posted 15 July 2013 - 10:11 PM
Here is an example of what I'm talking about:
OR(18) See([ENEMY.0.0.BARD]) See([ENEMY.0.0.BARD_ALL]) See([ENEMY.0.0.CLERIC_MAGE]) See([ENEMY.0.0.CLERIC]) See([ENEMY.0.0.CLERIC_RANGER]) See([ENEMY.0.0.CLERIC_THIEF]) See([ENEMY.0.0.DRUID]) See([ENEMY.0.0.DRUID_ALL]) See([ENEMY.0.0.FIGHTER_CLERIC]) See([ENEMY.0.0.FIGHTER_DRUID]) See([ENEMY.0.0.FIGHTER_MAGE]) See([ENEMY.0.0.FIGHTER_MAGE_CLERIC]) See([ENEMY.0.0.FIGHTER_MAGE_THIEF]) See([ENEMY.0.0.MAGE]) See([ENEMY.0.0.MAGE_ALL]) See([ENEMY.0.0.MAGE_THIEF]) See([ENEMY.0.0.SORCERER]) See([ENEMY.0.0.OGRE_MAGE])
Should trigger as true whenever there is an enemy in LOS of the given class.
Some spells have a range centered on the caster with a 5, 20, or 30 foot range. For these you may want to ensure that there are at least two enemies in range but that at least one of them is a caster. This:
See(SecondNearestEnemyOf(Myself)) OR(18) Class(LastSeenBy(Myself),BARD) Class(LastSeenBy(Myself),BARD_ALL) Class(LastSeenBy(Myself),CLERIC_MAGE) Class(LastSeenBy(Myself),CLERIC) Class(LastSeenBy(Myself),CLERIC_RANGER) Class(LastSeenBy(Myself),CLERIC_THIEF) Class(LastSeenBy(Myself),DRUID) Class(LastSeenBy(Myself),DRUID_ALL) Class(LastSeenBy(Myself),FIGHTER_CLERIC) Class(LastSeenBy(Myself),FIGHTER_DRUID) Class(LastSeenBy(Myself),FIGHTER_MAGE) Class(LastSeenBy(Myself),FIGHTER_MAGE_CLERIC) Class(LastSeenBy(Myself),FIGHTER_MAGE_THIEF) Class(LastSeenBy(Myself),MAGE) Class(LastSeenBy(Myself),MAGE_ALL) Class(LastSeenBy(Myself),MAGE_THIEF) Class(LastSeenBy(Myself),SORCERER) Class(LastSeenBy(Myself),OGRE_MAGE) Range(LastSeenBy(Myself),30)
Should do that, but actually would only fire when the second nearest matches the Class. A better way of scripting that would be:
See(SecondNearestEnemyOf(Myself)) Range(LastSeenBy(Myself),30) OR(18) See([ENEMY.0.0.BARD]) See([ENEMY.0.0.BARD_ALL]) See([ENEMY.0.0.CLERIC_MAGE]) See([ENEMY.0.0.CLERIC]) See([ENEMY.0.0.CLERIC_RANGER]) See([ENEMY.0.0.CLERIC_THIEF]) See([ENEMY.0.0.DRUID]) See([ENEMY.0.0.DRUID_ALL]) See([ENEMY.0.0.FIGHTER_CLERIC]) See([ENEMY.0.0.FIGHTER_DRUID]) See([ENEMY.0.0.FIGHTER_MAGE]) See([ENEMY.0.0.FIGHTER_MAGE_CLERIC]) See([ENEMY.0.0.FIGHTER_MAGE_THIEF]) See([ENEMY.0.0.MAGE]) See([ENEMY.0.0.MAGE_ALL]) See([ENEMY.0.0.MAGE_THIEF]) See([ENEMY.0.0.SORCERER]) See([ENEMY.0.0.OGRE_MAGE]) Range(LastSeenBy(Myself),30)
Which combines two See() checks to ensure that there are two enemies within 30 feet and that at least one of them is a caster.
It's also pretty useful here:
See([ANYONE]) OR(2) Gender(LastSeenBy(Myself),SUMMONED_DEMON) Race(LastSeenBy(Myself),DEMONIC)
Becomes:
OR(2) See([ENEMY.0.0.0.0.SUMMONED_DEMON]) See([ENEMY.0.0.DEMONIC])
Anyway, this is mostly theoretical for me. I write scripts and my characters are pretty badass, so I guess it works.
#4
Posted 16 July 2013 - 03:43 AM
xxxNearestEnemyOf() is naffed - it always defaults to NearestEnemyOf(). Probably useless information but it's been fixed in BG:EE
-Y-
'Go for the optics, Chiktikka. GO FOR THE OPTICS!!' - Tali vas Neema
DLTCEP Tutorials Update Page
DLTCEP Tutorials Main Page
Yovaneth's AI Scripts for BG1, BG2-SoA and IWD1
Fishing for Trouble - a quest mod for Shadows of Amn