Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Phantom avatars

Cross Lament
Loose-brained Vixen
Join date: 20 Mar 2004
Posts: 1,115
10-22-2004 13:53
Okay, I'm stumped. I've seen it done, and I can't fathom how. Someone's built a device/attachment/shield/something that renders avatars phantom. It's apparently a bug with llVolumeDetect(), but I dunno how to replicate it, and it's driving me nuts. :D

Anyone wanna share the secret with a loose-brained vixen? :D

Edit: NM, I figured it out. :D
_____________________
- Making everyone's day just a little more surreal -

Teeple Linden: "OK, where did the tentacled thing go while I was playing with my face?"
Zuzi Martinez
goth dachshund
Join date: 4 Sep 2004
Posts: 1,860
10-22-2004 23:51
so share it!!!!
Jillian Callahan
Rotary-winged Neko Girl
Join date: 24 Jun 2004
Posts: 3,766
10-23-2004 01:45
Does anyone know if the trick used has any negative effects on the sim? Extra load? I've done a little testing along them lines, but I don't trust that I know nearly enough about SL to say for sure.
Eggy Lippmann
Wiktator
Join date: 1 May 2003
Posts: 7,939
10-23-2004 06:51
Uh, I have a very vague recollection of it having to do with setting llVolumeDetect on and off in a child prim of an attachment. I'm probably wrong.
Eggy Lippmann
Wiktator
Join date: 1 May 2003
Posts: 7,939
10-23-2004 06:52
From: Jillian Callahan
Does anyone know if the trick used has any negative effects on the sim? Extra load? I've done a little testing along them lines, but I don't trust that I know nearly enough about SL to say for sure.

Meh, if you're phantom it probably has less physics load even.
Expect LL to fix this though.
Jillian Callahan
Rotary-winged Neko Girl
Join date: 24 Jun 2004
Posts: 3,766
10-23-2004 07:23
From: Eggy Lippmann
Meh, if you're phantom it probably has less physics load even.
Expect LL to fix this though.


I sure hope so, but when playing with what is a bug I'd rather not make many assumptions.

From: Eggy Lippmann
Uh, I have a very vague recollection of it having to do with setting llVolumeDetect on and off in a child prim of an attachment. I'm probably wrong.


That's it exactly.
Siro Mfume
XD
Join date: 5 Aug 2004
Posts: 747
10-23-2004 10:50
You can also easily enough set a full suite of animation overrides combined with sitting on a smooth setpossing prim. You'll be able to more right through stuff.
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
10-23-2004 11:24
I saw this a couple weeks ago, i wish i had thought of the child prim trck...
_____________________
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
Cross Lament
Loose-brained Vixen
Join date: 20 Mar 2004
Posts: 1,115
10-23-2004 11:29
Oop, sorry, I was sleepy when I made the first post, so ... heh. :D

Anyway, I tried it using an attachment to my avatar, and it told me to go jump off a bridge (okay, not really, it just said volumedetect won't work on attachments).

So I turned things around, and made my avatar the attachment, by setting up a call to llVolumeDetect on a vehicle, that would go off when I took control of it. Sure enough, I could fly through everything but the ground. Neat. :D
_____________________
- Making everyone's day just a little more surreal -

Teeple Linden: "OK, where did the tentacled thing go while I was playing with my face?"
James Beckett
Registered User
Join date: 26 Jun 2004
Posts: 34
10-23-2004 12:04
Cross, can u send me the script so I can play around with it?
Cross Lament
Loose-brained Vixen
Join date: 20 Mar 2004
Posts: 1,115
10-23-2004 13:10
From: James Beckett
Cross, can u send me the script so I can play around with it?


Hehe, nope, sorry. I'm at work ATM. :D

It should work with ANY vehicle script, AFAIK... just add a call to llVolumeDetect( TRUE ) around the same place where it called llTakeControls(). :)
_____________________
- Making everyone's day just a little more surreal -

Teeple Linden: "OK, where did the tentacled thing go while I was playing with my face?"
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
Open Letter to LL
10-28-2004 20:30
I'm not one to write letters. But this topic has compelled me.

Dear LindenLabs,

Fixing this bug without offing a Summon Teleport function is shortsighted. In the past the only way for an avatar to get between two locations quickly was by vehicle or teleport but both of these require player interaction; not suitable for forced re-spawning for any combat game. But with this bug you can use an attachment and llSetForce, llMoveToTarget, llPushObject to quickly move between two locations without having to have a path finding script to navigate. While not as elegant as teleporting it solves the problem at hand. A summoning teleport feature would be the best solution but the likely implementation of such a feature would make it less useful then the current bug exploit. Until a solution can be found & implemented, and can also handle multiple link points; could this bug not be fixed.

Sincerely,
Strife Onizuka
PvP Game Developer
_____________________
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
Goshua Lament
Registered User
Join date: 25 Dec 2003
Posts: 703
10-28-2004 20:31
From: James Beckett
Cross, can u send me the script so I can play around with it?



Gimmie one as well.
_____________________
Flickr Second Life Photo Gallery

I no longer regularly login to SecondLife, but please contact me if an issue arises that needs my attention.
Moleculor Satyr
Fireflies!
Join date: 5 Jan 2004
Posts: 2,650
10-29-2004 06:24
From: Eggy Lippmann
Meh, if you're phantom it probably has less physics load even.
Expect LL to fix this though.


Actually, no. llVolumeDetect isn't "true" phantom, and still has to do just as much physics work as a normal object, because it's the physics collision detection that triggers collision_start.
Cross Lament
Loose-brained Vixen
Join date: 20 Mar 2004
Posts: 1,115
10-29-2004 11:20
From: Goshua Lament
Gimmie one as well.


Actually, I've found that the 'child prim attachment' method is a lot more elegant. Or less kludgy, or whatever. :D

The script I'm using is absolutely trivial. Place this in any child prim of an attachment (ie. not the root prim):

CODE

integer isPhantom ;

default
{
state_entry()
{
llListen( 5, "", NULL_KEY, "" ) ;
}

listen( integer channel, string name, key id, string message )
{
if( id == llGetOwner() )
{
if( ( message == "ghost" ) && isPhantom )
{
isPhantom = FALSE ;
llVolumeDetect( FALSE ) ;
}

else if( ( message == "ghost" ) && !isPhantom )
{
isPhantom = TRUE ;
llVolumeDetect( TRUE ) ;
}
}
}
}
_____________________
- Making everyone's day just a little more surreal -

Teeple Linden: "OK, where did the tentacled thing go while I was playing with my face?"
Francis Chung
This sentence no verb.
Join date: 22 Sep 2003
Posts: 918
10-30-2004 09:49
From: Cross Lament
Actually, I've found that the 'child prim attachment' method is a lot more elegant. Or less kludgy, or whatever. :D


Oh sweet :) Thanks, just gave this a spin.

I saw another phantom hack a month or two ago, and it didn't depend on a child prim, but was incredibly esoteric. (I haven't a clue how the creators figured out the incantation to make it work)

And it always gave you that "Attachments cannot use llVolumeDetect.", even when it did work. If LL ever decides to fix this hack, I sure hope they'll fix it so it fails silently. *hint hint*
_____________________
--
~If you lived here, you would be home by now~
Synch Thetan
Full of Cheese
Join date: 26 Feb 2004
Posts: 27
11-01-2004 11:03
The only problem I've had with this method is that the script seems to "forget" that it is phantomed as soon as you cross a sim border.
_____________________
"I reject your reality and substitute my own."
Rysidian Rubio
Ruby Red Head
Join date: 14 Jan 2004
Posts: 263
11-01-2004 19:28
COOL. Thanks for posting about this!!
I tried it on a vehicle yesterday with some very funny results :)
Here's a script to stop you colliding (or getting stuck inside) half rezzed buildings when flying.

It makes you phantom when flying, and not when not. and also fixes itself when crossing a sim border. I haven't tested it yet but will when I get home. It should go in a child prim of an attachment (if that works, haven't tested it either, but earlier posts indicate that it does).

Feel free to mod as you see fit.
CODE

//PHANTOM FLYING SCRIPT
//to go into a child prim of an attachment
//auto turns the user phantom when the user is flying

integer FLYING; //boolean to check if the user is flying, and to
//minimize the number of function calls when unnessassary.
key OWNER; //owner of the script/prim.
vector regioncorner; //used to track which region the user is in,
//and to reset the phantom after crossing a sim border.

default
{

state_entry()
{
//initialise the variables.
OWNER = llGetOwner();
regioncorner = llGetRegionCorner();

FLYING = FALSE;
llSetTimerEvent(2);
}

timer()
{
//checks if user is flying, and make him phantom if flying
//non phantom if not.
if (llGetAgentInfo(OWNER) & AGENT_FLYING)
{
if (FLYING == FALSE)
{
llVolumeDetect(TRUE);
FLYING = TRUE;
}
}
else if (FLYING == TRUE)
{
llVolumeDetect(FALSE);
FLYING = FALSE;
}

//this fixes the phantom if you cross a sim border.
vector newregioncorner = llGetRegionCorner();
if (regioncorner != newregioncorner)
{
FLYING = FALSE;
regioncorner = newregioncorner;
}
}

}
Rickard Roentgen
Renaissance Punk
Join date: 4 Apr 2004
Posts: 1,869
11-02-2004 11:00
From: Francis Chung
Oh sweet :) Thanks, just gave this a spin.

I saw another phantom hack a month or two ago, and it didn't depend on a child prim, but was incredibly esoteric. (I haven't a clue how the creators figured out the incantation to make it work)

And it always gave you that "Attachments cannot use llVolumeDetect.", even when it did work. If LL ever decides to fix this hack, I sure hope they'll fix it so it fails silently. *hint hint*


if that was me and Klintel, Francis ya we fixed it quite a while ago.
_____________________
Jack Digeridoo
machinimaniac
Join date: 29 Jul 2003
Posts: 1,170
11-02-2004 11:05
This is actually a neat feature I would like to see in the client since people build massive tall buildings that make it impossible to fly without frustation because the object don't load on my end fast enough. I hate visiting the mainland because of this annoyance.
_____________________
If you'll excuse me, it's, it's time to make the world safe for democracy.
Cross Lament
Loose-brained Vixen
Join date: 20 Mar 2004
Posts: 1,115
11-02-2004 12:05
Cool Rysidian! Why didn't I think of that?? :D
_____________________
- Making everyone's day just a little more surreal -

Teeple Linden: "OK, where did the tentacled thing go while I was playing with my face?"
Beatfox Xevious
is THOUSANDS OF PEOPLE
Join date: 1 Jun 2004
Posts: 879
11-02-2004 13:01
Nice work, Cross & Rysidian! Works beautifully!
_____________________
My Beatworks: Zephyr Chimes wind chimes, the KanaMaster Japanese kana tutor, and the FREE Invisibility Prim Public. Look for them at the Luskwood General Store in Lusk (144, 165).

"You have been frozen. You cannot move or chat. A pony will contact you via instant message (IM)."
- mysterious system message I received after making off with Pony Linden
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
11-02-2004 22:33
CODE

//PHANTOM FLYING SCRIPT
//to go into a child prim of an attachment
//auto turns the user phantom when the user is flying

integer FLYING;
key OWNER;
vector regioncorner;

vector newregioncorner;
integer flying;

default
{
state_entry()
{
//initialise the variables.
OWNER = llGetOwner();
regioncorner = llGetRegionCorner();

FLYING = FALSE;
llSetTimerEvent(2);
}
timer()
{
//checks if user is flying, and make him phantom if flying
//non phantom if not.
flying = llGetAgentInfo(OWNER) & AGENT_FLYING;
newregioncorner = llGetRegionCorner();
if (regioncorner != newregioncorner)
regioncorner = newregioncorner, FLYING=FALSE; //*should* work...
if (flying != FLYING)
llVolumeDetect(FLYING = flying);
}
on_rez(integer a)
{
OWNER = llGetOwner();
}
}
_____________________
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
Logan Bauer
Inept Adept
Join date: 13 Jun 2004
Posts: 2,237
Another way
11-08-2004 20:21
FYI, I was able to get the same results (I.E. move through walls, for all intensive purposes and for as far as I could tell, my AV was phantom). I made a block without physics. I took a vehicle script, removed the parts where it called for the vehicle to move and put llSetPos which is for non-physical object movement instead. It worked fine, and I had a "non-physical vehicle"... Which I quickly learned could fly right through my house. :eek:
Cross Lament
Loose-brained Vixen
Join date: 20 Mar 2004
Posts: 1,115
11-08-2004 20:45
Hee, yeah... non-physical objects don't tend to worry about collisions and stuff, when they move. It's kinda akin to sitting on a box, then going into edit mode and dragging the box through a wall. :D
_____________________
- Making everyone's day just a little more surreal -

Teeple Linden: "OK, where did the tentacled thing go while I was playing with my face?"
1 2