Jump to content

Experience Teleporter stopped working


Recommended Posts

Hello,

2 Weeks ago I set up a new Experience for some fast teleports on my parcel. Everything worked well for 2 weeks.

Since yesterday 12pm  - it is not working anymore and I do not know why. I tried 2 different viewers and 4 different Avatars. They just do not work anymore. No changes were made. I also deleted everything and set it up once more but not one is working anymore. What could be the issue here? Maybe the Sim itself needs a restart? (it is not mine). New Avatars also do not get the pop up to ask if they allow the Experience.

The Script itself shows now also a small yellow color box top right when opening it, not sure what this means. When compiling it new it shows green though. Plus i do not get any script errors, as said all worked perfectly until yesterday.

I have my normal teleporters but experience teleporter are so convenient and would like them to work again.

Edited by Doti Fall
Link to comment
Share on other sites

Is this something you scripted yourself or something someone else has scripted?

Without seeing the content of the script there's no way to tell you what's wrong with it - You'd need to consult the person who sold you the scripted item.

Link to comment
Share on other sites

Thanks. Got it for free from the marketplace - and as said it worked fine 2 weeks and now it stopped working and no idea why. But here the Script - nothing fancy I would say or would just stop working after 2 weeks:

 

vector teleportme = <149,144,2405>; 
string MyObjectName;
string textdefault = "Building";

string theerror;
integer error;
key agent;
integer type;



float iTouched;

default
{
    state_entry()
    {
         iTouched = FALSE;
        MyObjectName = llGetObjectName();
        
        llSetText(textdefault, <1.0, 1.0, 1.0>, 1.0);
    }
    collision_start(integer num)
    { 
       agent = llDetectedKey(0); type = llDetectedType(0);
       if (type == (AGENT | ACTIVE) ) 
        {
            llRequestExperiencePermissions(agent, "");
        }   
    } 

timer()
{
    llSetTimerEvent(0.0);
    iTouched = FALSE;
}
    experience_permissions(key agent) {
        
        
        if (iTouched = TRUE)
        {
       
            
            llSetText(llKey2Name(agent) + " is using the teleporter please wait...", <1.0, 1.0, 1.0>, 1.0);
            llTeleportAgent(agent, "", teleportme, teleportme);
            llSetTimerEvent(2.0);   
        }
             llSetText(textdefault, <1.0, 1.0, 1.0>, 1.0);   
    }
    
    experience_permissions_denied(key agent, integer reason){
        string theerror = llGetExperienceErrorMessage((integer)reason);
        if(reason = XP_ERROR_THROTTLED) {
                 
                 
                if (iTouched = TRUE)
                {
                    
                     llSetTimerEvent(4.0);    
                  }
        } else if (reason = XP_ERROR_REQUEST_PERM_TIMEOUT || reason = XP_ERROR_NOT_PERMITTED || reason = XP_ERROR_NOT_FOUND) {
             llInstantMessage(agent, "Please accept the experience or bad things may happen!"); 
            } 
        if(!llAgentInExperience(agent)) {
         llRequestExperiencePermissions(agent, "");  
         
        }
       
    }
    
    touch_start(integer total_number)
    {
      iTouched = TRUE;
     agent = llDetectedKey(0);  type = llDetectedType(0);
                  if (type == (AGENT | ACTIVE) ) 
                   {
                     llRequestExperiencePermissions(agent, "");
                    } 

    }
     
}

Neither collision or touch to teleport works anymore which is strange - why should it work 2 weeks and now not anymore? 😕

Link to comment
Share on other sites

2 hours ago, Doti Fall said:
if (type == (AGENT | ACTIVE) ) 

I am taking a wild guess in the dark here,

But this line right here checks for precisely a key that is an agent and is an active object.

The problem is it is not checking that the flags contain those items, it is looking for exact equality. What I mean is, if the type contains any additional flags the agent has, it will not work.

List of flags

This means that if the agent has any other flags such as SCRIPTED it will fail.

A new flag was recently added to LSL, DAMAGEABLE. It's possible that your avatar now has that flag since a server update.

 

To check the type contains the desired flag, rather than is exactly those two flags, use the bitwise & Operator.

if ( (type & AGENT) && (type & ACTIVE) )

 

 

  • Thanks 2
Link to comment
Share on other sites

WOW - ok did not see that coming. Thank you for the nice explanation.

The fact is, when replacing it with your line, it works again with touching. Just colliding into it still does not work - but that is totally fine with me. Would still be nice colliding with it but I am already a happy bunny as it saves again time getting around on my parcel. THANK YOU for your time and explanation!!!

Link to comment
Share on other sites

6 minutes ago, Quistess Alpha said:

there's a similar line earlier in the script, so, 2 replacements.

Oh right totally my fault, scrolled to fast and did not check the collision area...was too early in the day and tired. Thank you sooooo much! All works again. You guys rock!

  • Like 3
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...