User:ANSI Soderstrom/Event Scanner CHANGED: Difference between revisions
Jump to navigation
Jump to search
Created page with "== Leave a comment == * [[User_talk:{{PAGENAME}}|My User Talk about this Page]] == Eventscanner for changed() == Find out what is really changing... Attached or loose... <lsl>…" |
|||
| Line 2: | Line 2: | ||
* [[User_talk:{{PAGENAME}}|My User Talk about this Page]] | * [[User_talk:{{PAGENAME}}|My User Talk about this Page]] | ||
== Eventscanner | == Eventscanner: changed() == | ||
Find out what is really changing... Attached or loose... | Find out what is really changing... Attached or loose... | ||
Revision as of 14:21, 26 January 2011
Leave a comment
Eventscanner: changed()
Find out what is really changing... Attached or loose...
<lsl> // Simple Eventscanner for changed() // (C) 01/2011 ANSI Soderstrom
list CHANGE = [ 1, "CHANGED_INVENTORY",
2, "CHANGED_COLOR",
3, "CHANGED_SHAPE",
4, "CHANGED_SCALE",
5, "CHANGED_TEXTURE",
6, "CHANGED_LINK",
7, "CHANGED_ALLOWED_DROP",
8, "CHANGED_OWNER",
9, "CHANGED_REGION",
10, "CHANGED_TELEPORT",
11, "CHANGED_REGION_START",
12, "CHANGED_MEDIA"
];
integer shift(integer bit) {
return 1 << bit;
}
search(integer number) {
integer i;
for(i=llGetListLength(CHANGE)/2-1;~i;--i) {
if(number - shift(i) >= 0) {
llOwnerSay("Change detected : " + llList2String(CHANGE,i*2+1));
number = number - shift(i);
}
}
}
ResetMe() {
ClearPrimMemory(); llResetScript();
}
ClearPrimMemory() {
llSetSitText("");
llSetTouchText("");
llParticleSystem([]);
llSetText("",ZERO_VECTOR,1.0 );
llTargetOmega(ZERO_VECTOR,0,0 );
llSetCameraAtOffset(ZERO_VECTOR);
llSetCameraEyeOffset(ZERO_VECTOR);
llSitTarget(ZERO_VECTOR,ZERO_ROTATION);
llSetTextureAnim(FALSE,ALL_SIDES,1,1,0,0,0.0);
llStopSound();
llResetTime();
}
default {
state_entry() {
// your code here....
}
on_rez(integer i) {
ResetMe();
}
attach(key id) {
ResetMe();
}
changed(integer change) {
search(change);
if (change & (CHANGED_INVENTORY | CHANGED_OWNER)) {
ResetMe();
}
}
}
</lsl>