Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by LissomePrey

  1. It actually does work fine apart from the rotation but maybe my explanation is poor. I fix the correct location in my prim before linking with the chair as the root prim. If the chair was the child prim returning it to the correct position and rotation worked perfectly but I couldn't get at the chair menu. So I make the chair the root prim. My prim then has this timer event timer() { float newClock = llGetWallclock(); if (newClock < savedClock) { savedClock = newClock+50.0; llSetRegionPos(position); llSetRot(rot); } else { current_position = llGetPos(); float distance = llSqrt(llPow((position.x-current_position.x),2.0)+llPow((position.y-current_position.y),2.0)+llPow((position.z-current_position.z),2.0)); if (distance > 20.0) { llSetRegionPos(position); llSetRot(rot); } } } The llSetRegionPos works fine, moving my prim and the chair to the correct co-ordinates. The llSetRot only rotates the child prom not the chair. That can be lived with (I'll just remove the llSetRot entirely) but I'd love to get it to work perfectly if there is a way to rotate both prims.
  2. I help run a group/sim where we have chairs set up in an open area for people to sit and chat. Ideally we would let people move the chairs about into circles, groups etc but the admins think the work of tidying up and getting the chairs back in place is too onerous. I am trying to develop a script that will return the chairs to their correct place, either if they are moved too far or at midnight each day. Basically it is a simple flat surface that remembers its co-ordinates and rotation when I say 'FIX' in local (it then kills the listener so that location is permanently fixed). I then need to link it with the chair, which is bought off marketplace and so non-modifiable. The chair will have a menu on touch which seems to mean that the chair must be the root prim, with my surface as a child prim. It works perfectly for resetting the co-ordinates of the chair but it doesn't get the correct rotation for the chair itself. The child prim is rotated correctly by llSetRot but not the chair. Is there a way to force rotation of the root prim to match that of the child prim, given that I can't do any scripting for the root prim? It isn't a vital element but I'd love to be able to do it perfectly.
  3. I would like to make a tightrope stretched between two points for photography purposes. I'm putting learning particle streams to one side for the moment (can you force a stream into a catenary curve out of interest?) I thought a long cylinder would work and it seems to if I'm happy with a perfectly straight rope, i.e. no gravity sag. As soon as I make it a flexible prim though, gravity works from one end rather than both. As a building newbie am I overlooking any obvious solutions?
  4. I happily ran second life via Express VPN for about 11 months till the beginning of July with tolerable frame rates and little lag. In the past month the performance has nosedived drastically to the extent where many elements of sims are never rendered, notices are never shown and I get logged out on a regular basis. This happens no matter which vpn location I log into and I have upgraded to the latest vpn version. Any ideas whether this is something that has happened within sl to make it less vpn friendly or some problem that Express VPN have suffered, e.g. a bad update, significantly increased traffic?
  5. Thanks Rolig. I tend towards a single script but just wondered if I was affecting performance, lag or anything else.
  6. Thanks both. By 'filter' do you mean use the type parameter, in my case it would be SCRIPTED? I was worried that might produce too many results.
  7. Has anyone written a blog or similar on the criteria to decide when you should use a single script and when you should split into multiple scripts? If there is a good one would it be worth pinning it in this forum?
  8. I want to detect the presence of either of two different objects but llSensor appears to restrict you to one. Can I have two sensors outstanding at the same time or is it better to have one and switch the search between the two objects on a timed basis? If the latter can I still use llSensorRepeat if the name parameter is a variable that I change in the event handling?
  9. As a relative amateur I await a response form someone more experienced but Log-out I understand can't be detected, I use heartbeat scripts to show continuing presence Change of region surely doesn't happen till you arrive as if the teleport fails for any reason you'll still be in the old region.
  10. Many thanks for all the useful input, I always a learn a lot reading here. As I do want a unique id for a number of reasons, including but not exclusively the channels, I'll stick with what I have as it seems to be working.
  11. The channels aren't low numbers because the base is a six digit number but they are grouped together. I need it because there will be simultaneous 1-to-1 communications between pairs of people. Also it is useful for reporting to have people given unique and contiguous numbers. I'm just making the descriptiom look like a UUID which contains the object number encoded in it. Since I want a modifiable script included, I can't make the whole object No Mod so I just have a description that I doubt people will try to change and it is likely to be easily detected if they do. The other route I may try is to just add a separate small script that does an llMessageLinked with the number when the object is rezzed. That would probably never need an update so gets round the problem I was talking of earlier about needing to updatre many slightly different scripts for bug solving/enhancements.
  12. Thanks that is a thought but I'd like to constrain them to be a relatively small number, ideally sequential from 1. I want another amendable notecard in the object too so the no mod won't work. My current idea is a simple routine that fakes a UUID given a root number and then put that as the object description. Doubt anyone would try to change it even though they could and the object can decode back to the number when rezzed. Thanks as always for useful input.
  13. To identify which copy it is and, most importantly, to allocate channels that will be unique. So each object will use "base channel" plus its unique number. I think your idea of getObjectDesc might work, I just change the description for each copy. That would be immutable if the object was no mod?
  14. What happens if I get, maybe, 50 people out there, each with a unique script then find a bug or want an enhancement? Even having an updater, which I'm thinking of, doesn't really help in that respect. If the notecard worked it would be immutable, they would always keep their number so only the one script would need to be updated.. But it doesn't sadly.
  15. Yes the full perm looks like the answer, I should read more carefully. My code does have a variable there, I was trying to simplify. In response to Qie's points, each copy of the object needs to have a unique unchangeable number, I thought a notecard was the easiest. Editing the script each time is a pain particularly as it will undoubtedly get updated. Does anyone have a favourite way of getting a unique integer into a script?
  16. I am trying to read a notecard (code below) within the inventory of the object. When I wear the object, it can read the notecard perfectly well. When I give a copy of the object to someone else it fails to find the notecard, which is No Modify. Reading up it seems that maybe the object doesn't actually have the card but simply its key and so when the object but not the card itself is transferred to the other person, the key doesn't correspond to any known object. Is this the problem and if so is there a workaround using notecards or do I need a totally different route? if (avatarNumber == 0) { if (llGetInventoryKey("Identity") == NULL_KEY) { llOwnerSay( "Notecard '" + "Identity" + "' missing or unwritten"); } notecardQueryId = llGetNotecardLine("Identity", notecardLine); }
  17. Maybe even different versions of Catznip behave differently Anyway Wulfie's scheme works perfectly and is exactly what I was looking for. Job done.
  18. It doesn't seem possible to offer a teleport through the profile, at least on Catznip - one can't rely on all viewers behaving the same. The getting an IM tab but not saying anything on it works with both Firestorm and Catznip but is far from ideal. Thanks Wulfie for the link, yes it works and is much better than my solution!
  19. Just for completion I found a simple answer, not actually scripting. Once the teleportee has accepted rlv restrictions about IMs, they will not even be aware of someone attempting to IM them. So the teleporter can try to start an IM and that will give them the 'handle' that allows them to offer a teleport. Sigh of relief. As ever, thanks for help.
  20. I know it isn't my thread after I have started it but it really would be appreciated if you didn't use what started as a genuine question to argue about the merits of your scripts against others. Thanks Folks
  21. Please guys, you are going to put newbies off asking for help if it descends to arguing and name calling.
  22. Yes, that ruins most of the ideas I had. Social ways of making sure the 'handle' (nobody has a better name for it?) is available seems the preferred option, with a shared group a second choice for the future.
  23. If the subject looked at Group Info themself, they would know it was one of the people currently logged on so yes it is far from ideal, certainly if the group is small.
  24. Thanks Qie, don't want it all to get too complex. Another route is common group membership for both parties, affects anonymity a little bit but may be a work around. If you can see the individual in Group Info you can offer a Teleport.
  25. Thanks all, will experiment a bit more but there may not be a solution beyond asking subjects to make their 'handle' available. As a total aside is there an agreed term for an avatar name where you can right click on it and get "Profile", "Add Friend" etc. options?
  • Create New...