Jump to content

AlleyCat Tyles

Resident
  • Posts

    31
  • Joined

  • Last visited

Reputation

3 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I am also attempting to post something in Adult. I am not new to SL. I have posted previously. So I go to the upper right of the page and open the drop down box that has "SETTINGS" listed but it is not a clickable link. Adult (nor Answers) is not an option in the Forums drop down box. Any ideas?
  2. Thank you, elleevelyn. To add some humor to your day: I put in the script a number of llSay(0,"Line XX") commands to see where the execution was taking place. It turns out that most of the sections of the code discussed above are never used. The script was looping on the section of the code where the dir = -dir is located which accounts for some of the odd behavior. I tried adjusting one parameter and the object flew away. So I have a bouncing object somewhere looping through a llSay(0,"Line XX") command, spamming chat to the point LL has blocked all my local chat. Of course, attempting to find the object has failed. Some days you just have to have a sense of humor. Sim restart is happening, will see if that helps. Thank you again for your time.
  3. Thank you Fenix and elleevelyn for your responses and your time. I completely follow the logic of your responses. I apologize for the brevity of my response. I had played with various combinations of dir and -dir along with positive and negative values for zdelta. Those various permutations did not alter the outcome. Yes, the way I stated it in my original post is correct, the object when clicked starts bouncing downward ( I want it to bounce upward). This is first of all contrary to the “dir = 1; // Forces first movement to be UP” line in the script (the first move may be too small to notice but subsequent movements are down) but also contrary to the way I am reading the script mathematics. I think you are reading them the same way I am. I will add one more observation: When the object shoots back up to its start position that is because it entered the “failsafe” section of the script (added a line to say something in local chat). I appreciate, Fenix, that you changed the rate and zdelta values to better observe. Doing the same here caused the object to react erratically so my observations are based on the original script. Thank you both again for your thoughts.
  4. My ability at scripting is very limited. I have a script that will cause an object when touched to incrementally drop down from it’s starting position and then bounce back up to its starting position. It works fine. What I want the object to do is to incrementally move up from it’s starting position and then drop back down to the starting position. Basicly, I want to reverse it’s motion. I have tried a few approaches with zdelta and dir which failed miserably, lol. Would someone be so kind as to advise. Thank you. integer channel = 88; // You can alter this integer ON = FALSE; integer dir; integer targetID; vector startPos=<50.09902, 141.37950, 4003.5263>; vector start; float tolerance = 1.0; // You may need to make this larger if you're working with fast-moving objects. float rate = .3; // Default setting. Movement to target takes 1 second. Reset by //typing a new number in channel 88 (e.g., "/88 4"). // Smaller objects move faster than large ones, for the same value of "rate" float xdelta = 0; float ydelta = 0; float zdelta = 0.1; default { state_entry() { llListen(channel, "", "", ""); llSetStatus(STATUS_PHYSICS,FALSE); llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z,FALSE); start=startPos; llOwnerSay("Starting altitude = " +(string) startPos.x +" "+(string) startPos.y+" "+(string) startPos.z); } on_rez(integer start_param) { llResetScript(); } listen(integer channel, string name, key id, string message) { if(message == "button pressed") { ON = !ON; if(ON) { dir = 1; // Forces first movement to be UP llSetStatus(STATUS_PHYSICS,ON); llSetBuoyancy(1.0); targetID = llTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir),tolerance); llMoveToTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir), rate); llSetTimerEvent(5); } else // Click to stop { llSetStatus(STATUS_PHYSICS,ON); llSetTimerEvent(0); llSetPos(start); llSay(0,"Beep"); llResetScript(); } return; } rate = (float)message; llSay(0,"Movement time to target now set at " + (string)rate + " seconds."); } touch_start(integer num) { ON = !ON; if(ON) //Click to start { dir = 1; // Forces first movement to be UP llSetStatus(STATUS_PHYSICS,ON); llSetBuoyancy(1.0); targetID = llTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir),tolerance); llMoveToTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir), rate); llSetTimerEvent(5); } else // Click to stop { llSetStatus(STATUS_PHYSICS,ON); llSetTimerEvent(0); llSetPos(start); llSay(0,"Beep"); llResetScript(); } } not_at_target() { llMoveToTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir), rate); } at_target(integer tnum, vector targetpos, vector ourpos) { llStopMoveToTarget(); llTargetRemove(targetID); dir = -dir; //Reverse direction on subsequent moves. targetID = llTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir),tolerance); llMoveToTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir), rate); } timer() // This is a failsafe. { vector Pos = llGetPos(); if (Pos.z >= startPos.z + 2.0 | Pos.z < startPos.z) // If the object goes out of range, it resets { llStopMoveToTarget(); llSetStatus(STATUS_PHYSICS,FALSE); llSetPos(startPos); llTargetRemove(targetID); llSetStatus(STATUS_PHYSICS,TRUE); targetID = llTarget(startPos+(<xdelta,ydelta,zdelta> * dir),tolerance); dir = 1; } } }
  5. Not sure where to post but here goes: I am working on a project and have done some musing. I want to throw out the concept and thoughts I have had on execution. Basically, before I invest a lot of time and effort, someone may have a more efficient approach or can tell me it won’t work. Anyways, my thinking is as follows: I am going to construct a vertical equilateral triangular frame, pointing upward. I have an animation where the avatar has both their arms pointed straight up. The legs are spread. Basically, if the avatar is centered in the triangle, the arms and legs point to the corners of the equilateral triangle, call it a Y animation. The avatar will not be “sitting” on the triangle, sitters or any pose balls. The avatar will be subject to the usual physics (see below). The objective is to start the avatar centered in the triangle and return them to that position (coordinate) if they are “pushed”. There will be a connection between the arms and legs of the avatar and the corners of the triangle so that the avatar is suspended. What type of connection will be the ultimate question, but first: Simple first thought: If the triangle is vertical, the avatar will be off the ground and not standing. If perceived as falling by SL, an AO will have to be set to use the Y animation for falling. If the avatar is set to “flying”, that will eliminate gravity and again an AO will have to be set to use the Y animation for flying. I think that makes sense. So the question is how to start the avatar at the center of the triangle (original coordinates) and should they be pushed, get them back to the center of the triangle (original coordinates). The simple solution would be to have the connections between arms and legs and corners of the triangle be a set of springs. So looking up springs in marketplace, I had thousands of options! But after getting rid of spring fashions, I saw a few options for actual springs. I did not see that they were scripted to work like real springs, nor did they have attachment points. So the first question is, are there any springs out there that act like springs? Now, about the only item I have seen that may come close is the leashes used on collars. If you set a length and it is exceeded, the avatar is pulled in that direction. I do note however it is more of a jerk than a gradual pull you would get from a spring. ((Which perhaps can be adjusted in the scripts.) So I was musing about getting the open collar scripts and putting them into a wrists cuff, left ankle cuff and right ankle cuff. Then anchor them to the corners of the triangle. This gets to the can you wear more than one collar at a time, how will they interact, etc. Ok, so I am musing here and not quite sure how of if to proceed. Any thoughts? Thanks for your time.
  6. I do not script so this may seem a simplistic question. I have an object which has in it’s root prim a script, which I will copy below. The script causes the object to move up and down from it’s starting position. The starting position is, I think, from the llGetPos(). The coordinates are where the object is when the script is activated by clicking. I want to put in the script fixed x,y and z coordinates as the starting point, regardless of where the object happens to be when clicked. Assume the object will be close to the fixed coordinates when clicked. If the fixed x, y, z coordinates were 13.08, 240.62 and 1702.4, what line(s) would I change or add to accomplish this objective. integer channel = 88; // You can alter this integer ON = FALSE; integer dir; integer targetID; vector startPos; vector start; float tolerance = 1.0; // You may need to make this larger if you're working with fast-moving objects. float rate = .3; // Default setting. Movement to target takes 1 second. Reset by //typing a new number in channel 88 (e.g., "/88 4"). // Smaller objects move faster than large ones, for the same value of "rate" float xdelta = 0; float ydelta = 0; float zdelta = 0.1; default { state_entry() { llListen(channel, "", "", ""); llSetStatus(STATUS_PHYSICS,FALSE); llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z,FALSE); startPos = llGetPos(); start=llGetPos(); llOwnerSay("Starting altitude = " +(string) startPos.x +" "+(string) startPos.y+" "+(string) startPos.z); } on_rez(integer start_param) { llResetScript(); } listen(integer channel, string name, key id, string message) { if(message == "button pressed") { ON = !ON; if(ON) { dir = 1; // Forces first movement to be UP llSetStatus(STATUS_PHYSICS,ON); llSetBuoyancy(1.0); targetID = llTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir),tolerance); llMoveToTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir), rate); llSetTimerEvent(5); } else // Click to stop { llSetStatus(STATUS_PHYSICS,ON); llSetTimerEvent(0); llSetPos(start); llSay(0,"Beep"); llResetScript(); } return; } rate = (float)message; llSay(0,"Movement time to target now set at " + (string)rate + " seconds."); } touch_start(integer num) { ON = !ON; if(ON) //Click to start { dir = 1; // Forces first movement to be UP llSetStatus(STATUS_PHYSICS,ON); llSetBuoyancy(1.0); targetID = llTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir),tolerance); llMoveToTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir), rate); llSetTimerEvent(5); } else // Click to stop { llSetStatus(STATUS_PHYSICS,ON); llSetTimerEvent(0); llSetPos(start); llSay(0,"Beep"); llResetScript(); } } not_at_target() { llMoveToTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir), rate); } at_target(integer tnum, vector targetpos, vector ourpos) { llStopMoveToTarget(); llTargetRemove(targetID); dir = -dir; //Reverse direction on subsequent moves. targetID = llTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir),tolerance); llMoveToTarget(llGetPos()+(<xdelta,ydelta,zdelta> * dir), rate); } timer() // This is a failsafe. { vector Pos = llGetPos(); if (Pos.z >= startPos.z + 2.0 | Pos.z < startPos.z) // If the object goes out of range, it resets { llStopMoveToTarget(); llSetStatus(STATUS_PHYSICS,FALSE); llSetPos(startPos); llTargetRemove(targetID); llSetStatus(STATUS_PHYSICS,TRUE); targetID = llTarget(startPos+(<xdelta,ydelta,zdelta> * dir),tolerance); dir = 1; } } }
  7. Yes, thank you Innula, do send me a copy of that script. The two pertinent scripts are .XPOSE Chain Binding Point and .XPOSE Chain/Cuff Interface, as you say. Yes, I am using Lockmeister. This really should be simple, I just may be missing the obvious. I will fiddle around with it and see what I can figure out, thank you again for your assistance.
  8. Thank you all for your responses. Yes, I kinda figured there would need to be something in the script to get feedback on progress. Innula - Yes, I can see chains. Tested it out on my devPose bed. I am using old engines Yes, the XPOSE instructions I have are to rez an object that has attachment points and only that. I have tried just having an attachment point by itself and no go. The instructions are not too bad, I get the logic just no chains. There are a couple of scripts needed, the ones I have are the correct names obviously. I do wonder if the mine are bad. This engine is so old, I had a terrible time finding the scripts for chains. In answer to your question, I am working with an existing item that uses XPOSE and just adding to it. I do not make items for sale and this is not for any commercial use. I am just stumped right now and not sure how to proceed.
  9. This question is about scripts and in two parts. First off: The situation is one script activates or refers to another script which includes referring to a notecard. Does a diagnostic tool exist in the Firestorm viewer, which would allow to see a script get activated or a notecard being read. Alternatively, is there a tool that accomplishes that objective. I do appreciate I am asking a very generic question here. It sprcifically relates to the following: I am using the XPOSE version 4.0 ul engine. I am attempting to add chains/cuffs. I have followed the XPOSE CHAIN/CUFF SUPPORT instructions and placed the appropriate scripts. I honestly believe I have set up everything correctly. I have all the diagnostic tools included with the engine. On restart, the diagnostics are run and I receive no errors or warnings. In using the poses, I receive not script or warning errors using the tools I am aware of in Firestorm viewer. Using the engine menu, the correct objects rez, the poses are correct, I can give out and wear cuffs, everything works with one exception. The chains do not appear (visible or invisible) linking the cuffs to the binding point prims. I am sure it is something very simple but I am stumped. Any advise would be appreciated.
  10. I am looking for a script that will cause a cylinder to move back and forth between two points along the cylinder’s long axis. Think a piston in a car engine. Looking on marketplace, I see bounce scripts, however I am unable to ascertain exactly how they work. The scripts I have will only move an object along the X, Y or Z axis which in this case will not work since movement will involve all three axises. I am not a scripter but the attributes I would look for would include: The cylinder will be rezed by an Xpose engine with its starting position and rotation already set. Only the position need change, there will be no change to rotation. I believe a script is able to read the starting coordinates of the cylinder. The cylinder then needs to move to a second set of coordinates and back. I suppose the second set of coordinates could be entered in the script or read from a notecard. Although not necessary, clicking the cylinder to start motion would be nice as well as some control over speed. Any thoughts on where to look and what it may be called would be appreciated. Thank you.
  11. Thank you Rhona. Yes that is the current Adam hud and you have described the situation perfectly. I do believe I can apply the shirt to the tattoo layer. I will see how that works.
  12. Ok, Alwin I see your point. Let me see if this makes sense: I go to my Adam hud, I look at the layers tab. Adam has a “Fashion” layer (outer most layer, I think), which I will assume corresponds to the shirt and pants on an Omega applier. The top of the pants fashion layer is at waist level, well above the hips. If the layer is that high up the body, it would seem reasonable to expect that pants applied to that layer would appear to start at waist level. I hope I said that succinctly. I think my logic is sound. I do avoid any pants described as hip huggers.
  13. I had a most frustrating couple of hours trying to find and wear clothing with my Adam body. Rather than start a new thread, I will add to this one. I also want to see if I am understanding what was said by Klytyna and Phil above. I have the Omega hud for the Adam body and it works fine. My question concerns applied clothing. So I put on a shirt (apply using Omega) and it comes down to my belly button. I put on a pair of pants and they are half way down my hips. I tried a number of shirts and a number of pants. There is always a gap between the top of the pants and the bottom of the shirts. That may be a fashion statement for some but not for me. I want to tuck my shirt into my pants, figuratively speaking. Am I just missing something here? Klytyna and Phil: I like the concept of “outfits” discussed above. The more I read, the more I think I better search the forums some more, so I can ask an intelligent question.
×
×
  • Create New...