• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

hide/show touch owner

hallo
ich suche ein script hide/Show touch owner
kurze Erklärung
habe 36 prims verknüpft und möchte die Funktion für jeden prim nutzen , also ein prim anklicken dann soll es durchsichtig sein , wieder anklicken sichtbar sein und das soll nur der owner machen können .
die scripts die ich gefunden habe sind nicht touch by owner oder macht die ganze Verknüpfung hide / Show
schonmal danke für eure hilfe
 
Hallo

Ich habe zu dem Zweck ein kleines Script gebastelt, das deiner Anforderung entsprechen sollte:


Code:
default
{
    state_entry()
    {

    }

    
    
    touch_start(integer nr)
    {

        integer linknr;

        if (llDetectedKey(0) != llGetOwner())
        {
            return;
        }


        linknr =   llDetectedLinkNumber( 0 );

 
        if (llList2Float(llGetLinkPrimitiveParams(linknr,  [ PRIM_COLOR, ALL_SIDES ]  ),1) > 0.0)
        {
            llSetLinkAlpha(linknr,0.0, ALL_SIDES );
        }
        else
        {
            llSetLinkAlpha(linknr,1.0, ALL_SIDES );
        }

    }
}
 
Zuletzt bearbeitet:
Ich hab noch die Speicherbegrenzung hinzugefügt, so ist es noch bisserl sparsamer und somit besser für den Server.


Code:
default
{
    state_entry()
    {
          [COLOR=#ff0000]llSetMemoryLimit(llFloor(llGetUsedMemory()*1.1));[/COLOR]
    }

    
    
    touch_start(integer nr)
    {

        integer linknr;

        if (llDetectedKey(0) != llGetOwner())
        {
            return;
        }


        linknr =   llDetectedLinkNumber( 0 );

 
        if (llList2Float(llGetLinkPrimitiveParams(linknr,  [ PRIM_COLOR, ALL_SIDES ]  ),1) > 0.0)
        {
            llSetLinkAlpha(linknr,0.0, ALL_SIDES );
        }
        else
        {
            llSetLinkAlpha(linknr,1.0, ALL_SIDES );
        }

    }
}
 
Das mit der Speicher-Begrenzung bringt nicht wirklich was für den Server.
Mono-Scripts belegen den Platz, den sie brauchen. D.h. Header usw. + eben das, was an Variablen und Strings usw. belegt wird dann im Script. Im Gegensatz zu LSO werden eben nicht immer alle 64kB voll belegt. Manchmal belegt ein Mono-Script auch nur 7kB. Und ein Mono-Script kann auch kurzfristig mehr als 64kB belegen..allerdings gibts einen erzwungenen Crash, wenn das Script nach dem Aufräumen noch mehr als 64kB belgegt (mit der alten LSO-Fehlermeldung Stack/Heap collission).
Das, was llSetMemoryLimit macht, das ist dann einfach ein Verschieben der max-Grenze.

In dem Fall hier belegt das Script mit den Funktionen im state_entry Event und mit der Mulitplikation mit dem Float sogar noch mal geschätzte rund 100Byte mehr Speicher als ohne diesen Event.

Dieses "Memory-Limit" ist vor allem kosmetischer Natur. Und in der Praxis ist es IMHO besser ein klein wenig mehr Speicher zu belegen (zumal der Server eh mittlerweile da kein echtes Problem mehr hat) als ein crashendes Script zu haben.

Das einzige, wofür das "Memory-Limit" Dingens wirklich nützlich ist, das ist bei Script-Meter-Nazis.
Da ist es allerdings besser das Script zu messen per llScriptProfiler und llGetSPMaxMemory...
 

Users who are viewing this thread

Zurück
Oben Unten