Jump to content

Wulfie Reanimator

  • Posts

  • Joined

  • Last visited

Everything posted by Wulfie Reanimator

  1. Since the texture is the same (so you know what it should look like) but the location is different, your video memory (VRAM) may be full due to the number/size of other textures in the area. Since you're on mainland, the only control you have of other textures is to either reduce your draw distance, derender them, move somewhere else, or limit the maximum size of all textures to 512 if your viewer has that option.
  2. Multiple copies/duplicates/clones of the same object are not differentiated though.
  3. When you say "unique id number," I assume you mean an ID you yourself have defined and you don't mean the object UUID. If that's correct, I don't think it's possible for you to detect a "clone" or copy of an object unless you can detect both copies at the same time. Every time you rez an object, it gets a new UUID that's considered totally unique, even if it's a direct copy of another object. This even applies to No Copy objects if I recall.
  4. Native: Älä tee syytä syyttömälle tai vikaa viattomalle. (Finnish) Literal: Don't make reason [to the innocent] or fault [to the innocent]. Proper: Don't guilt the guiltless or harm the harmless. (or "don't guilt/accuse/blame the innocent") It's one of the forbiddances from Väinämöinen (Wainamoinen), a character of Finnish folklore (1551 & 1888). They're similar to the moral foundations of the ten commandments, but not religious and I don't think there ever was just one set of these. (As folklore tends to be adapted differently by individual groups.) I can do one more but this one's a struggle to translate: Native: Ei parta pahoille kasva, turpajouhet joutaville. (Finnish) Literal: No beard [for evil] grow, [goat-chin?] [for the lazy]. Proper: Bad men grow no beard, and useless men grow coarse. Traditionally, a full beard was a sign of experience, wisdom, and manliness. It's a metaphorical statement -- I would interpret it as "if you're lazy, dishonest, or otherwise not what's expected, you're worth less as a person." It could also be interpreted as "Evil people don't survive. Lazy people suffer."
  5. You need to set the value of pos in state_entry before you make any changes to its position, and then never change it. That's why your script is causing the object to veer off.
  6. So I went ahead and grabbed the source code from the 25th (before changes to the teleporting were being made) and moved all required code to Avatar.lsl so that anyone can compile it without any of the include files. LSL Preprocessor is still required with Lazy Lists and Switch statements. These can be enabled from Preferences > Firestorm > Build 1. It's still expecting a link message to activate, so I'm using a second script: #define cdLinkMessage(a,b,c,d,e) llMessageLinked((a), (((++mySeqNum) << 16) | (b << 10) | c), myName + "|" + d, e) #define lmInternalCommand(command,parameter,id) cdLinkMessage(LINK_THIS,0,305,command+"|"+parameter,id) string myName = "Sender"; integer mySeqNum = 0; default { touch_start(integer n) { // lmInternalCommand("teleport", "home", llGetKey()); // becomes // cdLinkMessage(LINK_THIS, 0, 305, "teleport"+"|"+"home", llGetKey()); // becomes... llOwnerSay((string)["llMessageLinked(", LINK_THIS, ", ", (((mySeqNum + 1) << 16) | (0 << 10) | 305), ", \"", myName + "|teleport|home", "\", \"", llGetKey(), "\");" ]); llMessageLinked(LINK_THIS, (((++mySeqNum) << 16) | (0 << 10) | 305), myName + "|" + "teleport|home", llGetKey()); } } To summarize a bit: My object has two scripts (above) in it and one landmark called "home". The script is very idle, no events are firing regularly. An example call is made: llMessageLinked(-4, 131377, "Sender|teleport|home", "1124a70c-55c0-e9ed-2a3a-ba32deb8a22b"); Once received, the command is parsed as split = ["teleport", "home"] and code = 305. (line 711) We arrive at case "teleport" with correct data, rlvTPrequest = llRequestInventoryData("home"); (line 771 & 779) The dataserver triggers and a teleport is attempted. (Link message is sent to another script.) The script that is supposed to perform the RLV command doesn't exist in my object, so the test ends here. The dataserver event works fine. It works even when all 11 scripts are assembled and working together. When I got to this point the first time, I too became puzzled because dataserver was indeed never happening. Then I noted the #ifdef EMERGENCY_TP (if defined...) and went around looking for where that was defined. I found it in config.h: /* enable optional emergency TP after collapse */ // #define EMERGENCY_TP 1 Basically, since that definition didn't exist, the dataserver event was completely left out of the compiled script. I sure hope that was intentional at the time the code was committed to the git repo, because the next commit is the rewritten version we started talking about in this thread with all the problems and test scripts. (So this missing definition is not directly related to the code shown in this thread so far, but according to OP's Issue log, the reason for the rewrite is that they were having the same problem.) As an aside, I seriously doubt that events could ever malfunction because of the age of the object containing the scripts. I may do another look at the rewritten version from the 27th, but moving those macros over by hand was an incredible chore. It doesn't help that Windows is a garbage system and I couldn't even clone the repository properly. (All fault goes to Microsoft.)
  7. All you need is to change the URL within your LSL script. The instructions for what you need to change are in the page I linked.
  8. You can't just request the entire sheet and expect to be able to receive or store it within LSL. It's just not possible, there's not enough memory to work with. You have to request smaller parts of the sheet, process those, then request more. Start here: https://developers.google.com/sheets/api/samples/reading#read_a_single_range
  9. So I did a little test with this code, the only changes I made to your post-processed source code was fix the indenting, renamed the jumps to sensible names (switchA1/switchA2/break1, etc.) and added three OwnerSays (that start with "wulfie") just to see that code executes correctly. Then I sent this link message from another script in the same prim: llMessageLinked(LINK_THIS, 305, "|teleport|home", ""); 305 stands for "internal command" and the first "|" is removed by llParseStringKeepNulls, which is required because the script expects (and calls llDeleteSubList on) a "header" before the command. This doesn't fail. From this I can conclude that the problem is not the LSL preprocessor (since this is the code it produces), nor the logic of the script itself. The problem has to be in the other script that tries to send the link message. Maybe something was changed (or forgotten) about the parsing process. I would start looking there next, because the problem isn't in this code for a fact.
  10. To be fair, the Kemono body can easily be used for a child avatar, even though it isn't one inherently. You don't need to be using things like SMB or Toodeloo. Whether or not someone's avatar is too childlike is almost entirely subjective, especially these days with the whole boom in babygirl/kawaii themes, and there's a big grey area where people will disagree. Apparent age is also relative. Most anime avatars (especially those using stock Kemono/M3/M4) will look significantly younger than those using stock Lara, Jake, etc. If you're in an adult themed sim where most people are using regular human avatars, any random Kemono that walks in is likely to be perceived 'too young' regardless of how justified it is. It is unfortunate that some people will get the wrong end of the stick, personally I would let the person stay, but I wouldn't blame the officer for not wanting them there without seeing the avatar in question. "Breast shaming" them crosses a line into buttholery, though. That's completely uncalled for even if the avatar was a child and I'd warn/fire them if things like that happened again.
  11. If you have a single script that we can compile (with all the required code/macros within that script -- not relying on other scripts/includes), could you post that?
  12. Grasping at straws and this shouldn't be a problem but try renaming queryLandmarkData within doTeleport to something else, as a simple sanity-check. Variable name masking should work just fine in LSL, but I'm not seeing anything else suspicious in that script. The system is too complex for me to just pop it into an object inworld and start debugging it, at least right now.
  13. Since this script is intended as a HUD, it's a safe assumption that the script is attached to an avatar when the events trigger, which allows you to rely on auto-granted permissions (especially if there's nothing in particular you need to do within run_time_permissions). Though it doesn't sound like that was done intentionally. It has minor pitfalls, namely that if you make a permission request right before you try doing something that requires permissions, auto-granted permissions might not kick in fast enough. (I assume at least one sim-frame needs to pass.) But since nothing like that is happening, that doesn't become an issue. Couple things I would point out: The effect script doesn't need teleport permissions since it doesn't even try to teleport anything. The effect script's different destinations (Tp1, Tp2, ...) use the exact same code. Having read both scripts multiple times, I don't see anything inherently problematic in there that would cause a TP to fail. Those "Tp1" messages are being sent on different channels -- from the button (-99587) to start the effect, then from the effect (-99588) back to the button to execute the teleport. If the problem is caused by the scripts, it'd have to be multiple teleport calls (probably to different locations) getting things mixed up, or it could just be classic SL problems (not a scripting problem).
  14. It used to be possible to drag items directly into attachment inventories... like 5+ years ago. Not sure why they changed it.
  15. What other events are in the script? What do the 10 other scripts do? Is your event queue exceeding the maximum limit? How many other dataserver-related function calls are you making? (If you're using a single variable, you may be replacing the handle before you get the response.)
  16. This also highlights how much more the viewer could be streamlined.
  17. Not directly. The only way to have animated textures in SL is to upload what's basically a "sprite sheet" where each frame of the animation is placed side-by-side on a grid. Then to animate it, it needs to be placed on a scripted object. Viewing the texture directly will not animate it.
  18. This is going to be a really simple example but as I said before, you'll have to "counter-act" the distortion of the UVs. One way to do that in Photoshop would be to use the Edit > Transform > Warp tool and the Fisheye mode to "shink" your texture on the breast. But this will mean less pixel density in an already small UV area. We can already see harsh pixelation in the UV texture you showed, compared to the rest of the shirt, so doing this will make it even worse.
  19. Can you show us what you are seeing? The specific part of the UV you're trying to texture, and what kind of texture you're making?
  20. Unwrapping is a process where you create a "map" of what part of a texture goes where on the mesh. That determines the UVs you have to texture. Since you don't have the mesh files, you can't re-unwrap the UV. Since curved surfaces can't be perfectly represented on a flat texture plane, you'll have to either compensate for the stretching by creating an opposite distortion in the texture, or accept the stretching you see on the mesh. So if your texture is getting literally stretched, then try to create a more "dense" area there in your texture.
  21. So far we have no context at all for what these objects are doing (or for what purpose). That's why I gave the most universally applicable example instead of over-engineering it too quickly. For example, if the sound source (rezzer?)'s lifetime is greater than the collider, it should be no issue to programmatically communicate the correct URL to it before anything crosses a sim boundary and just refer to it that way.
  • Create New...