The following warnings occurred:
Warning [2] Use of undefined constant SAPI_NAME - assumed 'SAPI_NAME' (this will throw an Error in a future version of PHP) - Line: 3388 - File: inc/functions.php PHP 7.4.33-nmm6 (Linux)
File Line Function
/inc/functions.php 3388 errorHandler->error
/showthread.php 116 build_archive_link
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm6 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/inc/functions.php 3324 build_forum_breadcrumb
/showthread.php 195 build_forum_breadcrumb
Warning [2] Use of undefined constant IN_ARCHIVE - assumed 'IN_ARCHIVE' (this will throw an Error in a future version of PHP) - Line: 3331 - File: inc/functions.php PHP 7.4.33-nmm6 (Linux)
File Line Function
/inc/functions.php 3331 errorHandler->error
/showthread.php 195 build_forum_breadcrumb






Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
BREAK; CONTINUE;
Author Message
Skul
Master
**

Posts: 413
Likes Given: 0
Likes Received: 19 in 15 posts
Joined: Jun 2012
Reputation: 9



Post: #1
BREAK; CONTINUE;
Just wondering about this new feature. I'm wondering if there is a DELAY we can input> Example:
Code:
forinstances c_man
  local.x += 1
  if (<dlocal.x>==<eval <eval <local.x> /100> *100>)
    break
      serv.allclients sysmessage Break
      delay xxx //delay being 10th of seconds
    continue
  endif
endfor
Just wondering if we can have a delay (in 10th of seconds) so we can break and send commands while performing large and lengthly loops.

"I ask a question to the answer I already know."

Marchadium :: http://www.marchadium.ca/ :: Join us!
(This post was last modified: 08-08-2014 06:13 AM by Skul.)
08-08-2014 06:12 AM
Visit this user's website Find all posts by this user Like Post Quote this message in a reply
darksun84
Sir Spamalot
****

Posts: 1,687
Likes Given: 245
Likes Received: 162 in 151 posts
Joined: Mar 2012
Reputation: 35



Post: #2
RE: BREAK; CONTINUE;
Break and continue are not used "for stopping and/or restarting" a loop.

Break allows you to "terminate" a loop, when the script execution will reach a break statement, Sphere will "jump out" from the current loop.

Continue instead allows you to "skip" the current iteration of the loop and "jump" to the next loop iteration.
(This post was last modified: 08-08-2014 07:00 AM by darksun84.)
08-08-2014 06:59 AM
Find all posts by this user Like Post Quote this message in a reply
XuN
Sphere Developer
*****

Posts: 852
Likes Given: 102
Likes Received: 156 in 119 posts
Joined: Jul 2013
Reputation: 30



Post: #3
RE: BREAK; CONTINUE;
As dark said break and continue are not meant for that, however you can easily do it with something like this:
Code:
local.delay=<serv.time>+10
forinstances c_man
  local.x += 1
  if (<dlocal.x>==<eval <eval <local.x> /100> *100>)
   if (<local.delay>< <serv.time>)
     break
   endif
   serv.allclients sysmessage Break
   local.delay +=10 //delay being 10th of seconds
   continue
  endif
endfor
08-08-2014 07:34 AM
Find all posts by this user Like Post Quote this message in a reply
Skul
Master
**

Posts: 413
Likes Given: 0
Likes Received: 19 in 15 posts
Joined: Jun 2012
Reputation: 9



Post: #4
RE: BREAK; CONTINUE;
oh, I see, my misunderstanding. Thanks for the info.

"I ask a question to the answer I already know."

Marchadium :: http://www.marchadium.ca/ :: Join us!
08-08-2014 10:59 AM
Visit this user's website Find all posts by this user Like Post Quote this message in a reply
kn4tseb
Master
**

Posts: 392
Likes Given: 45
Likes Received: 10 in 10 posts
Joined: May 2014
Reputation: 0



Post: #5
RE: BREAK; CONTINUE;
i tried looking info about "break" and "continue" at wiki, couldnt find it... what are they?
08-10-2014 01:30 PM
Find all posts by this user Like Post Quote this message in a reply
XuN
Sphere Developer
*****

Posts: 852
Likes Given: 102
Likes Received: 156 in 119 posts
Joined: Jul 2013
Reputation: 30



Post: #6
RE: BREAK; CONTINUE;
Here you have an example using continue when there's no reference related to the specified layer, as you can see the for will go to the next loop. (Be sure you have some clothes or armor equiped before using it)
Code:
[function f_test1]
for 0 24
ref1=<findlayer.<local._for>>
if !(<ref1>)
  continue
endif
say Layer <dlocal._for>  = <ref1.name>
end
say Function finished

Here you have the same example but using break instead of continue, I think you'll see the differences if you test both.
Code:
[function f_test2]
for 0 24
ref1=<findlayer.<local._for>>
if !(<ref1>)
  break
endif
say Layer <dlocal._for>  = <ref1.name>
end
say Function finished

The break will stop permanently the loop and continue with the rest of the script.
08-10-2014 04:56 PM
Find all posts by this user Like Post Quote this message in a reply
kn4tseb
Master
**

Posts: 392
Likes Given: 45
Likes Received: 10 in 10 posts
Joined: May 2014
Reputation: 0



Post: #7
RE: BREAK; CONTINUE;
Got it, ty very much
08-11-2014 04:26 AM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)