Jump to content

Tattooshop

Resident
  • Posts

    365
  • Joined

  • Last visited

Everything posted by Tattooshop

  1. Well, thank you all so much for sharing! It was very interesting to read!
  2. Hello! I understand that this is a scream into space, but I just want to give my opinion. this update has raised my doubts since its inception. yes, it's cool that "you can now wear your favorite skin on a mesh body", but what's the use if most of them just don't fit? Now that this novelty has appeared (well, you know what I mean), you will have to wear not one, not two, but four layers, for the body, head, eyebrows and even ears! I can live without the hairbase - 5. call me old fashioned, but why such a setup? not sure if anyone is paying special attention to your ears. personally in this position I feel like a cabbage or a special forces soldier hung with ammunition. I understand when it's accessories and so on ... but it's just a skin, guys! it could only be one layer! I don't understand what's the point of hundreds of layers. The purpose of the mesh was to apply various effects to it without increasing the number of attachments. it loses its functionality due to the bom. You say - don't like it, don't use it, just wondering if I'm the only one not very "happy" with the bom?
  3. For some reason the script resists. It says that the step is not defined, although it is explicitly defined at the top of the script. I couldn’t figure out what was going with it. Sorry! llSetScale(scale.z * llList2Float(steps(step)));
  4. Thank you very much for a wonderful example!
  5. Thank you so much! Works great like magic! I only used llRot2Up instead as the window moves up and down. This is how it all looks. float open = -0.75; // positive == open; negative == closed. default { touch_start(integer i) { vector scale = llGetScale(); vector direction = llRot2Up(llGetRot()); // for x-facing use llRot2Fwd(...) open = -open; direction = scale.z * open * direction; //for x-facing use scale.y llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POS_LOCAL, llList2Vector(llGetLinkPrimitiveParams(LINK_THIS, [PRIM_POS_LOCAL]), 0) + direction]); } }
  6. Many thanks! For an non-linked window, this is perfect! But there seems to be something different for the linked window. I sketched this option, but can I somehow transfer here what your script does? Also now it turns out that the window is moving along its entire length, how, for example, to make it open only three-quarters? touch_start(integer total_number) { open = !open; if (open) { llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POS_LOCAL, llList2Vector(llGetLinkPrimitiveParams(LINK_THIS, [PRIM_POS_LOCAL]), 0) + < -0.0, 0.0, 0.5 >]); } else { llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POS_LOCAL, llList2Vector(llGetLinkPrimitiveParams(LINK_THIS, [PRIM_POS_LOCAL]), 0) + < 0.0, 0.0, -0.5 >]); } }
  7. Hello! Thinking of making a sliding window and how to make the window move "proportionally" regardless of the window size? For example, if I moved half a meter and then doubled the size of the window, then the window would still move half a meter. Can this be avoided? Of course, you can easily set a new value in the script, it would just be interesting to automate the process.
  8. Hello! How can I limit the range of AVsitter? I need to make it so that you can sit on the object only if the avatar is within a certain range. If outside, get a message like "Come closer."
  9. Hello! Thanks a lot for your help! It works like magic! 👍
  10. Doesn't work... But thank you for your time! 👍
  11. I sort of figured out how to do it, it's not clear only how to arrange it: state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION); llRequestPermissions(llGetOwner(), PERMISSION_ATTACH); } attach(key attachedAgent) { if (attachedAgent != NULL_KEY) { llRequestPermissions(attachedAgent, PERMISSION_TRIGGER_ANIMATION); llRequestPermissions(attachedAgent, PERMISSION_ATTACH ); } } run_time_permissions(integer permissions) { if (permissions & (PERMISSION_ATTACH && PERMISSION_TRIGGER_ANIMATION)) { llStartAnimation(anim); llSleep(5); llDetachFromAvatar( ); } }
  12. Thank you very much for your prompt reply! Here's what I got, but the script throws an error: Script trying to trigger animations but PERMISSION_TRIGGER_ANIMATION permission not set And it is unclear how to make unpacking happen automatically without clicking? string anim = "Animation_Name"; integer attached = FALSE; integer permissions = FALSE; default { state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION); llRequestPermissions(llGetOwner(), PERMISSION_ATTACH); } run_time_permissions(integer permissions) { if (permissions > 0) { llStartAnimation(anim); attached = TRUE; permissions = TRUE; } llSleep(5); if(permissions & PERMISSION_ATTACH) { llDetachFromAvatar( ); } } attach(key attachedAgent) { if (attachedAgent != NULL_KEY) { attached = TRUE; if (!permissions) { llRequestPermissions(attachedAgent, PERMISSION_TRIGGER_ANIMATION); llRequestPermissions(attachedAgent, PERMISSION_ATTACH ); } } else { attached = FALSE; llStopAnimation(anim); } } 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; string ScriptName = llGetScriptName(); for(y = 0; y < InvenNumber; y++) { InvenName = llGetInventoryName(INVENTORY_ALL, y); if(InvenName != ScriptName) { if(llGetInventoryType(InvenName) != INVENTORY_ANIMATION) InvenList += [InvenName]; } } llGiveInventoryList(llGetOwner(), llGetObjectName(), InvenList); } } } }
  13. Hello! I'm trying unsuccessfully to edit the animated ( it plays avatar animation ) unpacker script. Now it is unpacked on click and manually detached. How to make unpacking and detaching happen automatically? I added ( commented lines ) to the run_time_permissions event llSleep(5); if(permissions & PERMISSION_ATTACH) { llDetachFromAvatar( ); } and to the attach event llRequestPermissions(attachedAgent, PERMISSION_ATTACH ); but so far the script gives an error, what is wrong here? Thanks in advance for any help! string anim = "Animation_Name"; integer attached = FALSE; integer permissions = FALSE; default { state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION); } run_time_permissions(integer permissions) { if (permissions > 0) { llStartAnimation(anim); attached = TRUE; permissions = TRUE; } ////////////////////////////////// I ADDED THIS: /*llSleep(5); if(permissions & PERMISSION_ATTACH) { llDetachFromAvatar( ); }*/ } attach(key attachedAgent) { if (attachedAgent != NULL_KEY) { ////////////////////////////////// AND I ADDED THAT: /*llRequestPermissions(attachedAgent, PERMISSION_ATTACH );*/ attached = TRUE; if (!permissions) { llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION); } } else { attached = FALSE; llStopAnimation(anim); } } 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; string ScriptName = llGetScriptName(); for(y = 0; y < InvenNumber; y++) { InvenName = llGetInventoryName(INVENTORY_ALL, y); if(InvenName != ScriptName) { if(llGetInventoryType(InvenName) != INVENTORY_ANIMATION) InvenList += [InvenName]; } } llGiveInventoryList(llGetOwner(), llGetObjectName(), InvenList); } } } }
  14. Many thanks! So, to simply send a command to play sound from the root prim to the child prim, it is enough to use 0? And yet, one script used 0x5000, what could that mean?
  15. Hello! I am using this llMessageLinked for the first time and am not understanding something. I have two scripts ( "sender and listener"). It is not entirely clear what is 0 meant here. I have looked through many different examples and they use different meanings, numbers, words, is it a channel or what is it lol? touch_start(integer total_number) { llMessageLinked(LINK_SET, 0, "#start", ""); }
  16. Managed to replace llLookAt with llRotLookAt. It works now. Just wondering if I did everything right? default { state_entry() { llSensorRepeat("", "", AGENT, 20.0, PI, 0.2); } sensor(integer total_number) { vector detected = llDetectedPos(0); vector pos = llGetPos(); llRotLookAt(llRotBetween( < 1.0, 0.0, 0.0 > , llVecNorm( < detected.x, detected.y, pos.z > -pos)), 1.0, 0.4); } } As far as I understand, llLookAt uses all axes by default and there is nothing you can do about it?
  17. Hello! I'm trying to use this script for a turret, now it follows the avatar up and down, right and left, but I only need the rotation to happen along the Z axis (left and right). How to do it? Thanks! //Causes Object to look at nearest Avatar. default { state_entry() { llSensorRepeat("", "", AGENT, 20.0, PI, 0.2); } sensor(integer total_number) { llLookAt( llDetectedPos(0) + <0.0, 0.0, 1.0>, 3.0, 1.0 ); } } http://wiki.secondlife.com/wiki/LlLookAt
  18. Hey! Why Verts in blender and in viewer when uploading do not match ( greater )?
  19. Thanks a lot for the addition @Mollymews! then it will look like this? integer action = llAbs(++counter % 3); if (action == 0) {;} else if (action == 1) {;} else if (action == 2) {;}
  20. Thank you so much! Works like a charm! 👍
  21. Hello! how to make such a sequence so that with the first click ( touch ) one action occurs, with the second another and with the third a third? and at the next all over again?
  22. A question about the environment settings. When teleporting to some places, a message appears with the ability to allow change the region environment settings. How to do this on my land ( save my settings for others ) ? And about EEP. Let's say I made my sky settings, can I also make them visible to others, using the same "allow to change environment" message? Addition. Is it possible to use only my own clouds, and save that way leaving everything else as default?
×
×
  • Create New...