GridTalk.de

Normale Version: Name des Objects als Hovertext
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Einen normalen Hovertext habe ich aber da muß ich bei jedem Objekt in den ich ihn packe immer den Text im Script ändern.

Viel besser wäre es wenn ich nur den Namen des Objectes ändern müßte und der Hovertext gibt diesen Namen an.

Perfekt wäre es, wenn der Namen nicht dauernd über der Kiste steht, sondern nur bei mouseover erscheint.

Weiß jemand Rat?
coole idee, würde mir auch gefallen
(24.02.2018, 18:18)Leora Jacobus schrieb: [ -> ]Einen normalen Hovertext habe ich aber da muß ich bei jedem Objekt in den ich ihn packe immer den Text im Script ändern.

Viel besser wäre es wenn ich nur den Namen des Objectes ändern müßte und der Hovertext gibt diesen Namen an.

Perfekt wäre es, wenn der Namen nicht dauernd über der Kiste steht, sondern nur bei mouseover erscheint.

Weiß jemand Rat?

Sicher geht das mit dem Namen - die Scriptfunktion llGetObjectName liefert den ja ... alternativ kann man auch mit llGetObjectDescription den Beschreibungstext nehmen.
Ein MouseOver-Event gibt es alllerdings nicht, sorry.
Zum Hovertext habe ich folgenden Vorschlag (zeigt den Text rot an):
Code:
llSetText(llGetObjectName(), <1,0,0>, 1.0);

Du musst dann aber immer noch die Scripte Resetten nachdem du den Namen geändert hast. Leider gibt es keinen Event dafür mit dem sich das machen lässt.

Leider kennt LSL (und auch OSSL) keinen mouseover event Sad Das beste was mir einfällt und auch nicht zu laggy ist, ist ein Script, das den Namen des Objektes beim Anklicken anzeigt:
Code:
integer duration = 15; // Objekt Namen während 15 Sekunden anzeigen

default
{
    state_entry()
    {
        // Hovertext ausblenden
        llSetText("", <1,0,0>, 1.0);
    }
    
    touch_end(integer num)
    {
        // Objektnamen im Hovertext anzeigen und Timer starten
        llSetText(llGetObjectName(), <1,0,0>, 1.0);
        llSetTimerEvent(duration);
    }
    
    timer()
    {
        // Hovertext nach abgelaufener Zeit ausblenden und Timer abschalten
        llSetText("", <1,0,0>, 1.0);
        llSetTimerEvent(0);
    }  
}

Übrigens lassen sich alle Viewer die ich kenne so konfigurieren, dass weitere Informationen zu den Objekten (Name, Owner, Position etc) beim mouseover angezeigt werden können. Dies kann dann mit einem Short-Cut (im Firestorm, wenn aktiviert, durch <ctrl><shift>T ) ein- und ausgeschaltet werden.

Edit: oops, Anachron war schneller... ich hatte noch das Script geschrieben und getestet Wink
Also ich habe NULL Ahnung vom Scripten, der Script den ich habe lautet

//Set Text

default {
state_entry() {
llSetText("appliers",<0,0,0>,1);
}

}

... das zeigt das Wort "appliers"

setze ich da jetzt einfach stattdessen llGetObjectName ein? Also so?

//Set Text

default {
state_entry() {
llSetText(llGetObjectName,<0,0,0>,1);
}

}


Hab's mal probiert. Das klappt nicht!
Ja genau, es fehlt bei dir aber die Klammer bei llGetObjectName().
(24.02.2018, 20:27)Pius Noel schrieb: [ -> ]...
Du musst dann aber immer noch die Scripte Resetten nachdem du den Namen geändert hast. Leider gibt es keinen Event dafür mit dem sich das machen lässt.
...

Hmm die Änderung des Objectnamens müsste eigentlich die Das OnChange-Event triggern (oder erinnere ich das falsch?).
Allerdings muss man dann dort unbedingt sicherstellen, dass sich der Text auch wirklich geändert hat, ehe man den Hovertext neu setzt, denn die Änderung des Hovertext (das weiss ich noch nur ZU gut) triggert seinerseits das OnChange und man hat einen Loop vom Feinsten. Rolleyes

Sorry, das jetzt in ein Script zu giessen und zu testen hab ich z.Zt. keinen Kopp zu ...
Danke Pius! Unsere Postings hatten sich gekreuzt.

Deinen Vorschlag hab ich ausprobiert und siehe da - es funzt! Smile

PS: eine Frage noch: der Text ist rot. Kann man die Farbe auch ändern? z.B. grün?
Jetzt verunsicherst du mich... ich kenne in LSL kein OnChange-Event, nur ein changed(integer change)-event und von denen weiss ich keinen, der auf die Änderung des Namens reagiert.

Ich war längere Zeit weg vom Scripten und es kann gut sein, dass ich nicht alles richtig auf die Reihe krieg, bzw. vergessen hab.
Klar, die Farbe lässt sich mit dem 2. Parameter ändern, das ist das was in den spitzen Klammern steht.
Die Werte stehen für <R,G,B>, und jede Farbe hat einen Wert zwischen 0 und 1.
Grün wäre dann: <0.0, 1.0, 0.0>
Rot: <1.0, 0.0, 0.0>
Blau: <0.0, 0.0, 1.0>
Weiss: <1.0, 1.0, 1.0>
Schwarz: <0.0, 0.0, 0.0>
etc.
Noch ein Tipp: im (Firestone) Viewer kannst du die Farbe eines Prims auswählen und dort gibt es einen Button "Copy LSL" mit dem du die Werte in die Zwischenablage setzen kannst, so dass du sie direkt in das Script einfügen kannst.

Viel Spass.
Seiten: 1 2