User:Daemonika Nightfire/Scripts/Tools (de)

From Second Life Wiki
Jump to navigation Jump to search

*DS* GetPrimInfo

<lsl> /*

   *DS* GetPrimInfo by Daemonika Nightfire
   
   Mit diesem kleinen Tool bekommst du auf die schnelle,
   saemtliche nuetzlichen Informationen eines Prims die du zum Scripten benoetigs.
   Lege das Script einfach hinein und klicke ihn an.
   
   INFO:
   Je nachdem ob das Script im Root oder Child liegt, bekommst du unterschiedliche werte.
   Die Bezeichnung (me) deutet darauf hin, dass nur der Wert des Prims ausgelesen wird, wo das Script drin liegt.
  • /

default {

   touch_start(integer num_detected)
   {
       integer i;
       for(i=0; i<num_detected; ++i)
       {
           llOwnerSay("/me ObjectKey: "+ (string)llGetKey() +
           "\nObjectPrimCount: "       + (string)llGetNumberOfPrims() +
           "\nLinkNumber: "            + (string)llDetectedLinkNumber(i) +
           "\nLinkName: "              + (string)llGetLinkName(llDetectedLinkNumber(i)) +
           "\nLinkNumberKey: "         + (string)llGetLinkKey(llDetectedLinkNumber(i)) +
           "\nTouchFace: "             + (string)llDetectedTouchFace(i) +
           "\nTouchPos: "              + (string)llDetectedTouchST(i) +
           "\nScale (me): "            + (string)llGetScale() +
           "\nPos (Root): "            + (string)llGetPos() +
           "\nLocalPos (me): "         + (string)llGetLocalPos() +
           "\nRot (me): "              + (string)llGetLocalRot() +
           "\nColor (me): "            + (string)llGetColor(i) +
           "\nAlpha (me): "            + (string)llGetAlpha(i) +
           "\nCreator: "               + (string)llKey2Name(llGetCreator()) +
           "\nCreatorKey: "            + (string)llGetCreator());
       }
   }

} </lsl>

*DS* Prim-Cleaner (LINK_THIS)

<lsl> /*

   *DS* Prim-Cleaner (LINK_THIS) by Daemonika Nightfire
   
   Der Prim-Cleaner entfernt saemtliche Prim-Eigenschaften, die sich nicht mit dem Baumenue einstellen lassen.
   Diese Version funktioniert nur in dem Prim, in dem das Script eingelegt ist.
  • /

default {

   state_entry()
   {
       llSetSitText("");                                        // entfernt den Sitz-Text
       llSetTouchText("");                                      // entfernt den Klick-Text
       llParticleSystem([]);                                    // entfernt die Particle
       llSetText("", ZERO_VECTOR, 1.0);                         // entfernt den Hovertext
       llTargetOmega(ZERO_VECTOR, 0.0, 0.0);                    // entfernt die Rotation
       llSetCameraAtOffset(ZERO_VECTOR);                        // entfernt die Kamera-Position
       llSetCameraEyeOffset(ZERO_VECTOR);                       // entfernt die Kamera-Ausrichtung
       llSitTarget(ZERO_VECTOR, ZERO_ROTATION);                 // entfernt die Sitz-Orientierung
       llSetTextureAnim(FALSE, ALL_SIDES, 1, 1, 0.0, 0.0, 0.0); // entfernt Textur-Animationen
       llStopSound();                                           // entfernt den looped Sound
       llDeleteCharacter();                                     // entfernt alle Pathfinding Einstellungen
       
       llSay(0, "This prim is plean...");
       llRemoveInventory(llGetScriptName()); // entfernt sich selbst
   }

} </lsl>

*DS* Prim-Cleaner (LINK_SET)

<lsl> /*

   *DS* Prim-Cleaner (LINK_SET) by Daemonika Nightfire
   
   Der Prim-Cleaner entfernt saemtliche Prim-Eigenschaften, die sich nicht mit dem Baumenue einstellen lassen.
   Diese Version aendert die Eigenschaften jedes Prims des gesamten Linksets.
  • /

default {

   state_entry()
   {
       llSetLinkPrimitiveParamsFast(LINK_SET,[
       PRIM_TEXT, "", ZERO_VECTOR, 0.00,                                      // entfernt den Hovertext
       PRIM_OMEGA, ZERO_VECTOR, 0.0, 0.0                                      // entfernt die Rotation
       ]);
       
       llLinkParticleSystem(LINK_SET, []);                                    // entfernt die Particle
       llSetLinkCamera(LINK_SET, ZERO_VECTOR, ZERO_VECTOR);                   // entfernt die Kamera-Optionen
       llLinkSitTarget(LINK_SET, ZERO_VECTOR, ZERO_ROTATION);                 // entfernt die Sitz-Orientierung
       llSetLinkTextureAnim(LINK_SET, FALSE, ALL_SIDES, 1, 1, 0.0, 0.0, 0.0); // entfernt Textur-Animationen
       
       llSay(0, "This linkset is plean...");
       llRemoveInventory(llGetScriptName()); // entfernt sich selbst
   }

} </lsl>

*DS* Fullbright FALSE (LINK_SET)

<lsl> /*

   *DS* Fullbright FALSE (LINK_SET) by Daemonika Nightfire
   
   Dieses kleine Tool verwende ich sehr oft, bei Attachments die option "ganz Hell" eine Linksets abzuschalten.
   Besonders bei Prim Haaren kommt es oft vor, dass der Ersteller die Haare "ganz Hell" einstellt und das sieht bei Mitternacht absolut ****** aus.
   
   Natuerlich ginge das auch mit dem Baumenue, aber wir kennen das alle,
   man stellt in einem Grossen Linkset etwas ein und ploetzlich wird einiges zurueck gesetzt oder gar nicht erst uebernommen.
   
   Mit diesem kleinen Script hat sich das innerhalb einer Sekunde erledigt.
  • /

default {

   state_entry()
   {
       llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_FULLBRIGHT,ALL_SIDES,FALSE]); // deaktiviert die Option "ganz hell" (Fullbright).
       llRemoveInventory(llGetScriptName()); // entfernt sich selbst
   }

} </lsl>

*DS* Fullbright, Light & Glow FALSE (LINK_SET)

<lsl> /*

   *DS* Fullbright, Light & Glow FALSE (LINK_SET) by Daemonika Nightfire
   
   Dieses kleine Tool kann dazu verwendet werden, die Viewer performance zu erhoehen.
   Besonders der Eintrag PRIM_POINT_LIGHT ist bei uebermaessigem gebrauch von unnuetzen Lichtquellen in einer Region sehr empfehlenswert.
   
  • /

default {

   state_entry()
   {
       llSetLinkPrimitiveParamsFast(LINK_SET,[
       PRIM_FULLBRIGHT, ALL_SIDES, FALSE,                                          // deaktiviert die Option "ganz hell" (Fullbright).
       PRIM_POINT_LIGHT, FALSE, <1.00000, 1.00000, 1.00000>, 1.000, 10.000, 0.750, // setzt das Licht auf Default zurueck und schaltet es ab.
       PRIM_GLOW, ALL_SIDES, 0.00                                                  // schaltet den Prim Glow ab.
       ]);
       
       llRemoveInventory(llGetScriptName()); // entfernt sich selbst
   }

} </lsl>

*DS* Rotation Converter

<lsl> /*

   *DS* Rotation Converter
   
   Mit diesem kleinen Tool kannst du sehr leicht und sehr schnell Rotationen in Vectoren umrechnen und anders herum.
   
   Bitte nicht wundern, dass ich das Semikolon am ende der globalen Variablen runter geentert habe,
   das dient einzig und allein dem Zweck es nicht aus versehen zu ueberschreiben oder loeschen.
  • /

// Wenn du einen Vector benoetigst, tragte hier die Rotation (4 stellig) ein. rotation Rot2Vec = <0.00000, 0.00000, 0.70711, 0.70711>

// Wenn du eine Rotation benoetigst, trage hier einen Vector (3 stellig) ein. vector Vec2Rot = <0.00000, 0.00000, 90.00000>

default {

   state_entry()
   {
       llSay(0, "Rotaton 2 Vector: " + (string)(llRot2Euler(Rot2Vec) * RAD_TO_DEG));
       llSay(0, "Vector 2 Rotaton: " + (string)llEuler2Rot(Vec2Rot * DEG_TO_RAD));
   }

} </lsl>

*DS* FloatLinkNumber

<lsl> /*

   *DS* FloatLinkNumber by Daemonika Nightfire (daemonika.nightfire)

   Features:
   Nuetzlicher Helfer fuer Ersteller & Scripter
   Mit diesem Tool kannst du saemtliche Linknummern direkt als Hovertext ueber den Prims sehen
   Lege das Script einfach in den Root-Prim und klicke ihn zum ein/ausschalten des Hovertextes.

   Info:
   ein einzelner Prim zeigt LinkNumber 0 fuer den root
   in einem LINK_SET zeigt der root die LinkNumber 1
  • /

integer text = 0;

// setze TRUE oder FALSE fuer mit oder ohne LinkName integer name = TRUE;

Links() {

   integer i;
   for(i = 0; i <= llGetNumberOfPrims(); i++)
   {
       if(text)
       {
           string num;
           if(i < 2)
           {
               num = (string)i + " (root)";
               if(name)
               {
                   num = (string)i + " (root)\n" + llGetLinkName(i);
               }
           }
           else if(i >= 2)
           {
               num = (string)i;
               if(name)
               {
                   num = (string)i + "\n" + llGetLinkName(i);
               }
           }
           llSetLinkPrimitiveParamsFast(i,[PRIM_TEXT, num, <1,1,0>, 1.0]);
       }
       else if(!text)
       {
           llSetLinkPrimitiveParamsFast(i,[PRIM_TEXT, "", ZERO_VECTOR, 0.0]);
       }
   }

}

default {

   state_entry()
   {
       Links();
   }

   touch_start(integer num_detected)
   {
       // Zum ein/aus schalten, musst du den Root Prim klicken
       if(llDetectedKey(0) == llGetOwner() && llDetectedLinkNumber(0) < 2)
       {
           if(!text)
           {
               text = 1;
           }
           else if(text)
           {
               text = 0;
           }
           Links();
       }
   }

   on_rez(integer Dae)
   {
       llResetScript();
   }

} </lsl>