Beiträge: 631
Themen: 54
Thanks Received: 150 in 87 posts
Thanks Given: 381
Registriert seit: Jan 2012
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?
Beiträge: 53
Themen: 5
Thanks Received: 0 in 0 posts
Thanks Given: 0
Registriert seit: Feb 2018
coole idee, würde mir auch gefallen
neustadt.ddns.net:9000:neustadt
Beiträge: 2.488
Themen: 87
Thanks Received: 1.753 in 619 posts
Thanks Given: 1.999
Registriert seit: Oct 2011
24.02.2018, 20:06
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2018, 20:06 von Anachron.)
(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.
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Beiträge: 412
Themen: 17
Thanks Received: 233 in 120 posts
Thanks Given: 860
Registriert seit: Sep 2017
24.02.2018, 20:27
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2018, 20:29 von Pius Noel.)
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  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
Beiträge: 631
Themen: 54
Thanks Received: 150 in 87 posts
Thanks Given: 381
Registriert seit: Jan 2012
24.02.2018, 20:27
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2018, 20:31 von Leora Jacobus.)
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!
Beiträge: 412
Themen: 17
Thanks Received: 233 in 120 posts
Thanks Given: 860
Registriert seit: Sep 2017
Ja genau, es fehlt bei dir aber die Klammer bei llGetObjectName().
Beiträge: 2.488
Themen: 87
Thanks Received: 1.753 in 619 posts
Thanks Given: 1.999
Registriert seit: Oct 2011
(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.
Sorry, das jetzt in ein Script zu giessen und zu testen hab ich z.Zt. keinen Kopp zu ...
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Beiträge: 631
Themen: 54
Thanks Received: 150 in 87 posts
Thanks Given: 381
Registriert seit: Jan 2012
24.02.2018, 21:00
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2018, 21:05 von Leora Jacobus.)
Danke Pius! Unsere Postings hatten sich gekreuzt.
Deinen Vorschlag hab ich ausprobiert und siehe da - es funzt!
PS: eine Frage noch: der Text ist rot. Kann man die Farbe auch ändern? z.B. grün?
Beiträge: 412
Themen: 17
Thanks Received: 233 in 120 posts
Thanks Given: 860
Registriert seit: Sep 2017
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.
Beiträge: 412
Themen: 17
Thanks Received: 233 in 120 posts
Thanks Given: 860
Registriert seit: Sep 2017
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.
|