Hello, il suffit par exemple de tirer au sort une texture parmis celles présentes dans la prim pendant un evennement timer().....
integer onoff;
integer max;
string texture;
poof()
{
llParticleSystem([
PSYS_PART_FLAGS, 0
| PSYS_PART_EMISSIVE_MASK
| PSYS_PART_INTERP_COLOR_MASK
| PSYS_PART_INTERP_SCALE_MASK,
//| PSYS_PART_WIND_MASK,
PSYS_SRC_PATTERN,
PSYS_SRC_PATTERN_ANGLE_CONE,
PSYS_SRC_TEXTURE, texture,
PSYS_PART_START_SCALE,<0.3, 0.3, FALSE>,
PSYS_PART_END_SCALE,<0.3, 0.3,FALSE>,
PSYS_PART_START_ALPHA,1.0,
PSYS_PART_END_ALPHA,1.0,
PSYS_PART_START_COLOR, <0.0,0.0,0.0>,
PSYS_PART_END_COLOR, <0.0,0.0,0.0>,
PSYS_PART_START_GLOW, 0.0,
PSYS_PART_END_GLOW, 0.0,
PSYS_PART_MAX_AGE,8.0,
PSYS_SRC_BURST_RATE,0.6,
PSYS_SRC_BURST_PART_COUNT,1,
PSYS_SRC_MAX_AGE,0.000000,
PSYS_SRC_INNERANGLE,0.5,
PSYS_SRC_OUTERANGLE,0.5,
PSYS_SRC_OMEGA,<0.0, 0.0, 0.0>,
PSYS_SRC_ACCEL, <0.0, 0.0, -0.08>,
PSYS_SRC_BURST_SPEED_MIN,0.5,
PSYS_SRC_BURST_SPEED_MAX,0.7
]);
}
stop()
{
llParticleSystem([]);
llSetTimerEvent(0.0);
}
default
{
state_entry()
{
stop();
onoff = FALSE;
max = llGetInventoryNumber(INVENTORY_TEXTURE);
if(max == 0)
{
llOwnerSay("Pas de textures dans l' inventaire");
}
else
{
llOwnerSay((string)max + " textures dans l' inventaire");
}
}
touch_start(integer num_detected)
{
if(!onoff)
{
llSetTimerEvent(0.5);
}
else
{
stop();
}
onoff = !onoff;
}
timer()
{
texture = llGetInventoryName(INVENTORY_TEXTURE, (integer)llFrand(max));
poof();
}
changed(integer change)
{
if (change & CHANGED_INVENTORY)
{
llResetScript();
}
}
}