https://wiki.secondlife.com/w/api.php?action=feedcontributions&user=Jesse+Barnett&feedformat=atomSecond Life Wiki - User contributions [en]2024-03-28T07:56:20ZUser contributionsMediaWiki 1.36.1https://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett&diff=451912User:Jesse Barnett2009-08-07T15:19:58Z<p>Jesse Barnett: /* Outside Editors */</p>
<hr />
<div>{{LSL Header}}<br />
<br />
==About: Jesse Barnett==<br />
Scripter. You can find me in Aditi or the scripting forum.<br />
<br />
==Rant about the forums==<br />
Still waiting for LL to update the forum software!<br />
<br />
<<< Thank you SuezzaneC!! Yep info was out of date>>><br />
<br />
==Outside Editors==<br />
*[[http://www.lsleditor.org/Download.aspx LSLEditor]] Love it!<br />
<br />
*[[User:Jesse_Barnett/Scite|My Scite page]] Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.NOTE: Actively updating SciTE pages 8/07/09<br />
<br />
==For people just starting to script==<br />
*[[User:Jesse_Barnett/Script_Anatomy | Anatomy of a Script]] :: Basics showing the layout and some components of a script.<br />
<br />
==Scripts & Snippets==<br />
I made em. You learn from em. Don't sell em!<br />
<br />
*[[3D Radar|3D Radar]] :: Rezzes a ball for each avatar in range. Each ball tracks it's on AV and displays distance.<br />
<br />
<br />
*[[AO Overriding Pose Ball|AO Overriding Pose Ball]] :: No more having to type "/ao off/on" When you sit down or get up anymore!!<br />
<br />
<br />
*[[High Altitude Rezzer|High Altitude Rezzer]] :: Create a vehicle that goes straight up to a set altitude and then rezzes a work platform, garden, private spot or whatever else you put in it's contents.<br />
<br />
<br />
*[[Multi Item Rezzer|Multi Item Rezzer]] :: A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object. Allows the owner to change the rez offset and has a scanner inside, if no one is around the rezzed object will derez and the rezzer will return to it's start position.<br />
<br />
<br />
*[[User:Jesse_Barnett/SandBox_Blox|SandBox Blox]] :: Highly addictive and fun. Blocks you can stick together by touch. Good example to learn about one of the new Detected Touch functions and has some interesting math.<br />
<br />
<br />
*[[Sim Map Particle Projector|Sim Map Particle Projector]] :: Creates a floating map of the sim that the script is in. Demonstrates how to work with the map api.<br />
<br />
<br />
*[[User:Jesse_Barnett/Slurl_TP_HUD|Slurl TP HUD]] :: Check it out. I love my newest TP HUD. Has a couple of different tricks for the newer scripter to learn from.<br />
<br />
<br />
*[[Teleport HUD|Teleport HUD]] :: NOW IT WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=451902User:Jesse Barnett/Scite2009-08-07T15:10:25Z<p>Jesse Barnett: /* SciTE */</p>
<hr />
<div>*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
Actively updating SciTE pages 8/07/09<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get [http://www.scintilla.org/SciTE.html SciTE] version 1.79 here.<br />
Once you have SciTE installed then you need to download and replace the following pages:<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjBzNHFmejdocQ&hl=en lsl.api]updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjFkZmM4NGdoYw&hl=en lsl.properties]dir: C:\Program Files\Scite\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en lsl_abbrev.properties]C:\Program Files\Scite\abbrev\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en SciTEGlobal.properties]C:\Program Files\Scite\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjRocXo2aHFxZg&hl=en SciTEUser.properties]C:\Documents and Settings\Owner updated 8/07/09<br />
<br />
The rest of the functions that I have linked into my build are elsewhere. Strife was hosting those files and links but the stripper.exe and clipboard are no longer available there. I will update the links here for the published files and figure out a way to host his files with his permission if he is unable to. Until that time, I will make a zip file with the plugins and would be glad to email them to who needs them. updated 8/07/09<br />
<br />
I have mine linked to [http://www.lsleditor.org/Download.aspx LSLEditor]. Download and extract to your root directory like so: C:\lsleditor NOTE:It will not work if you put it in a path with a space in the name like C:\Program Files\LSLEditor updated 8/07/09<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=451892User:Jesse Barnett/Scite2009-08-07T15:09:38Z<p>Jesse Barnett: /* SciTE */</p>
<hr />
<div>*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
Actively updating SciTE pages 8/07/09<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get [http://www.scintilla.org/SciTE.html SciTE] version 1.79 here.<br />
Once you have SciTE installed then you need to download and replace the following pages:<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjBzNHFmejdocQ&hl=en lsl.api]updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjFkZmM4NGdoYw&hl=en lsl.properties]dir: C:\Program Files\Scite\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en lsl_abbrev.properties]C:\Program Files\Scite\abbrev\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en SciTEGlobal.properties]C:\Program Files\Scite\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjRocXo2aHFxZg&hl=en SciTEUser.properties]C:\Documents and Settings\Owner updated 8/07/09<br />
<br />
The rest of the functions that I have linked into my build are elsewhere. Strife was hosting those files and links but the stripper.exe and clipboard are no longer available there. I will update the links here for the published files and figure out a way to host his files with his permission if he is unable to. Until that time, I will make a zip file with the plugins and would be glad to email them to who needs them updated 8/07/09<br />
<br />
I have mine linked to [http://www.lsleditor.org/Download.aspx LSLEditor]. Download and extract to your root directory like so: C:\lsleditor NOTE:It will not work if you put it in a path with a space in the name like C:\Program Files\LSLEditor updated 8/07/09<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=451882User:Jesse Barnett/Scite2009-08-07T15:04:09Z<p>Jesse Barnett: </p>
<hr />
<div>*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
Actively updating SciTE pages 8/07/09<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get [http://www.scintilla.org/SciTE.html SciTE] version 1.79 here.<br />
Once you have SciTE installed then you need to download and replace the following pages:<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjBzNHFmejdocQ&hl=en lsl.api]updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjFkZmM4NGdoYw&hl=en lsl.properties]dir: C:\Program Files\Scite\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en lsl_abbrev.properties]C:\Program Files\Scite\abbrev\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en SciTEGlobal.properties]C:\Program Files\Scite\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjRocXo2aHFxZg&hl=en SciTEUser.properties]C:\Documents and Settings\Owner updated 8/07/09<br />
<br />
You could take a look over at Strife's page with his SciTE links also. You can pickup stripper, indent, clipboard and lslint there and MSVC Express. [https://wiki.secondlife.com/wiki/User:Strife_Onizuka User:Strife_Onizuka]NOTE: Some of Strife's files are missing. If he will not find a spot to host them then I will. I will be glad to email them to whoever needs them once I have it setup in the next couple of days. updated 8/07/09<br />
<br />
I have mine linked to [http://www.lsleditor.org/Download.aspx LSLEditor]. Download and extract to your root directory like so: C:\lsleditor NOTE:It will not work if you put it in a path with a space in the name like C:\Program Files\LSLEditor updated 8/07/09<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=451872User:Jesse Barnett/Scite2009-08-07T15:02:15Z<p>Jesse Barnett: /* SciTE */</p>
<hr />
<div>*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
Actively updating SciTE pages 8/07/09<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get SciTE version 1.79 here: [[http://www.scintilla.org/SciTE.html]]<br />
Once you have SciTE installed then you need to download and replace the following pages:<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjBzNHFmejdocQ&hl=en lsl.api]updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjFkZmM4NGdoYw&hl=en lsl.properties]dir: C:\Program Files\Scite\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en lsl_abbrev.properties]C:\Program Files\Scite\abbrev\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en SciTEGlobal.properties]C:\Program Files\Scite\ updated 8/07/09<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjRocXo2aHFxZg&hl=en SciTEUser.properties]C:\Documents and Settings\Owner updated 8/07/09<br />
<br />
You could take a look over at Strife's page with his SciTE links also. You can pickup stripper, indent, clipboard and lslint there and MSVC Express. [https://wiki.secondlife.com/wiki/User:Strife_Onizuka]NOTE: Some of Strife's files are missing. If he will not find a spot to host them then I will. I will be glad to email them to whoever needs them once I have it setup in the next couple of days. updated 8/07/09<br />
<br />
I have mine linked to [http://www.lsleditor.org/Download.aspx LSLEditor]. Download and extract to your root directory like so: C:\lsleditor NOTE:It will not work if you put it in a path with a space in the name like C:\Program Files\LSLEditor updated 8/07/09<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=451303User:Jesse Barnett/Scite2009-08-07T11:01:04Z<p>Jesse Barnett: </p>
<hr />
<div>*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
(Page is under construction)<br />
(Not too terribly happy with the layout right now. Going to redo it to bring all of the intro, including pic, up top. Then transition over to a step by step, download this, this, this, this, that and put this here and that there etc.)<br />
(Actually since I started this web page it got me interested in some of the newer posibilities of SciTE. It has changed a great deal since Ezhar brought us SciTE-EZ. ALL of this information here is going to change dramtically in the next couple of weeks)<br />
<br />
Stay Tuned!!!!!<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get SciTE version 1.79 here: [[http://www.scintilla.org/SciTE.html]]<br />
<br />
But once you have SciTE, you still have some work to do to get it to do some of the many tricks it can do. A good place to start would be the files listed below:<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjBzNHFmejdocQ&hl=en lsl.api]<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjFkZmM4NGdoYw&hl=en lsl.properties]<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en lsl_abbrev.properties]<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en SciTEGlobal.properties]<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjRocXo2aHFxZg&hl=en SciTEUser.properties]<br />
<br />
You could take a look over at Strife's page with his SciTE links also. You can pickup stripper, indent, clipboard and lslint there and MSVC Express. [[https://wiki.secondlife.com/wiki/User:Strife_Onizuka]]<br />
<br />
I have mine linked to LSLEditor. See the note in my lsl.properties file for placing it(The C compiler does not like a path with spaces in it, as in C:\Program Files\LSLEditor)<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=451302User:Jesse Barnett/Scite2009-08-07T09:47:57Z<p>Jesse Barnett: </p>
<hr />
<div>*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
(Page is under construction)<br />
(Not too terribly happy with the layout right now. Going to redo it to bring all of the intro, including pic, up top. Then transition over to a step by step, download this, this, this, this, that and put this here and that there etc.)<br />
(Actually since I started this web page it got me interested in some of the newer posibilities of SciTE. It has changed a great deal since Ezhar brought us SciTE-EZ. ALL of this information here is going to change dramtically in the next couple of weeks)<br />
<br />
Stay Tuned!!!!!<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get SciTE version 1.79 here: [[http://www.scintilla.org/SciTE.html]]<br />
<br />
But once you have SciTE, you still have some work to do to get it to do some of the many tricks it can do. A good place to start would be the files listed below:<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjBzNHFmejdocQ&hl=en lsl.api]<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjFkZmM4NGdoYw&hl=en lsl.properties]<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en lsl_abbrev.properties]<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en SciTEGlobal.properties]<br />
<br />
*[[User:Jesse_Barnett/SciTEUser.properties|SciTEUser.properties]]<br />
<br />
You could take a look over at Strife's page with his SciTE links also. You can pickup stripper, indent, clipboard and lslint there and MSVC Express. [[https://wiki.secondlife.com/wiki/User:Strife_Onizuka]]<br />
<br />
I have mine linked to LSLEditor. See the note in my lsl.properties file for placing it(The C compiler does not like a path with spaces in it, as in C:\Program Files\LSLEditor)<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=451292User:Jesse Barnett/Scite2009-08-07T09:47:14Z<p>Jesse Barnett: </p>
<hr />
<div>*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
(Page is under construction)<br />
(Not too terribly happy with the layout right now. Going to redo it to bring all of the intro, including pic, up top. Then transition over to a step by step, download this, this, this, this, that and put this here and that there etc.)<br />
(Actually since I started this web page it got me interested in some of the newer posibilities of SciTE. It has changed a great deal since Ezhar brought us SciTE-EZ. ALL of this information here is going to change dramtically in the next couple of weeks)<br />
<br />
Stay Tuned!!!!!<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get SciTE version 1.79 here: [[http://www.scintilla.org/SciTE.html]]<br />
<br />
But once you have SciTE, you still have some work to do to get it to do some of the many tricks it can do. A good place to start would be the files listed below:<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjBzNHFmejdocQ&hl=en lsl.api]<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjFkZmM4NGdoYw&hl=en lsl.properties]<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en lsl_abbrev.properties]<br />
<br />
*[https://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMjJmcmc2Y21ocQ&hl=en SciTEGlobal.properties]<br />
<br />
*[[User:Jesse_Barnett/SciTEUser.properties|SciTEUser.properties]<br />
<br />
You could take a look over at Strife's page with his SciTE links also. You can pickup stripper, indent, clipboard and lslint there and MSVC Express. [[https://wiki.secondlife.com/wiki/User:Strife_Onizuka]]<br />
<br />
I have mine linked to LSLEditor. See the note in my lsl.properties file for placing it(The C compiler does not like a path with spaces in it, as in C:\Program Files\LSLEditor)<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=451222User:Jesse Barnett/Scite2009-08-07T00:22:27Z<p>Jesse Barnett: </p>
<hr />
<div>*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
(Page is under construction)<br />
(Not too terribly happy with the layout right now. Going to redo it to bring all of the intro, including pic, up top. Then transition over to a step by step, download this, this, this, this, that and put this here and that there etc.)<br />
(Actually since I started this web page it got me interested in some of the newer posibilities of SciTE. It has changed a great deal since Ezhar brought us SciTE-EZ. ALL of this information here is going to change dramtically in the next couple of weeks)<br />
<br />
Stay Tuned!!!!!<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get SciTE version 1.79 here: [[http://www.scintilla.org/SciTE.html]]<br />
<br />
But once you have SciTE, you still have some work to do to get it to do some of the many tricks it can do. A good place to start would be the files listed below:<br />
<br />
*[[User:Jesse_Barnett/lsl.api|lsl.api]]<br />
<br />
*[[User:Jesse_Barnett/lsl.properties|lsl.properties]]<br />
<br />
*[[User:Jesse_Barnett/lsl_abbrev.properties|lsl_abbrev.properties]]<br />
<br />
*[[http://docs.google.com/Doc?docid=0Ador6etp-D8VZGN6ZmJtenpfMTdnNm4yazdkbg&hl=en|SciTEGlobal.properties]] update 8/06/09<br />
<br />
*[[User:Jesse_Barnett/SciTEUser.properties|SciTEUser.properties]]<br />
<br />
You could take a look over at Strife's page with his SciTE links also. You can pickup stripper, indent, clipboard and lslint there and MSVC Express. [[https://wiki.secondlife.com/wiki/User:Strife_Onizuka]]<br />
<br />
I have mine linked to LSLEditor. See the note in my lsl.properties file for placing it(The C compiler does not like a path with spaces in it, as in C:\Program Files\LSLEditor)<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/SciTEGlobal.properties&diff=451212User:Jesse Barnett/SciTEGlobal.properties2009-08-07T00:04:57Z<p>Jesse Barnett: </p>
<hr />
<div>Open SciTEGlobal.properties using SciTE. Edit/Select All and delete, then paste the following into the now empty document and save.<br />
<br />
Hint: Scroll to bottom of text and then left click and drag mouse up to select text.<br />
<br />
<pre># Global initialisation file for SciTE Version 1.79<br />
# Custom settings for Jesse Barnett 8/02/09<br />
# For Linux, place in $prefix/share/scite<br />
# For Windows, place in same directory as SciTE.EXE (or Sc1.EXE)<br />
# Documentation at http://www.scintilla.org/SciTEDoc.html<br />
<br />
# Globals<br />
<br />
# Window sizes and visibility<br />
if PLAT_WIN<br />
position.left=0<br />
position.top=0<br />
if PLAT_GTK<br />
position.left=5<br />
position.top=22<br />
position.width=-1<br />
position.height=-1<br />
#position.maximize=1<br />
#position.tile=1<br />
#full.screen.hides.menu=1<br />
minimize.to.tray=1<br />
split.vertical=0<br />
#output.horizontal.size=200<br />
output.vertical.size=120<br />
output.initial.hide=1<br />
#horizontal.scrollbar=0<br />
#horizontal.scroll.width=10000<br />
#horizontal.scroll.width.tracking=0<br />
#output.horizontal.scrollbar=0<br />
#output.horizontal.scroll.width=10000<br />
#output.horizontal.scroll.width.tracking=0<br />
#output.scroll=0<br />
#error.select.line=1<br />
#end.at.last.line=0<br />
tabbar.visible=1<br />
#tabbar.hide.one=1<br />
#tabbar.multiline=1<br />
toolbar.visible=1<br />
#toolbar.detachable=1<br />
#toolbar.usestockicons=1<br />
#menubar.detachable=1<br />
#undo.redo.lazy=1<br />
#statusbar.visible=1<br />
#fileselector.width=800<br />
#fileselector.height=600<br />
#fileselector.show.hidden=1<br />
#magnification=-1<br />
#output.magnification=-1<br />
<br />
# Sizes and visibility in edit pane<br />
line.margin.visible=1<br />
line.margin.width=3+<br />
margin.width=16<br />
#fold.margin.width=16<br />
#fold.margin.colour=#FF0000<br />
#fold.margin.highlight.colour=#0000FF<br />
#blank.margin.left=4<br />
#blank.margin.right=4<br />
buffered.draw=1<br />
#two.phase.draw=0<br />
use.palette=0<br />
<br />
# Element styles<br />
#view.eol=1<br />
#control.char.symbol=.<br />
caret.period=500<br />
view.whitespace=0<br />
view.indentation.whitespace=1<br />
view.indentation.guides=0<br />
view.indentation.examine=3<br />
highlight.indentation.guides=0<br />
#caret.fore=#FF0000<br />
#caret.width=2<br />
#caret.line.back=#FFFED8<br />
#caret.line.back.alpha=63<br />
edge.column=200<br />
edge.mode=0<br />
edge.colour=#C0DCC0<br />
braces.check=1<br />
braces.sloppy=1<br />
#selection.fore=#006000<br />
# DADADA used as background because it yields standard silver C0C0C0<br />
# on low colour displays and a reasonable light grey on higher bit depths<br />
if PLAT_WINNT<br />
selection.alpha=80<br />
selection.back=#00FFFF<br />
if PLAT_WIN95<br />
selection.back=#DADADA<br />
if PLAT_GTK<br />
selection.alpha=30<br />
selection.back=#000000<br />
#whitespace.fore=#FF0000<br />
#whitespace.back=#FFF0F0<br />
#error.marker.fore=#0000A0<br />
#error.marker.back=#DADAFF<br />
#bookmark.fore=#808000<br />
#bookmark.back=#FFFFA0<br />
#bookmark.alpha=<br />
#find.mark=#0000FF<br />
<br />
# Scripting<br />
#ext.lua.startup.script=<br />
#ext.lua.auto.reload=1<br />
#ext.lua.reset=1<br />
<br />
# Checking<br />
are.you.sure=1<br />
#are.you.sure.for.build=1<br />
#save.all.for.build=1<br />
#quit.on.close.last=1<br />
load.on.activate=1<br />
#save.on.deactivate=1<br />
#are.you.sure.on.reload=1<br />
reload.preserves.undo=1<br />
check.if.already.open=1<br />
default.file.ext=.lsl<br />
#source.default.extensions=.h|.cxx|.bat<br />
title.full.path=1<br />
#title.show.buffers=1<br />
save.recent=1<br />
save.session=1<br />
session.bookmarks=1<br />
#session.folds=1<br />
#save.position=1<br />
open.dialog.in.file.directory=1<br />
strip.trailing.spaces=1<br />
#ensure.final.line.end=1<br />
#ensure.consistent.line.ends=1<br />
#save.deletes.first=1<br />
buffers=20<br />
#buffers.zorder.switching=1<br />
#api.*.cxx=d:\api\w.api<br />
#win95.death.delay=1000<br />
#locale.properties=locale.de.properties<br />
#translation.missing=***<br />
#read.only=1<br />
#max.file.size=1<br />
<br />
# Indentation<br />
tabsize=8<br />
indent.size=8<br />
use.tabs=1<br />
indent.auto=1<br />
indent.automatic=1<br />
indent.opening=0<br />
indent.closing=0<br />
#tab.indents=0<br />
#backspace.unindents=0<br />
<br />
# Wrapping of long lines<br />
wrap=1<br />
#wrap.style=2<br />
#cache.layout=3<br />
output.wrap=1<br />
#output.cache.layout=3<br />
#wrap.visual.flags=3<br />
#wrap.visual.flags.location=3<br />
#wrap.indent.mode=1<br />
#wrap.visual.startindent=4<br />
<br />
# Folding<br />
# enable folding, and show lines below when collapsed.<br />
fold=1<br />
fold.compact=1<br />
fold.flags=16<br />
fold.symbols=1<br />
#fold.on.open=1<br />
fold.comment=1<br />
fold.preprocessor=1<br />
<br />
# Find and Replace<br />
# Internal search always available with recursive capability so use in preference to external tool<br />
find.command=<br />
# findstr is available on recent versions of Windows including 2000<br />
#if PLAT_WIN<br />
# find.command=findstr /n /s $(find.what) $(find.files)<br />
#find.input=$(find.what)<br />
#if PLAT_GTK<br />
# find.command=grep --line-number "$(find.what)" $(find.files)<br />
find.files=*.c *.cxx *.h *.esl *.lsl<br />
#find.in.files.close.on.find=0<br />
#find.in.dot=1<br />
#find.in.binary=1<br />
#find.replace.matchcase=1<br />
#find.replace.escapes=1<br />
#find.replace.regexp=1<br />
#find.replace.regexp.posix=1<br />
#find.replace.wrap=0<br />
#find.replacewith.focus=0<br />
#find.replace.advanced=1<br />
<br />
# Behaviour<br />
#eol.mode=LF<br />
eol.auto=1<br />
clear.before.execute=1<br />
#vc.home.key=1<br />
#wrap.aware.home.end.keys=1<br />
#autocompleteword.automatic=1<br />
#autocomplete.choose.single=1<br />
caret.policy.xslop=1<br />
caret.policy.width=20<br />
caret.policy.xstrict=0<br />
caret.policy.xeven=0<br />
caret.policy.xjumps=0<br />
caret.policy.yslop=1<br />
caret.policy.lines=1<br />
caret.policy.ystrict=1<br />
caret.policy.yeven=1<br />
caret.policy.yjumps=0<br />
#visible.policy.strict=1<br />
#visible.policy.slop=1<br />
#visible.policy.lines=4<br />
time.commands=1<br />
#caret.sticky=1<br />
#properties.directory.enable=1<br />
<br />
# Status Bar<br />
statusbar.number=4<br />
statusbar.text.1=\<br />
li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)<br />
statusbar.text.2=\<br />
$(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelLength) chars.<br />
statusbar.text.3=\<br />
Now is: Date=$(CurrentDate) Time=$(CurrentTime)<br />
statusbar.text.4=\<br />
$(FileNameExt) : $(FileDate) - $(FileTime) | $(FileAttr)<br />
<br />
if PLAT_WIN<br />
command.scite.help="file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
command.scite.help.subsystem=2<br />
if PLAT_GTK<br />
command.print.*=a2ps "$(FileNameExt)"<br />
command.scite.help=netscape "file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
<br />
# Internationalisation<br />
# Japanese input code page 932 and ShiftJIS character set 128<br />
#code.page=932<br />
#character.set=128<br />
# Unicode<br />
#code.page=65001<br />
code.page=0<br />
#character.set=204<br />
# Required for Unicode to work on GTK+:<br />
#LC_CTYPE=en_US.UTF-8<br />
if PLAT_GTK<br />
output.code.page=65001<br />
<br />
# Export<br />
#export.keep.ext=1<br />
export.html.wysiwyg=1<br />
#export.html.tabs=1<br />
#export.html.folding=1<br />
export.html.styleused=1<br />
#export.html.title.fullpath=1<br />
#export.rtf.tabs=1<br />
#export.rtf.font.face=Arial<br />
#export.rtf.font.size=9<br />
#export.rtf.tabsize=8<br />
#export.rtf.wysiwyg=0<br />
#export.tex.title.fullpath=1<br />
# Magnification (added to default screen font size)<br />
export.pdf.magnification=0<br />
# Font: Courier, Helvetica or Times (Courier line-wraps)<br />
export.pdf.font=Helvetica<br />
# Page size (in points): width, height<br />
# E.g. Letter 612,792; A4 595,842; maximum 14400,14400<br />
export.pdf.pagesize=595,842<br />
# Margins (in points): left, right, top, bottom<br />
export.pdf.margins=72,72,72,72<br />
export.xml.collapse.spaces=1<br />
export.xml.collapse.lines=1<br />
<br />
# Define values for use in the imported properties files<br />
chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
chars.numeric=0123456789<br />
chars.accented=ŠšŒœŸÿÀàÁáÂâÃãÄäÅåÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö<br />
# This is a better set for Russian:<br />
#chars.accented=ÀàÁáÂâÃãÄäÅ娸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÚúÛûÜüÝýÞþßÿ<br />
<br />
# The open.filter setting is only used on Windows where the file selector has a menu of filters to apply<br />
# to the types of files seen when opening.<br />
# There is a limit (possibly 256 characters) to the length of a filter,<br />
# so not all source extensions can be in this setting.<br />
source.files=*.asm;*.c;*.cc;*.cpp;*.cxx;*.cs;*.h;*.hh;*.hxx;*.hpp;\<br />
*.idl;*.odl;*.rc;*.rc2;*.dlg;*.def;*.esl;*.lsl;\<br />
*.vb;*.vbs;*.bas;*.frm;*.cls;*.ctl;\<br />
*.java;*.js;*.py;*.pl;*.rb;*.cgi;*.lua;*.conf;\<br />
make*;*.mak;\<br />
*.properties;*.html;*.xml;*.iface;*.bat;*.e<br />
<br />
my.files=*.esl;*.lsl<br />
<br />
if PLAT_WIN<br />
all.files=All Files (*.*)|*.*|<br />
if PLAT_GTK<br />
all.files=All Files (*)|*|Hidden Files (.*)|.*|<br />
open.filter=\<br />
LSL/ESL|$(my.files)|\<br />
All Source|$(source.files)|\<br />
$(all.files)\<br />
$(filter.ada)\<br />
$(filter.conf)\<br />
$(filter.asm)\<br />
$(filter.asn1)\<br />
$(filter.ave)\<br />
$(filter.baan)\<br />
$(filter.bash)\<br />
$(filter.caml)\<br />
$(filter.cmake)\<br />
$(filter.cpp)\<br />
#$(filter.ch)\<br />
$(filter.css)\<br />
$(filter.d)\<br />
$(filter.eiffel)\<br />
$(filter.erlang)\<br />
$(filter.esl)\<br />
$(filter.fortran)\<br />
$(filter.gap)\<br />
$(filter.idl)\<br />
$(filter.inno)\<br />
$(filter.java)\<br />
$(filter.js)\<br />
$(filter.kix)\<br />
$(filter.lout)\<br />
$(filter.lsl)\<br />
$(filter.lua)\<br />
$(filter.matlab)\<br />
$(filter.metapost)\<br />
$(filter.mmixal)\<br />
$(filter.nncrontab)\<br />
$(filter.nsis)\<br />
$(filter.opal)\<br />
$(filter.pascal)\<br />
$(filter.perl)\<br />
$(filter.php)\<br />
$(filter.pov)\<br />
$(filter.powershell)\<br />
$(filter.prg)\<br />
$(filter.properties)\<br />
$(filter.ps)\<br />
$(filter.python)\<br />
$(filter.r)\<br />
$(filter.ruby)\<br />
$(filter.sql)\<br />
$(filter.specman)\<br />
$(filter.tcl)\<br />
$(filter.tex)\<br />
$(filter.text)\<br />
$(filter.vb)\<br />
$(filter.web)\<br />
$(filter.yaml)\<br />
$(filter.verilog)\<br />
$(filter.vhdl)<br />
<br />
# Give symbolic names to the set of fonts used in the standard styles.<br />
if PLAT_WIN<br />
font.base=font:Verdana,size:10<br />
font.small=font:Verdana,size:8<br />
font.comment=font:Comic Sans MS,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:Times New Roman,size:11<br />
font.text.comment=font:Verdana,size:9<br />
font.embedded.base=font:Verdana,size:9<br />
font.embedded.comment=font:Comic Sans MS,size:8<br />
font.monospace=font:Courier New,size:10<br />
font.vbs=font:Lucida Sans Unicode,size:10<br />
if PLAT_GTK<br />
font.base=font:!Bitstream Vera Sans,size:9<br />
font.small=font:!Bitstream Vera Sans,size:8<br />
font.comment=font:!Bitstream Vera Serif,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:!Bitstream Charter,size:10<br />
font.text.comment=font:!Serif,size:9<br />
font.embedded.base=font:!Serif,size:9<br />
font.embedded.comment=font:!Serif,size:9<br />
font.monospace=font:!Bitstream Vera Sans Mono,size:9<br />
font.vbs=font:!Bitstream Vera Sans Mono,size:9<br />
font.js=$(font.comment)<br />
<br />
# Old GTK+ font settings are faster but not antialiased<br />
#~ font.base=font:lucidatypewriter,size:12<br />
#~ font.small=font:lucidatypewriter,size:10<br />
#~ font.comment=font:new century schoolbook,size:12<br />
#~ font.code.comment.box=$(font.comment)<br />
#~ font.code.comment.line=$(font.comment)<br />
#~ font.code.comment.doc=$(font.comment)<br />
#~ font.text=font:times,size:14<br />
#~ font.text.comment=font:lucidatypewriter,size:10<br />
#~ font.embedded.base=font:lucidatypewriter,size:12<br />
#~ font.embedded.comment=font:lucidatypewriter,size:12<br />
#~ font.monospace=font:courier,size:12<br />
#~ font.vbs=font:new century schoolbook,size:12<br />
<br />
# Give symbolic names to the set of colours used in the standard styles.<br />
colour.code.comment.box=fore:#007F00<br />
colour.code.comment.line=fore:#007F00<br />
colour.code.comment.doc=fore:#3F703F<br />
colour.code.comment.nested=fore:#A0C0A0<br />
colour.text.comment=fore:#0000FF,back:#D0F0D0<br />
colour.other.comment=fore:#007F00<br />
colour.embedded.comment=back:#E0EEFF<br />
colour.embedded.js=back:#F0F0FF<br />
colour.notused=back:#FF0000<br />
<br />
colour.number=fore:#007F7F<br />
colour.keyword=fore:#00007F<br />
colour.string=fore:#7F007F<br />
colour.char=fore:#7F007F<br />
colour.operator=fore:#000000<br />
colour.preproc=fore:#7F7F00<br />
colour.error=fore:#FFFF00,back:#FF0000<br />
<br />
# Global default styles for all languages<br />
# Default<br />
style.*.32=$(font.base)<br />
# Line number<br />
style.*.33=back:#C0C0C0,$(font.base)<br />
# Brace highlight<br />
style.*.34=fore:#0000FF,bold<br />
# Brace incomplete highlight<br />
style.*.35=fore:#FF0000,bold<br />
# Control characters<br />
style.*.36=<br />
# Indentation guides<br />
style.*.37=fore:#C0C0C0,back:#808080<br />
<br />
# Printing - only works on Windows<br />
if PLAT_WIN<br />
#print.colour.mode=1<br />
print.magnification=-1<br />
# Setup: left, right, top, bottom margins, in local units:<br />
# hundredths of millimeters or thousandths of inches<br />
print.margins=1500,1000,1000,1500<br />
# Header/footer:<br />
# && = &; &p = current page<br />
# &f = file name; &F = full path<br />
# &d = file date; &D = current date<br />
# &t = file time; &T = full time<br />
print.header.format=$(FileNameExt) — Printed on $(CurrentDate), $(CurrentTime) — Page $(CurrentPage)<br />
print.footer.format=$(FilePath) — File date: $(FileDate) — File time: $(FileTime)<br />
# Header/footer style<br />
print.header.style=font:Arial,size:12,bold<br />
print.footer.style=font:Arial Narrow,size:10,italics<br />
<br />
# Warnings - only works on Windows and needs to be pointed at files on machine<br />
#if PLAT_WIN<br />
# warning.findwrapped=100,E:\Windows\Media\SFX\Boing.wav<br />
# warning.notfound=0,Effect.wav<br />
# warning.wrongfile=0,Glass.wav<br />
# warning.executeok=0,Fanfare.wav<br />
# warning.executeko=100,GlassBreak.wav<br />
# warning.nootherbookmark=100,Boing2.wav<br />
<br />
# Define the Lexer menu,<br />
# Each item contains three parts: menu string | file extension | key<br />
# The only keys allowed currently are based on F-keys and alphabetic keys and look like<br />
# [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D.<br />
# A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+.<br />
menu.language=\<br />
#FreeBasic|bas||\<br />
Text|txt|Shift+F11|\<br />
Ada|ads||\<br />
Apache Confi&g|conf||\<br />
Assembler|asm||\<br />
#ASN.1|asn1||\<br />
#Avenue|ave||\<br />
#Baan|bc||\<br />
&Batch|bat||\<br />
#Bullant|ant||\<br />
&C / C++|c||\<br />
#CMake|cmake||\<br />
C&#|cs||\<br />
#Csound|orc||\<br />
CSS|css||\<br />
D|d||\<br />
&Difference|diff||\<br />
#&Eiffel|e||\<br />
#Erlang|erl||\<br />
&Errorlist|err||\<br />
#FlagShip|prg||\<br />
#Forth|forth||\<br />
&Fortran|f90||\<br />
#Gap|g||\<br />
H&ypertext|html|F12|\<br />
#&InnoSetup|iss||\<br />
&Java|java||\<br />
Java&Script|js||\<br />
#&Kix|kix||\<br />
TeX|tex||\<br />
Lisp|lisp||\<br />
#Lot|lot||\<br />
#Lout|lt||\<br />
&LSL|lsl|Ctrl+F12|\<br />
Lu&a|lua||\<br />
Matlab|m.matlab||\<br />
&Makefile|mak|Ctrl+Shift+F11|\<br />
#MetaPost|mp||\<br />
#MMIXAL|mms||\<br />
#&nnCron crontab|tab||\<br />
#NSIS|nsis||\<br />
#Objective Caml|ml||\<br />
#Octave|m.octave||\<br />
#Opal|impl||\<br />
Pascal|pas||\<br />
Pe&rl|pl||\<br />
P&HP|php||\<br />
#P&LSQL|spec||\<br />
#P&ostScript|ps||\<br />
#P&OV-Ray SDL|pov||\<br />
#PowerShell|ps1||\<br />
#PowerPro|powerpro||\<br />
&Properties|properties||\<br />
Pytho&n|py||\<br />
#R|R||\<br />
#Reso&urce|rc||\<br />
Ruby|rb||\<br />
Shell|sh||\<br />
S&QL|sql||\<br />
#Specman|e||\<br />
&TCL|tcl||\<br />
&VB|vb||\<br />
VBScr&ipt|vbs||\<br />
#Verilog|v||\<br />
#VHDL|vhd||\<br />
&XML|xml|Shift+F12|\<br />
YAML|yaml||<br />
<br />
# User defined key commands<br />
user.shortcuts=\<br />
Ctrl+Shift+V|IDM_PASTEANDDOWN|\<br />
Ctrl+PageUp|IDM_PREVFILE|\<br />
Ctrl+PageDown|IDM_NEXTFILE|<br />
<br />
#KeypadPlus|IDM_EXPAND|\<br />
#KeypadMinus|IDM_BLOCK_COMMENT|<br />
<br />
#user.context.menu=\<br />
#||\<br />
#Next File|IDM_NEXTFILE|\<br />
#Prev File|IDM_PREVFILE|<br />
<br />
# Import all the language specific properties files<br />
#import abaqus<br />
import ada<br />
import asm<br />
#import asn1<br />
#import au3<br />
import ave<br />
import baan<br />
#import freebasic<br />
#import blitzbasic<br />
#import bullant<br />
import caml<br />
import conf<br />
import cpp<br />
#import cmake<br />
import d<br />
#import csound<br />
import css<br />
import eiffel<br />
import erlang<br />
import escript<br />
import esl<br />
#import flagship<br />
#import forth<br />
import fortran<br />
#import gap<br />
import html<br />
#import inno<br />
#import kix<br />
import lisp<br />
import lot<br />
#import lout<br />
import lsl<br />
import lua<br />
import matlab<br />
import metapost<br />
import mmixal<br />
#import nimrod<br />
#import nncrontab<br />
#import nsis<br />
#import opal<br />
import others<br />
import pascal<br />
import perl<br />
import pov<br />
#import powerpro<br />
#import powershell<br />
import ps<br />
#import purebasic<br />
import python<br />
#import r<br />
#import rebol<br />
import ruby<br />
#import scriptol<br />
#import smalltalk<br />
#import spice<br />
import sql<br />
#import specman<br />
import tcl<br />
import tex<br />
import vb<br />
import yaml<br />
#import verilog<br />
#import vhdl<br />
</pre></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/SciTEGlobal.properties&diff=451202User:Jesse Barnett/SciTEGlobal.properties2009-08-07T00:04:29Z<p>Jesse Barnett: </p>
<hr />
<div>Open SciTEGlobal.properties using SciTE. Edit/Select All and delete, then paste the following into the now empty document and save.<br />
<br />
Hint: Scroll to bottom of text and then left click and drag mouse up to select text.<br />
<br />
<nowiki># Global initialisation file for SciTE Version 1.79<br />
# Custom settings for Jesse Barnett 8/02/09<br />
# For Linux, place in $prefix/share/scite<br />
# For Windows, place in same directory as SciTE.EXE (or Sc1.EXE)<br />
# Documentation at http://www.scintilla.org/SciTEDoc.html<br />
<br />
# Globals<br />
<br />
# Window sizes and visibility<br />
if PLAT_WIN<br />
position.left=0<br />
position.top=0<br />
if PLAT_GTK<br />
position.left=5<br />
position.top=22<br />
position.width=-1<br />
position.height=-1<br />
#position.maximize=1<br />
#position.tile=1<br />
#full.screen.hides.menu=1<br />
minimize.to.tray=1<br />
split.vertical=0<br />
#output.horizontal.size=200<br />
output.vertical.size=120<br />
output.initial.hide=1<br />
#horizontal.scrollbar=0<br />
#horizontal.scroll.width=10000<br />
#horizontal.scroll.width.tracking=0<br />
#output.horizontal.scrollbar=0<br />
#output.horizontal.scroll.width=10000<br />
#output.horizontal.scroll.width.tracking=0<br />
#output.scroll=0<br />
#error.select.line=1<br />
#end.at.last.line=0<br />
tabbar.visible=1<br />
#tabbar.hide.one=1<br />
#tabbar.multiline=1<br />
toolbar.visible=1<br />
#toolbar.detachable=1<br />
#toolbar.usestockicons=1<br />
#menubar.detachable=1<br />
#undo.redo.lazy=1<br />
#statusbar.visible=1<br />
#fileselector.width=800<br />
#fileselector.height=600<br />
#fileselector.show.hidden=1<br />
#magnification=-1<br />
#output.magnification=-1<br />
<br />
# Sizes and visibility in edit pane<br />
line.margin.visible=1<br />
line.margin.width=3+<br />
margin.width=16<br />
#fold.margin.width=16<br />
#fold.margin.colour=#FF0000<br />
#fold.margin.highlight.colour=#0000FF<br />
#blank.margin.left=4<br />
#blank.margin.right=4<br />
buffered.draw=1<br />
#two.phase.draw=0<br />
use.palette=0<br />
<br />
# Element styles<br />
#view.eol=1<br />
#control.char.symbol=.<br />
caret.period=500<br />
view.whitespace=0<br />
view.indentation.whitespace=1<br />
view.indentation.guides=0<br />
view.indentation.examine=3<br />
highlight.indentation.guides=0<br />
#caret.fore=#FF0000<br />
#caret.width=2<br />
#caret.line.back=#FFFED8<br />
#caret.line.back.alpha=63<br />
edge.column=200<br />
edge.mode=0<br />
edge.colour=#C0DCC0<br />
braces.check=1<br />
braces.sloppy=1<br />
#selection.fore=#006000<br />
# DADADA used as background because it yields standard silver C0C0C0<br />
# on low colour displays and a reasonable light grey on higher bit depths<br />
if PLAT_WINNT<br />
selection.alpha=80<br />
selection.back=#00FFFF<br />
if PLAT_WIN95<br />
selection.back=#DADADA<br />
if PLAT_GTK<br />
selection.alpha=30<br />
selection.back=#000000<br />
#whitespace.fore=#FF0000<br />
#whitespace.back=#FFF0F0<br />
#error.marker.fore=#0000A0<br />
#error.marker.back=#DADAFF<br />
#bookmark.fore=#808000<br />
#bookmark.back=#FFFFA0<br />
#bookmark.alpha=<br />
#find.mark=#0000FF<br />
<br />
# Scripting<br />
#ext.lua.startup.script=<br />
#ext.lua.auto.reload=1<br />
#ext.lua.reset=1<br />
<br />
# Checking<br />
are.you.sure=1<br />
#are.you.sure.for.build=1<br />
#save.all.for.build=1<br />
#quit.on.close.last=1<br />
load.on.activate=1<br />
#save.on.deactivate=1<br />
#are.you.sure.on.reload=1<br />
reload.preserves.undo=1<br />
check.if.already.open=1<br />
default.file.ext=.lsl<br />
#source.default.extensions=.h|.cxx|.bat<br />
title.full.path=1<br />
#title.show.buffers=1<br />
save.recent=1<br />
save.session=1<br />
session.bookmarks=1<br />
#session.folds=1<br />
#save.position=1<br />
open.dialog.in.file.directory=1<br />
strip.trailing.spaces=1<br />
#ensure.final.line.end=1<br />
#ensure.consistent.line.ends=1<br />
#save.deletes.first=1<br />
buffers=20<br />
#buffers.zorder.switching=1<br />
#api.*.cxx=d:\api\w.api<br />
#win95.death.delay=1000<br />
#locale.properties=locale.de.properties<br />
#translation.missing=***<br />
#read.only=1<br />
#max.file.size=1<br />
<br />
# Indentation<br />
tabsize=8<br />
indent.size=8<br />
use.tabs=1<br />
indent.auto=1<br />
indent.automatic=1<br />
indent.opening=0<br />
indent.closing=0<br />
#tab.indents=0<br />
#backspace.unindents=0<br />
<br />
# Wrapping of long lines<br />
wrap=1<br />
#wrap.style=2<br />
#cache.layout=3<br />
output.wrap=1<br />
#output.cache.layout=3<br />
#wrap.visual.flags=3<br />
#wrap.visual.flags.location=3<br />
#wrap.indent.mode=1<br />
#wrap.visual.startindent=4<br />
<br />
# Folding<br />
# enable folding, and show lines below when collapsed.<br />
fold=1<br />
fold.compact=1<br />
fold.flags=16<br />
fold.symbols=1<br />
#fold.on.open=1<br />
fold.comment=1<br />
fold.preprocessor=1<br />
<br />
# Find and Replace<br />
# Internal search always available with recursive capability so use in preference to external tool<br />
find.command=<br />
# findstr is available on recent versions of Windows including 2000<br />
#if PLAT_WIN<br />
# find.command=findstr /n /s $(find.what) $(find.files)<br />
#find.input=$(find.what)<br />
#if PLAT_GTK<br />
# find.command=grep --line-number "$(find.what)" $(find.files)<br />
find.files=*.c *.cxx *.h *.esl *.lsl<br />
#find.in.files.close.on.find=0<br />
#find.in.dot=1<br />
#find.in.binary=1<br />
#find.replace.matchcase=1<br />
#find.replace.escapes=1<br />
#find.replace.regexp=1<br />
#find.replace.regexp.posix=1<br />
#find.replace.wrap=0<br />
#find.replacewith.focus=0<br />
#find.replace.advanced=1<br />
<br />
# Behaviour<br />
#eol.mode=LF<br />
eol.auto=1<br />
clear.before.execute=1<br />
#vc.home.key=1<br />
#wrap.aware.home.end.keys=1<br />
#autocompleteword.automatic=1<br />
#autocomplete.choose.single=1<br />
caret.policy.xslop=1<br />
caret.policy.width=20<br />
caret.policy.xstrict=0<br />
caret.policy.xeven=0<br />
caret.policy.xjumps=0<br />
caret.policy.yslop=1<br />
caret.policy.lines=1<br />
caret.policy.ystrict=1<br />
caret.policy.yeven=1<br />
caret.policy.yjumps=0<br />
#visible.policy.strict=1<br />
#visible.policy.slop=1<br />
#visible.policy.lines=4<br />
time.commands=1<br />
#caret.sticky=1<br />
#properties.directory.enable=1<br />
<br />
# Status Bar<br />
statusbar.number=4<br />
statusbar.text.1=\<br />
li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)<br />
statusbar.text.2=\<br />
$(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelLength) chars.<br />
statusbar.text.3=\<br />
Now is: Date=$(CurrentDate) Time=$(CurrentTime)<br />
statusbar.text.4=\<br />
$(FileNameExt) : $(FileDate) - $(FileTime) | $(FileAttr)<br />
<br />
if PLAT_WIN<br />
command.scite.help="file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
command.scite.help.subsystem=2<br />
if PLAT_GTK<br />
command.print.*=a2ps "$(FileNameExt)"<br />
command.scite.help=netscape "file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
<br />
# Internationalisation<br />
# Japanese input code page 932 and ShiftJIS character set 128<br />
#code.page=932<br />
#character.set=128<br />
# Unicode<br />
#code.page=65001<br />
code.page=0<br />
#character.set=204<br />
# Required for Unicode to work on GTK+:<br />
#LC_CTYPE=en_US.UTF-8<br />
if PLAT_GTK<br />
output.code.page=65001<br />
<br />
# Export<br />
#export.keep.ext=1<br />
export.html.wysiwyg=1<br />
#export.html.tabs=1<br />
#export.html.folding=1<br />
export.html.styleused=1<br />
#export.html.title.fullpath=1<br />
#export.rtf.tabs=1<br />
#export.rtf.font.face=Arial<br />
#export.rtf.font.size=9<br />
#export.rtf.tabsize=8<br />
#export.rtf.wysiwyg=0<br />
#export.tex.title.fullpath=1<br />
# Magnification (added to default screen font size)<br />
export.pdf.magnification=0<br />
# Font: Courier, Helvetica or Times (Courier line-wraps)<br />
export.pdf.font=Helvetica<br />
# Page size (in points): width, height<br />
# E.g. Letter 612,792; A4 595,842; maximum 14400,14400<br />
export.pdf.pagesize=595,842<br />
# Margins (in points): left, right, top, bottom<br />
export.pdf.margins=72,72,72,72<br />
export.xml.collapse.spaces=1<br />
export.xml.collapse.lines=1<br />
<br />
# Define values for use in the imported properties files<br />
chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
chars.numeric=0123456789<br />
chars.accented=ŠšŒœŸÿÀàÁáÂâÃãÄäÅåÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö<br />
# This is a better set for Russian:<br />
#chars.accented=ÀàÁáÂâÃãÄäÅ娸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÚúÛûÜüÝýÞþßÿ<br />
<br />
# The open.filter setting is only used on Windows where the file selector has a menu of filters to apply<br />
# to the types of files seen when opening.<br />
# There is a limit (possibly 256 characters) to the length of a filter,<br />
# so not all source extensions can be in this setting.<br />
source.files=*.asm;*.c;*.cc;*.cpp;*.cxx;*.cs;*.h;*.hh;*.hxx;*.hpp;\<br />
*.idl;*.odl;*.rc;*.rc2;*.dlg;*.def;*.esl;*.lsl;\<br />
*.vb;*.vbs;*.bas;*.frm;*.cls;*.ctl;\<br />
*.java;*.js;*.py;*.pl;*.rb;*.cgi;*.lua;*.conf;\<br />
make*;*.mak;\<br />
*.properties;*.html;*.xml;*.iface;*.bat;*.e<br />
<br />
my.files=*.esl;*.lsl<br />
<br />
if PLAT_WIN<br />
all.files=All Files (*.*)|*.*|<br />
if PLAT_GTK<br />
all.files=All Files (*)|*|Hidden Files (.*)|.*|<br />
open.filter=\<br />
LSL/ESL|$(my.files)|\<br />
All Source|$(source.files)|\<br />
$(all.files)\<br />
$(filter.ada)\<br />
$(filter.conf)\<br />
$(filter.asm)\<br />
$(filter.asn1)\<br />
$(filter.ave)\<br />
$(filter.baan)\<br />
$(filter.bash)\<br />
$(filter.caml)\<br />
$(filter.cmake)\<br />
$(filter.cpp)\<br />
#$(filter.ch)\<br />
$(filter.css)\<br />
$(filter.d)\<br />
$(filter.eiffel)\<br />
$(filter.erlang)\<br />
$(filter.esl)\<br />
$(filter.fortran)\<br />
$(filter.gap)\<br />
$(filter.idl)\<br />
$(filter.inno)\<br />
$(filter.java)\<br />
$(filter.js)\<br />
$(filter.kix)\<br />
$(filter.lout)\<br />
$(filter.lsl)\<br />
$(filter.lua)\<br />
$(filter.matlab)\<br />
$(filter.metapost)\<br />
$(filter.mmixal)\<br />
$(filter.nncrontab)\<br />
$(filter.nsis)\<br />
$(filter.opal)\<br />
$(filter.pascal)\<br />
$(filter.perl)\<br />
$(filter.php)\<br />
$(filter.pov)\<br />
$(filter.powershell)\<br />
$(filter.prg)\<br />
$(filter.properties)\<br />
$(filter.ps)\<br />
$(filter.python)\<br />
$(filter.r)\<br />
$(filter.ruby)\<br />
$(filter.sql)\<br />
$(filter.specman)\<br />
$(filter.tcl)\<br />
$(filter.tex)\<br />
$(filter.text)\<br />
$(filter.vb)\<br />
$(filter.web)\<br />
$(filter.yaml)\<br />
$(filter.verilog)\<br />
$(filter.vhdl)<br />
<br />
# Give symbolic names to the set of fonts used in the standard styles.<br />
if PLAT_WIN<br />
font.base=font:Verdana,size:10<br />
font.small=font:Verdana,size:8<br />
font.comment=font:Comic Sans MS,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:Times New Roman,size:11<br />
font.text.comment=font:Verdana,size:9<br />
font.embedded.base=font:Verdana,size:9<br />
font.embedded.comment=font:Comic Sans MS,size:8<br />
font.monospace=font:Courier New,size:10<br />
font.vbs=font:Lucida Sans Unicode,size:10<br />
if PLAT_GTK<br />
font.base=font:!Bitstream Vera Sans,size:9<br />
font.small=font:!Bitstream Vera Sans,size:8<br />
font.comment=font:!Bitstream Vera Serif,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:!Bitstream Charter,size:10<br />
font.text.comment=font:!Serif,size:9<br />
font.embedded.base=font:!Serif,size:9<br />
font.embedded.comment=font:!Serif,size:9<br />
font.monospace=font:!Bitstream Vera Sans Mono,size:9<br />
font.vbs=font:!Bitstream Vera Sans Mono,size:9<br />
font.js=$(font.comment)<br />
<br />
# Old GTK+ font settings are faster but not antialiased<br />
#~ font.base=font:lucidatypewriter,size:12<br />
#~ font.small=font:lucidatypewriter,size:10<br />
#~ font.comment=font:new century schoolbook,size:12<br />
#~ font.code.comment.box=$(font.comment)<br />
#~ font.code.comment.line=$(font.comment)<br />
#~ font.code.comment.doc=$(font.comment)<br />
#~ font.text=font:times,size:14<br />
#~ font.text.comment=font:lucidatypewriter,size:10<br />
#~ font.embedded.base=font:lucidatypewriter,size:12<br />
#~ font.embedded.comment=font:lucidatypewriter,size:12<br />
#~ font.monospace=font:courier,size:12<br />
#~ font.vbs=font:new century schoolbook,size:12<br />
<br />
# Give symbolic names to the set of colours used in the standard styles.<br />
colour.code.comment.box=fore:#007F00<br />
colour.code.comment.line=fore:#007F00<br />
colour.code.comment.doc=fore:#3F703F<br />
colour.code.comment.nested=fore:#A0C0A0<br />
colour.text.comment=fore:#0000FF,back:#D0F0D0<br />
colour.other.comment=fore:#007F00<br />
colour.embedded.comment=back:#E0EEFF<br />
colour.embedded.js=back:#F0F0FF<br />
colour.notused=back:#FF0000<br />
<br />
colour.number=fore:#007F7F<br />
colour.keyword=fore:#00007F<br />
colour.string=fore:#7F007F<br />
colour.char=fore:#7F007F<br />
colour.operator=fore:#000000<br />
colour.preproc=fore:#7F7F00<br />
colour.error=fore:#FFFF00,back:#FF0000<br />
<br />
# Global default styles for all languages<br />
# Default<br />
style.*.32=$(font.base)<br />
# Line number<br />
style.*.33=back:#C0C0C0,$(font.base)<br />
# Brace highlight<br />
style.*.34=fore:#0000FF,bold<br />
# Brace incomplete highlight<br />
style.*.35=fore:#FF0000,bold<br />
# Control characters<br />
style.*.36=<br />
# Indentation guides<br />
style.*.37=fore:#C0C0C0,back:#808080<br />
<br />
# Printing - only works on Windows<br />
if PLAT_WIN<br />
#print.colour.mode=1<br />
print.magnification=-1<br />
# Setup: left, right, top, bottom margins, in local units:<br />
# hundredths of millimeters or thousandths of inches<br />
print.margins=1500,1000,1000,1500<br />
# Header/footer:<br />
# && = &; &p = current page<br />
# &f = file name; &F = full path<br />
# &d = file date; &D = current date<br />
# &t = file time; &T = full time<br />
print.header.format=$(FileNameExt) — Printed on $(CurrentDate), $(CurrentTime) — Page $(CurrentPage)<br />
print.footer.format=$(FilePath) — File date: $(FileDate) — File time: $(FileTime)<br />
# Header/footer style<br />
print.header.style=font:Arial,size:12,bold<br />
print.footer.style=font:Arial Narrow,size:10,italics<br />
<br />
# Warnings - only works on Windows and needs to be pointed at files on machine<br />
#if PLAT_WIN<br />
# warning.findwrapped=100,E:\Windows\Media\SFX\Boing.wav<br />
# warning.notfound=0,Effect.wav<br />
# warning.wrongfile=0,Glass.wav<br />
# warning.executeok=0,Fanfare.wav<br />
# warning.executeko=100,GlassBreak.wav<br />
# warning.nootherbookmark=100,Boing2.wav<br />
<br />
# Define the Lexer menu,<br />
# Each item contains three parts: menu string | file extension | key<br />
# The only keys allowed currently are based on F-keys and alphabetic keys and look like<br />
# [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D.<br />
# A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+.<br />
menu.language=\<br />
#FreeBasic|bas||\<br />
Text|txt|Shift+F11|\<br />
Ada|ads||\<br />
Apache Confi&g|conf||\<br />
Assembler|asm||\<br />
#ASN.1|asn1||\<br />
#Avenue|ave||\<br />
#Baan|bc||\<br />
&Batch|bat||\<br />
#Bullant|ant||\<br />
&C / C++|c||\<br />
#CMake|cmake||\<br />
C&#|cs||\<br />
#Csound|orc||\<br />
CSS|css||\<br />
D|d||\<br />
&Difference|diff||\<br />
#&Eiffel|e||\<br />
#Erlang|erl||\<br />
&Errorlist|err||\<br />
#FlagShip|prg||\<br />
#Forth|forth||\<br />
&Fortran|f90||\<br />
#Gap|g||\<br />
H&ypertext|html|F12|\<br />
#&InnoSetup|iss||\<br />
&Java|java||\<br />
Java&Script|js||\<br />
#&Kix|kix||\<br />
TeX|tex||\<br />
Lisp|lisp||\<br />
#Lot|lot||\<br />
#Lout|lt||\<br />
&LSL|lsl|Ctrl+F12|\<br />
Lu&a|lua||\<br />
Matlab|m.matlab||\<br />
&Makefile|mak|Ctrl+Shift+F11|\<br />
#MetaPost|mp||\<br />
#MMIXAL|mms||\<br />
#&nnCron crontab|tab||\<br />
#NSIS|nsis||\<br />
#Objective Caml|ml||\<br />
#Octave|m.octave||\<br />
#Opal|impl||\<br />
Pascal|pas||\<br />
Pe&rl|pl||\<br />
P&HP|php||\<br />
#P&LSQL|spec||\<br />
#P&ostScript|ps||\<br />
#P&OV-Ray SDL|pov||\<br />
#PowerShell|ps1||\<br />
#PowerPro|powerpro||\<br />
&Properties|properties||\<br />
Pytho&n|py||\<br />
#R|R||\<br />
#Reso&urce|rc||\<br />
Ruby|rb||\<br />
Shell|sh||\<br />
S&QL|sql||\<br />
#Specman|e||\<br />
&TCL|tcl||\<br />
&VB|vb||\<br />
VBScr&ipt|vbs||\<br />
#Verilog|v||\<br />
#VHDL|vhd||\<br />
&XML|xml|Shift+F12|\<br />
YAML|yaml||<br />
<br />
# User defined key commands<br />
user.shortcuts=\<br />
Ctrl+Shift+V|IDM_PASTEANDDOWN|\<br />
Ctrl+PageUp|IDM_PREVFILE|\<br />
Ctrl+PageDown|IDM_NEXTFILE|<br />
<br />
#KeypadPlus|IDM_EXPAND|\<br />
#KeypadMinus|IDM_BLOCK_COMMENT|<br />
<br />
#user.context.menu=\<br />
#||\<br />
#Next File|IDM_NEXTFILE|\<br />
#Prev File|IDM_PREVFILE|<br />
<br />
# Import all the language specific properties files<br />
#import abaqus<br />
import ada<br />
import asm<br />
#import asn1<br />
#import au3<br />
import ave<br />
import baan<br />
#import freebasic<br />
#import blitzbasic<br />
#import bullant<br />
import caml<br />
import conf<br />
import cpp<br />
#import cmake<br />
import d<br />
#import csound<br />
import css<br />
import eiffel<br />
import erlang<br />
import escript<br />
import esl<br />
#import flagship<br />
#import forth<br />
import fortran<br />
#import gap<br />
import html<br />
#import inno<br />
#import kix<br />
import lisp<br />
import lot<br />
#import lout<br />
import lsl<br />
import lua<br />
import matlab<br />
import metapost<br />
import mmixal<br />
#import nimrod<br />
#import nncrontab<br />
#import nsis<br />
#import opal<br />
import others<br />
import pascal<br />
import perl<br />
import pov<br />
#import powerpro<br />
#import powershell<br />
import ps<br />
#import purebasic<br />
import python<br />
#import r<br />
#import rebol<br />
import ruby<br />
#import scriptol<br />
#import smalltalk<br />
#import spice<br />
import sql<br />
#import specman<br />
import tcl<br />
import tex<br />
import vb<br />
import yaml<br />
#import verilog<br />
#import vhdl<br />
</nowiki></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/SciTEGlobal.properties&diff=451192User:Jesse Barnett/SciTEGlobal.properties2009-08-07T00:02:49Z<p>Jesse Barnett: </p>
<hr />
<div>Open SciTEGlobal.properties using SciTE. Edit/Select All and delete, then paste the following into the now empty document and save.<br />
<br />
Hint: Scroll to bottom of text and then left click and drag mouse up to select text.<br />
<br />
<pre># Global initialisation file for SciTE Version 1.79<br />
# Custom settings for Jesse Barnett 8/02/09<br />
# For Linux, place in $prefix/share/scite<br />
# For Windows, place in same directory as SciTE.EXE (or Sc1.EXE)<br />
# Documentation at http://www.scintilla.org/SciTEDoc.html<br />
<br />
# Globals<br />
<br />
# Window sizes and visibility<br />
if PLAT_WIN<br />
position.left=0<br />
position.top=0<br />
if PLAT_GTK<br />
position.left=5<br />
position.top=22<br />
position.width=-1<br />
position.height=-1<br />
#position.maximize=1<br />
#position.tile=1<br />
#full.screen.hides.menu=1<br />
minimize.to.tray=1<br />
split.vertical=0<br />
#output.horizontal.size=200<br />
output.vertical.size=120<br />
output.initial.hide=1<br />
#horizontal.scrollbar=0<br />
#horizontal.scroll.width=10000<br />
#horizontal.scroll.width.tracking=0<br />
#output.horizontal.scrollbar=0<br />
#output.horizontal.scroll.width=10000<br />
#output.horizontal.scroll.width.tracking=0<br />
#output.scroll=0<br />
#error.select.line=1<br />
#end.at.last.line=0<br />
tabbar.visible=1<br />
#tabbar.hide.one=1<br />
#tabbar.multiline=1<br />
toolbar.visible=1<br />
#toolbar.detachable=1<br />
#toolbar.usestockicons=1<br />
#menubar.detachable=1<br />
#undo.redo.lazy=1<br />
#statusbar.visible=1<br />
#fileselector.width=800<br />
#fileselector.height=600<br />
#fileselector.show.hidden=1<br />
#magnification=-1<br />
#output.magnification=-1<br />
<br />
# Sizes and visibility in edit pane<br />
line.margin.visible=1<br />
line.margin.width=3+<br />
margin.width=16<br />
#fold.margin.width=16<br />
#fold.margin.colour=#FF0000<br />
#fold.margin.highlight.colour=#0000FF<br />
#blank.margin.left=4<br />
#blank.margin.right=4<br />
buffered.draw=1<br />
#two.phase.draw=0<br />
use.palette=0<br />
<br />
# Element styles<br />
#view.eol=1<br />
#control.char.symbol=.<br />
caret.period=500<br />
view.whitespace=0<br />
view.indentation.whitespace=1<br />
view.indentation.guides=0<br />
view.indentation.examine=3<br />
highlight.indentation.guides=0<br />
#caret.fore=#FF0000<br />
#caret.width=2<br />
#caret.line.back=#FFFED8<br />
#caret.line.back.alpha=63<br />
edge.column=200<br />
edge.mode=0<br />
edge.colour=#C0DCC0<br />
braces.check=1<br />
braces.sloppy=1<br />
#selection.fore=#006000<br />
# DADADA used as background because it yields standard silver C0C0C0<br />
# on low colour displays and a reasonable light grey on higher bit depths<br />
if PLAT_WINNT<br />
selection.alpha=80<br />
selection.back=#00FFFF<br />
if PLAT_WIN95<br />
selection.back=#DADADA<br />
if PLAT_GTK<br />
selection.alpha=30<br />
selection.back=#000000<br />
#whitespace.fore=#FF0000<br />
#whitespace.back=#FFF0F0<br />
#error.marker.fore=#0000A0<br />
#error.marker.back=#DADAFF<br />
#bookmark.fore=#808000<br />
#bookmark.back=#FFFFA0<br />
#bookmark.alpha=<br />
#find.mark=#0000FF<br />
<br />
# Scripting<br />
#ext.lua.startup.script=<br />
#ext.lua.auto.reload=1<br />
#ext.lua.reset=1<br />
<br />
# Checking<br />
are.you.sure=1<br />
#are.you.sure.for.build=1<br />
#save.all.for.build=1<br />
#quit.on.close.last=1<br />
load.on.activate=1<br />
#save.on.deactivate=1<br />
#are.you.sure.on.reload=1<br />
reload.preserves.undo=1<br />
check.if.already.open=1<br />
default.file.ext=.lsl<br />
#source.default.extensions=.h|.cxx|.bat<br />
title.full.path=1<br />
#title.show.buffers=1<br />
save.recent=1<br />
save.session=1<br />
session.bookmarks=1<br />
#session.folds=1<br />
#save.position=1<br />
open.dialog.in.file.directory=1<br />
strip.trailing.spaces=1<br />
#ensure.final.line.end=1<br />
#ensure.consistent.line.ends=1<br />
#save.deletes.first=1<br />
buffers=20<br />
#buffers.zorder.switching=1<br />
#api.*.cxx=d:\api\w.api<br />
#win95.death.delay=1000<br />
#locale.properties=locale.de.properties<br />
#translation.missing=***<br />
#read.only=1<br />
#max.file.size=1<br />
<br />
# Indentation<br />
tabsize=8<br />
indent.size=8<br />
use.tabs=1<br />
indent.auto=1<br />
indent.automatic=1<br />
indent.opening=0<br />
indent.closing=0<br />
#tab.indents=0<br />
#backspace.unindents=0<br />
<br />
# Wrapping of long lines<br />
wrap=1<br />
#wrap.style=2<br />
#cache.layout=3<br />
output.wrap=1<br />
#output.cache.layout=3<br />
#wrap.visual.flags=3<br />
#wrap.visual.flags.location=3<br />
#wrap.indent.mode=1<br />
#wrap.visual.startindent=4<br />
<br />
# Folding<br />
# enable folding, and show lines below when collapsed.<br />
fold=1<br />
fold.compact=1<br />
fold.flags=16<br />
fold.symbols=1<br />
#fold.on.open=1<br />
fold.comment=1<br />
fold.preprocessor=1<br />
<br />
# Find and Replace<br />
# Internal search always available with recursive capability so use in preference to external tool<br />
find.command=<br />
# findstr is available on recent versions of Windows including 2000<br />
#if PLAT_WIN<br />
# find.command=findstr /n /s $(find.what) $(find.files)<br />
#find.input=$(find.what)<br />
#if PLAT_GTK<br />
# find.command=grep --line-number "$(find.what)" $(find.files)<br />
find.files=*.c *.cxx *.h *.esl *.lsl<br />
#find.in.files.close.on.find=0<br />
#find.in.dot=1<br />
#find.in.binary=1<br />
#find.replace.matchcase=1<br />
#find.replace.escapes=1<br />
#find.replace.regexp=1<br />
#find.replace.regexp.posix=1<br />
#find.replace.wrap=0<br />
#find.replacewith.focus=0<br />
#find.replace.advanced=1<br />
<br />
# Behaviour<br />
#eol.mode=LF<br />
eol.auto=1<br />
clear.before.execute=1<br />
#vc.home.key=1<br />
#wrap.aware.home.end.keys=1<br />
#autocompleteword.automatic=1<br />
#autocomplete.choose.single=1<br />
caret.policy.xslop=1<br />
caret.policy.width=20<br />
caret.policy.xstrict=0<br />
caret.policy.xeven=0<br />
caret.policy.xjumps=0<br />
caret.policy.yslop=1<br />
caret.policy.lines=1<br />
caret.policy.ystrict=1<br />
caret.policy.yeven=1<br />
caret.policy.yjumps=0<br />
#visible.policy.strict=1<br />
#visible.policy.slop=1<br />
#visible.policy.lines=4<br />
time.commands=1<br />
#caret.sticky=1<br />
#properties.directory.enable=1<br />
<br />
# Status Bar<br />
statusbar.number=4<br />
statusbar.text.1=\<br />
li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)<br />
statusbar.text.2=\<br />
$(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelLength) chars.<br />
statusbar.text.3=\<br />
Now is: Date=$(CurrentDate) Time=$(CurrentTime)<br />
statusbar.text.4=\<br />
$(FileNameExt) : $(FileDate) - $(FileTime) | $(FileAttr)<br />
<br />
if PLAT_WIN<br />
command.scite.help="file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
command.scite.help.subsystem=2<br />
if PLAT_GTK<br />
command.print.*=a2ps "$(FileNameExt)"<br />
command.scite.help=netscape "file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
<br />
# Internationalisation<br />
# Japanese input code page 932 and ShiftJIS character set 128<br />
#code.page=932<br />
#character.set=128<br />
# Unicode<br />
#code.page=65001<br />
code.page=0<br />
#character.set=204<br />
# Required for Unicode to work on GTK+:<br />
#LC_CTYPE=en_US.UTF-8<br />
if PLAT_GTK<br />
output.code.page=65001<br />
<br />
# Export<br />
#export.keep.ext=1<br />
export.html.wysiwyg=1<br />
#export.html.tabs=1<br />
#export.html.folding=1<br />
export.html.styleused=1<br />
#export.html.title.fullpath=1<br />
#export.rtf.tabs=1<br />
#export.rtf.font.face=Arial<br />
#export.rtf.font.size=9<br />
#export.rtf.tabsize=8<br />
#export.rtf.wysiwyg=0<br />
#export.tex.title.fullpath=1<br />
# Magnification (added to default screen font size)<br />
export.pdf.magnification=0<br />
# Font: Courier, Helvetica or Times (Courier line-wraps)<br />
export.pdf.font=Helvetica<br />
# Page size (in points): width, height<br />
# E.g. Letter 612,792; A4 595,842; maximum 14400,14400<br />
export.pdf.pagesize=595,842<br />
# Margins (in points): left, right, top, bottom<br />
export.pdf.margins=72,72,72,72<br />
export.xml.collapse.spaces=1<br />
export.xml.collapse.lines=1<br />
<br />
# Define values for use in the imported properties files<br />
chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
chars.numeric=0123456789<br />
chars.accented=ŠšŒœŸÿÀàÁáÂâÃãÄäÅåÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö<br />
# This is a better set for Russian:<br />
#chars.accented=ÀàÁáÂâÃãÄäÅ娸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÚúÛûÜüÝýÞþßÿ<br />
<br />
# The open.filter setting is only used on Windows where the file selector has a menu of filters to apply<br />
# to the types of files seen when opening.<br />
# There is a limit (possibly 256 characters) to the length of a filter,<br />
# so not all source extensions can be in this setting.<br />
source.files=*.asm;*.c;*.cc;*.cpp;*.cxx;*.cs;*.h;*.hh;*.hxx;*.hpp;\<br />
*.idl;*.odl;*.rc;*.rc2;*.dlg;*.def;*.esl;*.lsl;\<br />
*.vb;*.vbs;*.bas;*.frm;*.cls;*.ctl;\<br />
*.java;*.js;*.py;*.pl;*.rb;*.cgi;*.lua;*.conf;\<br />
make*;*.mak;\<br />
*.properties;*.html;*.xml;*.iface;*.bat;*.e<br />
<br />
my.files=*.esl;*.lsl<br />
<br />
if PLAT_WIN<br />
all.files=All Files (*.*)|*.*|<br />
if PLAT_GTK<br />
all.files=All Files (*)|*|Hidden Files (.*)|.*|<br />
open.filter=\<br />
LSL/ESL|$(my.files)|\<br />
All Source|$(source.files)|\<br />
$(all.files)\<br />
$(filter.ada)\<br />
$(filter.conf)\<br />
$(filter.asm)\<br />
$(filter.asn1)\<br />
$(filter.ave)\<br />
$(filter.baan)\<br />
$(filter.bash)\<br />
$(filter.caml)\<br />
$(filter.cmake)\<br />
$(filter.cpp)\<br />
#$(filter.ch)\<br />
$(filter.css)\<br />
$(filter.d)\<br />
$(filter.eiffel)\<br />
$(filter.erlang)\<br />
$(filter.esl)\<br />
$(filter.fortran)\<br />
$(filter.gap)\<br />
$(filter.idl)\<br />
$(filter.inno)\<br />
$(filter.java)\<br />
$(filter.js)\<br />
$(filter.kix)\<br />
$(filter.lout)\<br />
$(filter.lsl)\<br />
$(filter.lua)\<br />
$(filter.matlab)\<br />
$(filter.metapost)\<br />
$(filter.mmixal)\<br />
$(filter.nncrontab)\<br />
$(filter.nsis)\<br />
$(filter.opal)\<br />
$(filter.pascal)\<br />
$(filter.perl)\<br />
$(filter.php)\<br />
$(filter.pov)\<br />
$(filter.powershell)\<br />
$(filter.prg)\<br />
$(filter.properties)\<br />
$(filter.ps)\<br />
$(filter.python)\<br />
$(filter.r)\<br />
$(filter.ruby)\<br />
$(filter.sql)\<br />
$(filter.specman)\<br />
$(filter.tcl)\<br />
$(filter.tex)\<br />
$(filter.text)\<br />
$(filter.vb)\<br />
$(filter.web)\<br />
$(filter.yaml)\<br />
$(filter.verilog)\<br />
$(filter.vhdl)<br />
<br />
# Give symbolic names to the set of fonts used in the standard styles.<br />
if PLAT_WIN<br />
font.base=font:Verdana,size:10<br />
font.small=font:Verdana,size:8<br />
font.comment=font:Comic Sans MS,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:Times New Roman,size:11<br />
font.text.comment=font:Verdana,size:9<br />
font.embedded.base=font:Verdana,size:9<br />
font.embedded.comment=font:Comic Sans MS,size:8<br />
font.monospace=font:Courier New,size:10<br />
font.vbs=font:Lucida Sans Unicode,size:10<br />
if PLAT_GTK<br />
font.base=font:!Bitstream Vera Sans,size:9<br />
font.small=font:!Bitstream Vera Sans,size:8<br />
font.comment=font:!Bitstream Vera Serif,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:!Bitstream Charter,size:10<br />
font.text.comment=font:!Serif,size:9<br />
font.embedded.base=font:!Serif,size:9<br />
font.embedded.comment=font:!Serif,size:9<br />
font.monospace=font:!Bitstream Vera Sans Mono,size:9<br />
font.vbs=font:!Bitstream Vera Sans Mono,size:9<br />
font.js=$(font.comment)<br />
<br />
# Old GTK+ font settings are faster but not antialiased<br />
#~ font.base=font:lucidatypewriter,size:12<br />
#~ font.small=font:lucidatypewriter,size:10<br />
#~ font.comment=font:new century schoolbook,size:12<br />
#~ font.code.comment.box=$(font.comment)<br />
#~ font.code.comment.line=$(font.comment)<br />
#~ font.code.comment.doc=$(font.comment)<br />
#~ font.text=font:times,size:14<br />
#~ font.text.comment=font:lucidatypewriter,size:10<br />
#~ font.embedded.base=font:lucidatypewriter,size:12<br />
#~ font.embedded.comment=font:lucidatypewriter,size:12<br />
#~ font.monospace=font:courier,size:12<br />
#~ font.vbs=font:new century schoolbook,size:12<br />
<br />
# Give symbolic names to the set of colours used in the standard styles.<br />
colour.code.comment.box=fore:#007F00<br />
colour.code.comment.line=fore:#007F00<br />
colour.code.comment.doc=fore:#3F703F<br />
colour.code.comment.nested=fore:#A0C0A0<br />
colour.text.comment=fore:#0000FF,back:#D0F0D0<br />
colour.other.comment=fore:#007F00<br />
colour.embedded.comment=back:#E0EEFF<br />
colour.embedded.js=back:#F0F0FF<br />
colour.notused=back:#FF0000<br />
<br />
colour.number=fore:#007F7F<br />
colour.keyword=fore:#00007F<br />
colour.string=fore:#7F007F<br />
colour.char=fore:#7F007F<br />
colour.operator=fore:#000000<br />
colour.preproc=fore:#7F7F00<br />
colour.error=fore:#FFFF00,back:#FF0000<br />
<br />
# Global default styles for all languages<br />
# Default<br />
style.*.32=$(font.base)<br />
# Line number<br />
style.*.33=back:#C0C0C0,$(font.base)<br />
# Brace highlight<br />
style.*.34=fore:#0000FF,bold<br />
# Brace incomplete highlight<br />
style.*.35=fore:#FF0000,bold<br />
# Control characters<br />
style.*.36=<br />
# Indentation guides<br />
style.*.37=fore:#C0C0C0,back:#808080<br />
<br />
# Printing - only works on Windows<br />
if PLAT_WIN<br />
#print.colour.mode=1<br />
print.magnification=-1<br />
# Setup: left, right, top, bottom margins, in local units:<br />
# hundredths of millimeters or thousandths of inches<br />
print.margins=1500,1000,1000,1500<br />
# Header/footer:<br />
# && = &; &p = current page<br />
# &f = file name; &F = full path<br />
# &d = file date; &D = current date<br />
# &t = file time; &T = full time<br />
print.header.format=$(FileNameExt) — Printed on $(CurrentDate), $(CurrentTime) — Page $(CurrentPage)<br />
print.footer.format=$(FilePath) — File date: $(FileDate) — File time: $(FileTime)<br />
# Header/footer style<br />
print.header.style=font:Arial,size:12,bold<br />
print.footer.style=font:Arial Narrow,size:10,italics<br />
<br />
# Warnings - only works on Windows and needs to be pointed at files on machine<br />
#if PLAT_WIN<br />
# warning.findwrapped=100,E:\Windows\Media\SFX\Boing.wav<br />
# warning.notfound=0,Effect.wav<br />
# warning.wrongfile=0,Glass.wav<br />
# warning.executeok=0,Fanfare.wav<br />
# warning.executeko=100,GlassBreak.wav<br />
# warning.nootherbookmark=100,Boing2.wav<br />
<br />
# Define the Lexer menu,<br />
# Each item contains three parts: menu string | file extension | key<br />
# The only keys allowed currently are based on F-keys and alphabetic keys and look like<br />
# [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D.<br />
# A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+.<br />
menu.language=\<br />
#FreeBasic|bas||\<br />
Text|txt|Shift+F11|\<br />
Ada|ads||\<br />
Apache Confi&g|conf||\<br />
Assembler|asm||\<br />
#ASN.1|asn1||\<br />
#Avenue|ave||\<br />
#Baan|bc||\<br />
&Batch|bat||\<br />
#Bullant|ant||\<br />
&C / C++|c||\<br />
#CMake|cmake||\<br />
C&#|cs||\<br />
#Csound|orc||\<br />
CSS|css||\<br />
D|d||\<br />
&Difference|diff||\<br />
#&Eiffel|e||\<br />
#Erlang|erl||\<br />
&Errorlist|err||\<br />
#FlagShip|prg||\<br />
#Forth|forth||\<br />
&Fortran|f90||\<br />
#Gap|g||\<br />
H&ypertext|html|F12|\<br />
#&InnoSetup|iss||\<br />
&Java|java||\<br />
Java&Script|js||\<br />
#&Kix|kix||\<br />
TeX|tex||\<br />
Lisp|lisp||\<br />
#Lot|lot||\<br />
#Lout|lt||\<br />
&LSL|lsl|Ctrl+F12|\<br />
Lu&a|lua||\<br />
Matlab|m.matlab||\<br />
&Makefile|mak|Ctrl+Shift+F11|\<br />
#MetaPost|mp||\<br />
#MMIXAL|mms||\<br />
#&nnCron crontab|tab||\<br />
#NSIS|nsis||\<br />
#Objective Caml|ml||\<br />
#Octave|m.octave||\<br />
#Opal|impl||\<br />
Pascal|pas||\<br />
Pe&rl|pl||\<br />
P&HP|php||\<br />
#P&LSQL|spec||\<br />
#P&ostScript|ps||\<br />
#P&OV-Ray SDL|pov||\<br />
#PowerShell|ps1||\<br />
#PowerPro|powerpro||\<br />
&Properties|properties||\<br />
Pytho&n|py||\<br />
#R|R||\<br />
#Reso&urce|rc||\<br />
Ruby|rb||\<br />
Shell|sh||\<br />
S&QL|sql||\<br />
#Specman|e||\<br />
&TCL|tcl||\<br />
&VB|vb||\<br />
VBScr&ipt|vbs||\<br />
#Verilog|v||\<br />
#VHDL|vhd||\<br />
&XML|xml|Shift+F12|\<br />
YAML|yaml||<br />
<br />
# User defined key commands<br />
user.shortcuts=\<br />
Ctrl+Shift+V|IDM_PASTEANDDOWN|\<br />
Ctrl+PageUp|IDM_PREVFILE|\<br />
Ctrl+PageDown|IDM_NEXTFILE|<br />
<br />
#KeypadPlus|IDM_EXPAND|\<br />
#KeypadMinus|IDM_BLOCK_COMMENT|<br />
<br />
#user.context.menu=\<br />
#||\<br />
#Next File|IDM_NEXTFILE|\<br />
#Prev File|IDM_PREVFILE|<br />
<br />
# Import all the language specific properties files<br />
#import abaqus<br />
import ada<br />
import asm<br />
#import asn1<br />
#import au3<br />
import ave<br />
import baan<br />
#import freebasic<br />
#import blitzbasic<br />
#import bullant<br />
import caml<br />
import conf<br />
import cpp<br />
#import cmake<br />
import d<br />
#import csound<br />
import css<br />
import eiffel<br />
import erlang<br />
import escript<br />
import esl<br />
#import flagship<br />
#import forth<br />
import fortran<br />
#import gap<br />
import html<br />
#import inno<br />
#import kix<br />
import lisp<br />
import lot<br />
#import lout<br />
import lsl<br />
import lua<br />
import matlab<br />
import metapost<br />
import mmixal<br />
#import nimrod<br />
#import nncrontab<br />
#import nsis<br />
#import opal<br />
import others<br />
import pascal<br />
import perl<br />
import pov<br />
#import powerpro<br />
#import powershell<br />
import ps<br />
#import purebasic<br />
import python<br />
#import r<br />
#import rebol<br />
import ruby<br />
#import scriptol<br />
#import smalltalk<br />
#import spice<br />
import sql<br />
#import specman<br />
import tcl<br />
import tex<br />
import vb<br />
import yaml<br />
#import verilog<br />
#import vhdl<br />
</pre></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/SciTEGlobal.properties&diff=451182User:Jesse Barnett/SciTEGlobal.properties2009-08-06T23:59:54Z<p>Jesse Barnett: </p>
<hr />
<div>Open SciTEGlobal.properties using SciTE. Edit/Select All and delete, then paste the following into the now empty document and save.<br />
<br />
<pre># Global initialisation file for SciTE Version 1.79<br />
# Custom settings for Jesse Barnett 8/02/09<br />
# For Linux, place in $prefix/share/scite<br />
# For Windows, place in same directory as SciTE.EXE (or Sc1.EXE)<br />
# Documentation at http://www.scintilla.org/SciTEDoc.html<br />
<br />
# Globals<br />
<br />
# Window sizes and visibility<br />
if PLAT_WIN<br />
position.left=0<br />
position.top=0<br />
if PLAT_GTK<br />
position.left=5<br />
position.top=22<br />
position.width=-1<br />
position.height=-1<br />
#position.maximize=1<br />
#position.tile=1<br />
#full.screen.hides.menu=1<br />
minimize.to.tray=1<br />
split.vertical=0<br />
#output.horizontal.size=200<br />
output.vertical.size=120<br />
output.initial.hide=1<br />
#horizontal.scrollbar=0<br />
#horizontal.scroll.width=10000<br />
#horizontal.scroll.width.tracking=0<br />
#output.horizontal.scrollbar=0<br />
#output.horizontal.scroll.width=10000<br />
#output.horizontal.scroll.width.tracking=0<br />
#output.scroll=0<br />
#error.select.line=1<br />
#end.at.last.line=0<br />
tabbar.visible=1<br />
#tabbar.hide.one=1<br />
#tabbar.multiline=1<br />
toolbar.visible=1<br />
#toolbar.detachable=1<br />
#toolbar.usestockicons=1<br />
#menubar.detachable=1<br />
#undo.redo.lazy=1<br />
#statusbar.visible=1<br />
#fileselector.width=800<br />
#fileselector.height=600<br />
#fileselector.show.hidden=1<br />
#magnification=-1<br />
#output.magnification=-1<br />
<br />
# Sizes and visibility in edit pane<br />
line.margin.visible=1<br />
line.margin.width=3+<br />
margin.width=16<br />
#fold.margin.width=16<br />
#fold.margin.colour=#FF0000<br />
#fold.margin.highlight.colour=#0000FF<br />
#blank.margin.left=4<br />
#blank.margin.right=4<br />
buffered.draw=1<br />
#two.phase.draw=0<br />
use.palette=0<br />
<br />
# Element styles<br />
#view.eol=1<br />
#control.char.symbol=.<br />
caret.period=500<br />
view.whitespace=0<br />
view.indentation.whitespace=1<br />
view.indentation.guides=0<br />
view.indentation.examine=3<br />
highlight.indentation.guides=0<br />
#caret.fore=#FF0000<br />
#caret.width=2<br />
#caret.line.back=#FFFED8<br />
#caret.line.back.alpha=63<br />
edge.column=200<br />
edge.mode=0<br />
edge.colour=#C0DCC0<br />
braces.check=1<br />
braces.sloppy=1<br />
#selection.fore=#006000<br />
# DADADA used as background because it yields standard silver C0C0C0<br />
# on low colour displays and a reasonable light grey on higher bit depths<br />
if PLAT_WINNT<br />
selection.alpha=80<br />
selection.back=#00FFFF<br />
if PLAT_WIN95<br />
selection.back=#DADADA<br />
if PLAT_GTK<br />
selection.alpha=30<br />
selection.back=#000000<br />
#whitespace.fore=#FF0000<br />
#whitespace.back=#FFF0F0<br />
#error.marker.fore=#0000A0<br />
#error.marker.back=#DADAFF<br />
#bookmark.fore=#808000<br />
#bookmark.back=#FFFFA0<br />
#bookmark.alpha=<br />
#find.mark=#0000FF<br />
<br />
# Scripting<br />
#ext.lua.startup.script=<br />
#ext.lua.auto.reload=1<br />
#ext.lua.reset=1<br />
<br />
# Checking<br />
are.you.sure=1<br />
#are.you.sure.for.build=1<br />
#save.all.for.build=1<br />
#quit.on.close.last=1<br />
load.on.activate=1<br />
#save.on.deactivate=1<br />
#are.you.sure.on.reload=1<br />
reload.preserves.undo=1<br />
check.if.already.open=1<br />
default.file.ext=.lsl<br />
#source.default.extensions=.h|.cxx|.bat<br />
title.full.path=1<br />
#title.show.buffers=1<br />
save.recent=1<br />
save.session=1<br />
session.bookmarks=1<br />
#session.folds=1<br />
#save.position=1<br />
open.dialog.in.file.directory=1<br />
strip.trailing.spaces=1<br />
#ensure.final.line.end=1<br />
#ensure.consistent.line.ends=1<br />
#save.deletes.first=1<br />
buffers=20<br />
#buffers.zorder.switching=1<br />
#api.*.cxx=d:\api\w.api<br />
#win95.death.delay=1000<br />
#locale.properties=locale.de.properties<br />
#translation.missing=***<br />
#read.only=1<br />
#max.file.size=1<br />
<br />
# Indentation<br />
tabsize=8<br />
indent.size=8<br />
use.tabs=1<br />
indent.auto=1<br />
indent.automatic=1<br />
indent.opening=0<br />
indent.closing=0<br />
#tab.indents=0<br />
#backspace.unindents=0<br />
<br />
# Wrapping of long lines<br />
wrap=1<br />
#wrap.style=2<br />
#cache.layout=3<br />
output.wrap=1<br />
#output.cache.layout=3<br />
#wrap.visual.flags=3<br />
#wrap.visual.flags.location=3<br />
#wrap.indent.mode=1<br />
#wrap.visual.startindent=4<br />
<br />
# Folding<br />
# enable folding, and show lines below when collapsed.<br />
fold=1<br />
fold.compact=1<br />
fold.flags=16<br />
fold.symbols=1<br />
#fold.on.open=1<br />
fold.comment=1<br />
fold.preprocessor=1<br />
<br />
# Find and Replace<br />
# Internal search always available with recursive capability so use in preference to external tool<br />
find.command=<br />
# findstr is available on recent versions of Windows including 2000<br />
#if PLAT_WIN<br />
# find.command=findstr /n /s $(find.what) $(find.files)<br />
#find.input=$(find.what)<br />
#if PLAT_GTK<br />
# find.command=grep --line-number "$(find.what)" $(find.files)<br />
find.files=*.c *.cxx *.h *.esl *.lsl<br />
#find.in.files.close.on.find=0<br />
#find.in.dot=1<br />
#find.in.binary=1<br />
#find.replace.matchcase=1<br />
#find.replace.escapes=1<br />
#find.replace.regexp=1<br />
#find.replace.regexp.posix=1<br />
#find.replace.wrap=0<br />
#find.replacewith.focus=0<br />
#find.replace.advanced=1<br />
<br />
# Behaviour<br />
#eol.mode=LF<br />
eol.auto=1<br />
clear.before.execute=1<br />
#vc.home.key=1<br />
#wrap.aware.home.end.keys=1<br />
#autocompleteword.automatic=1<br />
#autocomplete.choose.single=1<br />
caret.policy.xslop=1<br />
caret.policy.width=20<br />
caret.policy.xstrict=0<br />
caret.policy.xeven=0<br />
caret.policy.xjumps=0<br />
caret.policy.yslop=1<br />
caret.policy.lines=1<br />
caret.policy.ystrict=1<br />
caret.policy.yeven=1<br />
caret.policy.yjumps=0<br />
#visible.policy.strict=1<br />
#visible.policy.slop=1<br />
#visible.policy.lines=4<br />
time.commands=1<br />
#caret.sticky=1<br />
#properties.directory.enable=1<br />
<br />
# Status Bar<br />
statusbar.number=4<br />
statusbar.text.1=\<br />
li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)<br />
statusbar.text.2=\<br />
$(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelLength) chars.<br />
statusbar.text.3=\<br />
Now is: Date=$(CurrentDate) Time=$(CurrentTime)<br />
statusbar.text.4=\<br />
$(FileNameExt) : $(FileDate) - $(FileTime) | $(FileAttr)<br />
<br />
if PLAT_WIN<br />
command.scite.help="file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
command.scite.help.subsystem=2<br />
if PLAT_GTK<br />
command.print.*=a2ps "$(FileNameExt)"<br />
command.scite.help=netscape "file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
<br />
# Internationalisation<br />
# Japanese input code page 932 and ShiftJIS character set 128<br />
#code.page=932<br />
#character.set=128<br />
# Unicode<br />
#code.page=65001<br />
code.page=0<br />
#character.set=204<br />
# Required for Unicode to work on GTK+:<br />
#LC_CTYPE=en_US.UTF-8<br />
if PLAT_GTK<br />
output.code.page=65001<br />
<br />
# Export<br />
#export.keep.ext=1<br />
export.html.wysiwyg=1<br />
#export.html.tabs=1<br />
#export.html.folding=1<br />
export.html.styleused=1<br />
#export.html.title.fullpath=1<br />
#export.rtf.tabs=1<br />
#export.rtf.font.face=Arial<br />
#export.rtf.font.size=9<br />
#export.rtf.tabsize=8<br />
#export.rtf.wysiwyg=0<br />
#export.tex.title.fullpath=1<br />
# Magnification (added to default screen font size)<br />
export.pdf.magnification=0<br />
# Font: Courier, Helvetica or Times (Courier line-wraps)<br />
export.pdf.font=Helvetica<br />
# Page size (in points): width, height<br />
# E.g. Letter 612,792; A4 595,842; maximum 14400,14400<br />
export.pdf.pagesize=595,842<br />
# Margins (in points): left, right, top, bottom<br />
export.pdf.margins=72,72,72,72<br />
export.xml.collapse.spaces=1<br />
export.xml.collapse.lines=1<br />
<br />
# Define values for use in the imported properties files<br />
chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
chars.numeric=0123456789<br />
chars.accented=ŠšŒœŸÿÀàÁáÂâÃãÄäÅåÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö<br />
# This is a better set for Russian:<br />
#chars.accented=ÀàÁáÂâÃãÄäÅ娸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÚúÛûÜüÝýÞþßÿ<br />
<br />
# The open.filter setting is only used on Windows where the file selector has a menu of filters to apply<br />
# to the types of files seen when opening.<br />
# There is a limit (possibly 256 characters) to the length of a filter,<br />
# so not all source extensions can be in this setting.<br />
source.files=*.asm;*.c;*.cc;*.cpp;*.cxx;*.cs;*.h;*.hh;*.hxx;*.hpp;\<br />
*.idl;*.odl;*.rc;*.rc2;*.dlg;*.def;*.esl;*.lsl;\<br />
*.vb;*.vbs;*.bas;*.frm;*.cls;*.ctl;\<br />
*.java;*.js;*.py;*.pl;*.rb;*.cgi;*.lua;*.conf;\<br />
make*;*.mak;\<br />
*.properties;*.html;*.xml;*.iface;*.bat;*.e<br />
<br />
my.files=*.esl;*.lsl<br />
<br />
if PLAT_WIN<br />
all.files=All Files (*.*)|*.*|<br />
if PLAT_GTK<br />
all.files=All Files (*)|*|Hidden Files (.*)|.*|<br />
open.filter=\<br />
LSL/ESL|$(my.files)|\<br />
All Source|$(source.files)|\<br />
$(all.files)\<br />
$(filter.ada)\<br />
$(filter.conf)\<br />
$(filter.asm)\<br />
$(filter.asn1)\<br />
$(filter.ave)\<br />
$(filter.baan)\<br />
$(filter.bash)\<br />
$(filter.caml)\<br />
$(filter.cmake)\<br />
$(filter.cpp)\<br />
#$(filter.ch)\<br />
$(filter.css)\<br />
$(filter.d)\<br />
$(filter.eiffel)\<br />
$(filter.erlang)\<br />
$(filter.esl)\<br />
$(filter.fortran)\<br />
$(filter.gap)\<br />
$(filter.idl)\<br />
$(filter.inno)\<br />
$(filter.java)\<br />
$(filter.js)\<br />
$(filter.kix)\<br />
$(filter.lout)\<br />
$(filter.lsl)\<br />
$(filter.lua)\<br />
$(filter.matlab)\<br />
$(filter.metapost)\<br />
$(filter.mmixal)\<br />
$(filter.nncrontab)\<br />
$(filter.nsis)\<br />
$(filter.opal)\<br />
$(filter.pascal)\<br />
$(filter.perl)\<br />
$(filter.php)\<br />
$(filter.pov)\<br />
$(filter.powershell)\<br />
$(filter.prg)\<br />
$(filter.properties)\<br />
$(filter.ps)\<br />
$(filter.python)\<br />
$(filter.r)\<br />
$(filter.ruby)\<br />
$(filter.sql)\<br />
$(filter.specman)\<br />
$(filter.tcl)\<br />
$(filter.tex)\<br />
$(filter.text)\<br />
$(filter.vb)\<br />
$(filter.web)\<br />
$(filter.yaml)\<br />
$(filter.verilog)\<br />
$(filter.vhdl)<br />
<br />
# Give symbolic names to the set of fonts used in the standard styles.<br />
if PLAT_WIN<br />
font.base=font:Verdana,size:10<br />
font.small=font:Verdana,size:8<br />
font.comment=font:Comic Sans MS,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:Times New Roman,size:11<br />
font.text.comment=font:Verdana,size:9<br />
font.embedded.base=font:Verdana,size:9<br />
font.embedded.comment=font:Comic Sans MS,size:8<br />
font.monospace=font:Courier New,size:10<br />
font.vbs=font:Lucida Sans Unicode,size:10<br />
if PLAT_GTK<br />
font.base=font:!Bitstream Vera Sans,size:9<br />
font.small=font:!Bitstream Vera Sans,size:8<br />
font.comment=font:!Bitstream Vera Serif,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:!Bitstream Charter,size:10<br />
font.text.comment=font:!Serif,size:9<br />
font.embedded.base=font:!Serif,size:9<br />
font.embedded.comment=font:!Serif,size:9<br />
font.monospace=font:!Bitstream Vera Sans Mono,size:9<br />
font.vbs=font:!Bitstream Vera Sans Mono,size:9<br />
font.js=$(font.comment)<br />
<br />
# Old GTK+ font settings are faster but not antialiased<br />
#~ font.base=font:lucidatypewriter,size:12<br />
#~ font.small=font:lucidatypewriter,size:10<br />
#~ font.comment=font:new century schoolbook,size:12<br />
#~ font.code.comment.box=$(font.comment)<br />
#~ font.code.comment.line=$(font.comment)<br />
#~ font.code.comment.doc=$(font.comment)<br />
#~ font.text=font:times,size:14<br />
#~ font.text.comment=font:lucidatypewriter,size:10<br />
#~ font.embedded.base=font:lucidatypewriter,size:12<br />
#~ font.embedded.comment=font:lucidatypewriter,size:12<br />
#~ font.monospace=font:courier,size:12<br />
#~ font.vbs=font:new century schoolbook,size:12<br />
<br />
# Give symbolic names to the set of colours used in the standard styles.<br />
colour.code.comment.box=fore:#007F00<br />
colour.code.comment.line=fore:#007F00<br />
colour.code.comment.doc=fore:#3F703F<br />
colour.code.comment.nested=fore:#A0C0A0<br />
colour.text.comment=fore:#0000FF,back:#D0F0D0<br />
colour.other.comment=fore:#007F00<br />
colour.embedded.comment=back:#E0EEFF<br />
colour.embedded.js=back:#F0F0FF<br />
colour.notused=back:#FF0000<br />
<br />
colour.number=fore:#007F7F<br />
colour.keyword=fore:#00007F<br />
colour.string=fore:#7F007F<br />
colour.char=fore:#7F007F<br />
colour.operator=fore:#000000<br />
colour.preproc=fore:#7F7F00<br />
colour.error=fore:#FFFF00,back:#FF0000<br />
<br />
# Global default styles for all languages<br />
# Default<br />
style.*.32=$(font.base)<br />
# Line number<br />
style.*.33=back:#C0C0C0,$(font.base)<br />
# Brace highlight<br />
style.*.34=fore:#0000FF,bold<br />
# Brace incomplete highlight<br />
style.*.35=fore:#FF0000,bold<br />
# Control characters<br />
style.*.36=<br />
# Indentation guides<br />
style.*.37=fore:#C0C0C0,back:#808080<br />
<br />
# Printing - only works on Windows<br />
if PLAT_WIN<br />
#print.colour.mode=1<br />
print.magnification=-1<br />
# Setup: left, right, top, bottom margins, in local units:<br />
# hundredths of millimeters or thousandths of inches<br />
print.margins=1500,1000,1000,1500<br />
# Header/footer:<br />
# && = &; &p = current page<br />
# &f = file name; &F = full path<br />
# &d = file date; &D = current date<br />
# &t = file time; &T = full time<br />
print.header.format=$(FileNameExt) — Printed on $(CurrentDate), $(CurrentTime) — Page $(CurrentPage)<br />
print.footer.format=$(FilePath) — File date: $(FileDate) — File time: $(FileTime)<br />
# Header/footer style<br />
print.header.style=font:Arial,size:12,bold<br />
print.footer.style=font:Arial Narrow,size:10,italics<br />
<br />
# Warnings - only works on Windows and needs to be pointed at files on machine<br />
#if PLAT_WIN<br />
# warning.findwrapped=100,E:\Windows\Media\SFX\Boing.wav<br />
# warning.notfound=0,Effect.wav<br />
# warning.wrongfile=0,Glass.wav<br />
# warning.executeok=0,Fanfare.wav<br />
# warning.executeko=100,GlassBreak.wav<br />
# warning.nootherbookmark=100,Boing2.wav<br />
<br />
# Define the Lexer menu,<br />
# Each item contains three parts: menu string | file extension | key<br />
# The only keys allowed currently are based on F-keys and alphabetic keys and look like<br />
# [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D.<br />
# A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+.<br />
menu.language=\<br />
#FreeBasic|bas||\<br />
Text|txt|Shift+F11|\<br />
Ada|ads||\<br />
Apache Confi&g|conf||\<br />
Assembler|asm||\<br />
#ASN.1|asn1||\<br />
#Avenue|ave||\<br />
#Baan|bc||\<br />
&Batch|bat||\<br />
#Bullant|ant||\<br />
&C / C++|c||\<br />
#CMake|cmake||\<br />
C&#|cs||\<br />
#Csound|orc||\<br />
CSS|css||\<br />
D|d||\<br />
&Difference|diff||\<br />
#&Eiffel|e||\<br />
#Erlang|erl||\<br />
&Errorlist|err||\<br />
#FlagShip|prg||\<br />
#Forth|forth||\<br />
&Fortran|f90||\<br />
#Gap|g||\<br />
H&ypertext|html|F12|\<br />
#&InnoSetup|iss||\<br />
&Java|java||\<br />
Java&Script|js||\<br />
#&Kix|kix||\<br />
TeX|tex||\<br />
Lisp|lisp||\<br />
#Lot|lot||\<br />
#Lout|lt||\<br />
&LSL|lsl|Ctrl+F12|\<br />
Lu&a|lua||\<br />
Matlab|m.matlab||\<br />
&Makefile|mak|Ctrl+Shift+F11|\<br />
#MetaPost|mp||\<br />
#MMIXAL|mms||\<br />
#&nnCron crontab|tab||\<br />
#NSIS|nsis||\<br />
#Objective Caml|ml||\<br />
#Octave|m.octave||\<br />
#Opal|impl||\<br />
Pascal|pas||\<br />
Pe&rl|pl||\<br />
P&HP|php||\<br />
#P&LSQL|spec||\<br />
#P&ostScript|ps||\<br />
#P&OV-Ray SDL|pov||\<br />
#PowerShell|ps1||\<br />
#PowerPro|powerpro||\<br />
&Properties|properties||\<br />
Pytho&n|py||\<br />
#R|R||\<br />
#Reso&urce|rc||\<br />
Ruby|rb||\<br />
Shell|sh||\<br />
S&QL|sql||\<br />
#Specman|e||\<br />
&TCL|tcl||\<br />
&VB|vb||\<br />
VBScr&ipt|vbs||\<br />
#Verilog|v||\<br />
#VHDL|vhd||\<br />
&XML|xml|Shift+F12|\<br />
YAML|yaml||<br />
<br />
# User defined key commands<br />
user.shortcuts=\<br />
Ctrl+Shift+V|IDM_PASTEANDDOWN|\<br />
Ctrl+PageUp|IDM_PREVFILE|\<br />
Ctrl+PageDown|IDM_NEXTFILE|<br />
<br />
#KeypadPlus|IDM_EXPAND|\<br />
#KeypadMinus|IDM_BLOCK_COMMENT|<br />
<br />
#user.context.menu=\<br />
#||\<br />
#Next File|IDM_NEXTFILE|\<br />
#Prev File|IDM_PREVFILE|<br />
<br />
# Import all the language specific properties files<br />
#import abaqus<br />
import ada<br />
import asm<br />
#import asn1<br />
#import au3<br />
import ave<br />
import baan<br />
#import freebasic<br />
#import blitzbasic<br />
#import bullant<br />
import caml<br />
import conf<br />
import cpp<br />
#import cmake<br />
import d<br />
#import csound<br />
import css<br />
import eiffel<br />
import erlang<br />
import escript<br />
import esl<br />
#import flagship<br />
#import forth<br />
import fortran<br />
#import gap<br />
import html<br />
#import inno<br />
#import kix<br />
import lisp<br />
import lot<br />
#import lout<br />
import lsl<br />
import lua<br />
import matlab<br />
import metapost<br />
import mmixal<br />
#import nimrod<br />
#import nncrontab<br />
#import nsis<br />
#import opal<br />
import others<br />
import pascal<br />
import perl<br />
import pov<br />
#import powerpro<br />
#import powershell<br />
import ps<br />
#import purebasic<br />
import python<br />
#import r<br />
#import rebol<br />
import ruby<br />
#import scriptol<br />
#import smalltalk<br />
#import spice<br />
import sql<br />
#import specman<br />
import tcl<br />
import tex<br />
import vb<br />
import yaml<br />
#import verilog<br />
#import vhdl<br />
</pre></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/SciTEGlobal.properties&diff=451172User:Jesse Barnett/SciTEGlobal.properties2009-08-06T23:59:07Z<p>Jesse Barnett: </p>
<hr />
<div>Open SciTEGlobal.properties using SciTE. Edit/Select All and delete, then paste the following into the now empty document and save.<br />
<br />
<php-file># Global initialisation file for SciTE Version 1.79<br />
# Custom settings for Jesse Barnett 8/02/09<br />
# For Linux, place in $prefix/share/scite<br />
# For Windows, place in same directory as SciTE.EXE (or Sc1.EXE)<br />
# Documentation at http://www.scintilla.org/SciTEDoc.html<br />
<br />
# Globals<br />
<br />
# Window sizes and visibility<br />
if PLAT_WIN<br />
position.left=0<br />
position.top=0<br />
if PLAT_GTK<br />
position.left=5<br />
position.top=22<br />
position.width=-1<br />
position.height=-1<br />
#position.maximize=1<br />
#position.tile=1<br />
#full.screen.hides.menu=1<br />
minimize.to.tray=1<br />
split.vertical=0<br />
#output.horizontal.size=200<br />
output.vertical.size=120<br />
output.initial.hide=1<br />
#horizontal.scrollbar=0<br />
#horizontal.scroll.width=10000<br />
#horizontal.scroll.width.tracking=0<br />
#output.horizontal.scrollbar=0<br />
#output.horizontal.scroll.width=10000<br />
#output.horizontal.scroll.width.tracking=0<br />
#output.scroll=0<br />
#error.select.line=1<br />
#end.at.last.line=0<br />
tabbar.visible=1<br />
#tabbar.hide.one=1<br />
#tabbar.multiline=1<br />
toolbar.visible=1<br />
#toolbar.detachable=1<br />
#toolbar.usestockicons=1<br />
#menubar.detachable=1<br />
#undo.redo.lazy=1<br />
#statusbar.visible=1<br />
#fileselector.width=800<br />
#fileselector.height=600<br />
#fileselector.show.hidden=1<br />
#magnification=-1<br />
#output.magnification=-1<br />
<br />
# Sizes and visibility in edit pane<br />
line.margin.visible=1<br />
line.margin.width=3+<br />
margin.width=16<br />
#fold.margin.width=16<br />
#fold.margin.colour=#FF0000<br />
#fold.margin.highlight.colour=#0000FF<br />
#blank.margin.left=4<br />
#blank.margin.right=4<br />
buffered.draw=1<br />
#two.phase.draw=0<br />
use.palette=0<br />
<br />
# Element styles<br />
#view.eol=1<br />
#control.char.symbol=.<br />
caret.period=500<br />
view.whitespace=0<br />
view.indentation.whitespace=1<br />
view.indentation.guides=0<br />
view.indentation.examine=3<br />
highlight.indentation.guides=0<br />
#caret.fore=#FF0000<br />
#caret.width=2<br />
#caret.line.back=#FFFED8<br />
#caret.line.back.alpha=63<br />
edge.column=200<br />
edge.mode=0<br />
edge.colour=#C0DCC0<br />
braces.check=1<br />
braces.sloppy=1<br />
#selection.fore=#006000<br />
# DADADA used as background because it yields standard silver C0C0C0<br />
# on low colour displays and a reasonable light grey on higher bit depths<br />
if PLAT_WINNT<br />
selection.alpha=80<br />
selection.back=#00FFFF<br />
if PLAT_WIN95<br />
selection.back=#DADADA<br />
if PLAT_GTK<br />
selection.alpha=30<br />
selection.back=#000000<br />
#whitespace.fore=#FF0000<br />
#whitespace.back=#FFF0F0<br />
#error.marker.fore=#0000A0<br />
#error.marker.back=#DADAFF<br />
#bookmark.fore=#808000<br />
#bookmark.back=#FFFFA0<br />
#bookmark.alpha=<br />
#find.mark=#0000FF<br />
<br />
# Scripting<br />
#ext.lua.startup.script=<br />
#ext.lua.auto.reload=1<br />
#ext.lua.reset=1<br />
<br />
# Checking<br />
are.you.sure=1<br />
#are.you.sure.for.build=1<br />
#save.all.for.build=1<br />
#quit.on.close.last=1<br />
load.on.activate=1<br />
#save.on.deactivate=1<br />
#are.you.sure.on.reload=1<br />
reload.preserves.undo=1<br />
check.if.already.open=1<br />
default.file.ext=.lsl<br />
#source.default.extensions=.h|.cxx|.bat<br />
title.full.path=1<br />
#title.show.buffers=1<br />
save.recent=1<br />
save.session=1<br />
session.bookmarks=1<br />
#session.folds=1<br />
#save.position=1<br />
open.dialog.in.file.directory=1<br />
strip.trailing.spaces=1<br />
#ensure.final.line.end=1<br />
#ensure.consistent.line.ends=1<br />
#save.deletes.first=1<br />
buffers=20<br />
#buffers.zorder.switching=1<br />
#api.*.cxx=d:\api\w.api<br />
#win95.death.delay=1000<br />
#locale.properties=locale.de.properties<br />
#translation.missing=***<br />
#read.only=1<br />
#max.file.size=1<br />
<br />
# Indentation<br />
tabsize=8<br />
indent.size=8<br />
use.tabs=1<br />
indent.auto=1<br />
indent.automatic=1<br />
indent.opening=0<br />
indent.closing=0<br />
#tab.indents=0<br />
#backspace.unindents=0<br />
<br />
# Wrapping of long lines<br />
wrap=1<br />
#wrap.style=2<br />
#cache.layout=3<br />
output.wrap=1<br />
#output.cache.layout=3<br />
#wrap.visual.flags=3<br />
#wrap.visual.flags.location=3<br />
#wrap.indent.mode=1<br />
#wrap.visual.startindent=4<br />
<br />
# Folding<br />
# enable folding, and show lines below when collapsed.<br />
fold=1<br />
fold.compact=1<br />
fold.flags=16<br />
fold.symbols=1<br />
#fold.on.open=1<br />
fold.comment=1<br />
fold.preprocessor=1<br />
<br />
# Find and Replace<br />
# Internal search always available with recursive capability so use in preference to external tool<br />
find.command=<br />
# findstr is available on recent versions of Windows including 2000<br />
#if PLAT_WIN<br />
# find.command=findstr /n /s $(find.what) $(find.files)<br />
#find.input=$(find.what)<br />
#if PLAT_GTK<br />
# find.command=grep --line-number "$(find.what)" $(find.files)<br />
find.files=*.c *.cxx *.h *.esl *.lsl<br />
#find.in.files.close.on.find=0<br />
#find.in.dot=1<br />
#find.in.binary=1<br />
#find.replace.matchcase=1<br />
#find.replace.escapes=1<br />
#find.replace.regexp=1<br />
#find.replace.regexp.posix=1<br />
#find.replace.wrap=0<br />
#find.replacewith.focus=0<br />
#find.replace.advanced=1<br />
<br />
# Behaviour<br />
#eol.mode=LF<br />
eol.auto=1<br />
clear.before.execute=1<br />
#vc.home.key=1<br />
#wrap.aware.home.end.keys=1<br />
#autocompleteword.automatic=1<br />
#autocomplete.choose.single=1<br />
caret.policy.xslop=1<br />
caret.policy.width=20<br />
caret.policy.xstrict=0<br />
caret.policy.xeven=0<br />
caret.policy.xjumps=0<br />
caret.policy.yslop=1<br />
caret.policy.lines=1<br />
caret.policy.ystrict=1<br />
caret.policy.yeven=1<br />
caret.policy.yjumps=0<br />
#visible.policy.strict=1<br />
#visible.policy.slop=1<br />
#visible.policy.lines=4<br />
time.commands=1<br />
#caret.sticky=1<br />
#properties.directory.enable=1<br />
<br />
# Status Bar<br />
statusbar.number=4<br />
statusbar.text.1=\<br />
li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)<br />
statusbar.text.2=\<br />
$(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelLength) chars.<br />
statusbar.text.3=\<br />
Now is: Date=$(CurrentDate) Time=$(CurrentTime)<br />
statusbar.text.4=\<br />
$(FileNameExt) : $(FileDate) - $(FileTime) | $(FileAttr)<br />
<br />
if PLAT_WIN<br />
command.scite.help="file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
command.scite.help.subsystem=2<br />
if PLAT_GTK<br />
command.print.*=a2ps "$(FileNameExt)"<br />
command.scite.help=netscape "file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
<br />
# Internationalisation<br />
# Japanese input code page 932 and ShiftJIS character set 128<br />
#code.page=932<br />
#character.set=128<br />
# Unicode<br />
#code.page=65001<br />
code.page=0<br />
#character.set=204<br />
# Required for Unicode to work on GTK+:<br />
#LC_CTYPE=en_US.UTF-8<br />
if PLAT_GTK<br />
output.code.page=65001<br />
<br />
# Export<br />
#export.keep.ext=1<br />
export.html.wysiwyg=1<br />
#export.html.tabs=1<br />
#export.html.folding=1<br />
export.html.styleused=1<br />
#export.html.title.fullpath=1<br />
#export.rtf.tabs=1<br />
#export.rtf.font.face=Arial<br />
#export.rtf.font.size=9<br />
#export.rtf.tabsize=8<br />
#export.rtf.wysiwyg=0<br />
#export.tex.title.fullpath=1<br />
# Magnification (added to default screen font size)<br />
export.pdf.magnification=0<br />
# Font: Courier, Helvetica or Times (Courier line-wraps)<br />
export.pdf.font=Helvetica<br />
# Page size (in points): width, height<br />
# E.g. Letter 612,792; A4 595,842; maximum 14400,14400<br />
export.pdf.pagesize=595,842<br />
# Margins (in points): left, right, top, bottom<br />
export.pdf.margins=72,72,72,72<br />
export.xml.collapse.spaces=1<br />
export.xml.collapse.lines=1<br />
<br />
# Define values for use in the imported properties files<br />
chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
chars.numeric=0123456789<br />
chars.accented=ŠšŒœŸÿÀàÁáÂâÃãÄäÅåÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö<br />
# This is a better set for Russian:<br />
#chars.accented=ÀàÁáÂâÃãÄäÅ娸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÚúÛûÜüÝýÞþßÿ<br />
<br />
# The open.filter setting is only used on Windows where the file selector has a menu of filters to apply<br />
# to the types of files seen when opening.<br />
# There is a limit (possibly 256 characters) to the length of a filter,<br />
# so not all source extensions can be in this setting.<br />
source.files=*.asm;*.c;*.cc;*.cpp;*.cxx;*.cs;*.h;*.hh;*.hxx;*.hpp;\<br />
*.idl;*.odl;*.rc;*.rc2;*.dlg;*.def;*.esl;*.lsl;\<br />
*.vb;*.vbs;*.bas;*.frm;*.cls;*.ctl;\<br />
*.java;*.js;*.py;*.pl;*.rb;*.cgi;*.lua;*.conf;\<br />
make*;*.mak;\<br />
*.properties;*.html;*.xml;*.iface;*.bat;*.e<br />
<br />
my.files=*.esl;*.lsl<br />
<br />
if PLAT_WIN<br />
all.files=All Files (*.*)|*.*|<br />
if PLAT_GTK<br />
all.files=All Files (*)|*|Hidden Files (.*)|.*|<br />
open.filter=\<br />
LSL/ESL|$(my.files)|\<br />
All Source|$(source.files)|\<br />
$(all.files)\<br />
$(filter.ada)\<br />
$(filter.conf)\<br />
$(filter.asm)\<br />
$(filter.asn1)\<br />
$(filter.ave)\<br />
$(filter.baan)\<br />
$(filter.bash)\<br />
$(filter.caml)\<br />
$(filter.cmake)\<br />
$(filter.cpp)\<br />
#$(filter.ch)\<br />
$(filter.css)\<br />
$(filter.d)\<br />
$(filter.eiffel)\<br />
$(filter.erlang)\<br />
$(filter.esl)\<br />
$(filter.fortran)\<br />
$(filter.gap)\<br />
$(filter.idl)\<br />
$(filter.inno)\<br />
$(filter.java)\<br />
$(filter.js)\<br />
$(filter.kix)\<br />
$(filter.lout)\<br />
$(filter.lsl)\<br />
$(filter.lua)\<br />
$(filter.matlab)\<br />
$(filter.metapost)\<br />
$(filter.mmixal)\<br />
$(filter.nncrontab)\<br />
$(filter.nsis)\<br />
$(filter.opal)\<br />
$(filter.pascal)\<br />
$(filter.perl)\<br />
$(filter.php)\<br />
$(filter.pov)\<br />
$(filter.powershell)\<br />
$(filter.prg)\<br />
$(filter.properties)\<br />
$(filter.ps)\<br />
$(filter.python)\<br />
$(filter.r)\<br />
$(filter.ruby)\<br />
$(filter.sql)\<br />
$(filter.specman)\<br />
$(filter.tcl)\<br />
$(filter.tex)\<br />
$(filter.text)\<br />
$(filter.vb)\<br />
$(filter.web)\<br />
$(filter.yaml)\<br />
$(filter.verilog)\<br />
$(filter.vhdl)<br />
<br />
# Give symbolic names to the set of fonts used in the standard styles.<br />
if PLAT_WIN<br />
font.base=font:Verdana,size:10<br />
font.small=font:Verdana,size:8<br />
font.comment=font:Comic Sans MS,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:Times New Roman,size:11<br />
font.text.comment=font:Verdana,size:9<br />
font.embedded.base=font:Verdana,size:9<br />
font.embedded.comment=font:Comic Sans MS,size:8<br />
font.monospace=font:Courier New,size:10<br />
font.vbs=font:Lucida Sans Unicode,size:10<br />
if PLAT_GTK<br />
font.base=font:!Bitstream Vera Sans,size:9<br />
font.small=font:!Bitstream Vera Sans,size:8<br />
font.comment=font:!Bitstream Vera Serif,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:!Bitstream Charter,size:10<br />
font.text.comment=font:!Serif,size:9<br />
font.embedded.base=font:!Serif,size:9<br />
font.embedded.comment=font:!Serif,size:9<br />
font.monospace=font:!Bitstream Vera Sans Mono,size:9<br />
font.vbs=font:!Bitstream Vera Sans Mono,size:9<br />
font.js=$(font.comment)<br />
<br />
# Old GTK+ font settings are faster but not antialiased<br />
#~ font.base=font:lucidatypewriter,size:12<br />
#~ font.small=font:lucidatypewriter,size:10<br />
#~ font.comment=font:new century schoolbook,size:12<br />
#~ font.code.comment.box=$(font.comment)<br />
#~ font.code.comment.line=$(font.comment)<br />
#~ font.code.comment.doc=$(font.comment)<br />
#~ font.text=font:times,size:14<br />
#~ font.text.comment=font:lucidatypewriter,size:10<br />
#~ font.embedded.base=font:lucidatypewriter,size:12<br />
#~ font.embedded.comment=font:lucidatypewriter,size:12<br />
#~ font.monospace=font:courier,size:12<br />
#~ font.vbs=font:new century schoolbook,size:12<br />
<br />
# Give symbolic names to the set of colours used in the standard styles.<br />
colour.code.comment.box=fore:#007F00<br />
colour.code.comment.line=fore:#007F00<br />
colour.code.comment.doc=fore:#3F703F<br />
colour.code.comment.nested=fore:#A0C0A0<br />
colour.text.comment=fore:#0000FF,back:#D0F0D0<br />
colour.other.comment=fore:#007F00<br />
colour.embedded.comment=back:#E0EEFF<br />
colour.embedded.js=back:#F0F0FF<br />
colour.notused=back:#FF0000<br />
<br />
colour.number=fore:#007F7F<br />
colour.keyword=fore:#00007F<br />
colour.string=fore:#7F007F<br />
colour.char=fore:#7F007F<br />
colour.operator=fore:#000000<br />
colour.preproc=fore:#7F7F00<br />
colour.error=fore:#FFFF00,back:#FF0000<br />
<br />
# Global default styles for all languages<br />
# Default<br />
style.*.32=$(font.base)<br />
# Line number<br />
style.*.33=back:#C0C0C0,$(font.base)<br />
# Brace highlight<br />
style.*.34=fore:#0000FF,bold<br />
# Brace incomplete highlight<br />
style.*.35=fore:#FF0000,bold<br />
# Control characters<br />
style.*.36=<br />
# Indentation guides<br />
style.*.37=fore:#C0C0C0,back:#808080<br />
<br />
# Printing - only works on Windows<br />
if PLAT_WIN<br />
#print.colour.mode=1<br />
print.magnification=-1<br />
# Setup: left, right, top, bottom margins, in local units:<br />
# hundredths of millimeters or thousandths of inches<br />
print.margins=1500,1000,1000,1500<br />
# Header/footer:<br />
# && = &; &p = current page<br />
# &f = file name; &F = full path<br />
# &d = file date; &D = current date<br />
# &t = file time; &T = full time<br />
print.header.format=$(FileNameExt) — Printed on $(CurrentDate), $(CurrentTime) — Page $(CurrentPage)<br />
print.footer.format=$(FilePath) — File date: $(FileDate) — File time: $(FileTime)<br />
# Header/footer style<br />
print.header.style=font:Arial,size:12,bold<br />
print.footer.style=font:Arial Narrow,size:10,italics<br />
<br />
# Warnings - only works on Windows and needs to be pointed at files on machine<br />
#if PLAT_WIN<br />
# warning.findwrapped=100,E:\Windows\Media\SFX\Boing.wav<br />
# warning.notfound=0,Effect.wav<br />
# warning.wrongfile=0,Glass.wav<br />
# warning.executeok=0,Fanfare.wav<br />
# warning.executeko=100,GlassBreak.wav<br />
# warning.nootherbookmark=100,Boing2.wav<br />
<br />
# Define the Lexer menu,<br />
# Each item contains three parts: menu string | file extension | key<br />
# The only keys allowed currently are based on F-keys and alphabetic keys and look like<br />
# [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D.<br />
# A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+.<br />
menu.language=\<br />
#FreeBasic|bas||\<br />
Text|txt|Shift+F11|\<br />
Ada|ads||\<br />
Apache Confi&g|conf||\<br />
Assembler|asm||\<br />
#ASN.1|asn1||\<br />
#Avenue|ave||\<br />
#Baan|bc||\<br />
&Batch|bat||\<br />
#Bullant|ant||\<br />
&C / C++|c||\<br />
#CMake|cmake||\<br />
C&#|cs||\<br />
#Csound|orc||\<br />
CSS|css||\<br />
D|d||\<br />
&Difference|diff||\<br />
#&Eiffel|e||\<br />
#Erlang|erl||\<br />
&Errorlist|err||\<br />
#FlagShip|prg||\<br />
#Forth|forth||\<br />
&Fortran|f90||\<br />
#Gap|g||\<br />
H&ypertext|html|F12|\<br />
#&InnoSetup|iss||\<br />
&Java|java||\<br />
Java&Script|js||\<br />
#&Kix|kix||\<br />
TeX|tex||\<br />
Lisp|lisp||\<br />
#Lot|lot||\<br />
#Lout|lt||\<br />
&LSL|lsl|Ctrl+F12|\<br />
Lu&a|lua||\<br />
Matlab|m.matlab||\<br />
&Makefile|mak|Ctrl+Shift+F11|\<br />
#MetaPost|mp||\<br />
#MMIXAL|mms||\<br />
#&nnCron crontab|tab||\<br />
#NSIS|nsis||\<br />
#Objective Caml|ml||\<br />
#Octave|m.octave||\<br />
#Opal|impl||\<br />
Pascal|pas||\<br />
Pe&rl|pl||\<br />
P&HP|php||\<br />
#P&LSQL|spec||\<br />
#P&ostScript|ps||\<br />
#P&OV-Ray SDL|pov||\<br />
#PowerShell|ps1||\<br />
#PowerPro|powerpro||\<br />
&Properties|properties||\<br />
Pytho&n|py||\<br />
#R|R||\<br />
#Reso&urce|rc||\<br />
Ruby|rb||\<br />
Shell|sh||\<br />
S&QL|sql||\<br />
#Specman|e||\<br />
&TCL|tcl||\<br />
&VB|vb||\<br />
VBScr&ipt|vbs||\<br />
#Verilog|v||\<br />
#VHDL|vhd||\<br />
&XML|xml|Shift+F12|\<br />
YAML|yaml||<br />
<br />
# User defined key commands<br />
user.shortcuts=\<br />
Ctrl+Shift+V|IDM_PASTEANDDOWN|\<br />
Ctrl+PageUp|IDM_PREVFILE|\<br />
Ctrl+PageDown|IDM_NEXTFILE|<br />
<br />
#KeypadPlus|IDM_EXPAND|\<br />
#KeypadMinus|IDM_BLOCK_COMMENT|<br />
<br />
#user.context.menu=\<br />
#||\<br />
#Next File|IDM_NEXTFILE|\<br />
#Prev File|IDM_PREVFILE|<br />
<br />
# Import all the language specific properties files<br />
#import abaqus<br />
import ada<br />
import asm<br />
#import asn1<br />
#import au3<br />
import ave<br />
import baan<br />
#import freebasic<br />
#import blitzbasic<br />
#import bullant<br />
import caml<br />
import conf<br />
import cpp<br />
#import cmake<br />
import d<br />
#import csound<br />
import css<br />
import eiffel<br />
import erlang<br />
import escript<br />
import esl<br />
#import flagship<br />
#import forth<br />
import fortran<br />
#import gap<br />
import html<br />
#import inno<br />
#import kix<br />
import lisp<br />
import lot<br />
#import lout<br />
import lsl<br />
import lua<br />
import matlab<br />
import metapost<br />
import mmixal<br />
#import nimrod<br />
#import nncrontab<br />
#import nsis<br />
#import opal<br />
import others<br />
import pascal<br />
import perl<br />
import pov<br />
#import powerpro<br />
#import powershell<br />
import ps<br />
#import purebasic<br />
import python<br />
#import r<br />
#import rebol<br />
import ruby<br />
#import scriptol<br />
#import smalltalk<br />
#import spice<br />
import sql<br />
#import specman<br />
import tcl<br />
import tex<br />
import vb<br />
import yaml<br />
#import verilog<br />
#import vhdl<br />
</php-file></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=451162User:Jesse Barnett/Scite2009-08-06T23:55:29Z<p>Jesse Barnett: </p>
<hr />
<div>*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
(Page is under construction)<br />
(Not too terribly happy with the layout right now. Going to redo it to bring all of the intro, including pic, up top. Then transition over to a step by step, download this, this, this, this, that and put this here and that there etc.)<br />
(Actually since I started this web page it got me interested in some of the newer posibilities of SciTE. It has changed a great deal since Ezhar brought us SciTE-EZ. ALL of this information here is going to change dramtically in the next couple of weeks)<br />
<br />
Stay Tuned!!!!!<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get SciTE version 1.79 here: [[http://www.scintilla.org/SciTE.html]]<br />
<br />
But once you have SciTE, you still have some work to do to get it to do some of the many tricks it can do. A good place to start would be the files listed below:<br />
<br />
*[[User:Jesse_Barnett/lsl.api|lsl.api]]<br />
<br />
*[[User:Jesse_Barnett/lsl.properties|lsl.properties]]<br />
<br />
*[[User:Jesse_Barnett/lsl_abbrev.properties|lsl_abbrev.properties]]<br />
<br />
*[[User:Jesse_Barnett/SciTEGlobal.properties|SciTEGlobal.properties]] update 8/06/09<br />
<br />
*[[User:Jesse_Barnett/SciTEUser.properties|SciTEUser.properties]]<br />
<br />
You could take a look over at Strife's page with his SciTE links also. You can pickup stripper, indent, clipboard and lslint there and MSVC Express. [[https://wiki.secondlife.com/wiki/User:Strife_Onizuka]]<br />
<br />
I have mine linked to LSLEditor. See the note in my lsl.properties file for placing it(The C compiler does not like a path with spaces in it, as in C:\Program Files\LSLEditor)<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/SciTEGlobal.properties&diff=451152User:Jesse Barnett/SciTEGlobal.properties2009-08-06T23:43:03Z<p>Jesse Barnett: </p>
<hr />
<div>Open SciTEGlobal.properties using SciTE. Edit/Select All and delete, then paste the following into the now empty document and save.<br />
<br />
<lsl># Global initialisation file for SciTE Version 1.79<br />
# Custom settings for Jesse Barnett 8/02/09<br />
# For Linux, place in $prefix/share/scite<br />
# For Windows, place in same directory as SciTE.EXE (or Sc1.EXE)<br />
# Documentation at http://www.scintilla.org/SciTEDoc.html<br />
<br />
# Globals<br />
<br />
# Window sizes and visibility<br />
if PLAT_WIN<br />
position.left=0<br />
position.top=0<br />
if PLAT_GTK<br />
position.left=5<br />
position.top=22<br />
position.width=-1<br />
position.height=-1<br />
#position.maximize=1<br />
#position.tile=1<br />
#full.screen.hides.menu=1<br />
minimize.to.tray=1<br />
split.vertical=0<br />
#output.horizontal.size=200<br />
output.vertical.size=120<br />
output.initial.hide=1<br />
#horizontal.scrollbar=0<br />
#horizontal.scroll.width=10000<br />
#horizontal.scroll.width.tracking=0<br />
#output.horizontal.scrollbar=0<br />
#output.horizontal.scroll.width=10000<br />
#output.horizontal.scroll.width.tracking=0<br />
#output.scroll=0<br />
#error.select.line=1<br />
#end.at.last.line=0<br />
tabbar.visible=1<br />
#tabbar.hide.one=1<br />
#tabbar.multiline=1<br />
toolbar.visible=1<br />
#toolbar.detachable=1<br />
#toolbar.usestockicons=1<br />
#menubar.detachable=1<br />
#undo.redo.lazy=1<br />
#statusbar.visible=1<br />
#fileselector.width=800<br />
#fileselector.height=600<br />
#fileselector.show.hidden=1<br />
#magnification=-1<br />
#output.magnification=-1<br />
<br />
# Sizes and visibility in edit pane<br />
line.margin.visible=1<br />
line.margin.width=3+<br />
margin.width=16<br />
#fold.margin.width=16<br />
#fold.margin.colour=#FF0000<br />
#fold.margin.highlight.colour=#0000FF<br />
#blank.margin.left=4<br />
#blank.margin.right=4<br />
buffered.draw=1<br />
#two.phase.draw=0<br />
use.palette=0<br />
<br />
# Element styles<br />
#view.eol=1<br />
#control.char.symbol=.<br />
caret.period=500<br />
view.whitespace=0<br />
view.indentation.whitespace=1<br />
view.indentation.guides=0<br />
view.indentation.examine=3<br />
highlight.indentation.guides=0<br />
#caret.fore=#FF0000<br />
#caret.width=2<br />
#caret.line.back=#FFFED8<br />
#caret.line.back.alpha=63<br />
edge.column=200<br />
edge.mode=0<br />
edge.colour=#C0DCC0<br />
braces.check=1<br />
braces.sloppy=1<br />
#selection.fore=#006000<br />
# DADADA used as background because it yields standard silver C0C0C0<br />
# on low colour displays and a reasonable light grey on higher bit depths<br />
if PLAT_WINNT<br />
selection.alpha=80<br />
selection.back=#00FFFF<br />
if PLAT_WIN95<br />
selection.back=#DADADA<br />
if PLAT_GTK<br />
selection.alpha=30<br />
selection.back=#000000<br />
#whitespace.fore=#FF0000<br />
#whitespace.back=#FFF0F0<br />
#error.marker.fore=#0000A0<br />
#error.marker.back=#DADAFF<br />
#bookmark.fore=#808000<br />
#bookmark.back=#FFFFA0<br />
#bookmark.alpha=<br />
#find.mark=#0000FF<br />
<br />
# Scripting<br />
#ext.lua.startup.script=<br />
#ext.lua.auto.reload=1<br />
#ext.lua.reset=1<br />
<br />
# Checking<br />
are.you.sure=1<br />
#are.you.sure.for.build=1<br />
#save.all.for.build=1<br />
#quit.on.close.last=1<br />
load.on.activate=1<br />
#save.on.deactivate=1<br />
#are.you.sure.on.reload=1<br />
reload.preserves.undo=1<br />
check.if.already.open=1<br />
default.file.ext=.lsl<br />
#source.default.extensions=.h|.cxx|.bat<br />
title.full.path=1<br />
#title.show.buffers=1<br />
save.recent=1<br />
save.session=1<br />
session.bookmarks=1<br />
#session.folds=1<br />
#save.position=1<br />
open.dialog.in.file.directory=1<br />
strip.trailing.spaces=1<br />
#ensure.final.line.end=1<br />
#ensure.consistent.line.ends=1<br />
#save.deletes.first=1<br />
buffers=20<br />
#buffers.zorder.switching=1<br />
#api.*.cxx=d:\api\w.api<br />
#win95.death.delay=1000<br />
#locale.properties=locale.de.properties<br />
#translation.missing=***<br />
#read.only=1<br />
#max.file.size=1<br />
<br />
# Indentation<br />
tabsize=8<br />
indent.size=8<br />
use.tabs=1<br />
indent.auto=1<br />
indent.automatic=1<br />
indent.opening=0<br />
indent.closing=0<br />
#tab.indents=0<br />
#backspace.unindents=0<br />
<br />
# Wrapping of long lines<br />
wrap=1<br />
#wrap.style=2<br />
#cache.layout=3<br />
output.wrap=1<br />
#output.cache.layout=3<br />
#wrap.visual.flags=3<br />
#wrap.visual.flags.location=3<br />
#wrap.indent.mode=1<br />
#wrap.visual.startindent=4<br />
<br />
# Folding<br />
# enable folding, and show lines below when collapsed.<br />
fold=1<br />
fold.compact=1<br />
fold.flags=16<br />
fold.symbols=1<br />
#fold.on.open=1<br />
fold.comment=1<br />
fold.preprocessor=1<br />
<br />
# Find and Replace<br />
# Internal search always available with recursive capability so use in preference to external tool<br />
find.command=<br />
# findstr is available on recent versions of Windows including 2000<br />
#if PLAT_WIN<br />
# find.command=findstr /n /s $(find.what) $(find.files)<br />
#find.input=$(find.what)<br />
#if PLAT_GTK<br />
# find.command=grep --line-number "$(find.what)" $(find.files)<br />
find.files=*.c *.cxx *.h *.esl *.lsl<br />
#find.in.files.close.on.find=0<br />
#find.in.dot=1<br />
#find.in.binary=1<br />
#find.replace.matchcase=1<br />
#find.replace.escapes=1<br />
#find.replace.regexp=1<br />
#find.replace.regexp.posix=1<br />
#find.replace.wrap=0<br />
#find.replacewith.focus=0<br />
#find.replace.advanced=1<br />
<br />
# Behaviour<br />
#eol.mode=LF<br />
eol.auto=1<br />
clear.before.execute=1<br />
#vc.home.key=1<br />
#wrap.aware.home.end.keys=1<br />
#autocompleteword.automatic=1<br />
#autocomplete.choose.single=1<br />
caret.policy.xslop=1<br />
caret.policy.width=20<br />
caret.policy.xstrict=0<br />
caret.policy.xeven=0<br />
caret.policy.xjumps=0<br />
caret.policy.yslop=1<br />
caret.policy.lines=1<br />
caret.policy.ystrict=1<br />
caret.policy.yeven=1<br />
caret.policy.yjumps=0<br />
#visible.policy.strict=1<br />
#visible.policy.slop=1<br />
#visible.policy.lines=4<br />
time.commands=1<br />
#caret.sticky=1<br />
#properties.directory.enable=1<br />
<br />
# Status Bar<br />
statusbar.number=4<br />
statusbar.text.1=\<br />
li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)<br />
statusbar.text.2=\<br />
$(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelLength) chars.<br />
statusbar.text.3=\<br />
Now is: Date=$(CurrentDate) Time=$(CurrentTime)<br />
statusbar.text.4=\<br />
$(FileNameExt) : $(FileDate) - $(FileTime) | $(FileAttr)<br />
<br />
if PLAT_WIN<br />
command.scite.help="file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
command.scite.help.subsystem=2<br />
if PLAT_GTK<br />
command.print.*=a2ps "$(FileNameExt)"<br />
command.scite.help=netscape "file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
<br />
# Internationalisation<br />
# Japanese input code page 932 and ShiftJIS character set 128<br />
#code.page=932<br />
#character.set=128<br />
# Unicode<br />
#code.page=65001<br />
code.page=0<br />
#character.set=204<br />
# Required for Unicode to work on GTK+:<br />
#LC_CTYPE=en_US.UTF-8<br />
if PLAT_GTK<br />
output.code.page=65001<br />
<br />
# Export<br />
#export.keep.ext=1<br />
export.html.wysiwyg=1<br />
#export.html.tabs=1<br />
#export.html.folding=1<br />
export.html.styleused=1<br />
#export.html.title.fullpath=1<br />
#export.rtf.tabs=1<br />
#export.rtf.font.face=Arial<br />
#export.rtf.font.size=9<br />
#export.rtf.tabsize=8<br />
#export.rtf.wysiwyg=0<br />
#export.tex.title.fullpath=1<br />
# Magnification (added to default screen font size)<br />
export.pdf.magnification=0<br />
# Font: Courier, Helvetica or Times (Courier line-wraps)<br />
export.pdf.font=Helvetica<br />
# Page size (in points): width, height<br />
# E.g. Letter 612,792; A4 595,842; maximum 14400,14400<br />
export.pdf.pagesize=595,842<br />
# Margins (in points): left, right, top, bottom<br />
export.pdf.margins=72,72,72,72<br />
export.xml.collapse.spaces=1<br />
export.xml.collapse.lines=1<br />
<br />
# Define values for use in the imported properties files<br />
chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
chars.numeric=0123456789<br />
chars.accented=ŠšŒœŸÿÀàÁáÂâÃãÄäÅåÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö<br />
# This is a better set for Russian:<br />
#chars.accented=ÀàÁáÂâÃãÄäÅ娸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÚúÛûÜüÝýÞþßÿ<br />
<br />
# The open.filter setting is only used on Windows where the file selector has a menu of filters to apply<br />
# to the types of files seen when opening.<br />
# There is a limit (possibly 256 characters) to the length of a filter,<br />
# so not all source extensions can be in this setting.<br />
source.files=*.asm;*.c;*.cc;*.cpp;*.cxx;*.cs;*.h;*.hh;*.hxx;*.hpp;\<br />
*.idl;*.odl;*.rc;*.rc2;*.dlg;*.def;*.esl;*.lsl;\<br />
*.vb;*.vbs;*.bas;*.frm;*.cls;*.ctl;\<br />
*.java;*.js;*.py;*.pl;*.rb;*.cgi;*.lua;*.conf;\<br />
make*;*.mak;\<br />
*.properties;*.html;*.xml;*.iface;*.bat;*.e<br />
<br />
my.files=*.esl;*.lsl<br />
<br />
if PLAT_WIN<br />
all.files=All Files (*.*)|*.*|<br />
if PLAT_GTK<br />
all.files=All Files (*)|*|Hidden Files (.*)|.*|<br />
open.filter=\<br />
LSL/ESL|$(my.files)|\<br />
All Source|$(source.files)|\<br />
$(all.files)\<br />
$(filter.ada)\<br />
$(filter.conf)\<br />
$(filter.asm)\<br />
$(filter.asn1)\<br />
$(filter.ave)\<br />
$(filter.baan)\<br />
$(filter.bash)\<br />
$(filter.caml)\<br />
$(filter.cmake)\<br />
$(filter.cpp)\<br />
#$(filter.ch)\<br />
$(filter.css)\<br />
$(filter.d)\<br />
$(filter.eiffel)\<br />
$(filter.erlang)\<br />
$(filter.esl)\<br />
$(filter.fortran)\<br />
$(filter.gap)\<br />
$(filter.idl)\<br />
$(filter.inno)\<br />
$(filter.java)\<br />
$(filter.js)\<br />
$(filter.kix)\<br />
$(filter.lout)\<br />
$(filter.lsl)\<br />
$(filter.lua)\<br />
$(filter.matlab)\<br />
$(filter.metapost)\<br />
$(filter.mmixal)\<br />
$(filter.nncrontab)\<br />
$(filter.nsis)\<br />
$(filter.opal)\<br />
$(filter.pascal)\<br />
$(filter.perl)\<br />
$(filter.php)\<br />
$(filter.pov)\<br />
$(filter.powershell)\<br />
$(filter.prg)\<br />
$(filter.properties)\<br />
$(filter.ps)\<br />
$(filter.python)\<br />
$(filter.r)\<br />
$(filter.ruby)\<br />
$(filter.sql)\<br />
$(filter.specman)\<br />
$(filter.tcl)\<br />
$(filter.tex)\<br />
$(filter.text)\<br />
$(filter.vb)\<br />
$(filter.web)\<br />
$(filter.yaml)\<br />
$(filter.verilog)\<br />
$(filter.vhdl)<br />
<br />
# Give symbolic names to the set of fonts used in the standard styles.<br />
if PLAT_WIN<br />
font.base=font:Verdana,size:10<br />
font.small=font:Verdana,size:8<br />
font.comment=font:Comic Sans MS,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:Times New Roman,size:11<br />
font.text.comment=font:Verdana,size:9<br />
font.embedded.base=font:Verdana,size:9<br />
font.embedded.comment=font:Comic Sans MS,size:8<br />
font.monospace=font:Courier New,size:10<br />
font.vbs=font:Lucida Sans Unicode,size:10<br />
if PLAT_GTK<br />
font.base=font:!Bitstream Vera Sans,size:9<br />
font.small=font:!Bitstream Vera Sans,size:8<br />
font.comment=font:!Bitstream Vera Serif,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:!Bitstream Charter,size:10<br />
font.text.comment=font:!Serif,size:9<br />
font.embedded.base=font:!Serif,size:9<br />
font.embedded.comment=font:!Serif,size:9<br />
font.monospace=font:!Bitstream Vera Sans Mono,size:9<br />
font.vbs=font:!Bitstream Vera Sans Mono,size:9<br />
font.js=$(font.comment)<br />
<br />
# Old GTK+ font settings are faster but not antialiased<br />
#~ font.base=font:lucidatypewriter,size:12<br />
#~ font.small=font:lucidatypewriter,size:10<br />
#~ font.comment=font:new century schoolbook,size:12<br />
#~ font.code.comment.box=$(font.comment)<br />
#~ font.code.comment.line=$(font.comment)<br />
#~ font.code.comment.doc=$(font.comment)<br />
#~ font.text=font:times,size:14<br />
#~ font.text.comment=font:lucidatypewriter,size:10<br />
#~ font.embedded.base=font:lucidatypewriter,size:12<br />
#~ font.embedded.comment=font:lucidatypewriter,size:12<br />
#~ font.monospace=font:courier,size:12<br />
#~ font.vbs=font:new century schoolbook,size:12<br />
<br />
# Give symbolic names to the set of colours used in the standard styles.<br />
colour.code.comment.box=fore:#007F00<br />
colour.code.comment.line=fore:#007F00<br />
colour.code.comment.doc=fore:#3F703F<br />
colour.code.comment.nested=fore:#A0C0A0<br />
colour.text.comment=fore:#0000FF,back:#D0F0D0<br />
colour.other.comment=fore:#007F00<br />
colour.embedded.comment=back:#E0EEFF<br />
colour.embedded.js=back:#F0F0FF<br />
colour.notused=back:#FF0000<br />
<br />
colour.number=fore:#007F7F<br />
colour.keyword=fore:#00007F<br />
colour.string=fore:#7F007F<br />
colour.char=fore:#7F007F<br />
colour.operator=fore:#000000<br />
colour.preproc=fore:#7F7F00<br />
colour.error=fore:#FFFF00,back:#FF0000<br />
<br />
# Global default styles for all languages<br />
# Default<br />
style.*.32=$(font.base)<br />
# Line number<br />
style.*.33=back:#C0C0C0,$(font.base)<br />
# Brace highlight<br />
style.*.34=fore:#0000FF,bold<br />
# Brace incomplete highlight<br />
style.*.35=fore:#FF0000,bold<br />
# Control characters<br />
style.*.36=<br />
# Indentation guides<br />
style.*.37=fore:#C0C0C0,back:#808080<br />
<br />
# Printing - only works on Windows<br />
if PLAT_WIN<br />
#print.colour.mode=1<br />
print.magnification=-1<br />
# Setup: left, right, top, bottom margins, in local units:<br />
# hundredths of millimeters or thousandths of inches<br />
print.margins=1500,1000,1000,1500<br />
# Header/footer:<br />
# && = &; &p = current page<br />
# &f = file name; &F = full path<br />
# &d = file date; &D = current date<br />
# &t = file time; &T = full time<br />
print.header.format=$(FileNameExt) — Printed on $(CurrentDate), $(CurrentTime) — Page $(CurrentPage)<br />
print.footer.format=$(FilePath) — File date: $(FileDate) — File time: $(FileTime)<br />
# Header/footer style<br />
print.header.style=font:Arial,size:12,bold<br />
print.footer.style=font:Arial Narrow,size:10,italics<br />
<br />
# Warnings - only works on Windows and needs to be pointed at files on machine<br />
#if PLAT_WIN<br />
# warning.findwrapped=100,E:\Windows\Media\SFX\Boing.wav<br />
# warning.notfound=0,Effect.wav<br />
# warning.wrongfile=0,Glass.wav<br />
# warning.executeok=0,Fanfare.wav<br />
# warning.executeko=100,GlassBreak.wav<br />
# warning.nootherbookmark=100,Boing2.wav<br />
<br />
# Define the Lexer menu,<br />
# Each item contains three parts: menu string | file extension | key<br />
# The only keys allowed currently are based on F-keys and alphabetic keys and look like<br />
# [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D.<br />
# A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+.<br />
menu.language=\<br />
#FreeBasic|bas||\<br />
Text|txt|Shift+F11|\<br />
Ada|ads||\<br />
Apache Confi&g|conf||\<br />
Assembler|asm||\<br />
#ASN.1|asn1||\<br />
#Avenue|ave||\<br />
#Baan|bc||\<br />
&Batch|bat||\<br />
#Bullant|ant||\<br />
&C / C++|c||\<br />
#CMake|cmake||\<br />
C&#|cs||\<br />
#Csound|orc||\<br />
CSS|css||\<br />
D|d||\<br />
&Difference|diff||\<br />
#&Eiffel|e||\<br />
#Erlang|erl||\<br />
&Errorlist|err||\<br />
#FlagShip|prg||\<br />
#Forth|forth||\<br />
&Fortran|f90||\<br />
#Gap|g||\<br />
H&ypertext|html|F12|\<br />
#&InnoSetup|iss||\<br />
&Java|java||\<br />
Java&Script|js||\<br />
#&Kix|kix||\<br />
TeX|tex||\<br />
Lisp|lisp||\<br />
#Lot|lot||\<br />
#Lout|lt||\<br />
&LSL|lsl|Ctrl+F12|\<br />
Lu&a|lua||\<br />
Matlab|m.matlab||\<br />
&Makefile|mak|Ctrl+Shift+F11|\<br />
#MetaPost|mp||\<br />
#MMIXAL|mms||\<br />
#&nnCron crontab|tab||\<br />
#NSIS|nsis||\<br />
#Objective Caml|ml||\<br />
#Octave|m.octave||\<br />
#Opal|impl||\<br />
Pascal|pas||\<br />
Pe&rl|pl||\<br />
P&HP|php||\<br />
#P&LSQL|spec||\<br />
#P&ostScript|ps||\<br />
#P&OV-Ray SDL|pov||\<br />
#PowerShell|ps1||\<br />
#PowerPro|powerpro||\<br />
&Properties|properties||\<br />
Pytho&n|py||\<br />
#R|R||\<br />
#Reso&urce|rc||\<br />
Ruby|rb||\<br />
Shell|sh||\<br />
S&QL|sql||\<br />
#Specman|e||\<br />
&TCL|tcl||\<br />
&VB|vb||\<br />
VBScr&ipt|vbs||\<br />
#Verilog|v||\<br />
#VHDL|vhd||\<br />
&XML|xml|Shift+F12|\<br />
YAML|yaml||<br />
<br />
# User defined key commands<br />
user.shortcuts=\<br />
Ctrl+Shift+V|IDM_PASTEANDDOWN|\<br />
Ctrl+PageUp|IDM_PREVFILE|\<br />
Ctrl+PageDown|IDM_NEXTFILE|<br />
<br />
#KeypadPlus|IDM_EXPAND|\<br />
#KeypadMinus|IDM_BLOCK_COMMENT|<br />
<br />
#user.context.menu=\<br />
#||\<br />
#Next File|IDM_NEXTFILE|\<br />
#Prev File|IDM_PREVFILE|<br />
<br />
# Import all the language specific properties files<br />
#import abaqus<br />
import ada<br />
import asm<br />
#import asn1<br />
#import au3<br />
import ave<br />
import baan<br />
#import freebasic<br />
#import blitzbasic<br />
#import bullant<br />
import caml<br />
import conf<br />
import cpp<br />
#import cmake<br />
import d<br />
#import csound<br />
import css<br />
import eiffel<br />
import erlang<br />
import escript<br />
import esl<br />
#import flagship<br />
#import forth<br />
import fortran<br />
#import gap<br />
import html<br />
#import inno<br />
#import kix<br />
import lisp<br />
import lot<br />
#import lout<br />
import lsl<br />
import lua<br />
import matlab<br />
import metapost<br />
import mmixal<br />
#import nimrod<br />
#import nncrontab<br />
#import nsis<br />
#import opal<br />
import others<br />
import pascal<br />
import perl<br />
import pov<br />
#import powerpro<br />
#import powershell<br />
import ps<br />
#import purebasic<br />
import python<br />
#import r<br />
#import rebol<br />
import ruby<br />
#import scriptol<br />
#import smalltalk<br />
#import spice<br />
import sql<br />
#import specman<br />
import tcl<br />
import tex<br />
import vb<br />
import yaml<br />
#import verilog<br />
#import vhdl<br />
</lsl></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/SciTEGlobal.properties&diff=451132User:Jesse Barnett/SciTEGlobal.properties2009-08-06T23:16:50Z<p>Jesse Barnett: </p>
<hr />
<div><lsl># Global initialisation file for SciTE Version 1.79<br />
# Custom settings for Jesse Barnett 8/02/09<br />
# For Linux, place in $prefix/share/scite<br />
# For Windows, place in same directory as SciTE.EXE (or Sc1.EXE)<br />
# Documentation at http://www.scintilla.org/SciTEDoc.html<br />
<br />
# Globals<br />
<br />
# Window sizes and visibility<br />
if PLAT_WIN<br />
position.left=0<br />
position.top=0<br />
if PLAT_GTK<br />
position.left=5<br />
position.top=22<br />
position.width=-1<br />
position.height=-1<br />
#position.maximize=1<br />
#position.tile=1<br />
#full.screen.hides.menu=1<br />
minimize.to.tray=1<br />
split.vertical=0<br />
#output.horizontal.size=200<br />
output.vertical.size=120<br />
output.initial.hide=1<br />
#horizontal.scrollbar=0<br />
#horizontal.scroll.width=10000<br />
#horizontal.scroll.width.tracking=0<br />
#output.horizontal.scrollbar=0<br />
#output.horizontal.scroll.width=10000<br />
#output.horizontal.scroll.width.tracking=0<br />
#output.scroll=0<br />
#error.select.line=1<br />
#end.at.last.line=0<br />
tabbar.visible=1<br />
#tabbar.hide.one=1<br />
#tabbar.multiline=1<br />
toolbar.visible=1<br />
#toolbar.detachable=1<br />
#toolbar.usestockicons=1<br />
#menubar.detachable=1<br />
#undo.redo.lazy=1<br />
#statusbar.visible=1<br />
#fileselector.width=800<br />
#fileselector.height=600<br />
#fileselector.show.hidden=1<br />
#magnification=-1<br />
#output.magnification=-1<br />
<br />
# Sizes and visibility in edit pane<br />
line.margin.visible=1<br />
line.margin.width=3+<br />
margin.width=16<br />
#fold.margin.width=16<br />
#fold.margin.colour=#FF0000<br />
#fold.margin.highlight.colour=#0000FF<br />
#blank.margin.left=4<br />
#blank.margin.right=4<br />
buffered.draw=1<br />
#two.phase.draw=0<br />
use.palette=0<br />
<br />
# Element styles<br />
#view.eol=1<br />
#control.char.symbol=.<br />
caret.period=500<br />
view.whitespace=0<br />
view.indentation.whitespace=1<br />
view.indentation.guides=0<br />
view.indentation.examine=3<br />
highlight.indentation.guides=0<br />
#caret.fore=#FF0000<br />
#caret.width=2<br />
#caret.line.back=#FFFED8<br />
#caret.line.back.alpha=63<br />
edge.column=200<br />
edge.mode=0<br />
edge.colour=#C0DCC0<br />
braces.check=1<br />
braces.sloppy=1<br />
#selection.fore=#006000<br />
# DADADA used as background because it yields standard silver C0C0C0<br />
# on low colour displays and a reasonable light grey on higher bit depths<br />
if PLAT_WINNT<br />
selection.alpha=80<br />
selection.back=#00FFFF<br />
if PLAT_WIN95<br />
selection.back=#DADADA<br />
if PLAT_GTK<br />
selection.alpha=30<br />
selection.back=#000000<br />
#whitespace.fore=#FF0000<br />
#whitespace.back=#FFF0F0<br />
#error.marker.fore=#0000A0<br />
#error.marker.back=#DADAFF<br />
#bookmark.fore=#808000<br />
#bookmark.back=#FFFFA0<br />
#bookmark.alpha=<br />
#find.mark=#0000FF<br />
<br />
# Scripting<br />
#ext.lua.startup.script=<br />
#ext.lua.auto.reload=1<br />
#ext.lua.reset=1<br />
<br />
# Checking<br />
are.you.sure=1<br />
#are.you.sure.for.build=1<br />
#save.all.for.build=1<br />
#quit.on.close.last=1<br />
load.on.activate=1<br />
#save.on.deactivate=1<br />
#are.you.sure.on.reload=1<br />
reload.preserves.undo=1<br />
check.if.already.open=1<br />
default.file.ext=.lsl<br />
#source.default.extensions=.h|.cxx|.bat<br />
title.full.path=1<br />
#title.show.buffers=1<br />
save.recent=1<br />
save.session=1<br />
session.bookmarks=1<br />
#session.folds=1<br />
#save.position=1<br />
open.dialog.in.file.directory=1<br />
strip.trailing.spaces=1<br />
#ensure.final.line.end=1<br />
#ensure.consistent.line.ends=1<br />
#save.deletes.first=1<br />
buffers=20<br />
#buffers.zorder.switching=1<br />
#api.*.cxx=d:\api\w.api<br />
#win95.death.delay=1000<br />
#locale.properties=locale.de.properties<br />
#translation.missing=***<br />
#read.only=1<br />
#max.file.size=1<br />
<br />
# Indentation<br />
tabsize=8<br />
indent.size=8<br />
use.tabs=1<br />
indent.auto=1<br />
indent.automatic=1<br />
indent.opening=0<br />
indent.closing=0<br />
#tab.indents=0<br />
#backspace.unindents=0<br />
<br />
# Wrapping of long lines<br />
wrap=1<br />
#wrap.style=2<br />
#cache.layout=3<br />
output.wrap=1<br />
#output.cache.layout=3<br />
#wrap.visual.flags=3<br />
#wrap.visual.flags.location=3<br />
#wrap.indent.mode=1<br />
#wrap.visual.startindent=4<br />
<br />
# Folding<br />
# enable folding, and show lines below when collapsed.<br />
fold=1<br />
fold.compact=1<br />
fold.flags=16<br />
fold.symbols=1<br />
#fold.on.open=1<br />
fold.comment=1<br />
fold.preprocessor=1<br />
<br />
# Find and Replace<br />
# Internal search always available with recursive capability so use in preference to external tool<br />
find.command=<br />
# findstr is available on recent versions of Windows including 2000<br />
#if PLAT_WIN<br />
# find.command=findstr /n /s $(find.what) $(find.files)<br />
#find.input=$(find.what)<br />
#if PLAT_GTK<br />
# find.command=grep --line-number "$(find.what)" $(find.files)<br />
find.files=*.c *.cxx *.h *.esl *.lsl<br />
#find.in.files.close.on.find=0<br />
#find.in.dot=1<br />
#find.in.binary=1<br />
#find.replace.matchcase=1<br />
#find.replace.escapes=1<br />
#find.replace.regexp=1<br />
#find.replace.regexp.posix=1<br />
#find.replace.wrap=0<br />
#find.replacewith.focus=0<br />
#find.replace.advanced=1<br />
<br />
# Behaviour<br />
#eol.mode=LF<br />
eol.auto=1<br />
clear.before.execute=1<br />
#vc.home.key=1<br />
#wrap.aware.home.end.keys=1<br />
#autocompleteword.automatic=1<br />
#autocomplete.choose.single=1<br />
caret.policy.xslop=1<br />
caret.policy.width=20<br />
caret.policy.xstrict=0<br />
caret.policy.xeven=0<br />
caret.policy.xjumps=0<br />
caret.policy.yslop=1<br />
caret.policy.lines=1<br />
caret.policy.ystrict=1<br />
caret.policy.yeven=1<br />
caret.policy.yjumps=0<br />
#visible.policy.strict=1<br />
#visible.policy.slop=1<br />
#visible.policy.lines=4<br />
time.commands=1<br />
#caret.sticky=1<br />
#properties.directory.enable=1<br />
<br />
# Status Bar<br />
statusbar.number=4<br />
statusbar.text.1=\<br />
li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)<br />
statusbar.text.2=\<br />
$(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelLength) chars.<br />
statusbar.text.3=\<br />
Now is: Date=$(CurrentDate) Time=$(CurrentTime)<br />
statusbar.text.4=\<br />
$(FileNameExt) : $(FileDate) - $(FileTime) | $(FileAttr)<br />
<br />
if PLAT_WIN<br />
command.scite.help="file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
command.scite.help.subsystem=2<br />
if PLAT_GTK<br />
command.print.*=a2ps "$(FileNameExt)"<br />
command.scite.help=netscape "file://$(SciteDefaultHome)/doc\SciTEDoc.html"<br />
<br />
# Internationalisation<br />
# Japanese input code page 932 and ShiftJIS character set 128<br />
#code.page=932<br />
#character.set=128<br />
# Unicode<br />
#code.page=65001<br />
code.page=0<br />
#character.set=204<br />
# Required for Unicode to work on GTK+:<br />
#LC_CTYPE=en_US.UTF-8<br />
if PLAT_GTK<br />
output.code.page=65001<br />
<br />
# Export<br />
#export.keep.ext=1<br />
export.html.wysiwyg=1<br />
#export.html.tabs=1<br />
#export.html.folding=1<br />
export.html.styleused=1<br />
#export.html.title.fullpath=1<br />
#export.rtf.tabs=1<br />
#export.rtf.font.face=Arial<br />
#export.rtf.font.size=9<br />
#export.rtf.tabsize=8<br />
#export.rtf.wysiwyg=0<br />
#export.tex.title.fullpath=1<br />
# Magnification (added to default screen font size)<br />
export.pdf.magnification=0<br />
# Font: Courier, Helvetica or Times (Courier line-wraps)<br />
export.pdf.font=Helvetica<br />
# Page size (in points): width, height<br />
# E.g. Letter 612,792; A4 595,842; maximum 14400,14400<br />
export.pdf.pagesize=595,842<br />
# Margins (in points): left, right, top, bottom<br />
export.pdf.margins=72,72,72,72<br />
export.xml.collapse.spaces=1<br />
export.xml.collapse.lines=1<br />
<br />
# Define values for use in the imported properties files<br />
chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
chars.numeric=0123456789<br />
chars.accented=ŠšŒœŸÿÀàÁáÂâÃãÄäÅåÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö<br />
# This is a better set for Russian:<br />
#chars.accented=ÀàÁáÂâÃãÄäÅ娸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÚúÛûÜüÝýÞþßÿ<br />
<br />
# The open.filter setting is only used on Windows where the file selector has a menu of filters to apply<br />
# to the types of files seen when opening.<br />
# There is a limit (possibly 256 characters) to the length of a filter,<br />
# so not all source extensions can be in this setting.<br />
source.files=*.asm;*.c;*.cc;*.cpp;*.cxx;*.cs;*.h;*.hh;*.hxx;*.hpp;\<br />
*.idl;*.odl;*.rc;*.rc2;*.dlg;*.def;*.esl;*.lsl;\<br />
*.vb;*.vbs;*.bas;*.frm;*.cls;*.ctl;\<br />
*.java;*.js;*.py;*.pl;*.rb;*.cgi;*.lua;*.conf;\<br />
make*;*.mak;\<br />
*.properties;*.html;*.xml;*.iface;*.bat;*.e<br />
<br />
my.files=*.esl;*.lsl<br />
<br />
if PLAT_WIN<br />
all.files=All Files (*.*)|*.*|<br />
if PLAT_GTK<br />
all.files=All Files (*)|*|Hidden Files (.*)|.*|<br />
open.filter=\<br />
LSL/ESL|$(my.files)|\<br />
All Source|$(source.files)|\<br />
$(all.files)\<br />
$(filter.ada)\<br />
$(filter.conf)\<br />
$(filter.asm)\<br />
$(filter.asn1)\<br />
$(filter.ave)\<br />
$(filter.baan)\<br />
$(filter.bash)\<br />
$(filter.caml)\<br />
$(filter.cmake)\<br />
$(filter.cpp)\<br />
#$(filter.ch)\<br />
$(filter.css)\<br />
$(filter.d)\<br />
$(filter.eiffel)\<br />
$(filter.erlang)\<br />
$(filter.esl)\<br />
$(filter.fortran)\<br />
$(filter.gap)\<br />
$(filter.idl)\<br />
$(filter.inno)\<br />
$(filter.java)\<br />
$(filter.js)\<br />
$(filter.kix)\<br />
$(filter.lout)\<br />
$(filter.lsl)\<br />
$(filter.lua)\<br />
$(filter.matlab)\<br />
$(filter.metapost)\<br />
$(filter.mmixal)\<br />
$(filter.nncrontab)\<br />
$(filter.nsis)\<br />
$(filter.opal)\<br />
$(filter.pascal)\<br />
$(filter.perl)\<br />
$(filter.php)\<br />
$(filter.pov)\<br />
$(filter.powershell)\<br />
$(filter.prg)\<br />
$(filter.properties)\<br />
$(filter.ps)\<br />
$(filter.python)\<br />
$(filter.r)\<br />
$(filter.ruby)\<br />
$(filter.sql)\<br />
$(filter.specman)\<br />
$(filter.tcl)\<br />
$(filter.tex)\<br />
$(filter.text)\<br />
$(filter.vb)\<br />
$(filter.web)\<br />
$(filter.yaml)\<br />
$(filter.verilog)\<br />
$(filter.vhdl)<br />
<br />
# Give symbolic names to the set of fonts used in the standard styles.<br />
if PLAT_WIN<br />
font.base=font:Verdana,size:10<br />
font.small=font:Verdana,size:8<br />
font.comment=font:Comic Sans MS,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:Times New Roman,size:11<br />
font.text.comment=font:Verdana,size:9<br />
font.embedded.base=font:Verdana,size:9<br />
font.embedded.comment=font:Comic Sans MS,size:8<br />
font.monospace=font:Courier New,size:10<br />
font.vbs=font:Lucida Sans Unicode,size:10<br />
if PLAT_GTK<br />
font.base=font:!Bitstream Vera Sans,size:9<br />
font.small=font:!Bitstream Vera Sans,size:8<br />
font.comment=font:!Bitstream Vera Serif,size:9<br />
font.code.comment.box=$(font.comment)<br />
font.code.comment.line=$(font.comment)<br />
font.code.comment.doc=$(font.comment)<br />
font.code.comment.nested=$(font.comment)<br />
font.text=font:!Bitstream Charter,size:10<br />
font.text.comment=font:!Serif,size:9<br />
font.embedded.base=font:!Serif,size:9<br />
font.embedded.comment=font:!Serif,size:9<br />
font.monospace=font:!Bitstream Vera Sans Mono,size:9<br />
font.vbs=font:!Bitstream Vera Sans Mono,size:9<br />
font.js=$(font.comment)<br />
<br />
# Old GTK+ font settings are faster but not antialiased<br />
#~ font.base=font:lucidatypewriter,size:12<br />
#~ font.small=font:lucidatypewriter,size:10<br />
#~ font.comment=font:new century schoolbook,size:12<br />
#~ font.code.comment.box=$(font.comment)<br />
#~ font.code.comment.line=$(font.comment)<br />
#~ font.code.comment.doc=$(font.comment)<br />
#~ font.text=font:times,size:14<br />
#~ font.text.comment=font:lucidatypewriter,size:10<br />
#~ font.embedded.base=font:lucidatypewriter,size:12<br />
#~ font.embedded.comment=font:lucidatypewriter,size:12<br />
#~ font.monospace=font:courier,size:12<br />
#~ font.vbs=font:new century schoolbook,size:12<br />
<br />
# Give symbolic names to the set of colours used in the standard styles.<br />
colour.code.comment.box=fore:#007F00<br />
colour.code.comment.line=fore:#007F00<br />
colour.code.comment.doc=fore:#3F703F<br />
colour.code.comment.nested=fore:#A0C0A0<br />
colour.text.comment=fore:#0000FF,back:#D0F0D0<br />
colour.other.comment=fore:#007F00<br />
colour.embedded.comment=back:#E0EEFF<br />
colour.embedded.js=back:#F0F0FF<br />
colour.notused=back:#FF0000<br />
<br />
colour.number=fore:#007F7F<br />
colour.keyword=fore:#00007F<br />
colour.string=fore:#7F007F<br />
colour.char=fore:#7F007F<br />
colour.operator=fore:#000000<br />
colour.preproc=fore:#7F7F00<br />
colour.error=fore:#FFFF00,back:#FF0000<br />
<br />
# Global default styles for all languages<br />
# Default<br />
style.*.32=$(font.base)<br />
# Line number<br />
style.*.33=back:#C0C0C0,$(font.base)<br />
# Brace highlight<br />
style.*.34=fore:#0000FF,bold<br />
# Brace incomplete highlight<br />
style.*.35=fore:#FF0000,bold<br />
# Control characters<br />
style.*.36=<br />
# Indentation guides<br />
style.*.37=fore:#C0C0C0,back:#808080<br />
<br />
# Printing - only works on Windows<br />
if PLAT_WIN<br />
#print.colour.mode=1<br />
print.magnification=-1<br />
# Setup: left, right, top, bottom margins, in local units:<br />
# hundredths of millimeters or thousandths of inches<br />
print.margins=1500,1000,1000,1500<br />
# Header/footer:<br />
# && = &; &p = current page<br />
# &f = file name; &F = full path<br />
# &d = file date; &D = current date<br />
# &t = file time; &T = full time<br />
print.header.format=$(FileNameExt) — Printed on $(CurrentDate), $(CurrentTime) — Page $(CurrentPage)<br />
print.footer.format=$(FilePath) — File date: $(FileDate) — File time: $(FileTime)<br />
# Header/footer style<br />
print.header.style=font:Arial,size:12,bold<br />
print.footer.style=font:Arial Narrow,size:10,italics<br />
<br />
# Warnings - only works on Windows and needs to be pointed at files on machine<br />
#if PLAT_WIN<br />
# warning.findwrapped=100,E:\Windows\Media\SFX\Boing.wav<br />
# warning.notfound=0,Effect.wav<br />
# warning.wrongfile=0,Glass.wav<br />
# warning.executeok=0,Fanfare.wav<br />
# warning.executeko=100,GlassBreak.wav<br />
# warning.nootherbookmark=100,Boing2.wav<br />
<br />
# Define the Lexer menu,<br />
# Each item contains three parts: menu string | file extension | key<br />
# The only keys allowed currently are based on F-keys and alphabetic keys and look like<br />
# [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D.<br />
# A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+.<br />
menu.language=\<br />
#FreeBasic|bas||\<br />
Text|txt|Shift+F11|\<br />
Ada|ads||\<br />
Apache Confi&g|conf||\<br />
Assembler|asm||\<br />
#ASN.1|asn1||\<br />
#Avenue|ave||\<br />
#Baan|bc||\<br />
&Batch|bat||\<br />
#Bullant|ant||\<br />
&C / C++|c||\<br />
#CMake|cmake||\<br />
C&#|cs||\<br />
#Csound|orc||\<br />
CSS|css||\<br />
D|d||\<br />
&Difference|diff||\<br />
#&Eiffel|e||\<br />
#Erlang|erl||\<br />
&Errorlist|err||\<br />
#FlagShip|prg||\<br />
#Forth|forth||\<br />
&Fortran|f90||\<br />
#Gap|g||\<br />
H&ypertext|html|F12|\<br />
#&InnoSetup|iss||\<br />
&Java|java||\<br />
Java&Script|js||\<br />
#&Kix|kix||\<br />
TeX|tex||\<br />
Lisp|lisp||\<br />
#Lot|lot||\<br />
#Lout|lt||\<br />
&LSL|lsl|Ctrl+F12|\<br />
Lu&a|lua||\<br />
Matlab|m.matlab||\<br />
&Makefile|mak|Ctrl+Shift+F11|\<br />
#MetaPost|mp||\<br />
#MMIXAL|mms||\<br />
#&nnCron crontab|tab||\<br />
#NSIS|nsis||\<br />
#Objective Caml|ml||\<br />
#Octave|m.octave||\<br />
#Opal|impl||\<br />
Pascal|pas||\<br />
Pe&rl|pl||\<br />
P&HP|php||\<br />
#P&LSQL|spec||\<br />
#P&ostScript|ps||\<br />
#P&OV-Ray SDL|pov||\<br />
#PowerShell|ps1||\<br />
#PowerPro|powerpro||\<br />
&Properties|properties||\<br />
Pytho&n|py||\<br />
#R|R||\<br />
#Reso&urce|rc||\<br />
Ruby|rb||\<br />
Shell|sh||\<br />
S&QL|sql||\<br />
#Specman|e||\<br />
&TCL|tcl||\<br />
&VB|vb||\<br />
VBScr&ipt|vbs||\<br />
#Verilog|v||\<br />
#VHDL|vhd||\<br />
&XML|xml|Shift+F12|\<br />
YAML|yaml||<br />
<br />
# User defined key commands<br />
user.shortcuts=\<br />
Ctrl+Shift+V|IDM_PASTEANDDOWN|\<br />
Ctrl+PageUp|IDM_PREVFILE|\<br />
Ctrl+PageDown|IDM_NEXTFILE|<br />
<br />
#KeypadPlus|IDM_EXPAND|\<br />
#KeypadMinus|IDM_BLOCK_COMMENT|<br />
<br />
#user.context.menu=\<br />
#||\<br />
#Next File|IDM_NEXTFILE|\<br />
#Prev File|IDM_PREVFILE|<br />
<br />
# Import all the language specific properties files<br />
#import abaqus<br />
import ada<br />
import asm<br />
#import asn1<br />
#import au3<br />
import ave<br />
import baan<br />
#import freebasic<br />
#import blitzbasic<br />
#import bullant<br />
import caml<br />
import conf<br />
import cpp<br />
#import cmake<br />
import d<br />
#import csound<br />
import css<br />
import eiffel<br />
import erlang<br />
import escript<br />
import esl<br />
#import flagship<br />
#import forth<br />
import fortran<br />
#import gap<br />
import html<br />
#import inno<br />
#import kix<br />
import lisp<br />
import lot<br />
#import lout<br />
import lsl<br />
import lua<br />
import matlab<br />
import metapost<br />
import mmixal<br />
#import nimrod<br />
#import nncrontab<br />
#import nsis<br />
#import opal<br />
import others<br />
import pascal<br />
import perl<br />
import pov<br />
#import powerpro<br />
#import powershell<br />
import ps<br />
#import purebasic<br />
import python<br />
#import r<br />
#import rebol<br />
import ruby<br />
#import scriptol<br />
#import smalltalk<br />
#import spice<br />
import sql<br />
#import specman<br />
import tcl<br />
import tex<br />
import vb<br />
import yaml<br />
#import verilog<br />
#import vhdl<br />
</lsl></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=451122User:Jesse Barnett/Scite2009-08-06T23:11:12Z<p>Jesse Barnett: </p>
<hr />
<div>*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
(Page is under construction)<br />
(Not too terribly happy with the layout right now. Going to redo it to bring all of the intro, including pic, up top. Then transition over to a step by step, download this, this, this, this, that and put this here and that there etc.)<br />
(Actually since I started this web page it got me interested in some of the newer posibilities of SciTE. It has changed a great deal since Ezhar brought us SciTE-EZ. ALL of this information here is going to change dramtically in the next couple of weeks)<br />
<br />
Stay Tuned!!!!!<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get SciTE version 1.79 here: [[http://www.scintilla.org/SciTE.html]]<br />
<br />
But once you have SciTE, you still have some work to do to get it to do some of the many tricks it can do. A good place to start would be the files listed below:<br />
<br />
*[[User:Jesse_Barnett/lsl.api|lsl.api]]<br />
<br />
*[[User:Jesse_Barnett/lsl.properties|lsl.properties]]<br />
<br />
*[[User:Jesse_Barnett/lsl_abbrev.properties|lsl_abbrev.properties]]<br />
<br />
*[[User:Jesse_Barnett/SciTEGlobal.properties|SciTEGlobal.properties]]<br />
<br />
*[[User:Jesse_Barnett/SciTEUser.properties|SciTEUser.properties]]<br />
<br />
You could take a look over at Strife's page with his SciTE links also. You can pickup stripper, indent, clipboard and lslint there and MSVC Express. [[https://wiki.secondlife.com/wiki/User:Strife_Onizuka]]<br />
<br />
I have mine linked to LSLEditor. See the note in my lsl.properties file for placing it(The C compiler does not like a path with spaces in it, as in C:\Program Files\LSLEditor)<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett&diff=343622User:Jesse Barnett2009-05-04T02:26:55Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
==About: Jesse Barnett==<br />
Scripter. You can find me in Aditi or the scripting forum.<br />
<br />
==Rant about the forums==<br />
Still waiting for LL to update the forum software!<br />
<br />
<<< Thank you SuezzaneC!! Yep info was out of date>>><br />
<br />
==Outside Editors==<br />
*[[http://www.lsleditor.org/Download.aspx LSLEditor]] Love it!<br />
<br />
*[[User:Jesse_Barnett/Scite|My Scite page]] Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.(Page is under construction)<br />
<br />
==For people just starting to script==<br />
*[[User:Jesse_Barnett/Script_Anatomy | Anatomy of a Script]] :: Basics showing the layout and some components of a script.<br />
<br />
==Scripts & Snippets==<br />
I made em. You learn from em. Don't sell em!<br />
<br />
*[[3D Radar|3D Radar]] :: Rezzes a ball for each avatar in range. Each ball tracks it's on AV and displays distance.<br />
<br />
<br />
*[[AO Overriding Pose Ball|AO Overriding Pose Ball]] :: No more having to type "/ao off/on" When you sit down or get up anymore!!<br />
<br />
<br />
*[[High Altitude Rezzer|High Altitude Rezzer]] :: Create a vehicle that goes straight up to a set altitude and then rezzes a work platform, garden, private spot or whatever else you put in it's contents.<br />
<br />
<br />
*[[Multi Item Rezzer|Multi Item Rezzer]] :: A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object. Allows the owner to change the rez offset and has a scanner inside, if no one is around the rezzed object will derez and the rezzer will return to it's start position.<br />
<br />
<br />
*[[User:Jesse_Barnett/SandBox_Blox|SandBox Blox]] :: Highly addictive and fun. Blocks you can stick together by touch. Good example to learn about one of the new Detected Touch functions and has some interesting math.<br />
<br />
<br />
*[[Sim Map Particle Projector|Sim Map Particle Projector]] :: Creates a floating map of the sim that the script is in. Demonstrates how to work with the map api.<br />
<br />
<br />
*[[User:Jesse_Barnett/Slurl_TP_HUD|Slurl TP HUD]] :: Check it out. I love my newest TP HUD. Has a couple of different tricks for the newer scripter to learn from.<br />
<br />
<br />
*[[Teleport HUD|Teleport HUD]] :: NOW IT WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett&diff=343612User:Jesse Barnett2009-05-04T02:24:22Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
==About: Jesse Barnett==<br />
Scripter. You can find me in Aditi or the scripting forum.<br />
<br />
==Rant about the forums==<br />
Still waiting for LL to update the forum software!<br />
<br />
<<< Thank you SuezzaneC!! Yep info was out of date>>><br />
<br />
==Outside Editors==<br />
*[[http://www.lsleditor.org/Download.aspx LSLEditor]] Love it!<br />
<br />
*[[User:Jesse_Barnett/Scite|My Scite page]] Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.(Page is under construction)<br />
<br />
==For people just starting to script==<br />
*[[User:Jesse_Barnett/Script_Anatomy | Anatomy of a Script]] :: Basics showing the layout and some components of a script.<br />
<br />
<br />
==Scripts & Snippets==<br />
I made em. You learn from em. Don't sell em!<br />
<br />
*[[3D Radar|3D Radar]] :: Rezzes a ball for each avatar in range. Each ball tracks it's on AV and displays distance.<br />
<br />
<br />
*[[AO Overriding Pose Ball|AO Overriding Pose Ball]] :: No more having to type "/ao off/on" When you sit down or get up anymore!!<br />
<br />
<br />
*[[High Altitude Rezzer|High Altitude Rezzer]] :: Create a vehicle that goes straight up to a set altitude and then rezzes a work platform, garden, private spot or whatever else you put in it's contents.<br />
<br />
<br />
*[[Multi Item Rezzer|Multi Item Rezzer]] :: A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object. Allows the owner to change the rez offset and has a scanner inside, if no one is around the rezzed object will derez and the rezzer will return to it's start position.<br />
<br />
<br />
*[[User:Jesse_Barnett/SandBox_Blox|SandBox Blox]] :: Highly addictive and fun. Blocks you can stick together by touch. Good example to learn about one of the new Detected Touch functions and has some interesting math.<br />
<br />
<br />
*[[Sim Map Particle Projector|Sim Map Particle Projector]] :: Creates a floating map of the sim that the script is in. Demonstrates how to work with the map api.<br />
<br />
<br />
*[[User:Jesse_Barnett/Slurl_TP_HUD|Slurl TP HUD]] :: Check it out. I love my newest TP HUD. Has a couple of different tricks for the newer scripter to learn from.<br />
<br />
<br />
*[[Teleport HUD|Teleport HUD]] :: NOW IT WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Script_Anatomy&diff=343602User:Jesse Barnett/Script Anatomy2009-05-04T02:22:52Z<p>Jesse Barnett: New page: {{LSL Header}} *Click Here To see my page and more of my scripts <lsl> ///////////////////////////////////////////////////////////////////////////////////////// /...</p>
<hr />
<div>{{LSL Header}}<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<lsl><br />
/////////////////////////////////////////////////////////////////////////////////////////<br />
//////////////////////////////ANATOMY OF A SCRIPT///////////////////////////////////<br />
<br />
//////GLOBAL VARIABLES<br />
//Variables declared here can be used throughout the script<br />
//Global Variables make the script easier to read and edit<br />
//Global Variables use less memory if used multiple times in a script<br />
//Global Variables use more memory if only used once or twice, balance this with readability<br />
//Name a variable so that you can remember what it is and references<br />
//This becomes more important as the script grows in length<br />
<br />
string strExample = "I am a string";<br />
list lstExample = ["I am a string in a list"]; //lists start at 0<br />
vector vecExample;// Global Variables need to be declared but do not need to be defined yet<br />
<br />
//////USER DEFINED FUNCTIONS<br />
//Please see the wiki section on User Defined Functions for more info<br />
<br />
my_function(){<br />
llOwnerSay("I am called from a User Defined Function");<br />
}<br />
<br />
/////STATES<br />
//Every script has to have at least one state<br />
//The first state is named default and does not need to be declared as a state<br />
//except to call it from another state<br />
//Any other states need to be declared<br />
//Example: "state next" w/o qoutation marks<br />
//Wherever it is used it will always be both words: "state next" w/o quotation marks<br />
//Declaring state next and calling just "next" will not work<br />
//Multiple states can make a script easier to read and maintain<br />
//It is better to stay within one state if at all possible<br />
<br />
default{ //notice that "state" is not necessary<br />
/////EVENTS<br />
//Events are declared inside a state<br />
//You can not declare an event inside another event or User Defined Function<br />
<br />
state_entry() {<br />
llOwnerSay(strExample + " called from within state_entry");<br />
//Notice that i have just combined the two strings this will result in<br />
//this message:<br />
//"I am a string called from within state_entry"<br />
<br />
my_function();<br />
//Now I have just called the user defined function<br />
<br />
vecExample = llGetPos();<br />
//Now I have defined the vector I declared globally<br />
//This can now be used throught the script and<br />
//will stay the same unless it is redefined<br />
}<br />
touch_start(integer n) {<br />
llOwnerSay("I have just been touched");<br />
<br />
/////Local Variables<br />
//Local Variables use less memory then Glabal Variables<br />
//But can only be used within the current event<br />
string lstExampleString = llList2String(lstExample, 0);<br />
llOwnerSay(lstExampleString);<br />
<br />
llOwnerSay("I am a vector cast as a string: " + (string)vecExample);<br />
//llOwnerSay "says" strings and only strings to<br />
//"say" anything that is not a string it must be "cast"<br />
//Please see the wiki section on "typecasting" for more information<br />
//vecExample is a vector but here I have "cast" it as a string<br />
<br />
state next;<br />
//Several things occur when you change states<br />
//Some porcesses are put on hold and you may<br />
//need to put some on hold yourself<br />
//to do this use state_exit()<br />
}<br />
state_exit() {<br />
llOwnerSay("I am called from state_exit");<br />
}<br />
}//Brackets are used everywhere in a script<br />
//A closing bracket has to be used for every opening bracket<br />
<br />
state next{<br />
state_entry() {<br />
llOwnerSay("WOOHOO! I am called from a different state " +<br />
"Touch me again to switch back to state default");<br />
//Notice how I broke the string into multiple parts to keep the line<br />
//from running off the end"<br />
}<br />
touch_start(integer n) {<br />
llOwnerSay("Switching back to the default state now");<br />
state default;<br />
//Notice that here I have had to call default as a state<br />
}<br />
//If you do not need it, you do not have to call state_exit<br />
}<br />
</lsl></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Teleport_HUD&diff=267242Teleport HUD2009-03-06T03:19:55Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<br />
<lsl><br />
//Teleport HUD<br />
//Jesse Barnett<br />
//1/16/08<br />
<br />
//One of my first "real" scripts from waaaaaay back when.<br />
//Hopefully users will do more than just use this script. Strided lists and<br />
//manipulating lists are the closest we get to arrays in LSL presently.<br />
//Even with all of the list juggling here, you will be surprised just how many<br />
//destinations you can add.<br />
<br />
//A lot of code but this is the only teleporter I have been using for over a year now.<br />
//No notecards or lists to fill out. Very user freindly.<br />
//Wherever you are, just touch the button, hit ""Add" and it will prompt you for the name<br />
//Type what you want to name it in open chat, hit enter and you are done<br />
//It will store the sim name, the name you gave it for the menu buttons and the location<br />
//automatically<br />
//It will only show the destinations for the simulator you are in.<br />
//Pick the destination from the menu, touch the bubble that is rezzed in front of<br />
//you and you will instantly teleport to that spot.<br />
//You can also easily remove destinations by picking ""Remove" in the menu and then<br />
//touching the button name you wish to remove.<br />
//In case you are worried about loosing your destinations, you can also use the<br />
//"List" button to output the list of all destinations from all sims.<br />
//I have never lost the destinations because of sim resets etc.<br />
//Have lost them twice tweaking the script. But adding destinations again is so easy<br />
//it is no problem.<br />
<br />
//To use, create a button and attach it to the desired position on your HUD.<br />
//Place this script inside, Put the warp pos script into another object you want<br />
//to rez as the bubble, edit it so that when you left click, you will sit.<br />
//Take the "bubble" back into inventory and then place it in the HUD also.<br />
<br />
<br />
string sim;<br />
list sims;<br />
list dest;<br />
list main_menu;<br />
list menu_options =["Add", "Remove", "Back", "List"];<br />
integer rez_chan;<br />
integer rez_chan_handle;<br />
integer menu_chan;<br />
integer menu_chan_handle;<br />
integer edit_chan = 0;// Could change this to another channel if you want for privacy<br />
//It is only used to enter the destination name when you use "Add"<br />
integer edit_chan_handle;<br />
integer edit_test = FALSE;<br />
vector target;<br />
string tp_object = "bubble";<br />
<br />
default {<br />
touch_start(integer num_detected) {<br />
menu_chan = (integer) llFrand(-100000 - 99999999) - 100000;<br />
if (sim != llGetRegionName() || edit_test) {<br />
//Don't recalculate if no change to region or an edit<br />
sim = llGetRegionName();<br />
edit_test = FALSE;<br />
main_menu =[];<br />
dest = llListSort(dest, 3, TRUE);//Sorts the list in Strides according to sim<br />
sims = llListSort(sims, 1, TRUE);<br />
integer dest_list_sim_loc = llListFindList(dest,[sim]);<br />
//1st entry in list with the current sim<br />
integer sim_list_sim_loc = llListFindList(sims,[sim]);<br />
string next_sim_name = llList2String(sims, (sim_list_sim_loc + 1));<br />
integer next_sim_loc = (integer) llListFindList(dest,[next_sim_name]) - 1;<br />
//Calculates the last entry in the current sim<br />
main_menu = llList2ListStrided(llDeleteSubList(dest, 0, 0), dest_list_sim_loc, next_sim_loc, 3);<br />
//Now menu list is built only showing destinations that are in the current sim<br />
main_menu = llListSort(main_menu, 1, TRUE);<br />
main_menu = (main_menu =[]) + ["Options"] + main_menu;<br />
}<br />
menu_chan_handle = llListen(menu_chan, "", llGetOwner(), "");<br />
llSetTimerEvent(20);<br />
llDialog(llDetectedKey(0), "Choose destination or Options to add/remove destinations", main_menu, menu_chan);<br />
}<br />
listen(integer channel, string lm, key id, string message) {<br />
if (llListFindList(main_menu + menu_options,[message]) != -1) {<br />
if (message == "Options") {<br />
llDialog(id, "Pick an option!", menu_options, menu_chan);<br />
}<br />
else if (message == "Back") {<br />
llDialog(id, "Where do you want to go?", main_menu, menu_chan);<br />
}<br />
else if (message == "Add") {<br />
integer b = TRUE;<br />
integer m = TRUE;<br />
b = ((llGetListLength(main_menu)) <= 11);<br />
//Only allows 11 entries per simulator<br />
m = (llGetFreeMemory() >= 1000);<br />
//Make usre we have enough memory to manipulate the lists<br />
if (!b || !m) {<br />
llOwnerSay("You can not add any more destinations");<br />
}<br />
else {<br />
llOwnerSay("What do you want to name this destination?");<br />
llListenRemove(menu_chan_handle);<br />
state add_dest;<br />
}<br />
}<br />
else if (message == "Remove") {<br />
llDialog(id, "Which desination do you want to remove?", main_menu, menu_chan);<br />
state rem_dest;<br />
}<br />
else if (message == "List") {<br />
integer i;<br />
if (llGetListLength(dest) > 0) {<br />
for (i = 0; i < llGetListLength(dest); i += 3) {<br />
string sim_name = llList2String(dest, i);<br />
string name = llList2String(dest, i + 1);<br />
string location = llList2String(dest, i + 2);<br />
llOwnerSay(sim_name + " , " + name + " = " + location);<br />
}<br />
}<br />
else {<br />
llOwnerSay("No Destinations Available.");<br />
}<br />
}<br />
else if (llListFindList(dest,[message]) != -1) {<br />
integer index = llListFindList(dest,[message]);<br />
if (index != -1) {<br />
vector pos = llGetPos();<br />
if (pos.z <= 4095) {<br />
target = (vector) llList2String(dest, index + 1);<br />
rez_chan = (integer) llFrand(100000 - 1000000) - 100000;<br />
llSay(0, "Touch the pumpkin to teleport");<br />
llRezObject(tp_object, llGetPos() + (<1, 0, 1> * llGetRot()), ZERO_VECTOR,<br />
ZERO_ROTATION, rez_chan);<br />
}<br />
else {<br />
llOwnerSay("Too high to teleport. You must be lower than 4096 meters");<br />
}<br />
}<br />
}<br />
}<br />
}<br />
object_rez(key id)<br />
{<br />
llWhisper(rez_chan, (string) target);<br />
}<br />
timer() {<br />
llSetTimerEvent(0);<br />
llListenRemove(menu_chan_handle);<br />
llListenRemove(rez_chan_handle);<br />
return;<br />
}<br />
}<br />
<br />
state add_dest {<br />
state_entry() {<br />
edit_test = TRUE;<br />
llSetTimerEvent(20);<br />
edit_chan_handle = llListen(edit_chan, "", llGetOwner(), "");<br />
}<br />
listen(integer chan, string name, key id, string msg) {<br />
integer e = llListFindList(sims,[sim]);<br />
if (e == -1) {<br />
sims = (sims =[]) + sims +[sim];<br />
}<br />
vector pos = llGetPos();<br />
dest = (dest =[]) + dest +[sim, msg, pos];<br />
llOwnerSay("Added : " + sim + " , " + msg + " = " + (string) pos);<br />
llListenRemove(edit_chan_handle);<br />
state default;<br />
}<br />
timer() {<br />
llSetTimerEvent(0);<br />
llListenRemove(edit_chan_handle);<br />
llOwnerSay("Timeout. Click TP HUD to start again");<br />
state default;<br />
}<br />
}<br />
<br />
state rem_dest {<br />
state_entry() {<br />
edit_test = TRUE;<br />
llSetTimerEvent(20);<br />
menu_chan_handle = llListen(menu_chan, "", llGetOwner(), "");<br />
}<br />
listen(integer chan, string name, key id, string msg) {<br />
integer d = llListFindList(dest,[msg]);<br />
if (d != -1) {<br />
dest = llDeleteSubList(dest, d - 1, d + 1);<br />
llOwnerSay("Removed : " + msg);<br />
integer f = llListFindList(dest,[sim]);<br />
if (f == -1) {<br />
sims = llDeleteSubList(sims, f, f);<br />
llListenRemove(menu_chan_handle);<br />
state default;<br />
}<br />
llListenRemove(menu_chan_handle);<br />
state default;<br />
}<br />
}<br />
timer() {<br />
llSetTimerEvent(0);<br />
llListenRemove(menu_chan_handle);<br />
llOwnerSay("Timeout. Click TP HUD to start again");<br />
state default;<br />
}<br />
}<br />
</lsl><br />
{{message}}Editted warpPos script for syntax error [[User:Jesse Barnett|Jesse Barnett]] 03:19, 6 March 2009 (UTC)<br />
<lsl><br />
<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Multi-HUD WarpPos<br />
// "Apr 23 2008", "14:36:26"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
integer listenId; // Listener ID<br />
key gAvatarID;<br />
vector target; // The location the av will be teleported to.<br />
<br />
warpPos(vector target)<br />
{ //R&D by Keknehv Psaltery, 05/25/2006<br />
//with a little pokeing by Strife, and a bit more<br />
//munging by Talarus Luan<br />
//Final cleanup by Keknehv Psaltery<br />
//and of course Jesse Barnett got to jump in here<br />
//and made it work up to 4096 meters<br />
//Fail safe removed<br />
// Compute the number of jumps necessary<br />
integer jumps = (integer) (llVecDist(target, llGetPos()) / 10.0) + 1;<br />
if (jumps > 411)<br />
jumps = 411;<br />
list rules =[PRIM_POSITION, target]; //The start for the rules list<br />
integer count = 1;<br />
while ((count = count << 1) < jumps)<br />
rules += rules;<br />
llSetPrimitiveParams(rules + llList2List(rules, (count - jumps) << 1, count));<br />
}<br />
default {<br />
state_entry() {<br />
llSetObjectName("WarpPos");<br />
}<br />
listen(integer channel, string name, key id, string message) {<br />
target = (vector) message;<br />
llListenRemove(listenId);<br />
llSetText("Touch to teleport", <1, 1, 1 >, 1);<br />
llSitTarget(<0, 0, 0.5 >, ZERO_ROTATION);<br />
}<br />
on_rez(integer start_param) {<br />
// When this object rezzes setup a listener to get the target<br />
listenId = llListen(start_param, "", "", "");<br />
}<br />
changed(integer change) {<br />
if (change & CHANGED_LINK) {<br />
gAvatarID = llAvatarOnSitTarget();<br />
if (gAvatarID != NULL_KEY) warpPos(target);<br />
warpPos(target);<br />
llSleep(0.5);<br />
llDie();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Teleport HUD}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Teleport_HUD&diff=267192Teleport HUD2009-03-06T03:10:04Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<br />
<lsl><br />
//Teleport HUD<br />
//Jesse Barnett<br />
//1/16/08<br />
<br />
//One of my first "real" scripts from waaaaaay back when.<br />
//Hopefully users will do more than just use this script. Strided lists and<br />
//manipulating lists are the closest we get to arrays in LSL presently.<br />
//Even with all of the list juggling here, you will be surprised just how many<br />
//destinations you can add.<br />
<br />
//A lot of code but this is the only teleporter I have been using for over a year now.<br />
//No notecards or lists to fill out. Very user freindly.<br />
//Wherever you are, just touch the button, hit ""Add" and it will prompt you for the name<br />
//Type what you want to name it in open chat, hit enter and you are done<br />
//It will store the sim name, the name you gave it for the menu buttons and the location<br />
//automatically<br />
//It will only show the destinations for the simulator you are in.<br />
//Pick the destination from the menu, touch the bubble that is rezzed in front of<br />
//you and you will instantly teleport to that spot.<br />
//You can also easily remove destinations by picking ""Remove" in the menu and then<br />
//touching the button name you wish to remove.<br />
//In case you are worried about loosing your destinations, you can also use the<br />
//"List" button to output the list of all destinations from all sims.<br />
//I have never lost the destinations because of sim resets etc.<br />
//Have lost them twice tweaking the script. But adding destinations again is so easy<br />
//it is no problem.<br />
<br />
//To use, create a button and attach it to the desired position on your HUD.<br />
//Place this script inside, Put the warp pos script into another object you want<br />
//to rez as the bubble, edit it so that when you left click, you will sit.<br />
//Take the "bubble" back into inventory and then place it in the HUD also.<br />
<br />
<br />
string sim;<br />
list sims;<br />
list dest;<br />
list main_menu;<br />
list menu_options =["Add", "Remove", "Back", "List"];<br />
integer rez_chan;<br />
integer rez_chan_handle;<br />
integer menu_chan;<br />
integer menu_chan_handle;<br />
integer edit_chan = 0;// Could change this to another channel if you want for privacy<br />
//It is only used to enter the destination name when you use "Add"<br />
integer edit_chan_handle;<br />
integer edit_test = FALSE;<br />
vector target;<br />
string tp_object = "bubble";<br />
<br />
default {<br />
touch_start(integer num_detected) {<br />
menu_chan = (integer) llFrand(-100000 - 99999999) - 100000;<br />
if (sim != llGetRegionName() || edit_test) {<br />
//Don't recalculate if no change to region or an edit<br />
sim = llGetRegionName();<br />
edit_test = FALSE;<br />
main_menu =[];<br />
dest = llListSort(dest, 3, TRUE);//Sorts the list in Strides according to sim<br />
sims = llListSort(sims, 1, TRUE);<br />
integer dest_list_sim_loc = llListFindList(dest,[sim]);<br />
//1st entry in list with the current sim<br />
integer sim_list_sim_loc = llListFindList(sims,[sim]);<br />
string next_sim_name = llList2String(sims, (sim_list_sim_loc + 1));<br />
integer next_sim_loc = (integer) llListFindList(dest,[next_sim_name]) - 1;<br />
//Calculates the last entry in the current sim<br />
main_menu = llList2ListStrided(llDeleteSubList(dest, 0, 0), dest_list_sim_loc, next_sim_loc, 3);<br />
//Now menu list is built only showing destinations that are in the current sim<br />
main_menu = llListSort(main_menu, 1, TRUE);<br />
main_menu = (main_menu =[]) + ["Options"] + main_menu;<br />
}<br />
menu_chan_handle = llListen(menu_chan, "", llGetOwner(), "");<br />
llSetTimerEvent(20);<br />
llDialog(llDetectedKey(0), "Choose destination or Options to add/remove destinations", main_menu, menu_chan);<br />
}<br />
listen(integer channel, string lm, key id, string message) {<br />
if (llListFindList(main_menu + menu_options,[message]) != -1) {<br />
if (message == "Options") {<br />
llDialog(id, "Pick an option!", menu_options, menu_chan);<br />
}<br />
else if (message == "Back") {<br />
llDialog(id, "Where do you want to go?", main_menu, menu_chan);<br />
}<br />
else if (message == "Add") {<br />
integer b = TRUE;<br />
integer m = TRUE;<br />
b = ((llGetListLength(main_menu)) <= 11);<br />
//Only allows 11 entries per simulator<br />
m = (llGetFreeMemory() >= 1000);<br />
//Make usre we have enough memory to manipulate the lists<br />
if (!b || !m) {<br />
llOwnerSay("You can not add any more destinations");<br />
}<br />
else {<br />
llOwnerSay("What do you want to name this destination?");<br />
llListenRemove(menu_chan_handle);<br />
state add_dest;<br />
}<br />
}<br />
else if (message == "Remove") {<br />
llDialog(id, "Which desination do you want to remove?", main_menu, menu_chan);<br />
state rem_dest;<br />
}<br />
else if (message == "List") {<br />
integer i;<br />
if (llGetListLength(dest) > 0) {<br />
for (i = 0; i < llGetListLength(dest); i += 3) {<br />
string sim_name = llList2String(dest, i);<br />
string name = llList2String(dest, i + 1);<br />
string location = llList2String(dest, i + 2);<br />
llOwnerSay(sim_name + " , " + name + " = " + location);<br />
}<br />
}<br />
else {<br />
llOwnerSay("No Destinations Available.");<br />
}<br />
}<br />
else if (llListFindList(dest,[message]) != -1) {<br />
integer index = llListFindList(dest,[message]);<br />
if (index != -1) {<br />
vector pos = llGetPos();<br />
if (pos.z <= 4095) {<br />
target = (vector) llList2String(dest, index + 1);<br />
rez_chan = (integer) llFrand(100000 - 1000000) - 100000;<br />
llSay(0, "Touch the pumpkin to teleport");<br />
llRezObject(tp_object, llGetPos() + (<1, 0, 1> * llGetRot()), ZERO_VECTOR,<br />
ZERO_ROTATION, rez_chan);<br />
}<br />
else {<br />
llOwnerSay("Too high to teleport. You must be lower than 4096 meters");<br />
}<br />
}<br />
}<br />
}<br />
}<br />
object_rez(key id)<br />
{<br />
llWhisper(rez_chan, (string) target);<br />
}<br />
timer() {<br />
llSetTimerEvent(0);<br />
llListenRemove(menu_chan_handle);<br />
llListenRemove(rez_chan_handle);<br />
return;<br />
}<br />
}<br />
<br />
state add_dest {<br />
state_entry() {<br />
edit_test = TRUE;<br />
llSetTimerEvent(20);<br />
edit_chan_handle = llListen(edit_chan, "", llGetOwner(), "");<br />
}<br />
listen(integer chan, string name, key id, string msg) {<br />
integer e = llListFindList(sims,[sim]);<br />
if (e == -1) {<br />
sims = (sims =[]) + sims +[sim];<br />
}<br />
vector pos = llGetPos();<br />
dest = (dest =[]) + dest +[sim, msg, pos];<br />
llOwnerSay("Added : " + sim + " , " + msg + " = " + (string) pos);<br />
llListenRemove(edit_chan_handle);<br />
state default;<br />
}<br />
timer() {<br />
llSetTimerEvent(0);<br />
llListenRemove(edit_chan_handle);<br />
llOwnerSay("Timeout. Click TP HUD to start again");<br />
state default;<br />
}<br />
}<br />
<br />
state rem_dest {<br />
state_entry() {<br />
edit_test = TRUE;<br />
llSetTimerEvent(20);<br />
menu_chan_handle = llListen(menu_chan, "", llGetOwner(), "");<br />
}<br />
listen(integer chan, string name, key id, string msg) {<br />
integer d = llListFindList(dest,[msg]);<br />
if (d != -1) {<br />
dest = llDeleteSubList(dest, d - 1, d + 1);<br />
llOwnerSay("Removed : " + msg);<br />
integer f = llListFindList(dest,[sim]);<br />
if (f == -1) {<br />
sims = llDeleteSubList(sims, f, f);<br />
llListenRemove(menu_chan_handle);<br />
state default;<br />
}<br />
llListenRemove(menu_chan_handle);<br />
state default;<br />
}<br />
}<br />
timer() {<br />
llSetTimerEvent(0);<br />
llListenRemove(menu_chan_handle);<br />
llOwnerSay("Timeout. Click TP HUD to start again");<br />
state default;<br />
}<br />
}<br />
</lsl><br />
{{message}}Editted warpPos script for syntax error[[User:Jesse Barnett|Jesse Barnett]] 11:46, 23 April 2008 (PDT)<br />
<lsl><br />
<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Multi-HUD WarpPos<br />
// "Apr 23 2008", "14:36:26"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
integer listenId; // Listener ID<br />
key gAvatarID;<br />
vector target; // The location the av will be teleported to.<br />
<br />
warpPos(vector target)<br />
{ //R&D by Keknehv Psaltery, 05/25/2006<br />
//with a little pokeing by Strife, and a bit more<br />
//munging by Talarus Luan<br />
//Final cleanup by Keknehv Psaltery<br />
//and of course Jesse Barnett got to jump in here<br />
//and made it work up to 4096 meters<br />
//Fail safe removed<br />
// Compute the number of jumps necessary<br />
integer jumps = (integer) (llVecDist(target, llGetPos()) / 10.0) + 1;<br />
if (jumps > 411)<br />
jumps = 411;<br />
list rules =[PRIM_POSITION, target]; //The start for the rules list<br />
integer count = 1;<br />
while ((count = count << 1) < jumps)<br />
rules += rules;<br />
llSetPrimitiveParams(rules + llList2List(rules, (count - jumps) << 1, count));<br />
}<br />
default {<br />
state_entry() {<br />
llSetObjectName("WarpPos");<br />
}<br />
listen(integer channel, string name, key id, string message) {<br />
target = (vector) message;<br />
llListenRemove(listenId);<br />
llSetText("Touch to teleport", <1, 1, 1 >, 1);<br />
llSitTarget(<0, 0, 0.5 >, ZERO_ROTATION);<br />
}<br />
on_rez(integer start_param) {<br />
// When this object rezzes setup a listener to get the target<br />
listenId = llListen(start_param, "", "", "");<br />
}<br />
changed(integer change) {<br />
if (change & CHANGED_LINK) {<br />
gAvatarID = llAvatarOnSitTarget();<br />
if (gAvatarID != NULL_KEY) warpPos(target);<br />
warpPos(target);<br />
llSleep(0.5);<br />
llDie();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Teleport HUD}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Multi_Item_Rezzer&diff=175163Multi Item Rezzer2008-12-15T00:48:19Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
This is a rework of my old High Altitude Rezzer.<br />
<br />
Sit on it, pick the object to rez and then the height. It will go up to the target height and rez the object. It allows the owner to set the rez offset simply. Also has a scanner built in, if there is no av around the rezzer will derez the object and go back to it's starting position. <br />
<br />
<br />
Place this in the item you wish to be the rezzer to set the sit target and follow the onscreen instructions. It will remove itself once the sit target is set. Without a sit target the rezzer will not work.<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Set SitTarget 1.0<br />
// "Dec 14 2008", "15:30:50"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
vector pos;<br />
rotation rot;<br />
rotation adj_rot;<br />
<br />
default {<br />
state_entry() {<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
llOwnerSay("Go into edit and check the Edit linked parts box" +<br />
"\nMove the prim to the postion you want" +<br />
"\Touch the prim to set the llSitTarget & remove the script" +<br />
"\nSit Target is a property of the prim and doesn't need" +<br />
"\nthe script, once set" +<br />
"\nPut the prim where you want and when you sit on it" +<br />
"\nyou will be in the right position ");<br />
pos = llGetPos();<br />
rot = llGetRot();<br />
adj_rot = ZERO_ROTATION / rot;<br />
llSitTarget(<0, 0, 0.01 >, adj_rot);<br />
}<br />
touch_start(integer total_number) {<br />
vector new_pos = (pos - llGetPos()) * adj_rot;<br />
llSitTarget(new_pos, adj_rot); //applies offset<br />
llSetPos(pos); //back to original position and rotation<br />
llSetRot(rot);<br />
llOwnerSay(" Sit Target has been set ");<br />
llRemoveInventory(llGetScriptName());<br />
}<br />
}<br />
</lsl><br />
<br />
Place a copy of this into each linkset of the objects you wish to rez, take into inventory and then place in the rezzer. The rezzer will work with collated builds.(Again make sure there is a die script in each linkset)<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Rezzed Object Die 1.0<br />
// "Dec 14 2008", "11:19:14"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Place a copy inside each linkset and the rezzed object will delete itself when the rezzer moves<br />
default {<br />
on_rez(integer sp) {<br />
llListen(sp,"","","die");<br />
}<br />
listen(integer channel, string name, key id, string msg) {<br />
llDie();<br />
}<br />
}<br />
</lsl><br />
<br />
And finally this is the script for the rezzer itself. Enjoy!<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Multi Item Rezzer 3.0<br />
// "Dec 14 2008", "18:03:38"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Set the sit target in the item you want to use as the rezzer first<br />
//See my llSitTarget Set for one way of setting it<br />
//Then place this script plus the objects you want to rezz into the rezzer.<br />
float sensorRange = 20.0;<br />
integer index;<br />
integer menuChan;<br />
integer menuHandle;<br />
integer offsetTest = 0;<br />
integer rezTest = 0;<br />
key id;<br />
//You can change the heights that you want for destinations here in this list.<br />
list destList =["start", "ground", "100", "200", "500", "1000", "2000", "3000", "4000"];<br />
list objList;<br />
list offsetList;<br />
string rezObj;<br />
vector infVec = <1.304382E+19, 1.304382E+19, 0.0 >;<br />
vector rezOffset = <0, 0, 0 >;<br />
vector startPos;<br />
vector target;<br />
<br />
inventory()<br />
{<br />
objList =[];<br />
integer invCnt = llGetInventoryNumber(INVENTORY_OBJECT);<br />
integer x;<br />
for (x = 0; x < invCnt; x++) {<br />
objList += (list) llGetInventoryName(INVENTORY_OBJECT, x);<br />
offsetList += <0, 0, 0 >;<br />
}<br />
}<br />
<br />
posJump()<br />
{<br />
llSetPrimitiveParams([PRIM_POSITION, infVec, PRIM_POSITION, target]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
startPos = llGetPos();<br />
llSetText("Sit and pick from menu", <0, 0, 0 >, 1.0);<br />
menuChan = (integer) llFrand(-1000000) - 1000000;<br />
inventory();<br />
}<br />
on_rez(integer start_param) {<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
startPos = llGetPos();<br />
}<br />
listen(integer channel, string name, key id, string msg) {<br />
if ("Height" == msg)<br />
llDialog(id, "Pick an elevation", destList, menuChan);<br />
else if ("Object" == msg)<br />
llDialog(id, "Pick an object", objList, menuChan);<br />
else if ("Set Offset" == msg) {<br />
llOwnerSay("Move seat to desired position then touch again to set offet" + "\nMaximum 10 meters");<br />
offsetTest = 1;<br />
}<br />
else if (~llListFindList(destList,[msg]) && llAvatarOnSitTarget() != NULL_KEY) {<br />
llSay(menuChan, "die");<br />
target = startPos;<br />
if (msg == "ground") {<br />
vector primSize = llGetScale();<br />
target.z = llGround(ZERO_VECTOR) + (primSize.z / 2);<br />
llSensorRemove();<br />
}<br />
else if (msg == "start") {<br />
target = startPos;<br />
llSensorRemove();<br />
}<br />
else {<br />
target.z = (float) msg;<br />
rezTest = 1;<br />
}<br />
posJump();<br />
if (rezTest) {<br />
if (rezObj == "")<br />
rezObj = llGetInventoryName(INVENTORY_OBJECT, 0);<br />
llRezObject(rezObj, llGetPos() + rezOffset, ZERO_VECTOR, ZERO_ROTATION, menuChan);<br />
rezTest = 0;<br />
llSensorRepeat("", "", AGENT, sensorRange, PI, 60.0);<br />
}<br />
llUnSit(llAvatarOnSitTarget());<br />
}<br />
else if (~llListFindList(objList,[msg])) {<br />
index = llListFindList(objList,[msg]);<br />
rezObj = msg;<br />
rezOffset = llList2Vector(offsetList, index);<br />
llDialog(id, "Pick an elevation", destList, menuChan);<br />
}<br />
}<br />
touch_start(integer total_number) {<br />
if (!offsetTest) {<br />
id = llDetectedKey(0);<br />
menuHandle = llListen(menuChan, "", "", "");<br />
if (llGetOwner() == id) {<br />
llDialog(id, "Choice",["Height", "Object", "Set Offset"], menuChan);<br />
}<br />
else {<br />
llDialog(id, "Choice",["Height", "Object"], menuChan);<br />
}<br />
}<br />
else {<br />
if (llVecDist(target, llGetPos()) > 10)<br />
llOwnerSay("Too far. Try again");<br />
else {<br />
rezOffset = (target - llGetPos()) + rezOffset;<br />
offsetList = llListReplaceList(offsetList,[rezOffset], index, index);<br />
offsetTest = 0;<br />
llListenRemove(menuHandle);<br />
llUnSit(llAvatarOnSitTarget());<br />
}<br />
}<br />
}<br />
sensor(integer n) {<br />
<br />
}<br />
no_sensor() {<br />
llSay(menuChan, "die");<br />
llSensorRemove();<br />
target = startPos;<br />
posJump();<br />
}<br />
changed(integer change) {<br />
if (CHANGED_INVENTORY & change) {<br />
inventory();<br />
}<br />
else if (CHANGED_LINK & change) {<br />
if (llAvatarOnSitTarget() != NULL_KEY) {<br />
key id = llAvatarOnSitTarget();<br />
llSetText("", <0, 0, 0 >, 0);<br />
menuHandle = llListen(menuChan, "", "", "");<br />
llSetClickAction(CLICK_ACTION_TOUCH);<br />
if (id == llGetOwner()) {<br />
llDialog(llAvatarOnSitTarget(), "Choice",["Height", "Object", "Set Offset"], menuChan);<br />
}<br />
else {<br />
llDialog(llAvatarOnSitTarget(), "Choice",["Height", "Object"], menuChan);<br />
}<br />
}<br />
else {<br />
llSetText("Sit and touch to ascend", <0, 0, 0 >, 1.0);<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
llListenRemove(menuHandle);<br />
}<br />
}<br />
else if (CHANGED_OWNER & change) {<br />
llResetScript();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Multi Item Rezzer}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett&diff=175133User:Jesse Barnett2008-12-15T00:11:36Z<p>Jesse Barnett: /* Scripts & Snippets */</p>
<hr />
<div>{{LSL Header}}<br />
<br />
==About: Jesse Barnett==<br />
Scripter. You can find me in Aditi or the scripting forum.<br />
<br />
==Rant about the forums==<br />
Still waiting for LL to update the forum software!<br />
<br />
<<< Thank you SuezzaneC!! Yep info was out of date>>><br />
<br />
==Outside Editors==<br />
*[[http://www.lsleditor.org/Download.aspx LSLEditor]] Love it!<br />
<br />
*[[User:Jesse_Barnett/Scite|My Scite page]] Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.(Page is under construction)<br />
<br />
==Scripts & Snippets==<br />
I made em. You learn from em. Don't sell em!<br />
<br />
*[[3D Radar|3D Radar]] :: Rezzes a ball for each avatar in range. Each ball tracks it's on AV and displays distance.<br />
<br />
<br />
*[[AO Overriding Pose Ball|AO Overriding Pose Ball]] :: No more having to type "/ao off/on" When you sit down or get up anymore!!<br />
<br />
<br />
*[[High Altitude Rezzer|High Altitude Rezzer]] :: Create a vehicle that goes straight up to a set altitude and then rezzes a work platform, garden, private spot or whatever else you put in it's contents.<br />
<br />
<br />
*[[Multi Item Rezzer|Multi Item Rezzer]] :: A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object. Allows the owner to change the rez offset and has a scanner inside, if no one is around the rezzed object will derez and the rezzer will return to it's start position.<br />
<br />
<br />
*[[User:Jesse_Barnett/SandBox_Blox|SandBox Blox]] :: Highly addictive and fun. Blocks you can stick together by touch. Good example to learn about one of the new Detected Touch functions and has some interesting math.<br />
<br />
<br />
*[[Sim Map Particle Projector|Sim Map Particle Projector]] :: Creates a floating map of the sim that the script is in. Demonstrates how to work with the map api.<br />
<br />
<br />
*[[User:Jesse_Barnett/Slurl_TP_HUD|Slurl TP HUD]] :: Check it out. I love my newest TP HUD. Has a couple of different tricks for the newer scripter to learn from.<br />
<br />
<br />
*[[Teleport HUD|Teleport HUD]] :: NOW IT WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&diff=175123Category:LSL Library2008-12-15T00:08:39Z<p>Jesse Barnett: /* LSL Script Library */</p>
<hr />
<div>{{LSL Header|ml=*}}{{RightToc}}<br />
==Script Library==<br />
<br />
<div id="box"><br />
<div style="padding: 0.5em 0.5em 1.5em"><br />
Come to this page to see complex examples that show how to combine parts of LSL.<br />
<br />
Go to the [[:Category:LSL Examples|LSL Examples]] page to see brief examples of how to use parts of LSL <br />
<br />
Why collect complex examples here? Well, ...<br />
<br />
There are many [[script|scripts]] that have become buried in the [http://forums.secondlife.com/forumdisplay.php?f=15 Scripting Library forum], were lost with the death of the scripting forums, or sit idle in [[inventory|inventories]] that could be useful and should be more accessible.<br />
<br />
Other scripters may be in the same situation. This wiki is a well-suited medium for a script library. Feel free to add your scripts to the script library by creating new pages for them and linking to those pages here.<br />
<br />
Note that there are many more scripts in the LSL Library here, but you can't get to them if you don't know they exist, because they are subpages now, instead of an automatically updated category. Good luck searching.<br />
</div><br />
</div><br />
<br />
<div id="box"><br />
<br />
== Rules for posting: ==<br />
<div style="padding: 0.5em"><br />
#Your script must be tested and working. If it's not, stick it in your user-space until it is. This is a list of working, usable scripts.<br />
#Add a link to your script's page here. Link back to this page from your script's page. Start your page with <nowiki>{{LSL Header}}</nowiki>.<br />
#Do not add scripts that duplicate the same functionality as an existing script or built in {{LSLGC|Functions|function}}. If yours does, explain why.<br />
#Do not list simple scripts here. Include those among the [[:Category:LSL Examples|LSL Examples]] instead.<br />
</div></div><br />
<br />
<div id="box"><br />
==LSL Script Library==<br />
<br />
{| {{Prettytable}}<br />
|-<br />
|{{Hl2}}| '''Name'''<br />
|{{Hl2}}| '''Creator'''<br />
|{{Hl2}}| '''Description'''<br />
|-<br />
||[[3D Radar]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||Rezzes a ball for each avatar in range. Each ball tracks its own AV and displays distance.<br />
|-<br />
||[[AdvancedNotecardReader]]<br />
||[[Lear Cale|Lear Cale]]<br />
||Robust configuration notecard reader; supports multiple notecards with same suffix, handles reconfig on inventory change, and does not usurp the default state.<br />
|-<br />
||[[AntiDelay Node]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Uses llMessageLinked to stop those pesky delays.<br />
|-<br />
||[[AO Overriding Pose Ball]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||No more turning your AO off and on when you sit down<br />
|-<br />
||[[ARCFOUR Strong Encryption Implementation]]<br />
||[[User:Nekow42 Zarf|Nekow42 Zarf]]<br />
||An LSL implementation of ARCFOUR, the most popular stream cipher still in use. It is licensed under a Creative Commons Attribution 3.0 license.<br />
|-<br />
||[[Assembly Programming Language|Assembly-Like Programming Language]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||A compiler that runs assembly-like programs.<br />
|-<br />
||[[Associative Array Emulator|Associative Array (Dictionary) Emulator]]<br />
||[[User:Alynna Vixen|Alynna Vixen]]<br />
||This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.<br />
|-<br />
||[[Basic Encryption Modules]]<br />
||[[User:Beverly Larkin|Beverly Larkin]]<br />
||Basic encryption scripts, allows you to encrypt a float and shout it to another prim on a randomly chosen channel.<br />
|-<br />
||[[Binary Clock v1.1|Binary Clock]]<br />
||[[User:Fox Diller|Fox Diller]]<br />
||A Binary Clock.<br />
|-<br />
||[[Be happy]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Basic smile attachment script, makes your avatar smile.<br />
|-<br />
||[[Blog Feed]]<br />
||[[User:Kageshen Kirax|Kageshen Kirax]]<br />
||Displays the latest blog.<br />
|-<br />
||[[Builders Buddy|Builder's Buddy Tool]]<br />
||[[User:Newfie Pendragon|Newfie Pendragon]]<br />
||Script to easily move/rotate large builds that exceed the linkable size limit (30 meters).<br />
|-<br />
||[[Camera Sync]]<br />
||[[User:Meyermagic Salome|Meyermagic Salome]] and [[User:Nomad Padar|Nomad Padar]]<br />
||A system to synchronize the cameras of two avatars.<br />
|-<br />
||[[Chatbot]]<br />
||Anonymous<br />
||Compile and run the LSL you type on a channel, faster than you can thru the 2007-08 SL GUI.<br />
|-<br />
||[[Chat Logger (GPL)]]<br />
||[[User:Nobody Fugazi|Nobody Fugazi]]<br />
||Chat logger which requests permission from participants before recording them.<br />
|-<br />
||[[Chat_Relay|Chat Relay]]<br />
||[[User:grumble Loudon|grumble Loudon]]<br />
||A Chat relay which can be routed using a path header and won't echo.<br />
|-<br />
||[[Code Racer]]<br />
||Anonymous<br />
||Race two versions of code forever, to see which runs faster.<br />
|-<br />
||[[Code Sizer]]<br />
||Anonymous<br />
||Count the bytes compiled from source code, to measure how to write small code.<br />
|-<br />
||[[Color conversion scripts|Color Conversion]]<br />
||[[User:Sally LaSalle|Sally LaSalle]]<br />
||Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV).<br />
|-<br />
||[[Color script]]<br />
||[[User:Masakazu Kojima|Masakazu Kojima]]<br />
||Script for changing colors trough a listener with pre-defined colors.<br />
|-<br />
||[[Library Combined Library|Combined Library]]<br />
||[[User:Strife Onizuka|Strife Onizuka]]<br />
||Library of mostly encoding and decoding functions, some more useful then others.<br />
* String functions: Replace / Trim right / Trim left / Trim both<br />
* Unicode conversion: UTF8 to Unicode / Unicode to UTF8<br />
* List functions: Replace / Compare<br />
|-<br />
||[[Computer:jaycoonlanguage]]<br />
||[[User:jayco121 Bing|jayco121 Bing]]<br />
|| A language written in LSL that is meant for my computer (available at the shop).<br />
|-<br />
||[[Library_Chat_Relay|Conversation Relay]]<br />
||[[User:Jippen Faddoul|Jippen Faddoul]]<br />
||Chat relay which requests permission from participants before relaying their messages. Also includes their attachments. (ToS compliant).<br />
|-<br />
||[[Curtain script]]<br />
||[[User:Zilla Larsson|Zilla Larsson]]<br />
||A simple script to retract/stretch curtains, blinds, bedcovers and more<br />
|-<br />
||[[Dataserver API]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Dataserver Framework for Notecards.<br />
|-<br />
||[[Date Library]]<br />
||[[User:Corto Maltese|Corto Maltese]]<br />
|| Date library, based on number of day since march 3rd 1600, can be used to calculate weekday, date differences, and date offset, and date formating.<br />
|-<br />
||[[Days in Month]]<br />
||[[User:IntLibber Brautigan|IntLibber Brautigan]]<br />
||Clicking on it returns the number of days in the present month. Useful for scripting calendars and tier systems that need to know the number of days in the month at hand or to calculate for any month. Even adjusts for leap years.<br />
|-<br />
||[[Day of the Week]]<br />
||[[User:DoteDote Edison|DoteDote Edison]]<br />
||Function to get day of the week from [[llGetUnixTime]].<br />
|-<br />
||[[Deed Tools]]<br />
||[[User:Falados Kapuskas|Falados Kapuskas]]<br />
||Tools that allow the creator to modify Group-Owned (Deeded) Objects via chat.<br />
|-<br />
||[[Describe Chatter]]<br />
||Anonymous<br />
||Chat to see yourself as others do.<br />
|-<br />
||[[Drink script]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Used mainly for food and drink in Second Life.<br />
|-<br />
||[[ClickAndDrag]]<br />
||[[User:Nexii Malthus|Nexii Malthus]]<br />
|| Click and Drag user interface elements using dynamic feedback<br />
|-<br />
||[[Dialog Control]]<br />
||[[User:Nargus Asturias|Nargus Asturias]]<br />
|| A (not-so) simple dialog control script. Call dialog and receive selected value via link_message(), with built-in timer and link_message() notification on time out. Supports multi-pages dialog and numeric property dialog. Button text and dialog's returned value can differ.<br />
|-<br />
||[[Dialog Menus Control]]<br />
||[[User:Nargus Asturias|Nargus Asturias]]<br />
|| An extension to Nargus Dialog Control. This menus control allow multi-level menus through SL dialog system. It can also recall last used menus. Menus are saved and pre-formatted for faster access. Though it is not the fastest, nor most memory efficient, but it should make it easier to use.<br />
|-<br />
||[[Dialog NumberPad|Dialog Number Pad]]<br />
||[[User:DoteDote Edison|DoteDote Edison]]<br />
||Use a dialog to accept positive integer input from users.<br />
|-<br />
||[[Efficiency Tester]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Tests the speed of a function.<br />
|-<br />
||[[Email-to-IM|Email2IM]]<br />
||[[User:DoteDote Edison|DoteDote Edison]]<br />
||Send IMs to SL friends via email (translate emails from friends into IMs).<br />
|-<br />
||[[Fix Small Prims|Fix_Small_Prims]]<br />
||[[User:Emma Nowhere|Emma Nowhere]]<br />
||Finds and adjusts the smallest prims in a linkset so that it can be scaled down further.<br />
|-<br />
||[[Float2Hex]]<br />
||[[User:Strife Onizuka|Strife Onizuka]]<br />
||Very useful for transporting [[float|floats]].<br />
|-<br />
||[[Follower (script)|Follower]]<br />
||Unknown, uploaded by [[User:Slik Swindlehurst|Slik Swindlehurst]]<br />
||Makes an object follow the nearest person. Do not use for [[grief|griefing]].<br />
|-<br />
||[[Geometric|Geometric Library]]<br />
||Community Project<br />
||A substantial amount of various geometric functions for intersection and other purposes of 3D maths.<br />
|-<br />
||[[GetTimestampOffset]]<br />
||[[User:Siann_Beck|Siann Beck]]<br />
||Returns llGetTimestamp() with an hour offset.<br />
|-<br />
||[[Give InvItem every n hours]]<br />
||[[User:Criz Collins|Criz Collins]]<br />
||Will give an inventory item on touch only every n hours, even if somebody touches the object more than once. <br />
|-<br />
||[[Give random object]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Touch to recieve a random object in the prim's inventory<br />
|-<br />
||[[Google Charts]]<br />
||[[User:Dedric Mauriac|Dedric Mauriac]]<br />
||Create links to display raw data as a chart image.<br />
|-<br />
||[[Go transparent when walking]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||An attachment that goes invisble when you walk and visible when you don't walk.<br />
|-<br />
||[[Group Privacy]]<br />
||[[User:Chance Unknown|Chance Unknown]]<br />
||Security device to insure members of a group can have a private area. Deactivates when nobody present.<br />
|-<br />
||[[Group key finder]]<br />
||[[User:Emmas Seetan| Emmas Seetan]]<br />
||Touch to find the key of the group<br />
|-<br />
||[[Hello Avatar]]<br />
||Linden Lab<br />
||SL's default script.<br />
|-<br />
||[[Holodeck]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Home Rezzing System (Open Source).<br />
|-<br />
||[[Intra-Region Update Server]]<br />
||[[User:Emma_Nowhere|Emma Nowhere]]<br />
||Centrally update objects such as Freeview screens or teleport pads within a region that are configured by notecards or contain modifiable objects or media assets.<br />
|-<br />
||[[Interpolation|Interpolation Library]]<br />
||[[User:Nexii_Malthus|Nexii Malthus]]<br />
||A small set of interpolation functions.<br />
|-<br />
||[[Inventory Menu]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Inventory Based Menu System.<br />
|-<br />
||[[iTunes RPC Email|iTunes RPC]]<br />
||[[User:Fox Diller|Fox Diller]]<br />
||iTunes RPC via LSL [[llEmail]] and [[llRemoteDataReply]].<br />
|-<br />
||[[Key Pad Door|Keypad Door]]<br />
||[[User:Tdub Dowler|Tdub Dowler]]<br />
|| Door and keypad with changeable code. Follow instructions carefully!<br />
|-<br />
||[[LSL_languageAPI]]<br />
||[[User:Gypsy paz|Gypsy Paz]]<br />
||Multi-lingual API from notecard based language files<br />
|-<br />
||[[Last Sound System]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An LSL Last.fm client.<br />
|-<br />
||[[Listener Script]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Use to listen to other people's conversations (Like spying)<br />
|-<br />
||[[List2CSV]]<br />
||[[User:Kunnis Basiat|Kunnis Basiat]]<br />
||List2CSV & CSV2List that include perserving type and escaping characters.<br />
|-<br />
||[[Load URL]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Touch to get a dialog to visit the URL inside the script.<br />
|-<br />
||[[Mandelbrot Explorer]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An interactive fractal explorer.<br />
|-<br />
||[[Merge Sort]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Implements a Merge Sort in LSL, however this code is 300(ish) times slower than [[llListSort]]. Don't use this in a script!<br />
|-<br />
||[[Minesweeper]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||A simple minesweeper game.<br />
|-<br />
||[[Multi Item Rezzer|Multi Item Rezzer]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object.<br />
|-<br />
||[[Multirezzer|Multirezzer (on collision)]]<br />
||[[User:Beet Streeter|Beet Streeter]]<br />
||Spawns up to 10 objects when the object containing the script collides with a user.<br />
|-<br />
||[[Name2Key in LSL]]<br />
||[[User:Maeva Anatine|Maeva Anatine]]<br />
||Get the Name2Key feature inside your scripts. Works even on lastly subscribed avatars.<br />
|-<br />
||[[Object to Data v1.2|Object to Data]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Turns an object into text (and back). Allows people to transfer objects through notecards.<br />
|-<br />
||[[Open Group Join]]<br />
||[[User:Alicia Stella|Alicia Stella]]<br />
||User Touches Object to Join Group from Group Info window, (no bot.)<br />
|-<br />
||[[ParseString2List]]<br />
||[[User:Strife Onizuka|Strife Onizuka]]<br />
||Same as [[llParseString2List]] and [[llParseStringKeepNulls]], but not limited to 8 spacers or separators. Thus substitute a call to the [[llParseString2List]] and [[llParseStringKeepNulls]] functions by a call to [[Parse_String_To_List|ParseString2List]] whenever you have more than 8 separators or more than 8 spacers.<br />
|-<br />
||[[Pathfinder]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||A potential field based pathfinding library.<br />
|-<br />
||[[Phantom Child]]<br />
||[[User:Aeron Kohime|Aeron Kohime]]<br />
||Causes a child in a link set to become phantom without the entire object becoming phantom.<br />
|-<br />
||[[Phantom Maker]]<br />
||[[User:Xaviar_Czervik|Xaviar Czervik]]<br />
||An object that turns avatars into phantoms, without having to remain sitting.<br />
|-<br />
||[[PosJump]]<br />
||[[User:Uchi Desmoulins|Uchi Desmoulins]]<br />
||A much more efficient alternative to the popular [[warpPos]] function for bypassing 10m distance-moved limitations.<br />
|-<br />
||[[Prefix Calculator]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
|| A calculator that evaluates expressions in prefix notation. <br />
<code>+ 3 4 = 5. * + 1 2 + 3 4 = 14.</code><br />
|-<br />
||[[Pseudo-random Number Generator]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Generates a Pseudo-random number between -0x7FFFFFFF and 0x7FFFFFFF<br />
|-<br />
||[[Random AV Profile Projector]]<br />
||[[User:Debbie Trilling|Debbie Trilling]]<br />
||Randomly selects an AV from a crowd & then projects their profile picture as a 'holographic' image <br />
|-<br />
||[[Random Object Vendor]]<br />
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]<br />
||Simple vendor that gives out random objects when paid the right amount <br />
|-<br />
||[[RavText]]<br />
||[[User:Ravenous Dingo|Ravenous Dingo]]<br />
||An alternate to XyText. This is a lightweight, multiple font 10 character text display system. It only supports uppercase alphanumeric text and a few special characters, but it is very fast, renders quickly and supports multiple fonts. It is meant for specialized use when all that is desired is basic, fast text display and the extra "bells and whistles" are not needed.<br />
|-<br />
||[[Say Region Frames Per Second|Region Frames Per Second]]<br />
||[[User:Heymeriou Mystakidou|Heymariou Mystakidou]]<br />
|| Says the region name and frames per second out loud on command.<br />
|-<br />
||[[sbDialog]]<br />
||[[User:Siann_Beck|Siann Beck]]<br />
||A simple replacement function for [[llDialog]]. It re-orders the button list so that the button values, as passed to it, display left-to-right, top-to-bottom. It also opens a [[llListen|listen]] on the specified channel, and returns the handle.<br />
|-<br />
||[[Scheduler]]<br />
||[[User:Haravikk Mistral|Haravikk Mistral]]<br />
||Schedule multiple events using a single script timer<br />
|-<br />
||[[Script Override Functions]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||bypass default strings, integer etc in chat channel.<br />
|-<br />
||[[Self Upgrading Script Enhanced]]<br />
||[[User:Cron Stardust|Cron Stardust]]<br />
||Keeps only latest version of the script on prim (even with multiple adds of the same script!)<br />
|-<br />
||[[SHA1|SHA1 Hash]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Preforms a SHA1 Hash on an input text. Similar to MD5 only (slightly) more secure.<br />
|-<br />
||[[Sim Map Particle Projector]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||Displays a floating map of the sim the script is in.<br />
|-<br />
||[[SLateIt]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An augmented virtual reality HUD.<br />
|-<br />
||[[SLetanque]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An LSL petanque game.<br />
|-<br />
||[[SLURL HUD]]<br />
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]<br />
||Touch this HUD to get a SLURL through IM, email and floating text.<br />
|-<br />
||[[SL Mail V1.2]]<br />
||[[User:Flennan Roffo|Flennan Roffo]]<br />
||Second Life mail client V1.2 (released sept'07). Send and receive mail from within Second Life from and to any address. With Address Book function and many chat commands. V1.3 is upcoming soon! <br />
|-<br />
||[[SL_NTPoHTTP_v1.1_client|SL NTPoHTTP client]]<br />
|[[User:SignpostMarv Martin|SignpostMarv Martin]]<br />
||Second Life Needs Time Parsing over Hyper Text Transfer Protocol<br />
Emulates the function of [[llGetWallclock]] for any timezone by using SLOpenID's SLNTPoHTTP service. Also supports ISO 8601 and RFC 2822 timestamps. Script is dependent upon an external service operated by the author!<br />
|-<br />
||[[Spiral Staircase Generator]]<br />
|[[User:Meyermagic Salome|Meyermagic Salome]]<br />
||Generates nice looking spiral staircases without much hassle.<br />
|-<br />
||[[String Compare]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Compares two strings and reliably returns either 1, -1, or 0 if they are the same.<br />
|-<br />
||[[Teleport HUD]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.<br />
|-<br />
||[[Texture Menu Management|Texture Management]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Dialog Menu based Texture Selection.<br />
|-<br />
||[[Tic Tac Toe]]<br />
||[[User:CG Linden|CG Linden]]<br />
||Step by step demo on how to implement a larger scripting project<br />
|-<br />
||[[TightList]]<br />
||[[User:Strife Onizuka|Revolution Perenti]]<br />
||Tight List is a family of functions for encoding lists as strings and then decoding them back into lists. <br />
<br />
There are two flavors: TightList and TightListType. TightListType preserves types and uses a 6 char header, while TightList uses a 1 char header that doesn't preserve type. <br />
|-<br />
||[[Timer Module]]<br />
||[[User:Isabelle Aquitaine|Isabelle Aquitaine]]<br />
||Manage multiple timers via linked messages.<br />
|-<br />
||[[Touch A Quote]]<br />
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]<br />
||Touch an object to read quotes sequentially from a notecard<br />
|-<br />
||[[Unix2DateTime]]<br />
|[[User:Flennan Roffo|Flennan Roffo]]<br />
||Conversion from Unix time (llGetUnixTime()) to date and time string and vice versa.<br />
|-<br />
||[[Under Age Boot]]<br />
|[[User:Chance Unknown|Chance Unknown]]<br />
||Security device example to teleport home accounts below a minimum age limit; can be useful in combating free griefer accounts.<br />
|-<br />
||[[Unmutable Descript Nagger]]<br />
|[[User:Bobbyb30 Zohari|Bobbyb30 Zohari]]<br />
||To nag avatars to take off their scripted attatchments.<br />
|-<br />
||[[Visitor Logger (Web/Basic) ]]<br />
|[[User:Buddy Sprocket|Buddy Sprocket]]<br />
||A very basic visitor logger - log visitors in SL to a text file on your web-site.<br />
|-<br />
||[[Vote Simple]]<br />
|[[User:JB_Kraft|JB Kraft]]<br />
||Simple vote collector. One avi, one vote.<br />
|-<br />
||[[WarpPos]]<br />
|[[User:Keknehv Psaltery|Keknehv Psaltery]]<br />
||Non-physical movement without the 10m limit.<br />
|-<br />
||[[Window Control]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||For window opacity, helpful for buildings.<br />
|-<br />
||[[WHMcs SecondLife plugin]]<br />
|[[User:Alicia Sautereau|Alicia Sautereau]]<br />
||Linden Dollar payment plugin for the WHMcs hosting portal.<br />
|-<br />
||[[XTEA Strong Encryption Implementation]]<br />
||[[User:Morse Dillon|Morse Dillon]]<br />
||An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm). This is the first known public release of a 'real' strong encryption implementation in LSL and is released under the GNU General Public License (GPL).<br />
|-<br />
||[[XyText 1.5|XyText]]<br />
||[[User:Xylor Baysklef|Xylor Baysklef]]<br />
|| Display text (up to 10 characters) on a prim. Use as many prims as desired.<br />
|-<br />
||[[XyyyyzText|XyyyyzText]]<br />
||[[User:Criz Collins|Criz Collins]]<br />
|| Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO<br />
|-<br />
||[[XyzzyText|XyzzyText]]<br />
||[[User:Thraxis Epsilon|Thraxis Epsilon]] and [[User:Gigs Taggart|Gigs Taggart]]<br />
|| Display text (up to 10 characters) on a prim. Way more efficient than XyText.<br />
|-<br />
||[[Zero Lag Poseball]]<br />
||[[User:Jippen Faddoul|Jippen Faddoul]]<br />
||A simple poseball with no lag<br />
|}<br />
<br />
</div><br />
<div id="box"><br />
<br />
==Support Script Library==<br />
These are scripts in other languages, intended to be run on other systems that support scripts written in LSL<br />
<br />
{| {{Prettytable}}<br />
|-<br />
|{{Hl2}}| '''Name'''<br />
|{{Hl2}}| '''Creator'''<br />
|{{Hl2}}| '''Description'''<br />
|-<br />
||[[HTTP Post request to a PHP server]]<br />
||[[User:Corto Maltese|Corto Maltese]]<br />
|| This small library allows you to make simple POST requests to your website. The libraries allow you to get your request through the variable $_POST on the server. It also include a basic security mechanism aimed to stop hacking. Comprises of LSL client script and PHP server script.<br />
|-<br />
|| Silo<br />
|| [[User:Zero_Linden|Zero Linden]]<br />
|| General purpose data store in PHP. Use this to persist arbitrary data from LSL via [[llHTTPRequest]]. See:<br />
* [http://www.notabene-sl.com/misc/silo-README.txt README] file<br />
* [http://www.notabene-sl.com/misc/silo.tgz silo.tgz] tarball<br />
* forum post [http://forums.secondlife.com/showthread.php?t=119570 Announcement].<br />
|-<br />
|| [[User:SignpostMarv Martin/PHP/llXorBase64StringsCorrect|llXorBase64StringsCorrect]]<br />
|| [[User:SignpostMarv Martin|SignpostMarv Martin]]<br />
|| An implementation of [[llXorBase64StringsCorrect]] in PHP- should be useful if you're using llXorBase64StringsCorrect to do cryptography work in LSL2 and posting it out to the web via [[llHTTPRequest]].<br />
|-<br />
|| [[User:SignpostMarv Martin/PHP/lsl fu.php|lsl_fu.php]]<br />
|| [[User:SignpostMarv Martin|SignpostMarv Martin]]<br />
|| A basic OOP'd PHP Class containing VeloxSeverine's $_POST fixer and Marv's own eccentric ideas for "fixing" things.<br />
|}<br />
</div><br />
<br />
<br />
<div id="box"><br />
<br />
== See Also ==<br />
<div style="padding: 0.5em"><br />
'''Articles'''<br />
*[[:Category:LSL Examples| Examples]]<br />
<br />
</div></div></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&diff=175113Category:LSL Library2008-12-15T00:06:01Z<p>Jesse Barnett: /* LSL Script Library */</p>
<hr />
<div>{{LSL Header|ml=*}}{{RightToc}}<br />
==Script Library==<br />
<br />
<div id="box"><br />
<div style="padding: 0.5em 0.5em 1.5em"><br />
Come to this page to see complex examples that show how to combine parts of LSL.<br />
<br />
Go to the [[:Category:LSL Examples|LSL Examples]] page to see brief examples of how to use parts of LSL <br />
<br />
Why collect complex examples here? Well, ...<br />
<br />
There are many [[script|scripts]] that have become buried in the [http://forums.secondlife.com/forumdisplay.php?f=15 Scripting Library forum], were lost with the death of the scripting forums, or sit idle in [[inventory|inventories]] that could be useful and should be more accessible.<br />
<br />
Other scripters may be in the same situation. This wiki is a well-suited medium for a script library. Feel free to add your scripts to the script library by creating new pages for them and linking to those pages here.<br />
<br />
Note that there are many more scripts in the LSL Library here, but you can't get to them if you don't know they exist, because they are subpages now, instead of an automatically updated category. Good luck searching.<br />
</div><br />
</div><br />
<br />
<div id="box"><br />
<br />
== Rules for posting: ==<br />
<div style="padding: 0.5em"><br />
#Your script must be tested and working. If it's not, stick it in your user-space until it is. This is a list of working, usable scripts.<br />
#Add a link to your script's page here. Link back to this page from your script's page. Start your page with <nowiki>{{LSL Header}}</nowiki>.<br />
#Do not add scripts that duplicate the same functionality as an existing script or built in {{LSLGC|Functions|function}}. If yours does, explain why.<br />
#Do not list simple scripts here. Include those among the [[:Category:LSL Examples|LSL Examples]] instead.<br />
</div></div><br />
<br />
<div id="box"><br />
==LSL Script Library==<br />
<br />
{| {{Prettytable}}<br />
|-<br />
|{{Hl2}}| '''Name'''<br />
|{{Hl2}}| '''Creator'''<br />
|{{Hl2}}| '''Description'''<br />
|-<br />
||[[3D Radar]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||Rezzes a ball for each avatar in range. Each ball tracks its own AV and displays distance.<br />
|-<br />
||[[AdvancedNotecardReader]]<br />
||[[Lear Cale|Lear Cale]]<br />
||Robust configuration notecard reader; supports multiple notecards with same suffix, handles reconfig on inventory change, and does not usurp the default state.<br />
|-<br />
||[[AntiDelay Node]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Uses llMessageLinked to stop those pesky delays.<br />
|-<br />
||[[AO Overriding Pose Ball]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||No more turning your AO off and on when you sit down<br />
|-<br />
||[[ARCFOUR Strong Encryption Implementation]]<br />
||[[User:Nekow42 Zarf|Nekow42 Zarf]]<br />
||An LSL implementation of ARCFOUR, the most popular stream cipher still in use. It is licensed under a Creative Commons Attribution 3.0 license.<br />
|-<br />
||[[Assembly Programming Language|Assembly-Like Programming Language]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||A compiler that runs assembly-like programs.<br />
|-<br />
||[[Associative Array Emulator|Associative Array (Dictionary) Emulator]]<br />
||[[User:Alynna Vixen|Alynna Vixen]]<br />
||This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.<br />
|-<br />
||[[Basic Encryption Modules]]<br />
||[[User:Beverly Larkin|Beverly Larkin]]<br />
||Basic encryption scripts, allows you to encrypt a float and shout it to another prim on a randomly chosen channel.<br />
|-<br />
||[[Binary Clock v1.1|Binary Clock]]<br />
||[[User:Fox Diller|Fox Diller]]<br />
||A Binary Clock.<br />
|-<br />
||[[Be happy]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Basic smile attachment script, makes your avatar smile.<br />
|-<br />
||[[Blog Feed]]<br />
||[[User:Kageshen Kirax|Kageshen Kirax]]<br />
||Displays the latest blog.<br />
|-<br />
||[[Builders Buddy|Builder's Buddy Tool]]<br />
||[[User:Newfie Pendragon|Newfie Pendragon]]<br />
||Script to easily move/rotate large builds that exceed the linkable size limit (30 meters).<br />
|-<br />
||[[Camera Sync]]<br />
||[[User:Meyermagic Salome|Meyermagic Salome]] and [[User:Nomad Padar|Nomad Padar]]<br />
||A system to synchronize the cameras of two avatars.<br />
|-<br />
||[[Chatbot]]<br />
||Anonymous<br />
||Compile and run the LSL you type on a channel, faster than you can thru the 2007-08 SL GUI.<br />
|-<br />
||[[Chat Logger (GPL)]]<br />
||[[User:Nobody Fugazi|Nobody Fugazi]]<br />
||Chat logger which requests permission from participants before recording them.<br />
|-<br />
||[[Chat_Relay|Chat Relay]]<br />
||[[User:grumble Loudon|grumble Loudon]]<br />
||A Chat relay which can be routed using a path header and won't echo.<br />
|-<br />
||[[Code Racer]]<br />
||Anonymous<br />
||Race two versions of code forever, to see which runs faster.<br />
|-<br />
||[[Code Sizer]]<br />
||Anonymous<br />
||Count the bytes compiled from source code, to measure how to write small code.<br />
|-<br />
||[[Color conversion scripts|Color Conversion]]<br />
||[[User:Sally LaSalle|Sally LaSalle]]<br />
||Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV).<br />
|-<br />
||[[Color script]]<br />
||[[User:Masakazu Kojima|Masakazu Kojima]]<br />
||Script for changing colors trough a listener with pre-defined colors.<br />
|-<br />
||[[Library Combined Library|Combined Library]]<br />
||[[User:Strife Onizuka|Strife Onizuka]]<br />
||Library of mostly encoding and decoding functions, some more useful then others.<br />
* String functions: Replace / Trim right / Trim left / Trim both<br />
* Unicode conversion: UTF8 to Unicode / Unicode to UTF8<br />
* List functions: Replace / Compare<br />
|-<br />
||[[Computer:jaycoonlanguage]]<br />
||[[User:jayco121 Bing|jayco121 Bing]]<br />
|| A language written in LSL that is meant for my computer (available at the shop).<br />
|-<br />
||[[Library_Chat_Relay|Conversation Relay]]<br />
||[[User:Jippen Faddoul|Jippen Faddoul]]<br />
||Chat relay which requests permission from participants before relaying their messages. Also includes their attachments. (ToS compliant).<br />
|-<br />
||[[Curtain script]]<br />
||[[User:Zilla Larsson|Zilla Larsson]]<br />
||A simple script to retract/stretch curtains, blinds, bedcovers and more<br />
|-<br />
||[[Dataserver API]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Dataserver Framework for Notecards.<br />
|-<br />
||[[Date Library]]<br />
||[[User:Corto Maltese|Corto Maltese]]<br />
|| Date library, based on number of day since march 3rd 1600, can be used to calculate weekday, date differences, and date offset, and date formating.<br />
|-<br />
||[[Days in Month]]<br />
||[[User:IntLibber Brautigan|IntLibber Brautigan]]<br />
||Clicking on it returns the number of days in the present month. Useful for scripting calendars and tier systems that need to know the number of days in the month at hand or to calculate for any month. Even adjusts for leap years.<br />
|-<br />
||[[Day of the Week]]<br />
||[[User:DoteDote Edison|DoteDote Edison]]<br />
||Function to get day of the week from [[llGetUnixTime]].<br />
|-<br />
||[[Deed Tools]]<br />
||[[User:Falados Kapuskas|Falados Kapuskas]]<br />
||Tools that allow the creator to modify Group-Owned (Deeded) Objects via chat.<br />
|-<br />
||[[Describe Chatter]]<br />
||Anonymous<br />
||Chat to see yourself as others do.<br />
|-<br />
||[[Drink script]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Used mainly for food and drink in Second Life.<br />
|-<br />
||[[ClickAndDrag]]<br />
||[[User:Nexii Malthus|Nexii Malthus]]<br />
|| Click and Drag user interface elements using dynamic feedback<br />
|-<br />
||[[Dialog Control]]<br />
||[[User:Nargus Asturias|Nargus Asturias]]<br />
|| A (not-so) simple dialog control script. Call dialog and receive selected value via link_message(), with built-in timer and link_message() notification on time out. Supports multi-pages dialog and numeric property dialog. Button text and dialog's returned value can differ.<br />
|-<br />
||[[Dialog Menus Control]]<br />
||[[User:Nargus Asturias|Nargus Asturias]]<br />
|| An extension to Nargus Dialog Control. This menus control allow multi-level menus through SL dialog system. It can also recall last used menus. Menus are saved and pre-formatted for faster access. Though it is not the fastest, nor most memory efficient, but it should make it easier to use.<br />
|-<br />
||[[Dialog NumberPad|Dialog Number Pad]]<br />
||[[User:DoteDote Edison|DoteDote Edison]]<br />
||Use a dialog to accept positive integer input from users.<br />
|-<br />
||[[Efficiency Tester]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Tests the speed of a function.<br />
|-<br />
||[[Email-to-IM|Email2IM]]<br />
||[[User:DoteDote Edison|DoteDote Edison]]<br />
||Send IMs to SL friends via email (translate emails from friends into IMs).<br />
|-<br />
||[[Fix Small Prims|Fix_Small_Prims]]<br />
||[[User:Emma Nowhere|Emma Nowhere]]<br />
||Finds and adjusts the smallest prims in a linkset so that it can be scaled down further.<br />
|-<br />
||[[Float2Hex]]<br />
||[[User:Strife Onizuka|Strife Onizuka]]<br />
||Very useful for transporting [[float|floats]].<br />
|-<br />
||[[Follower (script)|Follower]]<br />
||Unknown, uploaded by [[User:Slik Swindlehurst|Slik Swindlehurst]]<br />
||Makes an object follow the nearest person. Do not use for [[grief|griefing]].<br />
|-<br />
||[[Geometric|Geometric Library]]<br />
||Community Project<br />
||A substantial amount of various geometric functions for intersection and other purposes of 3D maths.<br />
|-<br />
||[[GetTimestampOffset]]<br />
||[[User:Siann_Beck|Siann Beck]]<br />
||Returns llGetTimestamp() with an hour offset.<br />
|-<br />
||[[Give InvItem every n hours]]<br />
||[[User:Criz Collins|Criz Collins]]<br />
||Will give an inventory item on touch only every n hours, even if somebody touches the object more than once. <br />
|-<br />
||[[Give random object]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Touch to recieve a random object in the prim's inventory<br />
|-<br />
||[[Google Charts]]<br />
||[[User:Dedric Mauriac|Dedric Mauriac]]<br />
||Create links to display raw data as a chart image.<br />
|-<br />
||[[Go transparent when walking]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||An attachment that goes invisble when you walk and visible when you don't walk.<br />
|-<br />
||[[Group Privacy]]<br />
||[[User:Chance Unknown|Chance Unknown]]<br />
||Security device to insure members of a group can have a private area. Deactivates when nobody present.<br />
|-<br />
||[[Group key finder]]<br />
||[[User:Emmas Seetan| Emmas Seetan]]<br />
||Touch to find the key of the group<br />
|-<br />
||[[Hello Avatar]]<br />
||Linden Lab<br />
||SL's default script.<br />
|-<br />
||[[Multi Item Rezzer|Multi Item Rezzer]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object.<br />
|-<br />
||[[Holodeck]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Home Rezzing System (Open Source).<br />
|-<br />
||[[Intra-Region Update Server]]<br />
||[[User:Emma_Nowhere|Emma Nowhere]]<br />
||Centrally update objects such as Freeview screens or teleport pads within a region that are configured by notecards or contain modifiable objects or media assets.<br />
|-<br />
||[[Interpolation|Interpolation Library]]<br />
||[[User:Nexii_Malthus|Nexii Malthus]]<br />
||A small set of interpolation functions.<br />
|-<br />
||[[Inventory Menu]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Inventory Based Menu System.<br />
|-<br />
||[[iTunes RPC Email|iTunes RPC]]<br />
||[[User:Fox Diller|Fox Diller]]<br />
||iTunes RPC via LSL [[llEmail]] and [[llRemoteDataReply]].<br />
|-<br />
||[[Key Pad Door|Keypad Door]]<br />
||[[User:Tdub Dowler|Tdub Dowler]]<br />
|| Door and keypad with changeable code. Follow instructions carefully!<br />
|-<br />
||[[LSL_languageAPI]]<br />
||[[User:Gypsy paz|Gypsy Paz]]<br />
||Multi-lingual API from notecard based language files<br />
|-<br />
||[[Last Sound System]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An LSL Last.fm client.<br />
|-<br />
||[[Listener Script]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Use to listen to other people's conversations (Like spying)<br />
|-<br />
||[[List2CSV]]<br />
||[[User:Kunnis Basiat|Kunnis Basiat]]<br />
||List2CSV & CSV2List that include perserving type and escaping characters.<br />
|-<br />
||[[Load URL]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Touch to get a dialog to visit the URL inside the script.<br />
|-<br />
||[[Mandelbrot Explorer]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An interactive fractal explorer.<br />
|-<br />
||[[Merge Sort]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Implements a Merge Sort in LSL, however this code is 300(ish) times slower than [[llListSort]]. Don't use this in a script!<br />
|-<br />
||[[Minesweeper]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||A simple minesweeper game.<br />
|-<br />
||[[Multirezzer|Multirezzer (on collision)]]<br />
||[[User:Beet Streeter|Beet Streeter]]<br />
||Spawns up to 10 objects when the object containing the script collides with a user.<br />
|-<br />
||[[Name2Key in LSL]]<br />
||[[User:Maeva Anatine|Maeva Anatine]]<br />
||Get the Name2Key feature inside your scripts. Works even on lastly subscribed avatars.<br />
|-<br />
||[[Object to Data v1.2|Object to Data]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Turns an object into text (and back). Allows people to transfer objects through notecards.<br />
|-<br />
||[[Open Group Join]]<br />
||[[User:Alicia Stella|Alicia Stella]]<br />
||User Touches Object to Join Group from Group Info window, (no bot.)<br />
|-<br />
||[[ParseString2List]]<br />
||[[User:Strife Onizuka|Strife Onizuka]]<br />
||Same as [[llParseString2List]] and [[llParseStringKeepNulls]], but not limited to 8 spacers or separators. Thus substitute a call to the [[llParseString2List]] and [[llParseStringKeepNulls]] functions by a call to [[Parse_String_To_List|ParseString2List]] whenever you have more than 8 separators or more than 8 spacers.<br />
|-<br />
||[[Pathfinder]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||A potential field based pathfinding library.<br />
|-<br />
||[[Phantom Child]]<br />
||[[User:Aeron Kohime|Aeron Kohime]]<br />
||Causes a child in a link set to become phantom without the entire object becoming phantom.<br />
|-<br />
||[[Phantom Maker]]<br />
||[[User:Xaviar_Czervik|Xaviar Czervik]]<br />
||An object that turns avatars into phantoms, without having to remain sitting.<br />
|-<br />
||[[PosJump]]<br />
||[[User:Uchi Desmoulins|Uchi Desmoulins]]<br />
||A much more efficient alternative to the popular [[warpPos]] function for bypassing 10m distance-moved limitations.<br />
|-<br />
||[[Prefix Calculator]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
|| A calculator that evaluates expressions in prefix notation. <br />
<code>+ 3 4 = 5. * + 1 2 + 3 4 = 14.</code><br />
|-<br />
||[[Pseudo-random Number Generator]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Generates a Pseudo-random number between -0x7FFFFFFF and 0x7FFFFFFF<br />
|-<br />
||[[Random AV Profile Projector]]<br />
||[[User:Debbie Trilling|Debbie Trilling]]<br />
||Randomly selects an AV from a crowd & then projects their profile picture as a 'holographic' image <br />
|-<br />
||[[Random Object Vendor]]<br />
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]<br />
||Simple vendor that gives out random objects when paid the right amount <br />
|-<br />
||[[RavText]]<br />
||[[User:Ravenous Dingo|Ravenous Dingo]]<br />
||An alternate to XyText. This is a lightweight, multiple font 10 character text display system. It only supports uppercase alphanumeric text and a few special characters, but it is very fast, renders quickly and supports multiple fonts. It is meant for specialized use when all that is desired is basic, fast text display and the extra "bells and whistles" are not needed.<br />
|-<br />
||[[Say Region Frames Per Second|Region Frames Per Second]]<br />
||[[User:Heymeriou Mystakidou|Heymariou Mystakidou]]<br />
|| Says the region name and frames per second out loud on command.<br />
|-<br />
||[[sbDialog]]<br />
||[[User:Siann_Beck|Siann Beck]]<br />
||A simple replacement function for [[llDialog]]. It re-orders the button list so that the button values, as passed to it, display left-to-right, top-to-bottom. It also opens a [[llListen|listen]] on the specified channel, and returns the handle.<br />
|-<br />
||[[Scheduler]]<br />
||[[User:Haravikk Mistral|Haravikk Mistral]]<br />
||Schedule multiple events using a single script timer<br />
|-<br />
||[[Script Override Functions]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||bypass default strings, integer etc in chat channel.<br />
|-<br />
||[[Self Upgrading Script Enhanced]]<br />
||[[User:Cron Stardust|Cron Stardust]]<br />
||Keeps only latest version of the script on prim (even with multiple adds of the same script!)<br />
|-<br />
||[[SHA1|SHA1 Hash]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Preforms a SHA1 Hash on an input text. Similar to MD5 only (slightly) more secure.<br />
|-<br />
||[[Sim Map Particle Projector]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||Displays a floating map of the sim the script is in.<br />
|-<br />
||[[SLateIt]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An augmented virtual reality HUD.<br />
|-<br />
||[[SLetanque]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An LSL petanque game.<br />
|-<br />
||[[SLURL HUD]]<br />
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]<br />
||Touch this HUD to get a SLURL through IM, email and floating text.<br />
|-<br />
||[[SL Mail V1.2]]<br />
||[[User:Flennan Roffo|Flennan Roffo]]<br />
||Second Life mail client V1.2 (released sept'07). Send and receive mail from within Second Life from and to any address. With Address Book function and many chat commands. V1.3 is upcoming soon! <br />
|-<br />
||[[SL_NTPoHTTP_v1.1_client|SL NTPoHTTP client]]<br />
|[[User:SignpostMarv Martin|SignpostMarv Martin]]<br />
||Second Life Needs Time Parsing over Hyper Text Transfer Protocol<br />
Emulates the function of [[llGetWallclock]] for any timezone by using SLOpenID's SLNTPoHTTP service. Also supports ISO 8601 and RFC 2822 timestamps. Script is dependent upon an external service operated by the author!<br />
|-<br />
||[[Spiral Staircase Generator]]<br />
|[[User:Meyermagic Salome|Meyermagic Salome]]<br />
||Generates nice looking spiral staircases without much hassle.<br />
|-<br />
||[[String Compare]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Compares two strings and reliably returns either 1, -1, or 0 if they are the same.<br />
|-<br />
||[[Teleport HUD]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.<br />
|-<br />
||[[Texture Menu Management|Texture Management]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Dialog Menu based Texture Selection.<br />
|-<br />
||[[Tic Tac Toe]]<br />
||[[User:CG Linden|CG Linden]]<br />
||Step by step demo on how to implement a larger scripting project<br />
|-<br />
||[[TightList]]<br />
||[[User:Strife Onizuka|Revolution Perenti]]<br />
||Tight List is a family of functions for encoding lists as strings and then decoding them back into lists. <br />
<br />
There are two flavors: TightList and TightListType. TightListType preserves types and uses a 6 char header, while TightList uses a 1 char header that doesn't preserve type. <br />
|-<br />
||[[Timer Module]]<br />
||[[User:Isabelle Aquitaine|Isabelle Aquitaine]]<br />
||Manage multiple timers via linked messages.<br />
|-<br />
||[[Touch A Quote]]<br />
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]<br />
||Touch an object to read quotes sequentially from a notecard<br />
|-<br />
||[[Unix2DateTime]]<br />
|[[User:Flennan Roffo|Flennan Roffo]]<br />
||Conversion from Unix time (llGetUnixTime()) to date and time string and vice versa.<br />
|-<br />
||[[Under Age Boot]]<br />
|[[User:Chance Unknown|Chance Unknown]]<br />
||Security device example to teleport home accounts below a minimum age limit; can be useful in combating free griefer accounts.<br />
|-<br />
||[[Unmutable Descript Nagger]]<br />
|[[User:Bobbyb30 Zohari|Bobbyb30 Zohari]]<br />
||To nag avatars to take off their scripted attatchments.<br />
|-<br />
||[[Visitor Logger (Web/Basic) ]]<br />
|[[User:Buddy Sprocket|Buddy Sprocket]]<br />
||A very basic visitor logger - log visitors in SL to a text file on your web-site.<br />
|-<br />
||[[Vote Simple]]<br />
|[[User:JB_Kraft|JB Kraft]]<br />
||Simple vote collector. One avi, one vote.<br />
|-<br />
||[[WarpPos]]<br />
|[[User:Keknehv Psaltery|Keknehv Psaltery]]<br />
||Non-physical movement without the 10m limit.<br />
|-<br />
||[[Window Control]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||For window opacity, helpful for buildings.<br />
|-<br />
||[[WHMcs SecondLife plugin]]<br />
|[[User:Alicia Sautereau|Alicia Sautereau]]<br />
||Linden Dollar payment plugin for the WHMcs hosting portal.<br />
|-<br />
||[[XTEA Strong Encryption Implementation]]<br />
||[[User:Morse Dillon|Morse Dillon]]<br />
||An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm). This is the first known public release of a 'real' strong encryption implementation in LSL and is released under the GNU General Public License (GPL).<br />
|-<br />
||[[XyText 1.5|XyText]]<br />
||[[User:Xylor Baysklef|Xylor Baysklef]]<br />
|| Display text (up to 10 characters) on a prim. Use as many prims as desired.<br />
|-<br />
||[[XyyyyzText|XyyyyzText]]<br />
||[[User:Criz Collins|Criz Collins]]<br />
|| Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO<br />
|-<br />
||[[XyzzyText|XyzzyText]]<br />
||[[User:Thraxis Epsilon|Thraxis Epsilon]] and [[User:Gigs Taggart|Gigs Taggart]]<br />
|| Display text (up to 10 characters) on a prim. Way more efficient than XyText.<br />
|-<br />
||[[Zero Lag Poseball]]<br />
||[[User:Jippen Faddoul|Jippen Faddoul]]<br />
||A simple poseball with no lag<br />
|}<br />
<br />
</div><br />
<div id="box"><br />
<br />
==Support Script Library==<br />
These are scripts in other languages, intended to be run on other systems that support scripts written in LSL<br />
<br />
{| {{Prettytable}}<br />
|-<br />
|{{Hl2}}| '''Name'''<br />
|{{Hl2}}| '''Creator'''<br />
|{{Hl2}}| '''Description'''<br />
|-<br />
||[[HTTP Post request to a PHP server]]<br />
||[[User:Corto Maltese|Corto Maltese]]<br />
|| This small library allows you to make simple POST requests to your website. The libraries allow you to get your request through the variable $_POST on the server. It also include a basic security mechanism aimed to stop hacking. Comprises of LSL client script and PHP server script.<br />
|-<br />
|| Silo<br />
|| [[User:Zero_Linden|Zero Linden]]<br />
|| General purpose data store in PHP. Use this to persist arbitrary data from LSL via [[llHTTPRequest]]. See:<br />
* [http://www.notabene-sl.com/misc/silo-README.txt README] file<br />
* [http://www.notabene-sl.com/misc/silo.tgz silo.tgz] tarball<br />
* forum post [http://forums.secondlife.com/showthread.php?t=119570 Announcement].<br />
|-<br />
|| [[User:SignpostMarv Martin/PHP/llXorBase64StringsCorrect|llXorBase64StringsCorrect]]<br />
|| [[User:SignpostMarv Martin|SignpostMarv Martin]]<br />
|| An implementation of [[llXorBase64StringsCorrect]] in PHP- should be useful if you're using llXorBase64StringsCorrect to do cryptography work in LSL2 and posting it out to the web via [[llHTTPRequest]].<br />
|-<br />
|| [[User:SignpostMarv Martin/PHP/lsl fu.php|lsl_fu.php]]<br />
|| [[User:SignpostMarv Martin|SignpostMarv Martin]]<br />
|| A basic OOP'd PHP Class containing VeloxSeverine's $_POST fixer and Marv's own eccentric ideas for "fixing" things.<br />
|}<br />
</div><br />
<br />
<br />
<div id="box"><br />
<br />
== See Also ==<br />
<div style="padding: 0.5em"><br />
'''Articles'''<br />
*[[:Category:LSL Examples| Examples]]<br />
<br />
</div></div></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Multi_Item_Rezzer&diff=175103Multi Item Rezzer2008-12-15T00:02:25Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
This is a rework of my old High Altitude Rezzer.<br />
<br />
Sit on it, pick the object to rez and then the height. It will go up to the target height and rez the object. It allows the owner to set the rez offset simply. Also has a scanner built in, if there is no av around the rezzer will derez the object and go back to it's starting position. <br />
<br />
<br />
Place this in the item you wish to be the rezzer to set the sit target and follow the onscreen instructions. It will remove itself once the sit target is set. Without a sit target the rezzer will not work.<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Set SitTarget 1.0<br />
// "Dec 14 2008", "15:30:50"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
vector pos;<br />
rotation rot;<br />
rotation adj_rot;<br />
<br />
default {<br />
state_entry() {<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
llOwnerSay("Go into edit and check the Edit linked parts box" +<br />
"\nMove the prim to the postion you want" +<br />
"\Touch the prim to set the llSitTarget & remove the script" +<br />
"\nSit Target is a property of the prim and doesn't need" +<br />
"\nthe script, once set" +<br />
"\nPut the prim where you want and when you sit on it" +<br />
"\nyou will be in the right position ");<br />
pos = llGetPos();<br />
rot = llGetRot();<br />
adj_rot = ZERO_ROTATION / rot;<br />
llSitTarget(<0, 0, 0.01 >, adj_rot);<br />
}<br />
touch_start(integer total_number) {<br />
vector new_pos = (pos - llGetPos()) * adj_rot;<br />
llSitTarget(new_pos, adj_rot); //applies offset<br />
llSetPos(pos); //back to original position and rotation<br />
llSetRot(rot);<br />
llOwnerSay(" Sit Target has been set ");<br />
llRemoveInventory(llGetScriptName());<br />
}<br />
}<br />
</lsl><br />
<br />
Place a copy of this into each linkset of the objects you wish to rez, take into inventory and then place in the rezzer.<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Rezzed Object Die 1.0<br />
// "Dec 14 2008", "11:19:14"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Place a copy inside each linkset and the rezzed object will delete itself when the rezzer moves<br />
default {<br />
on_rez(integer sp) {<br />
llListen(sp,"","","die");<br />
}<br />
listen(integer channel, string name, key id, string msg) {<br />
llDie();<br />
}<br />
}<br />
</lsl><br />
<br />
And finally this is the script for the rezzer itself. Enjoy!<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Multi Item Rezzer 3.0<br />
// "Dec 14 2008", "18:03:38"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Set the sit target in the item you want to use as the rezzer first<br />
//See my llSitTarget Set for one way of setting it<br />
//Then place this script plus the objects you want to rezz into the rezzer.<br />
float sensorRange = 20.0;<br />
integer index;<br />
integer menuChan;<br />
integer menuHandle;<br />
integer offsetTest = 0;<br />
integer rezTest = 0;<br />
key id;<br />
//You can change the heights that you want for destinations here in this list.<br />
list destList =["start", "ground", "100", "200", "500", "1000", "2000", "3000", "4000"];<br />
list objList;<br />
list offsetList;<br />
string rezObj;<br />
vector infVec = <1.304382E+19, 1.304382E+19, 0.0 >;<br />
vector rezOffset = <0, 0, 0 >;<br />
vector startPos;<br />
vector target;<br />
<br />
inventory()<br />
{<br />
objList =[];<br />
integer invCnt = llGetInventoryNumber(INVENTORY_OBJECT);<br />
integer x;<br />
for (x = 0; x < invCnt; x++) {<br />
objList += (list) llGetInventoryName(INVENTORY_OBJECT, x);<br />
offsetList += <0, 0, 0 >;<br />
}<br />
}<br />
<br />
posJump()<br />
{<br />
llSetPrimitiveParams([PRIM_POSITION, infVec, PRIM_POSITION, target]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
startPos = llGetPos();<br />
llSetText("Sit and pick from menu", <0, 0, 0 >, 1.0);<br />
menuChan = (integer) llFrand(-1000000) - 1000000;<br />
inventory();<br />
}<br />
on_rez(integer start_param) {<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
startPos = llGetPos();<br />
}<br />
listen(integer channel, string name, key id, string msg) {<br />
if ("Height" == msg)<br />
llDialog(id, "Pick an elevation", destList, menuChan);<br />
else if ("Object" == msg)<br />
llDialog(id, "Pick an object", objList, menuChan);<br />
else if ("Set Offset" == msg) {<br />
llOwnerSay("Move seat to desired position then touch again to set offet" + "\nMaximum 10 meters");<br />
offsetTest = 1;<br />
}<br />
else if (~llListFindList(destList,[msg]) && llAvatarOnSitTarget() != NULL_KEY) {<br />
llSay(menuChan, "die");<br />
target = startPos;<br />
if (msg == "ground") {<br />
vector primSize = llGetScale();<br />
target.z = llGround(ZERO_VECTOR) + (primSize.z / 2);<br />
llSensorRemove();<br />
}<br />
else if (msg == "start") {<br />
target = startPos;<br />
llSensorRemove();<br />
}<br />
else {<br />
target.z = (float) msg;<br />
rezTest = 1;<br />
}<br />
posJump();<br />
if (rezTest) {<br />
if (rezObj == "")<br />
rezObj = llGetInventoryName(INVENTORY_OBJECT, 0);<br />
llRezObject(rezObj, llGetPos() + rezOffset, ZERO_VECTOR, ZERO_ROTATION, menuChan);<br />
rezTest = 0;<br />
llSensorRepeat("", "", AGENT, sensorRange, PI, 60.0);<br />
}<br />
llUnSit(llAvatarOnSitTarget());<br />
}<br />
else if (~llListFindList(objList,[msg])) {<br />
index = llListFindList(objList,[msg]);<br />
rezObj = msg;<br />
rezOffset = llList2Vector(offsetList, index);<br />
llDialog(id, "Pick an elevation", destList, menuChan);<br />
}<br />
}<br />
touch_start(integer total_number) {<br />
if (!offsetTest) {<br />
id = llDetectedKey(0);<br />
menuHandle = llListen(menuChan, "", "", "");<br />
if (llGetOwner() == id) {<br />
llDialog(id, "Choice",["Height", "Object", "Set Offset"], menuChan);<br />
}<br />
else {<br />
llDialog(id, "Choice",["Height", "Object"], menuChan);<br />
}<br />
}<br />
else {<br />
if (llVecDist(target, llGetPos()) > 10)<br />
llOwnerSay("Too far. Try again");<br />
else {<br />
rezOffset = (target - llGetPos()) + rezOffset;<br />
offsetList = llListReplaceList(offsetList,[rezOffset], index, index);<br />
offsetTest = 0;<br />
llListenRemove(menuHandle);<br />
llUnSit(llAvatarOnSitTarget());<br />
}<br />
}<br />
}<br />
sensor(integer n) {<br />
<br />
}<br />
no_sensor() {<br />
llSay(menuChan, "die");<br />
llSensorRemove();<br />
target = startPos;<br />
posJump();<br />
}<br />
changed(integer change) {<br />
if (CHANGED_INVENTORY & change) {<br />
inventory();<br />
}<br />
else if (CHANGED_LINK & change) {<br />
if (llAvatarOnSitTarget() != NULL_KEY) {<br />
key id = llAvatarOnSitTarget();<br />
llSetText("", <0, 0, 0 >, 0);<br />
menuHandle = llListen(menuChan, "", "", "");<br />
llSetClickAction(CLICK_ACTION_TOUCH);<br />
if (id == llGetOwner()) {<br />
llDialog(llAvatarOnSitTarget(), "Choice",["Height", "Object", "Set Offset"], menuChan);<br />
}<br />
else {<br />
llDialog(llAvatarOnSitTarget(), "Choice",["Height", "Object"], menuChan);<br />
}<br />
}<br />
else {<br />
llSetText("Sit and touch to ascend", <0, 0, 0 >, 1.0);<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
llListenRemove(menuHandle);<br />
}<br />
}<br />
else if (CHANGED_OWNER & change) {<br />
llResetScript();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Multi Item Rezzer}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Multi_Item_Rezzer&diff=175093Multi Item Rezzer2008-12-15T00:00:29Z<p>Jesse Barnett: New page: {{LSL Header}} *Click Here To see my page and more of my scripts This is a rework of my old High Altitude Rezzer. Sit on it, pick the object to rez and then the...</p>
<hr />
<div>{{LSL Header}}<br />
<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
This is a rework of my old High Altitude Rezzer.<br />
<br />
Sit on it, pick the object to rez and then the height. It will go up to the target height and rez the object. It allows the owner to set the rez offset simply. Also has a scanner built in, if there is no av around the rezzer will derez the object and go back to it's starting position. <br />
<br />
<br />
Place this in the item you wish to be the rezzer to set the sit target and follow the onscreen instructions. It will remove itself once the sit target is set. Without a sit target the rezzer will not work.<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Set SitTarget 1.0<br />
// "Dec 14 2008", "15:30:50"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
vector pos;<br />
rotation rot;<br />
rotation adj_rot;<br />
<br />
default {<br />
state_entry() {<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
llOwnerSay("Go into edit and check the Edit linked parts box" +<br />
"\nMove the prim to the postion you want" +<br />
"\Touch the prim to set the llSitTarget & remove the script" +<br />
"\nSit Target is a property of the prim and doesn't need" +<br />
"\nthe script, once set" +<br />
"\nPut the prim where you want and when you sit on it" +<br />
"\nyou will be in the right position ");<br />
pos = llGetPos();<br />
rot = llGetRot();<br />
adj_rot = ZERO_ROTATION / rot;<br />
llSitTarget(<0, 0, 0.01 >, adj_rot);<br />
}<br />
touch_start(integer total_number) {<br />
vector new_pos = (pos - llGetPos()) * adj_rot;<br />
llSitTarget(new_pos, adj_rot); //applies offset<br />
llSetPos(pos); //back to original position and rotation<br />
llSetRot(rot);<br />
llOwnerSay(" Sit Target has been set ");<br />
llRemoveInventory(llGetScriptName());<br />
}<br />
}<br />
</lsl><br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Rezzed Object Die 1.0<br />
// "Dec 14 2008", "11:19:14"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Place a copy inside each linkset and the rezzed object will delete itself when the rezzer moves<br />
default {<br />
on_rez(integer sp) {<br />
llListen(sp,"","","die");<br />
}<br />
listen(integer channel, string name, key id, string msg) {<br />
llDie();<br />
}<br />
}<br />
</lsl><br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Multi Item Rezzer 3.0<br />
// "Dec 14 2008", "18:03:38"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Set the sit target in the item you want to use as the rezzer first<br />
//See my llSitTarget Set for one way of setting it<br />
//Then place this script plus the objects you want to rezz into the rezzer.<br />
float sensorRange = 20.0;<br />
integer index;<br />
integer menuChan;<br />
integer menuHandle;<br />
integer offsetTest = 0;<br />
integer rezTest = 0;<br />
key id;<br />
//You can change the heights that you want for destinations here in this list.<br />
list destList =["start", "ground", "100", "200", "500", "1000", "2000", "3000", "4000"];<br />
list objList;<br />
list offsetList;<br />
string rezObj;<br />
vector infVec = <1.304382E+19, 1.304382E+19, 0.0 >;<br />
vector rezOffset = <0, 0, 0 >;<br />
vector startPos;<br />
vector target;<br />
<br />
inventory()<br />
{<br />
objList =[];<br />
integer invCnt = llGetInventoryNumber(INVENTORY_OBJECT);<br />
integer x;<br />
for (x = 0; x < invCnt; x++) {<br />
objList += (list) llGetInventoryName(INVENTORY_OBJECT, x);<br />
offsetList += <0, 0, 0 >;<br />
}<br />
}<br />
<br />
posJump()<br />
{<br />
llSetPrimitiveParams([PRIM_POSITION, infVec, PRIM_POSITION, target]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
startPos = llGetPos();<br />
llSetText("Sit and pick from menu", <0, 0, 0 >, 1.0);<br />
menuChan = (integer) llFrand(-1000000) - 1000000;<br />
inventory();<br />
}<br />
on_rez(integer start_param) {<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
startPos = llGetPos();<br />
}<br />
listen(integer channel, string name, key id, string msg) {<br />
if ("Height" == msg)<br />
llDialog(id, "Pick an elevation", destList, menuChan);<br />
else if ("Object" == msg)<br />
llDialog(id, "Pick an object", objList, menuChan);<br />
else if ("Set Offset" == msg) {<br />
llOwnerSay("Move seat to desired position then touch again to set offet" + "\nMaximum 10 meters");<br />
offsetTest = 1;<br />
}<br />
else if (~llListFindList(destList,[msg]) && llAvatarOnSitTarget() != NULL_KEY) {<br />
llSay(menuChan, "die");<br />
target = startPos;<br />
if (msg == "ground") {<br />
vector primSize = llGetScale();<br />
target.z = llGround(ZERO_VECTOR) + (primSize.z / 2);<br />
llSensorRemove();<br />
}<br />
else if (msg == "start") {<br />
target = startPos;<br />
llSensorRemove();<br />
}<br />
else {<br />
target.z = (float) msg;<br />
rezTest = 1;<br />
}<br />
posJump();<br />
if (rezTest) {<br />
if (rezObj == "")<br />
rezObj = llGetInventoryName(INVENTORY_OBJECT, 0);<br />
llRezObject(rezObj, llGetPos() + rezOffset, ZERO_VECTOR, ZERO_ROTATION, menuChan);<br />
rezTest = 0;<br />
llSensorRepeat("", "", AGENT, sensorRange, PI, 60.0);<br />
}<br />
llUnSit(llAvatarOnSitTarget());<br />
}<br />
else if (~llListFindList(objList,[msg])) {<br />
index = llListFindList(objList,[msg]);<br />
rezObj = msg;<br />
rezOffset = llList2Vector(offsetList, index);<br />
llDialog(id, "Pick an elevation", destList, menuChan);<br />
}<br />
}<br />
touch_start(integer total_number) {<br />
if (!offsetTest) {<br />
id = llDetectedKey(0);<br />
menuHandle = llListen(menuChan, "", "", "");<br />
if (llGetOwner() == id) {<br />
llDialog(id, "Choice",["Height", "Object", "Set Offset"], menuChan);<br />
}<br />
else {<br />
llDialog(id, "Choice",["Height", "Object"], menuChan);<br />
}<br />
}<br />
else {<br />
if (llVecDist(target, llGetPos()) > 10)<br />
llOwnerSay("Too far. Try again");<br />
else {<br />
rezOffset = (target - llGetPos()) + rezOffset;<br />
offsetList = llListReplaceList(offsetList,[rezOffset], index, index);<br />
offsetTest = 0;<br />
llListenRemove(menuHandle);<br />
llUnSit(llAvatarOnSitTarget());<br />
}<br />
}<br />
}<br />
sensor(integer n) {<br />
<br />
}<br />
no_sensor() {<br />
llSay(menuChan, "die");<br />
llSensorRemove();<br />
target = startPos;<br />
posJump();<br />
}<br />
changed(integer change) {<br />
if (CHANGED_INVENTORY & change) {<br />
inventory();<br />
}<br />
else if (CHANGED_LINK & change) {<br />
if (llAvatarOnSitTarget() != NULL_KEY) {<br />
key id = llAvatarOnSitTarget();<br />
llSetText("", <0, 0, 0 >, 0);<br />
menuHandle = llListen(menuChan, "", "", "");<br />
llSetClickAction(CLICK_ACTION_TOUCH);<br />
if (id == llGetOwner()) {<br />
llDialog(llAvatarOnSitTarget(), "Choice",["Height", "Object", "Set Offset"], menuChan);<br />
}<br />
else {<br />
llDialog(llAvatarOnSitTarget(), "Choice",["Height", "Object"], menuChan);<br />
}<br />
}<br />
else {<br />
llSetText("Sit and touch to ascend", <0, 0, 0 >, 1.0);<br />
llSetClickAction(CLICK_ACTION_SIT);<br />
llListenRemove(menuHandle);<br />
}<br />
}<br />
else if (CHANGED_OWNER & change) {<br />
llResetScript();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Multi Item Rezzer}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett&diff=169763User:Jesse Barnett2008-12-10T01:20:40Z<p>Jesse Barnett: /* Scripts & Snippets */</p>
<hr />
<div>{{LSL Header}}<br />
<br />
==About: Jesse Barnett==<br />
Scripter. You can find me in Aditi or the scripting forum.<br />
<br />
==Rant about the forums==<br />
Still waiting for LL to update the forum software!<br />
<br />
<<< Thank you SuezzaneC!! Yep info was out of date>>><br />
<br />
==Outside Editors==<br />
*[[http://www.lsleditor.org/Download.aspx LSLEditor]] Love it!<br />
<br />
*[[User:Jesse_Barnett/Scite|My Scite page]] Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.(Page is under construction)<br />
<br />
==Scripts & Snippets==<br />
I made em. You learn from em. Don't sell em!<br />
<br />
*[[3D Radar|3D Radar]] :: Rezzes a ball for each avatar in range. Each ball tracks it's on AV and displays distance.<br />
<br />
<br />
*[[AO Overriding Pose Ball|AO Overriding Pose Ball]] :: No more having to type "/ao off/on" When you sit down or get up anymore!!<br />
<br />
<br />
*[[High Altitude Rezzer|High Altitude Rezzer]] :: Create a vehicle that goes straight up to a set altitude and then rezzes a work platform, garden, private spot or whatever else you put in it's contents.<br />
<br />
<br />
*[[User:Jesse_Barnett/SandBox_Blox|SandBox Blox]] :: Highly addictive and fun. Blocks you can stick together by touch. Good example to learn about one of the new Detected Touch functions and has some interesting math.<br />
<br />
<br />
*[[Sim Map Particle Projector|Sim Map Particle Projector]] :: Creates a floating map of the sim that the script is in. Demonstrates how to work with the map api.<br />
<br />
<br />
*[[User:Jesse_Barnett/Slurl_TP_HUD|Slurl TP HUD]] :: Check it out. I love my newest TP HUD. Has a couple of different tricks for the newer scripter to learn from.<br />
<br />
<br />
*[[Teleport HUD|Teleport HUD]] :: NOW IT WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett&diff=169753User:Jesse Barnett2008-12-10T01:20:24Z<p>Jesse Barnett: /* Scripts & Snippets */</p>
<hr />
<div>{{LSL Header}}<br />
<br />
==About: Jesse Barnett==<br />
Scripter. You can find me in Aditi or the scripting forum.<br />
<br />
==Rant about the forums==<br />
Still waiting for LL to update the forum software!<br />
<br />
<<< Thank you SuezzaneC!! Yep info was out of date>>><br />
<br />
==Outside Editors==<br />
*[[http://www.lsleditor.org/Download.aspx LSLEditor]] Love it!<br />
<br />
*[[User:Jesse_Barnett/Scite|My Scite page]] Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.(Page is under construction)<br />
<br />
==Scripts & Snippets==<br />
I made em. You learn from em. Don't sell em!<br />
<br />
*[[3D Radar|3D Radar]] :: Rezzes a ball for each avatar in range. Each ball tracks it's on AV and displays distance.<br />
<br />
<br />
*[[AO Overriding Pose Ball|AO Overriding Pose Ball]] :: No more having to type "/ao off/on" When you sit down or get up anymore!!<br />
<br />
<br />
*[[High Altitude Rezzer|High Altitude Rezzer]] :: Create a vehicle that goes straight up to a set altitude and then rezzes a work platform, garden, private spot or whatever else you put in it's contents.<br />
<br />
<br />
*[[User:Jesse_Barnett/SandBox_Blox|SandBox Blox]] :: Highly addictive and fun. Blocks you can stick together by touch. Good example to learn about one of the new Detected Touch functions and has some interesting math.<br />
<br />
<br />
*[[Sim Map Particle Projector|Sim Map Particle Projector]] :: Creates a floating map of the sim that the script is in. Demonstrates how to work with the map api.<br />
<br />
<br />
*[[User:Jesse_Barnett/Slurl_TP_HUD|Slurl TP HUD]] :: Check it out. I love my newest TP HUD. Has a couple of different tricks for the newer scripter to learn from.<br />
<br />
*[[Teleport HUD|Teleport HUD]] :: NOW IT WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Slurl_TP_HUD&diff=169743User:Jesse Barnett/Slurl TP HUD2008-12-10T01:18:25Z<p>Jesse Barnett: New page: {{LSL Header}} *Click Here To see my page and more of my scripts ==SLURL TP HUD== Create a button and place it in a HUD position and put this script inside. Don...</p>
<hr />
<div>{{LSL Header}}<br />
<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<br />
==SLURL TP HUD==<br />
Create a button and place it in a HUD position and put this script inside. Don't know what the limit is but I can get more locations in here then I need. Have fun or take it and create something yourself.<br />
<br />
To add a location, touch the HUD, pick a category and then say the name on channel 8. That's it, it will automatically record the position. You can have the hud chat out the list of destinations for safe keeping and can also chat these back into the hud if necessary.<br />
<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// SLURL TP<br />
// "Jun 13 2008", "22:12:35"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
integer a;<br />
integer chat_chan = 0;<br />
integer chat_chan_handle;<br />
integer clean_chan = 99;<br />
integer clean_chan_handle;<br />
integer delete = 0;<br />
integer list_length;<br />
integer menu_chan = -2769531;<br />
integer menu_chan_handle;<br />
integer rez_chan = -5479567;<br />
key owner_key;<br />
list categories =["Back", "Freinds", "Fun", "Home", "Nice", "Sandboxes", "Shopping", "Temp"];<br />
list destinations =[];<br />
list menu;<br />
list menu2;<br />
list menu3;<br />
list menu4;<br />
list options =["Add", "Remove", "Local", "World", "List", "Reload"];<br />
list sims =[];<br />
string category;<br />
string dump;<br />
string dump2;<br />
string dump3;<br />
string dump4;<br />
string msg2;<br />
string region;<br />
vector rez_offset = <0.0, 0.0, 1.5 >;<br />
string sim;<br />
vector slurl_vector;<br />
<br />
local_list()<br />
{<br />
sim = "~" + llGetRegionName();<br />
list_length = llGetListLength(destinations);<br />
a = llListFindList(destinations,[sim]);<br />
if (a == -1) {<br />
llOwnerSay("No local entries");<br />
llDialog(owner_key, "Choose Option", options, menu_chan);<br />
jump end;<br />
}<br />
else {<br />
menu =[];<br />
menu2 =[];<br />
menu3 =[];<br />
menu4 =[];<br />
while (a < list_length) {<br />
if (llList2String(destinations, a) == sim) {<br />
a++;<br />
menu = (menu =[]) + menu + llList2List(destinations, a, a);<br />
}<br />
else<br />
a++;<br />
a += 3;<br />
}<br />
}<br />
menu =["Back"] + llListSort(menu, 1, 1);<br />
shared();<br />
@end;<br />
}<br />
world_list()<br />
{<br />
a = llListFindList(destinations,[msg2]);<br />
list_length = llGetListLength(destinations);<br />
if (a == -1) {<br />
llOwnerSay("No Entries");<br />
llDialog(owner_key, "Choose Category", categories, menu_chan);<br />
jump end;<br />
}<br />
else {<br />
menu =[];<br />
menu2 =[];<br />
menu3 =[];<br />
menu4 =[];<br />
while (a < list_length) {<br />
if (llList2String(destinations, a) == msg2) {<br />
a += 2;<br />
menu = (menu =[]) + menu + llList2List(destinations, a, a);<br />
}<br />
else<br />
a += 2;<br />
a += 2;<br />
}<br />
}<br />
menu =["Back"] + llListSort(menu, 1, 1);<br />
shared();<br />
@end;<br />
}<br />
<br />
shared()<br />
{<br />
if (llGetListLength(menu) > 12) {<br />
menu2 =["Back"] + llList2List(menu, 11, -1);<br />
menu = (menu =[]) +["More"] + llDeleteSubList(menu, 11, -1);<br />
}<br />
if (llGetListLength(menu2) > 12) {<br />
menu3 =["Back"] + llList2List(menu2, 11, -1);<br />
menu2 = llDeleteSubList(menu2, 11, -1);<br />
menu2 = (menu2 =[]) +["More+", "Back"] + llDeleteSubList(menu2, 0, 0);<br />
}<br />
if (llGetListLength(menu3) > 12) {<br />
menu4 =["Back"] + llList2List(menu3, 11, -1);<br />
menu3 = llDeleteSubList(menu3, 11, -1);<br />
menu3 = (menu3 =[]) +["More++"] + llDeleteSubList(menu3, 0, 0);<br />
}<br />
llDialog(owner_key, "Pick Destination", menu, menu_chan);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
owner_key = llGetOwner();<br />
sims = llListSort(sims, 1, 1);<br />
categories = llListSort(categories, 1, 1);<br />
}<br />
touch_start(integer n) {<br />
delete = 0; //safety<br />
menu_chan_handle = llListen(menu_chan, "", owner_key, "");<br />
llDialog(owner_key, "Choose Option", options, menu_chan);<br />
llSetTimerEvent(30.0);<br />
}<br />
listen(integer channel, string name, key id, string msg) {<br />
if (channel == 99)<br />
destinations += llCSV2List(msg);<br />
else if (msg == "Add" || msg == "Back" || msg == "More" || msg == "More+" || msg == "More++") {<br />
if (msg == "Add")<br />
state add_dest;<br />
else if (msg == "Back")<br />
llDialog(owner_key, "Choose Option", options, menu_chan);<br />
else if (msg == "More")<br />
llDialog(owner_key, "Pick Destination", menu2, menu_chan);<br />
else if (msg == "More+")<br />
llDialog(owner_key, "Pick Destination", menu3, menu_chan);<br />
else if (msg == "More++")<br />
llDialog(owner_key, "Pick Destination", menu4, menu_chan);<br />
}<br />
else {<br />
if (msg == "Remove") {<br />
llOwnerSay("Pick destination to remove");<br />
clean_chan_handle = llListen(clean_chan, "", owner_key, "");<br />
llDialog(owner_key, "Choose Category", categories, clean_chan);<br />
delete = 1;<br />
}<br />
else if (msg == "Reload") {<br />
llSetTimerEvent(90.0);<br />
llOwnerSay("enter data on channel 99 & Click Done when finished");<br />
llDialog(owner_key, "Click Done when finished",["Done"], menu_chan);<br />
llListen(99, "", owner_key, "");<br />
}<br />
else if (msg == "Done") {<br />
llListenRemove(clean_chan_handle);<br />
llSetTimerEvent(0.0);<br />
}<br />
else if (msg == "World")<br />
llDialog(owner_key, "Choose Category", categories, menu_chan);<br />
else if (msg == "Local")<br />
local_list();<br />
else if (llListFindList(categories,[msg]) != -1) {<br />
msg2 = msg;<br />
world_list();<br />
}<br />
else if (llListFindList(destinations,[msg]) != -1) {<br />
a = llListFindList(destinations,[msg]);<br />
if (delete) {<br />
destinations = llDeleteSubList(destinations, a - 2, a + 1);<br />
delete = 0;<br />
llSetTimerEvent(0.0);<br />
}<br />
else {<br />
llSetTimerEvent(30.0);<br />
region = llDeleteSubString(llList2String(destinations, a - 1), 0, 0);<br />
region = llEscapeURL(region);<br />
string temp = llList2String(destinations, a + 1);<br />
slurl_vector = (vector) temp;<br />
string x = (string) slurl_vector.x;<br />
string y = (string) slurl_vector.y;<br />
string z = (string) slurl_vector.z;<br />
llOwnerSay("secondlife:///app/teleport/" + region + "/" + x + "/" + y + "/" + z);<br />
}<br />
}<br />
else if (msg == "List") {<br />
dump = llDumpList2String(destinations, ", ");<br />
if (llStringLength(dump) > 1020) {<br />
dump2 = (dump2 = "") + dump2 + llGetSubString(dump, 1024, -1);<br />
dump = (dump = "") + dump + llDeleteSubString(dump, 1024, -1);<br />
}<br />
llOwnerSay(dump);<br />
dump = "";<br />
if (llStringLength(dump2) > 1024) {<br />
dump3 = (dump3 = "") + dump3 + llGetSubString(dump2, 1024, -1);<br />
dump2 = (dump2 = "") + dump2 + llDeleteSubString(dump2, 1024, -1);<br />
}<br />
if (llStringLength(dump2) > 0)<br />
llOwnerSay(dump2);<br />
dump2 = "";<br />
if (llStringLength(dump3) > 1024) {<br />
dump4 = (dump4 = "") + dump4 + llGetSubString(dump3, 1024, -1);<br />
dump3 = (dump3 = "") + dump3 + llDeleteSubString(dump3, 1024, -1);<br />
}<br />
if (llStringLength(dump3) > 0)<br />
llOwnerSay(dump3);<br />
dump3 = "";<br />
if (llStringLength(dump4) > 0)<br />
llOwnerSay(dump4);<br />
dump4 = "";<br />
llSetTimerEvent(0.0);<br />
}<br />
}<br />
}<br />
state_exit() {<br />
llListenRemove(menu_chan_handle);<br />
}<br />
timer() {<br />
llListenRemove(menu_chan_handle);<br />
llSetTimerEvent(0.0);<br />
}<br />
}<br />
state add_dest {<br />
state_entry() {<br />
llDialog(owner_key, "Pick Category", categories, menu_chan);<br />
chat_chan_handle = llListen(chat_chan, "", owner_key, "");<br />
menu_chan_handle = llListen(menu_chan, "", owner_key, "");<br />
} listen(integer channel, string name, key id, string msg) {<br />
if (channel == menu_chan) {<br />
category = msg;<br />
msg = "";<br />
llOwnerSay("What do you want to name the location?");<br />
}<br />
else if (channel == chat_chan) {<br />
sim = "~" + llGetRegionName();<br />
if (llListFindList(sims,[sim]) == -1) {<br />
sims = (sims =[]) + sims +[sim];<br />
llListSort(sims, 1, 1);<br />
}<br />
destinations = (destinations =[]) + destinations +[category, sim, msg, llGetPos()];<br />
state default;<br />
}<br />
}<br />
state_exit() {<br />
llListenRemove(chat_chan_handle);<br />
llListenRemove(menu_chan_handle);<br />
}<br />
}<br />
</lsl></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/SandBox_Blox&diff=165103User:Jesse Barnett/SandBox Blox2008-12-05T03:02:44Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// SandBox Blox Rezzer 1.0<br />
// "Dec 4 2008", "22:01:49"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Highly addictive and fun to play with<br />
//Inspired by a script by Pedro Mcmillan<br />
//Pedro's script can be found at<br />
//http://www.avid-insight.co.uk/dev/stackable_graph_cube_1.2.lsl<br />
<br />
//Drop this script in a 1/2 meter cube prim along with<br />
//a white SandBox Blox<br />
//To use: Touch the red blox to activate<br />
//A white Sandbox Blox will rez above this cube and another will<br />
//rezz a short distance away.<br />
//Touch the white blox that is on top of the rezzor and then touch<br />
//the face of the other white blox where you want this blox to go.<br />
//When blox are active they will turn green<br />
//A new prim will rez whenever one is used<br />
//When you are tired of playing, just touch the red blox<br />
//and all of the white blox will disappear<br />
<br />
vector rezOffset = <0,0,1>;<br />
integer dieChan = -7912374;<br />
//The dieChan must be the same as in the SandBlox script<br />
//Please pick your own channels<br />
integer On = 1;<br />
<br />
rezObj() {<br />
llRezObject("SandBox Blox", llGetPos() + rezOffset, ZERO_VECTOR, ZERO_ROTATION, 42);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
llSetObjectName("SandBox Blox Rezzer");<br />
llSetPrimitiveParams([PRIM_TEXTURE, ALL_SIDES, "5748decc-f629-461c-9a36-a35a221fe21f",<br />
<1,1,1>, <0,0,0>, 0, PRIM_COLOR, ALL_SIDES, <1, 0, 0>, 1]);<br />
}<br />
touch_start(integer n) {<br />
if (On) {<br />
rezObj();<br />
llSensorRepeat("SandBox Blox", NULL_KEY, SCRIPTED | PASSIVE , 1.1, PI, 1.0);<br />
}<br />
else {<br />
llRegionSay(dieChan, "die");<br />
llSensorRemove();<br />
}<br />
On = !On;<br />
}<br />
sensor(integer n) {<br />
}<br />
no_sensor() {<br />
rezObj();<br />
}<br />
}<br />
</lsl><br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// SandBox Blox 2.0<br />
// "Dec 4 2008", "20:45:46"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Drop this script in a cube prim<br />
//Take it into inventory and then place inside the SandBox Blox Rezzor prim<br />
<br />
integer dieChan = -7912374;<br />
//The dieChan must be the same as in the SandBlox Rezzor script<br />
//Please pick your own channels<br />
integer posChan = -6641118;<br />
integer chanRem;<br />
integer faceInt;<br />
vector faceVec;<br />
<br />
reset() {<br />
llSetColor(<1, 1, 1 >, ALL_SIDES);<br />
llListenRemove(chanRem);<br />
llSetTimerEvent(0.0);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
llSetObjectName("SandBox Blox");<br />
llSetTexture("5748decc-f629-461c-9a36-a35a221fe21f", ALL_SIDES);<br />
llListen(dieChan, "", "", "die");<br />
}<br />
touch_start(integer n) {<br />
integer i = 0;<br />
for (; i < n; ++i) {<br />
faceVec = llDetectedTouchNormal(i);<br />
faceInt = llDetectedTouchFace(i);<br />
}<br />
faceVec *= .5;<br />
vector setPos = llGetPos() + faceVec;<br />
llSay(posChan, (string) setPos);<br />
llSetTimerEvent(5.0);<br />
llSetColor(<0, 1, 0 >, faceInt);<br />
chanRem = llListen(posChan, "SandBox Blox", "", "");<br />
}<br />
listen(integer channel, string name, key id, string msg) {<br />
if (channel == dieChan) {<br />
llDie();<br />
}<br />
else if ("stop" != msg) {<br />
llSetPos((vector)msg);<br />
llRegionSay(posChan, "stop");<br />
}<br />
reset();<br />
}<br />
timer() {<br />
reset();<br />
}<br />
}<br />
</lsl></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/SandBox_Blox&diff=165093User:Jesse Barnett/SandBox Blox2008-12-05T02:58:46Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// SandBox Blox Rezzer 1.0<br />
// "Dec 4 2008", "20:44:49"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Highly addictive and fun to play with<br />
//Inspired by a script by Pedro Mcmillan<br />
//Pedro's script can be found at<br />
//http://www.avid-insight.co.uk/dev/stackable_graph_cube_1.2.lsl<br />
<br />
//Drop this script in a 1/2 meter cube prim along with<br />
//a white SandBox Blox<br />
//To use: Touch the red prim to activate<br />
//A white Sandbox Blox will rez above this cube and another will<br />
//rezz a short distance away.<br />
//Touch the white prim that is on top of the rezzor and then touch<br />
//the face of the other white prim where you want this blox to go.<br />
//When blox are active they will turn green<br />
//A new prim will rez whenever one is used<br />
//When you are tired of playing, just touch the red prim<br />
//and all of the white prims will disappear<br />
<br />
vector rezOffset = <0,0,1>;<br />
integer dieChan = -7912374;<br />
//The dieChan must be the same as in the SandBlox script<br />
//Please pick your own channels<br />
integer On = 1;<br />
<br />
rezObj() {<br />
llRezObject("SandBox Blox", llGetPos() + rezOffset, ZERO_VECTOR, ZERO_ROTATION, 42);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
llSetObjectName("SandBox Blox Rezzer");<br />
llSetPrimitiveParams([PRIM_TEXTURE, ALL_SIDES, "5748decc-f629-461c-9a36-a35a221fe21f",<br />
<1,1,1>, <0,0,0>, 0, PRIM_COLOR, ALL_SIDES, <1, 0, 0>, 1]);<br />
}<br />
touch_start(integer n) {<br />
if (On) {<br />
rezObj();<br />
llSensorRepeat("SandBox Blox", NULL_KEY, SCRIPTED | PASSIVE , 1.1, PI, 1.0);<br />
}<br />
else {<br />
llRegionSay(dieChan, "die");<br />
llSensorRemove();<br />
}<br />
On = !On;<br />
}<br />
sensor(integer n) {<br />
}<br />
no_sensor() {<br />
rezObj();<br />
}<br />
}<br />
</lsl><br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// SandBox Blox 2.0<br />
// "Dec 4 2008", "20:45:46"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Drop this script in a cube prim<br />
//Take it into inventory and then place inside the SandBox Blox Rezzor prim<br />
<br />
integer dieChan = -7912374;<br />
//The dieChan must be the same as in the SandBlox Rezzor script<br />
//Please pick your own channels<br />
integer posChan = -6641118;<br />
integer chanRem;<br />
integer faceInt;<br />
vector faceVec;<br />
<br />
reset() {<br />
llSetColor(<1, 1, 1 >, ALL_SIDES);<br />
llListenRemove(chanRem);<br />
llSetTimerEvent(0.0);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
llSetObjectName("SandBox Blox");<br />
llSetTexture("5748decc-f629-461c-9a36-a35a221fe21f", ALL_SIDES);<br />
llListen(dieChan, "", "", "die");<br />
}<br />
touch_start(integer n) {<br />
integer i = 0;<br />
for (; i < n; ++i) {<br />
faceVec = llDetectedTouchNormal(i);<br />
faceInt = llDetectedTouchFace(i);<br />
}<br />
faceVec *= .5;<br />
vector setPos = llGetPos() + faceVec;<br />
llSay(posChan, (string) setPos);<br />
llSetTimerEvent(5.0);<br />
llSetColor(<0, 1, 0 >, faceInt);<br />
chanRem = llListen(posChan, "SandBox Blox", "", "");<br />
}<br />
listen(integer channel, string name, key id, string msg) {<br />
if (channel == dieChan) {<br />
llDie();<br />
}<br />
else if ("stop" != msg) {<br />
llSetPos((vector)msg);<br />
llRegionSay(posChan, "stop");<br />
}<br />
reset();<br />
}<br />
timer() {<br />
reset();<br />
}<br />
}<br />
</lsl></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/Scite&diff=165083User:Jesse Barnett/Scite2008-12-05T02:51:01Z<p>Jesse Barnett: </p>
<hr />
<div><br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
==SciTE==<br />
(Page is under construction)<br />
(Not too terribly happy with the layout right now. Going to redo it to bring all of the intro, including pic, up top. Then transition over to a step by step, download this, this, this, this, that and put this here and that there etc.)<br />
(Actually since I started this web page it got me interested in some of the newer posibilities of SciTE. It has changed a great deal since Ezhar brought us SciTE-EZ. ALL of this information here is going to change dramtically in the next couple of weeks)<br />
<br />
Stay Tuned!!!!!<br />
<br />
Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.<br />
<br />
Many parts of this page will sound like an advertisement. SciTE is free, so no, I am not making any money off of this. It is just that SciTE has been sorely neglected for more then a year now. Ezhar Fairlight(Bless Him!!) brought us the original SciTE package for LSL, still functional but no longer maintained. Hopefully now others will start to play around with it.<br />
<br />
You can get SciTE here: [[http://www.scintilla.org/SciTE.html]]<br />
<br />
Personally I use this installer: [[http://amip.tools-for.net/SciTE-CVS.exe]] It has support for several languages and has perl work scripts included.<br />
<br />
But once you have SciTE, you still have some work to do to get it to do some of the many tricks it can do. A good place to start would be the files listed below:<br />
<br />
*[[User:Jesse_Barnett/lsl.api|lsl.api]]<br />
<br />
*[[User:Jesse_Barnett/lsl.properties|lsl.properties]]<br />
<br />
*[[User:Jesse_Barnett/lsl_abbrev.properties|lsl_abbrev.properties]]<br />
<br />
*[[User:Jesse_Barnett/SciTEGlobal.properties|SciTEGlobal.properties]]<br />
<br />
*[[User:Jesse_Barnett/SciTEUser.properties|SciTEUser.properties]]<br />
<br />
You could take a look over at Strife's page with his SciTE links also. You can pickup stripper, indent, clipboard and lslint there and MSVC Express. [[https://wiki.secondlife.com/wiki/User:Strife_Onizuka]]<br />
<br />
I have mine linked to LSLEditor. See the note in my lsl.properties file for placing it(The C compiler does not like a path with spaces in it, as in C:\Program Files\LSLEditor)<br />
<br />
==Why go to all of this trouble?==<br />
(Especially when LSLEditor does do a fantastic job now??)<br />
<br />
You can define custom actions. For instance if I type "random" in a script and hit "ctrl B", Scite inserts this:<br />
<lsl>integer rand_chan;<br />
random() {<br />
rand_chan = (integer) llFrand(-10000) - 10000000;<br />
}</lsl><br />
And that is just one of my small custom definitions ;)<br />
<br />
You can also do includes which allows you to combine several common scripts.<br />
<br />
The indent function is extremely powerful and you can customs define each and every setting to match the style you prefer.<br />
<br />
So many more benefits that just bring it over the top. Among them is the ability to control all aspects of SciTE through outside scripts. There are a number of Lua scripts for SciTE. And the one I use (SciTE CVS) has perl scripts included to clean up code.<br />
<br />
You can not only script in most languages, you can also setup the preferences for each language individually. When I am scripting in LSL here are some of the choices i have:<br />
<br />
[[Image:SciTE.jpg]]</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Sim_Map_Particle_Projector&diff=165063Sim Map Particle Projector2008-12-05T02:44:28Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<br />
Fun little script. Drop it in a prim to see how it works. Demonstrates how to work with the map api.<br />
<br />
<lsl><br />
key httpRequestId;<br />
float mapSize = 3.0;<br />
float mapHeight = 3.0;<br />
string mapTexture;<br />
string URL = "http://www.subnova.com/secondlife/api/map.php";<br />
<br />
mapParticle()<br />
{<br />
llParticleSystem([<br />
PSYS_PART_FLAGS, 0,<br />
PSYS_SRC_PATTERN, 4,<br />
PSYS_PART_START_ALPHA, 0.50,<br />
PSYS_PART_END_ALPHA, 0.50,<br />
PSYS_PART_START_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_END_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_START_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_END_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_MAX_AGE, 1.20,<br />
PSYS_SRC_MAX_AGE, 0.00,<br />
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,<br />
PSYS_SRC_ANGLE_BEGIN, 0.00,<br />
PSYS_SRC_ANGLE_END, 0.00,<br />
PSYS_SRC_BURST_PART_COUNT, 8,<br />
PSYS_SRC_BURST_RADIUS, mapHeight,<br />
PSYS_SRC_BURST_RATE, 0.10,<br />
PSYS_SRC_BURST_SPEED_MIN, 0.00,<br />
PSYS_SRC_BURST_SPEED_MAX, 0.00,<br />
PSYS_SRC_OMEGA, <0.00,0.00,0.00>,<br />
PSYS_SRC_TEXTURE, mapTexture]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
httpRequestId = llHTTPRequest(URL + "?" + "sim" + "=" + llEscapeURL(llGetRegionName()),[], "");<br />
}<br />
http_response(key request_id, integer status, list metadata, string body) {<br />
if (request_id == httpRequestId) {<br />
mapTexture = body;<br />
mapParticle();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Sim Map Particle Projector}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=High_Altitude_Rezzer&diff=165053High Altitude Rezzer2008-12-05T02:43:55Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<br />
Create something pretty to put this script in and to sit on. <br />
Place the script inside along with the object which you wish to rez.<br />
Sit on your beautiful creation and then touch it to ascend to the height you set below where it<br />
will rez your object. Stand up<br />
walk around, enjoy. When you want to return to where you started then just sit on it, delete your rezzed object and touch again.<br />
<br />
<br />
<lsl><br />
//High Altitude Rezzer<br />
//Creator: Jesse Barnett<br />
integer target_height = 4090;//Set the elevation you want to go to here. Maximum you can rez objects is 4096.<br />
float zSpeed = 500.0;<br />
vector x;<br />
vector w;<br />
list grnd;<br />
vector ground;<br />
vector rez_obj_offset = <0.0, 0.0, -0.5>;<br />
//Adjust this as necessary for postion of <br />
//rezzed object in relation to vehicle. (no more then 10.0 in any axis)<br />
default{<br />
on_rez(integer start_param) {<br />
llResetScript();<br />
}<br />
state_entry(){<br />
grnd = [];<br />
grnd += llGetPos();<br />
ground = llList2Vector(grnd, 0);<br />
vector pos = llGetPos();<br />
llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z, FALSE); <br />
if(pos.z >= (target_height - 5)){<br />
state descend;<br />
}<br />
llSetText("Sit and touch to ascend", <0,0,0>,1.0);<br />
}<br />
touch_start(integer total_number){<br />
llSetStatus(STATUS_PHYSICS, TRUE);<br />
x = llGetPos();<br />
x.z = target_height;<br />
llTarget(x,50);<br />
}<br />
not_at_target(){<br />
llApplyImpulse(llGetMass()*<0,0,zSpeed>,FALSE); <br />
}<br />
at_target(integer ascend, vector target, vector cPos){<br />
llTargetRemove(ascend);<br />
llMoveToTarget(target,1); <br />
llSetTimerEvent(5.0);<br />
}<br />
timer(){<br />
vector pos = llGetPos();<br />
if(pos.z >= (target_height - 1)){<br />
llStopMoveToTarget();<br />
llApplyImpulse(-llGetMass()*llGetVel(),FALSE); <br />
llSetStatus(STATUS_PHYSICS, FALSE);<br />
llRezObject(llGetInventoryName(INVENTORY_OBJECT, 0), llGetPos() + rez_obj_offset, ZERO_VECTOR, ZERO_ROTATION, 42);<br />
state descend;<br />
}<br />
}<br />
}<br />
state descend{<br />
state_entry() {<br />
vector pos = llGetPos();<br />
llSetStatus(STATUS_ROTATE_X | STATUS_ROTATE_Y | STATUS_ROTATE_Z, FALSE); <br />
if(pos.z <= (ground.z + 5)){<br />
state default;<br />
}<br />
llSetText("Sit and touch to descend", <0,0,0>,1.0);<br />
}<br />
touch_start(integer total_number){<br />
llSetStatus(STATUS_PHYSICS, TRUE);<br />
w = llGetPos();<br />
w.z = ground.z;<br />
llTarget(w,50);<br />
}<br />
not_at_target(){<br />
llApplyImpulse(llGetMass()*<0,0,-500>,FALSE); <br />
}<br />
at_target(integer descend, vector target2, vector Pos){<br />
llTargetRemove(descend);<br />
llMoveToTarget(target2,1); <br />
llSetTimerEvent(5.0);<br />
}<br />
timer(){<br />
vector pos = llGetPos();<br />
if(pos.z <= (ground.z + 1)){<br />
llStopMoveToTarget();<br />
llApplyImpulse(-llGetMass()*llGetVel(),FALSE); <br />
llSetStatus(STATUS_PHYSICS, FALSE);<br />
llSetPos(ground);<br />
state default;<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|High Altitude Rezzer}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=AO_Overriding_Pose_Ball&diff=165043AO Overriding Pose Ball2008-12-05T02:43:17Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<br />
Tired of having to turn your animation overrider off and on whenever you want to sit on a poseball? Just drop this script in along with the pose and it will automatically stop your active animations. When you stand up, your AO will still be running and active.<br />
<br />
<br />
<lsl><br />
//AO Overrider Pose Ball Script V 1.2<br />
//Updated 11/09/2006<br />
//Created by Jesse Barnett<br />
//Edited to check if there is an animation to stop<br />
//and Sit Position is stored in Object Description<br />
//Drop this in a prim along with an animation. Store the sit<br />
//position in the Object description<br />
//Example; <0.0, 0.0, 1.0><br />
//If you change this then reset the script by using right<br />
//click/reset for changes to apply immediately. If you forget then it will display<br />
//"reset script" when you sit. Just stand and sit again for changes to take effect<br />
<br />
<br />
//To see how it works and hear it go through the animations it is stopping, then<br />
//make idebug = TRUE;<br />
integer idebug = FALSE;//if TRUE then llOwnerSay sdebugs<br />
string sdebug;<br />
integer perm;//permissions<br />
string anim2run;//animation in inventory<br />
vector sit_pos;//adjust as needed in object description Example: <0.0, 0.0, 1.0><br />
list anims2stop;//default or AO sit animation<br />
float sleep = 0.5;//duration of llSleep in seconds<br />
<br />
debug(){<br />
if(idebug == 1)<br />
llOwnerSay(sdebug);<br />
}<br />
<br />
sit_desc_change(){<br />
if((sit_pos + (vector)llGetObjectDesc()) != (sit_pos* 2))<br />
llResetScript();<br />
//This checks to see if the description field matchs the stored position<br />
else<br />
llSitTarget(sit_pos, ZERO_ROTATION);<br />
}<br />
<br />
stop_anim(){<br />
integer list_pos = 0;<br />
integer list_length = llGetListLength(anims2stop);<br />
sdebug = (string)list_length;<br />
debug();<br />
if(list_length > 0){<br />
while(list_pos < list_length){<br />
llStopAnimation(llList2String(anims2stop, list_pos));<br />
sdebug = (string)list_pos;<br />
debug();<br />
list_pos++;<br />
}<br />
}<br />
}<br />
<br />
default{<br />
state_entry(){<br />
llSetTouchText("Reset");<br />
llOwnerSay("Script Reset.");<br />
anim2run=llGetInventoryName(INVENTORY_ANIMATION,0) ;<br />
sit_pos = (vector)llGetObjectDesc();<br />
sit_desc_change();<br />
perm=llGetPermissions();<br />
}<br />
<br />
touch_start(integer num_detected) {<br />
llResetScript();<br />
}<br />
<br />
changed(integer change){<br />
if (change & CHANGED_LINK)<br />
if (llAvatarOnSitTarget() != NULL_KEY){<br />
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);<br />
}<br />
<br />
else{<br />
perm=llGetPermissions();<br />
if ((perm & PERMISSION_TRIGGER_ANIMATION) && llStringLength(anim2run)>0)<br />
llStopAnimation(anim2run);<br />
llSetAlpha(1.0, ALL_SIDES);<br />
}<br />
}<br />
run_time_permissions(integer perm){<br />
if (perm & PERMISSION_TRIGGER_ANIMATION)<br />
anims2stop = [];//Clears the list<br />
sdebug = "perms granted";<br />
llStopAnimation("sit");<br />
llSleep(sleep);//need sleep to give avatar time to cycle from stand<br />
//to default sit to AO sit<br />
anims2stop = llGetAnimationList(llAvatarOnSitTarget());<br />
sdebug = llList2CSV(anims2stop);<br />
debug();<br />
stop_anim();//This runs the subroutine up top .<br />
llSetAlpha(0.0, ALL_SIDES);<br />
llStartAnimation(anim2run);<br />
sdebug = "anim2run started";<br />
debug();<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|AO Overriding Pose Ball}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=3D_Radar&diff=1650333D Radar2008-12-05T02:42:47Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<br />
==Scripts have been corrected and working properly now==<br />
<br />
Rezzes a ball for each avatar in range. Each ball tracks it's on AV and displays distance.<br />
<br />
==Scanner/Rezzer Script==<br />
Place this script in a prim along with the scan ball. When touched it will scan the surrounding area and rezz a ball for each avatar.<br />
<br />
Suggestion: Create a sphere with a diameter of 2 meters. Set transparency about 60. Create another sphere about 0.05 diameter, color a dark color and put it in the center of the large prim. Select small prim 1st and then large prim and link them. This will give you a center point to reference. The scan ball script is set to scan for it's avatar to a range of 96 meters.<br />
<br />
This formula: vector avDivPos = (avPos - rPos) * 0.010417; Takes the (avatars position - position of scanner) & multiplies by (radius of the distance you want the balls to go(2 meter sphere = 1 meter radius)/scan range(96meters)):<br />
<br />
1/96 = approximately 0.010417.<br />
<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// 3D Radar 2.5<br />
// "Oct 15 2008", "18:43:28"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
integer Scan = TRUE;<br />
string avKey;<br />
integer list_pos;<br />
list key_list;<br />
integer key_chan; //Key channel is generated randomly and passed to the scan ball<br />
integer die_chan = -9423753; //Hey pick your own channels and be sure to paste them into<br />
//the scan balls too!<br />
integer key_rem_chan = -49222879;<br />
default {<br />
state_entry() {<br />
llSetObjectName("3D Radar");<br />
}<br />
touch_start(integer total_number) {<br />
if (Scan) {<br />
llSensorRepeat("", "", AGENT, 96, PI, 1);<br />
key_list =[];<br />
llListen(key_rem_chan, "", "", "");<br />
llOwnerSay("on");<br />
Scan = FALSE;<br />
}<br />
else {<br />
llSensorRemove();<br />
llRegionSay(die_chan, "die");<br />
llOwnerSay("off");<br />
Scan = TRUE;<br />
}<br />
}<br />
sensor(integer iNum) {<br />
integer p = 0;<br />
for (p = 0; p < iNum; ++p) {<br />
avKey = llDetectedKey(p);<br />
list_pos = llListFindList(key_list, (list)avKey);<br />
if (list_pos == -1) {<br />
key_list += (list) avKey;<br />
key_chan = (integer) llFrand(-1000000) - 1000000;<br />
llRezObject("scan ball", llGetPos(), ZERO_VECTOR, ZERO_ROTATION, key_chan);<br />
llSleep(.25);<br />
llRegionSay(key_chan, avKey);<br />
}<br />
}<br />
}<br />
listen(integer c, string name, key id, string msg) {<br />
integer r = llListFindList(key_list,[(key)msg]);<br />
key_list = llDeleteSubList(key_list, r, r);<br />
}<br />
}<br />
<br />
</lsl><br />
==Scan Ball Script==<br />
Place this script in a prim and then place the prim into the inventory of the Scanner/Rezzer. It will automatically name itself. <br />
<br />
Suggestion; Create a sphere prim of 0.05 diameter with glow set about .80.<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// 3D Radar 2.5<br />
// "Oct 15 2008", "18:44:36"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
string avName;<br />
integer avDistance;<br />
key avKey;<br />
integer avListen;<br />
integer key_chan;<br />
integer die_chan = -9423753;<br />
integer key_rem_chan = -49222879;<br />
vector avPos;<br />
vector rPos;<br />
default {<br />
state_entry() {<br />
llSetObjectName("scan ball");<br />
}<br />
on_rez(integer start_param) {<br />
rPos = llGetPos();<br />
key_chan = start_param;<br />
llListen(die_chan, "", "", "");<br />
avListen = llListen(key_chan, "", "", "");<br />
}<br />
listen(integer c, string n, key id, string msg) {<br />
if (c == die_chan)<br />
llDie();<br />
else {<br />
avKey = (key) msg;<br />
avName = llKey2Name(avKey);<br />
llSensorRepeat("", avKey, AGENT, 96, PI, 1.0);<br />
llListenRemove(avListen);<br />
}<br />
}<br />
sensor(integer n) {<br />
avPos = llDetectedPos(0);<br />
vector avDivPos = (avPos - rPos) / (96 / 1); //Scan range/Radius of large sphere<br />
avDistance = (integer) llVecDist(rPos, llDetectedPos(0));<br />
llSetPos(rPos + avDivPos);<br />
llSetText(avName + "[" + (string) avDistance + "]", <1, 1, 1 >, 1);<br />
}<br />
no_sensor() {<br />
llRegionSay(key_rem_chan, avKey);<br />
llDie();<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|3D Radar}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Teleport_HUD&diff=165023Teleport HUD2008-12-05T02:41:52Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
*[[User:Jesse_Barnett|Click Here]] To see my page and more of my scripts<br />
<br />
<br />
<lsl><br />
//Teleport HUD<br />
//Jesse Barnett<br />
//1/16/08<br />
<br />
//One of my first "real" scripts from waaaaaay back when.<br />
//Hopefully users will do more than just use this script. Strided lists and<br />
//manipulating lists are the closest we get to arrays in LSL presently.<br />
//Even with all of the list juggling here, you will be surprised just how many<br />
//destinations you can add.<br />
<br />
//A lot of code but this is the only teleporter I have been using for over a year now.<br />
//No notecards or lists to fill out. Very user freindly.<br />
//Wherever you are, just touch the button, hit ""Add" and it will prompt you for the name<br />
//Type what you want to name it in open chat, hit enter and you are done<br />
//It will store the sim name, the name you gave it for the menu buttons and the location<br />
//automatically<br />
//It will only show the destinations for the simulator you are in.<br />
//Pick the destination from the menu, touch the bubble that is rezzed in front of<br />
//you and you will instantly teleport to that spot.<br />
//You can also easily remove destinations by picking ""Remove" in the menu and then<br />
//touching the button name you wish to remove.<br />
//In case you are worried about loosing your destinations, you can also use the<br />
//"List" button to output the list of all destinations from all sims.<br />
//I have never lost the destinations because of sim resets etc.<br />
//Have lost them twice tweaking the script. But adding destinations again is so easy<br />
//it is no problem.<br />
<br />
//To use, create a button and attach it to the desired position on your HUD.<br />
//Place this script inside, Put the warp pos script into another object you want<br />
//to rez as the bubble, edit it so that when you left click, you will sit.<br />
//Take the "bubble" back into inventory and then place it in the HUD also.<br />
<br />
<br />
string sim;<br />
list sims;<br />
list dest;<br />
list main_menu;<br />
list menu_options =["Add", "Remove", "Back", "List"];<br />
integer rez_chan;<br />
integer rez_chan_handle;<br />
integer menu_chan;<br />
integer menu_chan_handle;<br />
integer edit_chan = 0;// Could change this to another channel if you want for privacy<br />
//It is only used to enter the destination name when you use "Add"<br />
integer edit_chan_handle;<br />
integer edit_test = FALSE;<br />
vector target;<br />
string tp_object = "bubble";<br />
<br />
default {<br />
touch_start(integer num_detected) {<br />
menu_chan = (integer) llFrand(-100000 - 99999999) - 100000;<br />
if (sim != llGetRegionName() || edit_test) {<br />
//Don't recalculate if no change to region or an edit<br />
sim = llGetRegionName();<br />
edit_test = FALSE;<br />
main_menu =[];<br />
dest = llListSort(dest, 3, TRUE);//Sorts the list in Strides according to sim<br />
sims = llListSort(sims, 1, TRUE);<br />
integer dest_list_sim_loc = llListFindList(dest,[sim]);<br />
//1st entry in list with the current sim<br />
integer sim_list_sim_loc = llListFindList(sims,[sim]);<br />
string next_sim_name = llList2String(sims, (sim_list_sim_loc + 1));<br />
integer next_sim_loc = (integer) llListFindList(dest,[next_sim_name]) - 1;<br />
//Calculates the last entry in the current sim<br />
main_menu = llList2ListStrided(llDeleteSubList(dest, 0, 0), dest_list_sim_loc, next_sim_loc, 3);<br />
//Now menu list is built only showing destinations that are in the current sim<br />
main_menu = llListSort(main_menu, 1, TRUE);<br />
main_menu = (main_menu =[]) + ["Options"] + main_menu;<br />
}<br />
menu_chan_handle = llListen(menu_chan, "", llGetOwner(), "");<br />
llSetTimerEvent(20);<br />
llDialog(llDetectedKey(0), "Choose destination or Options to add/remove destinations", main_menu, menu_chan);<br />
}<br />
listen(integer channel, string lm, key id, string message) {<br />
if (llListFindList(main_menu + menu_options,[message]) != -1) {<br />
if (message == "Options") {<br />
llDialog(id, "Pick an option!", menu_options, menu_chan);<br />
}<br />
else if (message == "Back") {<br />
llDialog(id, "Where do you want to go?", main_menu, menu_chan);<br />
}<br />
else if (message == "Add") {<br />
integer b = TRUE;<br />
integer m = TRUE;<br />
b = ((llGetListLength(main_menu)) <= 11);<br />
//Only allows 11 entries per simulator<br />
m = (llGetFreeMemory() >= 1000);<br />
//Make usre we have enough memory to manipulate the lists<br />
if (!b || !m) {<br />
llOwnerSay("You can not add any more destinations");<br />
}<br />
else {<br />
llOwnerSay("What do you want to name this destination?");<br />
llListenRemove(menu_chan_handle);<br />
state add_dest;<br />
}<br />
}<br />
else if (message == "Remove") {<br />
llDialog(id, "Which desination do you want to remove?", main_menu, menu_chan);<br />
state rem_dest;<br />
}<br />
else if (message == "List") {<br />
integer i;<br />
if (llGetListLength(dest) > 0) {<br />
for (i = 0; i < llGetListLength(dest); i += 3) {<br />
string sim_name = llList2String(dest, i);<br />
string name = llList2String(dest, i + 1);<br />
string location = llList2String(dest, i + 2);<br />
llOwnerSay(sim_name + " , " + name + " = " + location);<br />
}<br />
}<br />
else {<br />
llOwnerSay("No Destinations Available.");<br />
}<br />
}<br />
else if (llListFindList(dest,[message]) != -1) {<br />
integer index = llListFindList(dest,[message]);<br />
if (index != -1) {<br />
vector pos = llGetPos();<br />
if (pos.z <= 4095) {<br />
target = (vector) llList2String(dest, index + 1);<br />
rez_chan = (integer) llFrand(100000 - 1000000) - 100000;<br />
llSay(0, "Touch the pumpkin to teleport");<br />
llRezObject(tp_object, llGetPos() + (<1, 0, 1> * llGetRot()), ZERO_VECTOR,<br />
ZERO_ROTATION, rez_chan);<br />
}<br />
else {<br />
llOwnerSay("Too high to teleport. You must be lower than 4096 meters");<br />
}<br />
}<br />
}<br />
}<br />
}<br />
object_rez(key id)<br />
{<br />
llWhisper(rez_chan, (string) target);<br />
}<br />
timer() {<br />
llSetTimerEvent(0);<br />
llListenRemove(menu_chan_handle);<br />
llListenRemove(rez_chan_handle);<br />
return;<br />
}<br />
}<br />
<br />
state add_dest {<br />
state_entry() {<br />
edit_test = TRUE;<br />
llSetTimerEvent(20);<br />
edit_chan_handle = llListen(edit_chan, "", llGetOwner(), "");<br />
}<br />
listen(integer chan, string name, key id, string msg) {<br />
integer e = llListFindList(sims,[sim]);<br />
if (e == -1) {<br />
sims = (sims =[]) + sims +[sim];<br />
}<br />
vector pos = llGetPos();<br />
dest = (dest =[]) + dest +[sim, msg, pos];<br />
llOwnerSay("Added : " + sim + " , " + msg + " = " + (string) pos);<br />
llListenRemove(edit_chan_handle);<br />
state default;<br />
}<br />
timer() {<br />
llSetTimerEvent(0);<br />
llListenRemove(edit_chan_handle);<br />
llOwnerSay("Timeout. Click TP HUD to start again");<br />
state default;<br />
}<br />
}<br />
<br />
state rem_dest {<br />
state_entry() {<br />
edit_test = TRUE;<br />
llSetTimerEvent(20);<br />
menu_chan_handle = llListen(menu_chan, "", llGetOwner(), "");<br />
}<br />
listen(integer chan, string name, key id, string msg) {<br />
integer d = llListFindList(dest,[msg]);<br />
if (d != -1) {<br />
dest = llDeleteSubList(dest, d - 1, d + 1);<br />
llOwnerSay("Removed : " + msg);<br />
integer f = llListFindList(dest,[sim]);<br />
if (f == -1) {<br />
sims = llDeleteSubList(sims, f, f);<br />
llListenRemove(menu_chan_handle);<br />
state default;<br />
}<br />
llListenRemove(menu_chan_handle);<br />
state default;<br />
}<br />
}<br />
timer() {<br />
llSetTimerEvent(0);<br />
llListenRemove(menu_chan_handle);<br />
llOwnerSay("Timeout. Click TP HUD to start again");<br />
state default;<br />
}<br />
}<br />
</lsl><br />
{{message}}Editted warpPos script for syntax error[[User:Jesse Barnett|Jesse Barnett]] 11:46, 23 April 2008 (PDT)<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// Multi-HUD WarpPos <br />
// "Apr 23 2008", "14:36:26"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
integer listenId; // Listener ID<br />
key gAvatarID;<br />
vector target; // The location the av will be teleported to.<br />
<br />
warpPos(vector target)<br />
{ //R&D by Keknehv Psaltery, 05/25/2006<br />
//with a little pokeing by Strife, and a bit more<br />
//munging by Talarus Luan<br />
//Final cleanup by Keknehv Psaltery<br />
//and of course Jesse Barnett got to jump in here<br />
//and made it work up to 4096 meters<br />
//Fail safe removed<br />
// Compute the number of jumps necessary<br />
integer jumps = (integer) (llVecDist(target, llGetPos()) / 10.0) + 1;<br />
if (jumps > 411)<br />
jumps = 411;<br />
list rules =[PRIM_POSITION, target]; //The start for the rules list<br />
integer count = 1;<br />
while ((count = count << 1) < jumps)<br />
rules += rules; <br />
llSetPrimitiveParams(rules + llList2List(rules, (count - jumps) << 1, count));<br />
}<br />
default {<br />
state_entry() {<br />
llSetObjectName("WarpPos");<br />
}<br />
listen(integer channel, string name, key id, string message) {<br />
target = (vector) message;<br />
llListenRemove(listenId);<br />
llSetText("Touch to teleport", <1, 1, 1 >, 1);<br />
llSitTarget(<0, 0, 0.5 >, ZERO_ROTATION);<br />
}<br />
on_rez(integer start_param) {<br />
// When this object rezzes setup a listener to get the target<br />
listenId = llListen(start_param, "", "", "");<br />
}<br />
changed(integer change) {<br />
if (change & CHANGED_LINK) {<br />
gAvatarID = llAvatarOnSitTarget();<br />
if (gAvatarID != NULL_KEY) warpPos(target);<br />
warpPos(target);<br />
llSleep(0.5);<br />
llDie();<br />
}<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Teleport HUD}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett&diff=165013User:Jesse Barnett2008-12-05T02:38:26Z<p>Jesse Barnett: /* Scripts & Snippets */</p>
<hr />
<div>{{LSL Header}}<br />
<br />
==About: Jesse Barnett==<br />
Scripter. You can find me in Aditi or the scripting forum.<br />
<br />
==Rant about the forums==<br />
Still waiting for LL to update the forum software!<br />
<br />
<<< Thank you SuezzaneC!! Yep info was out of date>>><br />
<br />
==Outside Editors==<br />
*[[http://www.lsleditor.org/Download.aspx LSLEditor]] Love it!<br />
<br />
*[[User:Jesse_Barnett/Scite|My Scite page]] Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.(Page is under construction)<br />
<br />
==Scripts & Snippets==<br />
I made em. You learn from em. Don't sell em!<br />
<br />
*[[3D Radar|3D Radar]] :: Rezzes a ball for each avatar in range. Each ball tracks it's on AV and displays distance.<br />
<br />
<br />
*[[AO Overriding Pose Ball|AO Overriding Pose Ball]] :: No more having to type "/ao off/on" When you sit down or get up anymore!!<br />
<br />
<br />
*[[High Altitude Rezzer|High Altitude Rezzer]] :: Create a vehicle that goes straight up to a set altitude and then rezzes a work platform, garden, private spot or whatever else you put in it's contents.<br />
<br />
<br />
*[[User:Jesse_Barnett/SandBox_Blox|SandBox Blox]] :: Highly addictive and fun. Blocks you can stick together by touch. Good example to learn about one of the new Detected Touch functions and has some interesting math.<br />
<br />
<br />
*[[Sim Map Particle Projector|Sim Map Particle Projector]] :: Creates a floating map of the sim that the script is in. Demonstrates how to work with the map api.<br />
<br />
<br />
*[[Teleport HUD|Teleport HUD]] :: NOW IT WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett/SandBox_Blox&diff=165003User:Jesse Barnett/SandBox Blox2008-12-05T02:34:43Z<p>Jesse Barnett: New page: {{LSL Header}} <lsl> ////////////////////////////////////////////////////////////////////////////////////////////////////// // SandBox Blox Rezzer 1.0 // "Dec 4 2008", "20:44:49" ...</p>
<hr />
<div>{{LSL Header}}<br />
<br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// SandBox Blox Rezzer 1.0<br />
// "Dec 4 2008", "20:44:49"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Highly addictive and fun to play with<br />
//Inspired by a script by Pedro Mcmillan<br />
//Pedro's script can be found at<br />
//http://www.avid-insight.co.uk/dev/stackable_graph_cube_1.2.lsl<br />
<br />
//Drop this script in a 1/2 meter cube prim along with<br />
//a white SandBox Blox<br />
//To use: Touch the red prim to activate<br />
//A white Sandbox Blox will rez above this cube and another will<br />
//rezz a short distance away.<br />
//Touch the white prim that is on top of the rezzor and then touch<br />
//the face of the other white prim where you want this blox to go.<br />
//When blox are active they will turn green<br />
//A new prim will rez whenever one is used<br />
//When you are tired of playing, just touch the red prim<br />
//and all of the white prims will disappear<br />
<br />
vector rezOffset = <0,0,1>;<br />
integer dieChan = -7912374;<br />
//The dieChan must be the same as in the SandBlox script<br />
//Please pick your own channels<br />
integer On = 1;<br />
<br />
rezObj() {<br />
llRezObject("SandBox Blox", llGetPos() + rezOffset, ZERO_VECTOR, ZERO_ROTATION, 42);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
llSetObjectName("SandBox Blox Rezzer");<br />
llSetPrimitiveParams([PRIM_TEXTURE, ALL_SIDES, "5748decc-f629-461c-9a36-a35a221fe21f",<br />
<1,1,1>, <0,0,0>, 0, PRIM_COLOR, ALL_SIDES, <1, 0, 0>, 1]);<br />
}<br />
touch_start(integer n) {<br />
if (On) {<br />
rezObj();<br />
llSensorRepeat("SandBox Blox", NULL_KEY, SCRIPTED | PASSIVE , 1.1, PI, 1.0);<br />
}<br />
else {<br />
llRegionSay(dieChan, "die");<br />
llSensorRemove();<br />
}<br />
On = !On;<br />
}<br />
sensor(integer n) {<br />
}<br />
no_sensor() {<br />
rezObj();<br />
}<br />
}<br />
</lsl><br />
<lsl><br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// SandBox Blox 2.0<br />
// "Dec 4 2008", "20:45:46"<br />
// Creator: Jesse Barnett<br />
// Released into the Public Domain<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
//Drop this script in a cube prim<br />
//Take it into inventory and then place inside the SandBox Blox Rezzor prim<br />
<br />
integer dieChan = -7912374;<br />
//The dieChan must be the same as in the SandBlox Rezzor script<br />
//Please pick your own channels<br />
integer posChan = -6641118;<br />
integer chanRem;<br />
integer faceInt;<br />
vector faceVec;<br />
<br />
reset() {<br />
llSetColor(<1, 1, 1 >, ALL_SIDES);<br />
llListenRemove(chanRem);<br />
llSetTimerEvent(0.0);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
llSetObjectName("SandBox Blox");<br />
llSetTexture("5748decc-f629-461c-9a36-a35a221fe21f", ALL_SIDES);<br />
llListen(dieChan, "", "", "die");<br />
}<br />
touch_start(integer n) {<br />
integer i = 0;<br />
for (; i < n; ++i) {<br />
faceVec = llDetectedTouchNormal(i);<br />
faceInt = llDetectedTouchFace(i);<br />
}<br />
faceVec *= .5;<br />
vector setPos = llGetPos() + faceVec;<br />
llSay(posChan, (string) setPos);<br />
llSetTimerEvent(5.0);<br />
llSetColor(<0, 1, 0 >, faceInt);<br />
chanRem = llListen(posChan, "SandBox Blox", "", "");<br />
}<br />
listen(integer channel, string name, key id, string msg) {<br />
if (channel == dieChan) {<br />
llDie();<br />
}<br />
else if ("stop" != msg) {<br />
llSetPos((vector)msg);<br />
llRegionSay(posChan, "stop");<br />
}<br />
reset();<br />
}<br />
timer() {<br />
reset();<br />
}<br />
}<br />
</lsl></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Sim_Map_Particle_Projector&diff=149123Sim Map Particle Projector2008-11-21T02:40:00Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
Fun little script. Drop it in a prim to see how it works. Demonstrates how to work with the map api.<br />
<br />
<lsl><br />
key httpRequestId;<br />
float mapSize = 3.0;<br />
float mapHeight = 3.0;<br />
string mapTexture;<br />
string URL = "http://www.subnova.com/secondlife/api/map.php";<br />
<br />
mapParticle()<br />
{<br />
llParticleSystem([<br />
PSYS_PART_FLAGS, 0,<br />
PSYS_SRC_PATTERN, 4,<br />
PSYS_PART_START_ALPHA, 0.50,<br />
PSYS_PART_END_ALPHA, 0.50,<br />
PSYS_PART_START_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_END_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_START_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_END_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_MAX_AGE, 1.20,<br />
PSYS_SRC_MAX_AGE, 0.00,<br />
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,<br />
PSYS_SRC_ANGLE_BEGIN, 0.00,<br />
PSYS_SRC_ANGLE_END, 0.00,<br />
PSYS_SRC_BURST_PART_COUNT, 8,<br />
PSYS_SRC_BURST_RADIUS, mapHeight,<br />
PSYS_SRC_BURST_RATE, 0.10,<br />
PSYS_SRC_BURST_SPEED_MIN, 0.00,<br />
PSYS_SRC_BURST_SPEED_MAX, 0.00,<br />
PSYS_SRC_OMEGA, <0.00,0.00,0.00>,<br />
PSYS_SRC_TEXTURE, mapTexture]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
httpRequestId = llHTTPRequest(URL + "?" + "sim" + "=" + llEscapeURL(llGetRegionName()),[], "");<br />
}<br />
http_response(key request_id, integer status, list metadata, string body) {<br />
if (request_id == httpRequestId) {<br />
mapTexture = body;<br />
mapParticle();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Sim Map Particle Projector}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Sim_Map_Particle_Projector&diff=149113Sim Map Particle Projector2008-11-21T02:04:32Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
Fun little script. Drop it in a prim to see how it works. Demonstrates how to work with the map api.<br />
<br />
<lsl><br />
key httpRequestId;<br />
float mapSize = 3.0;<br />
float mapHeight = 3.0;<br />
string mapTexture;<br />
string URL = "http://www.subnova.com/secondlife/api/map.php";<br />
<br />
mapParticle()<br />
{<br />
llParticleSystem([<br />
PSYS_PART_FLAGS, 0,<br />
PSYS_SRC_PATTERN, 4,<br />
PSYS_PART_START_ALPHA, 0.50,<br />
PSYS_PART_END_ALPHA, 0.50,<br />
PSYS_PART_START_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_END_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_START_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_END_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_MAX_AGE, 1.20,<br />
PSYS_SRC_MAX_AGE, 0.00,<br />
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,<br />
PSYS_SRC_ANGLE_BEGIN, 0.00,<br />
PSYS_SRC_ANGLE_END, 0.00,<br />
PSYS_SRC_BURST_PART_COUNT, 8,<br />
PSYS_SRC_BURST_RADIUS, mapHeight,<br />
PSYS_SRC_BURST_RATE, 0.10,<br />
PSYS_SRC_BURST_SPEED_MIN, 0.00,<br />
PSYS_SRC_BURST_SPEED_MAX, 0.00,<br />
PSYS_SRC_OMEGA, <0.00,0.00,0.00>,<br />
PSYS_SRC_TEXTURE, mapTexture]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
httpRequestId = llHTTPRequest(URL + "?" + "sim" + "=" + key httpRequestId;<br />
float mapSize = 3.0;<br />
float mapHeight = 3.0;<br />
string mapTexture;<br />
string URL = "http://www.subnova.com/secondlife/api/map.php";<br />
<br />
mapParticle()<br />
{<br />
llParticleSystem([<br />
PSYS_PART_FLAGS, 0,<br />
PSYS_SRC_PATTERN, 4,<br />
PSYS_PART_START_ALPHA, 0.50,<br />
PSYS_PART_END_ALPHA, 0.50,<br />
PSYS_PART_START_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_END_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_START_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_END_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_MAX_AGE, 1.20,<br />
PSYS_SRC_MAX_AGE, 0.00,<br />
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,<br />
PSYS_SRC_ANGLE_BEGIN, 0.00,<br />
PSYS_SRC_ANGLE_END, 0.00,<br />
PSYS_SRC_BURST_PART_COUNT, 8,<br />
PSYS_SRC_BURST_RADIUS, mapHeight,<br />
PSYS_SRC_BURST_RATE, 0.10,<br />
PSYS_SRC_BURST_SPEED_MIN, 0.00,<br />
PSYS_SRC_BURST_SPEED_MAX, 0.00,<br />
PSYS_SRC_OMEGA, <0.00,0.00,0.00>,<br />
PSYS_SRC_TEXTURE, mapTexture]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
httpRequestId = llHTTPRequest(URL + "?" + "sim" + "=" + llEscapeURL(llGetRegionName())),[], "");<br />
}<br />
http_response(key request_id, integer status, list metadata, string body) {<br />
if (request_id == httpRequestId) {<br />
mapTexture = body;<br />
mapParticle();<br />
}<br />
}<br />
}<br />
llGetRegionName(),[], "");<br />
}<br />
http_response(key request_id, integer status, list metadata, string body) {<br />
if (request_id == httpRequestId) {<br />
mapTexture = body;<br />
mapParticle();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Sim Map Particle Projector}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Sim_Map_Particle_Projector&diff=149103Sim Map Particle Projector2008-11-21T02:03:41Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
Fun little script. Drop it in a prim to see how it works. Demonstrates how to work with the map api.<br />
<br />
<lsl><br />
key httpRequestId;<br />
float mapSize = 3.0;<br />
float mapHeight = 3.0;<br />
string mapTexture;<br />
string URL = "http://www.subnova.com/secondlife/api/map.php";<br />
<br />
mapParticle()<br />
{<br />
llParticleSystem([<br />
PSYS_PART_FLAGS, 0,<br />
PSYS_SRC_PATTERN, 4,<br />
PSYS_PART_START_ALPHA, 0.50,<br />
PSYS_PART_END_ALPHA, 0.50,<br />
PSYS_PART_START_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_END_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_START_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_END_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_MAX_AGE, 1.20,<br />
PSYS_SRC_MAX_AGE, 0.00,<br />
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,<br />
PSYS_SRC_ANGLE_BEGIN, 0.00,<br />
PSYS_SRC_ANGLE_END, 0.00,<br />
PSYS_SRC_BURST_PART_COUNT, 8,<br />
PSYS_SRC_BURST_RADIUS, mapHeight,<br />
PSYS_SRC_BURST_RATE, 0.10,<br />
PSYS_SRC_BURST_SPEED_MIN, 0.00,<br />
PSYS_SRC_BURST_SPEED_MAX, 0.00,<br />
PSYS_SRC_OMEGA, <0.00,0.00,0.00>,<br />
PSYS_SRC_TEXTURE, mapTexture]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
httpRequestId = llHTTPRequest(URL + "?" + "sim" + "=" + key httpRequestId;<br />
float mapSize = 3.0;<br />
float mapHeight = 3.0;<br />
string mapTexture;<br />
string URL = "http://www.subnova.com/secondlife/api/map.php";<br />
<br />
mapParticle()<br />
{<br />
llParticleSystem([<br />
PSYS_PART_FLAGS, 0,<br />
PSYS_SRC_PATTERN, 4,<br />
PSYS_PART_START_ALPHA, 0.50,<br />
PSYS_PART_END_ALPHA, 0.50,<br />
PSYS_PART_START_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_END_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_START_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_END_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_MAX_AGE, 1.20,<br />
PSYS_SRC_MAX_AGE, 0.00,<br />
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,<br />
PSYS_SRC_ANGLE_BEGIN, 0.00,<br />
PSYS_SRC_ANGLE_END, 0.00,<br />
PSYS_SRC_BURST_PART_COUNT, 8,<br />
PSYS_SRC_BURST_RADIUS, mapHeight,<br />
PSYS_SRC_BURST_RATE, 0.10,<br />
PSYS_SRC_BURST_SPEED_MIN, 0.00,<br />
PSYS_SRC_BURST_SPEED_MAX, 0.00,<br />
PSYS_SRC_OMEGA, <0.00,0.00,0.00>,<br />
PSYS_SRC_TEXTURE, mapTexture]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
httpRequestId = llHTTPRequest(URL + "?" + "sim" + "=" + llEscapeURL(llGetRegionName())),[], "");<br />
}<br />
http_response(key request_id, integer status, list metadata, string body) {<br />
if (request_id == httpRequestId) {<br />
mapTexture = body;<br />
mapParticle();<br />
}<br />
}<br />
}<br />
llGetRegionName(),[], "");<br />
}<br />
http_response(key request_id, integer status, list metadata, string body) {<br />
if (request_id == httpRequestId) {<br />
mapTexture = body;<br />
mapParticle();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Sim Map Particle Projector}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett&diff=149083User:Jesse Barnett2008-11-21T01:54:10Z<p>Jesse Barnett: /* Rant about the forums */</p>
<hr />
<div>{{LSL Header}}<br />
<br />
==About: Jesse Barnett==<br />
Scripter. You can find me in Aditi or the scripting forum.<br />
<br />
==Rant about the forums==<br />
Still waiting for LL to update the forum software!<br />
<br />
<<< Thank you SuezzaneC!! Yep info was out of date>>><br />
<br />
==Outside Editors==<br />
*[[http://www.lsleditor.org/Download.aspx LSLEditor]] Love it!<br />
<br />
*[[User:Jesse_Barnett/Scite|My Scite page]] Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.(Page is under construction)<br />
<br />
==Scripts & Snippets==<br />
I made em. You learn from em. Don't sell em!<br />
<br />
*[[3D Radar|3D Radar]] :: Rezzes a ball for each avatar in range. Each ball tracks it's on AV and displays distance.<br />
<br />
<br />
*[[AO Overriding Pose Ball|AO Overriding Pose Ball]] :: No more having to type "/ao off/on" When you sit down or get up anymore!!<br />
<br />
<br />
*[[High Altitude Rezzer|High Altitude Rezzer]] :: Create a vehicle that goes straight up to a set altitude and then rezzes a work platform, garden, private spot or whatever else you put in it's contents.<br />
<br />
<br />
*[[Sim Map Particle Projector|Sim Map Particle Projector]] :: Creates a floating map of the sim that the script is in. Demonstrates how to work with the map api.<br />
<br />
<br />
*[[Teleport HUD|Teleport HUD]] :: NOW IT WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=User:Jesse_Barnett&diff=149063User:Jesse Barnett2008-11-21T01:51:57Z<p>Jesse Barnett: /* Scripts & Snippets */</p>
<hr />
<div>{{LSL Header}}<br />
<br />
==About: Jesse Barnett==<br />
Scripter. You can find me in Aditi or the scripting forum.<br />
<br />
==Rant about the forums==<br />
LL opened the grid to all users everywhere in the world. Doesn't matter if they have access to a credit card or paypal to show payment info. Some may disagree, but I am fine with that. I welcome everyone to come and learn. <br />
<br />
But what I vehemently disagree with is the fact that unless you have payment info on file, you can not access the SL Forums. The forums are the greatest repository of knowledge by far there is in regards to content creation; Texturing, Animations, Building & Scripting. An army of volunteers are there 24 hours a day just waiting for someone to ask a question. We care!!!!!! <br />
<br />
Come on Linden Labs! Show a little compassion and open the forums to everyone with at least Read Access!!!! <br />
<br />
Hey while you are at it, please upgrade VBulletin! We are seriously tired of waiting and excuses. What's the excuse this week??????????????????<br />
<br />
3 Scripts! This is what I have listed here but I do a dozen or more a week in the forums.<br />
<br />
<<< Hi Jesse. Just noticed that your rant about the forums being closed to NPIOF users is out of date; all SL users have been able to access the forums for a while now. I'm not sure when; the change escaped my notice at the time. ~SuezanneC Baskerville>>><br />
<br />
==Outside Editors==<br />
*[[http://www.lsleditor.org/Download.aspx LSLEditor]] Love it!<br />
<br />
*[[User:Jesse_Barnett/Scite|My Scite page]] Professional duty scripting workhorse. Script in multiple languages, compiles through Visual Studio C++ allowing you to use includes, define your own global variables, customise auto-indent, syntax check with lslint, customise wiki help, customise shortcuts, tabbed files, add bookmarks, opens files in LSLEditor for testing.(Page is under construction)<br />
<br />
==Scripts & Snippets==<br />
I made em. You learn from em. Don't sell em!<br />
<br />
*[[3D Radar|3D Radar]] :: Rezzes a ball for each avatar in range. Each ball tracks it's on AV and displays distance.<br />
<br />
<br />
*[[AO Overriding Pose Ball|AO Overriding Pose Ball]] :: No more having to type "/ao off/on" When you sit down or get up anymore!!<br />
<br />
<br />
*[[High Altitude Rezzer|High Altitude Rezzer]] :: Create a vehicle that goes straight up to a set altitude and then rezzes a work platform, garden, private spot or whatever else you put in it's contents.<br />
<br />
<br />
*[[Sim Map Particle Projector|Sim Map Particle Projector]] :: Creates a floating map of the sim that the script is in. Demonstrates how to work with the map api.<br />
<br />
<br />
*[[Teleport HUD|Teleport HUD]] :: NOW IT WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Sim_Map_Particle_Projector&diff=149043Sim Map Particle Projector2008-11-21T01:50:50Z<p>Jesse Barnett: </p>
<hr />
<div>{{LSL Header}}<br />
<br />
Fun little script. Drop it in a prim to see how it works. Demonstrates how to work with the map api.<br />
<br />
<lsl><br />
key httpRequestId;<br />
float mapSize = 3.0;<br />
float mapHeight = 3.0;<br />
string mapTexture;<br />
string URL = "http://www.subnova.com/secondlife/api/map.php";<br />
<br />
mapParticle()<br />
{<br />
llParticleSystem([<br />
PSYS_PART_FLAGS, 0,<br />
PSYS_SRC_PATTERN, 4,<br />
PSYS_PART_START_ALPHA, 0.50,<br />
PSYS_PART_END_ALPHA, 0.50,<br />
PSYS_PART_START_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_END_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_START_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_END_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_MAX_AGE, 1.20,<br />
PSYS_SRC_MAX_AGE, 0.00,<br />
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,<br />
PSYS_SRC_ANGLE_BEGIN, 0.00,<br />
PSYS_SRC_ANGLE_END, 0.00,<br />
PSYS_SRC_BURST_PART_COUNT, 8,<br />
PSYS_SRC_BURST_RADIUS, mapHeight,<br />
PSYS_SRC_BURST_RATE, 0.10,<br />
PSYS_SRC_BURST_SPEED_MIN, 0.00,<br />
PSYS_SRC_BURST_SPEED_MAX, 0.00,<br />
PSYS_SRC_OMEGA, <0.00,0.00,0.00>,<br />
PSYS_SRC_TEXTURE, mapTexture]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
httpRequestId = llHTTPRequest(URL + "?" + "sim" + "=" + llGetRegionName(),[], "");<br />
}<br />
http_response(key request_id, integer status, list metadata, string body) {<br />
if (request_id == httpRequestId) {<br />
mapTexture = body;<br />
mapParticle();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Sim Map Particle Projector}}</div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&diff=149033Category:LSL Library2008-11-21T01:49:19Z<p>Jesse Barnett: /* LSL Script Library */</p>
<hr />
<div>{{LSL Header|ml=*}}{{RightToc}}<br />
==Script Library==<br />
<br />
<div id="box"><br />
<div style="padding: 0.5em 0.5em 1.5em"><br />
Come to this page to see complex examples that show how to combine parts of LSL.<br />
<br />
Go to the [[:Category:LSL Examples|LSL Examples]] page to see brief examples of how to use parts of LSL <br />
<br />
Why collect complex examples here? Well, ...<br />
<br />
There are many [[script|scripts]] that have become buried in the [http://forums.secondlife.com/forumdisplay.php?f=15 Scripting Library forum], were lost with the death of the scripting forums, or sit idle in [[inventory|inventories]] that could be useful and should be more accessible.<br />
<br />
Other scripters may be in the same situation. This wiki is a well-suited medium for a script library. Feel free to add your scripts to the script library by creating new pages for them and linking to those pages here.<br />
<br />
Note that there are many more scripts in the LSL Library here, but you can't get to them if you don't know they exist, because they are subpages now, instead of an automatically updated category. Good luck searching.<br />
</div><br />
</div><br />
<br />
<div id="box"><br />
<br />
== Rules for posting: ==<br />
<div style="padding: 0.5em"><br />
#Your script must be tested and working. If it's not, stick it in your user-space until it is. This is a list of working, usable scripts.<br />
#Add a link to your script's page here. Link back to this page from your script's page. Start your page with <nowiki>{{LSL Header}}</nowiki>.<br />
#Do not add scripts that duplicate the same functionality as an existing script or built in {{LSLGC|Functions|function}}. If yours does, explain why.<br />
#Do not list simple scripts here. Include those among the [[:Category:LSL Examples|LSL Examples]] instead.<br />
</div></div><br />
<br />
<div id="box"><br />
==LSL Script Library==<br />
<br />
{| {{Prettytable}}<br />
|-<br />
|{{Hl2}}| '''Name'''<br />
|{{Hl2}}| '''Creator'''<br />
|{{Hl2}}| '''Description'''<br />
|-<br />
||[[3D Radar]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||Rezzes a ball for each avatar in range. Each ball tracks its own AV and displays distance.<br />
|-<br />
||[[AdvancedNotecardReader]]<br />
||[[Lear Cale|Lear Cale]]<br />
||Robust configuration notecard reader; supports multiple notecards with same suffix, handles reconfig on inventory change, and does not usurp the default state.<br />
|-<br />
||[[AntiDelay Node]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Uses llMessageLinked to stop those pesky delays.<br />
|-<br />
||[[AO Overriding Pose Ball]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||No more turning your AO off and on when you sit down<br />
|-<br />
||[[ARCFOUR Strong Encryption Implementation]]<br />
||[[User:Nekow42 Zarf|Nekow42 Zarf]]<br />
||An LSL implementation of ARCFOUR, the most popular stream cipher still in use. It is licensed under a Creative Commons Attribution 3.0 license.<br />
|-<br />
||[[Assembly Programming Language|Assembly-Like Programming Language]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||A compiler that runs assembly-like programs.<br />
|-<br />
||[[Associative Array Emulator|Associative Array (Dictionary) Emulator]]<br />
||[[User:Alynna Vixen|Alynna Vixen]]<br />
||This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.<br />
|-<br />
||[[Basic Encryption Modules]]<br />
||[[User:Beverly Larkin|Beverly Larkin]]<br />
||Basic encryption scripts, allows you to encrypt a float and shout it to another prim on a randomly chosen channel.<br />
|-<br />
||[[Binary Clock v1.1|Binary Clock]]<br />
||[[User:Fox Diller|Fox Diller]]<br />
||A Binary Clock.<br />
|-<br />
||[[Be happy]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Basic smile attachment script, makes your avatar smile.<br />
|-<br />
||[[Blog Feed]]<br />
||[[User:Kageshen Kirax|Kageshen Kirax]]<br />
||Displays the latest blog.<br />
|-<br />
||[[Builders Buddy|Builder's Buddy Tool]]<br />
||[[User:Newfie Pendragon|Newfie Pendragon]]<br />
||Script to easily move/rotate large builds that exceed the linkable size limit (30 meters).<br />
|-<br />
||[[Camera Sync]]<br />
||[[User:Meyermagic Salome|Meyermagic Salome]] and [[User:Nomad Padar|Nomad Padar]]<br />
||A system to synchronize the cameras of two avatars.<br />
|-<br />
||[[Chatbot]]<br />
||Anonymous<br />
||Compile and run the LSL you type on a channel, faster than you can thru the 2007-08 SL GUI.<br />
|-<br />
||[[Chat Logger (GPL)]]<br />
||[[User:Nobody Fugazi|Nobody Fugazi]]<br />
||Chat logger which requests permission from participants before recording them.<br />
|-<br />
||[[Chat_Relay|Chat Relay]]<br />
||[[User:grumble Loudon|grumble Loudon]]<br />
||A Chat relay which can be routed using a path header and won't echo.<br />
|-<br />
||[[Code Racer]]<br />
||Anonymous<br />
||Race two versions of code forever, to see which runs faster.<br />
|-<br />
||[[Code Sizer]]<br />
||Anonymous<br />
||Count the bytes compiled from source code, to measure how to write small code.<br />
|-<br />
||[[Color conversion scripts|Color Conversion]]<br />
||[[User:Sally LaSalle|Sally LaSalle]]<br />
||Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV).<br />
|-<br />
||[[Color script]]<br />
||[[User:Masakazu Kojima|Masakazu Kojima]]<br />
||Script for changing colors trough a listener with pre-defined colors.<br />
|-<br />
||[[Library Combined Library|Combined Library]]<br />
||[[User:Strife Onizuka|Strife Onizuka]]<br />
||Library of mostly encoding and decoding functions, some more useful then others.<br />
* String functions: Replace / Trim right / Trim left / Trim both<br />
* Unicode conversion: UTF8 to Unicode / Unicode to UTF8<br />
* List functions: Replace / Compare<br />
|-<br />
||[[Computer:jaycoonlanguage]]<br />
||[[User:jayco121 Bing|jayco121 Bing]]<br />
|| A language written in LSL that is meant for my computer (available at the shop).<br />
|-<br />
||[[Library_Chat_Relay|Conversation Relay]]<br />
||[[User:Jippen Faddoul|Jippen Faddoul]]<br />
||Chat relay which requests permission from participants before relaying their messages. Also includes their attachments. (ToS compliant).<br />
|-<br />
||[[Curtain script]]<br />
||[[User:Zilla Larsson|Zilla Larsson]]<br />
||A simple script to retract/stretch curtains, blinds, bedcovers and more<br />
|-<br />
||[[Dataserver API]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Dataserver Framework for Notecards.<br />
|-<br />
||[[Date Library]]<br />
||[[User:Corto Maltese|Corto Maltese]]<br />
|| Date library, based on number of day since march 3rd 1600, can be used to calculate weekday, date differences, and date offset, and date formating.<br />
|-<br />
||[[Days in Month]]<br />
||[[User:IntLibber Brautigan|IntLibber Brautigan]]<br />
||Clicking on it returns the number of days in the present month. Useful for scripting calendars and tier systems that need to know the number of days in the month at hand or to calculate for any month. Even adjusts for leap years.<br />
|-<br />
||[[Day of the Week]]<br />
||[[User:DoteDote Edison|DoteDote Edison]]<br />
||Function to get day of the week from [[llGetUnixTime]].<br />
|-<br />
||[[Deed Tools]]<br />
||[[User:Falados Kapuskas|Falados Kapuskas]]<br />
||Tools that allow the creator to modify Group-Owned (Deeded) Objects via chat.<br />
|-<br />
||[[Describe Chatter]]<br />
||Anonymous<br />
||Chat to see yourself as others do.<br />
|-<br />
||[[Drink script]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Used mainly for food and drink in Second Life.<br />
|-<br />
||[[ClickAndDrag]]<br />
||[[User:Nexii Malthus|Nexii Malthus]]<br />
|| Click and Drag user interface elements using dynamic feedback<br />
|-<br />
||[[Dialog Control]]<br />
||[[User:Nargus Asturias|Nargus Asturias]]<br />
|| A (not-so) simple dialog control script. Call dialog and receive selected value via link_message(), with built-in timer and link_message() notification on time out. Supports multi-pages dialog and numeric property dialog. Button text and dialog's returned value can differ.<br />
|-<br />
||[[Dialog Menus Control]]<br />
||[[User:Nargus Asturias|Nargus Asturias]]<br />
|| An extension to Nargus Dialog Control. This menus control allow multi-level menus through SL dialog system. It can also recall last used menus. Menus are saved and pre-formatted for faster access. Though it is not the fastest, nor most memory efficient, but it should make it easier to use.<br />
|-<br />
||[[Dialog NumberPad|Dialog Number Pad]]<br />
||[[User:DoteDote Edison|DoteDote Edison]]<br />
||Use a dialog to accept positive integer input from users.<br />
|-<br />
||[[Efficiency Tester]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Tests the speed of a function.<br />
|-<br />
||[[Email-to-IM|Email2IM]]<br />
||[[User:DoteDote Edison|DoteDote Edison]]<br />
||Send IMs to SL friends via email (translate emails from friends into IMs).<br />
|-<br />
||[[Fix Small Prims|Fix_Small_Prims]]<br />
||[[User:Emma Nowhere|Emma Nowhere]]<br />
||Finds and adjusts the smallest prims in a linkset so that it can be scaled down further.<br />
|-<br />
||[[Float2Hex]]<br />
||[[User:Strife Onizuka|Strife Onizuka]]<br />
||Very useful for transporting [[float|floats]].<br />
|-<br />
||[[Follower (script)|Follower]]<br />
||Unknown, uploaded by [[User:Slik Swindlehurst|Slik Swindlehurst]]<br />
||Makes an object follow the nearest person. Do not use for [[grief|griefing]].<br />
|-<br />
||[[Geometric|Geometric Library]]<br />
||Community Project<br />
||A substantial amount of various geometric functions for intersection and other purposes of 3D maths.<br />
|-<br />
||[[GetTimestampOffset]]<br />
||[[User:Siann_Beck|Siann Beck]]<br />
||Returns llGetTimestamp() with an hour offset.<br />
|-<br />
||[[Give InvItem every n hours]]<br />
||[[User:Criz Collins|Criz Collins]]<br />
||Will give an inventory item on touch only every n hours, even if somebody touches the object more than once. <br />
|-<br />
||[[Give random object]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Touch to recieve a random object in the prim's inventory<br />
|-<br />
||[[Google Charts]]<br />
||[[User:Dedric Mauriac|Dedric Mauriac]]<br />
||Create links to display raw data as a chart image.<br />
|-<br />
||[[Go transparent when walking]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||An attachment that goes invisble when you walk and visible when you don't walk.<br />
|-<br />
||[[Group Privacy]]<br />
||[[User:Chance Unknown|Chance Unknown]]<br />
||Security device to insure members of a group can have a private area. Deactivates when nobody present.<br />
|-<br />
||[[Group key finder]]<br />
||[[User:Emmas Seetan| Emmas Seetan]]<br />
||Touch to find the key of the group<br />
|-<br />
||[[Hello Avatar]]<br />
||Linden Lab<br />
||SL's default script.<br />
|-<br />
||[[High Altitude Rezzer|High Altitude Rezzer]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||Vehicle that goes straight up and then rezzes objects up to 4,096 meters.<br />
|-<br />
||[[Holodeck]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Home Rezzing System (Open Source).<br />
|-<br />
||[[Intra-Region Update Server]]<br />
||[[User:Emma_Nowhere|Emma Nowhere]]<br />
||Centrally update objects such as Freeview screens or teleport pads within a region that are configured by notecards or contain modifiable objects or media assets.<br />
|-<br />
||[[Interpolation|Interpolation Library]]<br />
||[[User:Nexii_Malthus|Nexii Malthus]]<br />
||A small set of interpolation functions.<br />
|-<br />
||[[Inventory Menu]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Inventory Based Menu System.<br />
|-<br />
||[[iTunes RPC Email|iTunes RPC]]<br />
||[[User:Fox Diller|Fox Diller]]<br />
||iTunes RPC via LSL [[llEmail]] and [[llRemoteDataReply]].<br />
|-<br />
||[[Key Pad Door|Keypad Door]]<br />
||[[User:Tdub Dowler|Tdub Dowler]]<br />
|| Door and keypad with changeable code. Follow instructions carefully!<br />
|-<br />
||[[LSL_languageAPI]]<br />
||[[User:Gypsy paz|Gypsy Paz]]<br />
||Multi-lingual API from notecard based language files<br />
|-<br />
||[[Last Sound System]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An LSL Last.fm client.<br />
|-<br />
||[[Listener Script]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Use to listen to other people's conversations (Like spying)<br />
|-<br />
||[[List2CSV]]<br />
||[[User:Kunnis Basiat|Kunnis Basiat]]<br />
||List2CSV & CSV2List that include perserving type and escaping characters.<br />
|-<br />
||[[Load URL]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||Touch to get a dialog to visit the URL inside the script.<br />
|-<br />
||[[Mandelbrot Explorer]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An interactive fractal explorer.<br />
|-<br />
||[[Merge Sort]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Implements a Merge Sort in LSL, however this code is 300(ish) times slower than [[llListSort]]. Don't use this in a script!<br />
|-<br />
||[[Minesweeper]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||A simple minesweeper game.<br />
|-<br />
||[[Multirezzer|Multirezzer (on collision)]]<br />
||[[User:Beet Streeter|Beet Streeter]]<br />
||Spawns up to 10 objects when the object containing the script collides with a user.<br />
|-<br />
||[[Name2Key in LSL]]<br />
||[[User:Maeva Anatine|Maeva Anatine]]<br />
||Get the Name2Key feature inside your scripts. Works even on lastly subscribed avatars.<br />
|-<br />
||[[Object to Data v1.2|Object to Data]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Turns an object into text (and back). Allows people to transfer objects through notecards.<br />
|-<br />
||[[Open Group Join]]<br />
||[[User:Alicia Stella|Alicia Stella]]<br />
||User Touches Object to Join Group from Group Info window, (no bot.)<br />
|-<br />
||[[ParseString2List]]<br />
||[[User:Strife Onizuka|Strife Onizuka]]<br />
||Same as [[llParseString2List]] and [[llParseStringKeepNulls]], but not limited to 8 spacers or separators. Thus substitute a call to the [[llParseString2List]] and [[llParseStringKeepNulls]] functions by a call to [[Parse_String_To_List|ParseString2List]] whenever you have more than 8 separators or more than 8 spacers.<br />
|-<br />
||[[Pathfinder]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||A potential field based pathfinding library.<br />
|-<br />
||[[Phantom Child]]<br />
||[[User:Aeron Kohime|Aeron Kohime]]<br />
||Causes a child in a link set to become phantom without the entire object becoming phantom.<br />
|-<br />
||[[Phantom Maker]]<br />
||[[User:Xaviar_Czervik|Xaviar Czervik]]<br />
||An object that turns avatars into phantoms, without having to remain sitting.<br />
|-<br />
||[[PosJump]]<br />
||[[User:Uchi Desmoulins|Uchi Desmoulins]]<br />
||A much more efficient alternative to the popular [[warpPos]] function for bypassing 10m distance-moved limitations.<br />
|-<br />
||[[Prefix Calculator]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
|| A calculator that evaluates expressions in prefix notation. <br />
<code>+ 3 4 = 5. * + 1 2 + 3 4 = 14.</code><br />
|-<br />
||[[Pseudo-random Number Generator]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Generates a Pseudo-random number between -0x7FFFFFFF and 0x7FFFFFFF<br />
|-<br />
||[[Random AV Profile Projector]]<br />
||[[User:Debbie Trilling|Debbie Trilling]]<br />
||Randomly selects an AV from a crowd & then projects their profile picture as a 'holographic' image <br />
|-<br />
||[[Say Region Frames Per Second|Region Frames Per Second]]<br />
||[[User:Heymeriou Mystakidou|Heymariou Mystakidou]]<br />
|| Says the region name and frames per second out loud on command.<br />
|-<br />
||[[sbDialog]]<br />
||[[User:Siann_Beck|Siann Beck]]<br />
||A simple replacement function for [[llDialog]]. It re-orders the button list so that the button values, as passed to it, display left-to-right, top-to-bottom. It also opens a [[llListen|listen]] on the specified channel, and returns the handle.<br />
|-<br />
||[[Scheduler]]<br />
||[[User:Haravikk Mistral|Haravikk Mistral]]<br />
||Schedule multiple events using a single script timer<br />
|-<br />
||[[Script Override Functions]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||bypass default strings, integer etc in chat channel.<br />
|-<br />
||[[Self Upgrading Script Enhanced]]<br />
||[[User:Cron Stardust|Cron Stardust]]<br />
||Keeps only latest version of the script on prim (even with multiple adds of the same script!)<br />
|-<br />
||[[SHA1|SHA1 Hash]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Preforms a SHA1 Hash on an input text. Similar to MD5 only (slightly) more secure.<br />
|-<br />
||[[Sim Map Particle Projector]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||Displays a floating map of the sim the script is in.<br />
|-<br />
||[[SLateIt]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An augmented virtual reality HUD.<br />
|-<br />
||[[SLetanque]]<br />
||[[User:Babbage Linden|Babbage Linden]]<br />
||An LSL petanque game.<br />
|-<br />
||[[SL Mail V1.2]]<br />
||[[User:Flennan Roffo|Flennan Roffo]]<br />
||Second Life mail client V1.2 (released sept'07). Send and receive mail from within Second Life from and to any address. With Address Book function and many chat commands. V1.3 is upcoming soon! <br />
|-<br />
||[[SL_NTPoHTTP_v1.1_client|SL NTPoHTTP client]]<br />
|[[User:SignpostMarv Martin|SignpostMarv Martin]]<br />
||Second Life Needs Time Parsing over Hyper Text Transfer Protocol<br />
Emulates the function of [[llGetWallclock]] for any timezone by using SLOpenID's SLNTPoHTTP service. Also supports ISO 8601 and RFC 2822 timestamps. Script is dependent upon an external service operated by the author!<br />
|-<br />
||[[Spiral Staircase Generator]]<br />
|[[User:Meyermagic Salome|Meyermagic Salome]]<br />
||Generates nice looking spiral staircases without much hassle.<br />
|-<br />
||[[String Compare]]<br />
||[[User:Xaviar Czervik|Xaviar Czervik]]<br />
||Compares two strings and reliably returns either 1, -1, or 0 if they are the same.<br />
|-<br />
||[[Teleport HUD]]<br />
||[[User:Jesse Barnett|Jesse Barnett]]<br />
||WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching "Add" & naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.<br />
|-<br />
||[[Texture Menu Management|Texture Management]]<br />
||[[User:Revolution Perenti|Revolution Perenti]]<br />
||Dialog Menu based Texture Selection.<br />
|-<br />
||[[Tic Tac Toe]]<br />
||[[User:CG Linden|CG Linden]]<br />
||Step by step demo on how to implement a larger scripting project<br />
|-<br />
||[[TightList]]<br />
||[[User:Strife Onizuka|Revolution Perenti]]<br />
||Tight List is a family of functions for encoding lists as strings and then decoding them back into lists. <br />
<br />
There are two flavors: TightList and TightListType. TightListType preserves types and uses a 6 char header, while TightList uses a 1 char header that doesn't preserve type. <br />
|-<br />
||[[Timer Module]]<br />
||[[User:Isabelle Aquitaine|Isabelle Aquitaine]]<br />
||Manage multiple timers via linked messages.<br />
|-<br />
||[[Unix2DateTime]]<br />
|[[User:Flennan Roffo|Flennan Roffo]]<br />
||Conversion from Unix time (llGetUnixTime()) to date and time string and vice versa.<br />
|-<br />
||[[Under Age Boot]]<br />
|[[User:Chance Unknown|Chance Unknown]]<br />
||Security device example to teleport home accounts below a minimum age limit; can be useful in combating free griefer accounts.<br />
|-<br />
||[[Unmutable Descript Nagger]]<br />
|[[User:Bobbyb30 Zohari|Bobbyb30 Zohari]]<br />
||To nag avatars to take off their scripted attatchments.<br />
|-<br />
||[[Visitor Logger (Web/Basic) ]]<br />
|[[User:Buddy Sprocket|Buddy Sprocket]]<br />
||A very basic visitor logger - log visitors in SL to a text file on your web-site.<br />
|-<br />
||[[Vote Simple]]<br />
|[[User:JB_Kraft|JB Kraft]]<br />
||Simple vote collector. One avi, one vote.<br />
|-<br />
||[[WarpPos]]<br />
|[[User:Keknehv Psaltery|Keknehv Psaltery]]<br />
||Non-physical movement without the 10m limit.<br />
|-<br />
||[[Window Control]]<br />
||[[User:Emmas Seetan|Emmas Seetan]]<br />
||For window opacity, helpful for buildings.<br />
|-<br />
||[[WHMcs SecondLife plugin]]<br />
|[[User:Alicia Sautereau|Alicia Sautereau]]<br />
||Linden Dollar payment plugin for the WHMcs hosting portal.<br />
|-<br />
||[[XTEA Strong Encryption Implementation]]<br />
||[[User:Morse Dillon|Morse Dillon]]<br />
||An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm). This is the first known public release of a 'real' strong encryption implementation in LSL and is released under the GNU General Public License (GPL).<br />
|-<br />
||[[XyText 1.5|XyText]]<br />
||[[User:Xylor Baysklef|Xylor Baysklef]]<br />
|| Display text (up to 10 characters) on a prim. Use as many prims as desired.<br />
|-<br />
||[[XyyyyzText|XyyyyzText]]<br />
||[[User:Criz Collins|Criz Collins]]<br />
|| Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO<br />
|-<br />
||[[XyzzyText|XyzzyText]]<br />
||[[User:Thraxis Epsilon|Thraxis Epsilon]] and [[User:Gigs Taggart|Gigs Taggart]]<br />
|| Display text (up to 10 characters) on a prim. Way more efficient than XyText.<br />
|-<br />
||[[Zero Lag Poseball]]<br />
||[[User:Jippen Faddoul|Jippen Faddoul]]<br />
||A simple poseball with no lag<br />
|}<br />
<br />
</div><br />
<div id="box"><br />
<br />
==Support Script Library==<br />
These are scripts in other languages, intended to be run on other systems that support scripts written in LSL<br />
<br />
{| {{Prettytable}}<br />
|-<br />
|{{Hl2}}| '''Name'''<br />
|{{Hl2}}| '''Creator'''<br />
|{{Hl2}}| '''Description'''<br />
|-<br />
||[[HTTP Post request to a PHP server]]<br />
||[[User:Corto Maltese|Corto Maltese]]<br />
|| This small library allows you to make simple POST requests to your website. The libraries allow you to get your request through the variable $_POST on the server. It also include a basic security mechanism aimed to stop hacking. Comprises of LSL client script and PHP server script.<br />
|-<br />
|| Silo<br />
|| [[User:Zero_Linden|Zero Linden]]<br />
|| General purpose data store in PHP. Use this to persist arbitrary data from LSL via [[llHTTPRequest]]. See:<br />
* [http://www.notabene-sl.com/misc/silo-README.txt README] file<br />
* [http://www.notabene-sl.com/misc/silo.tgz silo.tgz] tarball<br />
* forum post [http://forums.secondlife.com/showthread.php?t=119570 Announcement].<br />
|-<br />
|| [[User:SignpostMarv Martin/PHP/llXorBase64StringsCorrect|llXorBase64StringsCorrect]]<br />
|| [[User:SignpostMarv Martin|SignpostMarv Martin]]<br />
|| An implementation of [[llXorBase64StringsCorrect]] in PHP- should be useful if you're using llXorBase64StringsCorrect to do cryptography work in LSL2 and posting it out to the web via [[llHTTPRequest]].<br />
|-<br />
|| [[User:SignpostMarv Martin/PHP/lsl fu.php|lsl_fu.php]]<br />
|| [[User:SignpostMarv Martin|SignpostMarv Martin]]<br />
|| A basic OOP'd PHP Class containing VeloxSeverine's $_POST fixer and Marv's own eccentric ideas for "fixing" things.<br />
|}<br />
</div><br />
<br />
<br />
<div id="box"><br />
<br />
== See Also ==<br />
<div style="padding: 0.5em"><br />
'''Articles'''<br />
*[[:Category:LSL Examples| Examples]]<br />
<br />
</div></div></div>Jesse Barnetthttps://wiki.secondlife.com/w/index.php?title=Sim_Map_Particle_Projector&diff=149023Sim Map Particle Projector2008-11-21T01:46:25Z<p>Jesse Barnett: New page: {{LSL Header}} Fun little script Drop it in a prim to see how it works. <lsl> key httpRequestId; float mapSize = 3.0; float mapHeight = 3.0; string mapTexture; string URL = "http://www.s...</p>
<hr />
<div>{{LSL Header}}<br />
<br />
Fun little script Drop it in a prim to see how it works.<br />
<br />
<lsl><br />
key httpRequestId;<br />
float mapSize = 3.0;<br />
float mapHeight = 3.0;<br />
string mapTexture;<br />
string URL = "http://www.subnova.com/secondlife/api/map.php";<br />
<br />
mapParticle()<br />
{<br />
llParticleSystem([<br />
PSYS_PART_FLAGS, 0,<br />
PSYS_SRC_PATTERN, 4,<br />
PSYS_PART_START_ALPHA, 0.50,<br />
PSYS_PART_END_ALPHA, 0.50,<br />
PSYS_PART_START_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_END_COLOR, <1.0,1.0,1.0>,<br />
PSYS_PART_START_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_END_SCALE, <mapSize,mapSize,0.00>,<br />
PSYS_PART_MAX_AGE, 1.20,<br />
PSYS_SRC_MAX_AGE, 0.00,<br />
PSYS_SRC_ACCEL, <0.0,0.0,0.0>,<br />
PSYS_SRC_ANGLE_BEGIN, 0.00,<br />
PSYS_SRC_ANGLE_END, 0.00,<br />
PSYS_SRC_BURST_PART_COUNT, 8,<br />
PSYS_SRC_BURST_RADIUS, mapHeight,<br />
PSYS_SRC_BURST_RATE, 0.10,<br />
PSYS_SRC_BURST_SPEED_MIN, 0.00,<br />
PSYS_SRC_BURST_SPEED_MAX, 0.00,<br />
PSYS_SRC_OMEGA, <0.00,0.00,0.00>,<br />
PSYS_SRC_TEXTURE, mapTexture]);<br />
}<br />
<br />
default {<br />
state_entry() {<br />
httpRequestId = llHTTPRequest(URL + "?" + "sim" + "=" + llGetRegionName(),[], "");<br />
}<br />
http_response(key request_id, integer status, list metadata, string body) {<br />
if (request_id == httpRequestId) {<br />
mapTexture = body;<br />
mapParticle();<br />
}<br />
}<br />
}<br />
</lsl><br />
{{LSLC|Library|Sim Map Particle Projector}}</div>Jesse Barnett