nyuuzyou/wikis huggingface dataset:
Typing linkset alpha toggle

====Typing linkset alpha toggle====
--BETLOG Hax UTC+10: 20090928 1705 [SLT: 20090928 0005]
Put script in root prim of your fancy "i am typing now" novelty prim keyboard.
Start typing -> prims become visible
Stop typing -> prims become INvisible
Only one script required.
I just wrote it, didn't test much, It's trivial but there will probably be a glaring oversight in there somewhere.
//==============================================================
// BETLOG Hax
// UTC+10: 20090928 1642 [SLT: 20090927 2342]
// For Jullalana Mornington because I saw the ye-olde one she was using had a script in every prim. This sort of script does NOT need a script in every prim. Yes realy.
//----------------------------------
// **** LICENCE START ****
// http://creativecommons.org/licenses/by-sa/3.0/
// Attribution licence:
// You must:
// -Include this unaltered licence information.
// -Supply my original script with your modified version.
// -Retain the original scripts' SL permissions. [+c/+m/+t]
// Or:
// -Link to the wiki URL from which you copied this script.
// https://wiki.secondlife.com/wiki/Typing_linkset_alpha_toggle
// -Document: "Uses parts of <scriptname> by BETLOG Hax"
// **** LICENCE END ****
//==============================================================
integer gVisible;
//----------------------------------
f_toggle(integer visible)
{ llSetLinkAlpha(LINK_SET, (float)visible, ALL_SIDES);
}
//----------------------------------
f_perms() //make it still operate when entering no script areas
{ if(llGetAttached())
 llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
}
//==============================================================
default
{ state_entry()
 { if(llGetAttached())//DEV
 f_perms();
 else
 llOwnerSay("You must be wearing me for this to operate.");
 }
 attach(key id) 
 { f_perms();
 }
 run_time_permissions(integer perm) 
 { if(perm & PERMISSION_TAKE_CONTROLS)
 { f_toggle(gVisible=FALSE);
 llSetTimerEvent(0.444444);
 }
 }
 control(key id, integer pressed, integer change) 
 { //make it still operate when entering no script areas
 }
 timer() 
 { if(AGENT_TYPING & llGetAgentInfo(llGetOwner()) )
 { if(!gVisible)
 { f_toggle(gVisible=TRUE);
 }
 }
 else
 { if(gVisible)
 { f_toggle(gVisible=FALSE);
 }
 }
 }
 
}
//==============================================================
Category:LSL Examples
UDP

UDP is an initialism for Usergram Data Protocol
UDP is the unreliable cousin of TCP on TCP/IP networks. UDP does not guarantee delivery, or reliability, and because of this it is ideal for services such as video streaming. For a service such as video streaming, reliability and guarantee of delivery are not the highest concern; instead it is only important that the video is transmitted from the server to all the clients, without a care for 'expired' packets. What seperates the two protocols is that TCP requires the client to inform the server that it received all of the packets sent, and also to re-request packets that arrived corrupted or did not arrive at all. As a result of this there is additional overhead for TCP when comparing TCP to UDP, and it is this lack of additional overhead (combined with other factors) that makes UDP superior to TCP in streaming scenarios. 
==Second Life and UDP==
Second Life uses UDP the primary mode of communicating small bits of real-time data between viewers and simulators (e.g. keystrokes and object updates). See Protocol for more information about how this works.
== Further reading ==
* Official UDP specification (RFC 768)
* Official TCP specification (RFC 793)
* Wikipedia article on UDP
UI-Referenz zum Hochladen eines Netzes/Modells

Im Fenster Modell hochladen können Sie COLLADA-Dateien (.dae) in Second Life hochladen. Dieses Fenster enthält drei Registerkarten und einen Vorschaubereich, der immer sichtbar ist.
== Vorschau ==
Im Vorschaubereich sehen Sie eine Vorschau des ausgewählten Modells in unterschiedlichen Detailstufen. Mit den können Sie Ihre Ansicht des Modells schwenken und heraus- und heranzoomen.
=== Gewichte und Gebühren ===
Zeigt die berechneten Download-, Physik- und Serverkosten für das Modell, die Prim-Äquivalenzkosten sowie die entsprechende Upload-Gebühr an.
== Detailstufe ==
== Physik ==
== Modifizierer ==
UI Floaters

Documentation of the current XUI xml format as used in the Second Life viewer for its UI floaters. 
===Floater Options===
You will see the following information in XML files as you go. Here's what all the options mean.
Name
* name="SuperFLoater" // name of the floater. You will use this name in the code to identify your floater when you need it 
Width and Height
* width="100" // sets the width of the floater to be 100 pixels 
** Note: This is the entire width of the floater, not just the label.
* height="20" // sets the height of the floater to be 20 pixels 
** Note: This is the entire height of the floater, not just the label.
===Generic Floater XML Elements===
UI Linguistic-Truncation Smoke Test/Sample Files

<< Back to UI Linguistic-Truncation Smoke Test
<< Back to Localization Functional Tests
You will need:
# Any jpg image to upload (If you need one, save this to your desktop: testing_image.jpg)
# A BVH animation to upload: testing_avatar_aim_R_handgun.bvh
# A corrupted BVH animation to upload: testing_corrupted.bvh
# A 16bit WAV file to upload: testing_16bit44rate.wav
UI Widgets

Documentation of the current XUI xml format as used in the Second Life viewer for its UI elements. 
===Widget List===
These are some of the widgets at your disposal:
LLTextBox - a holder of displayed text
LLSlider - a knob you can move horizontally to control a value
LLRadioGroup - a group of radio buttons for choosing a particular setting
LLLineEditor - a means of inputing text
LLCheckBoxCtrl - a check box for turning something on or off
LLButton - a button to press
LLComboBox - a drop down list with a single line text box
===Widget Options===
You will see the following information in XML files as you go. Here's what all the options mean.
Name
* name="SuperWidget" // name of the widget. You will use this name in the code to identify your widget when you need it 
Control Name
* control_name="MySavedSetting"
Lets you associate check box and slider values with particular saved settings without writing any C++ code. Very useful. When you load a floater or other XUI element containing a check box or slider with that tag, it will take it's initial value from the named saved setting and automatically saves back out modified values as the user interacts with those controls. 
This is extremely powerful and should let you create a custom panel to control any of the boolean or real valued settings that you see in the Debug_Settings floater. See beacons.xml for examples.
Width and Height
* width="100" // sets the width of the widget to be 100 pixels 
** Note: This is the entire width of the widget, not just the label.
* height="20" // sets the height of the widget to be 20 pixels 
** Note: This is the entire width of the widget, not just the label.
Left
* left="10" // sets the horizontal position of the left edge of the widget to be 10 pixels from the left edge of the panel or floater
* left_delta="100" // sets the horizontal position of the left edge of the widget to be 100 pixels from the left edge of previously listed widget
** Note: Use left *or* left_delta, never both.
Bottom
* bottom="300" // sets the vertical position of the bottom edge of the widget to be 300 pixels from the bottom edge of the panel or floater
* bottom="-30" // sets the vertical position of the bottom edge of the widget to be 30 pixels from the top edge of the panel or floater
* bottom_delta="-30" // sets the vertical position of the bottom edge of widget to be 30 pixels from the bottom edge of previously listed widget
** Note: Use bottom *or* bottom_delta, never both.
Font
* font="SanSerifSmall" // sets the font used for any text used by the widget. 99% of these in the viewer are SanSerif and SanSerifSmall
Enabled
* enabled="true" // sets whether the widget is grayed out or accessible
URIGenerator

= Introduction =
It is tough getting a hold of people when you need to give them updated information about something and they aren't in your friends list or not showing up in search. This is a handy URI generator I wrote to bypass that using the Name2Key service by w-hat. You just click on a prim and enter their full name into the textbox and it will generate a URI to their profile privately in local using OwnerSay if they exist in the database.
= Usage =
To use this script, stick it into the root prim of pretty much any object, and wear that object somewhere on your person. When you click on it it will generate a textbox dialog to enter their whole name this includes Resident as a last.
= The Code =
You may do anything you like with this code, without limitation. I am not liable for any griefing done with this script it is for utility and administrative purposes only.
//written by To-mos Codewarrior (tomos.halsey)
//URI Generator to do whatever you want with
key SYSTEM_user;
//name2key
string URL = "http://w-hat.com/name2key"; // name2key url
string registered_id;
key reqid; // http request id
llName2Key(string str)
{
 while(~llSubStringIndex(str,"\n"))
 str=llDeleteSubString(str,llSubStringIndex(str,"\n"),llSubStringIndex(str,"\n")+1);
 
 llOwnerSay("Generating URI for "+str+"...");
 reqid = llHTTPRequest( URL + "?terse=1&name=" +
 llEscapeURL(str), [], "" );
}
default
{
 state_entry()
 {llListen(1561456,"",NULL_KEY,"");}
 touch_start(integer total_number)
 {
 SYSTEM_user=llDetectedKey(0);
 llTextBox(SYSTEM_user,"Enter The Resident's name",1561456);
 }
 listen(integer channel,string name,key id,string message)
 {if(id==SYSTEM_user)llName2Key(message);}
 http_response(key req,integer stat, list met, string body)
 {
 if(req != reqid)
 return;
 if(stat == 499)
 llOwnerSay("name2key request timed out");
 else if(stat != 200)
 llOwnerSay("the internet exploded!! (responce:200)");
 else if((key)body == NULL_KEY)
 llOwnerSay("Key not found.");
 else
 llOwnerSay("secondlife:///app/agent/"+body+"/about");
 }
}
URL addressing

This is one that i've been working on myself for a while and is rather simple.
sl://domain/region/x/y/z
Where "domain" is a DNS name (like secondlife.com) and region is the region name.
An example:
sl://secondlife.com/Hooper/128/128/50
sl://localhost/My%20Sim/128/128/60
DNS SRV records or DNS A records could be used to identify the login server for that particular domain if logging into it directly or to identify the appropriate region stores for that particular region domain.
UUID/fr

"UUID" est l'abréviation de Universally Unique Identifier. C'est une valeur sur 128 bits (soit 16 octets) générée de telle façon qu'une collision soit hautement improbable. Voir l'article de la Wikipedia sur les UUID pour plus d'informations.
En LSL, les UUID sont stockés dans des variables de type key (qui est en fait une forme spécialisée de chaîne de caractères).
UUID/ja

UUIDはUniversally Unique Identifierの省略形です。128bit(16byte)の、重複することがめったに無い生成法によって出力される値です。詳しい情報はWikipedia on UUIDsを参照してください。
LSLでは、これらはkey変数型で記憶されます。（stringの特殊化した形態です）
UUID/ru

UUID это аббревиатура для Universally Unique Identifier, универсально уникальный идентификатор. Он представляет собой 128-битный (16-байтный) номер, который генерируется таким способом, что случайное повторение является маловероятным. UUID часто представляют в виде строки из 32 шестнадцатеричных символов с четырьмя тире. См. Википедию UUIDs для получения более подробной информации. 
В LSL UUID хранятся в переменных типа key (которые являются специализированным строковым типом данных).
UUID/zh-Hant

UUID是通用唯一識別碼Universally Unique Identifier的簡稱，由一段128位元（16位元組）
組成的，以這種情況產生的數值幾乎不太可能發生重複的現象。
 
通常會以一串32個16進位的字元和四個分散的破折號來表示
在LSL它們被儲存在key變數類型中（這是一種字串專用的格式）。
參閱 Wikipedia on UUIDs 以獲得更多資訊。
UUID2Channel

Category:LSL Examples
== Description ==
Varying functions to convert a Key (UUID) to an Integer, for use as a LSL Chat Channel.
== Method 1 - Simple ==
Well, I've figured out a more effective way of using the method, you know.
The one where you put a hexadecimal prefix in front of a person's UUID. Always generates
negative integers, for safety.
// Project Neox was here.
// Web Gearbox was here too
integer Key2Chan(key ID) {
 return 0x80000000 | (integer)("0x"+(string)ID);
}
==== Improvement - App Key ====
This generates a unique channel ID from the input key, but also XOR's it with another value, this value should be application specific.
I encountered an issue where one of the commonly used combat meters (Gorean Meter I think) is using the exact function above to generate its personal channel numbers, and starts complaining - loudly (shouts) - if you put other data on the same channel (user is flooding their own channels!).
As such you shouldn't really use the above function directly for channel IDs, if everyone did, it would negate the entire point of the function, the version below allows you to supply a random constant number to push the allocations around so we're not going to see same-user collisions between applications.
// modified channel generator to include per-application key, preventing cross-application collisions
// - Iain Maltz
integer Key2AppChan(key ID, integer App) {
 return 0x80000000 | ((integer)("0x"+(string)ID) ^ App);
}
== Method 2 - Defined Base/Range ==
// # Base/Range-Method Channel Generator.
// > Allows for limiting the channel-band spread to only the amount needed for the application.
// - Faust Vollmar
integer uiKey2Range(key vkID, integer viBase, integer viRange)
{// # Result will be added or subtracted dependent on viBase being positive or negative, for intuitive results.
 // > Example: -56000/1000 will result in -56000 to -56999, whereas 56000/1000 will result in 56000 to 56999
 integer viMult = 1;
 if( viBase < 0 ) { viMult = -1; }
 return (viBase+(viMult*(((integer)("0x"+(string)vkID)&0x7FFFFFFF)%viRange)));
}
UUIDNameReply

==Message Layout==
{
	UUIDNameReply Low Trusted Unencoded
	{
		UUIDNameBlock	Variable
		{	ID			LLUUID	}
		{	FirstName	Variable	1	}
		{	LastName	Variable	1	}
	}
}
==Usage and Notes==
Sim->client reply to UUIDNameRequest
Category:Messages
UUID Song Generator

// Sendao Goodman wrote this
integer max_note=7; // change this to the # of notes available!
float speed=2.0; // change this to the length to wait before playing the next note
//Don't change anything else yo
list playback;
integer spot;
list notes;
loadNotes()
{
 integer i;
 integer ln;
 
 notes=[];
 
 for( i = llGetNumberOfPrims(); i > 0; i-- )
 {
 notes=(notes=[])+notes+[(integer)llGetLinkName(i)];
 }
// we tell the players how long each sound is
 llMessageLinked(LINK_SET, 3, (string)speed, "");
}
list transformKey(key uuid_k, integer max_note)
{ // convert a key into a string of numbers
 string uuid = (string)uuid_k;
 list uuid_untrans = llParseString2List(uuid, ["", "-"], []);
 list uuid_new;
 string mark;
 integer val;
 float conval;
 
 integer len = llStringLength(uuid);
 uuid_new=[];
 while( len > 0 ) {
 len--;
 mark = llGetSubString(uuid,len,len);
 val = (integer)mark;
 if( val == 0 ) {
 if( mark == "a" ) 
 val = 10;
 else if( mark == "b" )
 val = 11;
 else if( mark == "c" )
 val = 12;
 else if( mark == "d" )
 val = 13;
 else if( mark == "e" )
 val = 14;
 else if( mark == "f" )
 val = 15;
 }
 conval = (float)val / 16.0;
 if( mark != "-" )
 uuid_new=(uuid_new=[]) + uuid_new + [(integer)(conval*(float)max_note)];
 }
 return uuid_new;
}
playNote( integer notenum ) // send the message to trigger the note
{
 llMessageLinked( llList2Integer(notes,notenum), 1, "", "" );
}
default
{
 on_rez(integer sp)
 {
 llResetScript();
 }
 
 state_entry()
 {
 loadNotes();
 }
 
 touch_start(integer total_number) // scan avatar key and start playback
 {
 playback = transformKey(llDetectedKey(0), max_note);
 spot = 0;
// llSay(0, "Your adjusted key is " + llDumpList2String(playback, ","));
 llSetTimerEvent(speed);
 }
 timer() // timer is used to play each sound
 {
 spot++;
 if( spot >= llGetListLength(playback) ) {
 llSetTimerEvent(0.0);
 llSay(0, "Song complete.");
 return;
 }
 playNote( llList2Integer(playback,spot) );
// llSay(0, "Play note " + (string)llList2Integer(playback,spot) + " link " + (string)(llList2Integer(notes,llList2Integer(playback,spot))));
 }
}
UV maps in Wings3D

Wings is not a 3D paint program, you can create the texture for your sculpty in a 2D paint program and display it in Wings. Later, you upload the sculpty texture map and the regular texture separately, and make your object in world.
A more recent version of these instructions is here.
==Detailed steps==
Instructions thanks to Omei Turnbull.
# Import one of Hypatia's .OBJ files and save it as a Wings file with a new name.
# Select the whole sphere, right mouse click, and select UV Mapping. An "Auto_UV" window will open. We're not going to do anything with it yet, so you can close it. But it is necessary to open it once before doing the next step.
# From the Window menu on the Geometry window, select Outliner. An Outliner window will open, and it will have 4 items in it. The ones we're interested in are the texture named auvBG and the material named default.
# Have Wings create a regular image file for the texture by left-clicking on the auvBG line, then right-clicking and choosing Make External. (Notice that when using the Outliner window, you first have to select the line with a left click and then open the context menu with a right click. If the context menu doesn't contain the options you expect, it's probably because you forgot to first select the line with a left click.)
# Drag the auvBG line to the default material line. In response to the Texture Type dialog box, pick Diffuse.
# The sphere in the Geometry window should now be textured with a colored rectangular grid of letters. This is Wing's default texture. 
# In a 2D paint program (GIMP, Photoshop) open up the bitmap you had Wings create earlier. Add a layer, and start painting. 
# Save the image. In Wings, select the auvBG name in the Outliner window, and select Refresh.
===See Also===
Ty Gould's Texturing tutorial for sculpt map in Wings 3D.
Uberexplorer

== Who? ==
Learn from the scope of these journeys, then feel free to add yourself if you earnestly believe you're worthy! The responsibility is yours to go where no avatar has been before. Or go where they have, but be better about sharing it. ;)
* Daniel Voyager - Flickr stream
* Irene Muni - Aventura y Viajes (in Spanish)
* Liqueur Felix - Flickr stream
* Marianne McCann - Snapzilla stream
* Melissavp Islander - Melissa - La musique dans Second Life (in French)
* Torley Linden - The last 300 places I've been
== What? ==
An uberexplorer is a very awesome and rare person who's prolifically traveled around Second Life — and not only that, shared their discoveries and benefited others. As a SL version of the Gladwellian Maven-Connector hybrid archetype, they're obsessive about exploring and spreading the word about great stuff (knowing or agreeing with Gladwell not actually required to be an uberexplorer).
While strict rules don't exist, to be an uberexplorer-class avatar, you should:
* Visit at least 50 different regions a month you haven't been before
* Keep a blog (or other means, like Flickr stream) to chronicle your adventures
* Have been blogging for at least 6 months — persistence matters!
* Share at least two remarkable discoveries a week
* Your blog/presence is mainly Second Life-focused
* Have an active, healthy commenter community
* Not be doing this for commercial purposes (e.g., you're sharing your joy, as opposed to being paid to blog)
You don't need to fulfill all the above criteria — it's merely intended to give you a better idea.
I'd rather include than exclude people, so a simple thing to do is:
: Ask yourself, "Who keeps telling me about stuff I end up exceptionally enjoying?"
: The answer to that is likely... an uberexplorer!
Category:Second Life Explorers Category:Culture
Ultimate Radar

Category:LSL_Library
User:Luxen_Resident | Teleporter_Anywhere | Ultimate_Radar | Language_Scanner | Visitor_Counter_Tracker
==Summary==
An advanced radar to detect avatars and their language on an entire region. 
== Code: ==
//////////////////////////////////////////////////////////////////////////////
// Zx Ultimate Radar Hud v5 //
// //
// By Luxen - Zonyx Technology //
//////////////////////////////////////////////////////////////////////////////
integer counter = 0;
key owner = NULL_KEY;
integer RStat = TRUE;
set_time(float Stime, string Stext, integer Scounter)
{
 llSetText(Stext, <0.667, 0.667, 0.667>, 1.0);
 if (Stime != 5.0) llSetTimerEvent(Stime);
 counter = Scounter;
}
default
{
 state_entry()
 {
 if(owner) ;
 else
 {
 llSetMemoryLimit(40000);
 owner = llGetOwner();
 set_time(10.0, "[- Starting -]", 0);
 }
 }
 
 on_rez(integer start_param)
 {
 llResetScript();
 }
 changed(integer change)
 {
 if(change & (CHANGED_REGION)) state teleport;
 }
 
 touch_start(integer total_number)
 { 
 if (llGetAttached())
 { 
 if (counter) 
 { 
 set_time(0.0, "[- Off -]", 0);
 RStat = FALSE;
 }
 else if (!RStat)
 { 
 set_time(10.0, "[- Starting -]", 0);
 RStat = TRUE;
 }
 }
 }
 
 timer()
 {
 list AvatarsDetect = llGetAgentList(AGENT_LIST_REGION, []);
 integer numOfAvatars = llGetListLength(AvatarsDetect);
 if (!llGetAttached())
 {
 if (llGetObjectPrimCount(llGetKey()))
 {
 set_time(0.0, "[- Off -]", 0);
 RStat = FALSE;
 }
 }
 else if (numOfAvatars < 2)
 {
 if (counter != 2) set_time(5.0, "[- Nobody -]", 2);
 }
 else if (numOfAvatars > 100) return;
 else 
 {
 integer index;
 list NewTab = [];
 vector currentPos = llGetPos();
 integer Zfix = numOfAvatars;
 for (index = 0; index < Zfix; ++index)
 {
 key AvKey = llList2Key(AvatarsDetect, index);
 list AvPos = llGetObjectDetails(AvKey, [OBJECT_POS]);
 if (AvPos) NewTab += [llVecDist(currentPos, llList2Vector(AvPos, 0)), AvKey];
 else --numOfAvatars;
 }
 
 if (numOfAvatars > 1) 
 {
 AvatarsDetect = [];
 NewTab = llListSort(NewTab, 2, TRUE);
 string mode = "[- Sim: " + (string)(numOfAvatars -1) + " -]";
 numOfAvatars *= 2;
 for(index = 0; index < numOfAvatars; index += 2)
 {
 key id = llList2Key(NewTab, index + 1);
 if (Zfix)
 {
 if (id == owner)
 {
 Zfix = FALSE;
 jump Ignore;
 }
 }
 string DName = llGetUsername(id);
 string DLang = "?";
 if (DName) 
 {
 DLang = llGetAgentLanguage(id);
 integer Dlenght = llStringLength(DLang);
 if (Dlenght == 2) ;
 else if (Dlenght == 5)
 {
 if (DLang == "en-us") DLang = "en";
 else DLang = "xx";
 }
 else DLang = "xx";
 }
 else DName = "???";
 DName += " (" + DLang + "-" + (string)llList2Integer(NewTab, index) + "m)";
 if (index > 18)
 {
 DName = mode + "\n" + DName;
 if (llStringLength(DName) > 254) jump affich;
 else mode = DName;
 }
 else mode += "\n" + DName;
 @Ignore;
 
 }
 @affich;
 NewTab = [];
 set_time(5.0, mode, 1);
 }
 }
 }
}
state teleport
{
 state_entry()
 {
 if (counter) set_time(10.0, "[- Searching -]", 0);
 state default;
 }
 
 on_rez(integer start_param)
 {
 llResetScript();
 }
 timer()
 {
 return;
 }
}
Umsatzsteuer

Umsatzsteuer (English: Value Added Tax oder kurz VAT, manchmal im deutschsprachigen Raum auch als "Mehrwertsteuer" bekannt) wird bei allen Transaktionen mit Linden Lab erhoben, wenn der Accountinhaber in der Europäischen Union wohnt. Darunter fallen Landkäufe, Anmeldung eines Premium Account, etc., jedoch keine Transaktionen zwischen Bürgern von Second Life. Die offizielle Seite zur Mehrwertsteuer stellt weitere Informationen bereit.