Jump to content

Zousug Corvinus

Resident
  • Posts

    24
  • Joined

  • Last visited

Posts posted by Zousug Corvinus

  1. 5 minutes ago, Quistess Alpha said:

    you're using msg (which has just been confirmed to have the value "Radio On") as the CURRENT_URL when you probably intend a variable representing the URL.

    oh drats.. lol i think i fixed it..

     

     llSetLinkMedia(2, 2, [PRIM_MEDIA_CURRENT_URL, music_url, PRIM_MEDIA_AUTO_PLAY, TRUE]); still dosnt play lol

    • Like 1
  2. 2 minutes ago, Quistess Alpha said:

    if you're using your code above, "Radio On" doesn't look like a valid URL. . .

    The URL is set in the admin menu.. on is just meant to set it to play, off to stop

  3. 54 minutes ago, Quistess Alpha said:

    llSetLinkMedia()

    PRIM_MEDIA_CURRENT_URL

    PRIM_MEDIA_PERMS_CONTROL, PRIM_MEDIA_PERMS_NONE

    If the URL is set only when the button is pressed, and the media face is turned off otherwise, and the viewer has auto-play enabled. Not necessarily recommended for general use.

    Thanks for the reply, was about to make a quick update post hehe

    I have the code in to set the url and its set auto play = false.. I then have these two buttons

                if(msg == "Radio On")
                {
                    llSetLinkMedia(2, 2, [PRIM_MEDIA_CURRENT_URL, msg, PRIM_MEDIA_AUTO_PLAY, TRUE]);
                }
                else if(msg == "Radio Off")
                {
                    llSetLinkMedia(2, 2, [PRIM_MEDIA_CURRENT_URL, ""]);
                }
                else
                {

    The Radio On option works, makes it so it plays but radio off is not taking the URL away to turn it off.. *is there away to change it to HOME which should always be blank as away to switch it off?*

     

    Iv had the off set to PRIM_MEDIA_CURRENT_URL as well with no url just "" and still dont work

  4. Hey all,

    I have a item that when clicked on comes up with a menu to do a few different things.

    attached is another prim that has a face thats set to media, was wondering..

    How can i change the media on prim url?

    Also, can i hide the bar that shows *stop play home etc*?

    And any way to have it only play when the play button is pressed in the menu system i have?

     

    thanks in advanced

  5. Hello, 

    I'm looking to hire someone to make me a music script that has the following features built in:

    - Allow setting access permission *Owner / All / Group* for being able to play loaded songs / radio station *settings only owner*

    - Show menu of purchased Records to play song

    - Settings Menu to allow setting a stream URL and play it as radio instead of the records

    - Volume adjustment option

    - Preferable unlimited songs to be loaded 

    - Full Permissions

    More details can be given just message me in-world or IM if interested.  Thank you for your time!

    --Zousug

  6. 7 hours ago, Estelle Pienaar said:

    What is a HVID?

    It is a tv, they let you buy any dvd's from their store and it loads into the tv and you can play em..

    i wanna do the same thing but for music just not sure how to start

  7. 10 hours ago, Rolig Loon said:

    Well, if the person is not sitting, then she's obviously not in the linkset yet, so that doesn't work.  I assumed you were trying to adjust sitting position.  You can't ever adjust the position of an avatar directly.  You can only adjust the position of something an avatar is sitting on or wearing.

    Hey,

    So it works *lowers me down cause the animation by default is high* but i need to change it so its a little higher off the ground.  *ignore the messy code sorry*

    the last line llsetlinkprimitiveparamsfast bit, iv tried changing the numbers but it isnt changing the height any, also *im sitting on the item* still getting a Syntax error on 0,25 *which is just after the ( in first line*

     

    llSetLinkPrimitiveParams(llGetNumberOfPrims(), [ PRIM_POS_LOCAL,] );  // when avatar sits it becomes the last child on the linkset
    
    default
    {
    vector size = llGetAgentSize(llAvatarOnSitTarget()); // we measure the avatar size
    float adjustement = (size.z / 2 );  // size.z is avatar height, pelvis is halfway the avatar
    float avup = (adjustement + ( size.z/10)) + 0.08; // half of avatar + one tenth of avatar + your own tweak (depends on various things, so you have to test what works for you)
    llSetLinkPrimitiveParamsFast(agentlinknum,[PRIM_POS_LOCAL,<0,0,avup>,PRIM_ROT_LOCAL,llEuler2Rot(<0,0,0>)]); // here we move the avatar to the new position, the rotation part is the target rotation in euler 
    }

     

  8. 7 hours ago, Rolig Loon said:

    Well, if the person is not sitting, then she's obviously not in the linkset yet, so that doesn't work.  I assumed you were trying to adjust sitting position.  You can't ever adjust the position of an avatar directly.  You can only adjust the position of something an avatar is sitting on or wearing.

    just an update, works perfect thank you ^.^

  9. hey all, sorry i was not getting notifications for some reason.

    Thank you all for your replies, was hoping *but not holding my breath* for another way to do it haha

    unfortunately this solution wont work as the studio is above the store haha.. skybox it is lol

  10. 4 minutes ago, Rolig Loon said:

    Well, if the person is not sitting, then she's obviously not in the linkset yet, so that doesn't work.  I assumed you were trying to adjust sitting position.  You can't ever adjust the position of an avatar directly.  You can only adjust the position of something an avatar is sitting on or wearing.

    oh it is for when sitting i just wasnt sitting on it while i was writing the script haha.

    I will play with it and get back to you *again early morning and been awhile lol* thank you for your help.

  11. 5 minutes ago, Rolig Loon said:

    The person who sits on your object becomes the last link in its lnkset, so you can move that person with

    llSetLinkPrimitiveParams( llGetNumberOfPrims(), [ PRIM_POS_LOCAL,          ] );

    and then put your new local position in the blank space.  And of course, you can change that position, depending on which anim is triggered.

    Hi thanks for the reply,

    When i save the script i get a (0,26) Error Syntax error  even if i place the above in.. is that just because im not sitting on it at the time? sorry its been awhile with scripting and its early morning lol

  12. Hello,

    I was looking to do a script to change the avatar height when an animation is used *the animation has me floating when sitting* and came across this but i cant get it to work just syntax's out on the first line.

    is there something out there or can anyone help? thanks

  13. Not really sure where to ask this but here it goes haha

    Is there away to stop sound from going out of a room so people can be walking around on the land hearing all normal sounds but cant hear whats in the room and the one in the room cant hear anything outside of it?

  14. lol do not ask me how.. but making changes i broke the script posted above...

    I looked around and found one that is free-use and is very close to what I was trying to get but I still need a few things edited.. if someone can help me make the changes / point me in the right direction or even another one that dose it?

    so when i click play with this one it says playing 1 of 30 *for example* i wanna change it to songs current time / total time instead, also it dosnt show the song name above this *it shows new end of the play for some reason* and last thing i need to do is make it so i can click it to stop it from playing as well atm it just restarts

    i would really appreciate some guidance if possible.

     

    // :CATEGORY:Music
    // :NAME:Music Player
    // :AUTHOR:Fred Beckhusen (Ferd Frederix)
    // :CREATED:2013-09-06
    // :EDITED:2013-09-18 15:38:58
    // :ID:548
    // :NUM:745
    // :REV:1
    // :WORLD:Second Life
    // :DESCRIPTION:
    // Sensor
    // :CODE:
    
    // 10-09-2012 by Fred Beckhusen (Ferd Frederix)
    
    // May be triggered to run continually, start it by touching it or use the sensor script when someone gets nearby.
    
    // This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
    // http://creativecommons.org/licenses/by-nc/3.0/deed.en_US
    // This script cannot be sold even as part of another object, it must always remain free and fully modifiable.
    
    // Drop 10 second song clips in the inventory of the obect, and touch to play.
    // A great free tool to make these files is the slice audio file splitter at http://www.nch.com.au/splitter/index.html
    // Set the variable loop = TRUE to loop after reaching the end, set it to FALSE to play once.
    
    // Scriptable Control:
    // Send a link message string of 'play' and 'stop' for use with external control scripts.
    // Or just touch the prim to play
    
    integer loop = FALSE;                // set to TRUE to loop again and again
    float set_text_alpha = 1;            // the text transparency fo alpha text. Set this to 0 to disable hovertext
    
    // Stuff that you should not mess with:
    
    integer debugflag = TRUE;           // chat debug info to owner if TRUE
    integer waves_to_preload = 3;       // wave files to Preload ahead of the wav being played.
    float preload_load_time = 0.5;      // seconds pause between each preloaded wave file attempt b4 play comnences
    integer secret_channel = 54345;     // just a magic number
    vector set_text_colour = <1,1,1>;   // colour of floating text label ( white)
    float timer_interval = 9.8;         // time interval between requesting server to play the next 10 second wave
    // times just below 10 seconds are suitable as we use sound queueing
    integer total_wave_files;           // number of wave files
    integer i_playcounter;              // used by timer() player
    string preloading_wave_name;        // the name of the wave file being preloaded
    string playing_wave_name;           // the name of the wave being played
    
    
    DEBUG (string msg)
    {
        if (debugflag) llOwnerSay(msg);
    }
    
    
    go(integer play) {
    
        if (play)
        {
            sound();
    
        } else {
                llSetTimerEvent(0.0);
            llStopSound();
            DEBUG("Stoped");
            llSetText(llGetObjectName() + "\n.", <0,1,0>, set_text_alpha);
        }
    }
    
    
    
    sound() {
    
    
        total_wave_files = llGetInventoryNumber(INVENTORY_SOUND);
        integer counter = 0;        //do full preload of sound
        llSetSoundQueueing(TRUE); // only works on llPlaySound not llTriggerSound, so we can queue these silently
        integer local_total_wave_files = total_wave_files -1 ;
    
        float length = total_wave_files * 10.0;
        for (counter = 0 ; counter < waves_to_preload ; counter++)  //preload X wave files b4 we play
        {
            //since wavs are numbered from 0 we minus 1
            preloading_wave_name = llGetInventoryName(INVENTORY_SOUND, counter);
    
    
            llSetText(llGetObjectName()
                + "Preload wav: " + (string)counter +"\n."
                +"\n.", <1,0,0>, set_text_alpha);
            //Attempt to preload first x wave files to local machines cache!
            llPreloadSound(preloading_wave_name);
    
    
            DEBUG("Preloading wav: " + (string)counter + " " + (string)llGetInventoryKey(preloading_wave_name));
            //start play sound timer in 'timer_interval' seconds when we are less than 'timer_interval' seconds from
            // finishing preloading.
            llSleep(preload_load_time);
    
        }
        llSetTimerEvent(0.1);   // start playing
        i_playcounter=0;
        counter=0;
    }
    
    
    default
    {
        state_entry()
        {
            //set text above object to the name of the object
            llSetText(llGetObjectName() + "\n.", <0,1,0>, set_text_alpha);
        }
    
        touch_start(integer total_number)
        {
            go(TRUE);
        }
    
        timer()
        {
            llSetTimerEvent(timer_interval);
            if( i_playcounter > (total_wave_files -1) )
            {
                if (!loop)
                {
                    llSetTimerEvent(0);
                }
                else
                {
                    sound();
                }
    
            }  else {
                    playing_wave_name = llGetInventoryName(INVENTORY_SOUND, i_playcounter);
                DEBUG("llPlaySound wav: " + (string)i_playcounter + " " + playing_wave_name );
    
                llPlaySound(playing_wave_name, 1.0);
                llSetText(  llGetObjectName() + "\n(playing " + (string)i_playcounter +" of "+ (string)(total_wave_files -1) +")\n.", <0,1,1>, set_text_alpha);
                if(i_playcounter + waves_to_preload <= (total_wave_files -1))
                {
                    preloading_wave_name = llGetInventoryName(INVENTORY_SOUND, i_playcounter + waves_to_preload);
                    llSetText("Playing " + (string)i_playcounter + " of " + (string)(total_wave_files -1) , set_text_colour, set_text_alpha);
    
                    DEBUG("Preloading wav:" + (string)(i_playcounter + waves_to_preload) + "\n" +
                        (string) llGetInventoryKey(preloading_wave_name) +  "\n" +
                        "Preloading sequence: " + (string)(i_playcounter + waves_to_preload));
    
    
                    llPreloadSound(llGetInventoryName(INVENTORY_SOUND, i_playcounter + waves_to_preload));
                }
            }
            i_playcounter++;     //increment for next wave file in sequence!
        }
    
        link_message(integer sender_number, integer number, string message, key id)
        {
            if (message == "play")
            {
                go(TRUE);
            }
            else if (message == "stop")
            {
                go(FALSE);
            }
        }
    
        on_rez(integer param)
        {
            llResetScript();
        }
    }

     

  15. Hey,

    Trying make a *CD* I can click to start playing a song.. i have it mostly finished but would like if it could put the time of the song I.e 00:00 - 04:35 and have it count up in to show where it is?

    and how to stop it from playing once its finished lol it seems to repeat -.-

    Below is my code so far.

    integer clips;
    integer toggle = TRUE;
    float clip_length = 10;//in seconds
    float last_clip_length = .05;//length of last clip in seconds
    integer cycle;
    
    init()
    {
        toggle = TRUE;
        llSetTimerEvent(0);
        llSetSoundQueueing(FALSE);
        llStopSound();
        llTargetOmega(<0,0,0>,0,0);
        llSay(0,"Loading song please wait.");
        llSetSoundQueueing(TRUE);
        clips = llGetInventoryNumber(INVENTORY_SOUND);
        llPreloadSound(llGetInventoryName(INVENTORY_SOUND,0));
        llSleep(clip_length);
        llSay(0,"Touch to start.");
    }
    
    default
    {
        state_entry()
        {
            init();
        }
        on_rez(integer param)
        {
            init();
        }
    
        touch_start(integer total_number)
        {
            if (llDetectedKey(0) == llGetOwner()) {
                if(toggle){
                toggle = FALSE;
                llSay(0,"Starting Player");
                llSetSoundQueueing(TRUE);
                
                llPlaySound(llGetInventoryName(INVENTORY_SOUND,0),1.0);
                llPreloadSound(llGetInventoryName(INVENTORY_SOUND,1));
                cycle = 1;
                llSetTimerEvent(clip_length/2);
                }
                else {
                toggle = TRUE;
                llSetTimerEvent(0);
                llSay(0,"Player Stopped");
                llSetSoundQueueing(FALSE);
                llStopSound();
                }
            }
        }
        timer()
        {
                
                
                if(cycle < clips ){
                llPlaySound(llGetInventoryName(INVENTORY_SOUND,cycle),1.0);
                cycle = cycle + 1;
                    if(cycle < clips){
                    llSetTimerEvent(clip_length);
                    llPreloadSound(llGetInventoryName(INVENTORY_SOUND,cycle));
                    }
                    else {
                    llSetTimerEvent(last_clip_length);
                    llPreloadSound(llGetInventoryName(INVENTORY_SOUND,0));
                    }
                }
                else {
                llSetTimerEvent(clip_length);
                llPlaySound(llGetInventoryName(INVENTORY_SOUND,0),1.0);
                llPreloadSound(llGetInventoryName(INVENTORY_SOUND,1));
                cycle = 1;
                }    
                
        }
    }
    

     

  16. On 4/14/2022 at 8:17 AM, Chic Aeon said:

    I agree that my tutorials are old and that Blender has changed :D.  But that house physics tutorial is still used often and my top video of all time so if you cannot find anything NEWER (and I am guessing there is not much if anything as a whole lot of even old creators don't understand about the physics) then maybe just WATCHING it and not worrying about doing step by step would at least give you an idea of the process.  

     

    Also if you haven't made a lot of other things --- like furniture which are much easier to deal with, then you may be way ahead of yourself in the learning process.  It very much sounds like you are starting in "advanced algebra" when you haven't done the prerequisite course :D.  Just saying. 

     

    It usually takes years before folks really know what they are doing in Blender.  Little by little. 

    Iv watched it a few times and (most likely just because im doing it so late at night) just cant make sense of it..

     

    iv got the building done i just need to get the other bits done ^.^

    ill try watching the video again tomorrow during the day instead of late at night haha

  17. Thanks everyone for your replies,

    On 4/9/2022 at 11:03 PM, arton Rotaru said:

    I can't provide any updated Blender tutorials for this, but when it comes to the physics of a mesh there are a couple of things to be aware of.

    1) You need to provide a custom mesh as the physics shape during import. (Physics tab) Otherwise the mesh will end up only with the default single convex hull the uploader assigns automatically.
    2) You need to set the Physics shape type to Prim in-world (Build floater > Feature tab) to be able to walk through doorways. If the Prim option is missing in that drop down menu, you did not provide a physics mesh during upload.
    3) Experiment with the options under the Physics tab in the uploader. Analyze will break down the provided physics mesh into a set of convex hulls. 256 hulls max with 256 points max each. So keep your physics meshes as simple as possible. Use the Explode slider to see how the mesh is been decomposed into hulls.
    4) If you don't press the Analyze button, the physics mesh will be used as is, as a triangle based collision mesh. This can give good results on large builds like houses. Avoid tiny or narrow triangles, though.

    Caveat:  On objects in_world with dimensions less than 0.5 meters in one or, more dimensions, the Physics engine will secretly switch to the default single convex hull even the physics shape type is set to Prim. Walking through doorways will be blocked. In this case you need to Analyze the physics, or make sure the mesh is big enough in all dimensions.

    not sure how to make a custom mesh but ill look into it now i know its something i need, thank you for the rest of the info, i dont tend to use small objects so that should be ok.. as soon as i can log into the beta / test world where i can upload ill play around with the settings ^.^ thank you.

    On 4/10/2022 at 5:13 AM, animats said:

    Ah. Here's a tutorial on house physics. 2017, though. SL hasn't changed much, but Blender has.

     

    Hi, yeah i have seen that video but i kinda of got lost.. 1) its just pics and her talking not actively showing but its also a different version of blender so i got lost a bit there to..

    2 minutes ago, Rain Alderbury said:

    Hello Zousug;

    Building houses (properly) is probably one of the most difficult projects because of the number of things you need to be aware of seemingly at the same time. And it doesn't help that Blender changes frequently, which can be disconcerting.

    I teach Blender for Second Life at Builders Brewery, and I'm currently running a series of lessons that will culminate in the building of a house. Issues of optimization, LODs, texture baking for large areas, shadows, material limitations, root prims, and physics (which is your issue)... all are being addressed and everyone is welcome to join. 

    Bottom line is that you can't build a house in one lesson. Everyone will have different issues, so I've designed this as a class project that will span a period of time. Some classes have already taken place (Procedural Materials for example) but many more will come very soon. I'm hoping to announce the culminating project in a couple of weeks, by around late April (2022). I invite anyone with any house-building issues to climb on board and get involved to help prepare yourself for this series.

    For fun, have a look at a windmill I build a couple years ago. I live in it...

    Yeah I am a member of Builders Brewery but as I live in Australia its hard to get to your classes :(

     

    again thanks everyone for replies, ill rewatch the video and see how i go with it to ^.^

    • Like 1
  18. Hello,

    I am looking at making a house in Blender for SL and was looking for updated tutorials and info on it.

    I did a sample (and before i knew of the test area) uploaded it to SL and couldnt walk through the door.. any help be greatly appreciated.

    Thanks in advance

×
×
  • Create New...