Difference between revisions of "User:Dantia Gothly"
(6 intermediate revisions by the same user not shown) | |||
Line 17: | Line 17: | ||
.......................................................................................................................... | .......................................................................................................................... | ||
Pulsing alpha on a face. | |||
<lsl> | |||
// Here I use a single function for llSetTimerEvent(); for toggling on/off in the timer event | |||
integer Alpha; | |||
integer Q; | |||
integer Time; | |||
integer Speed = 500; | |||
//~~~~~~~~~~~~~ | |||
DatAction() | |||
{ | |||
llSetLinkAlpha(LINK_THIS,(float)Alpha*.01,2); | |||
} | |||
//~~~~~~~~~~~~~ | |||
default | |||
{ | |||
touch_start(integer face) | |||
{ | |||
Time=!Time;// 1.0 <<>> 0.0 | |||
llSetTimerEvent((float)(Time*.01)); | |||
} | |||
timer() | |||
{ | |||
for(Q=0;Q<Speed;Q++) | |||
{ | |||
Alpha++; | |||
DatAction(); | |||
} | |||
for(Q=0;Q<Speed;Q++) | |||
{ | |||
Alpha--; | |||
DatAction(); | |||
} | |||
} | |||
} | |||
</lsl> | |||
Here is a nonphysical train script | Here is a nonphysical train script | ||
<lsl> | <lsl> | ||
// | //Dantia Gothly 12/22/2010 | ||
// | //This Script is for Open Source use. | ||
//Bug: | |||
//Too many sound requests. Throttled until average falls. | |||
//This | |||
// | |||
// | |||
//////////////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////////////// | ||
// ( | // (Globle Settings) | ||
// Door movment: | // Door movment: | ||
float T_S2 = 2.0;//timer | float T_S2 = 2.0;//timer stoped before opening door. | ||
float Train_leave = 0.8;//how long the train sits after closing the doors and takes off | float Train_leave = 0.8;//how long the train sits after closing the doors and takes off | ||
float Door_open = 10.0;//How long the doors are Open. | float Door_open = 10.0;//How long the doors are Open. | ||
integer door1 = 2;//find the link number for the door you want to move. | integer door1 = 2;//find the link number for the door you want to move. | ||
integer door2 = 3; | integer door2 = 3; | ||
float Door_Slid_dist = 3.3;//sets the slide | float Door_Slid_dist = 3.3;//sets the slide forword distance of the door on the X axis | ||
//Math: | //Math: | ||
Line 50: | Line 81: | ||
float M_1 = 255;// first turn | float M_1 = 255;// first turn | ||
float M_2 = 735;//second turn | float M_2 = 735;//second turn | ||
float M_3 = 1215;// | float M_3 = 1215;//therd turn | ||
float M_4 = 1695;//forth turn | float M_4 = 1695;//forth turn | ||
//Station stop | //Station stop timming: | ||
float W_S = 1920;//start train at west station. | float W_S = 1920;//start train at west station. | ||
float E_S = 985;//stop at east station. | float E_S = 985;//stop at east station. | ||
Line 67: | Line 98: | ||
//Sounds: | //Sounds: | ||
string Eng = " | string Eng = "d0dc3135-d00a-a3ed-88b0-412a9d867734";//freezer-s | ||
string movment = " | string movment = "8737851f-17e3-bb15-b71e-f4235ad64f65";//train-going | ||
string Stops = " | string Stops = "51a96f42-80ff-db3f-d44f-01002c921946";//train-breaks | ||
string Horn = " | string Horn = "4e7218f7-6983-64d6-7d0b-bca5b19dfec8";//train-stand-clear | ||
string DoorOpen = " | string DoorOpen = "26dc4084-9380-e0d2-8810-f624277b6e66";//train-door-open | ||
string DoorClose = " | string DoorClose = "fffcde68-ad75-4c7b-17ff-7cfecf65cd4a";//train-door-close | ||
Line 81: | Line 112: | ||
float Vol0 = 0.0;// Volume mute. | float Vol0 = 0.0;// Volume mute. | ||
// | //Reset or fix: | ||
float R_B = 14;// link number of the reset botton. | |||
vector D_L = <68.000,124.100,34.109>;//Default location. | |||
vector D_R = <0.00,0.00,90.00>;//Default rotation. | |||
//////////////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////////////// | ||
//User | //User defind functions are wonderful | ||
SetLinkPosLocal2Root(integer linknum,vector offset) | SetLinkPosLocal2Root(integer linknum,vector offset) | ||
{ | { | ||
llSetLinkPrimitiveParamsFast(linknum, [PRIM_POSITION, ((llList2Vector( | llSetLinkPrimitiveParamsFast(linknum, [PRIM_POSITION, ((llList2Vector( | ||
llGetLinkPrimitiveParams(linknum, [PRIM_POSITION]),0) - llGetPos())/llGetRot())+offset]); | llGetLinkPrimitiveParams(linknum, [PRIM_POSITION]),0) - llGetPos())/llGetRot())+offset]); | ||
} | |||
DatRotPos() | |||
{ | |||
integer t; | |||
rotation rot=llGetRot(); | |||
for(t=0;t<=90;t++) | |||
{ | |||
llSetLinkPrimitiveParamsFast(LINK_THIS, | |||
[PRIM_POSITION, llGetPos()+(< speed,0.0,0.0>*llGetRot()), | |||
PRIM_ROTATION,(rot/llEuler2Rot(<0,0,t>*DEG_TO_RAD))]); | |||
llSleep(0.04); | |||
} | |||
} | } | ||
///////////////////////////////////////////////////////////////////////////////////////// | ///////////////////////////////////////////////////////////////////////////////////////// | ||
Line 111: | Line 158: | ||
if(num == M_1) | if(num == M_1) | ||
{ | { | ||
DatRotPos(); | |||
} | } | ||
else if (num == M_2) | else if (num == M_2) | ||
{ | { | ||
DatRotPos(); | |||
} | } | ||
else if (num == M_3) | else if (num == M_3) | ||
{ | { | ||
DatRotPos(); | |||
} | } | ||
else if (num == M_4) | else if (num == M_4) | ||
{ | { | ||
DatRotPos(); | |||
} | } | ||
else if(num == W_S) | else if(num == W_S) | ||
Line 160: | Line 179: | ||
llLoopSound(Eng,Vol1); | llLoopSound(Eng,Vol1); | ||
llSetTimerEvent(0.0); | llSetTimerEvent(0.0); | ||
state two; | state two; | ||
} | } | ||
Line 169: | Line 187: | ||
llLoopSound(Eng,Vol1); | llLoopSound(Eng,Vol1); | ||
llSetTimerEvent(0.0); | llSetTimerEvent(0.0); | ||
state two; | state two; | ||
} | } | ||
llSetText( | llSetText("",<1,1,1>,1.0);//Display math. | ||
} | |||
/////////////////////////////////////////////////////////////////////////////////////// | |||
// In case the train brakes touch Reset botton. | |||
touch_start(integer face) | |||
{ | |||
if(llDetectedLinkNumber(0) == R_B) | |||
{ | |||
num = 0; | |||
state fix; | |||
} | |||
} | } | ||
} | } | ||
Line 202: | Line 229: | ||
} | } | ||
} | } | ||
state fix | |||
{ | |||
state_entry() | |||
{ | |||
llSetTimerEvent(0.01); | |||
llOwnerSay("Reseting train..."); | |||
} | |||
timer() | |||
{ | |||
llSetLinkPrimitiveParamsFast(LINK_THIS, | |||
[PRIM_POSITION,D_L, | |||
PRIM_ROTATION,(llEuler2Rot(D_R*DEG_TO_RAD))]); | |||
if(llGetPos() == D_L) | |||
{ | |||
llOwnerSay("Restarting train..."); | |||
llSleep(2.0); | |||
state default; | |||
} | |||
} | |||
} | |||
</lsl> | </lsl> | ||
Line 241: | Line 290: | ||
integer Q; | integer Q; | ||
for(Q=0;Q< | for(Q=0;Q<GLL;Q++)//Preload sounds! | ||
{ | { | ||
llPreloadSound((string)llList2Key(Sounds,Q)); | |||
} | } | ||
} | } | ||
Line 261: | Line 310: | ||
} | } | ||
</lsl> | </lsl> | ||
Notes: | |||
<lsl> | |||
list in; | |||
integer len_in = llGetListLength(in); | |||
integer flen_in = (in != []); | |||
//flen_in and len_in will be the same | |||
integer neg_len_in = -llGetListLength(in); | |||
integer fneg_len_in = ([] != in); | |||
//fneg_len_in and neg_len_in will be the same | |||
</lsl> | |||
Revision as of 14:04, 12 April 2011
Dans open source scripts
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials | [1] |
Hello there! I'm Dantia Gothly
Scripter,Sculpter,Texture artist.
creater of TopHat Viewer link->(http://terminalproxy.com/)
I believe you can do just about everything in 1 script
but that also depends on what it is your doing. For the most part it can be.
quote:"dose it work? Yes it do."
..........................................................................................................................
Pulsing alpha on a face. <lsl> // Here I use a single function for llSetTimerEvent(); for toggling on/off in the timer event integer Alpha; integer Q; integer Time; integer Speed = 500; //~~~~~~~~~~~~~ DatAction() {
llSetLinkAlpha(LINK_THIS,(float)Alpha*.01,2);
} //~~~~~~~~~~~~~ default {
touch_start(integer face) { Time=!Time;// 1.0 <<>> 0.0 llSetTimerEvent((float)(Time*.01)); } timer() { for(Q=0;Q<Speed;Q++) { Alpha++; DatAction(); } for(Q=0;Q<Speed;Q++) { Alpha--; DatAction(); } }
} </lsl> Here is a nonphysical train script <lsl> //Dantia Gothly 12/22/2010 //This Script is for Open Source use. //Bug: //Too many sound requests. Throttled until average falls.
//////////////////////////////////////////////////////////////////////////////////////// // (Globle Settings)
// Door movment: float T_S2 = 2.0;//timer stoped before opening door. float Train_leave = 0.8;//how long the train sits after closing the doors and takes off float Door_open = 10.0;//How long the doors are Open. integer door1 = 2;//find the link number for the door you want to move. integer door2 = 3; float Door_Slid_dist = 3.3;//sets the slide forword distance of the door on the X axis
//Math: integer num = 1;//do math 1+1=__ integer num2 = 1;
//Predefined integers etc: integer i; integer t;
//Train turn timming: float M_1 = 255;// first turn float M_2 = 735;//second turn float M_3 = 1215;//therd turn float M_4 = 1695;//forth turn
//Station stop timming: float W_S = 1920;//start train at west station. float E_S = 985;//stop at east station.
//Speed:(note:If this number changes the turn timming and stops must be changed) float speed = .20;// Speed controls the PRIM_POSITION
//Timers: float T_S1 = 0.001;//Timer controls the default timer float Horn_timing = 1.0;//horn sound then door opens/closes. float door_Open_timing = 1.7; float door_Close_timing = 2.6;
//Sounds: string Eng = "d0dc3135-d00a-a3ed-88b0-412a9d867734";//freezer-s string movment = "8737851f-17e3-bb15-b71e-f4235ad64f65";//train-going string Stops = "51a96f42-80ff-db3f-d44f-01002c921946";//train-breaks string Horn = "4e7218f7-6983-64d6-7d0b-bca5b19dfec8";//train-stand-clear string DoorOpen = "26dc4084-9380-e0d2-8810-f624277b6e66";//train-door-open string DoorClose = "fffcde68-ad75-4c7b-17ff-7cfecf65cd4a";//train-door-close
//Volume:
float Vol3 = 1.0;// Volume high.
float Vol2 = 0.5;// Volume mid.
float Vol1 = 0.2;// Volume low.
float Vol0 = 0.0;// Volume mute.
//Reset or fix: float R_B = 14;// link number of the reset botton. vector D_L = <68.000,124.100,34.109>;//Default location. vector D_R = <0.00,0.00,90.00>;//Default rotation.
//////////////////////////////////////////////////////////////////////////////////////// //User defind functions are wonderful SetLinkPosLocal2Root(integer linknum,vector offset) {
llSetLinkPrimitiveParamsFast(linknum, [PRIM_POSITION, ((llList2Vector( llGetLinkPrimitiveParams(linknum, [PRIM_POSITION]),0) - llGetPos())/llGetRot())+offset]);
} DatRotPos() {
integer t; rotation rot=llGetRot(); for(t=0;t<=90;t++) { llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POSITION, llGetPos()+(< speed,0.0,0.0>*llGetRot()), PRIM_ROTATION,(rot/llEuler2Rot(<0,0,t>*DEG_TO_RAD))]); llSleep(0.04); }
} ///////////////////////////////////////////////////////////////////////////////////////// default { ////////////////////////////////////////////////////////////////////////////////////////
state_entry() { llSetTimerEvent(T_S1); llLoopSound(Eng,Vol3); llLoopSound(movment,Vol3); }
/////////////////////////////////////////////////////////////////////////////////////////
timer() { integer t; rotation rot=llGetRot(); num += num2; llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POSITION, llGetPos()+(< speed,0.0,0.0>*llGetRot())]); if(num == M_1) { DatRotPos(); } else if (num == M_2) { DatRotPos(); } else if (num == M_3) { DatRotPos(); } else if (num == M_4) { DatRotPos(); } else if(num == W_S) { num = 0; llTriggerSound(Stops,Vol3); llLoopSound(movment,Vol0); llLoopSound(Eng,Vol1); llSetTimerEvent(0.0); state two; } else if(num == E_S) { llTriggerSound(Stops,Vol3); llLoopSound(movment,Vol0); llLoopSound(Eng,Vol1); llSetTimerEvent(0.0); state two; } llSetText("",<1,1,1>,1.0);//Display math. }
/////////////////////////////////////////////////////////////////////////////////////// // In case the train brakes touch Reset botton.
touch_start(integer face) { if(llDetectedLinkNumber(0) == R_B) { num = 0; state fix; } }
} /////////////////////////////////////////////////////////////////////////////////////// state two {
state_entry() { llSetTimerEvent(T_S2); } timer() { llTriggerSound(Horn,Vol3); llSleep(Horn_timing); llTriggerSound(DoorOpen,Vol3); llSleep(door_Open_timing); SetLinkPosLocal2Root(door1,<Door_Slid_dist,0.0,0.0>); SetLinkPosLocal2Root(door2,<Door_Slid_dist,0.0,0.0>); llSleep(Door_open); llTriggerSound(Horn,Vol3); llSleep(Horn_timing); llTriggerSound(DoorClose,Vol3); llSleep(door_Close_timing); SetLinkPosLocal2Root(door1,<-Door_Slid_dist,0.0,0.0>); SetLinkPosLocal2Root(door2,<-Door_Slid_dist,0.0,0.0>); llSleep(Train_leave);
state default; }
}
state fix {
state_entry() { llSetTimerEvent(0.01); llOwnerSay("Reseting train..."); } timer() { llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POSITION,D_L, PRIM_ROTATION,(llEuler2Rot(D_R*DEG_TO_RAD))]); if(llGetPos() == D_L) { llOwnerSay("Restarting train..."); llSleep(2.0); state default; } }
} </lsl>
This is a good way to do Random llRezObject.
<lsl> integer i;
DGRandomRez(float number) {
for(i=(integer)llFrand(number);i>0;i--) { llRezObject("Object", llGetPos() + <0.0,0.0,1.0>, <llFrand(3.0),llFrand(3.0),llFrand(3.0)>, <0.0,0.0,llFrand(360),1.0>, 0); }
}
default {
state_entry() { DGRandomRez(5);//This will rez an object at random 1-5. }
}
</lsl> Sound looper for when your walking. <lsl> float Timer = 1; integer Sound = 1;//what sound to play. float Vol = 0.8; integer GLL; list Sounds = ["","","","",""];//List of sounds. default {
state_entry() { GLL = llGetListLength(Sounds); llSetTimerEvent(Timer); integer Q; for(Q=0;Q<GLL;Q++)//Preload sounds! { llPreloadSound((string)llList2Key(Sounds,Q)); } } timer() { if((llGetAgentInfo(llGetOwner()) & AGENT_WALKING)) { llLoopSound((string)llList2Key(Sounds,Sound),Vol);//single sound; //or you can use this for random sounds. llLoopSound((string)llList2Key(Sounds,(integer)llFrand(GLL)),Vol);//Random sound. } else { llStopSound(); } }
} </lsl> Notes: <lsl> list in; integer len_in = llGetListLength(in); integer flen_in = (in != []); //flen_in and len_in will be the same
integer neg_len_in = -llGetListLength(in); integer fneg_len_in = ([] != in); //fneg_len_in and neg_len_in will be the same </lsl>