script rideau avec telecomande

Répondre
Partager Rechercher
hello voici un script rideau qui se leve et ce baisse quand on clic dessus...

l'idée est da voir en fait une télécommande que l on pose ( c est pour une régie de concert)
merci pour votre aide

vector offset = <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


default {
state_entry() {
offset *= ((1.0 - min) / ns) * (offset * llGetScale());
hi_end_fixed -= 0.9;
}

touch_start(integer detected) {
integer i;
do llSetPrimitiveParams([PRIM_SIZE, llGetScale() - offset,
PRIM_POSITION, llGetLocalPos() + ((hi_end_fixed * offset) * llGetLocalRot())]);
while ((++i) < ns);
offset = - offset;
}
}
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;
}
}
Citation :
Publié par MenthalOH
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;
}
}
merci marche nickel

Citation :
Publié par stefsparta
merci marche nickel
hello petite chose la distance la scene est a plus de 20m et le rideaux ne fonctionne pas on règle ou la distance ?

Dernière modification par stefsparta ; 03/01/2021 à 11h44. Motif: Auto-fusion
Dans le script télécommande: Au lieu de llSay(canal,"clic");....il faut mettre llShout(canal,"clic"); ....ça marchera à 100m.....sinon llRegionSay(canal, "clic");......marchera sur toute la sim.....
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés