Jak propojit Second Life a MySQL
Poslední dva týdny jsem objevoval možnosti interakce Second Life prostředí a webových stránek. Nemyslím tím samozřejmě klasické zobrazení webové stránky na primu, ale komunikaci mezi LSL skriptem a webem pomocí HTTP protokolu. Tato oblast je dosud zahalena aurou tajemství, nicméně jakmile pochopíte základní princip fungování, zjistíte, že použití HTTP v prostředí Second Life je velice jednoduchý a efektivní nástroj, který výrazně znásobuje možnosti skriptování. Pokud navíc propojíte LSL skript s externí MySQL databází pomocí PHP skriptů, programování skriptů v Second Life dostává zcela nové a mnohem širší rozměry. A to je přesně to, co bych vás dnes chtěl naučit.
Dopředu upozorňuji, že dnešní návod vyžaduje alespoň základní znalosti LSL, MySQL a PHP. Rovněž budete potřeboval odpovídající hosting anebo svůj vlastní server, na kterém MySQL a PHP běží Na obrázku níže vidíte schématicky, jak propojení LSL a MySQL funguje - využívá se speciálně napsaná PHP stránka, která zajišťuje oboustrannou komunikaci z a do prostředí Second Life. LSL skript samotný nijak neudrží data v proměnných, pokud dojde k restartu skriptu. Restart skriptu je ale nutný dost často - buď potřebujete upravit skript nebo chcete objekt se skriptem umístit v jiném regionu, ale k restartu skriptu dochází i při restartu celého regionu, což je většinou mimo vaši kontrolu a v poslední době se tak děje dost často. Výhodou ukládání dat do MySQL místo držení přímo v LSL nebo pracného kopírování dat do notecard, což jsou dvě nejčastější metody používané v Second Life) je nezávislost na restartech skriptu. Tento skript rovněž nevyžaduje součinnost uživatele.

A teď již pojďme k tomu hlavnímu. Dnes si zkusíme udělat jednoduchý skript v objektu, který bude hlídat dotek uživatele. Po dotyku uloží do MySQL jméno avatara a celkový počet dotyků daným avatarem. Tento celkový počet následně oznámí. Počítání dotyků pokračuje i po restartu skriptu, to znamená nedojde k vynulování. Pro tento příklad budeme předpokládat, že máte hosting na doméně mojedomena.cz s MySQL databází mojedatabaze.
Krok 1: Vytvoření tabulky v databázi
Nejprve si potřebujeme v naší databázi vytvořit tabulku statistika, se kterou bude náš skript pracovat. Tabulka bude velice jednoduchá, bude obsahovat pouze dva sloupce - jméno avatara a počet dotyků. Nejjednodušší způsob je vytvořit si PHP stránku, nazvěme si ji například inicializace.php, která tabulku připraví. Vám stačí kód pouze zkopírovat z přiloženého příkladu a doplnit potřebné autorizační údaje v horní části kódu. Komentáře by měly pomoci pochopit, jak stránka funguje. Jakmile budeme mít PHP stránku na svém hostingu, stačí pouze její adresu zadat do prohlížeče a tabulka se nám vytvoří.
Krok 2: Vytvoření komunikačního mostu
Nyní vytvoříme druhou PHP stránku, nazveme si ji například most.php. Tato stránka bude přijímat data ze Second Life pomocí parametrů předaných v URL (v našem případě jméno avatara, který se dotknul objektu), uloží do databáze další dotyk a pošle zpátky do Second Life informaci o celkovém počtu dotyků daného avatara. Opět si nemusíte lámat hlavu, ale pouze si stáhněte nalinkovaný příklad, doplňte potřebné autorizační údaje v horní části kódu a uložte na svém hostingu. Komentáře opět pomohou s porozuměním kódu. No, tedy alespoň doufám...
Krok 3: Odpovídající LSL skript v Second Life
Nakonec musíme vytvořit skript v SL, který bude komunikovat s naší stránkou most.php. Klíčovou a pro většinu z vás i novou LSL funkcí bude llHTTPRequest a odpovídající LSL událost http_response. Skript samotný je velice jednoduchý a přiložený příklad by měl být samovysvětlující. V komentářích jsem se pokusil popsat i trochu to, jak LSL s HTTP požadavky zachází. Skript samozřejmě zkopírujte do libovolného objektu v Second Life a opět upravte podle svého nastavení hostingu. Pokud jste vše udělali správně, daný objekt by měl vám nebo komukoliv jinému po každém dotyku oznámit celkový počet dotyků od vytvoření tabulky v MySQL. Prodleva mezi kliknutím na objekt a odpovědí se obvykle pohybuje mezi 1-5 sekundami.
Tím bychom měli být hotovi. Náš příklad je pouze triviální ukázkou použití této techniky a jistě objevíte celou řadu praktických aplikací, od počítadla návštěvníků po vedení centrální evidence prodaného zboží. Přeji hodně štěstí při vašich pokusech a pokud se vám tento návod líbil a použili jste jej v praxi, potěší mě vaše komentáře pod návodem. Mou technickou podporu s provázáním MySQL a Second Life pak můžete hledat na VHelp.cz v diskuzi pod návodem (je nutná registrace na VHelp). Tak hezké skriptování.
Váš Shiny Iceberg
Virtual! Magazine
Second Life
- Oficiální zprávy (49)
- Zajímavosti (54)
- Educatica (2)
- Fotky a videa (21)
- Návody a rady (17)
- Dobrá koupě (11)
- SLibné odkazy (19)
- Tipy na SL výlet (25)
Blue Mars
- Zprávy a novinky (9)
- Postřehy a úvahy (5)
- Pro developery (6)
- Virtuální kamera (5)
Ostatní
- Interní oznámení (15)
- Open Simulator (4)
- Virtuální světy (7)
Vybráno ze slovníku
Váš účet
Nejlepší SL fotky
Podporuji
O autorovi
Kromě vydávání Virtual! Magazine se zabývá podporou nováčků v rámci projektu Educatica, zdokonalováním svých stavitelských a skriptovacích dovedností, péčí o Second Life region Shinyland, objevováním nových zajímavých lokalit, koordinací SL aktivit projektu Bwindi Orphans a přednáškovou činností.


Komentáře
Poslat nový komentář