De DigiWiki.
- Voici un script permettant d'afficher des images du web sur un prim.
- Threat Level: VeryLow (pour autoriser osSetDynamicTextureURLBlendFace).
- Compatibilité: OpenSim & Aurora-Sim
// Random Dynamic Texture v0.2 by djphil
string datas = "http://YOUR_URL/index.php";
integer faces = 8;
float tempo = 60.0;
integer clics;
SetRandomImages()
{
integer i;
do osSetDynamicTextureURLBlendFace("", "image", datas, "width:512, height:512", FALSE, 2, 0, 255, i);
while ((++i) <= faces);
}
default
{
state_entry() {SetRandomImages();}
on_rez(integer start_param) {llResetScript();}
touch_start(integer number)
{
++clics;
if(clics == 1) {llSetTimerEvent(1.0);}
else {llResetScript();}
}
timer()
{
SetRandomImages();
llSetTimerEvent(tempo);
}
}
- La version 0.3 inclu différents droits d'accès (public, owner, group).
// Random Dynamic Texture v0.3 by djphil
string acces = "public"; // public, owner, group
string datas = "http://YOUR_URL/index.php";
integer faces = 8;
float tempo = 60.0;
integer clics;
key asObjectOwner()
{
list details = llGetObjectDetails(llGetKey(), [OBJECT_OWNER]);
return (key)llList2CSV(details);
}
integer asAccessCheck(key id)
{
if(llSubStringIndex(llToLower(acces), "public") != -1) {return TRUE;}
else if((llSubStringIndex(llToLower(acces), "group") != -1)||(asObjectOwner() == id))
{
if(llSameGroup(id) == TRUE) {return TRUE;}
else {return FALSE;}
}
else if(llSubStringIndex(llToLower(acces), "owner") != -1)
{
if(asObjectOwner() == id) {return TRUE;}
else {return FALSE;}
}
else {return FALSE;}
}
SetRandomImages()
{
integer i;
do osSetDynamicTextureURLBlendFace("", "image", datas, "width:512, height:512", FALSE, 2, 0, 255, i);
while ((++i) <= faces);
}
default
{
state_entry() {SetRandomImages();}
on_rez(integer start_param) {llResetScript();}
changed(integer change) {if (change & (CHANGED_OWNER)) llResetScript();}
touch_start(integer number)
{
if(asAccessCheck(llDetectedKey(0)) == TRUE)
{
++clics;
if(clics == 1) {llSetTimerEvent(1.0);}
else {llResetScript();}
}
else {llWhisper(0, "Access Denied");}
}
timer()
{
SetRandomImages();
llSetTimerEvent(tempo);
}
}
- Voici le code php pour la page "index.php" (à placer dans le même dossier que les images).
<?php
// Random Image by Matt Mullenweg
$folder = '';
$exts = 'jpg jpeg png gif';
$files = array(); $i = -1;
if ('' == $folder) $folder = './';
$handle = opendir($folder);
$exts = explode(' ', $exts);
while (false !== ($file = readdir($handle)))
{
foreach($exts as $ext)
{
if (preg_match('/\.'.$ext.'$/i', $file, $test))
{
$files[] = $file;
++$i;
}
}
}
closedir($handle);
mt_srand((double)microtime()*1000000);
$rand = mt_rand(0, $i);
header('Location: '.$folder.$files[$rand]);
?>