Jump to content

KT Kingsley

  • Content Count

  • Joined

  • Last visited

Community Reputation

402 Excellent

About KT Kingsley

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. You're right that you need to change the owner stuff to user stuff. When you give someone a copy of the bike they become the owner, so the owner stuff works ok. But when you rez the bike on the ground you remain the owner. Exactly what you need to do depends on how the script handles the owner stuff. If there's a single call to llGetOwner and the resulting key is stored in a variable then it'd be fairly easy to give that variable the key of the user when they sit on the bike: something that can be done in the changed event when CHANGED_LINK is set. If, however, the script is peppered with llGetOwner calls, you'll probably want to create a global variable with the user's key and replace all the llGetOwner calls with that variable. Also, you'll want to replace any llOwnerSay calls with llRegionSayTo calls targeting the user. There is one minor drawback to what I've described above: bicycle theft. Any user will be able to grab the bike if they sit on it before the legitimate user does. Counteracting that would require a more involved rezzing process, where the bike is sent a chat channel number via the on_rez parameter, and then listens on that channel for the rezzer to tell it the key of the intended user. Of course, these things never turn out to be quite as simple as they seem at first glance.
  2. There's "Always show friends normally" just above "Show Friends only" in that menu, and just above that is "Avatar Render Settings" which allows you to make a list of avatar names marked "Render Fully" and "Do Not Render".
  3. Also, if you've already pasted the code as plain text you can select it and then click the <> icon to convert it.
  4. touch_start(integer num_detected) { ToucherID = llDetectedKey(0); ToucherOwner = llGetOwner(); if (ToucherID == ToucherOwner) { llListenRemove(listenHandle); listenHandle = llListen(dialogChannel, "", ToucherID, ""); llDialog(ToucherID, dialogInfo, buttons, dialogChannel); llSetTimerEvent(60.0); // Here we set a time limit for responses } }
  5. In the touch_start event you're collecting two ids, that of the toucher and that of the owner. So to make things owner only you should check that the toucher is the owner before going on to open the dialog. if (ToucherID == ToucherOwner) { //open the dialog }
  6. It's not something that's happened to me, but there do seem to have been quite of few questions about this in the Firestorm Support chat just recently.
  7. The issues of over a year ago may not be relevant today. But, with the Firestorm Support group chat running as a sort of background music, I do have the impression that there's been a bit of a spate of "Failed to grant capabilities" just recently, though it's not something I've experienced myself.
  8. The error, realised on line 23, seems to be an extra closing brace "}" on line 20.
  9. You can move a linked prim using llSetLinkPrimitiveParamsFast with the PRIM_POS_LOCAL flag. You'll want to find the best positions for the maximum and minimum speeds, and interpolate the actual position based on the actual speed. Something like this, perhaps: vector emitter_pos_max = <something>; vector emitter_pos_min = <something>; vector emitter_pos_range; float speed_max = something; float current_speed; default { state_entry () { emitter_pos_range = emitter_pos_max - emitter_pos_min; } some_event () { llSetLinkPrimitiveParamsFast (emitter_link_number, [ PRIM_POS_LOCAL, emitter_pos_min + (emitter_pos_range * (current_speed / speed_max)) ]); } }
  10. Not sure if this is helpful, but when I messed around with a variable bow wave for a boat I ended up using a linked prim as an emitter and moved that prim forwards and backwards along the keel as the boat tilted in response to its speed.
  11. Bottom left of your wishlist page: View and share your wishlist. The link address is in the form https://marketplace.secondlife.com/wishlists/Your.Name.
  12. Mismatched braces (curly brackets). Remove the one in line 13, and put a closing brace after line 18. You get the syntax error on the timer because that's where the compiler realises something's wrong: two lots of opening braces without their corresponding closing braces when it hits the timer event code.
  13. Ok, but the OP used the words "menu" and "anymore", which suggests to me that they at least used to be scripted.
  14. Have you tried clicking on the thing you're sitting on? And have you tried right-clicking it and selecting Touch? It could be that the object's scripts need resetting, but that'd be a job for the owner.
  15. Thanks, everybody. It seems there isn't a clever trick that can be used for this, so brute force it is. And, Rolig, I remember the time before llSetRegionPos and before llGetAgentList when those drones had to scamper around in ten metre steps and you had to check the conditions for each step if you wanted to be safe.
  • Create New...