Jump to content

Tattooshop

Resident
  • Posts

    365
  • Joined

  • Last visited

Everything posted by Tattooshop

  1. Hey! Is it possible to make a physical object behave on water in the same way as on land, not sinking? And if so, how?
  2. She's cute, lucky you! Thank you for sharing!
  3. What does your beloved partner look like today? Pictures are welcome!
  4. Just one more thing. How to add a check so that if no object has been touched yet and the key has not been retrieved, a message like "You must touch the object you want to change the texture on!" when trying to change texture is displayed?
  5. Yoohoo! that's it, figured it out! HUD was on the ground, so it didn't interact! Attached it as a HUD and it worked! Thanks again! You are super helpful!
  6. Thanks again! Please tell me what I'm doing wrong, why doesn't it work? Here are both draft scripts. OBJECT Script: integer iOBJChannel = 10; integer iHUDChannel = 20; default { state_entry() { llListen(iOBJChannel, "", "", ""); } listen(integer channel, string name, key id, string msg) { if (msg == "TEXTURE") llSay(0, "Done!"); } touch_start(integer total_number) { llRegionSayTo(llDetectedKey(0), iHUDChannel, llGetKey()); } } HUD Script: integer iOBJChannel = 10; integer iHUDChannel = 20; key objKey; // or string.... default { state_entry() { llListen(iHUDChannel, "", "", ""); } listen(integer channel, string name, key id, string msg) { objKey = (key)msg; } touch_start(integer total_number) { llRegionSayTo(objKey, iOBJChannel, "TEXTURE"); } }
  7. Thanks! Almost, but the HUD script seems gets the message with the object key as text, how can I convert it back to a key so that it can be sent to that specific object? listen(integer channel, string name, key id, string msg) { msg == objKey; // how to string to key? } touch_start(integer total_number) { llRegionSayTo(objKey, iOBJChannel, "TEXTURE"); }
  8. Hello! I have a question for you. Texture on object changed with HUD. And when there is one object, then everything is fine, if there are several objects, everything is fine if you need to change textures in the same way on all objects. But if you need to change the texture on only one of them without affecting the rest, you will have to either stop the scripts or do everything manually. Is it possible to somehow restrict the action, for example, to click on an object, it sends some kind of signal to HUD and the texture changes only on it? If it makes sense... Thanks for any help!
  9. Thank you so much! You are genius! 👍
  10. Hello! 🤚 I have an unpacker script, but all the items it gives must have copy permission, and if it encounters no copy item, it throws an error. How to add such a filter so that if, among other things, a no copy item was found, it would be placed in the "Objects" folder, and all copy items — in the usual way — into the newly created folder? Added: or it is still unpacked as a regular item, but is moved from the package to the folder with all the items, if it makes sense. Thanks for any help! default { touch_start(integer total_number) { integer x; for (x = 0; x < total_number; x++) { if (llDetectedKey(x) == llGetOwner()) { string InvenName; integer InvenNumber = llGetInventoryNumber(INVENTORY_ALL); list InvenList = []; integer y; for (y = 0; y < InvenNumber; y++) { InvenName = llGetInventoryName(INVENTORY_ALL, y); if (InvenName != llGetScriptName()) InvenList += [InvenName]; } llGiveInventoryList(llGetOwner(), llGetObjectName(), InvenList); } } } }
  11. Thank you very much! I was very interested in trying your versions, but for some reason first script gives an error in line 62. What am I doing wrong? I understand that these names are not defined in the script. How to do it right? And the script stubbornly refuses to send a link by RegionSayTo / llInstantMessage, so I had to use llSay. Is this completely impossible or can I somehow fix it?
  12. Thanks a lot! Now everything works! It's like a magic spell! 👍
  13. I mean, yes, of course, you can pre-specify, for example, ten links and limit the script to that, which is very reasonable. But how to make the script "automatically" determine how many lamps and apply parameters unlimited in their number to all?
  14. But... but what if I specify parameters for five lamps in the script, and in the linkset there are 6 or 16?
  15. Wow! Thank you very much for showing everything in such detail! Now it is clear even to me! But what if the script doesn't know in advance how many lamps there will be and must apply the parameters to all, no matter how many there are?
  16. Thanks! I added lLampLinks to the line when the light is on but there is an error. I'm doing something wrong. What should be used instead of links numbers in this case? Also what if there is an indefinite number of objects with the same name - 2, 8, and so on? llSetLinkPrimitiveParamsFast(lLampLinks, [PRIM_COLOR, LIGHT_FACE, < 1, 1, 1 > , 1.0, PRIM_GLOW, LIGHT_FACE, 0.3, PRIM_FULLBRIGHT, LIGHT_FACE, TRUE, PRIM_POINT_LIGHT, TRUE, < 1, 1, 1 > , 1.0, 10.0, 0.2]);
  17. Thank you! May I ask what is llGetNumberOfLinks()? My script doesn't seem to recognize this.
  18. Hey! 🤚 Here I have a light toggle script and it uses primitive numbers for the lights, but how can I get the script to define primitive names and apply light parameters, for example, only to objects named "lamp"? (And one more sub-question, is it possible to somehow shorten llSetLinkPrimitiveParamsFast in the script? For example, PRIM_COLOR can be shortened to 18, and so on.) Thanks for any help! integer LIGHT_PRIM_1 = 2; // Light prim number 1 integer LIGHT_PRIM_2 = 3; // Light prim number 2 integer LIGHT_FACE = ALL_SIDES; // Light face number integer tog; default { touch_start(integer total_number) { if (tog) { tog = FALSE; llSetLinkPrimitiveParamsFast(LINK_SET, [PRIM_COLOR, LIGHT_FACE, < 1, 1, 1 > , 1.0, PRIM_GLOW, LIGHT_FACE, FALSE, PRIM_FULLBRIGHT, LIGHT_FACE, FALSE, PRIM_POINT_LIGHT, FALSE, < 1, 1, 1 > , 1.0, 10.0, 0.2]); } else { tog = TRUE; llSetLinkPrimitiveParamsFast(LIGHT_PRIM_1, [PRIM_COLOR, LIGHT_FACE, < 1, 1, 1 > , 1.0, PRIM_GLOW, LIGHT_FACE, 0.3, PRIM_FULLBRIGHT, LIGHT_FACE, TRUE, PRIM_POINT_LIGHT, TRUE, < 1, 1, 1 > , 1.0, 10.0, 0.2]); llSetLinkPrimitiveParamsFast(LIGHT_PRIM_2, [PRIM_COLOR, LIGHT_FACE, < 1, 1, 1 > , 1.0, PRIM_GLOW, LIGHT_FACE, 0.3, PRIM_FULLBRIGHT, LIGHT_FACE, TRUE, PRIM_POINT_LIGHT, TRUE, < 1, 1, 1 > , 1.0, 10.0, 0.2]); } } }
  19. And come back to this topic again. I found that when trying to use llInstantMessage or llRegionSayTo in the dataserver, of course, the message does not come out. I added a detector to the touch_start event key id = llDetectedKey(0); but how can I pass this data to the dataserver so that in this case, only send a message to the one who touched the object? llRegionSayTo(???, 0, "Message"); or llInstantMessage( ???, "Message" );
×
×
  • Create New...