Page 1 of 1
notsolid with lighting problem
Posted: Tue Dec 21, 2004 11:26 am
by Whisky
Hy guys,
I made a christmas tree (server side), with basically a winter pine model spawned, then 36 lights spawned on it, then 36 coronas spawned on the lights origins, then the script made lights and coronas blinking and gives several color effects to the lights, That is working very fine... as long as I dont give a
nonsolid or
setsize to my tree model, if I do so, the coronas continue to blink, but I dont see light colors anymore, except when I stand inside the tree

Its like the
notsolid func create an invisible barrier that block lighting
Anyone can help???
here's some screens of the tree when it working fine
I will post the script this evening so everyone can spawn it on maps
PLEASE HELP!
Posted: Tue Dec 21, 2004 12:18 pm
by Grassy
Cool idea, looks nice too!

Well done.
Strange about the lights not showing when the tree is made notsolid..
What about spawnflags? Have you tried that?
Posted: Wed Dec 22, 2004 3:46 am
by lizardkid
i think your problem is that the tree size is adjusted AFTER the fact, after the model is spawned with default sizes listed in the .TIK the engine displaces all of it and it's bounding box to the size you set, therefore the lights are inside the bounding box and supressed, so perhaps either hdiing them via a script like this...
Code: Select all
level waittil spawn
pre_tree
end
pre_tree:
$light1 hide
$light2 hide
$light3 hide
$light4 hide
$light5 hide
$corona1 hide
$corona2 hide
$corona3 hide
$corona4 hide
$corona5 hide
end
as a side note, that's 11 lines of code that MIGHT be able to be condensed into something easier on the size.... it works in C++ and Java, i've never tried it in MOH.
Code: Select all
for(local.i = 1; i < 5; i++)
{
$corona[local.i] hide
}
for(local.i = 1; i < 5; i++)
{
$light[local.i] hide
}
i can jsut see Bjarne or JV coming in and correcting my variables on this, i'm not used to MOH variables. safest way is the first method, but if you get bored someday at work or whatever substitute this in and see if it works.
Posted: Wed Dec 22, 2004 9:01 am
by Whisky
Txs for your reply!
I am affraid to not well undesrtand all what u said... the fact that the lights are inside the bounding box and supressed is a possible solution, but what should I do to avoid this?
Actually I spawn the tree, next the lights and finally the coronas. Only the lights dont appear.
When do you want me to hide the corona and lights?? Btw I hide them many times in my script in order to make the tree blinking
Here's the whole script with the notsolid line commented out, feel free to use it on your maps, just a litlle prob, at this state it makes the server laggy
Just add this line in your level waittil spawn:
Code: Select all
// Spawn the christmas tree and start his animation :)
thread anime_sapin
Then modify the 4 variables
level.sapinX
level.sapinY
level.sapinZ
level.height
and that's all
Code: Select all
//**********************************************************//
//**********************************************************//
//****** ******//
//****** XMAS TREE System by [NER-HQ]Whisky :P ******//
//****** ------------------------------------- ******//
//****** ******//
//****** Make what ever u want of this script BUT ******//
//****** do not forget the original scripter! ******//
//****** ******//
//****** whisky@ner-clan.net - www.ner-clan.net ******//
//****** ******//
//**********************************************************//
//**********************************************************//
//
// THE MOST IMPORTANT:
// XYZ Coordinates of the Xmas tree: (note that "sapin" means "pine" in french :p)
// Theses coords are spawning the tree in the midlle of the bridge
// ---------------------------------
level.sapinX = 8 // X coord
level.sapinY = -60 // Y coord
level.sapinZ = 180 // Z coord
//----------------------------------
// THE SECOND MOST IMPORTANT:
// This the height from where the first levels of lighting balls will be spawned
// You will probably have to modify this number in order to fit the lighting balls
// exactly in the tree.
// ---------------------------------
level.height = 140
//----------------------------------
/////////////////////////////////////////////////////////////
// Color codes (just for reminder)
// White = 0 0 1
// Blue = 0 0 1
// Red = 1 0 0
// Green = 0 1 0
// Violet = 1 0 1
// Orange = 1.000000 0.501961 0.250980
// Yellow = 1 1 0
/////////////////////////////////////////////////////////////
// Modify Here if u want to change the colors effects
////////////////////////////////////////////////////////////
anime_sapin:
// We wait untill the tree, the lights and the coronas are spawned
waitthread spawning_all_tree_stuff
// Animating the tree, Woohooooo :P
while(1)
{
wait 5
// Blink all lights in white
waitthread blink_all_same_time 1 1 1 100 0.5
waitthread blink_all_same_time 1 1 1 100 0.5
// Blink all lights in yellow
waitthread blink_all_same_time 1 1 0 100 0.5
waitthread blink_all_same_time 1 1 0 100 0.5
// Blink all lights in Orange
waitthread blink_all_same_time 1.000000 0.501961 0.250980 100 0.5
waitthread blink_all_same_time 1.000000 0.501961 0.250980 100 0.5
// Blink all lights in Red
waitthread blink_all_same_time 1 0 0 100 0.5
waitthread blink_all_same_time 1 0 0 100 0.5
// Blink all lights in Violet
waitthread blink_all_same_time 1 0 1 100 0.5
waitthread blink_all_same_time 1 0 1 100 0.5
// Blink all lights in Blue
waitthread blink_all_same_time 0 0 1 100 0.5
waitthread blink_all_same_time 0 0 1 100 0.5
// Blink all lights in Green
waitthread blink_all_same_time 0 1 0 100 0.5
waitthread blink_all_same_time 0 1 0 100 0.5
// Blink all with all colors
waitthread blink_all_same_time_color 100 0.7
waitthread blink_all_same_time_color 100 0.7
waitthread blink_all_same_time_color 100 0.7
// Blink all by levels for all colors
waitthread blink_by_level_colors 100 0.8
waitthread blink_by_level_colors 100 0.8
waitthread blink_by_level_colors 100 0.8
waitthread blink_by_level_colors 100 0.8
// Blink all by levels in White
waitthread blink_by_level 1 1 1 100 0.5
waitthread blink_by_level 1 1 1 100 0.5
// Blink all by levels in Yellow
waitthread blink_by_level 1 1 0 100 0.5
// Blink all by levels in Orange
waitthread blink_by_level 1.000000 0.501961 0.250980 100 0.5
// Blink all by levels in Red
waitthread blink_by_level 1 0 0 100 0.5
// Blink all by levels in Violet
waitthread blink_by_level 1 0 1 100 0.5
// Blink all by levels in Blue
waitthread blink_by_level 0 0 1 100 0.5
// Blink all by levels in Green
waitthread blink_by_level 0 1 0 100 0.5
}
end
///////////////////////////////////////////////////////////////
////////////// Launching spawning threads /////////////////////
///////////////////////////////////////////////////////////////
spawning_all_tree_stuff:
// spawning the tree:
waitthread spawn_du_sapin
// spawning the lights:
waitthread spawn_des_lights
// spawning the coronas (balls):
waitthread spawn_of_coronas
// Now we are ready to anime the tree :)
end
///////////////////////////////////////////////////////////////
///////////////// Xmas Tree Spawn /////////////////////////
///////////////////////////////////////////////////////////////
spawn_du_sapin:
// Spawn tree following the coords entered above
level.sapin = spawn script_model
level.sapin.origin = (level.sapinX level.sapinY level.sapinZ)
level.sapin.scale = 1
level.sapin model static/tree_winter_tallpine.tik
// level.sapin solid
// level.sapin setsize ( -8 -8 -4 ) (8 8 200)
end
///////////////////////////////////////////////////////////////
///////////////// Tree Lights Spawn /////////////////////////
///////////////////////////////////////////////////////////////
spawn_des_lights:
// Following are the Constant values of sinus/cosinus angles
// Used to spawn the lights all around the tree
// Forgot your trigonometry?? DO NOT TOUCH N00BS! :P
local.sin45 = 0.7071 // same then cos45
local.sin15 = 0.2588
local.cos15 = 0.9659
local.sin30 = 0.5
local.cos30 = 0.866
local.sin60 = 0.866
local.cos60 = 0.5
local.sin75 = 0.9659
local.cos75 = 0.2588
///////////////////////////////////////////////////////////////////
/// The lights are spawned by level following this schema:
// ------------------------------------------------------
// Level Lights Start
// 7 /\ 1 36
// 6 / \ 2 34
// 5 / \ 3 31
// 4 / \ 4 27
// 3 / \ 6 21
// 2 / \ 8 13
// 1 /____________\ 12 1
// ||
// ||
// all lights are stored in the array "lumiere" (means "light" in french n00bs :P)
// enought explanations, Go go go
/////////////////////////////////////////////////////////////////////
// Xmas Tree Lights spawns - first level - 12 lights - angle = 30
// Range distance between each lights
local.rangeX = 140
local.rangeY = 140
local.rangeZ = (level.sapinZ + level.height)
level.lumiere[1] = spawn script_model
level.lumiere[1].origin = (level.sapin.origin + (local.rangeX 0 local.rangeZ))
level.lumiere[1].scale = 0.5
level.lumiere[1] model fx/dummy.tik
level.lumiere[1] light 0 0 0 100
level.lumiere[2] = spawn script_model
level.lumiere[2].origin = (level.sapin.origin + ( -local.rangeX 0 local.rangeZ))
level.lumiere[2].scale = 0.5
level.lumiere[2] model fx/dummy.tik
level.lumiere[2] light 0 0 0 100
level.lumiere[3] = spawn script_model
level.lumiere[3].origin = (level.sapin.origin + (0 local.rangeY local.rangeZ))
level.lumiere[3].scale = 0.5
level.lumiere[3] model fx/dummy.tik
level.lumiere[3] light 0 0 0 100
level.lumiere[4] = spawn script_model
level.lumiere[4].origin = (level.sapin.origin + (0 -local.rangeY local.rangeZ))
level.lumiere[4].scale = 0.5
level.lumiere[4] model fx/dummy.tik
level.lumiere[4] light 0 0 0 100
level.lumiere[5] = spawn script_model
level.lumiere[5].origin = (level.sapin.origin + ((local.rangeX*local.sin30) (local.rangeY*local.cos30) local.rangeZ))
level.lumiere[5].scale = 0.5
level.lumiere[5] model fx/dummy.tik
level.lumiere[5] light 0 0 0 100
level.lumiere[6] = spawn script_model
level.lumiere[6].origin = (level.sapin.origin + (( -local.rangeX*local.sin30) (local.rangeY*local.cos30) local.rangeZ))
level.lumiere[6].scale = 0.5
level.lumiere[6] model fx/dummy.tik
level.lumiere[6] light 0 0 0 100
level.lumiere[7] = spawn script_model
level.lumiere[7].origin = (level.sapin.origin + ((local.rangeX*local.sin30) ( -local.rangeY*local.cos30) local.rangeZ))
level.lumiere[7].scale = 0.5
level.lumiere[7] model fx/dummy.tik
level.lumiere[7] light 0 0 0 100
level.lumiere[8] = spawn script_model
level.lumiere[8].origin = (level.sapin.origin + (( -local.rangeX*local.sin30) ( -local.rangeY*local.cos30) local.rangeZ))
level.lumiere[8].scale = 0.5
level.lumiere[8] model fx/dummy.tik
level.lumiere[8] light 0 0 0 100
level.lumiere[9] = spawn script_model
level.lumiere[9].origin = (level.sapin.origin + ((local.rangeX*local.sin30) (local.rangeY*local.cos30) local.rangeZ))
level.lumiere[9].scale = 0.5
level.lumiere[9] model fx/dummy.tik
level.lumiere[9] light 0 0 0 100
level.lumiere[10] = spawn script_model
level.lumiere[10].origin = (level.sapin.origin + (( -local.rangeX*local.sin30) (local.rangeY*local.cos30) local.rangeZ))
level.lumiere[10].scale = 0.5
level.lumiere[10] model fx/dummy.tik
level.lumiere[10] light 0 0 0 100
level.lumiere[11] = spawn script_model
level.lumiere[11].origin = (level.sapin.origin + ((local.rangeX*local.sin30) ( -local.rangeY*local.cos30) local.rangeZ))
level.lumiere[11].scale = 0.5
level.lumiere[11] model fx/dummy.tik
level.lumiere[11] light 0 0 0 100
level.lumiere[12] = spawn script_model
level.lumiere[12].origin = (level.sapin.origin + (( -local.rangeX*local.sin30) ( -local.rangeY*local.cos30) local.rangeZ))
level.lumiere[12].scale = 0.5
level.lumiere[12] model fx/dummy.tik
level.lumiere[12] light 0 0 0 100
/////////////////////////////////////////////////////////////////////
// Xmas Tree Lights spawns - Second level - 8 lights - angle = 45
// Range distance between each lights
local.rangeX = 150
local.rangeY = 150
local.rangeZ += 100
level.lumiere[13] = spawn script_model
level.lumiere[13].origin = (level.sapin.origin + (local.rangeX 0 local.rangeZ))
level.lumiere[13].scale = 0.5
level.lumiere[13] model fx/dummy.tik
level.lumiere[13] light 0 0 0 100
level.lumiere[14] = spawn script_model
level.lumiere[14].origin = (level.sapin.origin + ( -local.rangeX 0 local.rangeZ))
level.lumiere[14].scale = 0.5
level.lumiere[14] model fx/dummy.tik
level.lumiere[14] light 0 0 0 100
level.lumiere[15] = spawn script_model
level.lumiere[15].origin = (level.sapin.origin + (0 local.rangeY local.rangeZ))
level.lumiere[15].scale = 0.5
level.lumiere[15] model fx/dummy.tik
level.lumiere[15] light 0 0 0 100
level.lumiere[16] = spawn script_model
level.lumiere[16].origin = (level.sapin.origin + (0 -local.rangeY local.rangeZ))
level.lumiere[16].scale = 0.5
level.lumiere[16] model fx/dummy.tik
level.lumiere[16] light 0 0 0 100
level.lumiere[17] = spawn script_model
level.lumiere[17].origin = (level.sapin.origin + ((local.rangeX*local.sin45) (local.rangeY*local.sin45) local.rangeZ))
level.lumiere[17].scale = 0.5
level.lumiere[17] model fx/dummy.tik
level.lumiere[17] light 0 0 0 100
level.lumiere[18] = spawn script_model
level.lumiere[18].origin = (level.sapin.origin + (( -local.rangeX*local.sin45) (local.rangeY*local.sin45) local.rangeZ))
level.lumiere[18].scale = 0.5
level.lumiere[18] model fx/dummy.tik
level.lumiere[18] light 0 0 0 100
level.lumiere[19] = spawn script_model
level.lumiere[19].origin = (level.sapin.origin + ((local.rangeX*local.sin45) ( -local.rangeY*local.sin45) local.rangeZ))
level.lumiere[19].scale = 0.5
level.lumiere[19] model fx/dummy.tik
level.lumiere[19] light 0 0 0 100
level.lumiere[20] = spawn script_model
level.lumiere[20].origin = (level.sapin.origin + (( -local.rangeX*local.sin45) ( -local.rangeY*local.sin45) local.rangeZ))
level.lumiere[20].scale = 0.5
level.lumiere[20] model fx/dummy.tik
level.lumiere[20] light 0 0 0 100
/////////////////////////////////////////////////////////////////////
// Xmas Tree Lights spawns - Thirth level - 6 lights - angle = 60
// Range distance between each lights
local.rangeX = 120
local.rangeY = 120
local.rangeZ += 100
level.lumiere[21] = spawn script_model
level.lumiere[21].origin = (level.sapin.origin + (local.rangeX 0 local.rangeZ))
level.lumiere[21].scale = 0.5
level.lumiere[21] model fx/dummy.tik
level.lumiere[21] light 0 0 0 100
level.lumiere[22] = spawn script_model
level.lumiere[22].origin = (level.sapin.origin + ( -local.rangeX 0 local.rangeZ))
level.lumiere[22].scale = 0.5
level.lumiere[22] model fx/dummy.tik
level.lumiere[22] light 0 0 0 100
level.lumiere[23] = spawn script_model
level.lumiere[23].origin = (level.sapin.origin + ((local.rangeX*local.sin60) (local.rangeY*local.cos60) local.rangeZ))
level.lumiere[23].scale = 0.5
level.lumiere[23] model fx/dummy.tik
level.lumiere[23] light 0 0 0 100
level.lumiere[24] = spawn script_model
level.lumiere[24].origin = (level.sapin.origin + ((local.rangeX*local.sin60) ( -local.rangeY*local.cos60) local.rangeZ))
level.lumiere[24].scale = 0.5
level.lumiere[24] model fx/dummy.tik
level.lumiere[24] light 0 0 0 100
level.lumiere[25] = spawn script_model
level.lumiere[25].origin = (level.sapin.origin + (( -local.rangeX*local.sin60) (local.rangeY*local.cos60) local.rangeZ))
level.lumiere[25].scale = 0.5
level.lumiere[25] model fx/dummy.tik
level.lumiere[25] light 0 0 0 100
level.lumiere[26] = spawn script_model
level.lumiere[26].origin = (level.sapin.origin + (( -local.rangeX*local.sin60) ( -local.rangeY*local.cos60) local.rangeZ))
level.lumiere[26].scale = 0.5
level.lumiere[26] model fx/dummy.tik
level.lumiere[26] light 0 0 0 100
/////////////////////////////////////////////////////////////////////
// Xmas Tree Lights spawns - Fourth level - 4 lights - angle = 90
// Range distance between each lights
local.rangeX = 80
local.rangeY = 80
local.rangeZ += 100
level.lumiere[27] = spawn script_model
level.lumiere[27].origin = (level.sapin.origin + (local.rangeX 0 local.rangeZ))
level.lumiere[27].scale = 0.5
level.lumiere[27] model fx/dummy.tik
level.lumiere[27] light 0 0 0 100
level.lumiere[28] = spawn script_model
level.lumiere[28].origin = (level.sapin.origin + ( -local.rangeX 0 local.rangeZ))
level.lumiere[28].scale = 0.5
level.lumiere[28] model fx/dummy.tik
level.lumiere[28] light 0 0 0 100
level.lumiere[29] = spawn script_model
level.lumiere[29].origin = (level.sapin.origin + (0 local.rangeY local.rangeZ))
level.lumiere[29].scale = 0.5
level.lumiere[29] model fx/dummy.tik
level.lumiere[29] light 0 0 0 100
level.lumiere[30] = spawn script_model
level.lumiere[30].origin = (level.sapin.origin + (0 -local.rangeY local.rangeZ))
level.lumiere[30].scale = 0.5
level.lumiere[30] model fx/dummy.tik
level.lumiere[30] light 0 0 0 100
/////////////////////////////////////////////////////////////////////
// Xmas Tree Lights spawns - Fifth level - 3 lights - angle = 120
// Range distance between each lights
local.rangeX = 50
local.rangeY = 50
local.rangeZ += 100
level.lumiere[31] = spawn script_model
level.lumiere[31].origin = (level.sapin.origin + (local.rangeX 0 local.rangeZ))
level.lumiere[31].scale = 0.5
level.lumiere[31] model fx/dummy.tik
level.lumiere[31] light 0 0 0 100
// println level.lumiere[31].origin
level.lumiere[32] = spawn script_model
level.lumiere[32].origin = (level.sapin.origin + (( -local.rangeX*local.sin60) 0 local.rangeZ))
level.lumiere[32].scale = 0.5
level.lumiere[32] model fx/dummy.tik
level.lumiere[32] light 0 0 0 100
// println level.lumiere[32].origin
level.lumiere[33] = spawn script_model
level.lumiere[33].origin = (level.sapin.origin + (( -local.rangeX*local.sin60) ( -local.rangeY*local.cos60) local.rangeZ))
level.lumiere[33].scale = 0.5
level.lumiere[33] model fx/dummy.tik
level.lumiere[33] light 0 0 0 100
// println level.lumiere[33].origin
/////////////////////////////////////////////////////////////////////
// Xmas Tree Lights spawns - Sixth level - 2 lights - angle = 180
// Range distance between each lights
local.rangeX = 20
local.rangeY = 20
local.rangeZ += 100
level.lumiere[34] = spawn script_model
level.lumiere[34].origin = (level.sapin.origin + (0 local.rangeY local.rangeZ))
level.lumiere[34].scale = 0.5
level.lumiere[34] model fx/dummy.tik
level.lumiere[34] light 0 0 0 100
// println level.lumiere[34].origin
level.lumiere[35] = spawn script_model
level.lumiere[35].origin = (level.sapin.origin + (0 -local.rangeY local.rangeZ))
level.lumiere[35].scale = 0.5
level.lumiere[35] model fx/dummy.tik
level.lumiere[35] light 0 0 0 100
// println level.lumiere[35].origin
/////////////////////////////////////////////////////////////////////
// Xmas Tree Lights spawns - Seventh level - 1 light on midlle/top
// Range distance between each lights
local.rangeX = 0
local.rangeY = 0
local.rangeZ += 90
level.lumiere[36] = spawn script_model
level.lumiere[36].origin = (level.sapin.origin + (0 0 local.rangeZ))
level.lumiere[36].scale = 0.5
level.lumiere[36] model fx/dummy.tik
level.lumiere[36] light 0 0 0 100
// println level.lumiere[36].origin
end
///////////////////////////////////////////////////////////////
///////////////// Coronas Spawn /////////////////////////
///////////////////////////////////////////////////////////////
spawn_of_coronas:
// all coronas are white and spawned on the lights origins
for(local.j=1;local.j <= level.lumiere.size;local.j++)
{
level.corona[local.j] = spawn script_model
level.corona[local.j].origin = level.lumiere[local.j]
level.corona[local.j].scale = 1
level.corona[local.j] model static/corona_reg.tik
level.corona[local.j] notsolid
}
end
///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
// FOLOWING THREADS ARE ANIMATING THE TREE WITH LIGHT BLINKING //
///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
// All lights blink at same time with the same color sent by parameter
/////////////////////////////////////////////////////////////////////////////////////
blink_all_same_time local.Red local.Green local.Blue local.Power local.Delay:
// Light off all tree
thread hide_all
wait local.Delay
// Light up all tree with sent color
for(local.I=1;local.I <= level.lumiere.size;local.I++)
{
level.lumiere[local.I] light local.Red local.Green local.Blue local.Power
level.corona[local.I] show
}
wait local.Delay
end
/////////////////////////////////////////////////////////////////////////////////////
// All lights blink at same time with each time a different color
/////////////////////////////////////////////////////////////////////////////////////
blink_all_same_time_color local.Power local.Delay:
// Light off all tree
thread hide_all
wait local.Delay
// Light up all tree in Blue
for(local.I=1;local.I <= level.lumiere.size;local.I++)
{
level.lumiere[local.I] light 0 0 1 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light up all tree in Violet
for(local.I=1;local.I <= level.lumiere.size;local.I++)
{
level.lumiere[local.I] light 1 0 1 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light up all tree in Red
for(local.I=1;local.I <= level.lumiere.size;local.I++)
{
level.lumiere[local.I] light 1 0 0 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light up all tree in Orange
for(local.I=1;local.I <= level.lumiere.size;local.I++)
{
level.lumiere[local.I] light 1.000000 0.501961 0.250980 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light up all tree in Yellow
for(local.I=1;local.I <= level.lumiere.size;local.I++)
{
level.lumiere[local.I] light 1 1 0 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light up all tree in Green
for(local.I=1;local.I <= level.lumiere.size;local.I++)
{
level.lumiere[local.I] light 0 1 0 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light up all tree in White
for(local.I=1;local.I <= level.lumiere.size;local.I++)
{
level.lumiere[local.I] light 1 1 1 local.Power
level.corona[local.I] show
}
wait local.Delay
end
/////////////////////////////////////////////////////////////////////////////////////
// All lights blink by level with the same color sent by parameters
/////////////////////////////////////////////////////////////////////////////////////
blink_by_level local.Red local.Green local.Blue local.Power local.Delay:
// Light off all tree
thread hide_all
// Light on First level (12 lights)
for(local.I=1;local.I <= 12 ;local.I++)
{
level.lumiere[local.I] light local.Red local.Green local.Blue local.Power
level.corona[local.I] show
}
wait local.Delay
// Light Off First level (12 lights)
for(local.I=1;local.I <= 12 ;local.I++)
{
level.lumiere[local.I] light 0 0 0 local.Power
level.corona[local.I] hide
}
// Light on Second level (8 lights)
for(local.I=13; local.I <= 20; local.I++)
{
level.lumiere[local.I] light local.Red local.Green local.Blue local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off Second level (8 lights)
for(local.I=13; local.I <= 20; local.I++)
{
level.lumiere[local.I] light 0 0 0 local.Power
level.corona[local.I] hide
}
// Light on Thirth level (6 lights)
for(local.I=21; local.I <= 26; local.I++)
{
level.lumiere[local.I] light local.Red local.Green local.Blue local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off Thirth level (6 lights)
for(local.I=21; local.I <= 26; local.I++)
{
level.lumiere[local.I] light 0 0 0 local.Power
level.corona[local.I] hide
}
// Light on Fourth level (4 lights)
for(local.I=27; local.I <= 30; local.I++)
{
level.lumiere[local.I] light local.Red local.Green local.Blue local.Power
level.corona[local.I] show
}
wait local.Delay
// Light Off Fourth level (4 lights)
for(local.I=27; local.I <= 30; local.I++)
{
level.lumiere[local.I] light 0 0 0 local.Power
level.corona[local.I] hide
}
// Light on Fifth level (3 lights)
for(local.I=31; local.I <= 33; local.I++)
{
level.lumiere[local.I] light local.Red local.Green local.Blue local.Power
level.corona[local.I] show
}
wait local.Delay
// Light Off Fifth level (3 lights)
for(local.I=31; local.I <= 33; local.I++)
{
level.lumiere[local.I] light 0 0 0 local.Power
level.corona[local.I] hide
}
wait local.Delay
// Light on Sixth level (2 lights)
for(local.I=34; local.I <= 35; local.I++)
{
level.lumiere[local.I] light local.Red local.Green local.Blue local.Power
level.corona[local.I] show
}
wait local.Delay
// Light Off Sixth level (2 lights)
for(local.I=34; local.I <= 35; local.I++)
{
level.lumiere[local.I] light 0 0 0 local.Power
level.corona[local.I] hide
}
wait local.Delay
// Light on Seventh level (1 lights)
level.lumiere[36] light local.Red local.Green local.Blue local.Power
level.corona[36] show
wait local.Delay
end
/////////////////////////////////////////////////////////////////////////////////////
// All lights blink by level with different colors
/////////////////////////////////////////////////////////////////////////////////////
blink_by_level_colors local.Power local.Delay:
// Light off all tree
thread hide_all
// Light on First level (12 lights)
for(local.I=1;local.I <= 12 ;local.I++)
{
level.lumiere[local.I] light 0 0 1 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light on Second level (8 lights)
for(local.I=13; local.I <= 20; local.I++)
{
level.lumiere[local.I] light 1 0 1 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light on Thirth level (6 lights)
for(local.I=21; local.I <= 26; local.I++)
{
level.lumiere[local.I] light 1 0 0 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
// Light on Fourth level (4 lights)
for(local.I=27; local.I <= 30; local.I++)
{
level.lumiere[local.I] light 1.000000 0.501961 0.250980 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light on Fifth level (3 lights)
for(local.I=31; local.I <= 33; local.I++)
{
level.lumiere[local.I] light 1 1 0 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light on Sixth level (2 lights)
for(local.I=34; local.I <= 35; local.I++)
{
level.lumiere[local.I] light 0 1 0 local.Power
level.corona[local.I] show
}
wait local.Delay
// Light off all tree
thread hide_all
wait local.Delay
// Light on Seventh level (1 lights)
level.lumiere[36] light 1 1 1 local.Power
level.corona[36] show
wait local.Delay
end
/////////////////////////////////////////////////////////////////////////////////////
// Light ON a Light at random, with a randomized color
/////////////////////////////////////////////////////////////////////////////////////
random_light_color local.Power local.Delay:
// Random light
local.X = randomint (35) + 1
// Random Red value
local.R = randomint (10)
// Random Green value
local.G = randomint (10)
// Random Red value
local.B = randomint (10)
// Convert Random Red value
switch (local.R)
{
case 0:
local.R = 1
break
case 1:
local.R = 0.1
break
case 2:
local.R = 0.2
break
case 3:
local.R = 0.3
break
case 4:
local.R = 0.4
break
case 5:
local.R = 0.5
break
case 6:
local.R = 0.6
break
case 7:
local.R = 0.7
break
case 8:
local.R = 0.8
break
case 9:
local.R = 0.9
break
default:
local.R = 0
break
}
// Convert Random Green value
switch (local.G)
{
case 0:
local.G = 1
break
case 1:
local.G = 0.1
break
case 2:
local.G = 0.2
break
case 3:
local.G = 0.3
break
case 4:
local.G = 0.4
break
case 5:
local.G = 0.5
break
case 6:
local.G = 0.6
break
case 7:
local.G = 0.7
break
case 8:
local.G = 0.8
break
case 9:
local.G = 0.9
break
default:
local.G = 0
break
}
// Convert Random Blue value
switch (local.B)
{
case 0:
local.B = 1
break
case 1:
local.B = 0.1
break
case 2:
local.B = 0.2
break
case 3:
local.B = 0.3
break
case 4:
local.B = 0.4
break
case 5:
local.B = 0.5
break
case 6:
local.B = 0.6
break
case 7:
local.B = 0.7
break
case 8:
local.B = 0.8
break
case 9:
local.B = 0.9
break
default:
local.B = 0
break
}
// Light ON the randomized light with the randomized RGB colors
level.lumiere[local.X] light local.R local.G local.B local.Power
level.corona[local.X] show
wait local.Delay
end
/////////////////////////////////////////////////////////////////////////////////////
// Light ON a Light at random, with the color specified
/////////////////////////////////////////////////////////////////////////////////////
random_light local.R local.G local.B local.Power local.Delay:
// Random light
local.X = randomint (35) + 1
// Light ON the randomized light with the color passed in parameter
level.lumiere[local.X] light local.R local.G local.B local.Power
level.corona[local.X] show
wait local.Delay
end
//////////////////////////////////////////////////////////////////////////
// HIDE ALL LIGHTS AND CORONAS
//////////////////////////////////////////////////////////////////////////
hide_all:
for(local.j=1;local.j <= level.lumiere.size;local.j++)
{
level.corona[local.j] hide
level.lumiere[local.j] light 0 0 0 100
}
end
///////////////////////////////////////////////////////////////////////////
// This is the end, my only friend the end :P
// Father, yes son, I want to kill u
// Mother..... I want to......................................
// hehehe
//////////////////////////////////////////////////////////////////////////
Enjoy

Posted: Wed Dec 22, 2004 10:20 am
by jv_map
Not bad
The problem might be that you have too many lights... dynamic lights act very weird when you have more than +- 8 in view
Also, just a suggestion to reduce the code a little

; maybe replace this
Code: Select all
// Convert Random Red value
switch (local.R)
{
case 0:
local.R = 1
break
case 1:
local.R = 0.1
break
case 2:
local.R = 0.2
break
case 3:
local.R = 0.3
break
case 4:
local.R = 0.4
break
case 5:
local.R = 0.5
break
case 6:
local.R = 0.6
break
case 7:
local.R = 0.7
break
case 8:
local.R = 0.8
break
case 9:
local.R = 0.9
break
default:
local.R = 0
break
}
With local.R = 0.1 * local.R

(or just do local.R = randomfloat 1.0).
Posted: Wed Dec 22, 2004 4:21 pm
by Whisky
Heel bedankt JV
Very interresting to know that more then 8 lights in a view may bring problems, I will decrease the number to 6 instead of 36 and increase their light to 300 instead of 100, I'll let the coronas so the result should be the same
And for your proposal, I agree with your idea but anyway I didnt used this script part so far... I made it at work just to spend the time
Thank you very much Master!
Posted: Wed Dec 22, 2004 4:29 pm
by Rindog
Shouldn't
level.corona[local.j].origin = level.lumiere[local.j]
be:
level.corona[local.j].origin = level.lumiere[local.j].origin
Posted: Wed Dec 22, 2004 6:16 pm
by Whisky
yes u'r right I forgot that

but I swear that it's working on this state so I didnt had any reson to correct it
