JohnathanMacBride Posted March 2, 2016 Share Posted March 2, 2016 I am trying to create a HUD that saves locations, how would I go about doing that other than child prim descriptions? whats the maximum number possible? Link to comment Share on other sites More sharing options...
Rolig Loon Posted March 2, 2016 Share Posted March 2, 2016 As long as you can be fairly sure that you will not need to restart the HUD's script, you can store quite a long list of locations in lists, until you hit the 64K memory limit. If you're worried about data losss if to do restart the script, you can save a limited amount of data in prim descriptions or in other non-volatile parameters, although you may need to encode some of them. You can encode vectors as a hex integers, for example, to save space. Still, you can't save much data that way, compared to what you can save in the script itself. If you really want to save large amounts of information, send it somewhere else -- to a remove server in world or outside SL altogether. Or, most promising (and easiest, if you are writing scripts in an Experience), save the information in KVP records. There are storage limits even there, but they are on the order of hundreds of thousands of records or more. Link to comment Share on other sites More sharing options...
JohnathanMacBride Posted March 2, 2016 Author Share Posted March 2, 2016 This would be grid wide and external to experiences, so kvp records are probably out. however I could do lists with an import/export function for data safety. I am dealing with either landmark locations e.g.: simname/x/y/z or global coordinates for each location. So I am looking at either a string, string vector combination or strictly vector data per location. whichever turns out to be less storage intensive. where can i find more about encoding to hexadecimal? Link to comment Share on other sites More sharing options...
JohnathanMacBride Posted March 2, 2016 Author Share Posted March 2, 2016 on that note, is json a viable option? Link to comment Share on other sites More sharing options...
JohnathanMacBride Posted March 2, 2016 Author Share Posted March 2, 2016 After doing additional research, it seems that as long as the script is not reset, I can even us Strided lists to store the data. again, I will be checking to see which is most cost efficient. Thanks for the advice and I look forward to anything anyone else has to offer. Link to comment Share on other sites More sharing options...
Callum Meriman Posted March 2, 2016 Share Posted March 2, 2016 JohnathanMacBride wrote:where can i find more about encoding to hexadecimal? First hit when I type "lsl encode to hex" into google: http://wiki.secondlife.com/wiki/Float2Hex That's a float though. The google search term will provide more hits that might suit your need more. JohnathanMacBride wrote: I can even us Strided lists to store the data. It doesn't seem like the sort of data that would be useful to stride. But it's hard to know your level, and what you want... am I teaching you to suck eggs describinf llCSV2List for example. As a crude, unoptimised example and there are better ways, but this is very quick and simple: string test = "Simname,10,150,20.2";list regionDetails = llCSV2List(test); And to use those...... string SimName = llList2String(regionDetails,0); // -> Simnameinteger xPos = llList2Integer(regionDetails,1); // -> 10integer yPos = llList2Integer(regionDetails,2); // -> 150float zPos = llList2Float(regionDetails,3); // -> 20.2 You wouldn't of course use a float for z, but it's showing you can store anything in a CSV string. buuuuuttttttttt Considering you are thinking using hex... and possibly the lag cost with converting that.... if you drop z. to drop a few bytes then the commas won't be desirable. Buuuuutttttt then again You do know you can hold a tonne of data in memory don't you so a delimiter shouldn't even be a blip on the radar. Link to comment Share on other sites More sharing options...
Qie Niangao Posted March 2, 2016 Share Posted March 2, 2016 How many do you need to store, and what are you doing with them once stored? I mean, if it's "write-only memory" you can pretend to store an infinite number, right? The real question is how you'll need to access them -- just a dump maybe in the order they were stored, or by some query? And if query, by name? by quadtree? Assuming the simplest case, just a huge list of global coordinate vectors is a reasonable compromise among size, performance, and precision. (That is, you could re-code those into integers to save space, but only by sacrificing a lot of precision, or recode the whole list into one monstrous bit-coded string, but with a heavy performance penalty for doing anything much with the contents.) You can get back and forth between global coordinates and region names using the Map API's utility caps and (in one direction) with llRequestSimulatorData(..., DATA_SIM_POS). On the off-chance that these locations could correspond to manually-collected landmarks in object inventory, llRequestInventoryData() could be useful. Link to comment Share on other sites More sharing options...
Rolig Loon Posted March 2, 2016 Share Posted March 2, 2016 As one example of coding vectors as integers, I point to Void Singer's final contributions to these forums in https://community.secondlife.com/t5/LSL-Scripting/Finity-s-End/m-p/1254169 , I have retooled her code for several applications. It's particularly helpful for passing a vector as an on_rez start parameter which, of course, must be an integer. Link to comment Share on other sites More sharing options...
steph Arnott Posted March 2, 2016 Share Posted March 2, 2016 removed. Gave a link to a full strided script as to what was asked an would have fullfilled everthing wanted. Now gone. Link to comment Share on other sites More sharing options...
JohnathanMacBride Posted March 2, 2016 Author Share Posted March 2, 2016 Thanks, yes I am aware of that limitation. Attributions will be included. As of yet everything i have is hand coded by myself, but anything borrowed will be attributed. The idea is to save a location, make it retrievable and selectable by menu, then a teleport ensues from the 'active' or 'selected' destination. Global coordinates would make the most sense, however, an identifiable name for each location would be a must for retrieval also. This has been a lot of help, I am glad to have such knowledgeable people so close at hand. Link to comment Share on other sites More sharing options...
Recommended Posts
Please take a moment to consider if this thread is worth bumping.
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now