Jump to content

Tattooshop

Resident
  • Posts

    365
  • Joined

  • Last visited

Everything posted by Tattooshop

  1. Thanks everyone for your great suggestions! Sorry for deviating from the ways you suggested, but how to implement this option and is it possible: each plate transmits a signal for the glow of a symbol / prim, there are 9 such symbols, respectively, but is it possible to simply count the number of glowing primitives on each collision, and if there are 9, then the main condition is fulfilled?
  2. I also ran the test for only one object and failed. default { collision_start(integer num) { list gState = [0]; integer ii; integer whichChild; for (ii = 0; ii < num; ii++) { whichChild = llDetectedLinkNumber(ii); } if (llListFindList(gState, [0]) == -1) { llSay(0, "Woohoo!"); } } }
  3. Thank you so much! I decided to try your method, but again I couldn't. default { state_entry() { //llMinEventDelay(0.2); } collision_start(integer num) { list gState = [0, 0, 0, 0, 0, 0, 0, 0, 0]; integer ii; integer whichChild; for (ii = 0; ii < num; ii++) { whichChild = llDetectedLinkNumber(ii); // and update the list if it's a plate } // now see how many of the list are still unset if (llListFindList(gState, [0]) == -1) { // there are no un-collided plates, so let's do stuff llSay(0, "all plates are pressed"); } string plate = llGetLinkName(llDetectedLinkNumber(0)); if (plate == "1") // plate name check { // do something llSay(0, "plate number 1 pressed"); } ///------------------------------------------------------------- if (plate == "9") { llSay(0, "plate number 9 pressed"); } } }
  4. Many thanks! This is what I got, but for some reason the main action occurs when I press any plate. Where did I go wrong? 🤔 default { state_entry() { llMinEventDelay(0.2); } collision_start(integer num) { string plate = llGetLinkName(llDetectedLinkNumber(0)); list gState = [0,0,0,0,0,0,0,0,0]; if (plate == "1") // plate name check { // do something llSay(0, "plate number 1 pressed"); gState = llListReplaceList(gState,[1],1,1); } ///......................................................... if (plate == "7") { llSay(0, "plate number 7 pressed"); gState = llListReplaceList(gState,[1],7,7); } if (plate == "8") { llSay(0, "plate number 8 pressed"); gState = llListReplaceList(gState,[1],8,8); } if (plate == "9") { llSay(0, "plate number 9 pressed"); gState = llListReplaceList(gState,[1],9,9); } if(gState == [1,1,1,1,1,1,1,1,1]) { // do MAIN_ACTION(); llSay(0, "all plates are pressed"); } } }
  5. Thank you very much! This is just how I see it. There will be 9 pressure plates, and it does not matter in what order they are pressed and for how long. If the plate is pressed once, the plate remains activated, a specific sub-action associated with the plate occurs, which is counted by a counter, and as soon as 9 such unique pressures occur, the main action is triggered. ( It may be needed to reset the counter until next time. ) I assume I need to use llGetLinkName in a collision event and then build a chain of IF checks for each pressure plate name and activate sub-actions, but how I can add "counter" if all plates are stepped is not clear. I only need to add a unique steps counter somehow... or what?
  6. Hello there! 😉 There is a linkset of several pressure plates and I need to activate some main action only when all the pressure plates are activated (stepped on). Plates react to collisions. Each plate has its own original name, if that makes sense in this case. What is the best way to do this? Addition: when you step on each plate, it activates a small secondary action... Thanks for any help!
  7. Rotating the sliced cylinder (left) and Quistessa's script (works like magic!) 👍
  8. I moved global variables to the beginning of the script. In order to educate myself, I would still like to know what is wrong here. vector rotate = < 0, 0, 10 > ; // Global Variables: vector Center_of_Rotation = < 73.66853, 145.58430, 3017.25000 > ; // in local coords, or for global just modify llSLPPF a little. vector Offset = < -1.24544, -0.06297, 0.00000 > -Center_of_Rotation; rotation g_rot; // set this to different rotatitons, or multiply it a marginal ammount on a timer. rotate *= DEG_TO_RAD; g_rot = llEuler2Rot(rotate); default { state_entry() { llSetTimerEvent(1); } timer() { //... //on a timer or whatever: llSetLinkPrimitiveParamsFast(2, [PRIM_POS_LOCAL, Center_of_Rotation + Offset * g_rot, PRIM_ROT_LOCAL, g_rot]); } }
  9. Yes, thanks, most likely I will have to do this, or use a cylinder sliced off in the middle, if it's not a mesh but prim.
  10. There was a feeling that I did something stupid, thanks!
  11. Thank you so much! There are several movements but stops quickly. What did I do wrong? vector rotate = < 0, 0, 10 > ; rotation rot; default { state_entry() { llSetTimerEvent(1); } timer() { // Global Variables: vector Center_of_Rotation = < 73.66853, 145.58430, 3017.25000 > ; // in local coords, or for global just modify llSLPPF a little. vector Offset = < -1.24544, -0.06297, 0.00000 > -Center_of_Rotation; rotation g_rot; // set this to different rotatitons, or multiply it a marginal ammount on a timer. rotate *= DEG_TO_RAD; g_rot = llEuler2Rot(rotate); //... //on a timer or whatever: llSetLinkPrimitiveParamsFast(2, [PRIM_POS_LOCAL, Center_of_Rotation + Offset * g_rot, PRIM_ROT_LOCAL, g_rot]); } }
  12. Hello! How to make the rotation effect of the lighthouse beam if it is part of a linkset? If the beam protrudes strongly forward, naturally the center is displaced. And the rotation will take place in the middle of the beam ... ( Except adding an invisible triangle mesh at the opposite end of the beam. )
  13. Thanks a lot to everyone for your help. Here's what I finally got. ... default { on_rez(integer start_param) { llResetScript(); } state_entry() { llSetTimerEvent(30); iPos = llGetPos(); llSetStatus(STATUS_PHYSICS|STATUS_BLOCK_GRAB_OBJECT, TRUE); llSetForce(<0,0,9.81> * llGetMass(), 0); moveTo(nextCoordinates(MOVEMENT_TYPE)); } at_target(integer tnum, vector targetpos, vector ourpos) { if(tnum != targetID) return; moveTo(nextCoordinates(MOVEMENT_TYPE)); } timer() { llSetLinkPrimitiveParamsFast( 2, [PRIM_OMEGA, ZERO_VECTOR, 0, 0]); llSetLinkPrimitiveParamsFast( 2, [PRIM_OMEGA, < 1.0, 0.0, 0.0 >, 10, 1]); } }
  14. Many thanks! It's just that at the moment there is no timer in the script at all. There are only state_entry and at_target events. Also do I still need to add a timer to use PRIM_ROT_LOCAL? Is there some way to cram this into the at_target event instead of the state_entry like it is now? Does this make sense?
  15. Thank you! I got the idea to add a timer that will start the spin again, say every second. But I'm not sure if this is advisable ... I wonder if there are other ways. ( I can also add a sensor that, if it detects an avatar in the vicinity, will also restart the rotation, but this is too much. )
  16. I'll explain a little. This wanderer script is used and the object is constantly being rezzed in-world. And part of the object rotates. And it's just that when I login this part doesn't rotate until I do this "Edit manipulation". If I just use the targetmega script in the child prim, this will not happen. But I need to put everything in one script in the root prim. Wanderer script from wiki
  17. Hi, thanks for the reply! Is there any other way to make the child prim rotate, but without this effect? 🙂
  18. Hello! There is a physical linkset of two objects, one of which, a child primitive, rotates. Seems to work fine, but sometimes ( when I log in ) I see that the child prim is not spinning. However, if I grab the object with the right mouse button and hit Edit, it starts rotating again. Why could this happen? I am using this line for rotation: llSetLinkPrimitiveParamsFast( 2, [PRIM_OMEGA, < -1.0, 0.0, 0.0 >, 10, 1]); And also when an object crosses the parsel boundary, a message pops up, well, you know "Your object is not allowed...", and so on. And the object itself hangs in the air and seems to cease to be physical. Can I somehow detect this moment and reset the script? Thanks for any help! 👍
  19. Thank you so much! This is what I needed!
  20. Hello! How to apply a texture to the same prim in a linkset, but to different faces with one line using SLPPF? Do I still need to use PRIM_LINK_TARGET and specify the same prim multiple times?
  21. Hello! Correct me if I'm wrong, I don't want to offend anyone with my ignorance, but there is still no fully functional single-attachment mesh bento head and body. Do you want this? Do you need it? Will you wait for this? Is this possible or is it from the realm of fantasy? What do you think about this? It is understandable why eminent manufacturers do not want to join forces to produce such a product, because this is like cutting off the branch on which you are sitting. Is it really left to expect that new manufacturers will someday reach the required level and, having created such a product, will save you from the need to be to some extent Frankenstein's monsters?
  22. In general, I realized that I am just an outdated conservative ascetic minimalist, striving for a minimum of attachments, but I should be grateful to bom, because whatever one may say, bom, although not a big one, but a step into the past, since we again returned to good old tattoo layers! Woohoo! Peace! ☮️
×
×
  • Create New...