dans la telecommande....
integer canal;
default
{
state_entry()
{
canal = (integer)("0xA" + llGetSubString((string)llGetOwner(), 0,6 ));
}
touch_start(integer total_number)
{
llSay(canal,"clic");
}
}
et dans le rideau....
vector offset = <0,0,1>;// = <0,0,1>; //Prim moves/changes size along this local coordinate
float hi_end_fixed = FALSE; //Which end of the prim should remain in place when size changes?
//The one with the higher (local) coordinate?
float min = 0.2; //The minimum size of the prim relative to its maximum size
integer ns = 10; //Number of distinct steps for move/size change
integer canal;
integer ecoute;
integer i = 0;
default
{
state_entry()
{
canal = (integer)("0xA" + llGetSubString((string)llGetOwner(), 0,6 ));
ecoute = llListen(canal, "","", "clic");
offset *= ((1.0 - min) / ns) * (offset * llGetScale());
hi_end_fixed -= 0.5;
}
listen( integer canal, string name, key id, string msg )
{
integer i;
do
llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_SIZE, llGetScale() - offset,
PRIM_POSITION, llGetLocalPos() + ((hi_end_fixed * offset) * llGetLocalRot())]);
while ((++i) < ns);
offset = -offset;
}
}
|