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
Tour TourCopter  

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-04
Worlds: Second Life

the Zip file

Download all files for TourCopter
Contents are in zip format, with .LSL (text) source code and LSLEdit (text + Solution) formats.
Get file # 1. aimer.lsl
Get file # 2. AnimateCannon.lsl
Get file # 3. Blade Run.lsl
Get file # 4. Blade strike push.lsl
Get file # 5. Blade strike sound.lsl
Get file # 6. Bullet rez.lsl
Get file # 7. Cannon.lsl
Get file # 8. Display.lsl
Get file # 9. Ejection.lsl
Get file # 10. Help.txt
Get file # 11. linked gun.lsl
Get file # 12. Main Blade run.lsl
Get file # 13. Pilot Sit.lsl
Get file # 14. pilot.lsl
Get file # 15. ShootCannon.lsl
Get file # 16. Sound.lsl
Get file # 17. Tail Blade run.lsl
Get file # 18. TailBladeRun.lsl
Get file # 19. Tour.lsl
Get file # 20. turret_seat.lsl
Get file # 21. Voice.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 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // aimer 1 of 3
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16 key gunnerId = NULL_KEY;
17 integer debug = 1;
18
19 Gun(string str, key ShootAt )
20 {
21 if(str == "gun-aim")
22 {
23 gunnerId = ShootAt;
24 if(ShootAt == NULL_KEY)
25 {
27 llSetLocalRot(<0.00000, 0.70711, 0.00000, 0.70711>);
28 }
29 else
30 {
31 llSensorRepeat("", "", AGENT, 20.0, TWO_PI, 0.1); // aim at an avatar
32 }
33 }
34 else if(str == "gun-stop")
35 {
37 llSetLocalRot(<0.00000, 0.70711, 0.00000, 0.70711>);
38 }
39 else if(str == "pilot")
40 {
41 gunnerId = ShootAt;
42 }
43
44
45 }
46
47 default
48 {
50 {
51
52 llSetLocalRot(<0.00000, 0.70711, 0.00000, 0.70711>); // point down.
53
54 if(debug)
55 {
56 Gun("gun-aim", llGetOwner());
57 }
58 }
59
60 link_message(integer sender_num, integer num, string str, key id)
61 {
62 Gun(str,id);
63 }
64
65 no_sensor()
66 {
67 gunnerId = NULL_KEY;
69 llSetLocalRot(<0.00000, 0.70711, 0.00000, 0.70711>);
70 }
71
72 sensor(integer num_detected)
73 {
74 integer i;
75 for (i = 0; i < num_detected; i++)
76 {
77 if(llDetectedKey(i) != gunnerId)
78 {
79 // rotation headRot = llDetectedRot(0) * llEuler2Rot(<0,0,DEG_TO_RAD * 180>);
80 //llSay(0, (string)(llRot2Euler(headRot) * RAD_TO_DEG));
81 //headRot = llEuler2Rot(<0.0, DEG_TO_RAD * 180.0, 0.0>) * llEuler2Rot(<headRot.y, 0.0, headRot.z>);
83 llSetLocalRot(<0.00000, 0.70711, 0.00000, 0.70711> * ((llDetectedRot(i) / llGetRootRotation()) / llGetRootRotation()));
84 llSleep(0.5);
85 }
86 }
87 }
88 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // Display
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16
17
18 integer fps = 14;
19
20 off()
21 {
22 llSetTextureAnim(FALSE, ALL_SIDES, 4, 1, 3, 1, fps);
23 llSetTextureAnim(ANIM_ON, ALL_SIDES, 4, 1, 3, 1, fps);
24 }
25
26 default
27 {
29 {
30 //llSetAlpha(0.0, ALL_SIDES);
31 // llSetAlpha(1.0, 1);
32 // llSetAlpha(1.0, 2);
33 // llSetColor(<1.0, 1.0, 1.0>, ALL_SIDES);
35 off();
36 }
37
38 link_message(integer sender, integer num, string str, key id)
39 {
40 if(str == "fire") {
41 llSetColor(<1,1,0>,2);
42 llSetTexture("6d209b1b-495c-2c9a-2efd-720bcd61e239" , 2);
43 llSetTextureAnim(ANIM_ON | LOOP, 2, 2, 1, 0.0, 2.0, 20.0);
44 } else if(str == "fire1") {
45 llSetTextureAnim(FALSE, ALL_SIDES, 4, 1, 1, 3, fps * 3);
46 llSetTextureAnim(ANIM_ON, ALL_SIDES, 4, 1, 1, 3, fps * 3);
47 } else {
48 llSetTextureAnim(FALSE, 2, 2, 1, 0.0, 2.0, 20.0);
49 llSetColor(<0,0,0>,2);
50
51 }
52 }
53 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16
17 Stopped()
18 {
19 llSetTexture("70afec32-bdcc-474f-676f-9b9284d466d1" , ALL_SIDES);
20 llSetTexture("a586c350-930b-8ca1-8d23-0e2d8c6bebf0", 1);
22 llSleep(1);
24 llSleep(1);
26 llSleep(1);
28 llSleep(1);
30 llSleep(1);
32 llSetTexture("3736ae8e-5792-e4b0-9627-804830ee4ba1" , ALL_SIDES);
33 llSetTexture("6efb7d85-7684-b532-0a9d-08392eed326c", 1);
34 llSleep(1);
36 llSleep(1);
38 llSleep(1);
40 llSleep(1);
42 llSetTexture("580964ba-6d9a-5e76-5db0-a5a669f35b35" , ALL_SIDES);
43 llSetTexture("3736ae8e-5792-e4b0-9627-804830ee4ba1", 1);
44 llSleep(1);
46 llSleep(1);
47
49 }
50
51 default
52 {
53 link_message(integer from, integer int, string txt, key id)
54 {
55 if(txt == "on")
56 {
57 llSetAlpha(0,1);
58 llSetTexture("580964ba-6d9a-5e76-5db0-a5a669f35b35" , ALL_SIDES);
59 llSetTexture("3736ae8e-5792-e4b0-9627-804830ee4ba1", 1);
62 llSleep(1);
64 llSleep(1);
66 llSleep(1);
68 llSleep(1);
70 llSleep(1);
71 llSetTexture("3736ae8e-5792-e4b0-9627-804830ee4ba1" , ALL_SIDES);
72 llSetTexture("6efb7d85-7684-b532-0a9d-08392eed326c", 1);
74 llSleep(1);
76 llSleep(1);
78 llSleep(1);
80 llSleep(1);
82 // llLoopSound("f46d98b3-a812-0db8-a6d5-4943f1f7c1a3",1);
83
84 llSetTexture("70afec32-bdcc-474f-676f-9b9284d466d1" , ALL_SIDES);
85 llSetTexture("a586c350-930b-8ca1-8d23-0e2d8c6bebf0", 1);
86 }
87 if(txt == "off")
88 {
89 Stopped();
90 }
91 if(txt == "half")
92 {
94 llSetTexture("580964ba-6d9a-5e76-5db0-a5a669f35b35" , ALL_SIDES);
95 llSetTexture("3736ae8e-5792-e4b0-9627-804830ee4ba1", 1);
96 }
97 }
98
100 {
102 }
103 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // blade strike push
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16 vector local_pos;
17 float mass;
18 integer i;
19
20 integer on = FALSE;
21
22 default
23 {
24 link_message(integer sender, integer num, string str, key id)
25 {
26 if(str == "start") {
27 on = TRUE;
28 } else if(str == "stop") {
29 on = FALSE;
30 }
31 }
32
34 {
35 if(!on) return;
36 for (i = 0; i < n && i < 3; i += 1)
37 {
39 {
41 if((llDetectedType(i) & AGENT) == AGENT)
42 {
43 local_pos = llDetectedPos(i) - llGetPos();
44 if((llGetAgentInfo(llDetectedKey(i)) & AGENT_FLYING) == AGENT_FLYING) {
45 llPushObject(llDetectedKey(i), llVecNorm(local_pos) * ((llVecMag(local_pos) * 0.4) + 1.0) * mass * llPow(llVecMag(local_pos) + 0.1, 3.0), ZERO_VECTOR, FALSE);
46 } else {
47 llPushObject(llDetectedKey(i), llVecNorm(local_pos) * ((llVecMag(local_pos) * 0.2) + 1.0) * mass * llPow(llVecMag(local_pos) + 0.1, 3.0), ZERO_VECTOR, FALSE);
48 }
49 } else if(llDetectedVel(i) != ZERO_VECTOR && mass > 1.0) {
50 local_pos = llDetectedPos(i) - llGetPos();
51 llPushObject(llDetectedKey(i), llVecNorm(local_pos) * ((llVecMag(local_pos) * 0.15) + 1.5) * mass * llPow(llVecMag(local_pos) + 0.1, 3.0), ZERO_VECTOR, FALSE);
52 }
53 }
54 }
55 }
56 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // blade strike sound
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16
17 vector local_pos;
18 float mass;
19 integer i;
20
21 integer on = FALSE;
22
23 default
24 {
25 link_message(integer sender, integer num, string str, key id)
26 {
27 if(str == "start") {
28 on = TRUE;
29 } else if(str == "stop") {
30 on = FALSE;
31 }
32 }
33
35 {
36 if(!on) return;
37
38 for (i = 0; i < n && i < 3; i += 1) {
41 if((llDetectedType(i) & AGENT) == AGENT) {
42 local_pos = llDetectedPos(i) - llGetPos();
43 llTriggerSound(llList2Key(["5da4aa20-7c19-7a06-0b9a-867dfa45bc72", "aeaa0bcb-8671-3515-8020-1e9ea14b57dd", "fb379090-42f3-f6b2-70a4-269d379b8e2b"], llFloor(llFrand(2.99999))), 0.2 + llVecMag(local_pos) / 4.0);
44 } else if(llDetectedVel(i) != ZERO_VECTOR && mass > 1.0) {
45 local_pos = llDetectedPos(i) - llGetPos();
46 llTriggerSound(llList2Key(["5da4aa20-7c19-7a06-0b9a-867dfa45bc72", "aeaa0bcb-8671-3515-8020-1e9ea14b57dd", "fb379090-42f3-f6b2-70a4-269d379b8e2b"], llFloor(llFrand(2.99999))), 0.2 + llVecMag(local_pos) / 4.0);
47 }
48 }
49 }
50 }
51 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // Bullet rez 1 of 4
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16
17 vector rez_pos = <2.5, 0.1, 0.05>;
18
19 float bullet_speed = 200.0;
20
21
22
23 default
24 {
26 {
27
28
29 }
30
31 link_message(integer sender_num, integer num, string str, key id)
32 {
33 if(str == "fire")
34 {
35 integer fire = 0;
36 rotation rot = <0.00000, -0.70711, 0.00000, 0.70711> * (llGetLocalRot() * llGetRootRotation());
37 vector pos = llGetRootPosition() + (llGetLocalPos() * llGetRootRotation()) + (rez_pos * rot);
38 vector vel = (<bullet_speed, 0.0, 0.0> * rot) + llGetVel();
39 do {
40 llTriggerSound("64aeeca3-8760-385b-b2c9-f9465c202ba7", 1.6);
41 llRezObject(llGetObjectDesc(), pos, vel, <0.0000, 0.70711, 0.0000, 0.70711> * rot, 1);
42 } while(fire++ < 5);
43 }
44 }
45
46
47
48 on_rez(integer sparam)
49 {
51 }
52 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // Bullet rez 1 of 4
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16
17 key sound_full = "e6b53731-58b2-9a5a-aafa-9a01ef21c1b8";
18 key sound_leadout = "05100d06-bf41-785b-1747-6f476f6288b8";
19
20 default
21 {
23 {
24 //llSetLocalRot(<0.00000, 0.70711, 0.00000, 0.70711>);
25 }
26
27 link_message(integer sender_num, integer num, string str, key id)
28 {
29 if(str == "fire")
30 {
31 llTriggerSound(sound_full, 1.0);
32 }
33 else
34 {
35 llTriggerSound(sound_leadout, 1.0);
36 }
37 }
38 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // Display
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16
17
18
19 integer display = TRUE;
20 string guest = "";
21
22 vector pos;
23 string altitude;
24 string altitude_sea;
25 string text;
26
27
28 integer afterburner;
29 vector velocity;
30 string speed;
31 string throttle;
32
33
34 default
35 {
37 {
38 llSetText(" ", <1.0, 1.0, 1.0>, 0.0);
39 afterburner = FALSE;
40 }
41
42 link_message(integer sender, integer num, string str, key id)
43 {
44 if(str == "start") {
45 state active;
46 } else if(str == "throttle") {
47 throttle = (string)num;
48 } else if(str == "displayoff") {
49 display = FALSE;
50 } else if(str == "displayon") {
51 display = TRUE;
52 }
53 }
54 }
55
56 state active
57 {
59 {
60 if(display) {
61 llSetTimerEvent(0.25);
62 }
63 }
64
66 {
67 llSetTimerEvent(0.0);
68 }
69
70 on_rez(integer sparam)
71 {
72 state default;
73 }
74
75 timer()
76 {
77 if(display) {
78 pos = llGetPos() + (llGetVel() / 2.0);
79 if(pos.x > 256.0 || pos.x < 0.0 || pos.y > 256.0 || pos.y < 0.0) {
80 llMessageLinked(LINK_SET, 0, "afterburneroff", NULL_KEY);
81 }
82 pos = llGetPos();
83
84 if(afterburner) {
85 text = "Throttle: AFTERBURNER";
86 } else {
87 text = "Throttle: " + throttle + "%";
88 }
89
90 velocity = llGetVel();
91 speed = (string)llVecMag(velocity);
92 speed = llGetSubString(speed, 0, llSubStringIndex(speed, ".") + 3);
93 text += " - Speed: " + speed + " m/s";
94
95 // rot = llGetRot();
96 // fwd = llRot2Up(rot * llRotBetween(llRot2Fwd(rot), <0.0, 0.0, 1.0>)) * -1.0;
97 // heading = llFloor((llAtan2(fwd.x, fwd.y) * RAD_TO_DEG) + 0.5);
98 // if(heading < 0) {
99 // heading += 360;
100 // }
101 // text += " - Heading: " + (string)heading + " degrees";
102
103 text += "\n----------";
104
105 altitude = (string)pos.z;
106 altitude = llGetSubString(altitude, 0, llSubStringIndex(altitude, ".") + 3);
107 altitude_sea = (string)(pos.z - llWater(ZERO_VECTOR));
108 altitude_sea = llGetSubString(altitude_sea, 0, llSubStringIndex(altitude_sea, ".") + 3);
109 text += "\nAltitude (abs): " + altitude + " meters";
110 text += "\nAltitude (sea): " + altitude_sea + " meters";
111
112 text += "\nCoordinates: " + (string)llFloor(pos.x) + ", " + (string)llFloor(pos.y) + " (" + llGetRegionName() + ")";
113
114 guest = llGetLinkName(18);
115 if(guest != "Object") {
116 text += "\nGuest Pilot: " + guest;
117 }
118
119 llSetText(text + "\n ", <0.25, 0.25, 1.0>, 1.0);
120 } else {
121 llSetTimerEvent(0.0);
122 llSetText(" ", <0.25, 0.25, 1.0>, 0.0);
123 }
124 }
125
126 link_message(integer sender, integer num, string str, key id)
127 {
128 if(str == "stop" ) {
129 state default;
130 } else if(str == "throttle") {
131 throttle = (string)num;
132 } else if(str == "afterburner") {
133 afterburner = TRUE;
134 } else if(str == "afterburneroff") {
135 afterburner = FALSE;
136 } else if(str == "displayoff") {
137 display = FALSE;
138 } else if(str == "displayon") {
139 display = TRUE;
140 llSetTimerEvent(0.25);
141 }
142 }
143 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // bombs
12 //has 2 objects, Bomb ver 1 and Bullet
13 // Ejection
14 //
15 //Revisions:
16 // 1/28/2010 initial release
17
18 default
19 {
20
21
22 link_message(integer sender, integer num, string message, key id)
23 {
24 if(message=="bomb")
25 {
26 rotation my_rot = llGetRot();
27 vector my_fwd = llRot2Fwd(my_rot);
28 vector pos = llGetPos();
29 rotation rot = llGetRot();
30 vector offset = <0.7, 0.4, 0.0>;
31 vector vel = <0.0,3.0,0.0>*llGetRot() + llGetVel();
32 offset *= rot;
33 pos += offset;
34 llRezObject("Bomb ver 1", pos, vel, my_rot, 1);
35 llTriggerSound("01ef193d-09c6-47f3-8ae3-b36e689599e8",1);
37 }
38 }
39 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // linked gun
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16
17 float SPEED = 80;
18 integer LIFETIME = 4;
19 vector vel;
20 vector pos;
21 vector cpos;
22 rotation rot;
23
24
25 default
26 {
28 {
29
30 }
31 link_message(integer sender_num, integer num, string str, key id)
32 {
33 if(str == "bullet")
34 {
35 rot = llGetRot();
36 pos = llGetPos();
37 cpos = pos + <0.005, -0.008, 1.0> * rot;
38 vel = llRot2Up(rot) * SPEED;
39 llRezObject("Bullet", cpos, vel, rot, LIFETIME);
40 llTriggerSound("c9b42c7b-4489-0a81-3b4b-0031412cf49a",1.0);
41
42 }
43 }
44 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11
12 // main blade run
13 //
14 //Revisions:
15 // 1/28/2010 initial release
16
17 Stopped()
18 {
19 llSetTexture("70afec32-bdcc-474f-676f-9b9284d466d1" , ALL_SIDES);
20 llSetTexture("a586c350-930b-8ca1-8d23-0e2d8c6bebf0", 1);
22 llSleep(1);
24 llSleep(1);
26 llSleep(1);
28 llSleep(1);
30 llSleep(1);
32 llSetTexture("3736ae8e-5792-e4b0-9627-804830ee4ba1" , ALL_SIDES);
33 llSetTexture("6efb7d85-7684-b532-0a9d-08392eed326c", 1);
34 llSleep(1);
36 llSleep(1);
38 llSleep(1);
40 llSleep(1);
42 llSetTexture("580964ba-6d9a-5e76-5db0-a5a669f35b35" , ALL_SIDES);
43 llSetTexture("3736ae8e-5792-e4b0-9627-804830ee4ba1", 1);
44 llSleep(1);
46 llSleep(1);
47
49 }
50
51 default
52 {
54 {
55 Stopped();
56 }
57
58 link_message(integer from, integer int, string txt, key id)
59 {
60 if(txt == "on")
61 {
62 llSetAlpha(0,1);
63 llSetTexture("580964ba-6d9a-5e76-5db0-a5a669f35b35" , ALL_SIDES);
64 llSetTexture("3736ae8e-5792-e4b0-9627-804830ee4ba1", 1);
67 llSleep(1);
69 llSleep(1);
71 llSleep(1);
73 llSleep(1);
75 llSleep(1);
76 llSetTexture("3736ae8e-5792-e4b0-9627-804830ee4ba1" , ALL_SIDES);
77 llSetTexture("6efb7d85-7684-b532-0a9d-08392eed326c", 1);
79 llSleep(1);
81 llSleep(1);
83 llSleep(1);
85 llSleep(1);
87 // llLoopSound("f46d98b3-a812-0db8-a6d5-4943f1f7c1a3",1);
88
89 llSetTexture("70afec32-bdcc-474f-676f-9b9284d466d1" , ALL_SIDES);
90 llSetTexture("a586c350-930b-8ca1-8d23-0e2d8c6bebf0", 1);
91 }
92 else if(txt == "off")
93 {
94 Stopped();
95 }
96
97 else if(txt == "half")
98 {
100 llSetTexture("580964ba-6d9a-5e76-5db0-a5a669f35b35" , ALL_SIDES);
101 llSetTexture("3736ae8e-5792-e4b0-9627-804830ee4ba1", 1);
102 }
103 }
104
105
107 {
109 }
110 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 //
12 //Revisions:
13 // 1/28/2010 initial release
14
15 // Seat
16 // Pilot Sit
17 // This script sets the pilot's seat sit target and camera. A link message is sent when the pilot sits or unsits.
18 // The string of the link message is "pilot". The key of the pilot will be sent if the pilot just sat, or NULL_KEY if the pilot just got up.
19
20 // This is the animation to be run when the pilot sits. if it's equal to "", then the default sit animation will be used.
21 string sit_anim = "recline sit";
22 // This is the sit target offset.
23 vector sit_offset = <0.07700, -0.52750, -0.39870>;
24 // This is the sit rotation.
25 rotation sit_rotation = <0.70779, -0.00319, -0.00288, 0.70641>;
26 // This is where the pilot camera is relative to the pilot seat.
27 vector camera_position = <-10.0, -5.0, .01>;
28 // This is where the pilot camera is looking.
29 vector camera_target = <4.5, 0.01, 0.01>;
30
31 key pilot;
32
33 default
34 {
36 {
37 llSitTarget(sit_offset, sit_rotation);
38 llSetCameraEyeOffset(camera_position);
39 llSetCameraAtOffset(camera_target);
40 pilot = NULL_KEY;
41 llMessageLinked(LINK_SET, 0, "pilot", NULL_KEY);
42 }
43
44 changed(integer change)
45 {
46 key sitting = llAvatarOnSitTarget();
47 if(change == CHANGED_LINK)
48 {
49 if(sitting != NULL_KEY && pilot == NULL_KEY)
50 {
51 pilot = sitting;
52 llMessageLinked(LINK_SET, 0, "half", NULL_KEY); // half blades
53
54 // llMessageLinked(1, 0, "llWhisper", "/me Pilot " + llKey2Name(sitting)); // odd way to do a whisper
55
56 llMessageLinked(LINK_SET, 0, "pilot", pilot); // say pilot ID on id
57
58 if(sit_anim != "")
60 }
61 else if(sitting == NULL_KEY && pilot != NULL_KEY)
62 {
64 llStopAnimation("recline sit");
65 pilot = NULL_KEY;
66 llMessageLinked(LINK_SET, 0, "pilot", NULL_KEY);
67 }
68 }
69 }
70 run_time_permissions(integer permissions)
71 {
72
74 llStartAnimation(sit_anim);
75
76 }
77
78 link_message(integer sender_num, integer num, string message, key id)
79 {
80
81 if(message == "unsit" )
82 {
84 {
85 llStopAnimation("recline sit");
86 llMessageLinked(LINK_SET, 0, "pilot", NULL_KEY);
87 llUnSit(pilot);
88 }
89 }
90 }
91 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 //
12 //Revisions:
13 // 1/28/2010 initial release
14
15 /// Pilot interface
16 // This script should be in the root prim.
17 // This script does all the listening for the vehicle.
18 // This script sends a message on touch with the string "touch" and the key of the person touching.
19
20 integer channel = 543;
21 integer power;
22
23 key pilot;
24
25 string trim(string input)
26 {
27 return llDumpList2String(llParseString2List(input, [" "], []), " ");
28 }
29
30 default
31 {
33 {
34 llCollisionSound("", 0.0);
35 llListen(channel,"","","");
36
37 power = FALSE;
38 pilot = NULL_KEY;
39 }
40
41 on_rez(integer sparam)
42 {
44 }
45
47 {
49 }
50
51 listen(integer channel, string name, key id, string message)
52 {
53 message = trim(message);
54 message = llToLower(message);
55 if(message == "start" && !power )
56 {
57 power = TRUE;
58 llWhisper(0, "/me Online.");
60 llMessageLinked(LINK_SET, 0, "start", NULL_KEY);
61 }
62 else if(message == "stop" && power)
63 {
64 power = FALSE;
65 llWhisper(0, "/me Powering Down");
68
69 } else if(message == "displayon") {
70 llMessageLinked(LINK_SET, 0, "display on", NULL_KEY);
71 } else if(message == "displayoff") {
72 llMessageLinked(LINK_SET, 0, "display off", NULL_KEY);
73 } else if(message == "unsit" ) {
74 llMessageLinked(LINK_SET, 0, "unsit", NULL_KEY);
75 } else if(message == "help") {
76 llGiveInventory(id, "Help");
77 } else if(llStringLength(message) == 1 && (string)((integer)message) == message) {
78 llMessageLinked(LINK_SET, (integer)message, "set throttle", NULL_KEY);
79 }
80 else if(message == "demo")
81 {
82
83 llSay(0,"DEMO START");
84
85 list demos;
86 demos += "cannon-on";
87 demos += "gun-aim";
88 demos += "fire";
89 demos += "bullet";
90 demos += "fire-laser";
91 demos += "gun-stop";
92 demos += "cannon-off";
93 demos += "bomb";
94 demos += "start";
95 demos += "display on";
96 demos += "throttle";
97 demos += "afterburner";
98 demos += "afterburneroff";
99 demos += "on";
100 demos += "stop";
101 demos += "off";
102 demos += "unsit";
103
104 integer i;
105 integer max = llGetListLength(demos);
106 for (i = 0; i < max; i++)
107 {
108 llSay(0,llList2String(demos,i));
110 llSleep(5.0);
111
112 }
113 llSay(0,"DEMO COMPLETED");
114 }
115 }
116
117 link_message(integer sender, integer num, string str, key id)
118 {
119 if(str == "pilot" && id == NULL_KEY)
120 {
121 pilot = NULL_KEY;
122 power = FALSE;
123 }
124 else if(str == "pilot" && id != NULL_KEY)
125 {
126 pilot = id;
127 power = TRUE;
128 }
129 }
130 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // Bullet rez 1 of 4
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15 key gunnerId = NULL_KEY;
16
17 string bullet = "bullet";
18 float bullet_speed = 100.0;
19 integer fire = FALSE;
20
21 key sound_full = "e6b53731-58b2-9a5a-aafa-9a01ef21c1b8";
22 key sound_leadout = "05100d06-bf41-785b-1747-6f476f6288b8";
23
24 default
25 {
27 {
28 //llSetLocalRot(<0.00000, 0.70711, 0.00000, 0.70711>);
29 }
30
31 link_message(integer sender_num, integer num, string str, key id)
32 {
33 if(str == "fire")
34 {
35 llResetOtherScript("bullet_rez_1");
36 llResetOtherScript("bullet_rez_2");
37 llResetOtherScript("bullet_rez_3");
38 llResetOtherScript("bullet_rez_4");
39 llTriggerSound("05100d06-bf41-785b-1747-6f476f6288b8", 1.0);
40
41 llSetScriptState("bullet_rez_1", TRUE);
42 llSetScriptState("bullet_rez_2", TRUE);
43 llSetScriptState("bullet_rez_3", TRUE);
44 llSetScriptState("bullet_rez_4", TRUE);
46
47 }
48 else
49 {
50 llSetScriptState("bullet_rez_1", FALSE);
51 llSetScriptState("bullet_rez_2", FALSE);
52 llSetScriptState("bullet_rez_3", FALSE);
53 llSetScriptState("bullet_rez_4", FALSE);
54
55
56 }
57
58 }
59
60
61
62 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // blade strike sound
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16
17 default
18 {
19 on_rez(integer sparam)
20 {
22 }
23
24 link_message(integer sender, integer num, string str, key id) {
25 if(str == "start") {
26 llSetTimerEvent(0.0);
27 llTriggerSound("cdf81596-e724-7000-5d81-86ce1ae6998d", 1.0);
28 llTriggerSound("cada5d30-d696-06e7-eb67-2778a640e8ef", 1.0);
29 llSleep(9.30);
30 llTriggerSound("8ba0f2ae-b0e0-56cc-90fc-c45526933bae", 1.0);
31 // llTriggerSound("cdf81596-e724-7000-5d81-86ce1ae6998d", 1.0);
32
33 llSetTimerEvent(0.01);
34 } else if(str == "stop") {
35 llSetTimerEvent(0.0);
37 llTriggerSound("4689d0f2-d613-0d43-08e6-e0636ab9fa6a", 1.0);
38 llTriggerSound("96ecbe0c-5050-da0b-8899-44751dc81ac3", 1.0);
40 }
41 }
42
43 timer()
44 {
45 llLoopSound("ed7cb5e1-54d7-5578-7770-34f43a201c6f", 1.0);
46 llSetTimerEvent(0.0);
47 }
48 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 
3 //tail blade run
4
5 default
6 {
7 link_message(integer from, integer int, string txt, key id)
8 {
9 if(txt == "on")
10 {
12 // llLoopSound("f46d98b3-a812-0db8-a6d5-4943f1f7c1a3",1);
13 llSetTexture("helibladesmove" , ALL_SIDES);
14 llSetTexture("heliblades", 1);
15 }
16 if(txt == "off")
17 {
18 llSetTexture("heliblades" , ALL_SIDES);
19 llSetTextureAnim(FALSE, ALL_SIDES, 1, 1, 0, PI, 10);
21 llSetTexture("helibladesmove", 1);
22 }
23 }
24 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // aimer 1 of 3
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16
17
18 default
19 {
20 link_message(integer from, integer int, string txt, key id)
21 {
22 if(txt == "on")
23 {
25 // llLoopSound("f46d98b3-a812-0db8-a6d5-4943f1f7c1a3",1);
26 llSetTexture("helibladesmove" , ALL_SIDES);
27 llSetTexture("heliblades", 1);
28 }
29 if(txt == "off")
30 {
31 llSetTexture("heliblades" , ALL_SIDES);
32 llSetTextureAnim(FALSE, ALL_SIDES, 1, 1, 0, PI, 10);
34 llSetTexture("helibladesmove", 1);
35 }
36 }
37 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 //
12 //Revisions:
13 // 1/28/2010 initial release
14
15
16 integer _debug = 0;
17
18 integer ShoutChannel = 5;
19
20 integer falling = 0; // flag to let us know in final state we are falling in free-fall
21
22 // notecard readers
23 key RequestStops;
24 key GetIndexLines;
25
26 // The database read from the note card
27 list Line = [];
28 list lCoordinate = [];
29 list lDescriptions = [];
30 list lSounds = [];
31 list lCommands = [];
32 list lLinks = [];
33
34 integer IndexLines;
35 integer i = 0;
36 integer gCurrentRecord = 0; // the current record in the notecard
37
38 integer locationLength;
39 integer InitPerCent; // how far we have read in the notecard
40 integer timeout = 0; // global timeout.. if the pysicas gets hosed from running into a solid object, this takes over and moves us no-physically.
41
42
43 vector TargetLocation;
44
45
46 float INTERVAL = .20; // seconds to move
47 float DAMPING = .1; // .3
48
49 string SpeakThis; // what is to be said
50 string PlayThis; // what is to be said
51 string ChatThis; // what is to be said
52 string LinkThis; // what is to be said
53
54 // Particle Script 0.5
55 // Created by Ama Omega
56 // 3-26-2004
57
58 integer keystate = 0 ;
59
60 // Life in seconds for the system to make particles
61
62
63 integer flags;
64 list sys;
65
66
67 Look( vector target)
68 {
69 float mass = llGetMass()/2;
70 float damp = mass/5;
71 llLookAt(target, mass, damp); // 2,1, the damp could be smaller
72
73 }
74 // see if the pointer is past tghe end of memory
75 integer EndCard()
76 {
77 return gCurrentRecord > (llGetListLength(lCoordinate) - 1);
78 }
79
80 // remove white space at begiinign and end
81 string trim(string input)
82 {
83 //return llDumpList2String(llParseString2List(input, [" "], []), " ");
84 return llStringTrim( input, STRING_TRIM );
85 }
86
87 // fetch next notecard entry
88 GetNextRecord()
89 {
90 gCurrentRecord++;
91 TargetLocation = (vector) llList2String(lCoordinate, gCurrentRecord);
92 if(_debug) llOwnerSay("Moving: " + (string) TargetLocation);
93 }
94
95 updateParticles()
96 {
97 // Mask Flags - set to TRUE to enable
98 integer glow = FALSE; // Make the particles glow
99 integer bounce = FALSE; // Make particles bounce on Z plane of object
100 integer interpColor = TRUE; // Go from start to end color
101 integer interpSize = TRUE; // Go from start to end size
102 integer wind = TRUE; // Particles effected by wind
103 integer followSource = FALSE; // Particles follow the source
104 integer followVel = FALSE; // Particles turn to velocity direction
105
106 // Choose a pattern from the following:
107 // PSYS_SRC_PATTERN_EXPLODE
108 // PSYS_SRC_PATTERN_DROP
109 // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
110 // PSYS_SRC_PATTERN_ANGLE_CONE
111 // PSYS_SRC_PATTERN_ANGLE
112 integer pattern = PSYS_SRC_PATTERN_EXPLODE;
113
114
115 key target = "";
116
117 // Particle paramaters
118 float age = 5; // Life of each particle
119 float maxSpeed = 1; // Max speed each particle is spit out at
120 float minSpeed = 0.8; // Min speed each particle is spit out at
121 string texture = "4f714019-c1cf-6b16-994f-44b217022f1a"; // Texture used for particles, default used if blank
122 float startAlpha = 0.8; // Start alpha (transparency) value
123 float endAlpha = 0.0; // End alpha (transparency) value
124 vector startColor = <0.5,0.5,0.5>; // Start color of particles <R,G,B>
125 vector endColor = <0,0,0>; // End color of particles <R,G,B> (if interpColor == TRUE)
126 vector startSize = <1.01,1.01,5.0>; // Start size of particles
127 vector endSize = <5.0,5.0,10.0>; // End size of particles (if interpSize == TRUE)
128 vector push = <.2,0,3>; // Force pushed on particles
129
130 // System paramaters
131 float rate = 1; // How fast (rate) to emit particles
132 float radius = 0.0; // Radius to emit particles for BURST pattern
133 integer count = 40; // How many particles to emit per BURST
134 float outerAngle = 0; // Outer angle for all ANGLE patterns
135 float innerAngle = 0.1; // Inner angle for all ANGLE patterns
136 vector omega = <0,0,0>; // Rotation of ANGLE patterns around the source
137 float life = 0;
138
139 flags = 0;
140
141 if(glow) flags = flags | PSYS_PART_EMISSIVE_MASK;
142 if(bounce) flags = flags | PSYS_PART_BOUNCE_MASK;
143 if(interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
144 if(interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
145 if(wind) flags = flags | PSYS_PART_WIND_MASK;
146 if(followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
147 if(followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
148 if(target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;
149 sys = [ PSYS_PART_MAX_AGE,age,
150 PSYS_PART_FLAGS,flags,
151 PSYS_PART_START_COLOR, startColor,
152 PSYS_PART_END_COLOR, endColor,
153 PSYS_PART_START_SCALE,startSize,
154 PSYS_PART_END_SCALE,endSize,
155 PSYS_SRC_PATTERN, pattern,
157 PSYS_SRC_ACCEL, push,
163 PSYS_SRC_INNERANGLE,innerAngle,
164 PSYS_SRC_OUTERANGLE,outerAngle,
165 PSYS_SRC_OMEGA, omega,
166 PSYS_SRC_MAX_AGE, life,
167 PSYS_SRC_TEXTURE, texture,
168 PSYS_PART_START_ALPHA, startAlpha,
169 PSYS_PART_END_ALPHA, endAlpha
170 ];
171
173 }
174
175 DoEffects()
176 {
177
178 SpeakThis = llList2String(lDescriptions, gCurrentRecord);
179 PlayThis = llList2String(lSounds, gCurrentRecord);
180 ChatThis = llList2String(lCommands, gCurrentRecord);
181 LinkThis = llList2String(lLinks, gCurrentRecord);
182
183
184 if(llStringLength(SpeakThis) > 1)
185 llSay(0,SpeakThis);
186
187 if(llStringLength(PlayThis) > 1)
188 llPlaySound(PlayThis,1.0);
189
190 if(llStringLength(ChatThis) > 1)
191 {
192 if(_debug) llWhisper(0,"Shouting on channel " + (string) ShoutChannel + " the message:" + LinkThis);
193 llShout(ShoutChannel,"Shout message:" + ChatThis);
194 }
195
196 if(llStringLength(LinkThis) > 1)
197 {
198 if(_debug) llWhisper(0,"Link message:" + LinkThis);
200 }
201
202 }
203
204 string Getline(list Input, integer line)
205 {
206
207 return trim(llList2String(Input, line));
208 }
209
210
211
212 default_cam()
213 {
214 if(_debug) llOwnerSay("default_cam"); // say function name for debugging
215 llClearCameraParams(); // reset camera to default
216 }
217
218
219
220 driving_cam()
221 {
222
223
224 llOwnerSay("driving_cam"); // say function name for debugging
225 default_cam();
226
228 CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive
229 CAMERA_BEHINDNESS_ANGLE, 45.0, // (0 to 180) degrees
230 CAMERA_BEHINDNESS_LAG, 0.5, // (0 to 3) seconds
231 CAMERA_DISTANCE, 10.0, // ( 0.5 to 10) meters
232 //CAMERA_FOCUS, <0.0,0.0,5.0>, // region relative position
233 CAMERA_FOCUS_LAG, 1.0 , // (0 to 3) seconds
234 CAMERA_FOCUS_LOCKED, FALSE, // (TRUE or FALSE)
235 CAMERA_FOCUS_THRESHOLD, 0.0, // (0 to 4) meters
236 PITCH" title="View Definition" class="tooltip">CAMERA_PITCH, 20.0, // (-45 to 80) degrees
237 //CAMERA_POSITION, <0.0,0.0,0.0>, // region relative position
238 CAMERA_POSITION_LAG, 0.1, // (0 to 3) seconds
239 CAMERA_POSITION_LOCKED, FALSE, // (TRUE or FALSE)
240 CAMERA_POSITION_THRESHOLD, 0.0, // (0 to 4) meters
241 CAMERA_FOCUS_OFFSET, <00.0,0.0,10.0> // <-10,-10,-10> to <10,10,10> meters
242 ]);
243 }
244
245
246
247 spin_cam()
248 {
249
250 if(_debug) llOwnerSay("spin_cam"); // say function name for debugging
252 CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive
253 CAMERA_BEHINDNESS_ANGLE, 180.0, // (0 to 180) degrees
254 CAMERA_BEHINDNESS_LAG, 0.5, // (0 to 3) seconds
255 //CAMERA_DISTANCE, 10.0, // ( 0.5 to 10) meters
256 //CAMERA_FOCUS, <0.0,0.0,5.0>, // region relative position
257 CAMERA_FOCUS_LAG, 0.05 , // (0 to 3) seconds
258 CAMERA_FOCUS_LOCKED, FALSE, // (TRUE or FALSE)
259 CAMERA_FOCUS_THRESHOLD, 0.0, // (0 to 4) meters
260 PITCH" title="View Definition" class="tooltip">CAMERA_PITCH, 30.0, // (-45 to 80) degrees
261 //CAMERA_POSITION, <0.0,0.0,0.0>, // region relative position
262 CAMERA_POSITION_LAG, 0.0, // (0 to 3) seconds
263 CAMERA_POSITION_LOCKED, FALSE, // (TRUE or FALSE)
264 CAMERA_POSITION_THRESHOLD, 0.0, // (0 to 4) meters
265 CAMERA_FOCUS_OFFSET, <0.0,0.0,0.0> // <-10,-10,-10> to <10,10,10> meters
266 ]);
267
268 float i;
269 vector camera_position;
270 for (i=0; i< TWO_PI; i+=.05)
271 {
272 camera_position = llGetPos() + <0.0, 10.0, 0.0> * llEuler2Rot(<0.0, 0.0, i>);
273 llSetCameraParams([CAMERA_POSITION, camera_position]);
274 }
275 default_cam();
276 }
277
278
279 ////////////////////
280 default
281 {
282 on_rez(integer param)
283 {
285 }
286 changed( integer change )
287 {
288 if(change & CHANGED_INVENTORY)
289 {
291 }
292 }
293
295 {
297 llSitTarget(ZERO_VECTOR,ZERO_ROTATION); // remove the sit, the pilot seat takes care of that
299
302
305 RequestStops = llGetNumberOfNotecardLines("Initialize");
306 GetIndexLines = llGetNotecardLine("Initialize",0);
307
308 llSay(0, "Tour controller is initializing. Please wait.");
309
310 if(llAvatarOnSitTarget() != NULL_KEY) // if someone is sitting
311 llUnSit(llAvatarOnSitTarget()); // unsit him
312 }
313
314 dataserver(key queryid, string data)
315 {
316 if(queryid == RequestStops)
317 {
318 IndexLines = (integer) data;
319 }
320
321 if(queryid == GetIndexLines)
322 {
323 if(data != EOF)
324 {
325 queryid = llGetNotecardLine("Initialize", i);
326 Line = (llParseString2List(data, ["|"], []));
327 // if(_debug ) llOwnerSay("Line = " + llDumpList2String(Line,":"));
328 //string sComment = Getline(Line,0);
329 float X = (float)Getline(Line,1);
330 float Y = (float)Getline(Line,2);
331 float Z = (float)Getline(Line,3);
332 string Msg = Getline(Line,4);
333 string sUUID = Getline(Line,5);
334 string sCommand = Getline(Line,6);
335 string sLink = Getline(Line,7);
336
337 vector TempLocation;
338
339 TempLocation.x = X;
340 TempLocation.y = Y;
341 TempLocation.z = Z;
342
343 lCoordinate = lCoordinate + [TempLocation];
344 lDescriptions = lDescriptions + [Msg];
345 lSounds += [sUUID];
346 lCommands += [sCommand];
347 lLinks += [sLink];
348
349 locationLength = (llGetListLength(lCoordinate));
350 InitPerCent = (integer) llRound(((float) locationLength / (float) IndexLines) * 100);
351 llSetText("Initializing... \n" + (string) InitPerCent + "%" , <1,1,1>, 1.0);
352 if(InitPerCent == 100)
353 {
354 state Paused;
355 }
356 i++;
357 }
358 GetIndexLines = llGetNotecardLine("Initialize",i);
359 //if(_debug ) llOwnerSay("Got " + (string) i);
360 }
361 }
362
363 touch_start(integer total_number)
364 {
365 integer check = llGetListLength(lCoordinate);
366
367 if(_debug) llOwnerSay("List is " + (string) check + " destinations long");
368
369 if(check >= IndexLines)
370 state Paused;
371
372 if(check < IndexLines)
373 llSay(0, "Waiting for the tour pilot, please wait a moment...");
374 }
375
377 {
378 llSetText("", <1,1,1>, 1.0);
379
380 if(_debug)
381 llOwnerSay("First Target Location = " + (string) TargetLocation);
382
383 }
384 }
385
386
387 state Paused
388 {
390 {
391 llSay(0,"Ready for the next passenger.");
392 }
393
394 link_message(integer sender, integer num, string str, key id)
395 {
396 if(str =="pilot" and key != NULL_KEY)
397 {
398 llTriggerSound("7Clearedfortakeoff",1.0);
399 llSleep(3.0); // time for it to start playing cause next line gets loud!
402 llMessageLinked(LINK_SET, (integer) 100, "throttle", NULL_KEY);
403 llSleep(10.0);
404
405 llMessageLinked(LINK_SET,0,"displayon",NULL_KEY);
406 llSleep(5.0);
407
408 TargetLocation = (vector) llList2String(lCoordinate, 0); // Look at 0th vector
409 state MoveToTarget;
410 }
411 }
412 }
413
414
415
416
417 state MoveToTarget
418 {
420 {
421 if(_debug) llOwnerSay("State MoveToTarget entered, is pointing to target " + (string) TargetLocation );
423
424 llSetTimerEvent(INTERVAL);
425 Look(TargetLocation);
426
427 }
428
429
430 timer()
431 {
432 timeout = timeout + 1;
433 if(timeout > 60/INTERVAL ) // Time Out to contingency in one minute, if we cannot get ther by then, we go non-physical
434 {
435 llOwnerSay("Copter is stuck at " + (string) llGetPos());
436 state end;
437 }
438 if(llVecDist(TargetLocation, <0,0,0>) < 1)
439 {
440 llOwnerSay("wtf? Copter is headed for <0,0,0>!");
441 state end;
442 }
443
444 float x = llVecMag(llGetPos() - TargetLocation);
445
446 if(_debug) llSetText("Timeout... \n" + (string) timeout + "\n" + (string) x, <1,1,1>, 1.0);
447
448 vector vPos = llGetPos();
449 vector vMoveBig = TargetLocation - vPos;
450 float fDistance = llVecMag(vMoveBig);
451 if(fDistance > 10)// distance is greater than llMoveToTarget can handle, so just 10m toward destination
452 {
453 vector vNewPos = vPos + llVecNorm(vMoveBig)*1;
454 llMoveToTarget(vNewPos,DAMPING);
455 }
456 else
457 {
458 llMoveToTarget(TargetLocation,DAMPING);
459 if(_debug) llOwnerSay("At destination: " + (string) llGetPos());
460 DoEffects();
461 GetNextRecord();
462 if(EndCard())
463 state end;
464
465 Look(TargetLocation); // Look at target
466 }
467 }
468
470 {
471
472
475
476 timeout = 0;
477 }
478
479 }
480
481
482 state setposition //contingency
483 {
485 {
487 llSetTimerEvent(INTERVAL);
488 }
489
490 changed( integer change )
491 {
492 if(change & CHANGED_INVENTORY)
493 {
495 }
496 }
497
498 timer()
499 {
500 if(llVecMag(llGetPos() - TargetLocation) > .49999)
501 {
502 if(_debug ) llOwnerSay("setposition llLookAt: " + (string) TargetLocation);
503
504 llSetPos((llVecNorm(TargetLocation - llGetPos()) * 0.5) + llGetPos());
505 Look(TargetLocation); // Look at targe
506 }
507
508 if(llVecMag(llGetPos() - TargetLocation) < .49999)
509 {
510 if(_debug)
511 llOwnerSay("At location: " + (string) llGetPos());
513 GetNextRecord();
514 if(EndCard())
515 state end;
516
517 }
518 }
520 {
522 }
523
524 }
525
526 state end
527 {
529 {
530
531 updateParticles(); // smoke on
532 spin_cam();
533
534 if(_debug) llOwnerSay("State MoveToTarget entered, is pointing to target " + (string) TargetLocation );
535
536 // jerk the copter around by pointing nose down at 45 degree angle
537 vector mypos = llGetPos();
538
539 mypos.z -=10;
540 mypos.y -=10;
541 mypos.x -=10;
542
543 Look(mypos);
544 timeout = 0;
545
546 llSetTimerEvent(INTERVAL);
547 }
548
549 timer()
550 {
551 timeout = timeout + 1;
552
553 if(llVecMag(llGetPos() - TargetLocation) > .49999)
554 {
555 if(timeout > 30/INTERVAL) // Time Out to contingency
556 {
558 spin_cam();
559 if(llAvatarOnSitTarget() != NULL_KEY) // if someone is sitting
560 llUnSit(llAvatarOnSitTarget()); // unsit him
561
563 }
564 llMoveToTarget((llVecNorm(TargetLocation - llGetPos()) * 1) + llGetPos(), DAMPING);
565 }
566
567 if(llVecMag(llGetPos() - TargetLocation) < .49999)
568 {
569 falling ++;
570 llMessageLinked(LINK_SET,0,"bomb",NULL_KEY); // bombs away
571 }
572
573 if(falling)
574 {
577 llSetBuoyancy(0.8); // blades are spinning, so we float a bit
578
579 if(timeout % 51 == 0) // 10 seconds
580 {
581 spin_cam();
584 }
585
586 if(timeout > 100) // 20 seconds
587 {
588
591 spin_cam();
592 if(llAvatarOnSitTarget() != NULL_KEY) // if someone is sitting
593 llUnSit(llAvatarOnSitTarget()); // unsit him
594
596 llSetBuoyancy(0.8); // blades are spinning
597 }
598 }
599 }
600 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // ______ _ ______ _ _
3 // | ___| | | | ___| | | (_)
4 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
5 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
6 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
7 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
8 //
9 // fred@mitsi.com
10 // tour copter script
11 // Turret seat
12 //
13 //Revisions:
14 // 1/28/2010 initial release
15
16
17 key sitting = NULL_KEY;
18
19 default
20 {
22 {
23
24 }
25
26 changed(integer change)
27 {
28 key sitter = llAvatarOnSitTarget();
29
30 if(sitter != NULL_KEY && sitting == NULL_KEY)
31 {
32 // Start tracking the avi for turret gun movement
33 llMessageLinked(LINK_SET, 255, "gun-aim", sitter);
35 sitting = sitter;
36 }
37 else if(sitter == NULL_KEY && sitting != NULL_KEY)
38 {
39 llMessageLinked(LINK_SET, 255, "gun-stop", NULL_KEY);
41 sitting = NULL_KEY;
42 }
43 }
44
46 {
48 {
50 }
51 else
52 {
54 }
55 }
56
57 control(key id, integer level, integer edge)
58 {
60 {
61 if(llGetTime() > 0.6) {
62 llMessageLinked(LINK_ALL_CHILDREN, 255, "bullet", id);
64 }
65 }
66 }
67 }

TourCopter

Tour

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // useless, delete this crap
3
4 // Voice - whispers the ID number on channel 0 !!!
5
6
7 default
8 {
9 link_message(integer sender, integer num, string str, key id)
10 {
11 if(str == "llWhisper") {
12 llWhisper(0, id);
13 }
14 }
15 }

TourCopter

Notecard

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 // | ___| | | | ___| | | (_)
3 // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
4 // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
5 // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
6 // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
7 //
8 // fred@mitsi.com
9 // tour copter notecard
10
11 Revisions:
12 1/28/2010 initial notes
13
14
15 Copter listens on channel = 543 for commands
16
17 chat commands supported:
18 /543 demo - goes thru each possible command in the linked command set
19 /543 start - does link messages "on" for blades and "start" for movement
20 /543 stop - does link messages "off' and "stop" stop and off to power off
21 /543 displayon - turns on display
22 /543 displayoff - turns off HUD display
23 /543 unsit - sends link message "unsit" to unseat the avatar
24 /543 help - gives notecard "Help"
25 /543 0-9 = sets throttle on HUD
26
27 Notecard:
28
29 Notecard format is "|" delimited
30
31 Syntax:
32
33 FIELD1|X|Z|Z|CHAT|SOUNDUUID|SHOUT|LINK
34
35 A field must contain at least 2 chars, this lets you put a number or character such as space or X in any field for prettiness
36
37 fields:
38 FIELD1 - Junk, typically the name from chat copy and paste. can be used as a comment
39 X|Y|Z - the coordinates to Go to for this waypoint
40 CHAT - spoken into channel 0 with llSay()
41 SOUNDUUID - may be a sound name embedded in the root prim, or a UUID from your inventory
42 SHOUT - message shouted on channel 5
43 LINK - Linkmessage sent with num 0 to all prims
44
45
46 Typical notecard:
47
48 221|183|45|The pressurized dome contains many free items, including the the Universal translator.|11pressureizeddome|X|display on
49 151|168|35|Flight one niner, this is base. You are now entering the exclusion zone. It has been reported that weapons are missing from the base.|8enteringthezone|X|LINK
50 109|128|51|The Unobtanium allows these rocks and mountains to repel the planet's magnetic field. You can climb them from the ropes and walkways|9unobtaniumore|X|LINK
51 202|129|89|Our secret control room is inside this large floating rock. We will land there at the end of the tour of Pandora.|12Secretcontrolroom|X|LINK
52 211|77|95|Flight one niner, this is base. We have reports that armed Na'vi have been seen in your area.|10Navihavebeenseen|X|fire_laser
53 114|114|45|We are taking fire! Mayday! We've been hit by rocket fire! You must get back to the control room without me! Mayday! MayDay!|13 Weve been hit|Explode|stop
54
55
56 Touching the copter send Link message of "touched" with id of toucher.
57
58 Link Message summary:
59
60 pilot, id = sends key of avatar that is seated - caused by sitting, NULL KEY sent when unsitting
61 sitting sends this message
62 unsitting sends this message with NULL_KEY
63
64
65 Movement messages
66 start - spool up and go to 1st waypoint. Sound takes 9.3 seconds to play, plus lag. endless loop sound
67 stop - explodes, camera spins and ejects passenger more explosions and smoke and bombs drop
68
69 Blade control
70 on - full speed Heli totor blades - takes 12 seconds to come up to speed, not counting Sound fetch lag
71 half - half speed blades, instantly
72 off - stop blades - takes 12 seconds to stop
73
74 HUD Controls
75 displayon - brings up HUD
76 displayoff - take away HUD
77 afterburneron - text appears on HUD only
78 afterburneroff - text appears on HUD only
79
80 Passenger
81 unsit - eject passenger
82
83 Weapons
84 fire - rezzes a burst of bullets
85 fire1 - seems to just change the texture on the cannon
86 bomb = bomb is rezzed
87 pod-on -flashing light and sirens and particles from bomb pods
88 pod-off - cannon is off
89 gun-aim - aims gun at any avatar within 20 meters except the one who sat on the copter
90 gun-stop - parks gun downward
91
92
93
94
95

TourCopter

Init notecard

Category: Tour
By : Ferd Frederix
Created: 2013-09-06 Edited: 2013-09-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 Line 1|221|183|45|The pressurized dome contains many free items, including the the Universal translator.|11pressureizeddome|X|display on
2 Line 2|151|168|35|Flight one niner, this is base. You are now entering the exclusion zone. It has been reported that weapons are missing from the base.|8enteringthezone|X|LINK
3 Line 3|109|128|51|The Unobtanium allows these rocks and mountains to repel the planet's magnetic field. You can climb them from the ropes and walkways|9unobtaniumore|X|LINK
4 Line 4|202|129|89|Our secret control room is inside this large floating rock. We will land there at the end of the tour of Pandora.|12Secretcontrolroom|X|LINK
5 Line 5|211|77|95|Flight one niner, this is base. We have reports that armed Na'vi have been seen in your area.|10Navihavebeenseen|X|fire_laser
6 Line 6|114|114|45|We are taking fire! Mayday! We've been hit by rocket fire! You must get back to the control room without me! Mayday! MayDay!|13 Weve been hit|Explode|stop

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