Jump to content

Rolig Loon

Resident
  • Posts

    46,306
  • Joined

  • Days Won

    5

Everything posted by Rolig Loon

  1. That looks great, Innula! I am out of town for the next week so I won't be able to try it out fo myself until I am home again and can get back inworld, but that's exactly the sort of thing I was hoping to be able to write. Nice work.
  2. That's because you can't sit on a HUD. You also can't control yourself with a HUD. The only way this system works is for you to sit on an object and control it.
  3. I'm not sure which "source" you might be thinking of. The only possibility that occurs to me is the login screen on a third party viewer that expects a second name. If that's your problem, just enter your second name, Resident. You are southerndream Resident. (Some viewers expect a dot between the two names instead of a space.)
  4. Upon further reflection and listening to a voice from beyond, it occurs to me that from the server's perspective, an animation is a triggered event. Once triggered, the work is being done by the client, which has received its permission in the trigger. So it really doesn't matter how many people a script can hold permissions for at once. When an animation like a dance is triggered as you sit, the client takes over. After that, it assumes that it has permission to continue until you stand up. You ought to be able to use multiple calls to llAvatarOnLinkSitTarget .
  5. Vixie Darkfury wrote: Well, I knew about llRegionSay() but it seems even worse than shouting. I can't RegionSayTo cuz I'm talking to unknowns and in some cases multiple objects. So, it seemed to me a chat mode with an intermediate range was the solution. Vixie Not at all. Especially if you choose a high negative channel, the load you are putting on the sim with llRegionSay is almost negligible. When you're speaking to several distant objects at the same time, it is absolutely the best way to go. And if they are all speaking to you, llRegionSayTo is even smarter.
  6. There's an easy answer, but it's a good idea to read all of the side information that goes along with group ownership of land too. It's all here >>> http://community.secondlife.com/t5/English-Knowledge-Base/Group-owned-land/ta-p/700079
  7. Well, there's always llRegionSay, which carries anywhere within the same region and is a standard way to communicate with objects sim-wide, and the even more useful llRegionSayTo, with which you can speak directly to any avatar or object anywhere in the same region.
  8. If you have the view with "Me" at the top, you are using the viewer. Evidently, you have downloaded and installed it, so you're doing fine. You are the incredibly attractive person standing in the middle of the screen, with your back to the camera. Now you can start learning some basci skills. Read here >>> http://community.secondlife.com/t5/English-Knowledge-Base/Second-Life-Quickstart/ta-p/1087919 And Welcome to Second Life, Rita. :smileyhappy:
  9. You do need to put your own animations in it. :smileywink:
  10. A recent forum thread asked how to make an avatar phantom so you can walk through walls. You can't do that exactly, but you can fake it. Here's one way.... //Walk Through Walls -- Rolig Loon -- February 2012 stop_anim() // Cancel all current active avatar animations { integer list_pos = 0; list Anims2stop = llGetAnimationList(llAvatarOnSitTarget()); integer list_length = (Anims2stop !=[]); if(list_length > 0) { while(list_pos < list_length) { llStopAnimation(llList2String(Anims2stop, list_pos)); list_pos++; } } } string gWalk; string gStand; float gAvHeight; default { state_entry() { llSetMemoryLimit(8128); llSitTarget(<0.0,0.0,0.1>,ZERO_ROTATION); gWalk = "CCfWalk02medium"; //Put your own favorite walk anim here gStand = "*GA* Pretty Girl Stand V3"; //Put your own favorite stand anim here } changed(integer change) { if (change & CHANGED_LINK) { if (llAvatarOnSitTarget()) { llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TAKE_CONTROLS |PERMISSION_TRIGGER_ANIMATION); } else { llSetAlpha(1.0,ALL_SIDES); llSetTimerEvent(0.0); } } } run_time_permissions(integer perm) { if(PERMISSION_TAKE_CONTROLS|PERMISSION_TRIGGER_ANIMATION & perm) { llSetAlpha (0.0,ALL_SIDES); llTakeControls( CONTROL_FWD | CONTROL_BACK | CONTROL_LEFT | CONTROL_RIGHT | CONTROL_ROT_LEFT | CONTROL_ROT_RIGHT | CONTROL_UP | CONTROL_DOWN | 0, TRUE, FALSE); stop_anim(); vector size = llGetAgentSize(llAvatarOnSitTarget()); gAvHeight = size.z; llSetTimerEvent(1.0); } } timer() // Adjusts height above whatever is under the av { list results = llCastRay(llGetPos(), llGetPos() + <0.0,0.0,-2.5>, [RC_REJECT_TYPES, RC_REJECT_AGENTS|RC_REJECT_PHYSICAL, RC_MAX_HITS, 1] ); vector UnderMe = llList2Vector(results,1); llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_POSITION, <UnderMe.x, UnderMe.y, UnderMe.z + 0.40*gAvHeight>]); } control(key id, integer level, integer edge) { if(level & (~edge) & CONTROL_FWD) { llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_POSITION,llGetPos() + <0.05,0.0,0.0>* llGetRot()]); llStopAnimation(gStand); llStartAnimation(gWalk); } if (level & (~edge) & CONTROL_BACK) { llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_POSITION,llGetPos() + <-0.05,0.0,0.0>*llGetRot()]); llStopAnimation(gStand); llStartAnimation(gWalk); } if (level & (CONTROL_ROT_LEFT | CONTROL_LEFT)) { llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_ROTATION,llEuler2Rot(<0.0,0.0,1.0>*DEG_TO_RAD)*llGetRootRotation()]); } if (level & (CONTROL_ROT_RIGHT | CONTROL_RIGHT)) { llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_ROTATION,llEuler2Rot(<0.0,0.0,-1.0>*DEG_TO_RAD)*llGetRootRotation()]); } if (level & CONTROL_UP) { llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_POSITION,llGetPos() + <0.0,0.0,0.05>*llGetRot()]); } if (level & CONTROL_DOWN) { llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_POSITION,llGetPos() + <0.0,0.0,-0.05>*llGetRot()]); } else if (~level & edge) { llStopAnimation(gWalk); llStartAnimation(gStand); } } } The timer event uses llCastRay to locate whatever surface is directly under you, and then adjusts the height of the object you are sitting on so that your feet are just touching that surface. You may want to fiddle with that height adjustment and with the speed of the timer event to get it just right. You may also want to add a camera control to set the cam position in a proper spot behind you, in case this doesn't default there naturally. This is basically a simple non-physical hovercraft script, modified to create the walking illusion.
  11. Try this ... //Walk Through Walls -- Rolig Loon -- February 2012stop_anim() // Cancel all current active avatar animations{ integer list_pos = 0; list Anims2stop = llGetAnimationList(llAvatarOnSitTarget()); integer list_length = (Anims2stop !=[]); if(list_length > 0) { while(list_pos < list_length) { llStopAnimation(llList2String(Anims2stop, list_pos)); list_pos++; } }}string gWalk;string gStand;float gAvHeight;default{ state_entry() { llSetMemoryLimit(0x8000); llSitTarget(<0.0,0.0,0.1>,ZERO_ROTATION); gWalk = "CCfWalk02medium"; //Put your own favorite walk anim here gStand = "*GA* Pretty Girl Stand V3"; //Put your own favorite stand anim here } changed(integer change) { if (change & CHANGED_LINK) { if (llAvatarOnSitTarget()) { llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TAKE_CONTROLS |PERMISSION_TRIGGER_ANIMATION); } else { llSetAlpha(1.0,ALL_SIDES); llSetTimerEvent(0.0); } } } run_time_permissions(integer perm) { if(PERMISSION_TAKE_CONTROLS|PERMISSION_TRIGGER_ANIMATION & perm) { llSetAlpha (0.0,ALL_SIDES); llTakeControls( CONTROL_FWD | CONTROL_BACK | CONTROL_LEFT | CONTROL_RIGHT | CONTROL_ROT_LEFT | CONTROL_ROT_RIGHT | CONTROL_UP | CONTROL_DOWN | 0, TRUE, FALSE); stop_anim(); vector size = llGetAgentSize(llAvatarOnSitTarget()); gAvHeight = size.z; llSetTimerEvent(1.0); } } timer() // Adjusts height above whatever is under the av { list results = llCastRay(llGetPos(), llGetPos() + <0.0,0.0,-2.5>, [RC_REJECT_TYPES, RC_REJECT_AGENTS|RC_REJECT_PHYSICAL, RC_MAX_HITS, 1] ); vector UnderMe = llList2Vector(results,1); llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_POSITION, <UnderMe.x, UnderMe.y, UnderMe.z + 0.40*gAvHeight>]); } control(key id, integer level, integer edge) { if(level & (~edge) & CONTROL_FWD) { llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_POSITION,llGetPos() + <0.05,0.0,0.0>* llGetRot()]); llStopAnimation(gStand); llStartAnimation(gWalk); } if (level & (~edge) & CONTROL_BACK) { llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_POSITION,llGetPos() + <-0.05,0.0,0.0>*llGetRot()]); llStopAnimation(gStand); llStartAnimation(gWalk); } if (level & (CONTROL_ROT_LEFT | CONTROL_LEFT)) { llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_ROTATION,llEuler2Rot(<0.0,0.0,1.0>*DEG_TO_RAD)*llGetRootRotation()]); } if (level & (CONTROL_ROT_RIGHT | CONTROL_RIGHT)) { llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_ROTATION,llEuler2Rot(<0.0,0.0,-1.0>*DEG_TO_RAD)*llGetRootRotation()]); } if (level & CONTROL_UP) { llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_POSITION,llGetPos() + <0.0,0.0,0.05>*llGetRot()]); } if (level & CONTROL_DOWN) { llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_POSITION,llGetPos() + <0.0,0.0,-0.05>*llGetRot()]); } else if (~level & edge) { llStopAnimation(gWalk); llStartAnimation(gStand); } }} If you want to fly, you'll have to make appropriate modifications, but this will let you walk through walls. You may want to add a camera control so that your cam position is always in the righth position behind you as you sit. EDIT: Added a llCastRay component in a timer event, so that the object keeps your feet on the ground (or whatever you are on) while you walk. It helps you look natural if you are walking up stairs or on uneven ground. Could be a little dicey in a skybox, though. :smileytongue:
  12. You can always check for yourself at http://www.gridsurvey.com . I just did, and your sim is online.
  13. Linden Lab doesn't accept most debit cards. If you have a credit card, you're more likely to be successful. You may use the following payment methods with Second Life: Visa American Express MasterCard Delta Online JCB Discover (U.S. Residents only) Visa Electron (non-U.S. Residents only) Here are some common reasons for credit card failure: You entered the credit card number incorrectly. You did not enter the billing address or entered it incorrectly. It should be the same address that appears on your bill. You did not enter the name on the card or entered differently from how it appears on the card. Be sure you updated your card's expiration date in the Second Life Billing Information page. The credit card is not in the list of accepted payment methods (see above) You did not enter the CVV (3 digits on the back, or 4 digits on the front for AmEx) or entered it incorrectly. The card is expired, or the expiration date was entered incorrectly. There are no funds available on the credit card to validate it. We send a US$1.00 authorization to ensure that a credit card is valid. This is not a billing, but the card must have at least US$1.00 available on it to pass validation. Your monthly payment limit is reached, and/or your bank is not authorizing any more transactions. The issuing bank has not pre-approved transactions with Linden Research, Inc. Contact the issuing bank to resolve the problem. If you are outside the US, your card may not be set up for international/overseas transactions (this is very common with Visa Electron). If none of the above applies, contact your credit card provider to determine the cause. You may also contact Linden Lab Billing Support.
  14. A sim restart can't do anything to your inventory, but many other things can. Take a look at https://wiki.secondlife.com/wiki/Lost_inventory for suggestions about what you can do to recover.
  15. Is your sim offline? Check http://www.gridsurvey.com/index.php . If it is, try logging in somewhere else for now and teleport to your land when it's available again.
  16. To quote the LSL wiki (which is only as infallible as we make it), the catch is that "scripts may hold permissions for only one agent at a time. To hold permissions for multiple agents you must use more than one script." If that were not so, this nice little discovery would help make some really great couples dance machines.
  17. See the long-running thread on this topic at http://www.sluniverse.com/php/vb/scripting/32062-script-read-song-information-stream.html
  18. My guess is that LL will treat this as yet another "disagreement between residents" and will ignore it..... until it blows up and they can't. It all depends on how many AR's they get and who's watching.
  19. The reason for turning off your translator, as Cinn and Chelsea have suggested, is that the built-in translators no longer work unless you have paid for an account with Google for their translation service, or have a free Bing translation account. Google pulled the plug on their free Tranalation API in December, so that service is no longer available. If you have an account number for one of those two subscription services, you can enter it in Preferences >> Chat. Also, there are still some translators available in world that do not rely on Google.
  20. When you are shopping in Marketplace, it's probably wise to avoid the shopping cart and just buy items individually. Aside from occasional problems with the shopping cart itself, you may run into problems getting your purchases delivered if you buy too many things at once. Items that you buy are actually delivered from each Merchant's Magic Box, a scripted device that sits on land that the merchant owns somewhere in SL. If a Magic Box gets to many requests at once, it can easily lose track of what it's doing, so it may report that it sent some items that were not, in fact, delivered at all. The two ways around that problem are (1) buy Marketplace items one at a time or (2) shop in world.
  21. Interesting. As I said, I was pretty sure that other people had discovered this behavior before me. Like most people, I stopped paying any attention to that ancient wiki two or three years ago when it stopped being updated. It does have some chatty tidbits like that one that never made it into the current wiki, though. Thanks, Clarke. Now, all we need to do is get the note into the current wiki ........... EDIT: Done, in both llSitTarget and llLinkSitTarget.
  22. Quoting LoveAngel Lyre...... "Hello SpinWeaver and welcome to SL Forums. If you use the last version of Viewer 3 (3.2.4) is a known issue. Several other residents reported this here. You can roll back to the previous version (3.2.1) In this case set your software updates not to be installed automatically (preferences --> setup). Alternatively download the beta (3.2.5)." You might also try turning off OpenGL Vertex Buffer Objects (VBO) in Preferences >> Graphics >> Hardware settings and see if that helps.
  23. I suppose others have made this discovery, but I just realized that the llLinkSitTarget function that was added late last year makes it very easy to seat several avs on the same object, in a way that I hadn't expected. I have a simple park bench made of two sculpties (the seat is the root prim and the legs are prim 2). I put this script in it.... default { state_entry() { llSetMemoryLimit(0x4000); llLinkSitTarget(1,<-0.5,0.32,0.1>,llEuler2Rot(<0.0,0.0,PI/2>)); // Sit on the "seat" prim llLinkSitTarget(2,<0.2,0.35,0.4>,llEuler2Rot(<0.0,0.0,PI/2>)); //Sit on the "leg" prim } }and two avs can sit on the seat. If both avs click on the same prim, the first one to sit down is always assigned to the target on that prim, and the second av is seated on the other prim. So, if both avs click only on the "seat" prim, the first av always gets link sit target #1 and the second always gets target #2. If both click only on the "leg" prim, then the first one is assigned to link sit target #2, and the second av gets target #1. The thing that surprises me is that the second av is always seated on the "other" prim without having clicked that prim to sit, and that the system knows that the second av should default to the prim with the empty sit target. As I say, others have probably already made this discovery, but I just found it and I think it's cool. It adds a new dimension to multiple seating, not yet documented in the LSL wiki. :smileyhappy:
  24. ALL of your cache is on your computer. That's the whole idea. A cache is a local storage location (local = on your computer) where your viewer saves copies of things that it has downloaded. Having downloaded and stored them once, it doesn't have to go to the trouble of doing it again, over and over and over, every time you want to use the same information. Your texture cache, for example, saves copies of every texture that you see on screen in SL. If it didn't do that, you would have incredible texture lag. You would see every object as gray while your computer downloads its texture again. Angel and Cinn have told you where to find it
  25. Well, since it is getting baseRot from that prim's local rotation, just add an extra rotation to it. You want to rotate the local X axis vertical, so (....doing this in my head .... ) this ought to work...... baseRot = llEuler2Rot(<0.0,PI/2,0.0>*llGetLocalRot(); Thing is, you are using an overkill door script for a job that really doesn't need all of its baggage. It would be much better to write yourself a short script that handles the movement instead of modifying this monster. It's easy to get lost in this thicket of code.
×
×
  • Create New...