à mettre dans le walkman:
key cible = NULL_KEY;
default {
on_rez (integer num) {
llResetScript(); }
state_entry() {
llParticleSystem([]);
llSetTimerEvent(5);
llListen(-12439, "", NULL_KEY, ""); }
timer () {
llSay(-12439, "Walky"); }
listen(integer canal, string code, key id, string mess) {
llOwnerSay(mess);
if (llGetAgentSize(id) == ZERO_VECTOR)
if ((llGetOwnerKey(id) == llGetOwner()) && (mess == "Casquy")) {
cible = id;
state run; } } }
state run {
on_rez (integer num) {
llResetScript(); }
state_entry() {
llOwnerSay((string)cible);
integer flags = PSYS_PART_EMISSIVE_MASK | PSYS_PART_FOLLOW_SRC_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_TARGET_POS_MASK;
llParticleSystem([ PSYS_PART_FLAGS, flags, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP,
PSYS_PART_START_COLOR, <1.0,1.0,1.0>, PSYS_PART_START_SCALE, <0.05,0.1,0>, PSYS_PART_START_ALPHA, 1.0,
PSYS_SRC_BURST_RADIUS, 1.0, PSYS_SRC_BURST_RATE, 0.01, PSYS_PART_MAX_AGE, 5.0, PSYS_SRC_MAX_AGE, 0.0,
PSYS_SRC_BURST_PART_COUNT, 500, PSYS_SRC_BURST_SPEED_MIN, 0.0,PSYS_SRC_BURST_SPEED_MAX, 1.0,
PSYS_SRC_OMEGA, <0.0, 0.0, 0.0>, PSYS_SRC_ACCEL, <0.0, 0.0, 0.0>,
PSYS_SRC_TARGET_KEY, cible ]); } }
Et dans le casque:
default {
on_rez (integer num) {
llResetScript(); }
state_entry() {
llListen(-12439, "", NULL_KEY, ""); }
listen(integer canal, string code, key id, string mess) {
llOwnerSay(mess);
if (llGetAgentSize(id) == ZERO_VECTOR)
if ((llGetOwnerKey(id) == llGetOwner()) && (mess == "Walky")) state run; } }
state run {
on_rez (integer num) {
llResetScript(); }
state_entry() {
llSleep(5);
llSay(-12439, "Casquy"); } }
pour faire un fil plus petit, il faut une texture, parce que la taille dans le script est la plus petite chez moi, en dessous on ne les voit plus.
En théorie, on rez le casque avant le walkman.
l'effet est... très intéressant lors des animations.