|
Bonjour ,
je voulais faire en sorte que sa rez le "damager" que si les particules sont activent mais ça le rez même si elles sont éteint , pourtant j'ai mis le filtre "if(RezDamager)"
Merci d'avance
je pense que le problème est dans le collision event:
key agent;
integer push=0;
vector aim=<0,0,1>;
float speed=0;
integer RezDamager = FALSE;
list particle_parameters=[];
default
{
state_entry()
{ particle_parameters = [
PSYS_SRC_TEXTURE, llGetInventoryName( INVENTORY_TEXTURE, 0),
PSYS_PART_START_SCALE, <2.0,2.0, 0>, PSYS_PART_END_SCALE, <0.02,0.02, 1>,
PSYS_PART_START_COLOR, <1,1,1>, PSYS_PART_END_COLOR, <0,0.7,1>,
PSYS_PART_START_ALPHA, 1.0, PSYS_PART_END_ALPHA, 0.1,
PSYS_SRC_TEXTURE,"",
PSYS_SRC_BURST_PART_COUNT, 1,
PSYS_SRC_BURST_RATE, 0.02,
PSYS_PART_MAX_AGE, 1.5,
PSYS_SRC_MAX_AGE, 0.0,
PSYS_SRC_PATTERN, 2, // 1=DROP, 2=EXPLODE, 4=ANGLE, 8=ANGLE_CONE,
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,
PSYS_SRC_BURST_RADIUS, 0.1,
PSYS_SRC_BURST_SPEED_MIN, 0.5, PSYS_SRC_BURST_SPEED_MAX, 0.5,
PSYS_PART_FLAGS, ( 0
| PSYS_PART_INTERP_COLOR_MASK
| PSYS_PART_INTERP_SCALE_MASK
| PSYS_PART_EMISSIVE_MASK
| PSYS_PART_FOLLOW_VELOCITY_MASK
)];
llListen(99, "", "", ""); ///pas de "start"///
}
collision_start( integer num_detected)
{
if(( llDetectedType(0) & AGENT))
{
if(RezDamager)
{
llParticleSystem([]);
RezDamager = FALSE;
llStopSound();
llRezObject(" damager", llDetectedPos(0)+aim* llGetRot(),speed* llRot2Fwd( llGetRot()), llGetRot(),push);
llSleep(0.1);
llPlaySound("", 1.0);
llMessageLinked( LINK_THIS,191," cast", NULL_KEY);
llMessageLinked( LINK_ALL_OTHERS,1,"",agent);
}
}
}
listen( integer channel, string name, key id, string msg )
{
if( llGetOwnerKey(id)!= llGetOwner()) return;
{
if(msg==" start")
{
RezDamager = TRUE;
llParticleSystem( particle_parameters );
llLoopSound("", 1.0);
}}
if(msg==" stop")
{ llParticleSystem( [] );
llStopSound();
}}}
|