For those detail lovers like me:
It´s a known bug that using flashing lights in your map causes desync.
So mappers could not use them in multiplayer maps.
Here´s how it works without getting out of sync:
We are using the script to create a light (must not be placed in the map file!) and simply change the intensity in a while loop.
This is a simple one using a straight / linear flashing:
[syntax=mis]COUNTER loop = 1 //number that runs the WhileLoop
COUNTER cyclecounter //every cycle +1, then set to zero when some favoured value is reached
LIGHT flashing_light = (100.5, 100.5, 2.02) 1.1 0 (255, 255, 111) 0 0 0
LEVELSTART
WHILE_EXEC ( loop = 1 )
IF (cyclecounter > 128)
SET cyclecounter = 1
ENDIF
//changing the intensity of the light
IF (cyclecounter > 0)
CHANGE_INTENSITY (flashing_light, 45) //intensity = 45 (glows a bit)
ENDIF
IF (cyclecounter > 64)
CHANGE_INTENSITY (flashing_light, 255) //intensity = 255 (full shining)
ENDIF
++cyclecounter
ENDWHILE //end of whileloop with value = 1
LEVELEND[/syntax]
This one is a little more complex, using different intensities and a "pseudo-random" flashing. Actually it´s a sequence.
[syntax=mis]COUNTER loop = 1 //number that runs the WhileLoop
COUNTER cyclecounter //every cycle +1, then set to zero when some favoured value is reached
LIGHT broken_light = (100.5, 100.5, 2.02) 1.1 0 (255, 255, 111) 0 0 0
LEVELSTART
WHILE_EXEC ( loop = 1 )
IF (cyclecounter > 2500)
SET cyclecounter = (cyclecounter - 2500)
ENDIF
//changing the intensity of the light
IF (cyclecounter > 480)
CHANGE_INTENSITY (broken_light, 0)
IF (cyclecounter = 481)
SET cyclecounter = (cyclecounter - 50)
ENDIF
IF (cyclecounter > 540)
CHANGE_INTENSITY (broken_light, 80)
ENDIF
IF (cyclecounter > 720)
CHANGE_INTENSITY (broken_light, 0)
IF (cyclecounter = 721)
SET cyclecounter = (cyclecounter - 200)
ENDIF
ENDIF
IF (cyclecounter > 1080)
CHANGE_INTENSITY (broken_light, 200)
ENDIF
IF (cyclecounter > 1500)
CHANGE_INTENSITY (broken_light, 0)
ENDIF
IF (cyclecounter > 1920)
CHANGE_INTENSITY (broken_light, 255)
ENDIF
IF (cyclecounter = 1923)
SET cyclecounter = (cyclecounter - 200)
ENDIF
IF (cyclecounter > 2200)
CHANGE_INTENSITY (broken_light, 0)
IF (cyclecounter = 2202)
SET cyclecounter = (cyclecounter + 200)
ENDIF
IF (cyclecounter = 2203)
SET cyclecounter = (cyclecounter + 200)
ENDIF
ENDIF
IF (cyclecounter > 2250)
CHANGE_INTENSITY (broken_light, 170)
ENDIF
IF (cyclecounter > 2280)
CHANGE_INTENSITY (broken_light, 0)
ENDIF
SET cyclecounter = (cyclecounter + 3)
ENDWHILE //end of whileloop with value = 1
LEVELEND[/syntax]
It´s probably better to use a randomization script you can find in this topic.
I am still wondering how to generate coincidences just by mathmatic operations.
Please tell me if something doesn´t work here. I modified it for the topic and did not test exactly THIS script.