***grins*** sorry for the delay.... just a huge comedy of errors last night. I'll post it up later today, promise!

I'll edit the original post to put the links there!
Edit: weird.. will only let me edit this post...

Anyway, here is the script for the effect, along with links to the images I made for it.

The script is designed for a 3k x 3k quant area in A6, using A5 template scripts, and is made up of three actions, back, left and bottom. Just create an invisible dummy map entity and place it appropriately (2 left (left and right sides), 2 back (front and back sides) and 2 bottom (top and bottoms sides), 6 total) and assign it the correct action. Like I said, for right now, it only places the three different types of stars randomly (they also decay, so it gives it a twinkle effect)

Script:
/***************************************************
torch.wdl, created with EasyParticle 3.1.
This script can be used free and without credits.
How to use:
Implement the script via include <torch.wdl>; in your main WDL file.
The action name is: torch_action
If you recognize any mistakes in the script, please contact the support ( Support@EasyParticle.de ).
Have fun with the script
TripleX --- Hawkgames
*****************************************************/
bmap starBmap1 = <sstar.bmp>;
bmap starBmap2 = <mstar.bmp>;
bmap starBmap3 = <sburst.bmp>;
bmap starBmap4 = <sstar.bmp>;
bmap starBmap5 = <sstar.bmp>;
VAR torchAnzahlPartikel = 8.804; //number of particles used for this effect
VAR starmap = 0; //number of particles used for this effect


Function torch_spec_fun()
{
my.skill_b += 0.02;
my.skill_c = 15 - my.skill_b;
if(my.skill_c < 0) { my.lifespan = 0; }
}

Function torchspezial_back()
{
starmap=int(random(5)+1);
my.x -= int(random(2915)+1) ;
my.y += int(random(64)+1) ;
my.z += int(random(2915)+1) ;
my.blue = 128 ;
my.green = 128 ;
my.red = 128 ;
my.skill_c = 0; my.skill_b = 0;
if (starmap != 1)
{
if (starmap != 2)
{
if (starmap != 3)
{
if (starmap != 4)
{
my.bmap = starBmap5; //the effect bitmap
my.size = random(4);
}
else
{
my.bmap = starBmap4; //the effect bitmap
my.size = random(4);
}
}
else
{
my.bmap = starBmap3; //the effect bitmap
my.size = random(48);
}
}
else
{
my.bmap = starBmap2; //the effect bitmap
my.size = random(16);
}
}
else
{
my.bmap = starBmap1; //the effect bitmap
my.size = random(4);
}


my.gravity = 0 ;
my.streak = off;
my.flare = off;
my.bright = off;
my.beam = off;
my.move = on;
my.transparent = off;
my.function = torch_spec_fun;
}


Function torch_back()
{
while(1)
{
torchAnzahlPartikel = max(1,random(1));
effect(torchspezial_back,max(1,torchAnzahlPartikel*time),my.x,nullvector);
wait(1);
}
}

Function torchspezial_left()
{
starmap=int(random(5)+1);
my.x += int(random(64)+1) ;
my.y += int(random(2785)+1) ;
my.z += int(random(2915)+1) ;
my.blue = 128 ;
my.green = 128 ;
my.red = 128 ;
my.skill_c = 0; my.skill_b = 0;
if (starmap != 1)
{
if (starmap != 2)
{
if (starmap != 3)
{
if (starmap != 4)
{
my.bmap = starBmap5; //the effect bitmap
my.size = random(4);
}
else
{
my.bmap = starBmap4; //the effect bitmap
my.size = random(4);
}
}
else
{
my.bmap = starBmap3; //the effect bitmap
my.size = random(48);
}
}
else
{
my.bmap = starBmap2; //the effect bitmap
my.size = random(16);
}
}
else
{
my.bmap = starBmap1; //the effect bitmap
my.size = random(4);
}


my.gravity = 0 ;
my.streak = off;
my.flare = off;
my.bright = off;
my.beam = off;
my.move = on;
my.transparent = off;
my.function = torch_spec_fun;
}


Function torch_left()
{
while(1)
{
torchAnzahlPartikel = max(1,random(1));
effect(torchspezial_left,max(1,torchAnzahlPartikel*time),my.x,nullvector);
wait(1);
}
}

Function torchspezial_bottom()
{
starmap=int(random(5)+1);
my.x -= int(random(2785)+1) ;
my.y += int(random(2785)+1) ;
my.z += int(random(64)+1) ;
my.blue = 128 ;
my.green = 128 ;
my.red = 128 ;
my.skill_c = 0; my.skill_b = 0;
if (starmap != 1)
{
if (starmap != 2)
{
if (starmap != 3)
{
if (starmap != 4)
{
my.bmap = starBmap5; //the effect bitmap
my.size = random(4);
}
else
{
my.bmap = starBmap4; //the effect bitmap
my.size = random(4);
}
}
else
{
my.bmap = starBmap3; //the effect bitmap
my.size = random(48);
}
}
else
{
my.bmap = starBmap2; //the effect bitmap
my.size = random(16);
}
}
else
{
my.bmap = starBmap1; //the effect bitmap
my.size = random(4);
}


my.gravity = 0 ;
my.streak = off;
my.flare = off;
my.bright = off;
my.beam = off;
my.move = on;
my.transparent = off;
my.function = torch_spec_fun;
}


Function torch_bottom()
{
while(1)
{
torchAnzahlPartikel = max(1,random(1));
effect(torchspezial_bottom,max(1,torchAnzahlPartikel*time),my.x,nullvector);
wait(1);
}
}

material mat_torch
{
diffuse_red=255;
diffuse_blue=255;
diffuse_green=255;
specular_red=100;
specular_blue=25;
specular_green=150;
emissive_red=0;
emissive_blue=0;
emissive_green=0;
ambient_red = 25;
ambient_green = 25;
ambient_blue = 25;
power = 10;
}

action staraction_back
{
my.material = mat_torch;
torch_back();
}


action staraction_left
{
my.material = mat_torch;
torch_left();
}


action staraction_bottom
{
my.material = mat_torch;
torch_bottom();
}



Images:

Small star:



Medium star:



Starburst:




Yes, I know it could probably be cleaned up a bit and optimized, but it was originally a quick and dirty hack of an older script I used easy particle to generate (obviously ), and, being pleased with the results, I felt like sharing. If you have ways it can be improved upon, feel free to comment, since coding is the direction I'm headed as a second career, and I'd like to improve where and when I can in the mean time.


Here's a shot of it working in it's intended environment:



I'll finish a quick demo level later and upload it... have fun with this for the time being.

Last edited by Tachys; 08/28/07 22:44.