Jump to content

Syntax Error


erebusant

Recommended Posts

Does anyone (pardon the pun) know what the syntax error is that is being caused by ANYONE in the following block in the gpshout.bcs file?

 

IF

AttackedBy([GOODCUTOFF],DEFAULT)

OR(3)

Allegiance(Myself,GOODBUTBLUE)

Allegiance(Myself,NEUTRAL)

Allegiance(Myself,ANYONE)

THEN

RESPONSE #100

Shout(HELP_ME_GROUP151)

Enemy()

END

 

0 ANYONE has been added to the EA.IDS file by BP and when you open the bcs file with NI you can copy the uncompiled data into the script source section and then compile and save the bcs file. The problem lies with decompiling the bcs to baf with a mod like d0Tweaks "Remove Summoning Cap" component and then trying to recompile it.

Link to comment

I imagine the compiler is choking because ANYONE is already a scripting keyword (e.g. AttackedBy([ANYONE],DEFAULT) ). I'd kill the addition to ea.ids and find->replace Allegiance(Myself,ANYONE) -> Allegiance(Myself,0).

 

Does that block even work, though? I'm thinking the script is going to loop whenever the .cre running it is attacked, as Allegiance(Myself,0) ought to be the same as True() (and thus not worth handling the ambiguity in the script compiler). Why not ! Allegiance(Myself,255) instead of that OR(3) ?

Link to comment

It's an original bug. Likely a typo that caused BioWare's compiler to compile as Allegiance(Myself,0) instead of EVILBUTBLUE or whatever (maybe the designer typoed ENEMYBUTBLUE or REDBUTBLUE or something). From my understanding (without having tested it that I can remember), 0 is a "wildcard" in this context (always true), as with other various triggers (Race, Class, etc.).

 

Check to make sure there's a header in the IDS (0 Anyone isn't the first line); it could be a WeiDU bug (ANYONE should come from Object and Allegiance(ANYONE) from EA, but [0] may just be hardcoded in WeiDU (de)comp), but I can't tell from the report where you're supposedly failing.

Link to comment

Archived

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

×
×
  • Create New...