If you're talking about what I think you are (in the customize section), I usually use (3 fighters) 1) spellcaster attack, 2) spellcaster defend 3) (if paladin) Paladin melee
Try experimenting a little and have fun with it.
------------------
Subtle and insubstantial, the expert leaves no trace; divinely mysterious, he is inaudible. Thus he is master of his enemy's fate.
-Sun Tzu
I create my own scripts for all my characters. The NPC has usually APASS script because it is always much worse than any of my characters. Any question about custom scripts? Feel free to ask. Well, I am not an expert and I have bags of questions, too...
1. Delete from the script everything what does not concern your character. Example: the melee script is meant for paladins but every strong melee fighter will use the melee script - without all healing, etc. stuff.
2. Shorten the AttackReevaluate periods. 60 is too long, set it to 30 or 15.
3. Thief: add at the end of the script:
IF
ActionListEmpty()
CombatCounter(0)
!ModalState(FINDTRAPS)
THEN
RESPONSE #100
FindTraps()
END
Now, your thief will fight if he sees enemies and when the fight is over, he starts detecting traps. It is also a useful indicator: if the thief does not switch to detecting traps then be careful!
5. You can use shouts: I haven't solved it completely, so this is an idea and not a script.
a) Assign to every your character a shout ID, say 1111, 2222, 3333, etc. (different IDs because of deadlocks).
b) Insert "Shout(<myID> ) whenever you see an enemy and attack.
c) Insert a block (for a character with shout ID = 1111)
IF
ActionListEmpty()
!CombatCounter(0)
!See([ENEMY])
or(4)
Heard([PC],2222)
Heard([PC],3333)
Heard([PC],4444)
Heard([PC],5555)
THEN
RESPONSE #100
MoveToObject(LastHeardBy(Myself))
END
This should eliminate situations when your guys are loitering behind the corner and watching the single hero trying to kill a pack of enemies. I am still getting deadlocks.
6. Simulate protectors of weaker members in your party (thief, mage) Gorillas in your party should take care of them. I am trying to use shouts for this purpose again because I am unable to answer the question "Which player am I? Player1? Player2? ..." from within the script.
7. Use "StateCheck(Player1,...)" etc. blocks. The mages can start casting strongest offensive spells if they see that something is going very wrong.