Jump to content

Wulfie Reanimator

Resident
  • Posts

    5,808
  • Joined

Everything posted by Wulfie Reanimator

  1. I'm redacting my quotes a lot to not make my posts 1000000000000000 lines long. That said, I couldn't say what's wrong without seeing the full script. Admittedly I haven't read the original script you're trying to adapt (and I'm not going to), but anyway. Your originally said this: So, you have an attachment with a touch_start event. In that event, you want to rez an object in front of the avatar, at ground level. Here's a more complete example: float floor_distance; default { state_entry() { vector size = llGetAgentSize(llGetOwner()); floor_distance = size.z / 2; } touch_start(integer n) { // Because you want to rez something based on the avatar's position // you will need llGetPos. Then you just need to add the distance // for where the object should be placed. vector position = llGetPos() + <1, 0, 0>; // That would rez the object directly in front of you. // To use the calculated floor distance, you must include it with // the minus-sign (because otherwise the positive value would cause // the object to be rezzed at head-level instead) like this: position = llGetPos() + <1, 0, -floor_distance>; // Lastly, you need to take the avatar's actual rotation into account // for the offset, so that the object will be in front of you no matter // which direction you face. Otherwise the object would always be // rezzed to the East because the positive X-axis points towards // East in SL's coordinates. position = llGetPos() + (<1, 0, -floor_distance> * llGetRot()); // (You only really need the third example, not the two above it.) // vector position = llGetPos() + <1, 0, -floor_distance> * llGetRot(); llRezObject("Object", position, ZERO_VECTOR, ZERO_ROTATION, 0); } } I recommend that you try removing some of the lines to see how it changes the outcome, and play around with it. Try changing it so that the object gets rezzed high on your right side instead. You should eventually also read the wiki page on applying rotations, but for now it's not necessary. You can delete all the comments as well when you're done. (It does not set the object's rotation either, so I'll leave that up to you, or you can take what you learn from this to fix the script you already have.)
  2. That's not true, look at all the other viewers for SL. Many people are able to compete with LL. The official mobile client will be chat-only (maybe with inventory), and isn't in development for Android.
  3. Mesh that is using BOM can still have normal and specular maps, only that multiple normals/speculars won't be combined nor applied by system layers. Edit: I agree that it's inconvenient to say the least that we're basically required to use scripted appliers just for normals/speculars, but that doesn't mean BOM isn't useful or important. Not to mention that the system is/should hopefully be expandable to allow baking of other materials in the future (as I think some Linden mentioned in the megathread), along with having those materials added to the system layers themselves.
  4. It's slightly complicated if you can't visualize the problem in your head. llGetPos will give you the position of your avatar's center. To get to the floor level, you need to get the avatar's height (llGetAgentSize) and divide its height (the Z component) by half. (Because the distance from the center of your avatar to the floor is half of the avatar's height.) llRezObject will rez an object so that its root's center will be at the given position. If the root is tall, you will need to -- again -- add half of the root's height to the position you're about to give to llRezObject. vector size = llGetAgentSize(llGetOwner()); float floor_distance = size.z / 2;
  5. Cute word for wolf + this. I was too young. I mainly go by Nina which was just a name a friend of mine came up with some years ago.
  6. Shut up. Gaming Policy refers to skill gaming. Harmful content would be the closest one.
  7. It's hard to make that suggestion when we don't know what other features are used through the media. Besides, llPlaySound would probably be preferable over llTriggerSound, as PlaySound won't be heard by other people if it's used in a HUD.
  8. Considering the unique and specific characteristics of a mobian, there's no way you could substitute the head with some generic animal head. In other situations your advice is spot-on.
  9. No, there isn't. If you try, you'd be breaking the TOS and probably get banned for it. All residents have a right to privacy, even if your intentions are "good."
  10. llScriptProfiler Resident ...actually, I took that one. 🤓
  11. Can you post any previous work with wireframe view?
  12. Determine and define which direction is the object's "front." You can, for example, use a vector like <1, 0, 0> (meaning positive X is forward) and account for the object's current rotation. http://wiki.secondlife.com/wiki/Rotation http://wiki.secondlife.com/wiki/LlGetRot Get the rotational difference between the object's front and "north." (Positive Y, probaby.) http://wiki.secondlife.com/wiki/Coordinate http://wiki.secondlife.com/wiki/LlRotBetween Rotate by that amount. http://wiki.secondlife.com/wiki/LlSetRot
  13. Why wouldn't they use the most attractive avatar in product pictures? That's good marketing. You shouldn't ever use an ugly avatar to showcase a product. The focus in that first link is the eye, everything else is just "window dressing." I understand that it might seem frustrating to you, but the base head seems to be this one with these parts added for the hair (from the same store as the first link), besides the custom textures. Obviously, the "out of the box" avatar isn't as attractive as the custom-made one, but that's why you might want to talk to the creator and commission them or learn how to customize things on your own. Creativity is how you make a unique avatar that is eye-catching.
  14. Neither of those links are heads... The first link is an eye set, the second link is a lingerie set. Since you liked the head shown in the first link, you should try reading the description again. It has a list of heads, one of which must be the one in the picture.
  15. changed(integer change) { if (CHANGED_LINK) { key agent = llAvatarOnSitTarget(); if(agent == NULL_KEY) { llUnSit(agent); } } } @Pussycat Catnap
  16. @animats & @Nova Convair "Let's pass a string instead" is kind of out of the scope for this topic/update, though. Besides, it's an impossible request in its current form because changing or adding a string to on_rez would (almost, if adding) definitely be a breaking change.
  17. It's fine to recommend specific products as long as it's relevant (ie. someone specifically asks for recommendations) and not just advertising/spamming. You can find the rules here.
  18. Ah, sorry, I missed the bit about male bodies. Though, depending on your preference (and especially mine), I would still use the Normie as it's ambiguous enough to work for a younger, effeminate guy.
  19. The Normie head by Utilizator is bento-rigged, great quality, omega-ready, modifiable, and only 500 L$.
  20. Can you go into any specific details about those changes? (Talk techy to me, LL.) Or at least, what can we as scripters expect that is different from before, or is this just a performance increase? Why did content break, or was it only because of those already existing race-conditions?
  21. They've been gone for 3 years, you can move on. If they come back, you can talk to them about it. If you're being harassed by them or things got too awkward, block them as well.
  22. What you're asking -- a timed sequence -- is fairly simple. If there is only one dancer, it's very simple. If there are multiple dancers, it's still pretty simple but there needs to be some kind of cross-communication between the HUDs or whatever you'd want to use to keep everybody in sync with the lead dancer. If you're not comfortable with LSL, you should find a scripter to do it for you. You can post in the Wanted or Inworld Employment sections of the forum, for example.
  23. So where's Guido gonna go? (Dexter isn't real life either.)
  24. There's a special thing about what you're seeing and what there actually is. When you see text like this: That line of text is actually this: That long bunch of stuff is called a URI (not URL), which is a special pattern that your viewer can convert on-the-fly to a usable link that does something. (Opens a profile, in this case.) The exact name shown in chat depends on your viewer settings. For some people, it would only show a display name. To be more clear, these are the first 10 characters of that string that displays my name: string message = "secondlife:///app/agent/779e1d56-5500-4e22-940a-cd7b5adddbe0/about says hello!"; llOwnerSay(message); // "Wulfie Reanimator says hello!" string first10 = llGetSubString(message, 0, 9); llOwnerSay(first10); // "secondlife" If you know that the message always begins with a URI, you can easily get the key with llGetSubString, convert that to a username with llKey2Name (for example), and then replace the whole URI with the plain-text username. You can also do a pattern-search for "secondlife:///app/agent/" with llSubStringIndex if you don't know where exactly the URI will be.
×
×
  • Create New...