llMapDestination - Change in behavior 1.9?
|
|
Keiki Lemieux
I make HUDDLES
Join date: 8 Jul 2005
Posts: 1,490
|
03-17-2006 12:52
request = llRequestInventoryData( "This landmark" ) );
dataserver(key id, string data) { if(id == request) { llMapDestination( llGetRegionName(), (vector)data, (vector)data ); } }
Before the latest update, this bit of code worked differently then it does now. What used to happen was the first line would cause a dataserver event. The data would be the relative global position of the landmark to the scripts current position. Then you pass that vector and the current region name into llMapDestination and the map will open up in the client with the destination of the landmark selected. Now what happens is, well, it doesn't work unless you are in the the correct sim to begin with. It seems that llMapDestination used to be able to undertstand calls like this, now I'm guessing that llMapDestination only works if you have the name of the region you are teleporting to. Does anyone know a method to take the data from the data server event and get the region name of the destination? And the vector in region coordinates?
_____________________
imakehuddles.com/wordpress/
|
|
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
|
03-17-2006 22:01
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river. - Cyril Connolly
Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence. - James Nachtwey
|
|
Keiki Lemieux
I make HUDDLES
Join date: 8 Jul 2005
Posts: 1,490
|
03-17-2006 22:25
Please be more specific, Strife. This code worked fine on Tuesday as it did for the last month. Now it doesn't work. I don't know what in the wiki will help me. I used the example from the wiki to write my code in the first place.
_____________________
imakehuddles.com/wordpress/
|
|
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
|
03-17-2006 23:08
From: Wiki Works in attachments, or during touch events.
Unless its an attachment it won't work. It looks like you were depending on a bug (i think the restrictions on llMapDestination are stupid too).
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river. - Cyril Connolly
Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence. - James Nachtwey
|
|
Jillian Callahan
Rotary-winged Neko Girl
Join date: 24 Jun 2004
Posts: 3,766
|
03-17-2006 23:36
llMapDestination HAS changed in several ways. I've bugged it for one particular change - no longer being able to target above 256 meters.
This change sounds relevant to what you're experincing, Keiki. It's got tighter (needlessly tighter) restraints.
|
|
Keiki Lemieux
I make HUDDLES
Join date: 8 Jul 2005
Posts: 1,490
|
03-18-2006 06:27
From: Jillian Callahan llMapDestination HAS changed in several ways. I've bugged it for one particular change - no longer being able to target above 256 meters. Yes, Jillian, that's exactly what I'm referring to! You have to be in the same sim now (or know the name of the sim the destination is in) to make this work. It makes the combination of llRequestInventoryData and llMapDestination virtually worthless. And yes Strife, it's on an attachment, my landmark pal. Like I said, it was working nearly flawlessly on Tuesday. Now it's not working at all unless you happen to be in the same sim. Try the example code from the wiki. It doesn't work anymore for landmarks outside of your current sim: key request; string name; string sim_name; vector pos;
default { state_entry() { llAllowInventoryDrop(1); if(llGetInventoryNumber(INVENTORY_LANDMARK)) { name = llGetInventoryName(INVENTORY_LANDMARK,0); request = llRequestInventoryData(name); } else llWhisper(0,"Please drop a landmark on me"); } dataserver(key id, string data) { if(id == request) { pos = (vector)data; sim_name = llGetRegionName(); llSetText("Touch to show \""+name+"\" on the map.",<1.0,1.0,1.0>,1.0); } } touch_start(integer a) { if(name != "") llMapDestination(sim_name, pos, pos); } changed(integer a) { if(a & (CHANGED_INVENTORY | CHANGED_ALLOWED_DROP)) if(llGetInventoryNumber(INVENTORY_LANDMARK)) request = llRequestInventoryData(name = llGetInventoryName(INVENTORY_LANDMARK,0)); } }
_____________________
imakehuddles.com/wordpress/
|
|
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
|
03-19-2006 02:53
^^' i'm sorry, then please report it as a bug (i have). (I wrote the wiki page for llMapDestination, and the examples on it; i'm annoyed that they broke them)
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river. - Cyril Connolly
Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence. - James Nachtwey
|