I havent really experimented much with this stuff yet, since I've been doing my own weapons in the source itself.
Some random thoughts:
It seems any given actor always contains several different pointers to lots of other actors, and I have been using these to do some intresting things.
Since these pointers are saved within the objects, how about extending certain specials like A_SetInvulnerable, etc to read these pointers as one of their parameters? For example A_SetInvulnerable(lastenemy) would read whatever pointer is in lastenemy and make it invulnerable(ok, crappy example), or even new ones such as A_CopyPointer(lastenemy, target)
Its far from being the most comprehensive way to manipulate an actors behaviour, but it is a start. For example a few pages back I suggested a pointer to set the actors tracer to the actor that spawned it, but this idea is far more flexible and generic.
Perhaps you could take that one step even further, eg a totally generic A_SetActorProperty([object_pointer], [property_name], [new_value])
eg :
A_SetActorProperty(target, angle, angle_t ANG45)
A_SetActorProperty(lastenemy, health, int 50)
A_SetActorProperty(tracer, flags4, |MF4_FIRERESIST)
Of course, I understand if that overcomplicates the parser too much, but I dont know how it works
