Difference between revisions of "User:Daemonika Nightfire/Scripts/Tools (de)"

From Second Life Wiki
Jump to navigation Jump to search
 
(9 intermediate revisions by the same user not shown)
Line 2: Line 2:


==*DS* GetPrimInfo==
==*DS* GetPrimInfo==
<lsl>
<source lang="lsl2">
/*
/*
     *DS* GetPrimInfo by Daemonika Nightfire
     *DS* GetPrimInfo by Daemonika Nightfire
      
      
     Mit diesem kleinen Tool bekommst du auf die schnelle saemtliche nuetzlichen Informationen eines Prims die du zum Scripten benoetigs.
     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.
     Lege das Script einfach hinein und klicke ihn an.
      
      
Line 21: Line 22:
         for(i=0; i<num_detected; ++i)
         for(i=0; i<num_detected; ++i)
         {
         {
             llOwnerSay("/me ObjectKey: "+ (string)llGetKey() +
             llOwnerSay("/me Creator: " + (string)llKey2Name(llGetCreator()) +
            "\nCreatorKey: "            + (string)llGetCreator() +
            "\nObjectKey: "            + (string)llGetKey() +
             "\nObjectPrimCount: "      + (string)llGetNumberOfPrims() +
             "\nObjectPrimCount: "      + (string)llGetNumberOfPrims() +
             "\nLinkNumber: "            + (string)llDetectedLinkNumber(i) +
             "\nLinkNumber: "            + (string)llDetectedLinkNumber(i) +
Line 29: Line 32:
             "\nTouchPos: "              + (string)llDetectedTouchST(i) +
             "\nTouchPos: "              + (string)llDetectedTouchST(i) +
             "\nScale (me): "            + (string)llGetScale() +
             "\nScale (me): "            + (string)llGetScale() +
             "\nPos (Root): "            + (string)llGetPos() +
            "\nMass (object): "        + (string)llGetMass() +
            "\nLinkMass: "              + (string)llGetObjectMass(llGetLinkKey(llDetectedLinkNumber(i))) +
             "\nPos (root): "            + (string)llGetPos() +
            "\nRot (root): "            + (string)llGetRot() +
             "\nLocalPos (me): "        + (string)llGetLocalPos() +
             "\nLocalPos (me): "        + (string)llGetLocalPos() +
             "\nRot (me): "             + (string)llGetLocalRot() +
             "\nLocalRot (me): "         + (string)llGetLocalRot() +
             "\nColor (me): "           + (string)llGetColor(i) +
             "\nColor: "                 + (string)llGetColor(llDetectedTouchFace(i)) +
             "\nAlpha (me): "           + (string)llGetAlpha(i) +
             "\nAlpha: "                 + (string)llGetAlpha(llDetectedTouchFace(i)));
            "\nCreator: "              + (string)llKey2Name(llGetCreator()) +
            "\nCreatorKey: "            + (string)llGetCreator());
            llResetScript();
         }
         }
     }
     }
}
}
</lsl>
</source>


==*DS* Prim-Cleaner (LINK_THIS)==
==*DS* Prim-Cleaner (LINK_THIS)==
<lsl>
<source lang="lsl2">
/*
/*
     *DS* Prim-Cleaner (LINK_THIS) by Daemonika Nightfire
     *DS* Prim-Cleaner (LINK_THIS) by Daemonika Nightfire
Line 71: Line 74:
     }
     }
}
}
</lsl>
</source>


==*DS* Prim-Cleaner (LINK_SET)==
==*DS* Prim-Cleaner (LINK_SET)==
<lsl>
<source lang="lsl2">
/*
/*
     *DS* Prim-Cleaner (LINK_SET) by Daemonika Nightfire
     *DS* Prim-Cleaner (LINK_SET) by Daemonika Nightfire
Line 100: Line 103:
     }
     }
}
}
</lsl>
</source>


==*DS* Fullbright FALSE (LINK_SET)==
==*DS* Fullbright FALSE (LINK_SET)==
<lsl>
<source lang="lsl2">
/*
/*
     *DS* Fullbright FALSE (LINK_SET) by Daemonika Nightfire
     *DS* Fullbright FALSE (LINK_SET) by Daemonika Nightfire
      
      
     Dieses kleine Tool verwende ich sehr oft, bei Attachments die option "ganz Hell" eine Linksets abzuschalten.
     Dieses kleine Tool verwende ich sehr oft, um bei Attachments die option "ganz Hell" eines 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.
     Besonders bei Prim Haaren kommt es oft vor, dass der Ersteller die Haare "ganz Hell" einstellt und das sieht bei Mitternacht absolut ****** aus.
      
      
Line 124: Line 127:
     }
     }
}
}
</lsl>
</source>


==*DS* Fullbright, Light & Glow FALSE (LINK_SET)==
==*DS* Fullbright, Light & Glow FALSE (LINK_SET)==
<lsl>
<source lang="lsl2">
/*
/*
     *DS* Fullbright, Light & Glow FALSE (LINK_SET) by Daemonika Nightfire
     *DS* Fullbright, Light & Glow FALSE (LINK_SET) by Daemonika Nightfire
Line 149: Line 152:
     }
     }
}
}
</lsl>
</source>


==*DS* Rotation Converter==
==*DS* Rotation Converter==
<lsl>
<source lang="lsl2">
/*
/*
     *DS* Rotation Converter
     *DS* Rotation Converter by Daemonika Nightfire
      
      
     Mit diesem kleinen Tool kannst du sehr leicht und sehr schnell Rotationen in Vectoren umrechnen und anders herum.
     Mit diesem kleinen Tool kannst du sehr leicht und sehr schnell Rotationen in Vectoren umrechnen und anders herum.
Line 178: Line 181:
     }
     }
}
}
</lsl>
</source>


==*DS* FloatLinkNumber==
==*DS* FloatLinkNumber==
<lsl>
<source lang="lsl2">
/*  
/*  
     *DS* FloatLinkNumber by Daemonika Nightfire (daemonika.nightfire)
     *DS* FloatLinkNumber by Daemonika Nightfire (daemonika.nightfire)
Line 262: Line 265:
     }
     }
}
}
</lsl>
</source>

Latest revision as of 09:05, 6 February 2015

*DS* GetPrimInfo

/*
    *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 Creator: "  + (string)llKey2Name(llGetCreator()) +
            "\nCreatorKey: "            + (string)llGetCreator() +
            "\nObjectKey: "             + (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() +
            "\nMass (object): "         + (string)llGetMass() +
            "\nLinkMass: "              + (string)llGetObjectMass(llGetLinkKey(llDetectedLinkNumber(i))) +
            "\nPos (root): "            + (string)llGetPos() +
            "\nRot (root): "            + (string)llGetRot() +
            "\nLocalPos (me): "         + (string)llGetLocalPos() +
            "\nLocalRot (me): "         + (string)llGetLocalRot() +
            "\nColor: "                 + (string)llGetColor(llDetectedTouchFace(i)) +
            "\nAlpha: "                 + (string)llGetAlpha(llDetectedTouchFace(i)));
        }
    }
}

*DS* Prim-Cleaner (LINK_THIS)

/*
    *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
    }
}

*DS* Prim-Cleaner (LINK_SET)

/*
    *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
    }
}

*DS* Fullbright FALSE (LINK_SET)

/*
    *DS* Fullbright FALSE (LINK_SET) by Daemonika Nightfire
    
    Dieses kleine Tool verwende ich sehr oft, um bei Attachments die option "ganz Hell" eines 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
    }
}

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

/*
    *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
    }
}

*DS* Rotation Converter

/*
    *DS* Rotation Converter by Daemonika Nightfire
    
    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));
    }
}

*DS* FloatLinkNumber

/* 
    *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();
    }
}