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
Spanker EliteSpankerv4  

EliteSpankerv4

My new Elite Spanker v4.0 came a very ho...

Category: Spanker
By : BigJohn Jade
Created: 2010-01-10 Edited: 2010-01-10
Worlds: Second Life

the Zip file

Download all files for EliteSpankerv4
Contents are in zip format, with .LSL (text) source code and LSLEdit (text + Solution) formats.
Get file # 1. EliteSpankerv4_1.lsl
Get file # 2. EliteSpankerv4_2.lsl
1
2 // By BigJohn Jade
3
4 integer CurrentTempUser2 = 0;
5
6 integer chan;
7
8 list Users2;
9
10 key GetUser;
11
12 float ScanAroundM = 30.0;
13
14 float RepeatScanTime = 0.1;
15
16 integer TurnOn = FALSE;
17
18 integer lH = -213645771;
19 integer lT;
20 integer lT2;
21
22 ET()
23 {
24 llSetTimerEvent(0.0);
25 if(lH == -213645771)
26 lH = llListen(chan,"","","");
27 lT = (integer)llGetTime() + 120;
29 }
30 ET2()
31 {
32 llSetTimerEvent(0.0);
33 TurnOn = TRUE;
34 lT2 = (integer)llGetTime() + 5;
36 }
37
38 integer isUser(string name)
39 {
40 integer i;
41 for (i=0;i<llGetListLength(Users2);i++)
42 {
43 string s = llList2String(Users2,i);
44 if(s==llToLower(name)) return 1;
45 }
46 return 0;
47 }
48 SetupScanner()
49 {
51 llSensorRepeat("","" , AGENT, ScanAroundM, 2*PI, RepeatScanTime);
52 }
53
54 ListUsers2List(integer user1, key id) {
55 integer UserCount2 = llGetListLength(Users2) - 1;
56 CurrentTempUser2 = user1;
57 if(CurrentTempUser2 == -1) {
58 CurrentTempUser2 = UserCount2;
59 } else if(CurrentTempUser2 > UserCount2) {
60 CurrentTempUser2 = 0;
61 }
62 if(Users2 == [])
63 {
64 return;
65 }
66 ET();
67 list Buttons = [];
68 integer RangeSet = (integer)ScanAroundM;
69 string title="\n*** Access Scan Database Manager ***\n*** Scan Range Setting: "+(string)RangeSet+"m *** \n\nUser (" + (string)(CurrentTempUser2 + 1) + " of " + (string)(UserCount2 + 1)+ ")\nName:"+llList2String(Users2,CurrentTempUser2);
70 Buttons+=["<< Prev","Next >>","Add User","Menu","(A)DataB","Exit"];
71 llDialog(id,title,Buttons,chan);
72 return;
73 }
74
75 default
76 {
77 sensor(integer total_number)
78 {
79 integer i;
80 for (i=0;i<total_number;i++)
81 {
82 key person = llDetectedKey(i);
84 key K2N = llToLower(llKey2Name(person));
85 if((isUser(K2N)==0))
86 {
87 Users2 = llListInsertList(Users2,[(string)K2N],llGetListLength(Users2));
88 }
89 }
90 }
91 no_sensor()
92 {
93 llSetTimerEvent(0.0);
95 TurnOn = FALSE;
96 list Buttons = [];
97 string title="\n*** Access Scan Database Manager.\n\nNo one in Range detected!";
98 ET();
99 Buttons+=["Menu","Exit"];
100 llDialog(GetUser,title,Buttons,chan);
101 }
102 listen(integer channel, string name, key id, string message)
103 {
104 if(message == "Add User" && (id == llGetOwner()))
105 {
106 GetUser = id;
107 llMessageLinked(LINK_SET,0,"SET ID",id);
108 llSleep(1);
109 string SetNewAccess = llList2String(Users2,CurrentTempUser2);
110 llMessageLinked(LINK_SET,0,"SCAN ACCESS ADD",SetNewAccess);
111 ListUsers2List(CurrentTempUser2,GetUser);
112 return;
113 }
114 if(message == "Next >>" && (id == llGetOwner()))
115 {
116 GetUser = id;
117 ListUsers2List(CurrentTempUser2 + 1,id);
118 return;
119 }
120 if(message == "<< Prev" && (id == llGetOwner()))
121 {
122 GetUser = id;
123 ListUsers2List(CurrentTempUser2 - 1,id);
124 return;
125 }
126 if(message == "Menu" && (id == llGetOwner()))
127 {
128 GetUser = id;
129 llMessageLinked(LINK_SET,0,"MAIN MENU",GetUser);
130 return;
131 }
132 if(message == "(A)DataB" && (id == llGetOwner()))
133 {
134 GetUser = id;
135 llMessageLinked(LINK_SET,0,"ACCESS DATABASE MENU",GetUser);
136 return;
137 }
138 }
139 link_message(integer sender_num,integer num,string str,key id)
140 {
141 if(str == "START SCAN AROUND FOR ACCESS")
142 {
143 chan = (integer)llFrand(1000) + 1000;
145 lH = -213645771;
146 GetUser = id;
147 Users2 = [];
148 llOwnerSay("Please Wait... Scan Around Database will be done within 5 Secs...");
149 ET2();
150 SetupScanner();
151 }
152 if(str == "GET USER")
153 {
154 GetUser = id;
155 }
156 if(str == "SET SCAN AROUND M")
157 {
158 ScanAroundM = (float)num;
159 }
160 if(str == "RESET WIZARD")
161 {
163 }
164 }
165 timer()
166 {
167 if(llGetTime() > lT2)
168 {
169 if(TurnOn)
170 {
171 TurnOn = FALSE;
173 llSetTimerEvent(0.0);
174 ListUsers2List(CurrentTempUser2,GetUser);
175 }
176 if(llGetTime() > lT)
177 {
178 Users2 = [];
179 llListenRemove(lH);
180 lH = -213645771;
181 llSetTimerEvent(0.0);
182 }
183 }
184 }
185 }

EliteSpankerv4

Part (3). Make new script called Elite.Spanker v4.0 and clear out all the code from new script and add new code from here.

Category: Spanker
By : BigJohn Jade
Created: 2010-01-10 Edited: 2010-01-10
Worlds: Second Life

1 // Elite Spanker v4.0 By BigJohn Jade
2
3 string SoundFile ="475a3e83-6801-49c6-e7ad-d6386b2ecc29";
4
5 string HelpCard = "Elite.Spanker.Help";
6
7 string Anim1express_anger = "express_anger";
8
9 string Anim2expressembarrased = "express_embarrased";
10
11 vector Vector_Color = <1.00000, 1.00000, 1.00000>;
12
13 integer IHavePermission = FALSE;
14 integer GetAttach = FALSE;
15 integer SoundOn = TRUE;
16 integer SexFemale = TRUE;
17 integer AccessMode = FALSE;
18 integer lT;
19 list UserName;
20 string FirstName;
21 float TimeIt = 3.0;
22 integer MaxAccess = 20;
23 integer lT2;
24 integer lA2 = -69;
25 integer lH = -69;
26 integer chan;
27 key GetUser;
28 integer CurrentAccessUser = 0;
29 list Access;
30 string SetRemoveAccess;
31 key GetAccessUser;
32 integer Count;
33
34 integer FindNoteCard(string name)
35 {
36 integer i;
39 return TRUE;
40 return FALSE;
41 }
42 string getParameter(list strings)
43 {
44 integer len = llGetListLength(strings);
45 integer i;
46 string ret;
47 string space= "";
48 for (i=1;i<len;i++)
49 {
50 ret += space + llList2String(strings,i);
51 space=" ";
52 }
53 return ret;
54 }
55 integer CheckAccessList(key id)
56 {
57 integer i;
58 integer List_Count = llGetListLength(Access);
59 for (i=0;i<List_Count; i++ )
60 {
61 if(llGetListLength(Access) == MaxAccess)
62 {
63 list Buttons = [];
64 string title="\n\nAccess List is Full!";
65 Buttons+=["Menu","Exit","(A)DataB"];
66 llDialog(id,title,Buttons,chan);
67 return 1;
68 }
69 }
70 return 0;
71 }
72 integer isAccess(string name)
73 {
74 integer i;
75 for (i=0;i<llGetListLength(Access);i++)
76 {
77 string s = llList2String(Access,i);
78 if(s==llToLower(name)) return 1;
79 }
80 return 0;
81 }
82 DelFromAccessList(key id,string name)
83 {
84 integer i;
85 for (i=0;i<llGetListLength(Access);i++)
86 {
87 string s = llList2String(Access,i);
88 if(s==name)
89 {
90 Access = llDeleteSubList(Access, i, i);
91 list Buttons = [];
92 string title="\n\n"+(string)name + " have been removed from the Access list.";
93 Buttons+=["Menu","Exit","(A)DataB"];
94 llDialog(id,title,Buttons,chan);
95 }
96 }
97 return;
98 }
99 ListAccessList(integer user1, key id) {
100 integer UserCount = llGetListLength(Access) - 1;
101 CurrentAccessUser = user1;
102 if(CurrentAccessUser == -1) {
103 CurrentAccessUser = UserCount;
104 } else if(CurrentAccessUser > UserCount) {
105 CurrentAccessUser = 0;
106 }
107 integer i;
108 if(Access == [])
109 {
110 list Buttons = [];
111 string title="\n\n*** Access Database Manager ***\n\nAccess List is Empty!";
112 Buttons+=["Add","Scan Add","Memory Chk","Menu","Exit"];
113 llDialog(id,title,Buttons,chan);
114 return;
115 }
116 list Buttons = [];
117 Buttons+=["<< Prev","Next >>","Memory Chk","Scan Add","Add","Remove","Menu","Exit"];
118 llDialog(id,title,Buttons,chan);
119 return;
120 }
121 LetsTimeIt()
122 {
123 lT = (integer)llGetTime() + (integer)TimeIt;
125 }
126
127 LetsTimeIt2()
128 {
129 if(lH == -69)
130 lH = llListen(chan,"","","");
131 lT2 = (integer)llGetTime() + 120;
132 }
133
134
135 PlaySoundFile()
136 {
137 if(SoundOn)
138 {
139 float volume = 0.8;
140 llPlaySound(SoundFile, volume);
141 }
142 }
143
144 SetupChannels()
145 {
146 chan = (integer)llFrand(1000) + 1000;
148 lH = -69;
149 llListenRemove(lA2);
150 lA2 = llListen(69,"","","");
151 }
152
153 OwnerMenu(key id)
154 {
155 LetsTimeIt2();
156 list buttons = [];
157 string title = "";
158 if(SoundOn)
159 {
160 title+="\nSound Effects: On";
161 }
162 if(!SoundOn)
163 {
164 title+="\nSound Effects: Off";
165 }
166 if(AccessMode)
167 {
168 title+="\nAccess Mode: On";
169 }
170 if(!AccessMode)
171 {
172 title+="\nAccess Mode: Off";
173 }
174 if(SexFemale)
175 {
176 title+="\nSex: Female";
177 }
178 if(!SexFemale)
179 {
180 title+="\nSex: Male";
181 }
182 buttons+=["Spank","Sound","(A)DataB","Reset","Exit","Counter","Sex","Mode","Help"];
183 llDialog(id,title,buttons,chan);
184 }
185
186 default
187 {
189 {
190 UserName = llParseString2List(llKey2Name(llGetOwner()),[" ","| "," |"," | "],[]);
191 FirstName = llList2String(UserName,0);
192 llSetText("",Vector_Color, 1);
193 SetupChannels();
194 }
195 listen(integer channel, string name, key id, string message)
196 {
197 list strings = llParseString2List(message,[" "],[]);
198 string command = llList2String(strings,0);
199 string par = llToLower(getParameter((strings)));
200
201 if(message == "Menu" && (id == llGetOwner()))
202 {
203 GetAccessUser = id;
204 OwnerMenu(id);
205 return;
206 }
207 if(message == "Next >>" && (id == llGetOwner()))
208 {
209 GetAccessUser = id;
210 ListAccessList(CurrentAccessUser + 1,id);
211 return;
212 }
213 if(message == "<< Prev" && (id == llGetOwner()))
214 {
215 GetAccessUser = id;
216 ListAccessList(CurrentAccessUser - 1,id);
217 return;
218 }
219 if(message == "Help" && (id == llGetOwner()))
220 {
221 GetUser = id;
222 if(FindNoteCard(HelpCard) != TRUE)
223 {
224 llDialog(id,(string)HelpCard + " Missing from the object content.",["Exit"],999);
225 return;
226 }
227 else
228 llGiveInventory(id,HelpCard);
229 return;
230 }
231 if(message == "Counter" && (id == llGetOwner()))
232 {
233 GetUser = id;
234 list Buttons = [];
235 string title="\n***(-Reset Counter-)***";
236 title+="\n\n"+(string)FirstName+ ", your ass has been spanked "+(string)Count+ " times!";
237 Buttons+=["Reset It","Don't","Menu"];
238 llDialog(id,title,Buttons,chan);
239 }
240 if(message == "Reset It" && (id == llGetOwner()))
241 {
242 GetUser = id;
243 Count = 0;
244 llOwnerSay("The Counter has been reset back to 0!");
245 OwnerMenu(id);
246 }
247 if(message == "Don't" && (id == llGetOwner()))
248 {
249 GetUser = id;
250 OwnerMenu(id);
251 }
252 if(message == "Reset" && (id == llGetOwner()))
253 {
254 GetUser = id;
255 list Buttons = [];
256 string title="\n***(-Reset Whole System-)***";
257 title+="\n\nDatabase and all will be reset and script will go back to default settings.";
258 Buttons+=["Yes","No","Menu"];
259 llDialog(id,title,Buttons,chan);
260 }
261 if(message == "Yes" && (id == llGetOwner()))
262 {
263 GetUser = id;
264 llOwnerSay("The system has been reset, you must take off the spanker and add it back on to your av now.");
266 }
267 if(message == "No" && (id == llGetOwner()))
268 {
269 GetUser = id;
270 OwnerMenu(id);
271 }
272 if(message == "Mode" && (id == llGetOwner()))
273 {
274 GetUser = id;
275 if(AccessMode)
276 {
277 AccessMode = FALSE;
278 llOwnerSay("Access Mode is now off!");
279 OwnerMenu(id);
280 return;
281 }
282 if(!AccessMode)
283 {
284 AccessMode = TRUE;
285 llOwnerSay("Access Mode is now on!");
286 OwnerMenu(id);
287 return;
288 }
289 }
290 if(message == "Sound" && (id == llGetOwner()))
291 {
292 GetUser = id;
293 if(SoundOn)
294 {
295 SoundOn = FALSE;
296 llOwnerSay("Sound Effects is now off!");
297 OwnerMenu(id);
298 return;
299 }
300 if(!SoundOn)
301 {
302 SoundOn = TRUE;
303 llOwnerSay("Sound Effects is now on!");
304 OwnerMenu(id);
305 return;
306 }
307 }
308 if(message == "Sex" && (id == llGetOwner()))
309 {
310 GetUser = id;
311 if(SexFemale)
312 {
313 SexFemale = FALSE;
314 llOwnerSay("Sex Set to: Male!");
315 OwnerMenu(id);
316 return;
317 }
318 if(!SexFemale)
319 {
320 SexFemale = TRUE;
321 llOwnerSay("Sex Set to: Female!");
322 OwnerMenu(id);
323 return;
324 }
325 }
326 if(message == "Spank" && (id == llGetOwner()))
327 {
328 GetUser = id;
329 if(SexFemale)
330 {
331 llStartAnimation(Anim2expressembarrased);
332 }
333 else
334 if(!SexFemale)
335 {
336 llStartAnimation(Anim1express_anger);
337 }
338 LetsTimeIt();
339 PlaySoundFile();
340 llSetText("\n\n"+(string)FirstName+" has spanked their own ass!\n\n"+(string)FirstName+"'s ass has been spanked "+(string)Count+" times.",Vector_Color, 1);
341 OwnerMenu(id);
342 return;
343 }
344 if(message == "(A)DataB" && (id == llGetOwner()))
345 {
346 GetAccessUser = id;
347 string Incoming = llToLower(llKey2Name(id));
348 LetsTimeIt2();
349 ListAccessList(CurrentAccessUser,id);
350 return;
351 }
352 if(message == "Memory Chk" && (id == llGetOwner()))
353 {
354 GetAccessUser = id;
355 list Buttons = [];
356 string title ="\n*** Access Database Memory ***\n\nAccess Database bytes available: "+(string)llGetFreeMemory();
357 Buttons+=["Menu","Exit","(A)DataB"];
358 llDialog(id,title,Buttons,chan);
359 return;
360 }
361 if(message == "Scan Add" && (id == llGetOwner()))
362 {
363 GetAccessUser = id;
364 llMessageLinked(LINK_SET,0,"START SCAN AROUND FOR ACCESS",id);
365 return;
366 }
367 if(message == "Remove" && (id == llGetOwner()))
368 {
369 GetAccessUser = id;
370 SetRemoveAccess = llList2String(Access,CurrentAccessUser);
371 DelFromAccessList(id,SetRemoveAccess);
372 return;
373 }
374 if(lA2 != -69 && channel == 69)
375 {
376 llListenRemove(lA2);
377 lA2 = -69;
378 }
379 if(message == "Add" && (id == llGetOwner()))
380 {
381 GetAccessUser = id;
382 lA2 = llListen(22,"","","");
383 list Buttons = [];
384 string title="\n***(-Access Adding-)***\nType in the chat command with, /69 add av name like so.\n\n/69 add bigjohn jade";
385 Buttons+=["Exit","(A)DataB","Menu"];
386 llDialog(id,title,Buttons,chan);
387 return;
388 }
389 if(command == "add" && (id == llGetOwner()))
390 {
391 GetAccessUser = id;
392 if(par =="")
393 {
394 llListenRemove(lA2);
395 return;
396 }
397 else
398 if(CheckAccessList(id) == 1)
399 {
400 llListenRemove(lA2);
401 return;
402 }
403 else
404 if((isAccess(par)>0))
405 {
406 list Buttons = [];
407 string title="\n\nSorry " + (string)par + " was already found in the Access List.";
408 Buttons+=["Menu","Exit","(A)DataB"];
409 llDialog(id,title,Buttons,chan);
410 llListenRemove(lA2);
411 return;
412 }
413 else
414 Access = llListInsertList(Access,[par],llGetListLength(Access));
415 list Buttons = [];
416 string title="\n\nAdd " + (string)par + " to the Access List.";
417 Buttons+=["Menu","Exit","(A)DataB"];
418 llDialog(id,title,Buttons,chan);
419 llListenRemove(lA2);
420 return;
421 }
422 }
423 attach(key id)
424 {
425 if(id == NULL_KEY)
426 {
427 GetAttach = FALSE;
428 return;
429 }
430 else
431 GetAttach = TRUE;
432 SetupChannels();
434 UserName = llParseString2List(llKey2Name(llGetOwner()),[" ","| "," |"," | "],[]);
435 FirstName = llList2String(UserName,0);
436 llOwnerSay("Spanker System is now ready, click the spanker for Owner Menu. (Bytes Free"+" "+(string)llGetFreeMemory()+")");
437 }
438
439 touch_start(integer total_number)
440 {
441 integer TouchTrack;
442 key person = llDetectedKey(TouchTrack);
443 string name = llDetectedName(TouchTrack);
444 string user;
445 if(!GetAttach)
446 {
447 llInstantMessage(person,"I must be attach before you can use me!");
448 return;
449 }
450 else
451 if(person == llGetOwner())
452 {
453 OwnerMenu(llDetectedKey(0));
454 return;
455 }
456 else
457 if(AccessMode)
458 {
459 if((isAccess(name)==0))
460 {
461 llInstantMessage(person,"Sorry but "+(string)FirstName+" has their spanker on access mode, you was not found on the access list!");
462 return;
463 }
464 }
465 LetsTimeIt();
466 PlaySoundFile();
467 if(SexFemale)
468 {
469 llStartAnimation(Anim2expressembarrased);
470 }
471 else
472 if(!SexFemale)
473 {
474 llStartAnimation(Anim1express_anger);
475 }
476 Count++;
477 user+="\n"+llKey2Name(person)+" has spanked that ass!\n\n"+(string)FirstName+"'s ass has been spanked "+(string)Count+" times.";
478 llSetText("\n"+user,Vector_Color, 1);
479 }
480 run_time_permissions(integer permissions)
481 {
482 if(permissions == PERMISSION_TRIGGER_ANIMATION)
483 {
484 IHavePermission = TRUE;
485 }
486 }
487 link_message(integer sender_num,integer num,string str,key id)
488 {
489 if(str == "SET ID")
490 {
491 GetAccessUser = id;
492 }
493 if(str == "MAIN MENU")
494 {
495 GetUser = id;
496 string Incoming3 = llToLower(llKey2Name(id));
497 OwnerMenu(id);
498 }
499 if(str == "ACCESS DATABASE MENU")
500 {
501 SetupChannels();
502 GetAccessUser = id;
503 string Incoming = llToLower(llKey2Name(id));
504 LetsTimeIt2();
505 ListAccessList(CurrentAccessUser,id);
506 return;
507 }
508 if(str == "SCAN ACCESS ADD")
509 {
510 string Incoming = llToLower(id);
511 if((isAccess(Incoming)>0))
512 {
513 llInstantMessage(llGetOwner(),(string)Incoming+ " was already found in the Access list.");
514 return;
515 }
516 else
517 Access = llListInsertList(Access,[Incoming],llGetListLength(Access));
518 llInstantMessage(llGetOwner(),(string)Incoming+ " has been add to the Access list.");
519 return;
520 }
521 if(str == "SET UP ACCESS USERS")
522 {
523 if((isAccess(id)>0))
524 {
525 return;
526 }
527 else
528 Access = llListInsertList(Access,[id],llGetListLength(Access));
529 return;
530 }
531 }
532 timer()
533 {
534 if(llGetTime() > lT)
535 {
536 llSetText("",Vector_Color, 1);
537 llSetTimerEvent(0.0);
538 }
539 if(llGetTime() > lT2)
540 {
542 lH = -69;
543 }
544 }
545 }

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