SphereCommunity
FOR Behavior question - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: General Help (/Forum-General-Help)
+--- Thread: FOR Behavior question (/Thread-FOR-Behavior-question)



FOR Behavior question - PePs1Man - 07-16-2017 12:24 AM

Hello,

I have a little question on a FOR behavior that I have.
I want to know if this is OK to be scripted that way.

Code:
        FORCHARS 16
            If <Brain>
                If ((!<ISTIMERF.f_AI>)&&(<Tag0.AI_Expire>==0))
                    f_AI
                    Return 1
                EndIf
            EndIf
        ENDFOR

That code will loop thru allplayers around 16 tiles away, check if they have a brain(npc) and add the function f_AI to the character.

My question lies in the RETURN 1 function.

With Return 1, the script will loop the npc 1 by 1
Without Return 1 the script will perform the tasks all at once

To me it seems more optimized if I use Return 1 and may prevent a mass flood if lots of character is around.

Any thoughts ?


RE: FOR Behavior question - darksun84 - 07-19-2017 11:57 PM

In your case, if you need to find only one character then it's ok to use return 1.

I mean with return 1 the FOR will not loop the npc one by one, but just stops when the return is reached ( and exit the function)

There is also the BREAK/CONTINUE keywords that can be used inside a FOR loop, but it seems that if BREAK is placed inside an IF that is inside a FOR it will just exit the loop and function (instead of exiting only the loop).