I'll see if I can find out what vector to use for different compass directions. It'll probably involve inworld experimentation rather than reading about vectors and quaternions.Mykyl wrote:Also, can anyone explain to me how to figure out the vector for "vector direction = <0,0,0>; " - how do I figure out how to make the avatar face a particular direction?
osTeleport Agent
-
- Posts: 219
- Joined: Sun Dec 23, 2012 12:15 pm
- Has thanked: 75 times
- Been thanked: 207 times
Re: osTeleport Agent
Re: osTeleport Agent
/me scratching head
I've tried all sorts of variations in the last hour or so, and if I am using it to teleport between worlds I always wind up facing east no matter what. If I am using it to teleport within a one region world, my lookat isn't changed at all, I just face the direction I was facing when i clicked the teleport object. I swear I had this working a few months ago. At the time, I was making a basic teleporter between floors. And I had set the look at to point the avatar toward the main area of the given floor. I swear it worked then!!
I've tried all sorts of variations in the last hour or so, and if I am using it to teleport between worlds I always wind up facing east no matter what. If I am using it to teleport within a one region world, my lookat isn't changed at all, I just face the direction I was facing when i clicked the teleport object. I swear I had this working a few months ago. At the time, I was making a basic teleporter between floors. And I had set the look at to point the avatar toward the main area of the given floor. I swear it worked then!!
- Marstol Nitely
- Posts: 486
- Joined: Mon Dec 24, 2012 1:42 am
- Has thanked: 1022 times
- Been thanked: 441 times
Re: osTeleport Agent
I believe you. 

- These users thanked the author Marstol Nitely for the post:
- Ohn Lang
-
- Posts: 1314
- Joined: Sun Dec 23, 2012 2:26 pm
- Has thanked: 1134 times
- Been thanked: 1142 times
Re: osTeleport Agent
Well, llMapDestination doesn't do anything with the lookat vector either so I guess it's at least consistent with that. On the other hand, the new LSL llTeleportAgent does use lookat so maybe that works.
http://opensimulator.org/wiki/LSL_Status/Functions
http://opensimulator.org/wiki/LSL_Status/Functions
Re: osTeleport Agent
Unfortunately, according to the wiki, llTeleportAgent only works for the owner of the object.Graham Mills wrote:Well, llMapDestination doesn't do anything with the lookat vector either so I guess it's at least consistent with that. On the other hand, the new LSL llTeleportAgent does use lookat so maybe that works.
http://opensimulator.org/wiki/LSL_Status/Functions

-
- Posts: 1314
- Joined: Sun Dec 23, 2012 2:26 pm
- Has thanked: 1134 times
- Been thanked: 1142 times
Re: osTeleport Agent
What a waste! Looks like it's been implemented that way in OpenSim too: http://opensimulator.org/mantis/view.php?id=6341Ohn Lang wrote:Unfortunately, according to the wiki, llTeleportAgent only works for the owner of the object.
Did you check?
Re: osTeleport Agent
No, i had assumed OS would implemented it in the same way as SL for backward compatibility. LL handicapped several of the newer functions which made them quite useless IMO. I think in some cases, they had to because after creating the functions they learned that there were serious security issues, griefing-made-easy style.
- Marstol Nitely
- Posts: 486
- Joined: Mon Dec 24, 2012 1:42 am
- Has thanked: 1022 times
- Been thanked: 441 times
Re: osTeleport Agent
I use the osTeleport Agent for a "telemap" on my region. It works well for teleporting others around to different regions in my world. I made a HUD using it and it took me a while to figure out why the HUD only worked for me (because of the osTeleportAgent). The osTeleportOwner seems to work well in the Telemap HUD.
Tried changing vectors on OsTeleportAgent and I'm still looking NE. I should have remembered this before, but it's been a while since I placed them. When I placed my teleporters, I wanted to have the avatar be able to find them easily when they landed, so I played with the vectors. Finally ended up placing them in relation to where the avatar was looking instead of changing the direction the avatar faced.
Tried changing vectors on OsTeleportAgent and I'm still looking NE. I should have remembered this before, but it's been a while since I placed them. When I placed my teleporters, I wanted to have the avatar be able to find them easily when they landed, so I played with the vectors. Finally ended up placing them in relation to where the avatar was looking instead of changing the direction the avatar faced.
- Constance Peregrine
- Posts: 2353
- Joined: Sun Dec 23, 2012 11:35 am
- Has thanked: 2784 times
- Been thanked: 1489 times
Re: osTeleport Agent
I may be way off base as I do not script but only sometimes can modify, so I dont really understand all this for the most part, but perhaps what is needed is another tp script? In any case, I use this grid map tp script often. If it isnt what is needed, sorry to interrupt, pls proceed without me-))
Code: Select all
/*//-- v7-D Enhanced Landmark Mapper v1.2f --//*/
/*//-- Requirements:
3 linked Prims (minimum)
1 Named "prev" (this will be your previous landmark button)
1 Named "next" (this will be your next landmark button)
any other prim in the object will trigger the map destination for the
currently displayed Landmark name. Recommended to rename landmarks.
//*/
integer gIdxTgt; /*//-- Index of Target --//*/
list gLstLMs; /*//-- List of Landmarks --//*/
list gLstLoc; /*//-- List of Locations--//*/
key gKeySec; /*//-- Key for Security checking dataserver calls --//*/
float gFltTmt = 5.0; /*//-- Float for Timeout (dataserver calls & inventory changes) --//*/
default{
state_entry(){
llOwnerSay( "Rebuilding Database" );
gIdxTgt = llGetInventoryNumber( INVENTORY_LANDMARK );
/*//-- Grab Landmark Names For Display --//*/
if (gIdxTgt){
while(gIdxTgt){
gLstLMs = (list)llGetInventoryName( INVENTORY_LANDMARK, --gIdxTgt ) + gLstLMs;
}
/*//-- Get First LM Location --//*/
gKeySec = llRequestInventoryData( llList2String( gLstLMs, gIdxTgt = (gLstLMs != []) - 1 ) );
/*//-- (gLstLMs != []) == llGetListLength( gLstLMs ) --//*/
/*//-- negative indices would've been nice if they were supported by the Req.Inv.Data call --//*/
llSetTimerEvent( gFltTmt );
}else{
gLstLMs = (list)"Out Of Order, No Landmarks Present";
gLstLoc = (list)<128.0, 128.0, 0.0>;
state sReady;
}
}
dataserver( key vKeySec, string vStrLoc ){
/*//-- verify we're getting our data, not another scripts --//*/
if (gKeySec == vKeySec){
/*//-- Store Location Vector --//*/
gLstLoc = (list)((vector)vStrLoc + llGetRegionCorner()) + gLstLoc;
if (gIdxTgt){
/*//-- Get Next LM Location --//*/
gKeySec = llRequestInventoryData( llList2String( gLstLMs, --gIdxTgt ) );
llSetTimerEvent( gFltTmt );
}else{
/*//-- Clear Timeout Because Timers Cross States --//*/
llSetTimerEvent( 0.0 );
state sReady;
}
}
}
timer(){
if (gKeySec){
llOwnerSay( "Dataserver Response Timed Out, auto retry in " + (string)((integer)gFltTmt) + " seconds" );
gKeySec = "";
}else{
llResetScript();
}
}
}
state sReady{
state_entry(){
/*//-- Set The Initial Display --//*/
llSetText( llList2String( gLstLMs, gIdxTgt ), <1.0, 0.0, 0.0>, 1.0 );
llOwnerSay( "Ready" );
}
touch_end( integer vIntNul ){
/*//-- Check if a prim named "prev" or "next" was touched --//*/
integer vIntTst = llSubStringIndex( "prevnext", llGetLinkName( llDetectedLinkNumber( 0 ) ) );
if (~vIntTst){
/*//-- Update Index Target --//*/
gIdxTgt += ((vIntTst > 0) - (vIntTst == 0));
/*//-- ((vIntTst > 0) - (vIntTst < 0)) same as: -1 for "prev", +1 for "next" --//*/
/*//-- Update Display --//*/
llSetText( llList2String( gLstLMs, (gIdxTgt %= (gLstLMs != [])) ), <1.0, 0.0, 0.0>, 1.0 );
/*//-- (gLstLMs != []) == llGetListLength( gLstLMs ) --//*/
/*//-- "gInCnt %= " allows us to wrap our references so they don't go out of range --//*/
}else{
/*//-- Trigger map for any other touched prim in this object --//*/
llMapDestination( llGetRegionName(), llList2Vector( gLstLoc, gIdxTgt ) - llGetRegionCorner(), ZERO_VECTOR );
}
}
changed( integer vBitChg ){
if (CHANGED_INVENTORY & vBitChg){
/*//-- give the user more time to add new LMs before we recompile our database lists. --//*/
/*//-- We could check the count too, but don't in case the change was a change of name --//*/
llSetTimerEvent( gFltTmt );
}
}
timer(){
llResetScript();
}
}
- These users thanked the author Constance Peregrine for the post:
- Marstol Nitely
Laissez faire et laissez passer, le monde va de lui même!
My little sounds store https://www.kitely.com/market?store=2040306
Ephemeral wanderer...
My little sounds store https://www.kitely.com/market?store=2040306
Ephemeral wanderer...
- Marstol Nitely
- Posts: 486
- Joined: Mon Dec 24, 2012 1:42 am
- Has thanked: 1022 times
- Been thanked: 441 times
Re: osTeleport Agent
I don't know much more than how to modify scripts either Minethere. Always have the feeling the real coders want to say "that's not what we're talking about Marstol, hurry along and let the adult scripters talk..." 
