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));
      }
  }

}

Last modified: le 2023/12/16 21:29