Join us in Outworldz at www.outworldz.com:9000 or follow us:

Search dozens of selected web sites for OpenSim and LSL script

New! Script Meta-Search will search thousands of scripts here and at other sites for LSL or Opensim scripts.
Loading

Want to add a script or a project? Upload it and a half million people will see it and your name here this year.

Home   Show All
Category: Contributor: Creator
Follower Keyframe Follower  

Keyframe Follower

A avatar folloer thaty works in Opensim

Category: Follower
By : Ferd Frederix
Created: 2014-12-04 Edited: 2014-12-04
Worlds: Second Life

the Zip file

Download all files for Keyframe Follower
Contents are in zip format, with .LSL (text) source code and LSLEdit (text + Solution) formats.
Get file # 1. animation.lsl
Get file # 2. follower Script.lsl
Get file # 3. flames.lsl
Get file # 4. wing flap script.lsl

This script by Ferd Frederix may be used in any manner, modified, and republished.  Unless specified otherwise, my scripts are always free and open source.  Objects made with these scripts may be sold with no restrictions.  All I ask is that you point others to this location should they ask you about it and to not sell this script, unless it is for $0 L. Please help improve my work by reporting bugs and improvements.

1
2
3
4 float minspeed = 0.5;
5 float maxspeed = 2;
6 float maxtimer = 10.0; // when no one is around, slow way down.
7
8 float maxrange = 96;
9 float minrange = 20;
10 float oldZ;
11
12 integer isSensorRepeatOn = FALSE;
13 integer land;
14
15 float random_float(float min, float max)
16 {
17 return min + llFrand(max - min + 1);
18 }
19
20
21 rotation NormRot(rotation Q)
22 {
23 float MagQ = llSqrt(Q.x*Q.x + Q.y*Q.y +Q.z*Q.z + Q.s*Q.s);
24 return <Q.x/MagQ, Q.y/MagQ, Q.z/MagQ, Q.s/MagQ>;
25 }
26
27 default
28 {
30 {
31 llSetLinkPrimitiveParamsFast(LINK_ROOT,
32 [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_CONVEX,
33 PRIM_LINK_TARGET, LINK_ALL_CHILDREN,
34 PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]);
35
36 llSensorRepeat("", "", AGENT, 20.0, PI, maxtimer);
37 }
38
39
40
41 no_sensor()
42 {
43 llSensorRepeat("", "", AGENT, maxrange, PI, maxtimer);
44 }
45
46 sensor(integer num_detected)
47 {
48 float speed = random_float(minspeed,maxspeed);
49 vector ownPosition = llGetPos();
50 rotation ownRotation = llGetRot();
51 vector detectedPosition = llDetectedPos(0);
52 rotation detectedRotation = llDetectedRot(0);
54
55 float Z = random_float(0, size.z/2);
56 if(llFrand(10) < 1) {
57 Z = -size.z/2;
58 llMessageLinked(LINK_SET,1,"land","");
59 land = TRUE;
60 speed = 0.5;
61 } else {
62 land = FALSE;
63 if(llFrand(10) < 1)
64 {
65 llMessageLinked(LINK_SET,1,"flames","");
66 }
67
68 }
69
70
71 float Y = random_float(0, 1);
72 if(llFrand(2) < 1) {
73 llMessageLinked(LINK_SET,1,"r","");
74 Y *= -1;
75 } else {
76 llMessageLinked(LINK_SET,1,"l","");
77 }
78
79
80 if(Z - oldZ > 0.2)
81 llMessageLinked(LINK_SET,1,"up","");
82 if(Z - oldZ > -0.2)
83 llMessageLinked(LINK_SET,1,"down","");
84
85 oldZ = Z;
86
87
88 llSetKeyframedMotion(
89 [(detectedPosition - ownPosition) + <-1, Y, Z>*detectedRotation,
90 NormRot(detectedRotation/ownRotation), speed],
91 []);
92
93 if(land)
94 llSensorRepeat("", "", AGENT, maxrange, PI, 10);
95 else
96 llSensorRepeat("", "", AGENT, minrange, PI, maxspeed);
97 }
98 }

Keyframe Follower

DESCRIPTION: []::A avatar folloer thaty works in Opensim

Category: Follower
By : Ferd Frederix
Created: 2014-12-04 Edited: 2014-12-04
Worlds: Second Life


This script by Ferd Frederix may be used in any manner, modified, and republished.  Unless specified otherwise, my scripts are always free and open source.  Objects made with these scripts may be sold with no restrictions.  All I ask is that you point others to this location should they ask you about it and to not sell this script, unless it is for $0 L. Please help improve my work by reporting bugs and improvements.

1
2 // Prim animation compiler //
3 // Ferd Frederix - http://www.free-lsl-scripts.com
4 integer playbackchannel = 1; // The default llMessageLinked number
5 rotation calcChildRot(rotation rdeltaRot){
7 return rdeltaRot/llGetLocalRot();
8 else
9 return rdeltaRot/llGetRootRotation();
10 }
11 vector originalScale = <0.500000,0.538383,0.122841>;
12 start(){
13 vector currentSize = llGetScale();
14 float scaleby = currentSize.x/originalScale.x;
15
16 llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <0.087677,-0.114227,0.461792>*scaleby, PRIM_ROTATION,calcChildRot(<-0.609178,0.109585,-0.422058,-0.662390>), PRIM_SIZE, <0.113302,0.162322,0.173233>*scaleby]);
17 llSetLinkPrimitiveParamsFast(3, [PRIM_POSITION, <0.037659,0.127304,0.448509>*scaleby, PRIM_ROTATION,calcChildRot(<0.219442,-0.598803,-0.707861,-0.303665>), PRIM_SIZE, <0.113450,0.162321,0.173603>*scaleby]);
18 llSetLinkPrimitiveParamsFast(5, [PRIM_POSITION, <-0.248932,-0.022842,0.390663>*scaleby, PRIM_ROTATION,calcChildRot(<-0.461346,-0.493366,-0.550428,-0.490692>), PRIM_SIZE, <0.355153,0.403545,0.704166>*scaleby]);
19 llSetLinkPrimitiveParamsFast(6, [PRIM_POSITION, <-0.208191,-0.023865,0.593697>*scaleby, PRIM_ROTATION,calcChildRot(<-0.461346,-0.493366,-0.550428,-0.490692>), PRIM_SIZE, <0.589556,0.165455,0.193329>*scaleby]);
20 llSetLinkPrimitiveParamsFast(7, [PRIM_POSITION, <0.170807,0.007278,0.770676>*scaleby, PRIM_ROTATION,calcChildRot(<-0.425973,-0.453797,-0.583492,-0.521682>), PRIM_SIZE, <0.169087,0.180204,0.332219>*scaleby]);
21 llSetLinkPrimitiveParamsFast(8, [PRIM_POSITION, <-0.269196,0.153488,0.131393>*scaleby, PRIM_ROTATION,calcChildRot(<0.673489,0.739048,0.014592,-0.002662>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
22 llSetLinkPrimitiveParamsFast(9, [PRIM_POSITION, <-0.238129,-0.180237,0.123405>*scaleby, PRIM_ROTATION,calcChildRot(<0.673489,0.739048,0.014592,-0.002662>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
23 llSetLinkPrimitiveParamsFast(10, [PRIM_POSITION, <0.058289,0.000885,0.619575>*scaleby, PRIM_ROTATION,calcChildRot(<-0.461346,-0.493366,-0.550428,-0.490692>), PRIM_SIZE, <0.100213,0.183835,0.124935>*scaleby]);
24 llSetLinkPrimitiveParamsFast(11, [PRIM_POSITION, <-0.685852,-0.073822,0.568771>*scaleby, PRIM_ROTATION,calcChildRot(<0.343354,0.529393,-0.638648,-0.440431>), PRIM_SIZE, <0.176529,0.009216,0.253571>*scaleby]);
25 llSetLinkPrimitiveParamsFast(12, [PRIM_POSITION, <0.266113,0.017426,0.767509>*scaleby, PRIM_ROTATION,calcChildRot(<0.480481,0.544910,-0.484405,-0.487405>), PRIM_SIZE, <0.092038,0.092038,0.092038>*scaleby]);
26 llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <0.087677,-0.114227,0.461792>*scaleby, PRIM_ROTATION,calcChildRot(<-0.609178,0.109585,-0.422058,-0.662390>), PRIM_SIZE, <0.113302,0.162322,0.173233>*scaleby]);
27 llSetLinkPrimitiveParamsFast(3, [PRIM_POSITION, <0.037659,0.127304,0.448509>*scaleby, PRIM_ROTATION,calcChildRot(<0.219442,-0.598803,-0.707861,-0.303665>), PRIM_SIZE, <0.113450,0.162321,0.173603>*scaleby]);
28 llSetLinkPrimitiveParamsFast(4, [PRIM_POSITION, <0.218719,0.009628,0.739944>*scaleby, PRIM_ROTATION,calcChildRot(<-0.427263,-0.451559,-0.565432,-0.542058>), PRIM_SIZE, <0.104103,0.056412,0.182692>*scaleby]);
29 llSetLinkPrimitiveParamsFast(5, [PRIM_POSITION, <-0.248932,-0.022842,0.390663>*scaleby, PRIM_ROTATION,calcChildRot(<-0.461346,-0.493366,-0.550428,-0.490692>), PRIM_SIZE, <0.355153,0.403545,0.704166>*scaleby]);
30 llSetLinkPrimitiveParamsFast(6, [PRIM_POSITION, <-0.208191,-0.023865,0.593697>*scaleby, PRIM_ROTATION,calcChildRot(<-0.461346,-0.493366,-0.550428,-0.490692>), PRIM_SIZE, <0.589556,0.165455,0.193329>*scaleby]);
31 llSetLinkPrimitiveParamsFast(7, [PRIM_POSITION, <0.170807,0.007278,0.770676>*scaleby, PRIM_ROTATION,calcChildRot(<-0.425973,-0.453797,-0.583492,-0.521682>), PRIM_SIZE, <0.169087,0.180204,0.332219>*scaleby]);
32 llSetLinkPrimitiveParamsFast(8, [PRIM_POSITION, <-0.269196,0.153488,0.131393>*scaleby, PRIM_ROTATION,calcChildRot(<0.673489,0.739048,0.014592,-0.002662>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
33 llSetLinkPrimitiveParamsFast(9, [PRIM_POSITION, <-0.238129,-0.180237,0.123405>*scaleby, PRIM_ROTATION,calcChildRot(<0.673489,0.739048,0.014592,-0.002662>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
34 llSetLinkPrimitiveParamsFast(10, [PRIM_POSITION, <0.058289,0.000885,0.619575>*scaleby, PRIM_ROTATION,calcChildRot(<-0.461346,-0.493366,-0.550428,-0.490692>), PRIM_SIZE, <0.100213,0.183835,0.124935>*scaleby]);
35 llSetLinkPrimitiveParamsFast(11, [PRIM_POSITION, <-0.685852,-0.073822,0.568771>*scaleby, PRIM_ROTATION,calcChildRot(<0.343354,0.529393,-0.638648,-0.440431>), PRIM_SIZE, <0.176529,0.009216,0.253571>*scaleby]);
36 llSetLinkPrimitiveParamsFast(12, [PRIM_POSITION, <0.266113,0.017426,0.767509>*scaleby, PRIM_ROTATION,calcChildRot(<0.480481,0.544910,-0.484405,-0.487405>), PRIM_SIZE, <0.092038,0.092038,0.092038>*scaleby]);
37
38 }
39 up(){
40 vector currentSize = llGetScale();
41 float scaleby = currentSize.x/originalScale.x;
42
43 llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <0.090912,-0.115250,0.488297>*scaleby, PRIM_ROTATION,calcChildRot(<-0.571301,0.203143,-0.511319,-0.609017>), PRIM_SIZE, <0.113302,0.162322,0.173233>*scaleby]);
44 llSetLinkPrimitiveParamsFast(3, [PRIM_POSITION, <0.034180,0.124954,0.478188>*scaleby, PRIM_ROTATION,calcChildRot(<0.315962,-0.519760,-0.698578,-0.376838>), PRIM_SIZE, <0.113450,0.162321,0.173603>*scaleby]);
45 llSetLinkPrimitiveParamsFast(4, [PRIM_POSITION, <0.192596,0.005905,0.787628>*scaleby, PRIM_ROTATION,calcChildRot(<-0.439873,-0.449331,-0.557183,-0.542365>), PRIM_SIZE, <0.104103,0.056412,0.182692>*scaleby]);
46 llSetLinkPrimitiveParamsFast(5, [PRIM_POSITION, <-0.243927,-0.022400,0.388618>*scaleby, PRIM_ROTATION,calcChildRot(<-0.435345,-0.463711,-0.573662,-0.516100>), PRIM_SIZE, <0.355153,0.403545,0.704166>*scaleby]);
47 llSetLinkPrimitiveParamsFast(6, [PRIM_POSITION, <-0.224548,-0.024963,0.594780>*scaleby, PRIM_ROTATION,calcChildRot(<-0.435345,-0.463711,-0.573662,-0.516100>), PRIM_SIZE, <0.589556,0.165455,0.193329>*scaleby]);
48 llSetLinkPrimitiveParamsFast(7, [PRIM_POSITION, <0.134186,0.002350,0.810455>*scaleby, PRIM_ROTATION,calcChildRot(<-0.398263,-0.422593,-0.604600,-0.545216>), PRIM_SIZE, <0.169087,0.180204,0.332219>*scaleby]);
49 llSetLinkPrimitiveParamsFast(8, [PRIM_POSITION, <-0.235901,0.155701,0.129883>*scaleby, PRIM_ROTATION,calcChildRot(<-0.674338,-0.735810,-0.052124,-0.033692>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
50 llSetLinkPrimitiveParamsFast(9, [PRIM_POSITION, <-0.206360,-0.178177,0.122849>*scaleby, PRIM_ROTATION,calcChildRot(<-0.674338,-0.735810,-0.052124,-0.033692>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
51 llSetLinkPrimitiveParamsFast(10, [PRIM_POSITION, <0.037964,-0.002319,0.648422>*scaleby, PRIM_ROTATION,calcChildRot(<-0.435345,-0.463711,-0.573662,-0.516100>), PRIM_SIZE, <0.100213,0.183835,0.124935>*scaleby]);
52 llSetLinkPrimitiveParamsFast(11, [PRIM_POSITION, <-0.697296,-0.071335,0.519936>*scaleby, PRIM_ROTATION,calcChildRot(<0.376533,0.552553,-0.616614,-0.415567>), PRIM_SIZE, <0.176529,0.009216,0.253571>*scaleby]);
53 llSetLinkPrimitiveParamsFast(12, [PRIM_POSITION, <0.229370,0.011810,0.817299>*scaleby, PRIM_ROTATION,calcChildRot(<0.505331,0.569515,-0.455223,-0.461590>), PRIM_SIZE, <0.092038,0.092038,0.092038>*scaleby]);
54
55 }
56
57 down(){
58 vector currentSize = llGetScale();
59 float scaleby = currentSize.x/originalScale.x;
60
61 llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <0.051270,-0.119080,0.387947>*scaleby, PRIM_ROTATION,calcChildRot(<-0.616118,-0.249108,-0.061690,-0.744673>), PRIM_SIZE, <0.113302,0.162322,0.173233>*scaleby]);
62 llSetLinkPrimitiveParamsFast(3, [PRIM_POSITION, <-0.000458,0.118164,0.342796>*scaleby, PRIM_ROTATION,calcChildRot(<0.126331,0.785096,0.606198,-0.013762>), PRIM_SIZE, <0.113450,0.162321,0.173603>*scaleby]);
63 llSetLinkPrimitiveParamsFast(4, [PRIM_POSITION, <0.276215,0.021240,0.579987>*scaleby, PRIM_ROTATION,calcChildRot(<-0.514895,-0.542889,-0.478441,-0.459618>), PRIM_SIZE, <0.104103,0.056412,0.182692>*scaleby]);
64 llSetLinkPrimitiveParamsFast(5, [PRIM_POSITION, <-0.263031,-0.024368,0.400383>*scaleby, PRIM_ROTATION,calcChildRot(<-0.535025,-0.577990,-0.467229,-0.401713>), PRIM_SIZE, <0.355153,0.403545,0.704166>*scaleby]);
65 llSetLinkPrimitiveParamsFast(6, [PRIM_POSITION, <-0.158661,-0.019775,0.579208>*scaleby, PRIM_ROTATION,calcChildRot(<-0.535025,-0.577990,-0.467229,-0.401713>), PRIM_SIZE, <0.589556,0.165455,0.193329>*scaleby]);
66 llSetLinkPrimitiveParamsFast(7, [PRIM_POSITION, <0.256317,0.022430,0.623093>*scaleby, PRIM_ROTATION,calcChildRot(<-0.505677,-0.544017,-0.506403,-0.438055>), PRIM_SIZE, <0.169087,0.180204,0.332219>*scaleby]);
67 llSetLinkPrimitiveParamsFast(8, [PRIM_POSITION, <-0.403534,0.136917,0.245880>*scaleby, PRIM_ROTATION,calcChildRot(<0.544047,0.619465,-0.410714,-0.389347>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
68 llSetLinkPrimitiveParamsFast(9, [PRIM_POSITION, <-0.368469,-0.196304,0.234009>*scaleby, PRIM_ROTATION,calcChildRot(<0.544047,0.619465,-0.410714,-0.389347>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
69 llSetLinkPrimitiveParamsFast(10, [PRIM_POSITION, <0.101135,0.010376,0.516800>*scaleby, PRIM_ROTATION,calcChildRot(<-0.535025,-0.577990,-0.467229,-0.401713>), PRIM_SIZE, <0.100213,0.183835,0.124935>*scaleby]);
70 llSetLinkPrimitiveParamsFast(11, [PRIM_POSITION, <-0.617218,-0.078888,0.711449>*scaleby, PRIM_ROTATION,calcChildRot(<0.232527,0.446810,-0.696616,-0.510900>), PRIM_SIZE, <0.176529,0.009216,0.253571>*scaleby]);
71 llSetLinkPrimitiveParamsFast(12, [PRIM_POSITION, <0.345215,0.034195,0.588997>*scaleby, PRIM_ROTATION,calcChildRot(<0.393446,0.457487,-0.567698,-0.560022>), PRIM_SIZE, <0.092038,0.092038,0.092038>*scaleby]);
72
73 }
74 l(){
75 vector currentSize = llGetScale();
76 float scaleby = currentSize.x/originalScale.x;
77
78 llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <0.097198,-0.075089,0.464996>*scaleby, PRIM_ROTATION,calcChildRot(<-0.610849,0.073793,-0.464468,-0.636935>), PRIM_SIZE, <0.113302,0.162322,0.173233>*scaleby]);
79 llSetLinkPrimitiveParamsFast(3, [PRIM_POSITION, <-0.013397,0.130600,0.480568>*scaleby, PRIM_ROTATION,calcChildRot(<0.304596,-0.436717,-0.820620,-0.207561>), PRIM_SIZE, <0.113450,0.162321,0.173603>*scaleby]);
80 llSetLinkPrimitiveParamsFast(4, [PRIM_POSITION, <0.185455,0.106308,0.741096>*scaleby, PRIM_ROTATION,calcChildRot(<-0.313041,-0.560475,-0.664550,-0.382422>), PRIM_SIZE, <0.104103,0.056412,0.182692>*scaleby]);
81 llSetLinkPrimitiveParamsFast(5, [PRIM_POSITION, <-0.247375,-0.025650,0.390549>*scaleby, PRIM_ROTATION,calcChildRot(<-0.426620,-0.520168,-0.579640,-0.459825>), PRIM_SIZE, <0.355153,0.403545,0.704166>*scaleby]);
82 llSetLinkPrimitiveParamsFast(6, [PRIM_POSITION, <-0.208618,-0.020569,0.593903>*scaleby, PRIM_ROTATION,calcChildRot(<-0.426620,-0.520168,-0.579640,-0.459825>), PRIM_SIZE, <0.589556,0.165455,0.193329>*scaleby]);
83 llSetLinkPrimitiveParamsFast(7, [PRIM_POSITION, <0.145599,0.082733,0.774300>*scaleby, PRIM_ROTATION,calcChildRot(<-0.311901,-0.562018,-0.677148,-0.358223>), PRIM_SIZE, <0.169087,0.180204,0.332219>*scaleby]);
84 llSetLinkPrimitiveParamsFast(8, [PRIM_POSITION, <-0.286621,0.145386,0.129936>*scaleby, PRIM_ROTATION,calcChildRot(<-0.627229,-0.778690,-0.014919,-0.001743>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
85 llSetLinkPrimitiveParamsFast(9, [PRIM_POSITION, <-0.215210,-0.182129,0.124458>*scaleby, PRIM_ROTATION,calcChildRot(<-0.627229,-0.778690,-0.014919,-0.001743>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
86 llSetLinkPrimitiveParamsFast(10, [PRIM_POSITION, <0.052673,0.036484,0.621750>*scaleby, PRIM_ROTATION,calcChildRot(<-0.426620,-0.520168,-0.579640,-0.459825>), PRIM_SIZE, <0.100213,0.183835,0.124935>*scaleby]);
87 llSetLinkPrimitiveParamsFast(11, [PRIM_POSITION, <-0.676422,-0.128326,0.565483>*scaleby, PRIM_ROTATION,calcChildRot(<0.314587,0.549139,-0.664461,-0.397458>), PRIM_SIZE, <0.176529,0.009216,0.253571>*scaleby]);
88 llSetLinkPrimitiveParamsFast(12, [PRIM_POSITION, <0.224701,0.136307,0.766090>*scaleby, PRIM_ROTATION,calcChildRot(<0.327529,0.627953,-0.605156,-0.363574>), PRIM_SIZE, <0.092038,0.092038,0.092038>*scaleby]);
89
90 }
91 r(){
92 vector currentSize = llGetScale();
93 float scaleby = currentSize.x/originalScale.x;
94
95 llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <0.032379,-0.189697,0.485855>*scaleby, PRIM_ROTATION,calcChildRot(<-0.433656,0.244167,-0.293339,-0.816258>), PRIM_SIZE, <0.113302,0.162322,0.173233>*scaleby]);
96 llSetLinkPrimitiveParamsFast(3, [PRIM_POSITION, <0.062897,0.064178,0.445442>*scaleby, PRIM_ROTATION,calcChildRot(<0.143201,-0.617953,-0.674262,-0.378150>), PRIM_SIZE, <0.113450,0.162321,0.173603>*scaleby]);
97 llSetLinkPrimitiveParamsFast(4, [PRIM_POSITION, <0.190155,-0.146484,0.731400>*scaleby, PRIM_ROTATION,calcChildRot(<-0.570039,-0.289957,-0.400416,-0.656238>), PRIM_SIZE, <0.104103,0.056412,0.182692>*scaleby]);
98 llSetLinkPrimitiveParamsFast(5, [PRIM_POSITION, <-0.250854,-0.017166,0.390953>*scaleby, PRIM_ROTATION,calcChildRot(<-0.521180,-0.438790,-0.490818,-0.543077>), PRIM_SIZE, <0.355153,0.403545,0.704166>*scaleby]);
99 llSetLinkPrimitiveParamsFast(6, [PRIM_POSITION, <-0.208527,-0.029999,0.593254>*scaleby, PRIM_ROTATION,calcChildRot(<-0.521180,-0.438790,-0.490818,-0.543077>), PRIM_SIZE, <0.589556,0.165455,0.193329>*scaleby]);
100 llSetLinkPrimitiveParamsFast(7, [PRIM_POSITION, <0.148804,-0.125046,0.764168>*scaleby, PRIM_ROTATION,calcChildRot(<-0.568740,-0.291403,-0.423669,-0.641968>), PRIM_SIZE, <0.169087,0.180204,0.332219>*scaleby]);
101 llSetLinkPrimitiveParamsFast(8, [PRIM_POSITION, <-0.234741,0.162659,0.133804>*scaleby, PRIM_ROTATION,calcChildRot(<0.752611,0.658234,0.013841,-0.010679>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
102 llSetLinkPrimitiveParamsFast(9, [PRIM_POSITION, <-0.279419,-0.169403,0.122025>*scaleby, PRIM_ROTATION,calcChildRot(<0.752611,0.658234,0.013841,-0.010679>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
103 llSetLinkPrimitiveParamsFast(10, [PRIM_POSITION, <0.057098,-0.065933,0.614891>*scaleby, PRIM_ROTATION,calcChildRot(<-0.521180,-0.438790,-0.490818,-0.543077>), PRIM_SIZE, <0.100213,0.183835,0.124935>*scaleby]);
104 llSetLinkPrimitiveParamsFast(11, [PRIM_POSITION, <-0.685516,0.028671,0.575882>*scaleby, PRIM_ROTATION,calcChildRot(<0.393302,0.487545,-0.584468,-0.515762>), PRIM_SIZE, <0.176529,0.009216,0.253571>*scaleby]);
105 llSetLinkPrimitiveParamsFast(12, [PRIM_POSITION, <0.233948,-0.168625,0.757133>*scaleby, PRIM_ROTATION,calcChildRot(<0.588317,0.399276,-0.304246,-0.633953>), PRIM_SIZE, <0.092038,0.092038,0.092038>*scaleby]);
106
107 }
108 flame(){
109 vector currentSize = llGetScale();
110 float scaleby = currentSize.x/originalScale.x;
111
112 llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <0.088196,-0.110626,0.407928>*scaleby, PRIM_ROTATION,calcChildRot(<-0.640473,0.045866,-0.371975,-0.670317>), PRIM_SIZE, <0.113302,0.162322,0.173233>*scaleby]);
113 llSetLinkPrimitiveParamsFast(3, [PRIM_POSITION, <0.033661,0.130173,0.401093>*scaleby, PRIM_ROTATION,calcChildRot(<0.162269,-0.625520,-0.722656,-0.245278>), PRIM_SIZE, <0.113450,0.162321,0.173603>*scaleby]);
114 llSetLinkPrimitiveParamsFast(4, [PRIM_POSITION, <0.263824,0.017899,0.657967>*scaleby, PRIM_ROTATION,calcChildRot(<-0.469144,-0.502446,-0.526815,-0.499918>), PRIM_SIZE, <0.104103,0.056412,0.182692>*scaleby]);
115 llSetLinkPrimitiveParamsFast(5, [PRIM_POSITION, <-0.256744,-0.023636,0.395195>*scaleby, PRIM_ROTATION,calcChildRot(<-0.501839,-0.539748,-0.508385,-0.445392>), PRIM_SIZE, <0.355153,0.403545,0.704166>*scaleby]);
116 llSetLinkPrimitiveParamsFast(6, [PRIM_POSITION, <-0.181519,-0.021790,0.588120>*scaleby, PRIM_ROTATION,calcChildRot(<-0.501839,-0.539748,-0.508385,-0.445392>), PRIM_SIZE, <0.589556,0.165455,0.193329>*scaleby]);
117 llSetLinkPrimitiveParamsFast(7, [PRIM_POSITION, <0.221954,0.015411,0.696548>*scaleby, PRIM_ROTATION,calcChildRot(<-0.469526,-0.502998,-0.544790,-0.479314>), PRIM_SIZE, <0.169087,0.180204,0.332219>*scaleby]);
118 llSetLinkPrimitiveParamsFast(8, [PRIM_POSITION, <-0.323700,0.149353,0.141594>*scaleby, PRIM_ROTATION,calcChildRot(<0.667976,0.739942,-0.048001,-0.063163>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
119 llSetLinkPrimitiveParamsFast(9, [PRIM_POSITION, <-0.290375,-0.184097,0.131683>*scaleby, PRIM_ROTATION,calcChildRot(<0.667976,0.739942,-0.048001,-0.063163>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
120 llSetLinkPrimitiveParamsFast(10, [PRIM_POSITION, <0.085114,0.006042,0.567261>*scaleby, PRIM_ROTATION,calcChildRot(<-0.501839,-0.539748,-0.508385,-0.445392>), PRIM_SIZE, <0.100213,0.183835,0.124935>*scaleby]);
121 llSetLinkPrimitiveParamsFast(11, [PRIM_POSITION, <-0.655640,-0.077042,0.646698>*scaleby, PRIM_ROTATION,calcChildRot(<0.286010,0.487603,-0.671454,-0.479157>), PRIM_SIZE, <0.176529,0.009216,0.253571>*scaleby]);
122 llSetLinkPrimitiveParamsFast(12, [PRIM_POSITION, <0.315155,0.026520,0.676842>*scaleby, PRIM_ROTATION,calcChildRot(<0.436172,0.500618,-0.530054,-0.527426>), PRIM_SIZE, <0.092038,0.092038,0.092038>*scaleby]);
123
124 }
125
126 land(){
127 vector currentSize = llGetScale();
128 float scaleby = currentSize.x/originalScale.x;
129
130 llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <0.019562,-0.132294,0.489136>*scaleby, PRIM_ROTATION,calcChildRot(<-0.643247,-0.238106,0.029780,-0.727085>), PRIM_SIZE, <0.113302,0.162322,0.173233>*scaleby]);
131 llSetLinkPrimitiveParamsFast(3, [PRIM_POSITION, <0.002289,0.111328,0.452057>*scaleby, PRIM_ROTATION,calcChildRot(<0.221676,0.765056,0.604547,-0.008526>), PRIM_SIZE, <0.113450,0.162321,0.173603>*scaleby]);
132 llSetLinkPrimitiveParamsFast(4, [PRIM_POSITION, <0.208649,0.010574,0.659607>*scaleby, PRIM_ROTATION,calcChildRot(<-0.549045,-0.600036,-0.418281,-0.404410>), PRIM_SIZE, <0.104103,0.056412,0.182692>*scaleby]);
133 llSetLinkPrimitiveParamsFast(5, [PRIM_POSITION, <-0.248932,-0.022842,0.390663>*scaleby, PRIM_ROTATION,calcChildRot(<-0.461346,-0.493366,-0.550428,-0.490692>), PRIM_SIZE, <0.355153,0.403545,0.704166>*scaleby]);
134 llSetLinkPrimitiveParamsFast(6, [PRIM_POSITION, <-0.195221,-0.024368,0.447243>*scaleby, PRIM_ROTATION,calcChildRot(<-0.461346,-0.493366,-0.550428,-0.490692>), PRIM_SIZE, <0.020789,0.025806,0.071206>*scaleby]);
135 llSetLinkPrimitiveParamsFast(7, [PRIM_POSITION, <0.184235,0.009933,0.711060>*scaleby, PRIM_ROTATION,calcChildRot(<-0.553267,-0.597050,-0.435805,-0.384059>), PRIM_SIZE, <0.169087,0.180204,0.332219>*scaleby]);
136 llSetLinkPrimitiveParamsFast(8, [PRIM_POSITION, <-0.133057,0.166061,0.136291>*scaleby, PRIM_ROTATION,calcChildRot(<-0.478108,-0.512276,-0.532899,-0.474346>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
137 llSetLinkPrimitiveParamsFast(9, [PRIM_POSITION, <-0.101868,-0.167648,0.128334>*scaleby, PRIM_ROTATION,calcChildRot(<-0.478108,-0.512276,-0.532899,-0.474346>), PRIM_SIZE, <0.132253,0.167794,0.216373>*scaleby]);
138 llSetLinkPrimitiveParamsFast(10, [PRIM_POSITION, <0.058289,0.000885,0.619575>*scaleby, PRIM_ROTATION,calcChildRot(<-0.461346,-0.493366,-0.550428,-0.490692>), PRIM_SIZE, <0.100213,0.183835,0.124935>*scaleby]);
139 llSetLinkPrimitiveParamsFast(11, [PRIM_POSITION, <-0.685852,-0.073822,0.568771>*scaleby, PRIM_ROTATION,calcChildRot(<0.343354,0.529393,-0.638648,-0.440431>), PRIM_SIZE, <0.176529,0.009216,0.253571>*scaleby]);
140 llSetLinkPrimitiveParamsFast(12, [PRIM_POSITION, <0.266113,0.017426,0.767509>*scaleby, PRIM_ROTATION,calcChildRot(<0.480481,0.544910,-0.484405,-0.487405>), PRIM_SIZE, <0.092038,0.092038,0.092038>*scaleby]);
141
142 }
143 default{
144
146 llSetMemoryLimit(llGetUsedMemory() + 512);
147 land();
148 }
149
150 link_message(integer sender_num, integer num, string message, key id){
151
152
153
154 if(message == "up"){
155 up();
156 }
157 else if(message == "down"){
158 down();
159 }
160 else if(message == "l"){
161 l();
162 }
163 else if(message == "r"){
164 r();
165 }
166 else if(message == "flames"){
167 flame();
168 }
169 else if(message == "land"){
170 land();
171 }
172 }
173
174 }

Keyframe Follower

Dragon Flames for a dragon follower

Category: Follower
By : Ferd Frederix
Created: 2014-12-04 Edited: 2014-12-04
Worlds: Second Life


This script by Ferd Frederix may be used in any manner, modified, and republished.  Unless specified otherwise, my scripts are always free and open source.  Objects made with these scripts may be sold with no restrictions.  All I ask is that you point others to this location should they ask you about it and to not sell this script, unless it is for $0 L. Please help improve my work by reporting bugs and improvements.

1 Particles()
2 {
4
6 PSYS_PART_START_SCALE, <.1,.1,1>, PSYS_PART_END_SCALE, <0,2.0, 0>,
7 PSYS_PART_START_COLOR, <0.2,1,0.2>, PSYS_PART_END_COLOR, <.5,1,1>,
9
14
15 PSYS_SRC_PATTERN, 8, // 1=DROP, 2=EXPLODE, 4=ANGLE, 8=ANGLE_CONE,
16 PSYS_SRC_ACCEL, <1.0,0.0,0.0>,
17
19
22
25 PSYS_SRC_OMEGA, <0,0,0>,
26
27 PSYS_PART_FLAGS, ( 0
28
30
32
34
36
38
40
42
44
46
47 ) ] );
48
49
50 }
51
52
53 default
54 {
55
57 {
59 }
60 link_message(integer sender, integer num, string str, key id)
61 {
62 if(str=="flames"){
63 float which = llFrand(3);
64 //llOwnerSay((string) which);
65 if(which < 1)
66 llTriggerSound("roar1",1.0);
67 else if(which < 2)
68 llTriggerSound("roar2",1.0);
69 else
70 llTriggerSound("roar3",1.0);
71
72
73 Particles();
74 llSetTimerEvent(1.0);
75 }
76 }
77
78 timer()
79 {
82
83 }
84
85 }

Keyframe Follower

Wing flap script for a X-wing uses a special texture, 1/4 wing upperl left, 1/4 wing lower right

Category: Follower
By : Ferd Frederix
Created: 2014-12-04 Edited: 2014-12-04
Worlds: Second Life


This script by Ferd Frederix may be used in any manner, modified, and republished.  Unless specified otherwise, my scripts are always free and open source.  Objects made with these scripts may be sold with no restrictions.  All I ask is that you point others to this location should they ask you about it and to not sell this script, unless it is for $0 L. Please help improve my work by reporting bugs and improvements.

1 default
2 {
4 {
5 llSetTextureAnim( ANIM_ON | LOOP, ALL_SIDES, 1, 2, 0.0, 2.0, 5);
6 }
7
8 link_message(integer sender, integer num, string str, key id)
9 {
10 // llOwnerSay(str);
11 if(str=="up"){
12 llSetTextureAnim( ANIM_ON | LOOP, ALL_SIDES, 1, 2, 0.0, 2.0, 5);
13 llSetTimerEvent(0.5);
14 }
15 else if(str=="down") {
16 llSetTextureAnim( ANIM_ON | LOOP, ALL_SIDES, 1, 2, 0.0, 2.0, 2);
17 llSetTimerEvent(0.7);
18 }
19 else if(str=="land") {
22 }
23
24 }
25
26 timer()
27 {
28 llTriggerSound("wing4", 0.5);
29 }
30
32 {
34 }
35 }

Back to the Best Free Tools in Second Life and OpenSim.