• 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.

kann man das einfacher machen?

Jojo1905 Guardian

Aktiver Nutzer
wie schon im Tietel geschrieben....

Code:
integer status = FALSE;

default
{
     on_rez(integer start_param)
    {
          llResetScript(); 
    }
    touch_start(integer total_number)
    {
     if(status == FALSE)
        {
            status = TRUE;
            llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, ALL_SIDES);
            llSetLinkAlpha(LINK_ROOT, 1.0, ALL_SIDES);
        }   
     else if(status == TRUE)
        {
            status = FALSE;
            llSetLinkAlpha(LINK_ROOT, 0.0, ALL_SIDES);
            llSetLinkAlpha(LINK_ALL_OTHERS, 1.0, ALL_SIDES);
        }
    }
    
}

zusätzlich möchte ich wissen ob man auch einzelne Prims in einem linkset anders setzen kann,
also z.b.: Suppentopf anklicklen, Topf wird leer, Teller voll, Löffel erscheint...

doofes beispiel ich weiß...

gruß jojo
 
Ja du kannst im grunde alles mit "llSetLinkPrimitiveParamsFast" machen.

Zu deinem Beispiel würde ich den Code lieber so schreiben:

Code:
integer status = FALSE;

default
{
      on_rez(integer start_param)
     {
          llResetScript();
     }
     touch_start(integer total_number)
     {
          if(status)
          {
              llSetLinkAlpha(LINK_ROOT, 0.0, ALL_SIDES);
              llSetLinkAlpha(LINK_ALL_OTHERS, 1.0, ALL_SIDES);
              --status;
          }
          else
          {
               llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, ALL_SIDES);
               llSetLinkAlpha(LINK_ROOT, 1.0, ALL_SIDES);
               ++status;
          }
    }
 

Daemonika Nightfire

Forumsgott/göttin
Mit llSetLinkPrimitiveParams... wird es nicht weniger, zudem musst du fuer die ALpha Funktion dann auch noch den Farbcode angeben, weil llSetLinkPrimitiveParams.... nur bei PRIM_COLOR das Alpha anbietet.
Wenn es nur um einen einfachen Show/Hide geht ist das schon eine Gute Wahl die einzelnen Befehle zu nehmen, weil du dann immer noch die Moeglicheit hast die Objecte bei bedarf umzufaerben, ohne das das Script es mit einem fixen Farbcode wieder rueckgaengig macht.

Also an deinem Script ist im Grunde nichts auszusetzen Jojo.

NACHTRAG:
@ Vogelfrei
Dir ist schon klar das eine einfache else im grunde nichts anderes bedeutet als "alles andere"?
Wenn es sich vermeiden laesst wuerde ich grundsaetzlich die Finger davon lassen, besonders wenn es um sensible Funktionen geht wie zum Beispiel einem Money Event.

LG
Dae
 
Zuletzt bearbeitet:
Du hast ja recht aber bei der sache doch kein problem dann kann man ja auch so schreiben.

Denn geht ja bloß das Status einen wert hat wenn ja kann Status ja nur den Wert 1 haben wie soll status zu dem Wert 2 kommen wenn das durch else ja nicht möglich ist?:)

Oder man schreibt halt damit du zufrieden bist :)


Code:
integer status = FALSE;

default
{
      on_rez(integer start_param)
     {
          llResetScript();
     }
     touch_start(integer total_number)
     {
          if(status)
          {
              llSetLinkAlpha(LINK_ROOT, 0.0, ALL_SIDES);
              llSetLinkAlpha(LINK_ALL_OTHERS, 1.0, ALL_SIDES);
              --status;
          }
          else if(!status)
          {
               llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, ALL_SIDES);
               llSetLinkAlpha(LINK_ROOT, 1.0, ALL_SIDES);
               ++status;
          }
    }

oder noch besser:)

Code:
integer status = FALSE;

default
{
      on_rez(integer start_param)
     {
          llResetScript();
     }
     touch_start(integer total_number)
     {
          if(status)
          {
              llSetLinkAlpha(LINK_ROOT, 0.0, ALL_SIDES);
              llSetLinkAlpha(LINK_ALL_OTHERS, 1.0, ALL_SIDES);
              --status;
          }
          else if(!status)
          {
               llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, ALL_SIDES);
               llSetLinkAlpha(LINK_ROOT, 1.0, ALL_SIDES);
               ++status;
          }
          else
          {
               llOwnerSay("Ein fehler den Daemonika Nightfire vorher gesehen hat jedoch nie eintreffen wird:-)");
          }
    }
 
Zuletzt bearbeitet:

Daemonika Nightfire

Forumsgott/göttin
@ Vogelfrei
Ach weisst du, du darfst dich gerne Lustig machen, aber du und ich und alle anderen auch, wissen das Sl oefter mal ne Macke hat.
Von daher bevorzuge ich grundsaetzlich dem Script klar zu definieren wann es was zu tun hat und wann eben nicht.

@ Jojo
Eine deiner Fragen ist ja etwas unter gegangen.
Also du kannst anhand der LinkNummern anstelle von LINK_ALL_OTHERS die einzelnen Prims ansprechen.
Dazu musst du nur die entsprechenden LinkNummern eintragen, welche du natuerlich vorher in erfahrung bringen musst.
Du kannst einfach bei einem Wechsel einen Befehl fuer LINK_ALL_OTHERS verwenden und sofort danach einen mit dem gegenteil fuer den entsprechenden Prim.

Natuerlich kann man das auch etwas eleganter loesen, jedoch wird das wieder wesentlich aufwendiger.
Also fuer kleinigkeiten ist deine Variante voellig ok, aber fuer grosse Linksets bei denen sich gleich mehrere Prims (nicht alle) aendern sollen reicht das Script nicht wirklich und man muss es komplett umschreiben.
Wenn du genauer wissen moechtest wie ich das meine, schau dir mal folgende Beispiele in der Wiki an:
User:Daemonika Nightfire/Scripts/LinkNumber-List in llSetLinkPrimitiveParamsFast - Second Life Wiki

LG
Dae
 
@Dea
Mensch hübsche du hast doch recht will doch auch gar nichts anderes behaupten war bloß cool das du gleich wieder mit solch einem spruch kommen musstest:)
Würde mal behaupten das du ein Mensch bist der auf jede Antwort eine Frage folgen lassen muss bzw eine Korrektur.
Ist aber voll ok man gewöhnt sich daran:)

@JoJo
Genau so ist es Dea hat es perfekt beschrieben :)
 

Daemonika Nightfire

Forumsgott/göttin
@ Vogelfrei

Ich glaube ehr du musst dich einfach nur daran gewoehnen das ich sehr wenig Smilies verwende und voraussetze anhand meiner Grammatik zu verstehen wie ich gelaunt bin. ;)

LG
Dae
 
@Dae

Ja da hast du wohl Recht und würdest du mich richtig kennen würdest du nicht die Finger von mir lassen können und mit Smilies nur so rumschmeisen:)
 

Jojo1905 Guardian

Aktiver Nutzer
Huhu und danke allen für die tips, hab ja dann doch mal was richtig gemacht....

Dae wusste ja schon wofür ich das brauche :p

aber ich lass dir gerne eins zukommen is echt klasse geworden :thanx

gruß jojo
 

Aktive User in diesem Thread

Oben Unten