Ce script est ma base de depart pour faire des particules.
Il est pas mal pour commencer a voir comment ca fonctionne.
// particles vars
integer glow;
integer bounce;
integer interpColor;
integer interpSize;
integer wind;
integer followSource;
integer followVel;
integer pattern;
key target;
float age;
float maxSpeed;
float minSpeed;
string texture;
float startAlpha;
float endAlpha;
vector startColor;
vector endColor;
vector startSize;
vector endSize;
vector push;
float rate;
float radius;
integer count;
float outerAngle;
float innerAngle;
vector omega;
float life;
integer flags;
//^particles initialisation
start()
{
glow = TRUE;
bounce = FALSE;
interpColor = TRUE;
interpSize = TRUE;
wind = FALSE;
followSource = FALSE;
followVel = FALSE;
target = "";
texture = "5e452db4-3ebc-72e9-667d-1bd2592a0afb";
pattern = PSYS_SRC_PATTERN_EXPLODE;
startColor = <1.0,0.,0.>;
endColor = <1.0,1.0,0.>;
startSize = <1.,1.,1.>;
endSize = <.1,.1,.1>;
startAlpha = 1.;
endAlpha = 1.;
age = 1;
minSpeed = 1.;
maxSpeed = 1.;
push = <0,0,-0.03>;
rate = .01;
radius = 1;
count = 1;
outerAngle = 0 * DEG_TO_RAD;
innerAngle = 0 * DEG_TO_RAD;
omega = <0,0,10>;
life = 0;
flags;
}
updateParticles()
{
flags = 0;
if (target == "owner") target = llGetOwner();
if (target == "self") target = llGetKey();
if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
if (wind) flags = flags | PSYS_PART_WIND_MASK;
if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
llParticleSystem([
PSYS_PART_MAX_AGE, age,
PSYS_PART_FLAGS, flags,
PSYS_PART_START_COLOR, startColor,
PSYS_PART_END_COLOR, endColor,
PSYS_PART_START_SCALE, startSize,
PSYS_PART_END_SCALE, endSize,
PSYS_SRC_PATTERN, pattern,
PSYS_SRC_BURST_RATE,rate,
PSYS_SRC_ACCEL, push,
PSYS_SRC_BURST_PART_COUNT,count,
PSYS_SRC_BURST_RADIUS,radius,
PSYS_SRC_BURST_SPEED_MIN,minSpeed,
PSYS_SRC_BURST_SPEED_MAX,maxSpeed,
PSYS_SRC_TARGET_KEY,target,
PSYS_SRC_ANGLE_BEGIN,innerAngle,
PSYS_SRC_ANGLE_END,outerAngle,
PSYS_SRC_OMEGA, omega,
PSYS_SRC_MAX_AGE, life,
PSYS_SRC_TEXTURE, texture,
PSYS_PART_START_ALPHA, startAlpha,
PSYS_PART_END_ALPHA, endAlpha
]);
}
default
{
state_entry()
{
start();
updateParticles();
}
}
|