Jump to content

GPARCHER.BCS is causing creatures to seek out Player1


Recommended Posts

As the title says, a bunch of creatures who are using the GPARCHER.BCS script (most notably Kua-Toa Warriors) will seek out Player1 despite never having seen or fought the party beforehand. For example, this can be experienced when the party enters the Underdark for the first time and gets attacked by a lone Kua-Toa Warrior out of the blue. IIRC, this has never happened in SoA, and I assume that the bug was probably introduced by ToB or one of its patches. I believe that this script block is to blame:

 

IF
!Allegiance(LastSeenBy(Myself),GOODCUTOFF)
!See([GOODCUTOFF])
THEN
RESPONSE #100
	MoveToObject(Player1)
END

 

IMO, a check should be added above this block in order to ensure that the creature has actually seen or fought the party at least once before automatically seeking out Player1. For example, this is what I use for some of the improved Shadow Thieves in Rogue Rebalancing:

 

IF
Global("RR#Active","LOCALS",0)
OR(4)
	TookDamage()
	AttackedBy([GOODCUTOFF],DEFAULT)
	Heard([EVILCUTOFF],124)
	See(NearestEnemyOf(Myself))
THEN
RESPONSE #100
	SetGlobal("RR#Active","LOCALS",1)
	Shout(124)
	Continue()
END

IF
Global("RR#Active","LOCALS",0)
THEN
RESPONSE #100
	NoAction()
END

 

BTW, the same goes for AIRELE01.BCS.

Link to comment
As the title says, a bunch of creatures who are using the GPARCHER.BCS script (most notably Kua-Toa Warriors) will seek out Player1 despite never having seen or fought the party beforehand. For example, this can be experienced when the party enters the Underdark for the first time and gets attacked by a lone Kua-Toa Warrior out of the blue. IIRC, this has never happened in SoA, and I assume that the bug was probably introduced by ToB or one of its patches. I believe that this script block is to blame:

Yes on all counts. SoA's gparcher script is completely different, so this should be a ToB-only fix.

 

IF
Global("RR#Active","LOCALS",0)
OR(4)
	TookDamage()
	AttackedBy([GOODCUTOFF],DEFAULT)
	Heard([EVILCUTOFF],124)
	See(NearestEnemyOf(Myself))
THEN
RESPONSE #100
	SetGlobal("RR#Active","LOCALS",1)
	Shout(124)
	Continue()
END

IF
Global("RR#Active","LOCALS",0)
THEN
RESPONSE #100
	NoAction()
END

The Kuo-Toa mainly use Shout (125) so we'll bump that up to an OR(5). For strictness sake I don't think we should add the shout call either, simply because he doesn't in the default script.

 

BTW, the same goes for AIRELE01.BCS.

This, I'm not so sure of. It doesn't make sense for the one Kuo-Toa archer to charge across the area to attack without his allies, but this is a solo air elemental. I don't really have a problem with it going after he party.

Link to comment
BTW, the same goes for AIRELE01.BCS.

This, I'm not so sure of. It doesn't make sense for the one Kuo-Toa archer to charge across the area to attack without his allies, but this is a solo air elemental. I don't really have a problem with it going after he party.

 

Note that there are several instances where multiple Air Elementails seek out the party as well. For example, there two of them do this in the Planar Prison during the quest to rescue Haer'Dalis & co.

Link to comment
Note that there are several instances where multiple Air Elementails seek out the party as well. For example, there two of them do this in the Planar Prison during the quest to rescue Haer'Dalis & co.

Ah yeah, I remember those guys.

 

EXTEND_TOPping both gparcher and eleair01; do you care if I go ahead and use your prefix for the variable or do you want use to use a FP one?

 

IF
 Global("RR#Active","LOCALS",0)
 OR(5)
TookDamage()
AttackedBy([GOODCUTOFF],DEFAULT)
Heard([EVILCUTOFF],124)
Heard([EVILCUTOFF],125)
See(NearestEnemyOf(Myself))
THEN
 RESPONSE #100
SetGlobal("RR#Active","LOCALS",1)
Continue()
END

IF
 Global("RR#Active","LOCALS",0)
THEN
 RESPONSE #100
NoAction()
END

Link to comment

Archived

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

×
×
  • Create New...