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
Tip Jar TipJar  

TipJar

TipJar

Category: Tip Jar
By : Encog Dod
Created: 2010-01-10 Edited: 2010-01-10
Worlds: Second Life

the Zip file

Download all files for TipJar
Contents are in zip format, with .LSL (text) source code and LSLEdit (text + Solution) formats.
Get file # 1. TipJar_1.lsl
1 // From the book:
2 //
3 // Scripting Recipes for Second Life
4 // by Jeff Heaton (Encog Dod in SL)
5 // ISBN: 160439000
6 X// Copyright 2007 by Heaton Research, Inc.
7 //
8 // This script may be freely copied and modified so long as this header
9 // remains unmodified.
10 //
11 // For more information about this book visit the following web site:
12 //
13 // http://www.heatonresearch.com/articles/series/22/
14
15 integer CHANNEL = 55;
16 integer total;
17
18 generalParticleEmitterOn()
19 {
22 //| PSYS_PART_BOUNCE_MASK //Bounce on object's z-axis
23 //| PSYS_PART_WIND_MASK //Particles are moved by wind
24 | PSYS_PART_INTERP_COLOR_MASK //Colors fade from start to end
25 | PSYS_PART_INTERP_SCALE_MASK //Scale fades from beginning to end
26 | PSYS_PART_FOLLOW_SRC_MASK //Particles follow the emitter
27 //| PSYS_PART_FOLLOW_VELOCITY_MASK//Particles are created at the velocity of the emitter
28 //| PSYS_PART_TARGET_POS_MASK //Particles follow the target
29 | PSYS_PART_EMISSIVE_MASK //Particles will glow
30 //| PSYS_PART_TARGET_LINEAR_MASK//Undocumented--Sends particles in straight line?
31 ,
32
33 //PSYS_SRC_TARGET_KEY , NULL_KEY,//The particles will head towards the specified key
34 //Select one of the following for a pattern:
35 //PSYS_SRC_PATTERN_DROP Particles start at emitter with no velocity
36 //PSYS_SRC_PATTERN_EXPLODE Particles explode from the emitter
37 //PSYS_SRC_PATTERN_ANGLE Particles are emitted in a 2-D angle
38 //PSYS_SRC_PATTERN_ANGLE_CONE Particles are emitted in a 3-D cone
39 //PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY Particles are emitted everywhere except for a 3-D cone
40
42
43 ,PSYS_SRC_TEXTURE, "" //UUID of the desired particle texture, or inventory name
44 ,PSYS_SRC_MAX_AGE, 0.0 //Time, in seconds, for particles to be emitted. 0 = forever
45 ,PSYS_PART_MAX_AGE, 10.0 //Lifetime, in seconds, that a particle lasts
46 ,PSYS_SRC_BURST_RATE, 1.0 //How long, in seconds, between each emission
47 ,PSYS_SRC_BURST_PART_COUNT, 1 //Number of particles per emission
48 ,PSYS_SRC_BURST_RADIUS, 10.0 //Radius of emission
49 ,PSYS_SRC_BURST_SPEED_MIN, 0.001 //Minimum speed of an emitted particle
50 ,PSYS_SRC_BURST_SPEED_MAX, 0.001 //Maximum speed of an emitted particle
51 ,PSYS_SRC_ACCEL, <0,0,0> //Acceleration of particles each second
52 ,PSYS_PART_START_COLOR, <1,1,1> //Starting RGB color
53 ,PSYS_PART_END_COLOR, <1,1,1> //Ending RGB color, if INTERP_COLOR_MASK is on
54 ,PSYS_PART_START_ALPHA, 1.0 //Starting transparency, 1 is opaque, 0 is transparent.
55 ,PSYS_PART_END_ALPHA, 1.0 //Ending transparency
56 ,PSYS_PART_START_SCALE, <.25,.25,.25> //Starting particle size
57 ,PSYS_PART_END_SCALE, <.25,.25,.25> //Ending particle size, if INTERP_SCALE_MASK is on
58 ,PSYS_SRC_ANGLE_BEGIN, 1.54 //Inner angle for ANGLE patterns
59 ,PSYS_SRC_ANGLE_END, 1.55 //Outer angle for ANGLE patterns
60 ,PSYS_SRC_OMEGA, <0.0,0.0,0.0> //Rotation of ANGLE patterns, similar to llTargetOmega()
61 ]);
62 }
63
64 generalParticleEmitterOff()
65 {
67 }
68
69 updateText()
70 {
71 string str = llKey2Name(llGetOwner()) + "'s Tip Jar\n";
72 if( total>0 )
73 str+= (string)total + " donated so far.";
74 else
75 str+= "Empty";
76
77 llSetText(str, <0,1,0>, 1);
78 }
79
80 default
81 {
83 {
85 }
86
88 {
89 updateText();
90 generalParticleEmitterOn();
91 llListen(CHANNEL, "", llGetOwner(), "");
92 }
93
94 money(key giver, integer amount) {
95 llSay(0, "Thanks for the " + (string)amount + "L$, " + llKey2Name(giver));
96 total+=amount;
97 updateText();
98 }
99
100 touch_start(integer count)
101 {
103 {
104 llDialog(llDetectedKey(0), "Clear total amount?", ["Yes","No"], CHANNEL);
105 }
106 }
107
108 listen(integer channel, string name, key id, string message)
109 {
110 if( message=="Yes" && id==llGetOwner() )
111 {
112 total = 0;
113 updateText();
114 }
115 }
116 }

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