Jump to content

Cindy Kraai

Resident
  • Posts

    26
  • Joined

  • Last visited

Posts posted by Cindy Kraai

  1. Thanks guys these really helps, thanks Rolig Loon for the example. My follow up question is, 

    llSetLinkPrimitiveParamsFast(LINK_THIS,[
    PRIM_TEXTURE, 0, texture, <1.0, 1.0, 0.0>, <0.0, 0.5, 0.0>, 0.0,
    PRIM_TEXTURE, 1||2||3, texture, <1.0, 1.0, 0.0>, <0.0, 1.656, 0.0>, 0.0,  
    PRIM_TEXTURE, 4||5||6, texture, <1.0, 1.0, 0.0>, <0.0, 1.0, 0.0>, 0.0
    ]);

    you can't do it this way right? i was hoping it is possible. It saves correctly but doesn't work at all

  2. I'm not sure if this is possible or allowed in lsl but can we do something like this?

    llSetLinkPrimitiveParamsFast(LINK_THIS,[
    PRIM_TEXTURE, 0, texture, <1.0, 1.0, 0.0>, <0.0, 0.5, 0.0>, 0.0,
    PRIM_TEXTURE, side number 1 to 3, texture, <1.0, 1.0, 0.0>, <0.0, 1.656, 0.0>, 0.0,  
    PRIM_TEXTURE, side number 4 to 6, texture, <1.0, 1.0, 0.0>, <0.0, 1.0, 0.0>, 0.0
    ]);

    instead of uploading multiple textures i decided to just rotate them accordingly in their faces but is it possible to do something like "side number 1 to 3 is <0.0, 0.5, 0.0>" and "side number 4 to 6 is <0.0, 1.5, 0.0>". Please help, and thanks for giving some samples :) 

  3. integer level;
    
    default
    {
         state_entry()
        {   
            if(level != "50 to 100")
    		{
    			//don't allow command
    		}
    		else
    		{
    			//allow command
    		}
        }
    }

    i'm trying to create a level limit sort of, before making a certain command that will be available only if they are in that level. I was thinking of using "list" then llGetListLength  but making those numbers are too long and i'm not sure if there is a limit on making those list.

    integer level;
    list level_list = ["50","51","52", so on and so forth up to "100" ];
    
    default
    {
         state_entry()
        {
    		integer length = llGetListLength(level_list);
            if(level != (string)length)
    		{
    			//don't allow command
    		}
    		else
    		{
    			//allow command
    		}
        }
    }

    is there any way i can make this easier and shorter, please help me and thank you in advance for giving some samples that are understandable. :D

  4. I was trying to get my animesh back to its home using a dedicated rezzed prim (at a parcel) with a particular name, i'm n

    string home_base = "homeObject";
    vector prim_pos;
    ReturnHome() 
    {
        list primsinparcel = [ home_base];
        integer l_length   = llGetListLength( primsinparcel );
        list objdetails; 
        for ( ; l_length  > -1; --l_length  )
        {
            objdetails = llGetObjectDetails(llList2String(primsinparcel,l_length),[OBJECT_NAME]);
            if ( llList2String(objdetails,0) == home_base )
            {
                vector prim_pos = llList2Vector(llGetObjectDetails(l_length, [OBJECT_POS]), 0);
                llNavigateTo(prim_pos, []);
            }
        }
    }

    ew to pathfinding please help! 

  5. I want to create a retractable wolverine claws, so what i did is something like this▼

    vector currentsize;
    vector currentposition;
    vector newsize;
    vector newposition;
    default
    {
        state_entry()
        {
            currentsize = llList2Vector(llGetLinkPrimitiveParams(1,[PRIM_SIZE]),0);
            llSetLinkPrimitiveParamsFast(1,[ PRIM_SIZE, currentsize, PRIM_POSITION,currentposition]);
        }
    
        touch_start(integer total_number)
        {
            llSetLinkPrimitiveParamsFast(1,[ PRIM_SIZE, <0.5,0.5,0.5> , PRIM_POSITION, <0.5,0.5,0.5> ]);
            llSetTimerEvent(3);
        }
        timer()
        {
            llSetTimerEvent(0);
            llSetLinkPrimitiveParamsFast(1,[ PRIM_SIZE, currentsize, PRIM_POSITION,currentposition]);
        }
    }

    basically, I want to record the current size & position of the claws and when drawn or sheath it retracts; however, my problem is when the the whole linked object are resize (according to user avi size) it messes up the whole linked object. Is there any other workaround here, can someone help me please.. thank you!

  6. Hello, im trying to copy the prim rotation & location of OBJECT_1 to OBJECT_2 by using llGetPrimitiveParams. is this possible? or any workaround on this one? if there is please help.

    //OBJECT_1
    default
    {
        touch(integer total_number)
        {
            list params  = llGetPrimitiveParams([
            PRIM_POSITION,
            PRIM_ROTATION
            ]);
            //tell object_2 to copy this rotation & location
        }
    }
    
    //OBJECT_2
    integer listen_handle;
    default
    {
        state_entry()
        {
            listen_handle = llListen(-1984, "",NULL_KEY, "");
        }
    
        listen( integer chan, string name, key id, string msg )
        {
            if(msg == "this_is_object_1_rot_loc")
            {
                //get's object_1's rotation & location
            }
            
        }
    }

     

  7. im sorry guys if i confused you all with the question but it seems that Innula Zenovka understands me. I just needed the hud to say something like its coming from me

    34 minutes ago, Innula Zenovka said:

    When you use llDialog, that makes your viewer say the text on the menu button that you click, using the channel specified in the llDialog call.   So if you know the commands the object is expecting, have the HUD present a menu thus, llDialog(llGetOwner(), "Please choose something", [ some commands], 7), and that should make the object hear your message as coming from you.

    and im going to use this and it's working now. Thanks for replies guys specially to Innula Zenovka thanks really this helps!

  8. ------------------------------------------------------
    //Hud Code:
    default
    {
    	touch(integer ok)
    	{
    		llSay(7,"say_something!")
    	}
    }
    ------------------------------------------------------
    //Sit Code
    integer handle;
    integer channel = 7;
    
    default 
    {
        state_entry(){llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);}
        listen( integer chan, string name, key id, string msg )
        {
          //this'll be a multiple channels
            if(chan == 7 && msg == "say_something!")
            {
                llOwnerSay("that'll make this respond!");
            }
        }
        changed(integer change){
            if(change & CHANGED_LINK){
                key k = llAvatarOnSitTarget();
                if(k){// if k is a valid key
                    llListenRemove(handle);
                    handle = llListen(channel, "",k, "");
                }
                else{
                    llListenRemove(handle);
                }
            }
        }
    }
    ------------------------------------------------------

    My question is how do i make my hud speak as my avatar, when i type the command code in local chat it works but it won't work when i let my hud say it for me? what did i did wrong? is there any other way around this one?

  9. state_entry()
    	{
    		llListen(7, "", NULL_KEY, "");
    		//with multiple listen channels here
    	}
    listen(integer chan, string name, key id, string msg)
        {
            if(chan = 7 && llDetectedKey(0) == llAvatarOnLinkSitTarget(3))
            {
    			//listens only to the AvatarOnLinkSitTarget
    		}
    	}

    i've been trying this but it doesn't seem to listen and im not sure if im doing it wrong. If there is an easy way please help, if none thanks anyway for viewing this post.

  10. I basically want to have a timer script that will only start if triggered by two other script, like it won't start until both commands are given. My question is, is it possible, if yes please give me an idea.

    //TimerEvent
    default { state_entry() { llListen(1, "", NULL_KEY, ""); } listen( integer channel, string name, key id, string message ) { if(/*waits for command one & two to start*/) { llSetTimerEvent(10); } } timer() { //start event } }
    //Command 1
    default
    {
        touch_start(integer total_number)
        {
            llSay(1,"command one");
        }
    }
    //Command 2
    default
    {
        touch_start(integer total_number)
        {
            llSay(1,"command two");
        }
    }

     

  11. integer Count;
    default
    {
        state_entry()
        {
            Count = llGetUnixTime();
            if(Count < 10){
                llSetTimerEvent(0);
                }
            else 
            llSetTimerEvent(0.1);
        }
     
        timer()
        {
            llSetText((string)(llGetUnixTime() - Count) + " Seconds!\n\n ", <1,0,0>, 1.0);
            
        }
    }

    im not really sure how it works but the idea is as soon as the script runs it will start counting via text and when it reaches a certain number it will stop. Can someone help me with this pls, thanks in advance

  12. I got a script wherein when you put it on an object and touch it afterwards it gives you a menu that will change the texture of the object.

    what i wanted to happen:

    1. change the touch_start to something like listening to a command via local chat

    2. or much better, to make a hud that will change the texture of the object (worn & rezzed)

     

    thnks in advance for the replies!

     

    here is the script btw:

    integer side = ALL_SIDES;

    list texture_list;
    list texture_list2;
    key user = NULL_KEY;

    composelist()
    {
    integer currenttexture = 0;
    integer totaltextures = llGetInventoryNumber(INVENTORY_TEXTURE);

    if(totaltextures > 0 & totaltextures <= 12)
    {
    texture_list = [];
    do
    {
    texture_list = texture_list + llGetInventoryName(INVENTORY_TEXTURE, currenttexture);
    currenttexture++;
    }
    while (currenttexture > 0 & currenttexture < totaltextures);
    }

    if(totaltextures > 12 & totaltextures <= 22)
    {
    texture_list = ["Next Page"];
    do
    {
    texture_list = texture_list + llGetInventoryName(INVENTORY_TEXTURE, currenttexture);
    currenttexture++;
    }
    while (currenttexture > 0 & currenttexture < 11);

    texture_list2 = ["Last Page"];
    do
    {
    texture_list2 = texture_list2 + llGetInventoryName(INVENTORY_TEXTURE, currenttexture);
    currenttexture++;
    }
    while (currenttexture >= 11 & currenttexture < totaltextures);
    }

    if(totaltextures > 22)
    {
    llWhisper(0, "You may only have a maximimum of 22 Textures. Please remove any extra ones.");
    }
    if(totaltextures == 0)
    {
    llWhisper(0, "Please add up to 22 Textures inside this object.");
    }
    }


    //The Menu
    integer menu_handler;
    integer menu_channel;
    menu(key user,string title,list texture_list)
    {
    menu_channel = (integer)(llFrand(99999.0) * -1); //random channel
    menu_handler = llListen(menu_channel,"","","");
    llDialog(user,title,texture_list,menu_channel);
    llSetTimerEvent(30.0); //menu channel open for 30 seconds
    }

    default
    {
    state_entry()
    {
    composelist(); //make list from inventory textures
    }

    touch_start(integer total_number)
    {
    user = llDetectedKey(0);
    menu(user,"\n\nPlease select one below.",texture_list);
    }

    listen(integer channel,string name,key id,string message)
    {
    if (channel == menu_channel)
    {
    llSetTimerEvent(0.0);
    llListenRemove(menu_handler);
    if(message == "Next Page")
    {
    menu(user,"\n\nPlease select one below.",texture_list2);
    }
    else if(message == "Last Page")
    {
    menu(user,"\n\nPlease select one below.",texture_list);
    }
    else
    {
    llSetTexture(message, side);
    }
    }
    }

    timer() 
    {
    llSetTimerEvent(0.0);
    llListenRemove(menu_handler);
    }

    changed(integer change)
    {
    if (change & CHANGED_INVENTORY) //inventory has changed
    {
    llSleep(0.5);
    composelist(); 
    }
    }
    }

     

    ,,,

    Sorry this is my first time to ask question in this forum i don't even know how to reply in it lol..

    thank you for answering; however, im really lost cuz im not that really good in scripting, if its not too much can i have a step by step answer like:

    1. This is the script for the texture worn or rezzed ["the script goes here"] 

    2. This is the script for the hud ["the script goes here"]

    sorry for being dumb on this  =(

×
×
  • Create New...