I think continue() is only mandatory when you add a OnCreation() to the IF.
What you can do knowing very little about script is messing around the sequence of the IFs, you can arrange so that the sequence runs better (by either moving the trigger(s) most likely to be invalid to the top and/or moving the trigger(s) that make the engine calculate more, to the botton), some scripts are, to put it nice, moronic wirtten, for example
IF
PartyHasItem("blabla1")
PartyHasItem("blabla2")
PartyHasItem("blabla3")
Global("blabla","Global",1)
Dead("Himself")
This will only ever be needed if Global blabla is 1 and Himself is dead, so there is no point in having item check on the top of the chain (other than making the engine work more), since the script will ignore the rest of the sequence as soon as one of the conditions is not valid, you should change it to
IF
Global("blabla","Global",1)
Dead("Himself")
PartyHasItem("blabla1")
Also, this is an example of a script that you should change:
IF
Global("blabla","Global",1)
Dead("Himself")
PartyHasItem("blabla1")
PartyHasItem("blabla2")
PartyHasItem("blabla3")
Then
Response #100
SetGlobal("emotears","Global",7)
END
This could cause stutter, not because its item related, but because it repeats itself, there are no conditions in the response to make the check invalid, even after its purpose has been fulfilled ("emotears","Global",7). So this check will keep running after the global blabla has been set to 1 and Himself is dead, until something actually changes the global blabla to a value different than 1. (it could take some time)
So you could make it like like
IF
Global("LessItemChecksPlz","Global",0) (or arXXXX)
Global("blabla","Global",1)
Dead("Himself")
PartyHasItem("blabla1")
PartyHasItem("blabla2")
PartyHasItem("blabla3")
Then
Response #100
SetGlobal("emotears","Global",1)
SetGlobal("LessItemChecksPlz","Global",1) (or arXXXX)
END
This way you make sure the check will only run successful once. (It is extremely unlike that scripts of this kind would need to run twice)
You could aslo try to change some combat scripts, though these are a little more complicated.
IF
ActionListEmpty()
Heard([ANYONE],ALERT_151)
Range(LastHeardBy(Myself),40)
!TargetUnreachable(LastHeardBy(Myself))
!Allegiance(Myself,ENEMY)
!HaveAnySpells()
!HasWeaponEquiped(Myself)
Class(Myself,INNOCENT)
THEN
RESPONSE #100
RunAwayFrom(LastHeardBy(Myself),6)
END
move the Class(Myself,INNOCENT) and !Allegiance(Myself,ENEMY) closer to the top, and the Range(LastHeardBy(Myself),40) and !TargetUnreachable(LastHeardBy(Myself)) to the bottom, this way you have saved the engine some work
If you start changing scripts this way, you can save the engine thousands of checks in the long run, but always backup everything, just in case something was not meant to be
Edited by Himself, 19 August 2006 - 09:38 AM.