Jump to content

Wulfie Reanimator

Resident
  • Posts

    5,744
  • Joined

Everything posted by Wulfie Reanimator

  1. Survey says: Two years is roughly what I would expect "soon" to translate to. "Not any time in the foreseeable future" might as well be "never."
  2. Considering how IPs haven't ever been displayed in SL, making them visible now would be ridiculously unnecessary (and would cause panic) and just an overall bad decision. That said, assuming that someone isn't using a VPN (most people), getting that person's IP will reveal their general location and their ISP. For example: If I look up information about my own public IP, I can see which city/state/country I'm in and an incorrect postal code. Whether or not people knowing your country is "too identifying" or makes you uncomfortable is up to you, no reasons needed. The ethical thing for the longest time has been to default to "keep IPs as private as practically possible." But you can't get any identifying information about the person behind that IP address. No street address (or even postal code), no name, no email, nothing. If someone wanted to get personal information about someone, an IP might be a starting point on where to start looking while comparing information from other places like conversations, web profiles, etc. Security-wise, the simplest thing that can be done to a public IP is flood it with requests until it fails to do anything and basically goes offline (Denial of Service attack). Anybody could do this with no knowledge of programming or networking. That might sound scary, but really it's just an inconvenience. Turning off the "internet box" in your home for 30 seconds is generally enough for you to get a new public IP address, meaning that whoever might've had your previous IP can no longer attack you (or do anything else).
  3. The logic of the code seems very confused. Here are some excerpts: RLVUnlock() { llListenRemove(handle); } // Later... if(message == "Lock/Unlock") { llSetObjectDesc(""); RLVUnlock(); // Listen gets removed llListenRemove(handle); // Redundant state default; } // These menu functions change the global variable OwnersMenu(key id) { handle = llListen(Channel,"","",""); llDialog(id,"Owners Menu", OwnersM,Channel); } // Later, every time those menu functions are called... if(message == "Owners") { OwnersMenu(toucher); // New handle is set llListenRemove(handle); // He's dead, Jim. } You can't do this, because it breaks your menu. A new dialog is opened, but nothing is listening for that new dialog's buttons. A bandaid resolution would be to remove the previous handle and THEN set a new one, in each menu function. For example: OwnersMenu(key id) { llListenRemove(handle); // Remove previous handle = llListen(Channel,"","",""); // Set new llDialog(id,"Owners Menu", OwnersM,Channel); } // Later, every time those menu functions are called... if(message == "Owners") { OwnersMenu(toucher); // Everything is A-OK } But at this point you'll always have one listen open so there's no point even having the ListenRemove there to begin with.
  4. Ah, sure, I figured "and the like" qualified anything that would be permanently rezzed rather than attached. Here's one of the first results I got on MP for a skybox: Now, while this creator has a pretty good grasp on triangle control, something else is very amiss... And if I look around the store some more, it shows that even they fall into the same trap.
  5. Don't get too paranoid. Whatever you've managed to convince yourself of, other residents can't "magically delete" items from your inventory. In fact it's impossible to even script any kind of functionality to make inventory items disappear. For reference for other people:
  6. All clubs are privately owned by other residents, and make their own rules. There are no universal rules for all clubs, besides Second Life TOS.
  7. I will say it is absolutely a norm already. I see more stores doing it terribly than I see them do it even decently.
  8. Oh, sweet summer child... I have dozens and dozens of examples of stores who have no idea.
  9. Because: list buttons; buttons += [llGetSubString(llList2String(ava,0),0,23)]; Here, you are using List2String to get the first avatar (at index 0). Then you use GetSubString to get the first 24 characters of their key (index range from 0 to 23). Instead, you would need a loop to do that for every avatar in the list. And besides that, if you want the menu to be readable (names instead of UUIDs), you should use Key2Name instead of GetSubString. That has its own complications as you'll then need to use one of the functions to convert the name back into a key, and store it in a global variable so that you can "remember" it in the listen event.
  10. Can you link the product? Based on your description it can't be much more than 2-3 lines of code.
  11. Answer this: Why is this in the "Answers" section when you didn't ask any questions? Also, LL is working on a mobile chat client.
  12. You want "SublimeLinter" -- the first one, nothing else. That is the base framework used by all the other options. Also, check the post just above yours. Edit: If you don't see it in the list, make sure you haven't actually installed it already. For example, Ctrl+Shift+P and "List Packages"
  13. They make a full 360 degree spin before running into a direction.
  14. But this goes back to everything I said in my first post. If I did what you did, I feel like I'd develop carpal tunnel in three days flat, or I have to angle my keyboard about 30-45 degrees and make typing really awkward.
  15. There are no syntax errors in my code besides the "[ ... ]" I did not write code that you can just copypaste into your script. I showed you an example of how to use llListFindList to get an index from one list and use it in another. Now it's your turn to read the wiki page I linked, and teach yourself how to use that function.
  16. You can use llListFindList on the list with names, to get that name's index. Then, you can use that index to access the UUID in the other list, assuming both lists are in the same order. list names = ["red", "blue", "green"]; list uuids = [ ... ]; default { listen(integer channel, string name, key id, string message) { integer index = llListFindList(names, [message]); key uuid; if (index != -1) { uuid = llList2Key(uuids, index); } } }
  17. Why would you even want to use your left hand to use the arrows and page up / down keys? 🤨 I think that answers my question... Unless you're left-handed like @Selene Gregoire points out, but handedness brings me to another question. Does handedness actually matter? (I'm not saying you can't have a natural preference.) While that might seem like an obvious "duh of course," I've had to deal with this weird "imposed handedness" from early age with a fork and knife. People point out that I hold them wrong (fork in right, knife in left), but I don't get it. That feels way more intuitive to me and I don't think it has anything to do with my dominant hand. I have the same question regarding controllers, where movement (WASD) is handled by your left hand and camera (mouse) by your right. I haven't heard of any "left-handed controllers," so unless those are mainstream, I'd imagine your handedness doesn't prevent you from learning to use a controller. Also to clarify: I understand how handedness works. What I'm pondering above is whether there's a real correlation with your handedness and your keyboard/mouse habits. I believe a right-handed person could naturally prefer a left-handed mouse.
  18. I can't even imagine using the arrow keys, just the position of my hand is uncomfortable if I rest my (left) hand there. (You guys use the mouse to turn the camera at least, right...?) Just sitting naturally, the tips of my left hand's fingers are over the left side of my keyboard, where WASD is. If I want to type, I hit the Enter key with my right hand and now both of my hands are ready for two-handed typing. And if I need the arrow keys while I'm typing, my right hand does the job because my left hand can also hold Ctrl/Shift/Alt. Speaking of Ctrl/Shift... WASD movement also helps you with moving around. You can easily switch between walking/running/flying with Ctrl+R/Ctrl+F (no need to move your hand), as well as holding Shift+WASD to move in any direction without turning your camera or using your mouse. And finally, since your hand is near Alt as well, it's very easy to switch from moving around to alt-camming into whatever you need. While Ctrl/Shift/Alt are also near the cursor keys, there's a massive difference in hand position and trying to reach out with your pinky if you're trying to do the same as above. With WASD, I can hold my wrist completely straight and all my fingers line up (except for Alt for which I need to tuck my thumb under my fingers). P.S. The only exception I can understand is left-handedness, or a laptop without a mouse, but that has its own set of problems..
  19. I don't think looking at Object Updates is very useful. Those are network related, as in how often the sim tells your viewer that something has changed about an object (even if it isn't visual). Lots of updates wouldn't cause any GPU load because all objects are drawn (basically, for the sake of brevity) from scratch every frame, regardless of updates. There are things in the hidden Developer menu that can be used to analyze what exactly the GPU is doing, but it's... really only useful for developers. There's probably way too much information to parse through for a random person to even begin to understand any of it. Show Info > Render Info Consoles > Texture Console Consoles > Fast Timers (all stuff that gets done, including rendering) It's more likely that, somewhere, there's some ridiculously high-density mesh causing framerate drops while it's in view. It could be the farms, something near them, or just everything in their general direction that just collectively gets too heavy to render quickly.
  20. llGetTimeStamp will give you a string with the current date in "YYYY-MM-DD" format. From that, you can easily check if "DD" is, for example, "01" or the first day of the month.
  21. It's a togglable setting built into the viewer. That said, I have a bad habit of peeking into most people's avatars. Sometimes there's interesting stuff there!
  22. Your account was born on 08/24/2017, that's 757 days ago, or 2 years and 27 days.
  23. To be fair, people have been paranoid/uneducated about IP addresses since the dawn of time. "OMG they have my IP address, can they hack me???" or "NEVER GIVE YOUR IP ADDRESS TO ANYONE!!!" Other privacy concerns, like how websites/Google collect so much data about you they can recreate your whole personality and then sell that data is a bigger, real concern. There are companies dedicated to collecting and selling information about you specifically. Whether or not you care is up to you, but VPNs (and not all VPNs are the same) are one way to hide your actions from being connected to you.
  24. There seems to be some kind of disconnect somewhere, "alpha" and "transparency" are the exact same thing regardless of context. llSetAlpha changes the transparency of an object's face. Textures with an alpha channel can be partially transparent. Textures without an alpha channel (or alpha blending) can't be transparent. You have the basic concept correct though. (Except you can't switch between two textures over a period of time, it has to happen instantly.) You need to start from one end and just use llSetAlpha to adjust the object in small increments. You can either do it in a single loop with llSleep to control how long the loop takes to complete, or you can use llSetTimerEvent so that the alpha change is done in a non-blocking way which allows your script to do other things in between the alpha changes. The wiki page actually has an example that's pretty close to what you're trying to do.
×
×
  • Create New...