OsLoopSound

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m
(Remplace LINK_THIS by 1)
Line 9: Line 9:
 
//
 
//
 
// osLoopSound Script Example
 
// osLoopSound Script Example
 +
// Author: djphil
 
//
 
//
  
Line 36: Line 37:
 
         if (power = !power)
 
         if (power = !power)
 
         {
 
         {
             osLoopSound(LINK_THIS, soundName, 1.0);
+
             osLoopSound(1, soundName, 1.0);
 
         }
 
         }
  
 
         else
 
         else
 
         {
 
         {
             osStopSound(LINK_THIS);
+
             osStopSound(1);
 
         }
 
         }
 
     }
 
     }
Line 50: Line 51:
 
//
 
//
 
// osLoopSound Script Example
 
// osLoopSound Script Example
 +
// Author: djphil
 
//
 
//
  
Line 74: Line 76:
 
         if (power = !power)
 
         if (power = !power)
 
         {
 
         {
             osLoopSound(LINK_THIS, soundUuid, 1.0);
+
             osLoopSound(1, soundUuid, 1.0);
 
         }
 
         }
  
 
         else
 
         else
 
         {
 
         {
             osStopSound(LINK_THIS);
+
             osStopSound(1);
 
         }
 
         }
 
     }
 
     }

Revision as of 11:58, 3 December 2020

osLoopSound(integer linknum, string sound, float volume)
Play the specified sound at the specified volume and loop it indefinitely.

The sound parameter can be the UUID of a sound or the name of a sound that is in the inventory of the target prim.

Threat Level This function does not do a threat level check
Permissions Use of this function is always allowed by default
Extra Delay 0 seconds
Example(s)
//
// osLoopSound Script Example
// Author: djphil
//
 
string soundName;
integer power;
 
default
{
    state_entry()
    {
        // Get the first inventory sound name
        soundName = llGetInventoryName(INVENTORY_SOUND, 0);
 
        if (soundName == "")
        {
            llOwnerSay("Inventory sound missing ...");
        }
 
        else
        {
            llSay(PUBLIC_CHANNEL, "Touch to see osLoopSound usage.");
        }
    }
 
    touch_start(integer number)
    {
        if (power = !power)
        {
            osLoopSound(1, soundName, 1.0);
        }
 
        else
        {
            osStopSound(1);
        }
    }
}

And with uuid:

//
// osLoopSound Script Example
// Author: djphil
//
 
string soundUuid = "5e191c7b-8996-9ced-a177-b2ac32bfea06";
integer power;
 
default
{
    state_entry()
    {
        if (osIsUUID(soundUuid))
        {
            llSay(PUBLIC_CHANNEL, "Touch to see osLoopSound usage.");
        }
 
        else
        {
            llOwnerSay("Invalid UUID detected ...");
        }
    }
 
    touch_start(integer number)
    {
        if (power = !power)
        {
            osLoopSound(1, soundUuid, 1.0);
        }
 
        else
        {
            osStopSound(1);
        }
    }
}
Notes
This function was added in 0.9.0.1

Since 0.9.1 if target prim inventory does not contain the sound, the inventory of the prim containing the script calling this function is also checked.


Personal tools
General
About This Wiki