hello....un peu confus ton truc, mais voilà....dans le bouton du HUD...
integer canal;
default
{
on_rez(integer start_param)
{
llResetScript();
}
state_entry()
{
canal = (integer)("0xA" + llGetSubString((string)llGetOwner(), 0,6 ));
}
touch_start(integer total_number)
{
llSay (canal, "iON");
}
}
//////////
et dans le prim le script suivant.....si tu cliques sur le bouton de hud, ça envoie le message "iON" au prim....ce qui declenche et arrête le jeu de particules sur clic du prim....(en mettant l' integer iON sur TRUE)
Je presume qu'il y a un bouton qui envoie "iOFF" ailleurs ds le hud et qui bloque le declenchement des particules dans le prim....(iON FALSE)
Dans ton script, le script n 'ecoutait que le message "iON"....ce qui met l' integer iON sur TRUE....mais quand tu cliques....le TRUE se transforme en FALSE (iON = !iON)....et donc les particules ne partent jamais.....
petit detail, entre HUD et Objets, on utilise généralement des canaux negatifs et de preference uniques et personnels pour eviter parfois des interferences avec d' autres HUD.....
il faut donc que le script recepteur ressemble à ça....
integer iON;
integer canal;
integer ecoute;
integer touche;
default
{
on_rez(integer start_param)
{
llResetScript();
}
state_entry()
{
llParticleSystem([]);
touche = FALSE;
canal = (integer)("0xA" + llGetSubString((string)llGetOwner(), 0,6 ));
ecoute = llListen(canal, "",NULL_KEY, "");
}
listen( integer channel, string name, key id, string message )
{
if ( message == "iON" )
touche = TRUE;
else if ( message == "iOf" )
touche = FALSE;
}
touch_start(integer total_number)
{
if(touche == TRUE)
{
if (!iON)
{
llParticleSystem([
PSYS_SRC_PATTERN,PSYS_SRC_PATTERN_EXPLODE,
PSYS_SRC_BURST_RADIUS,1,
PSYS_SRC_ANGLE_BEGIN,0,
PSYS_SRC_ANGLE_END,0,
PSYS_SRC_TARGET_KEY,llGetKey(),
PSYS_PART_START_COLOR,<0.500000,1.000000,1.000000>,
PSYS_PART_END_COLOR,<1.000000,1.000000,1.000000>,
PSYS_PART_START_ALPHA,1,
PSYS_PART_END_ALPHA,1,
PSYS_PART_START_GLOW,0.7,
PSYS_PART_END_GLOW,0,
PSYS_PART_BLEND_FUNC_SOURCE,PSYS_PART_BF_SOURCE_ALPHA,
PSYS_PART_BLEND_FUNC_DEST,PSYS_PART_BF_ONE,
PSYS_PART_START_SCALE,<0.100000,0.100000,0.000000>,
PSYS_PART_END_SCALE,<0.100000,0.100000,0.000000>,
PSYS_SRC_TEXTURE,"ad90ac58-6e23-afbc-1f4f-6adbfd78b5b5",
PSYS_SRC_MAX_AGE,0,
PSYS_PART_MAX_AGE,1.2,
PSYS_SRC_BURST_RATE,0,
PSYS_SRC_BURST_PART_COUNT,2,
PSYS_SRC_ACCEL,<-0.100000,0.000000,3.100000>,
PSYS_SRC_OMEGA,<0.000000,0.000000,-0.300000>,
PSYS_SRC_BURST_SPEED_MIN,0,
PSYS_SRC_BURST_SPEED_MAX,0,
PSYS_PART_FLAGS,
0 |
PSYS_PART_BOUNCE_MASK |
PSYS_PART_EMISSIVE_MASK |
PSYS_PART_FOLLOW_VELOCITY_MASK |
PSYS_PART_WIND_MASK
]);
}
else
{
llParticleSystem([]);
}
iON = !iON;
}
else
{}
}
}
|