key llRequestSimulatorData(string simulator, integer data)
Requests data about the
sim with the name
simulator.
simulator is case-insensitive.
Returns a
dataserver query ID and triggers the
dataserver event when data is found. The sim name is usually not case-sensitive, but sometimes will return data for a similarly-named sim if the supplied case doesn't match the intended sim's actual name.
For example, specifying "
Heaton" for
simulator will result in information about the sim "Heaven", while specifying "
heaven" will return information on the sim "Heaton". There is no official word on why this happens, but one assumes that when the dataserver finds that no sim matches the case as specified, it makes a frequently bad guess.
This
function delays the
script for 1 second.
Data | Value | Description |
DATA_SIM_POS | 5 | returns a vector (cast to a string) specifying the simulator's global position. |
DATA_SIM_STATUS | 6 | returns a string (see table below) |
DATA_SIM_RATING | 7 | returns a string, either "PG", "MATURE", "ADULT" or "UNKNOWN" |
Data returned from DATA_SIM_STATUS request | Description |
"up" | simulator currently up and running |
"down" | simulator currently down |
"starting" | simulator currently starting |
"stopping" | simulator currently stopping |
"crashed" | simulator has crashed |
"unknown" | simulator status unknown or unknown simulator name |
DATA_SIM_STATUS returns the string "unknown" when querying for a nonexistant sim while
DATA_SIM_POS and
DATA_SIM_RATING silently fail.
Remember,
calling llRequestSimulatorData to determine the sim's corner is only necessary if data is needed for a sim other than the one in which the script is currently running. If it is desired to find the
global position of the current sim,
llGetRegionCorner would be a wiser and more efficient choice.
Example:
Partial list of simulators:
SimulatorNames.
Q: How do I request data for the current simulator?
A: To find out the name of the sim your script is in, use llGetRegionName. If you're just planning on finding the sim corner position for the current sim, a faster and better method is to use llGetRegionCorner. You can avoid bothering with the dataserver altogether then.
Q: The values for DATA_SIM_POS and DATA_SIM_STATUS are 5 and 6, respectively. What happens if I pass 1, 2, 3, or 4 instead?
A: Nothing. Those values may or may not do something in future, at which time they would have associated constants, but they don't do anything now. One likely possibility is that all the llRequest* functions filter into the same backend function, so 1, 2, 3, and 4 would refer to the llRequestAgentData flags DATA_ONLINE, DATA_NAME, DATA_BORN, DATA_RATING respectively.
This article wasn't helpful for you? Maybe the
related article at the LSL Portal is able to bring enlightenment.
Functions |
Simulator |
dataserver