Daemonika Nightfire
Forumsgott/göttin
huhu ihr suessen,
dachte mir mit diesem kleinen script leiste ich mal einen kleinen beitrag zur LAG reduzierung^^
denn viele benutzen immer noch ziemlich ueberladene und laggy poseballs, da kam ich mal auf die idee ein script zu schreiben das universal einsetzbar ist, mit und ohne SHOW/HIDE ohne laggy listener.
ich hoffe das ich darin an alles notwendige gedacht habe und wuensche allen viel freude damit
dachte mir mit diesem kleinen script leiste ich mal einen kleinen beitrag zur LAG reduzierung^^
denn viele benutzen immer noch ziemlich ueberladene und laggy poseballs, da kam ich mal auf die idee ein script zu schreiben das universal einsetzbar ist, mit und ohne SHOW/HIDE ohne laggy listener.
Code:
[COLOR=DarkOrange]//////////////////////////////////////////////////////////////////////////////////////////////
// *DS* ~ Pose Ball/Furniture Script V 1.2 //
// by Daemonika Nightfire 2009-08-22 14:15:58 lsl2 script //
//////////////////////////////////////////////////////////////////////////////////////////////
// dieses Script ist Free und darf ausschliesslich mit vollen rechten weiter gegeben werden //
// //
//hiermit hast du die moeglichkeit ein posescript fuer alles zu verwenden. //
//du kannst es zusammen mit einer Animation in saemtliche prims deiner wahl stecken. //
// //
//OK, das script sieht lang aus, das scheint aber nur so, weil saemtliche relevanten befehle//
//enthalten sind und dadurch universal einsetzbar ist. //
// //
//im "Globalen Bereich" kannst du saemtliche individuellen einstellungen vornemen. //
//beschreibungen stehen jeweils dahinter. //
// //
//im "Script Bereich" besteht die moeglichkeit das verhalten des scriptes zu beeinflussen //
//setze einfach dazu vor dem jeweiligen befehl diese // und der befehl wird deaktiviert //
//mit entfehrnen dieser // aktivierst du den entsprechenden befehl wieder //
//////////////////////////////////////////////////////////////////////////////////////////////
[/COLOR] [COLOR=DarkOrange]//Globaler Bereich[/COLOR]
[COLOR=DarkGreen]vector[/COLOR] sit_rot = <00, 00, -90>; [COLOR=DarkOrange]// stelle hier die rotation ein (die sitzrichtung des Avatars)[/COLOR]
[COLOR=DarkGreen]vector[/COLOR] sit_pos = <0.0, 0.1, -0.23>; [COLOR=DarkOrange]// stelle hier die x,y,z koordinaten ein (die sitzposition des Avatars)[/COLOR]
[COLOR=DarkGreen]string[/COLOR] DISPLAY_TEXT = "[COLOR=DarkGreen]SIT HERE[/COLOR]"; [COLOR=DarkOrange]// hier kannst du den Hovertext aendern oder loeschen (string DISPLAY_TEXT = ""; kein text)[/COLOR]
[COLOR=DarkGreen]vector [COLOR=Black]color[/COLOR][/COLOR] = <1.0, 1.0, 1.0>; [COLOR=DarkOrange]// diese zeile ist die farbe fuer den Hovertext (<0.0, 0.0, 0.0> schwarz, <1.0, 1.0, 1.0> weiss)[/COLOR]
[COLOR=DarkGreen]float [COLOR=Black]alpha[/COLOR][/COLOR] = 1; [COLOR=DarkOrange]// hier wird die Transparents des textes eingestelle 0.0 ist unsichtbar[/COLOR]
[COLOR=DarkOrange]// diese usertex zeile wird nur benoetigt wenn du den textur change benutzt mit meiner transparenten alphatextur (SHOW/HIDE ersatz),
// dabei benoetigst du dann nur die UUID deiner textur die danach wieder angezeigt werden soll.
// die UUID bekommst du mit rechtsklick auf deiner textur in deinem Inventar (Asset-UUID kopieren) dann einfach zwischen die "" einfuegen.
string usertex = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; // trage hier anstele der xxx.. die UUID deiner textur ein[/COLOR]
[COLOR=DarkGreen]string[/COLOR] sit = "[COLOR=DarkGreen]Pose[/COLOR]"; [COLOR=DarkOrange]// das ist die stelle bei der man im rechtsklickmenue auf SIT klickt (in diesem fall Pose)[/COLOR]
[COLOR=DarkGreen]string[/COLOR] menu = [COLOR=DarkGreen][COLOR=Black]"[/COLOR]*DS*[COLOR=Black]"[/COLOR][/COLOR];[COLOR=DarkOrange]// hier staend eigentlich im rechtsklickmenue, touch[/COLOR]
[COLOR=DarkGreen]string[/COLOR] ANIMATION;
[COLOR=DarkGreen]integer[/COLOR] is_sitting;
[COLOR=DarkGreen]integer[/COLOR] on;
[COLOR=DarkGreen]key[/COLOR] owner;
[COLOR=DarkGreen]string[/COLOR] ownername;
init()
{
ownername = [COLOR=DarkRed]llKey2Name[/COLOR]( [COLOR=DarkRed]llGetOwner[/COLOR]());
[COLOR=DarkRed] llOwnerSay[/COLOR] ( "[COLOR=DarkGreen]hello[/COLOR] " + ownername + " [COLOR=DarkGreen]touch for SHOW/HIDE[/COLOR]" );
}
[COLOR=DarkOrange]//Script Bereich[/COLOR]
[COLOR=Purple]default[/COLOR]
{
[COLOR=RoyalBlue]state_entry[/COLOR]()
{
[COLOR=DarkRed]llPassTouches[/COLOR]([COLOR=Blue]TRUE[/COLOR]);
owner = [COLOR=DarkRed]llGetOwner[/COLOR]();
ANIMATION = [COLOR=DarkRed]llGetInventoryName[/COLOR]([COLOR=Blue]INVENTORY_ANIMATION[/COLOR], 0);
is_sitting = 0;
[COLOR=DarkRed]llSitTarget[/COLOR](sit_pos, [COLOR=DarkRed]llEuler2Rot[/COLOR](sit_rot*[COLOR=Indigo]DEG_TO_RAD[/COLOR]));
[COLOR=DarkRed]llSetTouchText[/COLOR](menu);
[COLOR=DarkRed]llSetSitText[/COLOR](sit);
[COLOR=DarkRed]llSetText[/COLOR](DISPLAY_TEXT,color,alpha);
[COLOR=DarkRed]llSetObjectDesc[/COLOR]([COLOR=DarkGreen]"*DaeSigns*"[/COLOR]);
}
[COLOR=RoyalBlue]on_rez[/COLOR]([COLOR=DarkGreen] integer[/COLOR] param )
{
init();
}
[COLOR=RoyalBlue]touch_start[/COLOR]([COLOR=DarkGreen]integer[/COLOR] total_number) [COLOR=DarkOrange]// dieser Bereich ist der SHOW/HIDE um klicken[/COLOR]
{
[COLOR=Navy]if[/COLOR]([COLOR=DarkRed]llDetectedKey[/COLOR](0)) [COLOR=DarkOrange]// entscheide hier mit setzen und entfehrnen der // ob alle oder nur der Owner die balls ausblenden koennen.[/COLOR]
[COLOR=DarkOrange]// if(llDetectedKey(0) == owner)[/COLOR]
{
[COLOR=Navy]if[/COLOR](on)
{
on = [COLOR=Navy]FALSE[/COLOR];
[COLOR=DarkRed]llSetText[/COLOR](DISPLAY_TEXT,color,alpha);
[COLOR=DarkRed]llSetAlpha[/COLOR](1.0, [COLOR=Navy]ALL_SIDES[/COLOR]); [COLOR=DarkOrange]//***SHOW ever[/COLOR]
[COLOR=DarkOrange]// llSetTexture("40ca82a1-c00d-39db-6c7d-ec7d48df4de3",ALL_SIDES); //***16x16px Weiss (*DS*)[/COLOR]
[COLOR=DarkOrange]// llSetTexture(usertex,ALL_SIDES); //your texture[/COLOR]
[COLOR=DarkRed]llResetScript[/COLOR]();
}
[COLOR=Navy]else[/COLOR]
{
on = [COLOR=Navy]TRUE[/COLOR];
[COLOR=DarkRed]llSetText[/COLOR]("",color,alpha); [COLOR=DarkOrange]// clearing Hovertext[/COLOR]
[COLOR=DarkRed]llSetAlpha[/COLOR](0.0,[COLOR=Navy] ALL_SIDES[/COLOR]); [COLOR=DarkOrange]//*HIDE for Balls[/COLOR]
[COLOR=DarkOrange]// llSetAlpha(1.0, ALL_SIDES); //**SHOW for Furniture
// llSetTexture("7cae828c-2d5d-ec8c-b8f6-855870bb2b66",ALL_SIDES); //*16x16px Transparent (*DS*)[/COLOR]
[COLOR=DarkOrange]// llSetTexture("40ca82a1-c00d-39db-6c7d-ec7d48df4de3",ALL_SIDES); //**16x16px Weiss (*DS*)
// llSetTexture(usertex,ALL_SIDES); //your texture[/COLOR]
}
}
}
[COLOR=RoyalBlue]changed[/COLOR]([COLOR=DarkGreen]integer[/COLOR] change) [COLOR=DarkOrange]// dieser Bereich bedeutet "nicht sitzen"[/COLOR]
{
[COLOR=Navy]if[/COLOR](change & [COLOR=Navy]CHANGED_LINK[/COLOR])
{
[COLOR=DarkGreen]key[/COLOR] av = [COLOR=DarkRed]llAvatarOnSitTarget[/COLOR]();
[COLOR=Navy] if[/COLOR](av != [COLOR=Navy]NULL_KEY[/COLOR])
{
[COLOR=DarkRed] llRequestPermissions[/COLOR](av, [COLOR=Navy]PERMISSION_TRIGGER_ANIMATION[/COLOR]);
}
else
{
if(([COLOR=DarkRed]llGetPermissions[/COLOR]() & [COLOR=Navy]PERMISSION_TRIGGER_ANIMATION[/COLOR]) && is_sitting)
{
is_sitting = 0;
[COLOR=DarkRed]llStopAnimation[/COLOR](ANIMATION);
[COLOR=DarkRed]llSetText[/COLOR](DISPLAY_TEXT,color,alpha);
[COLOR=DarkRed]llSetAlpha[/COLOR](1.0, [COLOR=Navy]ALL_SIDES[/COLOR]); [COLOR=DarkOrange]//***SHOW ever[/COLOR]
[COLOR=DarkOrange]// llSetTexture("40ca82a1-c00d-39db-6c7d-ec7d48df4de3",ALL_SIDES); //***16x16px Weiss (*DS*)
// llSetTexture(usertex,ALL_SIDES); //your texture[/COLOR]
}
}
}
ANIMATION = [COLOR=DarkRed]llGetInventoryName[/COLOR]([COLOR=Navy]INVENTORY_ANIMATION[/COLOR], 0);
}
[COLOR=RoyalBlue] run_time_permissions[/COLOR]([COLOR=DarkGreen]integer[/COLOR] perm) [COLOR=DarkOrange]// dieser Bereich bedeutet "sitzen"[/COLOR]
{
[COLOR=Navy]if[/COLOR](perm & [COLOR=Navy]PERMISSION_TRIGGER_ANIMATION[/COLOR])
{
is_sitting = 1;
[COLOR=DarkRed]llStopAnimation[/COLOR]([COLOR=DarkGreen]"sit_generic"[/COLOR]);
[COLOR=DarkRed]llStopAnimation[/COLOR]([COLOR=DarkGreen]"sit"[/COLOR]);
[COLOR=DarkRed]llStartAnimation[/COLOR](ANIMATION);
[COLOR=DarkRed]llSetAlpha[/COLOR](0.0, [COLOR=Navy]ALL_SIDES[/COLOR]); [COLOR=DarkOrange]//*HIDE for Balls[/COLOR]
[COLOR=DarkOrange]// llSetAlpha(1.0, ALL_SIDES); //**SHOW for Furniture
// llSetTexture("7cae828c-2d5d-ec8c-b8f6-855870bb2b66",ALL_SIDES); //*16x16px Transparent (*DS*)
// llSetTexture("40ca82a1-c00d-39db-6c7d-ec7d48df4de3",ALL_SIDES); //**16x16px Weiss (*DS*)
// llSetTexture(usertex,ALL_SIDES); //your texture[/COLOR]
[COLOR=DarkRed]llSetText[/COLOR]("",color,alpha); [COLOR=DarkOrange]// clearing Hovertext[/COLOR]
}
}
}