Jump to content

Rufus Darkfold

Resident
  • Posts

    300
  • Joined

  • Last visited

Everything posted by Rufus Darkfold

  1. I think this would send a message to the first 16 avatars it found that are within 96 meters of it, not "everyone in the sims". Still handy though.
  2. It is possible to read 5 out of the 6 axes of the SpaceNavigator with a script using llTakeControls. up/down, right/left, forward/back, and turn-right/left can be read by the documented bits. pitch-forward/back can be read by 0x40 and 0x80. These controls are only generated by joysticks, not the keyboard. (note that pitch will move the camera, regardless of what is passed to llTakeControls, unless the avatar is sitting). Haven't found any way to get to the "roll" axis. http://community.secondlife.com/t5/LSL-Scripting/Are-keyboard-controls-really-limited-to-just-movement-keys/td-p/776481
  3. LamiaAmorist wrote: Kay well.... that is a little overwhelming, I played SecondLife years ago.... I don't remember it being so complicated. Is there anyone who can tell me how to change the sex of my avatar? If I could just do that for now I would be happy. People "in the game" are not very helpful at all. Most likely the people you asked in-game did not know how to do it either.
  4. You can also get some extra combinations by pressing more than one of those keys simultaneously. The bits are simply ORed together. I found a few undocumented control bits: 0x40 Pitch forward - Only from the joystick, cannot disable the camera movement with llTakeControls. 0x80 Pitch Backwards - (ditto) 0x400 - Forward or Back, in addition to 0x1 or 0x2 respectively, if it's from the joystick or autorepeat has kicked in. 0x800 - Left or Right, in addition to 0x4 or 0x8 respectively, if it's from the joystick or autorepeat has kicked in. 0x2000000 - actually rotated left 0x4000000 - actually rotated right With these flags, it is possible to distinguish most joystick/spacenavigator input from keyboard input, and to read 5 out of the 6 axes on a spacenavigator. I still haven't found a way to get the 6th one.
  5. Is it OK with the terms of service to shoot these cars if they are empty? Would it be OK to shove them off the END_OF_WORLD?
  6. What is "WASDEC"? The link just points to the wiki page for llTakeControls.
  7. Perhaps she could be persuaded to have it fly apart and then llDie when it collides with something. That would at least be more entertaining.
  8. I prefer the mainland. I'm building an Egyptian museum there. I also like to fly around and sail around. Teleporting is boring.
  9. If you have a linkset with a number of flexiprims that you want to set, you may find this script useful. http://community.secondlife.com/t5/LSL-Scripting-Library/primset-bulk-prim-property-setter/td-p/714501 One copy in the root prim can set or read anything that llSet(Get)LinkPrimitiveParams can do, for itself, all chidren or any subset specified by number or name. Click on the object to open a chat channel (which times out after 5 minutes). I have a HUD in development that works with this script.
  10. If the root is physical, PRIM_POSITION on the avatar still works, and I can still get underground, but then there is a force pushing me back towards the surface, as well as tending to tip over the whole linkset.
  11. The limit for PRIM_POSITION seems to be 1000 meters total distance from the root, with a limit of 75 meters of movement per PRIM_POSITION call.
  12. An avatar can be put underground with llSitTarget or PRIM_POSITION in llSetLinkPrimitiveParams. The object sat on remains above-ground. The avatar pops back up to ground-level when he/she stands up, but it is possible to move around underground using PRIM_POSITION while seated. Suitable use of animations can make it look a bit more natural (though you still have the usual jerkiness associated with non-physical movement). No need for special animations, the stock ones will do. The sit target or PRIM_POSITION does the actual movement. There is probably some limit on the distance from the root, but it seems to be more lenient than the usual linking rules. I have just verified this.
  13. I was able to ride a physical+volumedetect vehicle a ways underground a few months ago. Maybe something changed. At first, it wouldn't go more than about 50 meters underground. There were no megaprims in the build, I'm sure the whole thing was underground. I think I was using llMovetoTarget(). Then it suddently went into a dive into the blueness, I bailed out at -12000m or so and it popped me up to the surface. The boat was lost.
  14. Prims, because only prims can be flexi. The hair came out more like plumage, but I kinda like it that way.
  15. Some of the Toshiba Qosmio laptops have an Nvidia 460M. That is supported by Second Life and is likely a match for any ATI that could be put in a laptop. No problems on high or ultra graphics. I have a Toshiba X505-Q898 Intel® Core™ i7-740QM Processor Genuine Windows® 7 Home Premium 6GB DDR3 memory 500GB hard drive (7200rpm) 64GB solid state drive 1.5GB GDDR5 NVIDIA® GeForce® 460M Blu-ray Disc™ and DVD SuperMulti with Labelflash® LED backlit keyboard 1920x1080 native resolution (1080p) Bluetooth® 802.11n wireless Integrated webcam I see Toshiba has a sale on that model now. http://www.toshibadirect.com/td/b2c/pdet.to?poid=488791
  16. For those of us who use emacs, there is lsl-mode.
  17. There should be a forum for this. We tend to go for the latest-and-greatest hardware for Second Life because it is a very demanding application. It is hard for Linden Labs to keep up, but we can help by sharing information if we have a good place to do it. This would also aid Linden Labs in determining which new hardware we are trying to use.
  18. This is a bulk prim property setter. It can set or query anything that can be set with llSet/GetLinkPrimitiveParams for every prim in the link set, or any subset. It responds to chat commands on channel 884 (change by editing the variable "channel"). Click on the object to select it, then it will start listening for chat commands. The listen will time out after 5 minutes of inactivity. Once the object has been selected, individual prims within the linkset can be selected or de-selected by clicking them or by chat commands. Chat commands are: Optional prefix of "/" followed by output chat channel number (note that only case 2 below generates output) Optional prefix enclosed in brackets "[ ]" with list of child id numbers or child object names to select. "[*]" selects all prims individually, No list uses existing selection list. Followed by: 1. a list of parameters to pass to llSetLinkPrimitiveParamsFast or 2. "?" followed by parameters to pass to llGetLinkPrimitiveParams When the object is initially selected, the selection list (of prims within the object) is empty. Prims may be selected by clicking on them or the whole selection list may be replaced with the "[ ]" chat syntax. An empty selection list will default to LINK_SET for Set (case #1) and LINK_ROOT for Get (case #2). If there are multiple prims selected (including "[*]") the Set or Get will be repeated for each one. All lists entered above are separated by commas. Example commands: 25,-1,0.1 Set glow parameter for all sides of previously-selected prim(s) to 0.1 /886 [2,3,4] ?21 Get flexi parameters for child indices 2,3 & 4 whisper on 886 [*] ?7 Get size of each prim in the link set, whisper on channel 0. [foo] 27,bar Rename all prims named "foo" to "bar". I have a HUD to provide a GUI for setting the flexi and light-related parameters. The list_cast function is in the script library archive. //primset - v0.3 - bulk set prim properties by chat message // need to include list_cast function from sl script library integer channel = 884; //channel to listen on float timeout = 300; // stop listening after 5 minutes of inactivity debugout(string msg) { // llOwnerSay(msg); } integer outchan; reply(string msg) { llWhisper(outchan, msg); } list subset; integer hlis; default { timer() { if (hlis){ llOwnerSay("Deslecting " + llGetObjectName()); llListenRemove(hlis); hlis = 0; } } touch_start(integer num) { llSetTimerEvent(300); llResetTime(); if (!hlis) { hlis = llListen(channel, "", "", ""); llOwnerSay(llGetObjectName() + " selected. Listening on channel " + (string)channel); return; } while (num--) { integer child=llDetectedLinkNumber(num); integer j = llListFindList(subset,[child]); if (~j) { llOwnerSay("Deselecting #" + (string)child); subset = llDeleteSubList(subset, j, j); } else { llOwnerSay("Selecting #" + (string)child); subset += child; } } } listen(integer ch, string name, key id, string msg) { list sub; list cmds; integer i; if (llGetOwner() != id) { if (llList2Key(llGetObjectDetails(id, [OBJECT_OWNER]),0) != llGetOwner()) return; } outchan = 0; if (msg == "") { subset = []; llSetTimerEvent(0.1); // empty message = disconnect right away; return; } llSetTimerEvent(timeout); if (llGetSubString(msg, 0, 0) == "/") { // specify response channel integer endch = llSubStringIndex(msg, " "); outchan = (integer)llGetSubString(msg, 1, endch); msg = llGetSubString(msg, endch+1, -1); } if (llGetSubString(msg,0,0) == "[") { integer e = llSubStringIndex(msg, "]"); if (e > 1) subset = list_cast(llCSV2List(llGetSubString(msg, 1, e-1))); else subset = []; msg = llStringTrim(llGetSubString(msg, e+1, -1), STRING_TRIM_HEAD); if (llList2String(subset,0) == "*") { subset = []; for (i=1; i<=llGetNumberOfPrims(); i++) subset += i; } } if (llGetSubString(msg,0,0) == "?") { cmds = list_cast(llCSV2List(llGetSubString(msg, 1, -1))); list curr; sub = subset; if (sub == []) // If not specified use root (or only) prim sub = [ (llGetNumberOfPrims() > 1) ]; debugout(llList2CSV(cmds)); for (i = 0; i<llGetListLength(sub); i++) { if (llGetListEntryType(sub,i) == TYPE_INTEGER){ integer j = llList2Integer(sub,i); if (j == LINK_SET) j = LINK_ROOT; curr = llGetLinkPrimitiveParams(j, cmds); reply("[" + (string)j + "] " + llList2CSV(curr)); } else //if (llGetListEntryType(subset,i) == TYPE_STRING) { integer k; string x=llList2String(sub,i); list exp; for (k=1; k<=llGetNumberOfPrims(); k++) { if (~llListFindList(llGetLinkPrimitiveParams(k,[PRIM_NAME,PRIM_DESC]), [x])) { curr = llGetLinkPrimitiveParams(k, cmds); exp += k; reply("[" + (string)k + "] " + llList2CSV(curr)); } } debugout(x + " is " + llList2CSV(exp)); } } return; } cmds = list_cast(llCSV2List(msg)); if (subset == []) sub = [LINK_SET]; else sub = subset; debugout("On " + llList2CSV(subset) +":"); debugout("Cmds: "+ llDumpList2String(cmds,"; ")); for (i = 0; i<llGetListLength(sub); i++) { if (llGetListEntryType(sub,i) == TYPE_INTEGER) llSetLinkPrimitiveParamsFast(llList2Integer(sub,i), cmds); else //if (llGetListEntryType(subset,i) == TYPE_STRING) { integer k; string x=llList2String(sub,i); list exp; for (k=1; k<=llGetNumberOfPrims(); k++) { if (~llListFindList(llGetLinkPrimitiveParams(k,[PRIM_NAME,PRIM_DESC]),[x])) { llSetLinkPrimitiveParamsFast(k, cmds); exp += k; } } debugout(x + " is " + llList2CSV(exp)); } } } }
  19. Actually the chat log was posted to the locked forum. I read it there a day or 2 ago. It was the only new post. Being "locked" wouldn't stop a Linden from posting there, would it? It isn't in the archives, presumably because that snapshot was taken before 2/28.
  20. What happened to the "Open Source" forum?
  21. What I REALLY want is to be able to hook up a mocap suit: http://www.xsens.com/en/general/mvn
  22. The Space Navigator works in Kirsten's S21 viewer for Linux, but not in s20 or the latest LL viewer for LInux. It is possible to distinguish some Space Navigator input from keyboard input in Control messages by enabling some undocumented bits. Are these bits going to stay around? Shoud we add them to the wiki? Has anyone modded the viewer to work with TWO Space Navigators to provide some additional Control inputs?
  23. It rejected my Mac, and it rejected my Toshiba laptop when it was running Ubuntu, but it let me in with Windoze 7 on the same laptop. I hope the eventual release of this won't be Windows-only.
×
×
  • Create New...