Jump to content

Wandering Soulstar

Resident
  • Content Count

    262
  • Joined

  • Last visited

Community Reputation

30 Excellent

About Wandering Soulstar

  • Rank
    Advanced Member

Recent Profile Visitors

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

  1. Wandering Soulstar

    More Collisions ...

    One last .. on the scenario: LM TP out: Nothing ++ no _start event fires on re-entry, .. seems to reset automatically, i.e. _start event fires after somewhere between 5 and 10 minutes
  2. Wandering Soulstar

    More Collisions ...

    Add more test scenarios to the above .. just gets weirder ...
  3. Wandering Soulstar

    More Collisions ...

    Ok .. was able to get inworld to do some simple tests. Scenario: 4x4x4 prim with the following code in it: //###### //Functions integer get_av_count(integer total_number) { //filter out any objects .. to only get count of AVs integer x; integer numAVs = 0; for (x = 0; x < total_number; x++) { if (llDetectedType(x) & AGENT){numAVs++;} } return numAVs; } //End Functions //...... //Body default { state_entry() { //set volume detect so that prim is 'phantom' llVolumeDetect(TRUE); } collision_start(integer total_number) { integer numAVs = get_av_count(total_number); llWhisper(0, "Enter"); llWhisper(0, "Tot: " + (string)total_number); llWhisper(0, "Avs: " + (string)numAVs); integer x; list names; for (x = 0; x < total_number; x++) { names = names + llDetectedName(x); } llWhisper(0, llList2CSV(names)); } collision_end(integer total_number) { integer numAVs = get_av_count(total_number); llWhisper(0, "Exit"); llWhisper(0, "Tot: " + (string)total_number); llWhisper(0, "Avs: " + (string)numAVs); integer x; list names; for (x = 0; x < total_number; x++) { names = names + llDetectedName(x); } llWhisper(0, llList2CSV(names)); } } ... then stuck another prim inside the 4x4x4 prim Walk in/out: _start/_end events fire Cam in to sit: Nothing Cam out to sit outside: Nothing Inside 4x4x4 sit: Nothing Inside 4x4x4 stand:: _start event fires Move the interior (or an exterior) prim in/out with or without seated AV: Nothing move the interior prim with AV standing on it: _start/_end fire Log Out : Nothing Log In: _start fires Then I tried a number of TP combinations: double click TP in/out: _start/_end fire double click TP out from sit: Nothing map click TP out: Nothing LM TP out: Nothing ++ no _start event fires on re-entry, until after an _end event has fired or 5-10 mins have passed this only affect the AV in question LM TP in: _start event fires So in summary some very strange and inconsistent behavior.
  4. Wandering Soulstar

    The touch_start event becomes unresponsive after a while

    @KT Kingsley Nice idea had not thought of ...
  5. Wandering Soulstar

    The touch_start event becomes unresponsive after a while

    I too vaguely remember reading something back years ago when I first started with LSL that said something about potential problems with touch_start, and have always just used touch_end ... only times I have a touch_start is when I want something to happen differently if the user has held down the touch for a bit .. but then is always paired with a touch_end that then checks the time between the _start and _end to see if the click was held long enought.
  6. Wandering Soulstar

    More Collisions ...

    hmmm ... and so therefore what happens when they stand inside the detector prim .. will another collision_start event be raised at that point? And conversely if they sit on the prim inside the detector will a collision_end be raised?
  7. Wandering Soulstar

    More Collisions ...

    Hi All, This is a follow-on to the topic I started a few days back "Collision 'Face'" found HERE. After that discussion my design decision was to simply have a prim the size of the elevator, with collision_start giving me the count when someone entered the elevator and collision_end the number when someone exited. As I was cleaning up my comments and code a bit though, a doubt came to mind: Does a seated AV raise the _start/_end events? If I have an AV seated on a prim, and that prim is moved into the detector prim, will the total_number parameter passed to the event be 2, and so I'll be able to find the AV? The wiki is not clear in my view on this. Whilst is does say: In this case the AV is seated (linked) on a different prim from the one with the script. If it does count it, that would lead me to understand that a linkset that collided with the detector would be treated for the event as all the individual prims it is made up of? To the contrary, i.e. the total_number passed in the suggested scenario is only 1, and that one being the prim itself, it would lead me to conclude that if the AV stepped into the detector prim (raising collision_start), and then sat on a prim that was inside said detector, then a collision_end would be raised? Anyone?
  8. Wandering Soulstar

    'Controlling' Physical Prims

    Thanks!!
  9. Wandering Soulstar

    'Controlling' Physical Prims

    Does that mean that turning it non-physical will stop it's tumbling .. i.e. freeze it in whatever location/position it is in at that instant?
  10. Wandering Soulstar

    'Controlling' Physical Prims

    One idea that just came to mind for stopping the physical elevator tumbling, but not quite sure how/if it would work: Put up some transparent walls along the parcel border. These would normally be phantom, but could turn solid/physical while the elevator is tumbling, so that they would stop it? Tend to remember that unless they are physical it would go through them, and would likely have to shore them up so that the elevator did not tip them over Or the same idea, but only have them there to detect the collision from the elevator and then they could send a message to the elevator. That brings me back to the question though of how to stop the tumbling elevator.
  11. Wandering Soulstar

    'Controlling' Physical Prims

    Hi All, Next chapter in the scripting of my elevator. I have all the rest of the code written, though not tested yet (not getting a lot of in-world time). What I have left is how to script one specific scenario. While I built a good solid elevator, things fail now and then, particularly if people overload the elevator. So I have a check whilst the elevator is moving to see if there has been a malfunction. IF a malfunction occurs there are four things that could happen, listed below in order of likelihood: the elevator comes to a stop for a minute while the remote technicians get it going again. It falls a few meters, is stopped for a bit, and then goes to the bottom, being out-of-service until a technician (me) actually comes by to reset it (or an hour passes) It falls all the way to the bottom, but the emergency brake is able to stop it, again going out of service OR - Catastrophic Failure .. it falls and the brake does not stop it, it breaks off of the guide pole, and tumbles down the hill, ending up at a random angle with the doors broken and askew (note: this is an exterior elevator, not in an enclosed shaft, that travels up and down a pole using electromagnetic forces to move) It is the fourth scenario that I am trying to figure out how best to have occur and code it. What I was thinking was that I could turn the elevator physical, and thus let the SL physics engine take care of it falling and tumbling. This though brings me to my questions. I am imagining that the only way I can tell is it has stopped tumbling is with a timer event and llGetPos .. checking to see when it stops changing. Is there any other way that anyone can think of? What I do not want is for it to tumble off my land (and onto the Linden Road). Not only because I do not want to block the road, but as well I do not want it returned to my inventory. So again I could be tracking its position or as well use llOverMyLand, though this would only tell me after the fact. What I want to do is stop it before it leaves. So my question is, if I track where it is, and somehow know when it is about to leave the parcel, would setting it's Physical to FALSE stop it in it's tracks?
  12. Wandering Soulstar

    Collision 'Face'

    ha ha ha
  13. Wandering Soulstar

    Collision 'Face'

    @animats Thanks for the suggestion but is over the top for what I need and as well would require a lot of additional code. All I need to know is if anyone has come into the elevator or has left. Do not care about the individual, rather just the total number of passengers inside the elevator. Tracking the AV would mean keeping track of all that have entered, and considering the space inside is not extensive (it is an elevator after all) the changes in position would be minimal, with their location inside the elevator being irrelevant.
  14. Wandering Soulstar

    Simplest Unpacker! ::: SCRIPT HELP :::

    The problem is that llGiveInventory takes a string as it's second parameter, not an integer. And that string is the name of the inventory item to give. What you'll need to do is using llGetInventoryNumber, and llGetInventoryName, compile a list of the inventory items and then best use llGiveInventoryList to give the items to the AV.
  15. Wandering Soulstar

    More Animation Scripting Question

    Thanks @Rolig Loon & @ellestones believe I have it clear now ... hopefully will translate into a working elevator 🙂
×