Jump to content

Wulfie Reanimator

Resident
  • Posts

    5,725
  • Joined

Everything posted by Wulfie Reanimator

  1. The eBody is modifiable, so that's a big plus especially in the long term.
  2. They may be thinking of using != to substitute llGetListLength: integer length = [1,1,1] != []; // 3, the length of the non-empty list integer difference = [1,1,1] != [123]; // 2, subtracts length of A from B
  3. The furry community is pretty mod-friendly. You have lots of different creators creating different avatar components, and then there are creators that create a "mod pack" which is a collection of textures for all of the different components from different creators. Most furry avatar components are modifiable, so they often don't come with applier scripts, so we end up with loose textures in mods, so we can apply those ourselves. 🙂 Maybe by distance (doesn't seem like it, I get max resolution textures on objects across the sim), and not by screen space. The smallest object on your screen can have a fully loaded 1024px texture.
  4. I know it's a bit confusing to watch since my cursor wasn't visible, I click on the tail texture in the texture picker list at 0:13. It displays it in the texture slot (but not on the attachment) and complains about no-copy/no-transfer. Then I close the picker list and also try to drag textures from my inventory. That's on Firestorm, and it's been like that for years.
  5. 🤷 https://imgur.com/gipxbAc - Most textures are not copy+transfer (for very good reasons) so you end up with this. Dragging a (no transfer) texture onto a modifiable attachment fails to apply it, unless you rez the target object on the ground first. (Dragging the texture onto the slot in the build window also copies the texture into the object's contents for no reason.)
  6. The value will be an empty string in the event, which is also mentioned as a caveat on the wiki page: https://wiki.secondlife.com/wiki/LlLinksetDataWrite
  7. It hasn't been possible to drag textures (or use the texture picker) on worn attachments for a loooong time, even if you have modify permissions.
  8. There are over 76'000 results for "furry" for products rated General, and 1212 results for "kink" (with the products ranging from Dec 2022 to June 2010). The General-rated products with "kink" have it in the tags and description, so we know that word doesn't affect the rating. The only standout word I was able to find was "Sellah" which only has one product (+ demo) rated General, but that one's probably not it since there's only 24 listings across all ratings.
  9. Or more like we'll get one really nice looking object, with the rest of the world textured in glorious 128px downscaled textures because the viewer refuses to keep more in memory.
  10. A common pitfall is reading input from a user, like if you're getting vector data in a listen event, for example while you're processing chat commands. A user might say "color, <1,0,0>" and you might convert this into a list with llCSV2List to get ["color", "<1,0,0>"] If you try to use llList2Vector to access that second list element, you'll get ZERO_VECTOR because the value is actually not a vector, but a string. The list access functions don't do automatic typecasting* (which I think is an oversight). This is why you have to sometimes use llList2String instead, and typecast the value yourself. *Edit: And just to make things more annoying, llList2String is smarter than the rest: llOwnerSay(llList2String([<1,1,1>], 0)); // Output: <1.000000, 1.000000, 1.000000> For that reason, typecasting the value from llList2String is a universal solution which won't break due to type differences.
  11. It's just one LSL command: https://wiki.secondlife.com/wiki/LlRequestAgentData That'll tell you any account's creation date, payment info, and current online status.
  12. It is normal, because certain feature (like sharp edges) generate new geometry (like edge splits).
  13. I had nothing better to do. Money object: default { // Let the rezzer know who touched this object. touch_start(integer total_number) { list data = llGetObjectDetails(llGetKey(), [OBJECT_REZZER_KEY]); key rezzer = llList2Key(data, 0); if (rezzer) { integer channel = (integer)("0x" + (string)rezzer); llRegionSayTo(rezzer, channel, llDetectedKey(0)); llDie(); } } // Set the object's lifetime based on rez parameter from llRezObject. on_rez(integer seconds) { if (seconds) { llSetTimerEvent(seconds); llSetStatus(STATUS_PHYSICS,TRUE); } } timer() { llDie(); } } Money rezzer: integer channel; // Unique channel is generated for this rezzer string money_object = "money"; // Name of rezzed object integer money_amount = 1; // Amount paid per rez integer money_max = 1; // Max lindens to pay out integer money_given; // Running total float rez_radius = 10; // Should be no greater than 10 float timer_min = 5; // seconds to rez float timer_max = 10; // seconds to rez integer rez_lifetime = 10; // Seconds before money object disappears default { // Main setup run_time_permissions(integer permissions) { if ((permissions & PERMISSION_DEBIT) == FALSE) { llOwnerSay("Status: No debit permission, can't give lindens!"); return; } if (money_object == "") { llOwnerSay("Status: No money object defined!"); return; } channel = (integer)("0x" + (string)llGetKey()); llListen(channel, money_object, "", ""); llSetTimerEvent(timer_min + llFrand(timer_max - timer_min)); llSetText("Balance: " + (string)money_max, <0,1,0>, 1.0); llOwnerSay("Status: Ready"); } // Rez a money giver within a random position around this object, then randomize timer. timer() { vector pos = llGetPos(); pos.x += llFrand(rez_radius * 2) - rez_radius; pos.y += llFrand(rez_radius * 2) - rez_radius; llRezObject(money_object, pos, ZERO_VECTOR, ZERO_ROTATION, rez_lifetime); llSetTimerEvent(timer_min + llFrand(timer_max - timer_min)); } // Give money to a key heard from a rezzed object. Shut down when threshold is reached. listen(integer channel, string name, key id, string message) { if (money_given >= money_max) { return; } key avatar_key = (key)message; if (avatar_key == NULL_KEY) { return; } llGiveMoney(avatar_key, money_amount); money_given += money_amount; if (money_given < money_max) { llSetText("Balance: " + (string)(money_max - money_given), <0,1,0>, 1.0); } else { llSetTimerEvent(0); llSetText("Balance: 0", <1,0,0>, 1.0); llInstantMessage(llGetOwner(), "Out of money to give"); } } on_rez(integer start_param) { llResetScript(); } state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); } }
  14. You may or may not be having similar issues as here: https://community.secondlife.com/forums/topic/494389-some-odd-behaviour-in-fs/
  15. I imagine it's not the word itself, but the kind of content the product is likely to contain.
  16. As Rowan said, you will only receive IMs once, on one viewer/device. That viewer will store the message to its own chatlog, but other viewers/devices will not share that chatlog.
  17. On the contrary, IRL, if a person has a will, their possessions go the the named heirs; if not, they go to relatives who are entitled to inherit under the law, if any can be identified. If no heirs can be located, their possessions go to the state for the benefit of all the state's residents. Exactly. As you said, we don't hand out a dead person's stuff to everyone. First they go to who whoever the items are willed to, and there are several steps beyond that which never lead to "anyone who wants it, gets it." That's not at all the same thing as the state getting hold of someone's physical possessions. You can transfer ownership of your account in your will, but only the whole account.
  18. LL: *bans you* Also LL: *makes your stuff full perm* On a more serious note, where the owner has voluntarily closed their account, it doesn't seem like an open invitation to "give away my stuff." (As much as we like to joke about that on the forum when someone is quitting.) We generally don't hand out a dead person's stuff to everyone, either.
  19. Remove "boobs" from your tags, and probably the description. Your other products have the same issue, where individual products are rated General, but the fatpack with "boobs" as a tag is marked Mature. Just having "eBody, Reborn, Juicy" is close enough to get people finding your products. You can also add Reborn Juicy Boobs in the "works with" field without affecting your product's maturity rating, while making it visible when searching for "juicy AND boobs".
  20. Seems a bit weird if LL would start distributing my stuff because I'm not responding to customers (possibly because I don't want to, or care to).
  21. If it was 200L, I'd pay it just to sate my curiosity. Right now it's a bit rich for my blood. 🙂
  22. Certain sims/areas cause driver crashes for my RX 6600 (sometimes reliably within a minute of logging in), but I haven't been able to pinpoint any reasons. When I crash, there's usually not much around me, and tightly packed sims work just fine with high framerates. Plenty of RAM/VRAM left too. Going somewhere else works well enough so far.
  23. I suppose you could still use the bake channels for Base Color in PBR. BOM skins would then just require a different technique in the future.
  24. Every time you open the websearch window/floater, the page refreshes. (Even if the floater was already open / minimized!)
  25. First sort the list alphabetically with llListSort, then sort for llDialog: list sort_buttons(list buttons) { return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10); }
×
×
  • Create New...