This is an old revision of the document!
Utilities
Help & Advice
The dedicated organizational tool that fulfilled most requirements free-of-cost is Doodle.
However: Even Doodle has its drawbacks.
The issues are:
1) Doodle insists on getting an email from each participant.
2) Doodle has no mechanism to adjust for timezones.
For Issue 1: There are “single-use” email services such as:
that can be used for this service.
For Issue 2: I think I'll try to create all appointments using SLT time.
2023-12-16: OpenSim: Topic: Talkjaw Script
[13:21] Kaahupahau Sharpfang: *blinks* [13:21] Kaahupahau Sharpfang: How does your muzzletalk work? [13:21] Kaahupahau Sharpfang: is it a script in your jaw? [13:21] Snoots Dwagon: Yesh is. I can gives you copy. [13:22] Snoots Dwagon: Jaw is its own piece. [13:22] Kaahupahau Sharpfang: hugs the small dragon off the floor* [13:22] Snoots Dwagon: Ypu put a hinge at back of it and add script to hinge. Link hinge last. [13:22] Snoots Dwagon: Let me find script [13:22] Kaahupahau Sharpfang: May I add it to my avatars? Your name, or the scritps creators name, will be listed for the component! [13:24] Grid: Snoots Dwagon has given you this LSL2 script: -Talkjaw Script Do you want to keep it? “Mute” will block all future offers or messages from Snoots Dwagon . [13:24] Snoots Dwagon: Feel free to use. It's an open-source script. : ) [13:24] Snoots Dwagon: I not writed it [13:24] Kaahupahau Sharpfang: YES! *hugs you even more* [13:24] Snoots Dwagon: huggz [13:24] Snoots Dwagon: Enjoys! [13:25] Kaahupahau Sharpfang: Would you like to be references as the person pointing me to the script?
Contents:
vector minROT = <0, 1.9, 180>; vector midROT = <0, 10.9, 180>; vector maxROT = <0, 20.9, 180>; integer isOpen;
default {
state_entry() {
llSetTimerEvent(0.2);
llSetLocalRot(llEuler2Rot(minROT * DEG_TO_RAD));
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
llListen(667, "", NULL_KEY, "");
}
timer() {
if(isOpen == TRUE) {
llSetLocalRot(llEuler2Rot(minROT * DEG_TO_RAD));
isOpen = FALSE;
return;
}
integer info = llGetAgentInfo(llGetOwner());
if(info & AGENT_TYPING) {
//llStopAnimation("type");
vector rot = minROT;
rot.y = llFrand(maxROT.y - midROT.y) + midROT.y;
llSetLocalRot(llEuler2Rot(rot * DEG_TO_RAD));
isOpen = TRUE;
}
}
listen(integer chan, string name, key id, string message) {
if(llGetOwnerKey(id) != llGetOwner()) return;
if(message == " " || message == "Cancel") return;
if (message == "OPEN") {
llSetLocalRot(llEuler2Rot(maxROT * DEG_TO_RAD));
} else if (message == "HALF OPEN") {
llSetLocalRot(llEuler2Rot(midROT * DEG_TO_RAD));
} else if (message == "CLOSE") {
llSetLocalRot(llEuler2Rot(minROT * DEG_TO_RAD));
}
}
}
