Jump to content

Tristesse Absinthe

Resident
  • Posts

    13
  • Joined

  • Last visited

Posts posted by Tristesse Absinthe

  1. 9 hours ago, Quistess Alpha said:
    list gPosIncrements = [0.025, 0.1, 0.25 ];
    list gRotIncrements = [1, 5, 25];
    
    vector gTextColor = <0,1,0>;
    integer gChanListen = 475;
    
    integer gNIncrements = 3; 
    integer gIndexIncrement;
    float gPosIncrement;
    float gRotIncrement;
    
    integer gHandleListen;
    
    string gsMain = "Poseball menu";
    list glMain = ["Edit Position","Edit Rotation"];
    
    string gsPos = "Edit position:";
    list glPos = ["-X","-Y","-Z","+X","+Y","+Z","-increment","[BACK]","+increment"]; 
    
    string gsRot = "Edit Rotation:";
    // N.B. button names must be distinct; add a space.
    list glRot = ["-X ","-Y ","-Z ","+X ","+Y ","+Z ","-increment ","[BACK]","+increment "];
    
    list gAxes = [<1,0,0>,<0,1,0>,<0,0,1>];
    
    do_menu(string text, list l, key ID)
    {   text += "\n Position Increment: "+llDeleteSubString((string)(gPosIncrement),5,-1);
        text += "\n Rotation Increment: "+(string)((integer)(gRotIncrement));
        llDialog(ID,text,l,gChanListen);
    }
    
    default
    {
        state_entry()
        {
            llSetClickAction(CLICK_ACTION_SIT);
            llSitTarget(<0,0,-0.25>,ZERO_ROTATION);
            gNIncrements = llGetListLength(gPosIncrements);
            if(gNIncrements != llGetListLength(gRotIncrements))
            {   llOwnerSay("Warning, unequal list lengths!");
            }
            gPosIncrement = llList2Float(gPosIncrements,gIndexIncrement);
            gRotIncrement = llList2Float(gRotIncrements,gIndexIncrement);
        }
        touch_start(integer n)
        {   key ID = llDetectedKey(0);
            if(ID==llAvatarOnSitTarget())
            {   do_menu(gsMain,glMain,ID);
            }
        }
        changed(integer c)
        {   if(c&CHANGED_LINK)
            {   key ID = llAvatarOnSitTarget();
                if(ID)
                {   llListen(gChanListen,"",ID,"");
                    do_menu(gsMain,glMain,ID);
                    llSetAlpha(0.0,ALL_SIDES);
                    llSetText("", <0,0,0>, 0.0);
                    llRequestPermissions(ID,PERMISSION_TRIGGER_ANIMATION);
                }else
                {   llListenRemove(gHandleListen);
                    llSetAlpha(1.0,ALL_SIDES);
                    llSetText(llGetObjectDesc(),gTextColor,1.0);
                }
            }
        }
        run_time_permissions(integer perms)
        {   if(perms&PERMISSION_TRIGGER_ANIMATION)
            {   llStopAnimation("sit");
                llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION,0));
            }
        }
        listen(integer Channel, string Name, key ID, string Text)
        {   list lText = [Text];
            integer i = llListFindList(glMain,lText);
            if(0==i) // position
            {   do_menu(gsPos,glPos,ID);
            }else if(1==i) // rotation
            {   do_menu(gsRot,glRot,ID);
            }else
            {   
                string s = gsPos;
                list   l = glPos;
                integer r; // set TRUE for rotation
                i = llListFindList(glPos,lText);
                if(i==-1)
                {   i = llListFindList(glRot,lText);
                    r = 1;
                    s = gsRot;
                    l = glRot;
                }
                if(i==-1)
                {   llSay(0,"parsing error!");
                    do_menu(gsMain,glMain,ID);
                    return;
                }
                if(i==6)
                {   gIndexIncrement*= (--gIndexIncrement>=0); // decrement, but floor at 0.
                    gPosIncrement = llList2Float(gPosIncrements,gIndexIncrement);
                    gRotIncrement = llList2Float(gRotIncrements,gIndexIncrement);
                    do_menu(s,l,ID);
                }else if(i==7)
                {   do_menu(gsMain,glMain,ID);
                }else if(i==8)
                {   ++gIndexIncrement;
                    if(gIndexIncrement>=gNIncrements) gIndexIncrement = gIndexIncrement-1;
                    gPosIncrement = llList2Float(gPosIncrements,gIndexIncrement);
                    gRotIncrement = llList2Float(gRotIncrements,gIndexIncrement);
                    do_menu(s,l,ID);
                }else
                {   vector axis = llList2Vector(gAxes,i%3);
                    integer dir = ((i/3)*2)-1; // integer division, convert to -/+ 1.
                    if(r) // rotation
                    {   rotation prev = llList2Rot(llGetLinkPrimitiveParams(2,[PRIM_ROT_LOCAL]),0);
                        llSetLinkPrimitiveParamsFast(2,[PRIM_ROT_LOCAL,
                            llAxisAngle2Rot(axis,dir*gRotIncrement*DEG_TO_RAD)*prev]);
                    }else
                    {   vector prev = llList2Vector(llGetLinkPrimitiveParams(2,[PRIM_POS_LOCAL]),0);
                        llSetLinkPrimitiveParamsFast(2,[PRIM_POS_LOCAL,
                            prev+ (dir*gPosIncrement*axis) ]);
                    }
                    do_menu(s,l,ID);
                }
            }
        }
    }

     

     

    Thanks so much for giving me all the help! Perfectly got what I needed with this and the help of others!

    • Thanks 1
  2. First, I tried to search for a script(s) to use and I kept buying ones that weren't what I wanted. So, I asked scripters for help and tried it myself and well coding turns out to not be my thing. I searched all over marketplace but with any words I use I can't find this!

    Just need a poseball for ONE animation so the user sits, they are in the pose and a menu auto pops up (they don't need to click object since the poseball will go invis after sitting) to adjust their av spot (like x, y, z, etc). I have seen so many other stores and photo places use this so I am surprised it's so hard for me to find it. And, this is for a photo place with backdrops+poses (like Sunny's for example) so I don't want to give permission for anyone to move the poseball and risk them moving it way out where it needs to be.

    Please help!! >.<

  3. Thanks everyone for all the replies! I dunno why I said "like for photography" because it IS for photography.. lol - This is for a studio with backdrops & poses, in a way like Sunny's and other places.

    So, what I am seeing the AVsitter does seem like my best option.

    I had found a script that does have a pop-up menu BUT it only comes up if you click the poseball but of course the poseball needs to poof when sat on for the picture. So, need the menu to come up soon as they sit so they can move their avatar in the right spot for the photo, especially for photos that have multiple avatars together.

    I know I can just use the free pose script but I want my visitors to have the ability to get a great photo.

  4. I am struggling to find something that I thought would be easy to find since I see it used everywhere and I keep dumping my linden into stuff that's not what I am looking for. I just need a poseball (or script to make one) for ONE animation that will pop up a menu for the user to adjust their avatar. Like poseballs used for photography.

  5. 1 hour ago, Rolig Loon said:

    That's still not terribly difficult, but it will require a fair amount of scripting, unlike the simple response I gave earlier.  If you are not a scripter,  I suggest posting this information in a new thread in the InWorld Employment forum to catch the eye of a scripter who can write a custom script for you.  This forum is meant as a place for scripters to learn from each other (or often to moan about parts of their scripts that are not working the way they expected).  We rarely post full scripts here except as rough examples.

    I think I will have to do that for sure. Thank you for all the help again Rolig. 🙂

  6. 1. Customer comes into the store.

    2. They buy the photo they want personalized.

    3. The "BUY" sign then changes to "SOLD".

    4. They get a notecard to a website link form to fill out for personalized info.

    5. I use the info to customize the photo and send files to them.

     

    That is what my shop will be.

  7. Wow so many people that are helping and so many words and phrases I have NO clue what they meaaaan LOL - again, super super new to this, I don't know one thing about scripting.

     

    I will look into everything that you all have suggested - thank you SO SO much!

  8. Hello, I am still very new to SL and have started a business. In my store I am wanting to sell items that only ONE person can buy and will be sold out. I'm wanting it say "BUY" below the item and once bought will change to "SOLD". Are there any scripts out there like this? I did try to look on MP but I don't know what I am exactly or specifically looking for.

  9. 4 hours ago, Quarrel Kukulcan said:

    Do you have the right template mesh for the body you're making clothes for? If you're shrinking the armature, it sounds like you don't.

    The Petite avatar was made from Ruth 2.0, I was told to use that and resize to .4 - and so that is what I did

    I'm VERY new to this FYI

×
×
  • Create New...