Merci tout d'abord a vous

Pas de soucis pour coller les scripts ici en prime ils sont trouvables sans problème

Le seul hic que je rencontre c'est la fusion de ces scripts car ils ont des fonctions intéressantes chacun mais aucuns reprend l'ensemble des fonctions.
Le script d'Icman fait partie de ceux la notamment pour la gestion de l'accès mais il ne traite pas une couche Alpha.
Je dirais que la bonne base est le script si dessous mais avec en plus:
Une accès liste
Une gestion par baie et pour être au top une texture pour "OPAQUE"
string CONFIG_CARD = "Configuration";
integer FACE= 0;
integer lkey;
integer NotecardLine;
key QueryID;
init()
{
}
default
{
state_entry()
{
llOwnerSay("Initializing…");
if (llGetInventoryType(CONFIG_CARD) == INVENTORY_NOTECARD)
{
NotecardLine = 0;
QueryID = llGetNotecardLine( CONFIG_CARD, NotecardLine );
}
else
{
llOwnerSay("Configuration notecard missing, using defaults.");
state Running;
}
}
dataserver( key queryid, string data )
{
list temp;
string name;
string value;
if ( queryid == QueryID )
{
if ( data != EOF )
{
if ( llGetSubString(data, 0, 0) != "#" && llStringTrim(data, STRING_TRIM) != "" )
{
temp = llParseString2List(data, ["="], []);
name = llStringTrim(llToLower(llList2String(temp, 0)), STRING_TRIM);
value = llStringTrim(llList2String(temp, 1), STRING_TRIM);
if ( name == "face" )
{
FACE = (integer)value;
}
}
NotecardLine++;
QueryID = llGetNotecardLine( CONFIG_CARD, NotecardLine );
}
else
{
state Running;
}
}
}
state_exit()
{
llOwnerSay("Face set to: " + (string)FACE);
llOwnerSay("Initialization Complete!");
}
}
state Running
{
state_entry()
{
init();
}
on_rez( integer param )
{
init();
}
touch_start( integer num )
{
if ( llDetectedKey(0) == llGetOwner() )
{
lkey = llListen( 8192, "", llGetOwner(), "" );
llSetTimerEvent(60);
llDialog( llDetectedKey(0), "Window Options :",
[ "Clear", "75", "50", "25", "Opaque", "Phantom", "Solid"], 8192 );
}
}
timer()
{
llListenRemove( lkey );
llSetTimerEvent( 0 );
}
listen ( integer channel, string name, key id, string message )
{
llListenRemove( lkey );
if ( message == "Opaque" )
{
llMessageLinked( LINK_SET, 0 , "Opaque" , NULL_KEY );
llSetAlpha( 1, FACE );
}
if ( message == "Clear" )
{
llMessageLinked( LINK_SET, 0 , "Clear" , NULL_KEY );
llSetAlpha( 0, FACE );
}
if ( message == "75" )
{
llMessageLinked( LINK_SET, 0 , "75" , NULL_KEY );
llSetAlpha( 0.75, FACE );
}
if ( message == "50" )
{
llMessageLinked( LINK_SET, 0 , "50" , NULL_KEY );
llSetAlpha( 0.5, FACE );
}
if ( message == "25" )
{
llMessageLinked( LINK_SET, 0 , "25" , NULL_KEY );
llSetAlpha( 0.25, FACE );
}
if ( message == "Solid" )
{
llMessageLinked( LINK_SET, 0 , "Solid" , NULL_KEY );
llSetPrimitiveParams( [PRIM_PHANTOM,FALSE] );
}
if ( message == "Phantom" )
{
llMessageLinked( LINK_SET, 0 , "Phantom" , NULL_KEY );
llSetPrimitiveParams( [PRIM_PHANTOM,TRUE] );
}
}
link_message( integer to, integer from , string message, key id )
{
if ( message == "Opaque" )
{
llSetAlpha( 1, FACE );
}
if ( message == "Clear" )
{
llSetAlpha( 0, FACE );
}
if ( message == "75" )
{
llSetAlpha( 0.75, FACE );
}
if ( message == "50" )
{
llSetAlpha( 0.5, FACE );
}
if ( message == "25" )
{
llSetAlpha( 0.25, FACE );
}
if ( message == "Phantom" )
{
llSetPrimitiveParams( [PRIM_PHANTOM,TRUE] );
}
if ( message == "Solid" )
{
llSetPrimitiveParams( [PRIM_PHANTOM,FALSE] );
}
}
changed(integer change)
{
if ( change & CHANGED_INVENTORY )
{
state default;
}
}
}