Difference between revisions of "User:Chilli Cao/code:ChC-Template.lsl"

From Second Life Wiki
Jump to navigation Jump to search
m
 
Line 54: Line 54:
}
}
dataserver(key requested, string data){
dataserver(key requested, string data){
s("datakey:"+requested+" data:"+data);
s("datakey:"+(string)requested+" data:"+data);
}
}
listen( integer channel, string name, key id, string message ){
listen( integer channel, string name, key id, string message ){

Latest revision as of 18:27, 28 January 2008

Back to Chilli's scripts page

This is a template I use to start scripts from. It includes most commonly used event handlers and some text output wrappers for debuging, such as s() for say (to comment/uncomment the one needed), st() for settext, printlist to dump a list and a toggle function. Its meant to delete in opt-out manner whats not needed instead of looking at LSL API on how to do them.

<lsl> //chc-template 0.1 // posted on my wiki page, basicaly as a wiki-lsl-code test //globals: key owner; integer lchan=0;//or any or DEBUG_CHANNEL integer timer_count=0; float PERIOD=0.0; //timer frequency

//debug/helper wrappers: integer verbose=1;s(string s){if (verbose){llOwnerSay(s);}} //integer verbose=1;s(string s){if (verbose){Say(0,s);}} //integer verbose=1;s(string s){if (verbose){llInstantMessage(owner,s);}} st(string s){llSetText(s, <1.0,1.0,1.0>, 1.0);} printlist(list l){integer i=0; integer j=llGetListLength(l);for (;i<j;++i){s("printlist("+(string)i+"):"+llList2String(l,i));} s("printlist Total:"+(string)j+" elements");}

//toggle function: to switch something on and off integer toggle=1;//startup as OFF toggleme(integer current){ if (current==1) { toggle=0; s("SWICH SOMETHING OFF HERE"); } else {toggle=1; s("SWICH SOMETHING ON HERE"); } }

///////// default{ state_entry() {s("state_entry: Init"); owner=llGetOwner(); llSetTimerEvent(PERIOD); llListen(lchan,"",NULL_KEY,""); } touch_start(integer total_number) { if(llDetectedKey(0) == owner){ //llMessageLinked(0,1,"some message linked string",NULL_KEY);//or: LINK_SET LINK_THIS LINK_ROOT LINK_ALL_OTHERS s("touch_start "+(string)total_number); toggleme(toggle);//toggle the toggler //toggleme(0);//force toggle to ON } } on_rez(integer start_param){ llResetScript(); } changed(integer change){ if(change & CHANGED_OWNER){llResetScript();} } link_message(integer sender_number, integer number, string message, key id){ s("sendernum:"+(string)sender_number+" num:"+(string)number+" message:"+message+" key:"+(string)id); } dataserver(key requested, string data){ s("datakey:"+(string)requested+" data:"+data); } listen( integer channel, string name, key id, string message ){ if(id == owner){ list args=llParseString2List(message, [" "], []); printlist(args); //string cmd=llList2String(args,0); //float value1=(float)llList2Float(args,1); //if(id == owner){s("chan("+(string)channel+"):"+" cmd: "+cmd+" value1: "+(string)value1);} } } timer(){ s("timer called ("+(string)timer_count+")");timer_count++; } } </lsl> Back to Chilli's scripts page