Jump to content

Robin Mapp

Resident
  • Posts

    15
  • Joined

  • Last visited

Posts posted by Robin Mapp

  1. Hi all,

    Need some help after racking my brain on this one. I have developed a Hud that I need to talk to an in world object via chat, I have successfully developed scripts that communicate effectively on given channels, what I am now wanting to do is to be able to use randomly generated channels that the HUD and object can communicate with without having cross talk from another user with the same HUD.

     

    Example would be a prim  attachment where the hud would control actions of the attachment, I also want to make this so the owner may give out HUDs to other users so that they can affect actions on the attachment owners prims.  

    I was considering some type of channel registration done by the hud, but realized to do that I needed some way to recognize the attachment of individual avatar and then develop a channel registration process unique to each owner. Like scan for avatars, then scan for the attachment, then randomly assign a unique channel to communicate on.

    Any ideas or suggestions would be greatly appreciated.

     

    Thanks

  2. Sorry to keep bugging you guys, but hit a snag with another project.

     

    I am attempting to build a scanner that will look to see if an object is present, if so, it simply keeps scanning, but if the object is not present I would like it to IM and email the owner that the object is no longer present. The caveat is, the Named Object will have an appended number to the name, rather than just: Object, it will have the name of Object1, Object2, and so forth.

    Here is the script I have been attempting to do this with:

    integer type = 2;
    integer on = TRUE;
    string objectname = "Named Object";
    list gNamedObjects;
    integer object = 1;


    default
    {

    touch_start(integer total_number)
    {
    on = llAbs(on - 1); // Or, better, on = !on;
    if (on)
    {
    llSetTimerEvent(2.5);
    llOwnerSay("Scanning");
    llSetText("Scanning for \Available Objects",<0,1,0>, 1);


    }
    else
    {
    llSetTimerEvent(0.0);
    type = 2;
    llOwnerSay("Script Reset");
    llOwnerSay("Scanner is Off");
    llSetText("Resetting Script",<1,1,0>, 1);
    llSetText("3",<1,1,0>, 1);
    llSleep(1);
    llSetText("2",<1,1,0>, 1);
    llSleep(1);
    llSetText("1",<1,1,0>, 1);
    llSleep(1);

    llSetText("Scanner is Off\nTouch to Turn On",<1,0,0>, 1);


    }
    }

    timer()
    {
    llSensor(objectname, "", type, 10.0, PI);
    type = type * 2;
    if (type > 8) type = 2;
    }

    sensor(integer total_number)
    {
    integer i;
    for (i = 0; i <total_number; i++)
    {
    if (object = 1)
    {
    llSay(0,"object is Present");
    }
    else if (object <= 0)

    {

    llInstantMessage(llGetOwner(),"Object not Present at "+ (string)llDetectedPos(i));
    llEmail(llGetObjectDesc(), "Object not present at "+ (string)llDetectedPos(i)); //this llDectectedPos fails (Function call Mismatch)

    }
    }
    }
    }

  3. so here is the scanning script I wrote to detect the named object, where I am having issues, is when I plug in the llGetObject details the script fails, All I am trying to do is set a beacon at the pos of the named object and message that pos and the object desc to the owner,

     

    integer type = 2;
    integer on = TRUE;
    string objectname = "[Named Object]";

    default
    {

    touch_start(integer total_number)
    {
    on = llAbs(on - 1);
    if (on)
    {
    llSetTimerEvent(2.5);
    llOwnerSay("Scanning");
    llSetText("Scanning",<0,1,0>, 1);
    llTargetOmega(<0,0,0>,0.1,PI);

    }
    else
    {
    llSetTimerEvent(0);
    type = 2;
    llSay(0,"Scanner is Off");
    llOwnerSay("Scanner is Off");
    llSetText("Scanner is Off",<1,0,0>, 1);

    }
    }

    timer()
    {
    llSensor(objectname, "", type, 10, PI);
    type = type * 2;
    if (type > 8) type = 2;
    }

    sensor(integer total_number)
    {
    integer i;
    for (i = 0; i <total_number; i++)
    {

    llRezObject("Beacon", llDetectedPos(i), <0.0,0.0,0.0>, <0.0,0.0,0.0,1.0>, 0);
    }


    }
    }

    //

    Thanks for any help guys!

  4. THANK YOU! That solves the dilemma but creates a new one, what I am trying to do is :

     

    I have a prim scanning for a named object, upon it sensing the named object it rezs another prim to the sensed objects location as a beacon of sorts. I would like this beacon to capture the object details of the named object and instant message them to owner of the beacon. I was hoping the collision event that would occur upon the rezz event could be used as the trigger. I could script another sensor in the beacon but was having issues with llGetObjectDetails from within the sensor state.

     

    Any other ideas?

     

     

    Thanks!

  5. Hi All,

    trying to use the below snippet to grab the object details of an object , weird behavior is the the script doesn't detect an object in contact with the prim containing the script. It does however detect and grab the details of an avatar when the collision is made. I have tried linked prims and a single prim colliding with the script containing prim to no avail.  Any suggestions would be apprciated.

     

    collision_start(integer n)


    {
    key uuid=llDetectedKey(0);
    list a = llGetObjectDetails(uuid, ([OBJECT_NAME,OBJECT_DESC, OBJECT_POS]));
    llSay(0,"\nName: \"" + llList2String(a,0) + "\"" +
    "\nDescription: \"" + llList2String(a,1) + "\"" +
    "\nPosition: " + llList2String(a,2));

    llShout(23, llDetectedName(i) );
    llSay(PUBLIC_CHANNEL, llGetObjectDesc() );
    }

  6. actually I am try to change the rotation of the rezzer and have the rezzed objects rezzed in line and rotation of the rezzer

     

    Example would be rezzing objects at z=0, move 2 meters, rezz object at z=0, etc...

    rotate the rezzer 90 degrees , rezz object at z= 90, move 2 meters, rezz object at z=90

     

    I am able to rezz at 0 , move 2 meters on a named loop, after rotating the rezzer however it still moves and rezzes at z=0

     

    thanks for the help

  7. this is fantastic, but if i wanted to to have the rezzer move 2 meters after rezzing an object , can that be done with LLSetPos?

    I have been trying to write a prim orginizer of sorts  and what I am trying to do / Rezz a prim, move 2 meters in a direction and rezz the next prim in it's inventory.

    I have been able to rezz a prim and do a loop to move 2 meters , using your script i was able to get the loop to go in one direction, but modification of the script is required to change the direction of the rezzing objects.

     

     llRezAtRoot(llGetInventoryName(INVENTORY_OBJECT,0), llGetPos()+offset*llGetRot(),  ZERO_VECTOR,(child_rot/rezzer_rot)*llGetRot(), 99);              

      llSetPos(llGetPos()+<-2,0,0>);

    It appears to me, that somehow the script needs to read the rezzors rotation and align the directing of rezzing accordingly.

     

    Any ideas?

×
×
  • Create New...