MantisBT - opensim
View Issue Details
0008164opensim[REGION] Scripting Enginepublic2017-05-10 18:192017-08-22 09:33
cuteulala 
 
normalminoralways
newopen 
master (dev code) 
 
Standalone (1 Region)
BulletSim
Unknown
None
0008164: This script fails after a while permanatly sometimes even rezzing it stays broke
//The script follows a sense objects name forever Object of name thats moving //this prim will follow that moving object perfectly
//Put in description! of root prim > 0.01,0.01

float radious = 0.0f;
float spinSpeed = 0.0;
float radianOffset = 0.0f;
float spinAmount = 0.0;
string carname = "Land Of Bree Cable Ride";
key targetId;

default
{
    state_entry()
    {
        targetId = llGetOwner();
        
        llSensorRepeat(carname,"",ACTIVE|PASSIVE,96,PI,0.01);
        llListen(24, "", targetId, "");
        list nameTokens = llCSV2List(llGetObjectDesc());
        radianOffset = llList2Float(nameTokens, 0) / llList2Float(nameTokens, 1) * TWO_PI;
    }
    
    listen(integer channel, string name, key id, string message)
    {
        list messageTokens = llCSV2List(message);
        string cmd = llList2String(messageTokens, 0);
        if(cmd == "spin")
            spinSpeed = llList2Float(messageTokens, 1);
        if(cmd == "radious")
            radious = llList2Float(messageTokens, 1);
    }
    
    sensor(integer numDetected)
    {
        float deltaTime = llGetAndResetTime();
        
        if(spinSpeed != 0.0f)
        {
            spinAmount = spinAmount + deltaTime / spinSpeed;
            if(spinAmount > 1.0f)
                spinAmount = spinAmount - 1.0f;
        }
        vector pos = llDetectedPos(0) + llDetectedVel(0) * deltaTime;
        rotation rot = llDetectedRot(0);
        vector eul = llRot2Euler(rot);
        eul.z = eul.z + radianOffset;
        rotation newRot = llEuler2Rot(eul);
        llSetLinkPrimitiveParamsFast(LINK_THIS, [
            PRIM_POSITION,
                pos + <radious, 0.0f, 0.0f> * newRot,
            PRIM_ROTATION,
                llEuler2Rot(<0.0f, 0.0f, spinAmount * TWO_PI>)]);
    }
}
Put this script in a root prim large size for testing make it phantom because it will follow you as close as it can! in the description of the cube write down 0.01,0.01 then rez a vehicle like a car copy its name and put inside the script to make the cube follow that car it should do this forever however after a long time it stops working forever! unstable
Physics engine don't matter its none physical movmenets

tested on windows and linux both failure
No tags attached.
Issue History
2017-05-10 18:19cuteulalaNew Issue
2017-05-10 18:41UbitUmarovNote Added: 0031839
2017-05-10 21:46BillBlightNote Added: 0031840
2017-08-19 14:01tampaNote Added: 0032261
2017-08-21 05:51Total SorbetNote Added: 0032263
2017-08-21 10:03UbitUmarovNote Added: 0032264
2017-08-22 09:33Total SorbetNote Added: 0032265

Notes
(0031839)
UbitUmarov   
2017-05-10 18:41   
sorry, got tired of driving around with a ugly green box following me with no issues
(0031840)
BillBlight   
2017-05-10 21:46   
I went and checked one of my regions that had something like this on it , and it appears that some of the sensor just died , not all of them ..

I have boxed that detects my trains to make them stop at the stations .. and they just quit working .. rest them and they still don't work .. Make a copy of them and the new one works ... Not sure if it is the same thing but seems like it ..
(0032261)
tampa   
2017-08-19 14:01   
This has been an issue for quite a while now, the easiest solution is to reset the sensors whenever triggered. Meaning when the sensor event gets fired, destroy the fired sensor, do whatever logic you want to do and then set another sensorrepeat. You can also add a timer event to do this hourly. In a perfect world XEngine would do this on its end though.
(0032263)
Total Sorbet   
2017-08-21 05:51   
Ive noticed this in the past. llSensorRepeat() has intermittent amnesia.
Workaround: use timer() event and call llSensor() from there.
(0032264)
UbitUmarov   
2017-08-21 10:03   
I could not repo it.
Meanwhile ( weeks or months ago ) I did made a few changes that could had a impact on this. So can you confirm if this issue still happens with master or release?
thanks
(0032265)
Total Sorbet   
2017-08-22 09:33   
Unable to repro on master under linux. Unable to test release at moment.