Join us in Outworldz at www.outworldz.com:9000 or follow us:

Search dozens of selected web sites for OpenSim and LSL script

New! Script Meta-Search will search thousands of scripts here and at other sites for LSL or Opensim scripts.
Loading

Want to add a script or a project? Upload it and a half million people will see it and your name here this year.

Home   Show All
Category: Contributor: Creator
Map Mapmaker  

Mapmaker

How to use:

- create a cube (change texture if desired)
- drop the script in it
- resize as needed

Category: Map
By : Runay Roussel
Created: 2010-11-03 Edited: 2010-11-03
Worlds: Second Life

the Zip file

Download all files for Mapmaker
Contents are in zip format, with .LSL (text) source code and LSLEdit (text + Solution) formats.
Get file # 1. Mapmaker_1.lsl
1 // Mapmaker
2 //
3 // History:
4 //
5 // - a PHP script was created by Lex Mars (founder of Subnova); it accesses the map tiles and returns a texture UUID
6 // - a small example script (including the URL) was published in the LSL Wiki Script Library
7 // - the script uses a HTTP request (I used that as a starting point) to retrieve the texture UUID of the map
8 //
9 // Added stuff:
10 //
11 // - error checking
12 // - 24 hour timer
13 // - change map on touch
14 // - set object name to "Map of ..." (hover mouse over map to see it)
15 //
16 // How to use:
17 //
18 // - create a cube (change texture if desired)
19 // - drop the script in it
20 // - resize as needed
21 //
22 // Author: Runay Roussel
23 // Released to the public domain on September 14th, 2009
24
25 float TIME = 86400.0; // timer interval = 24 hours
26 integer lsn = 0; // handle for listener
27 key request; // handle for HTTP request
28 key user; // key of user touching the prim
29 string sim; // sim
30 string sim_old; // previous sim
31 string URL = "http://www.subnova.com/secondlife/api/map.php"; // URL of PHP script
32 string full_URL; // full URL including sim name
33
34 string capitalize (string text)
35 {
36 return llToUpper(llGetSubString(text, 0, 0)) + llGetSubString(text, 1, -1);
37 }
38
39 getMap(string sim_name)
40 {
41 full_URL = URL + "?sim=" + llEscapeURL(sim_name);
42 request = llHTTPRequest(full_URL, [], "");
44 llSetTimerEvent(TIME);
45 }
46
47 default
48 {
50 {
51 llSetObjectDesc("Touch to change");
53 user = llGetOwner();
54 sim = capitalize(llGetRegionName()); // default sim = current
55 sim_old = sim;
56 getMap(sim); // initial map display
57 }
58
59 on_rez(integer start_param)
60 {
62 }
63
64 http_response(key request_id, integer status, list metadata, string body)
65 {
66 if(status != 200) {
67 sim = sim_old;
68 if(status == 499) {
69 if(user) llInstantMessage(user, "Sim not found.");
70 }
71 else {
72 if(user) {
73 llInstantMessage(user, "An unexpected error has occurred. Return code = HTTP " + (string)status);
74 llLoadURL(user, "Full error message", full_URL);
75 }
76 }
77 }
78 else {
79 if((key)body) {
80 llSetTexture(body, 1);
81 llSetObjectName("Mapmaker");
82 if(user) llInstantMessage(user, "Rendering map of " + sim + "...");
83 }
84 else if((key)body == NULL_KEY) {
85 sim = sim_old;
86 if(user) llInstantMessage(user, "Sim exists but has not yet been mapped. Please try again later.");
87 }
88 else {
89 sim = sim_old;
90 if(user) {
91 llInstantMessage(user, "An unexpected error has occurred. Return code = HTTP " + (string)status);
92 llLoadURL(user, "Full error message", full_URL);
93 }
94 }
95 }
96 llSetObjectName("Map of " + sim);
97 }
98
99 timer()
100 {
101 if(lsn) {
102 llListenRemove(lsn);
103 lsn = 0;
105 llSetTimerEvent(TIME);
106 llInstantMessage(user, "Timeout.");
107 llSetObjectName("Map of " + sim);
108 }
109 else {
110 user = "";
111 getMap(sim);
112 }
113 }
114
115 touch_start(integer total_number)
116 {
117 user = llDetectedKey(0);
118 llListenRemove(lsn);
119 lsn = llListen(0, "", user, "");
122 llSetObjectName("Mapmaker");
123 llInstantMessage(user, "Please type the name of a sim within the next minute.");
124 }
125
126 listen(integer channel, string name, key id, string message)
127 {
128 llListenRemove(lsn);
129 lsn = 0;
130 sim_old = sim;
131 sim = capitalize(message);
132 getMap(sim);
133 }
134 }

Back to the Best Free Tools in Second Life and OpenSim.