Jump to content

On script trigger 0x400D Exists(O:Object*)


Creepin

Recommended Posts

I just tried to figure how this trigger actually works, and since it's marked as "NotTested" in IESDP trigger list I decided to post what I found out during my tests.

This trigger works as it logically should in most cases: true if a cre is in the area, false if a cre was never present in the area and turns from true to false the moment cre EscapeArea()'ed. However, there's one exception: Exists() still returns true if a cre was killed in the area.

 

Edited: almost forgot - I tested it in BG1 environment.

Link to comment
However, there's one exception: Exists() still returns true if a cre was killed in the area.

 

I wonder if it has anything to do with this?

 

for IWD2
------------------
0x401C See(O:Object*,I:SeeDead*)
------------------

-Gimble
Q: What's the second argment ( typically zero ) that is passed to See()?

-Briareus
0 = don't see dead creatures. 1 = see dead creatures. In every previous IE game, See() would return a match even if the creature was dead. This resulted in having to do a !Dead() check in almost every IF block. I don't know why you'd want to see dead creatures, but it's there if you do.

 

Hmm, in IWD2, Exists() dosen't have the 2nd parameter, so perhaps it is something different?

Link to comment

It returns true if the specified object exists in the area definition. Some actions purge objects from the definition, as well as various conditions (chunky death in BG without gore enabled, for instance). The trigger accepts any scriptable object (doors, triggers, actors, etc.).

Link to comment
In every previous IE game, See() would return a match even if the creature was dead.
Whoa! It's so indeed :p Funny thing, never know this before :D

Perhaps it works for ewerything that uses scriptname as an Object, for triggers at least: while PC could See dead creature in BG1, he couldn't MoveToObject to it :p

Link to comment
In every previous IE game, See() would return a match even if the creature was dead.
Whoa! It's so indeed :p Funny thing, never know this before :D

Perhaps it works for ewerything that uses scriptname as an Object, for triggers at least: while PC could See dead creature in BG1, he couldn't MoveToObject to it :p

 

Yeah, at one time I thought this might be a huge problem for the eSeries, but the basic targeting is, for the most part, protected by a HPGT 5 clause. In other words, if it has less than 5 hp, then ignore, and we'll get around to mopping it up later.

 

And, they don't try to beating on corpses after a battle is over, so I haven't worried about it, too much.

Link to comment
Yeah, at one time I thought this might be a huge problem for the eSeries, but the basic targeting is, for the most part, protected by a HPGT 5 clause.
That was my first thought when I saw that it works - not about eSeries but about targeting, I mean :p So next thing I checked was See([EVILCUTOFF]) - it stopped when enemy dies, and scripts didn't use scriptnames as an objects anyway :p
Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...