Script particules

Répondre
Partager Rechercher
Bonjour,

Je me lance dans les scripts de particules et j'ai un souci, aurais je loupé un cours au labo ?
Mon but est que l'objet est posé et à l'aide de ma télécommande, je le lance à distance. Coté télécommande ça passe mais seulement si je suis présent à moins de 25m de l'objet contenant le script particules.
Idem si je passe à moins de 25m, le script se déclenche tout seul. J'ai beau chercher dans le script je ne vois pas qu'elle(s) ligne(s) il faut modifier pour :
1/ Que le script ne se déclenche plus tout seul
2/ Que je puisse le lancer à plus de 25m sans que moi je sois près de l'objet
J'ai un doute sur la ligne :
PSYS_SRC_TEXTURE, llGetInventoryName(INVENTORY_TEXTURE, 0), car d'après ce que je pourrais en déduire, il ne prendrait pas la texture contenu dans l'objet mais dans mon inventaire ?

Sinon voici le script en entier :

default {
state_entry()
{
llListen(20, ""," ", "");
}

listen(integer channel, string name, key id, string message)
{
if (message=="ON")

{
llParticleSystem( [
PSYS_SRC_TEXTURE, llGetInventoryName(INVENTORY_TEXTURE, 0),
PSYS_PART_START_SCALE, <0.5,0.5,0.5>,
PSYS_PART_END_SCALE, <2,2,2>,
PSYS_PART_START_COLOR, <1,1,1>,
PSYS_PART_END_COLOR, <1,1,1>,
PSYS_PART_START_ALPHA, 1.0,
PSYS_PART_END_ALPHA, 0.0,

PSYS_SRC_BURST_PART_COUNT, 4000,
PSYS_SRC_BURST_RATE, 0.1,
PSYS_PART_MAX_AGE, 15.0,
PSYS_SRC_MAX_AGE, 30.0,

PSYS_SRC_PATTERN, 8, // 1=DROP, 2=EXPLODE, 4=ANGLE, 8=ANGLE_CONE,
PSYS_SRC_ACCEL, <0.0,0.0,1.0>,

//PSYS_SRC_BURST_RADIUS, 45.0,
PSYS_SRC_BURST_SPEED_MIN, 1.2,
PSYS_SRC_BURST_SPEED_MAX, 10.0,
PSYS_SRC_ANGLE_BEGIN, 45*DEG_TO_RAD,
PSYS_SRC_ANGLE_END, 90*DEG_TO_RAD,
PSYS_SRC_OMEGA, <0,0,0>,

// PSYS_SRC_TARGET_KEY, llGetLinkKey(llGetLinkNum() + 1),

PSYS_PART_FLAGS, ( 0
| PSYS_PART_INTERP_COLOR_MASK
| PSYS_PART_INTERP_SCALE_MASK
| PSYS_PART_EMISSIVE_MASK
| PSYS_PART_FOLLOW_VELOCITY_MASK
// | PSYS_PART_WIND_MASK
// | PSYS_PART_BOUNCE_MASK
// | PSYS_PART_FOLLOW_SRC_MASK
// | PSYS_PART_TARGET_POS_MASK
// | PSYS_PART_TARGET_LINEAR_MASK
) ] );
}
else if (message=="OFF")
{
llSay(0,"FIN");
}
}
}


Merci d'avance à tous ceux qui pourront m'éclairer

A bientôt

Pardalis Ewing
Citation :
Publié par Pardalis
1/ Que le script ne se déclenche plus tout seul
Aucune idée. Ce script ne peut rien changer sans avoir reçu un ordre par chat.

Citation :
Publié par Pardalis
2/ Que je puisse le lancer à plus de 25m sans que moi je sois près de l'objet
Remplacer llSay par llRegionSay dans la télécommande. Choisir un autre canal que le 20 (genre -4561423) car le risque de collision est élevé.

Citation :
Publié par Pardalis
il ne prendrait pas la texture contenu dans l'objet mais dans mon inventaire ?
Il prend la texture contenue dans l'objet.
J'ai donc essayé avec un canal moins risqué, et llRegionSay, aucun changement, le script se déclenche dès que j'approche à moins de 25m et même se déclenche si n'importe qui touche l'objet, par contre l'objet ayant eu auparavant un script de ce style peut être que ...
Je fais un test et ....idem en déplaçant dans un autre objet, ne peut se déclencher que si je suis à moins de 25m sinon malgré ordre rien faut que je sois dans cette distance.
Par contre il ne se déclenche plus quand je reviens vers lui comme avant dès mon approche. Donc un pb de moins, reste à savoir pourquoi faut que je sois à coté pour son déclenchement.
Merci encore à tous ceux qui m'aideront.
Est ce que tu peux mettre aussi le script de la télécommande ? Celui-ci ne peut se déclencher seul ni par touch. Par ailleurs, tu devrais ajouter llParticleSystem([]); dans le OFF.
Un grand merci Christine Etchegaray et aussi à Jeff Kelley !!! Voilà tout est ok, donc il fallait bien que les particules soient mise en extinction après un laps de temps et ainsi plus de déclenchement sans ordre.

Merci encore Christine
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés