nyuuzyou/wikis huggingface dataset:
State/ja

説明
LSLでは、ほとんどのスクリプトは何らかの入力を受け取るか、環境で何らかの変化を検出するまで、アイドル状態にあります。どの瞬間も、スクリプトは何らかのstateにあり、プログラマーによって定義された多くのスキームと一致したイベント、あるいはインプットに反応するでしょう。しかしながら、スクリプトは二つ以上の異なるstateを包含することができ、状態によってイベントやインプットに対して異なる反応を定義できます。
中心的なstateはdefault stateです。スクリプトはコンパイルされた時、リセットもしくはリロードされた時、まずdefaultのstateが実行されます。default stateの定義の後に続けて、スクリプトで処理されるイベントがどのような入力、変更によって発生するのかを定義する、新たなstateを追加することができます。
State/pl

== Opis ==
W języku skryptowym LSL większość skryptów jest nieaktywna dopóki nie zostaną im dostarczone jakieś dane tudzież nastąpi wykrycie jakiejś zmiany w otoczeniu. W każdym momencie skrypt jest w jakimś stanie i będzie reagować na zdarzenia lub dane w zależności od wizji programisty. Jednakże skrypt możne zawierać dwa lub więcej stanów i reagować rożnie na zdarzenia oraz dane w zależności od stanu w jakim w danym momencie się znajduje.
Stanem podstawowym jest stan default. Podczas kompilacji skryptu, zresetowania czy tez załadowania stan ten wywoływany jest domyślnie. Po wywołaniu stanu domyślnego w skrypcie mogą znajdować się instrukcje wywołujące pozostałe stany, które maja rożne ścieżki wykonywania różnych zdarzeń.
Zdarzenie domyślne.
<lsl> state default </lsl>
Zdarzenie docelowe.
<lsl> state target </lsl>
State ma także zdefiniowane zdarzenia, które mogą zostać wywołane.
Jest to stan wyjścia.
<lsl> state_exit </lsl>
Jest wywoływane po:
*Po opuszczeniu zdarzenia.
Jest to stan wejścia.
<lsl> state_entry </lsl> 
Jest wywoływane po:
*Po stworzeniu skryptu w obiekcie.
*Kiedy zapisujemy skrypt.
*Przy zresetowaniu skryptu.
== Przykład ==
Prosty przykład użycia dwóch stanów. Pierwszy default zmienia kolor obiektu na biały, natomiast drugi zwany State off zmienia kolor na czarny. Zdarzenia są wywoływane, gdy obiekt zostanie naciśnięty.
 <lsl>
default // początkowy stan default
{
 state_entry()
 {
 llSetColor(<1.0, 1.0, 1.0>, ALL_SIDES); // Zmień kolor obiektu na biały
 }
 
 touch_start(integer total_number) // Po naciśnięciu na obiekt
 {
 state off; // Idź do stanu off
 }
}
state off // Drugi stan zwany off
{
 state_entry()
 {
 llSetColor(<0.0, 0.0, 0.0>, ALL_SIDES); // Zmiana koloru obiektu na czarny
 }
 
 touch_start(integer total_number) // Po ponownym kliknięciu wróć do stanu default
 {
 state default; 
 }
}
 </lsl>
State Of Mind Microcontinent

This is a Microcontinent with a temporary name A163. It can be found inside Grid Sector I9, in Little Pacific Ocean. Coordinates are 955-957/978-980. It is placed West to Estate Continent or Sansara.
== Structure ==
It is made of 9 sims, that form a square on the map. Every sim has the world mind in its name. The central sim is more eleveted (60 meters) and has a small lake in its center. All sims are made of a large central island, surrounded by water. Every sim is made with plenty of romantic areas and a beach.
The sims are: State Of Mind, Loss Of Mind, Bear In Mind, Change Of Mind, Estate Of Mind, Clarity Of Mind, Peace Of Mind, Out Of Mind and Never Mind. Estate is Mindless Islands.
There is no high-developed infrastructure, but sailing is possible. Land With Restricted Access exists.
== See Also ==
Second Life Geography
List Of Microcontinents And Sim Clusters
Oceans
State variables

While all variables that might be used within more than a single state must be global right now, polluting memory statically, there also some problematic situation to purely event driven state scripts, where there is switched between a number of states with only little number of calls to self defined functions. In such case, where there are only very little number of self defined functions that might be called with arguments, data management is, within one and the same state, only solved through static global memory(heap) / variable allocation. A possible solution might be to allow state variables that are declared after the opening brace from a state declaration and which is/are allocated on stack only when the state is active, but removed from memory when a state becomes inactive from switching to another state. If a stack based solution is not conform to compiler design, another solution might be to have a memory layout of heap based state variables, where there is a fixed allocation of the static part of state variables in size of the largest possible set form state variables, that is reused when switching from one state to another. Such a solution of state local variables might help to provide a significant lower memory footprint in event driven multi state scripts.
Example:
<lsl>
// Both variables "x" and "y" refer to the same memory location
// while only one can be referenced when the given state is active
// Overloading of names in sense of C++ must not be implemented if
// this would cause too much problems with the actual given
// LSL compiler.
state default
{
 integer x = 0; // with scope of default state
 state_entry()
 {
 llOwnerSay( (string)x ); // produces output "0"
 llOwnerSay( (string)y ); // produces compiler ERROR !!!
 state ExampleState;
 }
}
state ExampleState
{
 integer y = 1; // with scope of "ExampleState" state
 state_entry()
 {
 llOwnerSay( (string)x ); // produces compiler ERROR !!!
 llOwnerSay( (string)y ); // produces output "1"
 state default;
 }
}
</lsl>
--Eraz Rhode 07:09, 29 May 2007 (PDT)
----
State functions (methods) would be interesting too. This sort of complication would require some language design (the exact implementation would end up being controversial). -- Strife Onizuka 09:46, 29 May 2007 (PDT)
Stereoscopic Mode

A desired feature for Second Life is the ability to view the world in Stereoscopic Mode. There are few ways this can be accomplished. 
The CtrlAltStudio Viewer has a configuration option which provides Stereoscopic 3D output that displays according to the capabilities of the graphics driver and equipment used. For example, a GeForce graphics card with NVIDIA 3D Vision IR transmitter and active shutter glasses plus a 120Hz monitor can be used.
The University of Michigan has submitted patches (see ) to make Stereoscopic 3D work, but changes to the drawing code have since broken the patches. 
The patch allows a user to go into Preferences > Advanced Graphics and enable stereoscopic mode. Once this is done, there are 4 ways in which it may work:
; Anaglyph : which uses glasses with lenses that are Red and Cyan. 
; Passive : Requires either two projectors with polarized filters or page-flipping goggles, like the Z800 or other Head Mounted Displays (HMD).
; Shutter glasses : requires shutter glasses. 
; Cross-eyed auto-stereogram : requires no additional hardware, but just a split screen and some practice.
More information about these modes and where to get the required hardware is here: http://sl.daleglass.net/#stereo
With Second Life running in Stereoscopic mode and the proper device and stereoscopic driver, the user can perceive the actual depth of objects in world, the world should appear as if it is actually in 3D. Without the proper device, this type of rendering looks visibly different and is not possible for use.
Back to Features
Streaming Audio

=== Feature Design Document ===
(none)
=== Functional Spec ===
(none)
=== Test scripts ===
Audio test
=== Discussion for future improvements ===
(none)
=== Relationship to other features ===
see also Streaming Music
 List of features that need to be tested when this feature changes, and why. 
Parcel test - music URL field should be cleared when parcel changes ownership.
Preferences test - Verify you can control Streaming audio levels separately from other system sounds.
=== User Guides ===
(none)
Streaming Audio FAQ/de

Diese Anleitung enthält Grundlagen wie Musik auf Deinem Land eingestellt werden kann.
== Was ist Streaming Audio ? ==
Musik auf Deinem Land in SL wird über eine URL (Web Adresse) in den Optionen von Deinem Land eingestellt. Du kannst einen bestehenden
Stream aus dem Web nehmen oder einen eigenen Server mit eigener Musik dazu verwenden.
== Wo kann ich Audio Streams bekommen ? ==
Es gibt eine Vielzahl von freien Quellen im Web. Die folgenden Seiten enthalten Verzeichnisse von freien Audio Streams:
*http://dir.xiph.org/index.php
*http://www.shoutcast.com/
*http://www.live365.com/index.live
 
== Wie stelle ich Musik auf meinem Land ein ? ==
# Im Menü, wähle World/About Land
# Klicke auf den Media tab
# Gebe die URL von dem Stream ein
# Klicke auf Musik control off und wieder on um die Einstellungen zu aktualiseren. Diese findest du am unteren Ende von deinem Bildschrim.
== Kann ich einen Stream auf dem Land eines Freundes abspielen ? ==
Nein, Du brauchst die Rechte eines Landbesitzers um diese Einstellungen zu ändern. Du kannst die URL vom Stream Deinen Freunden geben und so können diese alle Einstellungen vornehmen. Falls Du Officer einer Gruppe bist und die Gruppe Land besitzt hast Du auch die Möglichkeit Audio Einstellungen zu ändern. 
== Wie kann ich eigene Musik abspielen ? ==
Das ist ein wenig komplizierter. Jeder kann Musik mit einem broadcaster Programm streamen, Du benötigst in jedem Fall einen so genannten Streaming Server um das zu machen.
* IceCast2 (unterstützt auch das SHOUTcast Protokoll)
* SHOUTcast
 
== Kann ich ein Mikrofon benutzen und über die Musik sprechen ? ==
Ja! Wenn Du in Deinem Betriebssytem entsprechend einstellst (Mixer), die meisten streaming audio Programme "hören" auf alles was über die Soundkarte wiedergegeben wird, also Media Player, Mikrofon oder Musikinstrument.
== Ich kann nichts hören, funktioniert meine Musik nicht? ==
# Vergewissere Dich, das Du am unteren Ende von Deinem Bildschirm das Music control panel siehst. Wenn nicht, gehe zu Edit/Preferences, wähle den Audio Tab, kontrolliere ob "Play Streaming Music" aktiviert ist.
# Im Music Control Panel, klicke auf Stop und dann wieder Play um die Einstellungen zu aktualiseren
# Wenn Du immer noch keine Musik hörst, überprüfe die URL die in der About Land Box eingetragen sind. Prüfe ob nicht versehentlich ein Leerzeichen vorne steht und entferne dies falls nötig. Das ist ein oft vorkommender Fehler. 
# Wenn immer noch nichts geht, überprüfe ob der Stream richtig ist. Versuche den Stream mit einer anderen Software zu öffnen, z.B. WinAmp
# Prüfe Deine Lautsprecher, eingesteckt, angeschltet, Lautstärke?
# Wenn bisher keine Fehler gefunden wurden, verlasse das Land kurz und kehre wieder zurück.
# Immer noch keine Musik? starte SL neu.
# Wenn der Neustart nicht geholfen hat kann es möglicherweise auch ein Bandbreiten- oder Computerproblem sein. Kontaktiere den Support
*https://support.secondlife.com/ics/support/KBList.asp?folderID=155 (deutscher Hilfetext zu den allgemeinen Einstellungen)
== External Links ==
* Wikipedia list of streaming media resources
Streaming Audio FAQ/it

Questa guida contiene le basi per iniziare la riproduzione di musica nella propria land.
== Che cosa è lo Streaming Audio? ==
È la musica che viene suonata nella tua land in SL usando un URL (indirizzo web) che puoi impostare nella opzione About Land. Puoi collegarti ad uno stream esistente sul web, oppure crearne uno proprio se ne hai le risorse.
== Dove posso prendere "flussi" audio? ==
Ci sono tantissime risorse gratuite sul web. I seguenti siti contengono directory di audio stream gratuiti:
*http://dir.xiph.org/index.php
*http://www.shoutcast.com/
*http://www.live365.com/index.live
 
== Come faccio ad impostare la musica per la mia land? ==
# Dal Menù, seleziona World/About
# Clicca sulla scheda Media
# Scrivi l'URL dello stream musicale
# Clicca il controllo della musica off e on per aggiornare le impostazioni. Il controllo è posizionato in basso al centro del tuo schermo.
== Posso fare uno stream nella land dei miei amici? ==
No, devi avere il permesso dalla land per modificare le sue impostazioni. Dovrai dare loro le proprietà dello stream per farlo suonare. Se sei un agente del gruppo, e il gruppo è proprietario della land, allora hai la possibilità di farlo.
== Come faccio a suonare la mia propria musica? ==
Questo è un pochino più complicato. Chiunque può riprodurre musica in streaming attraverso un programma emittente, tuttavia avrai bisogno di un server di streaming per farlo.
* IceCast2 (supporta anche i protocolli SHOUTcast )
* SHOUTcast
== Posso usare un microfono e parlare sulla musica? ==
Si! Se si imposta il tuo sistema operativo per la registrazione (WinXP), la maggior parte dei streaming audio clients "ascolteranno" tutto ciò che la scheda audio riprodurrà, sia esso il tuo lettore multimediale, il tuo microfono o strumento musicale.
== Non riesco a sentire niente, la mia musica non funziona?==
# Assicurati che vi sia un pannello di controllo Musica in basso, al centro dello schermo. Altrimenti, vai al menù Modifica / Preferenze, selezionare la scheda Audio e controlla che Play streaming music, se disponibile, sia selezionato.
# Nel Music control panel, clicca stop e play per aggiornare le impostazioni.
# Se ancora non ottieni musica, verifica l'URL inserito nella casella About Land. Assicurati che l'indirizzo non abbia un piccolo spazio davanti. Questo gli impedisce di suonare ed è stato un problema comune. Se vi è uno spazio, rimuoverlo.
# Se ancora non ottieni musica, lo stream potrebbe non essere valido. Prova lo stream con WinAmp per essere sicuro che funzioni. 
# Controlla gli altoparlanti. Sono collegati, accesi, il volume alzato?
# Se la musica e gli altoparlanti funzionano, esci e rientra dalla Land.
# Ancora nessuna musica? Prova a riloggare.
# Se riloggare non serve, potrebbe essere una questione di larghezza di banda, o un problema locale sul tuo computer. Probabilmente è un bug e dovresti fare un report per risolverlo.
== Links esterni ==
* Lista Wikipedia di risorse media streaming 
== Contributi ==
CrowCatcher Valen
Audio
Category:Pagine italiane da wikificare
Streaming Music/Video

Music and video that may be heard and viewed on a parcel. Each parcel may have one video and one audio stream set at any one time. Streams are specified as URLs to files or streaming servers on the Internet. With the proper permissions, an avatar can manually specify the URL of the streaming audio and video in the Media tab of Preferences.
==See Also==
* Help:Streaming Audio
* How To Show Video in SL
* Play media
* Streaming Music
* Music Streams To Play Inworld
Streaming Video

=== Feature Design Document ===
(none)
=== Functional Spec ===
(none)
=== Test scripts ===
Media Stream Test
=== Discussion for future improvements ===
(none)
=== Relationship to other features ===
 List of features that need to be tested when this feature changes, and why. 
(none)
=== User Guides ===
For 64bit Linux machines the Imprudence (http://imprudenceviewer.org/) viewer works for music and video streaming. Mac and Windows viewer are also available.
Streamlet

Streamlet is an extension on top of mulib which enables convienient event streams. For examples of streamlet in use please check the following links:
* http://openmv.org/cgi-bin/viewvc.cgi/archwg/trunk/chat_client.py?view=markup
* http://openmv.org/cgi-bin/viewvc.cgi/archwg/trunk/chat_server.py?view=markup
Streammare Musica e Video

Musica e video che possono essere ascoltati e visti in una località. Ogni località può avere un video e un audio stream impostati in qualsiasi momento. Gli streams sono specificati da un URL al file o al server di streaming su Internet. Con i necessari permessi, un avatar può manualmente specificare l'URL dello streaming audio e video dentro il tab Media (menù World--->About Land--->scheda Media).
==Vedere Anche==
* Help:Streaming Audio
* How To Show Video in SL
* Play media
* Streaming Music
* Music Streams To Play Inworld
Category:Pagine italiane da wikificare
Streams di musica da suonare Inworld

I Music Streams possono essere "flussi" provenienti da radio online.
Questi streams possono essere suonati in-world nella tua località. Vai a World > About Land > Media > Music URL e incolla uno degli indirizzi streams elencati di seguito per ascoltarli.
* 80′S BEST HITS: http://scfire-nyk-aa03.stream.aol.com:80/stream/1014
* 80′S BEST HITS2: http://scfire-chi-aa04.stream.aol.com:80/stream/1013
* CLASSICAL MUSIC: http://music.radioriel.org
* SMOOTH JAZZ: http://scfire-chi-aa02.stream.aol.com:80/stream/1010
* CLASSICAL GUITAR: http://205.134.236.59:8050
* BEST OF THE 80′S: http://scfire-chi-aa01.stream.aol.com:80/stream/1013
* TOP HITS: http://scfire-nyk-aa03.stream.aol.com:80/stream/1014
* OLDIES - THE 50′S: http://208.53.158.16:8080
* SALSA: http://205.188.215.231:8010
* COUNTRY: http://scfire-ntc-aa03.stream.aol.com:80/stream/1019
* CLASSIC & OPERA: http://scfire-ntc-aa03.stream.aol.com:80/stream/1006
* JAZZ OLD MUSIC: http://82.197.165.138:80
* AMBIENT: http://205.188.215.228:8006
* PIANO JAZZ: http://208.122.59.30:7814
* BEATLES: http://160.79.128.61:7824
* FREE JAZZ: http://205.188.215.227:8008
* LOVE MUSIC: http://88.191.13.57:7002/
* BOSSA NOVA: http://208.122.59.30:7804
* CLASSIC ROCK: http://208.122.59.30:7734
* HITS 70′S: http://scfire-ntc-aa03.stream.aol.com:80/stream/1076
* URBAN JAMZ: http://208.122.59.30:7704
* SOLO PIANO: http://208.122.59.30:7794
* FUNKY HOUSE: http://208.122.59.30:7284
* ALT ROCK: http://208.122.59.30:7754
* CLASSIC RAP: http://64.34.178.168:8000
* INDIE ROCK: http://160.79.128.61:7724
* SOUND TRACKS: http://208.122.59.30:7774
* CHRISTIAN: http://208.122.59.30:7784
* ROOTS RAGGAE: http://scfire-nyk-aa01.stream.aol.com:80/stream/1017
* UPTEMPO SMOOTH JAZZ: http://82.149.227.171:8000
* WORLD MUSIC: http://208.122.59.30:7674
* DA-TEMPO LOUNGE: http://88.191.13.57:7000
* GABBER: http://205.188.215.226:8006
* FUTURE SYNTHPOP: http://208.122.59.30:7234
* BREAKS: http://205.188.215.225:8002
* CLASSIC TECHNO: http://205.188.215.225:8004
* DRUM AND BASS: http://207.200.96.229:8030
* LOUNGE: http://scfire-ntc-aa03.stream.aol.com:80/stream/1009
* HARD CORE: http://scfire-ntc-aa04.stream.aol.com:80/stream/1004
* HARDSTYLE: http://72.51.40.90:8000
* GOA-PSY TRANCE: http://scfire-ntc-aa03.stream.aol.com:80/stream/1008
* PROGRESSIVE: http://scfire-ntc-aa03.stream.aol.com:80/stream/1026
* TECHNO: http://208.122.59.30:7204
* MINIMAL: http://66.135.35.144:8000
* HARD DANCE: http://209.247.146.98:8000
* TRIBAL HOUSE: http://di-fm-01.quintex.com:8882
* SOULFUL HOUSE: http://di-fm-01.quintex.com:8880
* HOUSE: http://scfire-nyk-aa03.stream.aol.com:80/stream/1007
* EURO DANCE: http://scfire-chi-aa02.stream.aol.com:80/stream/1009
* CHILLOUT: http://scfire-ntc-aa01.stream.aol.com:80/stream/1035
* ELECTRO HOUSE: http://scfire-ntc-aa03.stream.aol.com:80/stream/1025
* VOCAL TRANCE: http://scfire-ntc-aa03.stream.aol.com:80/stream/1065
* TRANCE: http://scfire-ntc-aa02.stream.aol.com:80/stream/1003
Streams da Digitally Imported. Sorgente della pagina originale presa da Blackie Dagger.
=== Vedi anche ===
* Streaming Music
* Streaming Audio FAQ
Category:Pagine italiane da wikificare
String/pl

__TOC__
Typ string to dane tekstowe. Długość łańcucha tekstowego jest ograniczona tylko dostępną dla skryptu pamięcią. Łańcuch znaków jest ograniczony cudzysłowem (") podczas definiowania. Można używać dowolnych znaków, chociaż niektóre wymagają użycia sekwencji specjalnych (tzw. "escaped characters")
Łancuchy mogą być łączone (konkatenowane) przy użyciu operatora +.
Sekwencje specjalne
ciąg	zamieniany na
\t 	cztery spacje
\n 	nowa linia
\" 	cudzysłów "
\\ 	odwrotny ukośnik \
Przykłady łańcuchów znakowych:
<lsl>"Cześć Awatarze!"
"Tak"
"Nie"
"Jest godzina 10."
"Mam 21 lat!"
"Pomóż " + "mi"
EOF
//Następujące łańcuchy mają tę samą zawartość.
"I scream,\nyou scream,\nwe all scream,\nfor ice-cream!"
"I scream,
you scream,
we all scream,
for ice-cream!"
</lsl>
Uwaga: Sekwencje specjalne (powyżej) są tłumaczone (parsowane) podczas kompilacji skryptu, a nie podczas jego wykonywania. Wskutek tego tylko teksty które są w skrypcie w momencie kompilacji będą miały (np.) \n zamienione na znak nowej linii. Teksty czytane z notecard'ów, czatu http, itd. Nie są sprawdzane pod kątem sekwencji specjalnych, to samo \n czytane z notecard'a nie zostanie w żadnym przypadku automatycznie zamienione w znak nowej linii. Jeżeli potrzebujesz tego z jakiegoś powodu, musisz sam oprogramować tę funkcję. 
Uwaga: Osoby, które posiadają znajomość języków typu C lub Java mogą źle interpretować reguły sekwencji specjalnych w LSL'u. LSL'owe "\n" oznacza llUnescapeURL("%0A"), tak jak w C lub Javie, ale już "\t" oznacza llUnescapeURL("%20%20%20%20"), a nie llUnescapeURL("%09"), a "\r" oznacza "r" a nie llUnescapeURL("%0D") itd.
== Zmienna: string ; ==
<lsl>string nazwa;</lsl>
Deklaruje zmienną typu string nazwaną nzwa o wartości 
== Zmienna: string ; ==
<lsl>string nazwa = wartość;</lsl>
Deklaruje zmienną typu string o nazwie "nazwa" i wartości "wartość".
== Rzutowanie(Konwersja typu): (string) ==
<lsl>(string)wartość</lsl>
Zamienia wartość na wyrażenie typu string.
== Operatory == 
Zobacz też Operatory.
=== Łączenie: + ===
<lsl>(wartość1 + wartość2)</lsl>
Łączy dwa łańcuchy bez modyfikowania łańcuchów wejściowych. Dopisuje wartość2 do wartość1 i zwraca łańcuch wynikowy.
=== Porównanie: == ===
<lsl>(wartość1 == wartość2)</lsl>
Porównuje dwa łańcuchy, zwraca , jeżeli są tej samej długości i zawierają te same znaki, w przeciwnym przypadku zwraca zero.
Ten operator działa dokładnie jak !strcmp(wartość1, wartość2) w C, więc różni się zachowaniem od nieintuicyjnego operatora == w C i Javie.
=== Porównanie: != ===
<lsl>(wartość1 != wartość2)</lsl>
Porównuje dwa łańcuchy, zwraca jeżeli są tej samej długości i zawierają te same znaki, w przeciwnym przypadku zwraca wartość różną od zera.
Ten operator działa dokładnie jak strcmp(wartość1, wartość2) w C, więc różni się zachowaniem od nieintuicyjnego operatora == w C i Javie.
== Przykład ==
<lsl>integer int = 48934;
string str = (string)int;
string str_2;
str_2 = str;</lsl>
== Użyteczne funkcje ==
=== Funkcje operujące na łańcuchach w Bibiliotece funkcji ===
=== Przykłady ===
String2Hex

==Full Unicode Support==
Uses UTF-8 encoding of characters. If you can get the character into a string in LSL, this will encode that character in hex.
For performance reasons you should really just get used to using Base64. Since LSL has no hex functions, implementing them comes at a great performance cost.
string String2Hex(string str){
 string b64 = (string)llParseString2List(llStringToBase64(str), ["="], []);
 integer length = ((llStringLength(b64) * 3) >> 1) & -2;
 b64 += "AAAAAAA"; // we will trim these off in the end, this works around SVC-104.
 integer count = -3;
 integer position = -4;
 string out;
 while ((count += 6) < length) {
 integer I = llBase64ToInteger(llGetSubString(b64, position += 4, position + 7)) | 1;//This is a bottle neck
 string T = "";
 do {
 integer A = (I >> 2) & 0x3C000000; //28 -> 26
 integer B = (I >> 4) & 0x00F00000; //24 -> 20
 integer C = (I >> 6) & 0x0003C000; //20 -> 14
 T += llGetSubString( //ABC
 llIntegerToBase64(
 A + B + C + 0xD34D0000
 - (0xF8000000 * (A / 0x28000000)) //lowercase=0x90000000, uppercase=0xF8000000
 - (0x03E00000 * (B / 0x00A00000)) //lowercase=0x02400000, uppercase=0x03E00000
 - (0x000F8000 * (C / 0x00028000)) //lowercase=0x00090000, uppercase=0x000F8000
 ), 0, 3);
 } while (((I = (I << 12)) & 0x1EE7);
 out += T;//This is a bottle neck
 }
 return llGetSubString(out, 0, length - 1);
}
string Hex2String(string hex) {
 integer length = (llStringLength(hex) + 1) & -2;
 while(length)
 hex = llInsertString(hex, length -= 2, "%");
 return llUnescapeURL(hex); //lol
}
==Limited ASCII-7 Support==
These functions only works for ASCII-7 non-control characters. 
string c_chr=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
//	http://wiki.secondlife.com/wiki/Int2Hex
string int2hex(integer x){
	string toret;
	do{
		toret=llGetSubString("0123456789ABCDEF",x&0x0000000F,x&0x0000000F)+toret;
	}while (x=x>>4&0x0FFFFFFF);
	return toret;
}
string str2hex(string str){
	string ret="";
	integer strlen=llStringLength(str);
	integer i=0;
	for(;i<strlen;++i){
		ret+=int2hex(32+llSubStringIndex(c_chr,llGetSubString(str,i,i)));
	}
	return ret;
}
string hex2str(string str){
	string ret="";
	integer strlen=llStringLength(str);
	integer i=0;integer index;
	for(;i<strlen;i+=2){
		index=((integer)("0x"+llGetSubString(str,i,i+1)))-32;
		ret+=llGetSubString(c_chr,index,index);
	}
	return ret;
}
default{
	state_entry(){
		llOwnerSay(str2hex("test ~"));
		llOwnerSay(hex2str("74657374207E"));
	}
}