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

5 slaveprims mit touch-befehl aber nur ein script

SuperMarkus Paine

Aktiver Nutzer
guten morgen

jo, die überschrift verrät ja schon einiges, aber dennoch:

ich hab ein masterprim und 5 slaveprims (verlinkt). in 4 von den 5 slaveprims steckt jedesmal ein script drin. wenn man draufklickt gibts ne meldung - also ne normale klick anwendung...
Code:
touch_start(integer total_number)...
soweit so gut.
nun dachte ich mir das 4 scripte doof sind. :) ich würd gern in das 5. slaveprim ein script einfügen was die 4 andren "überwacht".
leider find ich dafür kein geeigneten befehl. also sowas wie "llSetLinkPrimitiveParams"...
hat iwer ne idee??

mfg Markus
 
mach einfach mehrere if in den Touch Event.
if(llDetectedLinkNumber(0) == 1)
else if(llDetectedLinkNumber(0) == 2)
Das rote ist die Linknummer des Prims, den du fuer die jeweilige meldung ansprechen musst.

Beispiel:
Code:
default
{
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }

    touch_start(integer total_number)
    {
        if(llDetectedLinkNumber(0) == 1) // Root-Prim
        {
            llSay(0, "Touched link 1 (root).");
        }
        else if(llDetectedLinkNumber(0) == 2) // erstes Child-Prim
        {
            llSay(0, "Touched link 2.");
        }
        else if(llDetectedLinkNumber(0) == 3) // zweites Child-Prim
        {
            llSay(0, "Touched link 3.");
        }
        // selbst wenn das Linkset aus mehr Prims besteht, reagiert der touch jetzt nur noch auf die angegebenen Linknummern
    }
    
    on_rez(integer Dae)
    {
        llResetScript();
    }
}

LG
Dae
 
Zuletzt bearbeitet:
Hallo,

ich würde gerne auch noch meinen Senf hierzu geben ;o)

Genau wie Dae bin ich immer darauf bedacht, Scripte so klein und übersichtlich wie möglich zu halten.

Deshalb stelle ich hier noch eben meinen Lösungsvorschlag dazu:

Code:
string linktext(integer lnum)
{
    list text = ["Roottext hier",
        "Linktext 2 hier",
        "Linktext 3 hier",
        "Linktext 4 hier",
        "Linktext 5 hier"];        
    return llList2String(text,(lnum -1));
}

default
{
    touch_end(integer t_n)
    {
        llSay(0,linktext(llDetectedLinkNumber(0)));
    }
}

Falls es mehr Prims als Text in der Liste sind, erfolgt für die entsprechenden Prims keine Ausgabe.
Die Liste kann beliebig erweitert werden, bis der Scriptspeicher halt voll ist.

Gruss

Sam

PS: Geht auch nur, wenn das Script im Root liegt.
 
Zuletzt bearbeitet:
Prima Sam,

bleibt jetzt nur noch zu hoffen, das er nicht auf die Idee kommt, je nach angeklickten Prim zusaetzlich unterschiedliche Aktionen ausfuehren will. ;)


@ SuperMarkus

Nachtrag: das geht nur wenn das script selbst im masterprim liegt?!
Ja, liegt das Script in einem Child-Prim, reagiert auch nur noch dieser eine Prim, wo das script drin liegt.

LG
Dae
 
Zuletzt bearbeitet:
Jo, aber dann wirds ja wieder grösser und unübersichtlich ;o)

Ich schreibe Scripte ja immer nach gefragten Anforderungen und nicht mehr, auch wenn uns Beiden klar ist, dass immer noch was hinterherkommt....

LG

Sam

Nachtrag:

Kann man in einer Liste doch auch Leerzeilen machen oder ? Damit lassen sich dann doch auch Texte bestimmten Prims zuordnen.

Code:
list text = ["Roottext","Text1","","","Text4","","Text6"];
 
Zuletzt bearbeitet:
Viel Spass.
Bei einer Auswahl von 255 Eintraegen, haette ich nach dem 10ten mal " " copy/paste schon keinen bock mehr. :p
Und dann nehm mal eine Aenderung am Linkset vor. (wuerg)

Nachtrag:
Ich glaube da liegt aber noch ein kleiner Denkfehler vor.
Wenn du einen Leeren Eintrag triggerst, erscheint vermutlich folgendes im Chat:
[15:55] Object: Roottext hier
[15:55] Object: Linktext 2 hier
[15:55] Object:
[15:55] Object:
Fuer die Leeren Eintrage erscheinen dann im Chat leere Meldungen.

LG
Dae
 
Zuletzt bearbeitet:
Bei einer Auswahl von 255 Eintraegen, haette ich nach dem 10ten mal " " copy/paste schon keinen bock mehr.
Und dann nehm mal eine Aenderung am Linkset vor. (wuerg)

Ich auch nicht, aber das war ja auch nicht die Fragestellung im Eröffnungspost ;o)

Fuer die Leeren Eintrage erscheinen dann im Chat leere Meldungen.

Wenn ich mit Firestorm on bin erscheint kein leerer Text in SL.

Gruss

Sam
 
Sagt mal, warum fragt ihr nicht einfach die Primbeschreibung ab?
Dann kann man auch am Linkset mal was ändern ohne daß es danach Ärger gibt.
 

Users who are viewing this thread

Zurück
Oben Unten