Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

My buddy has a 3-headed dragon. Can i be one of the heads?

Patric Styrian
Registered User
Join date: 26 Nov 2006
Posts: 27
01-30-2007 15:29
That is basically my question.

My buddy says his 3-headed dragon will be able to talk to each other('s heads) once he gets the hang of the animation. I asked him what he would be talking about with himself, and he didn't know. So that is my inspiration for me being one of the 'heads.'

Thank you for your consideration.
Porky Gorky
Temperamentalalistical
Join date: 25 May 2004
Posts: 1,414
01-30-2007 15:48
Think you need to lay off of the mushrooms mate.
Ceera Murakami
Texture Artist / Builder
Join date: 9 Sep 2005
Posts: 7,750
01-30-2007 15:56
Hummm.

Well... Maybe.

There are animations that allow one avatar to carry another one.

If the dragon was designed so that the main avatar puts on his piece, and then the second avatar wears the third head and then 'gets on' the pose that allows the first to carry him...

It would be a very complex custom design, but technically I suppose it could be done, allowing each additional 'head' to be controlled by a 'rider'. It would probably not look right with out 'a full crew', however.

If you ever manage to make it work, do let us know! Good luck!
_____________________
Sorry, LL won't let me tell you where I sell my textures and where I offer my services as a sim builder. Ask me in-world.
Mickey McLuhan
She of the SwissArmy Tail
Join date: 22 Aug 2005
Posts: 1,032
01-30-2007 16:15
You probably could do it with, like, a non-physical vehicle thingie, much like the "Saddle" attachment ( I think that's how it's done... someone correct me if I'm wrong).

It'd be tricky, but doable.
_____________________

*0.0*

Where there's smoke, there isn't always fire. It might just be a particle display. ;-)
-Mari-

Psyra Extraordinaire
Corra Nacunda Chieftain
Join date: 24 Jul 2004
Posts: 1,533
01-30-2007 16:19
Use a relayer script and basically, you will physically be there with the dragon seperately but you'll be able to make the object the relayer script is in talk by simply preceding your commands with the channel number the command works on.

Examples for a "channel 8 relayer" in the object named 'Bobby':

TYPE: /8 Hi there!
OUTPUTS: Bob: Hi there!

TYPE: /8 /me waves!
OUTPUTS: Bob waves!

CODE


// Change this value to change the channel this item repeats on.
integer LISTENCHANNEL = 8 ;

key owner ;

default
{
state_entry()
{
owner = llGetOwner() ;
llListen( LISTENCHANNEL, "", owner, "" ) ;
}

listen( integer chan, string name, key id, string message )
{
llSay( 0, message ) ;
}
}


I'm actually a really lousy coder, I don't know if that will work. It may only work for the owner itself.... that's why I didnt force an llResetScript, since sometimes it does not affect it. I'm sure someone helpful will correct me. ^^
_____________________
E-Mail Psyra at psyralbakor_at_yahoo_dot_com, Visit my Webpage at www.psyra.ca :)

Visit me in-world at the Avaria sims, in Grendel's Children! ^^
Kermitt Quirk
Registered User
Join date: 4 Sep 2004
Posts: 267
01-30-2007 19:12
You could also add llSetObjectName(name) just before the llSay call. Then when the head speaks the chat text will show the name of the person who sent the message to channel 8, instead of the chat looking like it just came from Object. Also, You're right Psyra that your code will only work for the owner because you've specified the owner key in the llListen call.

Here's a slightly modified version of that code that will listen to anyone, and with the extra name function in it. If you wanted to have it only listen to specific avatars then things will get a bit trickier. This code also restores the original name of the prim after the chat has been sent.
CODE
// Change this value to change the channel this item repeats on.
integer LISTENCHANNEL = 8 ;

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

listen( integer chan, string name, key id, string message )
{
string oldObjectName = llGetObjectName();
llSetObjectName( name );
llSay( 0, message );
llSetObjectName(oldObjectName);
}
}