Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // modifica
- list initialpositions=[ 0,0,0,0,0,0,0,0 ];
- list tokenslinks =[ 0,0,0,0,0,0,0,0 ];
- vector centralpos;
- vector target; integer targetlink;
- vector getPos(integer link)
- {
- key id=llGetLinkKey(link);
- vector pos=llList2Vector(llGetObjectDetails(id,[OBJECT_POS]),0);
- return pos;
- }
- accendi(integer link)
- {
- llSetLinkPrimitiveParamsFast(link,[PRIM_FULLBRIGHT,ALL_SIDES,TRUE,
- PRIM_POINT_LIGHT,TRUE,
- <1.0,0.7,1.0>, // light color vector range: 0.0-1.0 *3
- 1.0, // intensity (0.0-1.0)
- 10.0, // radius (.1-20.0)
- 0.6
- ]);
- }
- spegni(integer link)
- {
- llSetLinkPrimitiveParamsFast(link,[PRIM_FULLBRIGHT,ALL_SIDES,FALSE,
- PRIM_POINT_LIGHT, FALSE, // if this is false, light is off,
- <0.0,1.0,0.0>,1.0, 10.0, 0.5
- ]);
- }
- default
- {
- state_entry()
- {
- llSetText("",<1,1,1>,1);
- centralpos=getPos(1);
- // mette a posto tutti i pezzi
- integer i=0;
- for(i=2;i<=llGetNumberOfPrims();i++)
- {
- string name=llGetLinkName(i);
- if(llGetSubString(name,0,0)=="S")
- {
- integer num=(integer)llGetSubString(name,1,-1);
- initialpositions=llListReplaceList(initialpositions,[ getPos(i)-centralpos + <0,0,0.1> ],num-1,num-1);
- }
- integer index=(integer)name;
- if( index > 0)
- {
- tokenslinks=llListReplaceList(tokenslinks,[ i ], index-1, index-1 );
- }
- }
- //llSay(0,llList2CSV(tokenslinks));
- for(i=0;i<8;i++)
- {
- integer tokenlink=llList2Integer(tokenslinks,i);
- target=llList2Vector(initialpositions,i);
- //llSay(0,"Moving token # "+i+" link: "+(string)tokenlink+ " named: "+llGetLinkName(tokenlink)+" to "+(string)target);
- llSetLinkPrimitiveParamsFast( tokenlink, [ PRIM_POSITION, target ]);
- }
- target=ZERO_VECTOR;
- llListen(100,"",llGetOwner(),"");
- llSay(0,"Ready");
- }
- changed(integer change)
- {
- if(change & CHANGED_OWNER) llResetScript();
- }
- on_rez(integer rez)
- {
- llResetScript();
- }
- listen(integer channel,string name,key id,string str)
- {
- if(str=="RESET") llResetScript();
- }
- touch_start(integer total_number)
- {
- integer link=llDetectedLinkNumber(0);
- string name=llGetLinkName(link);
- if(link==1)
- {
- llDialog(llDetectedKey(0),"Menu",["RESET"],100);
- return;
- }
- integer number=(integer)name;
- if(number>0){
- if(target==ZERO_VECTOR)
- {
- llSay(0,"Clicca prima un posto dove andare");
- return;
- }
- llSetLinkPrimitiveParamsFast( link, [ PRIM_POSITION, target ]);
- spegni(targetlink);
- llSetTimerEvent(0); target=ZERO_VECTOR; //spegni(targetlink);
- return;
- }
- if(llGetSubString(name,0,0)=="S" || llGetSubString(name,0,0)=="T")
- {
- llSetTimerEvent(10);
- target=getPos(link)-centralpos+<0,0,0.1>;
- accendi(link); spegni(targetlink); targetlink=link;
- llSay(0,"Marcato luogo di arrivo, clicca la cornice da muovere entro 10 secondi");
- return;
- }
- }
- timer()
- {
- llSay(0,"Tempo scaduto");
- llSetTimerEvent(0);
- target=ZERO_VECTOR; spegni(targetlink);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement