Jump to content

Rolig Loon

  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Rolig Loon

  1. Try list List = ["n","n","13056ed9-7351-446d-b7ee-3152aeffed1a"]; default { touch_start(integer total_number) { list TOUCHER = [llDetectedKey(0)]; integer found = llListFindList(List,TOUCHER); if(~found) // Or just if(found != -1) { llSay(0,"Found"); llSay(0,(string)found); } else { llSay(0,"Not Found"); llSay(0,(string)found); } } } or
  2. I agree. It would be handy if moving_start and moving_end worked, but sadly they are meant for physics-enabled objects only and do not respond to things that are moved by the editor. Except for that, they would be my clear choice too. So, we get creative.
  3. It truly is! Many people have posted their own scenic views of Bellisseria in that thread. Perusing it -- the thread has become very long at this point -- is a great way to get an overview of the various sights of the continent. There are some super photographers posting in it. They've set a high standard. Thank you for your kind comments on my travelogues, @Scylla Rhiadra. I blush. They're my own excuse for wandering as much as my way of sharing quirky personal images of Bellisseria, which is a beautiful part of SL. I've been doing those travelogues at least weekly for the better part of a year now and can't imagine running out of day trips to share. The story depends on my mood as much as anything, and that also helps dictate which of four personas does the narrative and shows up in the photos. Swapping personas is also a sneaky way of keeping myself from presenting Bellisseria through a single lens. And yes, wardrobe is part of persona. I'm pleased that you enjoyed your quick perusal.
  4. That's quite true. And, no, there's no way to tell why the swing or its frame moved. That really doesn't matter, though. What's important is that it did move and you need to be sure that both parts moved to the new location. That's why I was suggesting that you always store the current location of the frame in its Description field. Make that the final step in the setup script. Do the same thing in the swinging part. Then, you build the "What if it moved?" routine into the swing script, activated every time that the swing is used. The swing always checks its own ending position with each use and queries the frame to see if its position matches its stored value. Most of the time, when it compares positions to the stored values, it will find that nothing has moved so no correction is necessary. On those rare occasions when you moved things for whatever reason, though, the position values won't match. At that point, have your script execute the setup routine again, realign the parts, and overwrite the position vector in the Description field, ready for the next time. So, what if the owner moves something on purpose? You tell her she can do either of two things: 1. Click the setup tool (wherever you put it), or 2. Sit on the swing and stand up again. Anyway, I'm not wedded to this idea, simply explaining it. I'm sure there are plenty of other clever tricks to do the same thing
  5. Rolig Loon


    What "what"? It looks like your monitor has dropped off the deep end and locked you into dark mode. Incidentally, @D4N4E, it sounds like your script is spinning something with llTargetOmega. (Not "rotating", BTW, which is something else.) If so, you can't stop it easily, That's a prim property. It can only be started or stopped by a script, and it doesn't require a script to keep it going. If you removed the script that was in it, the only way you are likely to get the spinning to stop is to drop a new script in it to do the job. A script like this: default { state_entry() { llTargetOmega(ZERO_VECTOR, 0.0,0.0); llRemoveInventory(llGetScriptName()); } } That script should stop the spinning and then immediately remove itself. EDIT: Heh. Qie got here first.
  6. @Scylla RhiadraThese days, almost entirely in the Linden Homes Photo Thread. I've never bothered with Flickr or whatever.
  7. Oh, I am SO glad to know that I am not the only one. That's such an embarrassing use error that I have hesitated to admit how often I do the same thing. My most common variation on the theme is to increase my draw distance dramatically to take a scenic photo and then wonder, later, why the heck everything is super laggy. My anxiety level goes through the roof until the light bulb slowly starts to brighten over my head and I think .... "Oh crap. Not again...." 🙄
  8. I agree. A polling loop is a last resort. That's why I suggested hiding the trigger for your "Did something move?" test in another action, like standing up from the swing. Have the script set the swing's rotation so that +Z points straight up every time a user stands, and then automatically check the position of the swing and the frame to be sure that they are where you left them the last time.
  9. Yes ^^ When my children were growing up, I tried to give them room to be creative on their own terms, learn how to listen to other people, and how to learn from their mistakes. I was there to cheer them on and to back them up if they got in over their heads. As long as they weren't doing something illegal or life-threatening, though, I was inclined to let them make their own choices and stupid mistakes. We always ended the day by me asking, "So, what did you learn today?" I have rarely been as proud of my daughter as I was when she graduated from college. In the quiet time after ceremonies, I asked her what she had learned, and she said, "I learned that I am really good at something." "I learned how to work and play well on hard jobs with the other guys." "I learned that there are a lot of people who care about me." If I had any part in preparing her mind to learn those things, I'm happy. I'm also proud that she is raising two teenage sons who seem to be turning out OK.
  10. Since the frame will stay put, non-rotating, once it's where the owner wants it, have your script save its position in a safe place, like the frame's Description field. Then, either have a timer compare that saved position to the frame's actual position periodically or simply make that comparison whenever you touch it. If the frame has moved, trigger your re-alignment routine again. You could do the same trick the other way too, but you'd have to be careful because the swing rotates. So, find some condition when the swing is going to be at a specific orientation (with Z vertical, for example) and use that as the orientation at which you save the reference position. Then script the swing to recreate that orientation (maybe when you stand up?) and then automatically compare its position to the stored position and make any necessary correction. With a little imagination, you can think of many variations on that theme, using stored positions or relative positions as points for comparison.
  11. If you intend to pass information from a rezzer to a rezzed object (say, for example, the UUID of whoever touched the rezzer), the smartest way to do that is to have the rezzed object send a "OK, I'm ready!" message back to the rezzer. When the rezzer receives that go-ahead prompt, it can send the important information in a quick llRegionSayTo message. That simple handshake protocol guarantees that the information is not passed prematurely. You can of course send the comm channel's value as the integer that's passed on_rez, so you put both a llListen statement and your "OK, I'm ready!" message in the on_rez event.
  12. There's another tool in your arsenal, too. Take a look at the object_rez event, which lets you capture the UUID of whatever it was that you just rezzed. Save that value as a global key so you can use it whenever you need to identify that particular instance.
  13. The Answers forum is intended as a place to ask how SL works (or why it doesn't seem to). The best way to attract interest from talented creators is to post a request like this in the InWorld Employment forum. It would help to be a bit more specific about what sorts of creators you hope to attract (Scripters? Mesh modelers? Animators? Terraformers? ... ). Then prepare a notecard with a moderately detailed outline of what the project entails, so you will be ready to hand it to anyone who asks the next obvious question.... Good luck with the project. 😎
  14. The wording is a bit confusing, but the bottom line is that the asset itself resides in the asset servers as a set of descriptors. When you rez an item in world, it is an instance of the asset with a unique UUID. So, five rezzed copies of the same object will have five different UUIDs. If you were to use a script in each copy to ask llSay(0, "My UUID = " + (string)llGetKey() ); you would get five different answers. Similarly, if your use llSensor to scan for llSensor("My_Object","",ACTIVE|PASSIVE, 10.); and it detects 5 instances of My_Object in range, each will report a different llDetectedKey(i) if you step through the list of detected objects. The part that's confusing is that for many types of assets (textures, animations, sounds, ..) the UUID does not change with each instance in world, so for example you can right click on a sound in inventory and choose "Copy Asset UUID" to get an immutable identifier that you can hard code into a script to produce that sound every time it calls llPlaySound(UUID_goes_here), 1.0); I find it easiest to think of those sorts of assets as prim properties rather than "things" that need a unique UUID each time they appear.
  15. I don't feel particularly protective of this short script, so I might as well share it. It's the companion to the swing script that I posted earlier. This script goes into the support frame that the swing hangs from ( sort of like the pipe framework that kids' swings hang from in a playground ). integer gDialog; default { touch_start(integer total_number) { if (llGetOwner() == llDetectedKey(0)) { integer DCHAN = (-1) * ((integer)llFrand(100000) + 1); gDialog = llListen(DCHAN,"","",""); llDialog(llDetectedKey(0),"Click \"OK\" to align swing parts", ["OK"],DCHAN); } } listen (integer channel, string name, key id, string msg) { if (msg == "OK") { llSensor("Smooth Swing","",SCRIPTED | ACTIVE | PASSIVE,10.0,PI); } } no_sensor() { llOwnerSay("I can't find the swing. Please be sure that it is within 10m of this frame."); } sensor ( integer num) { vector SwingPos = llDetectedPos(0); rotation SwingRot = llDetectedRot(0); llSetRot(llEuler2Rot(<0.0,90.0,-67.5>*DEG_TO_RAD)*SwingRot); llSetPos(SwingPos + <0.00,-0.03,0.665>*llGetRot()); } } WARNINGS: Like the swing script, this one is several years old. If I were taking the time to rewrite it today, I would probably take a different approach. It's nice and simple, though, so it's an example you can play with until it feels like something you would have created yourself. I have not said anything about how the swing and the separate frame are constructed. I'll leave that to your imagination. You'll probably make a better one than mine was anyway. This was never intended for sale, so it doesn't have the cosmetic bells and whistles or the security features that might prevent unwanted visitors from sitting on it.. It also doesn't delete the assembly script after the parts are aligned, which might be a nice touch (and save script time). As I recall, it was just one of those things that we all sometimes do on a rainy weekend afternoon.
  16. Well, that's an innovative solution that I wouldn't have thought of. I suppose it might work, if you were lucky enough to match the scale and positions of the two beds so that the anims appear logical in the visible bed. You may find out that you can't remove the unwanted anims and scripts. No-mod furniture is like that. You probably won't even be able to disable the scripts. You may also discover that the physics shapes of the to beds are different enough that you'll appear to float uncomfortably high on the visible bed. The biggest disadvantage of this scheme is that you'll end up using a wasting a chunk of your available Land Impact on an invisible bed. Unless you have L.I. to burn, that's not particularly wise. If you really want to update the "nice" bed, I think you ought to consider simply adding an invisible rectangular prim (for only 1 L.I.) that covers the whole thing like a bed box. Then go out and buy yourself some great anims, download a free copy of the AvSitter script system, follow instructions and their easy examples, and make an animation system that is customized the way you want it. You don't have to be a scripting whiz. It's not much more challenging than making an Ikea coffee table in RL.
  17. I ignored the GD forum entirely for many years because it was so toxic, then started lurking and participating here when Maddy lured convinced me that saner voices were on the ascendant. CoVid-19 seems to be doing a job on everyone's mental state, so perhaps "saner" has become less certain again. In any case, I will join Lil in scrolling / ignoring most of the heated threads here for a while. My own sanity is still more or less intact, but I don't want to be responsible for tipping anyone else over the edge by accident.
  18. Yes, that's a tough one. I spent half of my professional career in college classrooms with 18 - 22 year olds. They are apprentice adults at that age -- old enough to know better but not experienced enough to do it consistently. Most are away from home for the first time, bearing the burden of making life-shaping decisions without familiar close oversight. They deserve the respect that we give to other adults and the guidance and protection that we give children. My own personal choice was to refer to them as young men and young women, not boys and girls, because I felt that they deserved that mark of respect. At the same time, I felt a responsibility as an educator and parent to offer them much more support and guidance than I would ever offer full-fledged adults, a responsibility to act as a role model as much as a teacher. It's a delicate balancing act all around, and language -- even the words we use to describe each other -- is malleable and contextual.
  19. In a word, "NO". Read your TOS, Sect. 3.3: 3.3. Linden Dollars may not be purchased or sold outside of the LindeX exchange. Any purchase or sale of Linden Dollars through any means other than the LindeX is not permitted and is considered a violation of these Terms of Service which may result in suspension or termination of your Account. In other words, "NO".
  20. There is no such thing as "THE script" to attach and unpack a box. Whatever you have was written to offer whatever the scripter (or her client) thought would be a useful set of functions for performing whatever tasks she chose to tackle. Scripters may start out with the same general idea in mind, but every scripter is going to create something a bit different from the next scripter. The best way to answer your question would be to read the instructions that came with it. Failing that -- assuming that the script itself is no-copy, so that you can't see into it -- is to ask the person who wrote it.
  21. While you're playing with the life preserver, don't forget to click the option to get your package of extra goodies. There's a collection of handy textures and building materials, plus a supplementary security orb that you can use for controlling access to your parcel or to a skybox.
  22. That's probably the best way to resolve this one. The problem is in the word "log", which leads you to expect that the next word will be "cabin". These aren't cabins. The moles didn't build them to be rustic places where you sleep in a sleeping bag on a rickety steel cot and cook your meals in a cast iron skillet on a wood stove. Those would be very cool places for weekend getaways but I suspect most people have more fun decorating and living in the upscale "mountain homes" that the moles built.
  23. Try a simple experiment: 1. Rez a prim, label it "Box A", and take it into your inventory. 2. Now, find Box A in inventory, right click on it, and select Attach To >> Head. That's the same as ADDING the box to your head. You should see it there now. 3. Detach the box. It will remember that it is supposed to attach to your head next time you use it, so here's the REAL experiment: 4. Find Box A in your inventory again, right click on it, and select ADD. It should attach to your head again, just as before. No surprise. So detach it again. 5. One last time .... Find Box A in your inventory, right click on it, and select WEAR. It will attach to your head OK but POOF! Your hair is gone, replaced by the box. Now you have to go digging through your inventory to figure out where you put your hair, so you can WEAR it to replace the box. As Lilith says, ADD attaches an item to a specific spot on your body, regardless of what might already be there. WEAR replaces what might already be there. That's why newbies occasionally find themselves buck naked when they WEAR a piece of jewelry that is meant to attach at the same spot where they already have a dress attached.
  24. People do a lot of strange things that most of us would never dream of trying. Some are compulsive risk-takers, others have no financial sense, and I imagine a few believe that they have wandered into a fantasy game world where they aren't buying and selling things with real money. Oh, and then there are the few people who have heard that you can earn a healthy income by running a business in SL, so they want to "invest" in buying lots of land and building a shopping empire to get the ball rolling. The Lab's limits protect those poor souls from themselves and they discourage big scale disasters that might harm other SL residents and even the Lab itself. The Lab does let you request a review of your limits, which I suppose is their way of identifying a rare Anshe Chung who can handle big amounts of L$ safely but, yeah, that's not you or me. 🙄
  • Create New...