Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Help with "hidden" communications

Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 11:14
Ok, heres the thing. I'm working on a flight helmet constantly adding features and I just got requested by my higher-up about reworking it so when you say something it Shouts it on some obscure channel. Another helmet set to the same "frequency" would pick up this shout and repeat the message said using llOwnerSay to another person within shoutrange that was wearing the same type of helmet and on the same "frequency" as the person who broadcasted as well as show the name of the person who broadcasted. Also a way to set the frequency would be a good idea too. Only looking for tips on how to do this and not someone to full out code something for it (unless you want to ^_^)

Also realized that this might need some form of code to catch the avatars name thats speaking to pass on to the channel....

If I do get this up and working I'll release it to the Scripting Library and the LSL Wiki to freely distribute... god I can just see everybody making walkie-Talkies that actually work now... lol
Feel free to message me In-Game as well under the name, Kator Bergson
_____________________
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
11-10-2006 12:15
From: Kator Bergson
Ok, heres the thing. I'm working on a flight helmet constantly adding features and I just got requested by my higher-up about reworking it so when you say something it Shouts it on some obscure channel. Another helmet set to the same "frequency" would pick up this shout and repeat the message said using llOwnerSay to another person within shoutrange that was wearing the same type of helmet and on the same "frequency" as the person who broadcasted as well as show the name of the person who broadcasted. Also a way to set the frequency would be a good idea too. Only looking for tips on how to do this and not someone to full out code something for it (unless you want to ^_^)

Also realized that this might need some form of code to catch the avatars name thats speaking to pass on to the channel....


Is the unit going to be hud, Dialog or chat controlled?
The actual means of control will change the structure of the code slightly.

Heres a very simple idea
CODE

integer CommsChannel;

integer BroadcastChannel;
integer BroadcastListen;


key Owner;
string OwnerName;

ChangeBroadcastChannel(integer NewChannel)
{
llOwnerSay("Switching Bradcast net to " + (string)NewChannel);
if(BroadcastListen != 0)llListenRemove(BroadcastListen);
BroadcastChannel = NewChannel;
BroadcastListen = llListen(BroadcastChannel,"","","");
}

Help()
{
llOwnerSay("To switch talk use /" + (string)CommsChannel + "what ever you want to say");
llOwnerSay("To switch Channels use /" + (string)CommsChannel + "channel=xxxxx where xxxxx is the desired channel.");
}

default
{
state_entry()
{
if(CommsChannel == 0)CommsChannel = (integer)llFrand(50)+50;
if(BroadcastChannel == 0)ChangeBroadcastChannel( -(integer)(llFrand(32768)+1000) );
Owner = llGetOwner();
llOwnerSay("Comms Unit Online. Use Channel " + (string)CommsChannel + " to control. type Help for details");
llListen(CommsChannel,"",Owner,"");
llListen(BroadcastChannel,"","","");
}

listen(integer channel, string name, key id, string message)
{
if(channel == BroadcastChannel)
{
llOwnerSay(message);
}
else
{
if("help" == llToLower(message))
{
Help();
}
else
{
list ldata = llParseString2List(message, ["="], [""]);
string command = llToLower(llList2String(ldata,0) );
string value = llList2String(ldata,1);
if("channel" == command)
{
integer newchannel = (integer)value;
if(newchannel > 0) newchannel = - newchannel;
if(newchannel < 0) ChangeBroadcastChannel(newchannel);
}
else
{
string str = OwnerName + " : " + message;
llShout(BroadcastChannel,str);
}
}
}
}
}



The above is totally untested by the way.....
Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 12:27
chat controlled, basically a command to turn it "on" will be done on a channel, after that it uses a listen on channel 0 and picks up all said by the owner and relays that to other helmets in the area which then either llWhisper with the persons name in the front or use a llOwnerSay
Ok, noticed that it makes alot of random channels for itself, technically I need it to listen on just one channel, for the on/off switch. Once turned on it listens to speech said on channel 0 from the owner only.
then takes that, broadcasts it on a default channel. Perhaps 300. and all other "talkers" hear it and relay that message to the wearer if thier unit is turned on as well

BTW Newgate, You rock.
Ok, finally remembered to just set the integers to somethin like
integer CommsChannel=3;
to set a actual stable channel, after that the broadcast channel can be set to anything...

<edit>
Doesn't appear that OwnerName is passing through to llOwnerSay for some odd reason, this is what I see with my channel listener...


[12:49] 3-Kator Bergson(Telepathy): test
[12:49] 10-networked talker test(Kator Bergson)(Telepathy): : test
[12:49] networked talker test: : : test
_____________________
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
11-10-2006 13:23
From: Kator Bergson
chat controlled, basically a command to turn it "on" will be done on a channel, after that it uses a listen on channel 0 and picks up all said by the owner and relays that to other helmets in the area which then either llWhisper with the persons name in the front or use a llOwnerSay
Ok, noticed that it makes alot of random channels for itself, technically I need it to listen on just one channel, for the on/off switch. Once turned on it listens to speech said on channel 0 from the owner only.
then takes that, broadcasts it on a default channel. Perhaps 300. and all other "talkers" hear it and relay that message to the wearer if thier unit is turned on as well

BTW Newgate, You rock.

I hardly think 2 is alot!!!
Reason fro channels it to allow something like normal conversation and still use the comms set in private. I hate open mic / channel 0 chatter.

BraoadcastChannel, well you did say you wanted to be abel to change it so ...

CODE

integer CommsChannel = 0;

integer BroadcastChannel = 300;
integer BroadcastListen = 0;


key Owner;
string OwnerName;

On()
{
llOwnerSay("Switching On.");
if(BroadcastListen != 0)llListenRemove(BroadcastListen);
BroadcastListen = llListen(BroadcastChannel,"","","");
}

Off()
{
if(BroadcastListen != 0)llListenRemove(BroadcastListen);
BroadcastListen = 0;
llOwnerSay("Switching Off.");
}

Help()
{
llOwnerSay("To switch on use /on to turn on");
llOwnerSay("To switch off use /off to turn off");
llOwnerSay("To switch talk use /what ever you want to say");
}

default
{
state_entry()
{
Owner = llGetOwner();
OwnerName = llKey2Name(Owner);
llOwnerSay("Comms Unit Online. type /Help for details");
llListen(CommsChannel,"",Owner,"");
}

listen(integer channel, string name, key id, string message)
{
if(channel == BroadcastChannel)
{
llOwnerSay(message);
}
else
{
string strlower = llToLower(message);
if("help" == strlower)
{
Help();
}
else if("on" == strlower)
{
On();
}
else if("off" == strlower)
{
Off();
}
else if(BroadcastListen != 0)
{
string str = OwnerName + " : " + message;
llShout(BroadcastChannel,str);
}
}
}
}
Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 13:38
OwnerName = llGetOwnerName();
llGetOwnerName is not a function however llGetOwnerKey is.
Something is broke in this first variation, I'm gonna drop llWhispers in it to see where its failing.

Apparently it halts right off the bat
state_entry()
{
Owner = llGetOwner();
OwnerName = llGetOwner();
llWhisper(0,"1";);
llOwnerSay("Comms Unit Online. type /Help for details";);
llListen(CommsChannel,"",Owner,"";);
llWhisper(0,"2";);
}
Could be my own fault messin with the GetOwner bit but I dunno... I've never quite understood how that worked but it seemed the best recourse. I tried llDetectedOwner and got nowhere with that.
_____________________
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
11-10-2006 13:49
Yeah sorry, corrected it.
Should have been

OwnerName = llKey2Name(Owner);

You must have been reading as I was correcting!!!
Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 14:06
New issue though I think I might be able to put the two scripts together, but its echoing back. Need a call for it that doesnt repeat its own owners chat text but only broadcasts it.
I'm gonna try to put back in the ability to switch channels.
gave one to a friend and it thinks I'm still the owner when its rezzed. so I'm gonna try something daring here in a sec.
_____________________
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
11-10-2006 14:16
From: Kator Bergson
New issue though I think I might be able to put the two scripts together, but its echoing back. Need a call for it that doesnt repeat its own owners chat text but only broadcasts it.

Each script was completely stand alone. I recoded the second in line with what you said you wanted....

Well scripts shouldnt hear their own chat, but I havent tried either of the scripts in world, just coding them up cold.

try adding the following to the listen to stop the self spamming

CODE

if(channel == BroadcastChannel)
{
integer check = llSubStringIndex(message,OwnerName)
if(-1 == check) llOwnerSay(message);
}

From: Kator Bergson
I'm gonna try to put back in the ability to switch channels.
gave one to a friend and it thinks I'm still the owner when its rezzed. so I'm gonna try something daring here in a sec.


add the following.

CODE

changed(integer change) { if (change & CHANGED_OWNER) llResetScript();}
Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 14:33
so far this is what I've made out of the stand-alone scripts you have done.
CODE

integer CommsChannel=1;

integer BroadcastChannel=300;
integer BroadcastListen;


key Owner;
string OwnerName;

ChangeBroadcastChannel(integer NewChannel)
{
llOwnerSay("Switching Bradcast net to " + (string)NewChannel);
if(BroadcastListen != 0)llListenRemove(BroadcastListen);
BroadcastChannel = NewChannel;
BroadcastListen = llListen(BroadcastChannel,"","","");
}

Help()
{
llOwnerSay("To turn the unit on use/" + (string)CommsChannel + "on");
llOwnerSay("To shut the unit off use/" + (string)CommsChannel + "off");
llOwnerSay("To switch talk use /" + (string)CommsChannel + "what ever you want to say");
llOwnerSay("To switch Channels use /" + (string)CommsChannel + "channel=xxxxx where xxxxx is the desired channel.");
}

On()
{
llOwnerSay("Switching On.");
if(BroadcastListen != 0)llListenRemove(BroadcastListen);
BroadcastListen = llListen(BroadcastChannel,"","","");
}

Off()
{
if(BroadcastListen != 0)llListenRemove(BroadcastListen);
BroadcastListen = 0;
llOwnerSay("Switching Off.");
}
default
{
state_entry()
{
if(CommsChannel == 0)CommsChannel = (integer)llFrand(50)+50;
if(BroadcastChannel == 0)ChangeBroadcastChannel( -(integer)(llFrand(32768)+1000) );
Owner = llGetOwner();
OwnerName = llKey2Name(Owner);
llOwnerSay("Comms Unit Online. Use Channel " + (string)CommsChannel + " to control. type Help for details");
llListen(CommsChannel,"",Owner,"");
}
changed(integer change) { // something changed
if (change & CHANGED_OWNER)
{
llOwnerSay("Detected New User, resetting");
llResetScript();
}
}


listen(integer channel, string name, key id, string message)
{
if(channel == BroadcastChannel)
{
llOwnerSay(message);
}
else
{
string strlower = llToLower(message);
if("help" == strlower)
{
Help();
}
else if("on" == strlower)
{
On();
}
else if("off" == strlower)
{
Off();
}
else if(BroadcastListen != 0)
{
string str = OwnerName + " : " + message;
llShout(BroadcastChannel,str);
}
}
}
}

though it seems now that its not switching channels properly or its just resetting everytime the broadcast channel is reset...
_____________________
Llauren Mandelbrot
Twenty-Four Weeks Old.
Join date: 26 Apr 2006
Posts: 665
11-10-2006 14:36
Your php tags should use [] instead of <>.
_____________________
  1. ninjafoo Ng Says:
    November 4th, 2006 at 7:27 am
    We all love secondlife so much and were afraid that the magic will end, nothing this good can ever last…. can it?

Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
11-10-2006 14:38
Kator, please use square brackets around the lsl code
[ php ] code [ / php ]
with out the spaces
Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
Added code
11-10-2006 14:39
this time you spotted it while I was editing it, so used coding websites and crap as well as being on forums and not sleeping for 3 days... yeah... stuff gets mixed up.
Is that better?
CODE

integer CommsChannel=666;
integer CommsOnChannel=0;
integer OnOffChannel=3;
integer BroadcastChannel=300;
integer BroadcastListen;

key Owner;
string OwnerName;

ChangeBroadcastChannel(integer NewChannel)
{
llOwnerSay("Switching Bradcast net to " + (string)NewChannel);
if(BroadcastListen != 0)llListenRemove(BroadcastListen);
BroadcastChannel = NewChannel;
BroadcastListen = llListen(BroadcastChannel,"","","");
}

Help()
{
llOwnerSay("To turn the unit on use/" + (string)OnOffChannel + "on");
llOwnerSay("To shut the unit off use/" + (string)OnOffChannel + "off");
llOwnerSay("To send a message use normal chat");
llOwnerSay("To switch Channels use /" + (string)OnOffChannel + "channel=xxxxx where xxxxx is the desired channel.");
}

On()
{
llOwnerSay("Switching On.");
if(BroadcastListen != 0)llListenRemove(BroadcastListen);
BroadcastListen = llListen(BroadcastChannel,"","","");
if(CommsChannel != 666)llListenRemove(CommsChannel);
CommsChannel = llListen(CommsOnChannel,"","","");
}

Off()
{
if(BroadcastListen != 0)llListenRemove(BroadcastListen);
BroadcastListen = 0;
if(CommsChannel != 666)llListenRemove(CommsChannel);
CommsChannel = 666;
llOwnerSay("Switching Off.");
}
default
{
state_entry()
{
if(CommsChannel == 0)CommsChannel = (integer)llFrand(50)+50;
if(BroadcastChannel == 0)ChangeBroadcastChannel( -(integer)(llFrand(32768)+1000) );
Owner = llGetOwner();
OwnerName = llKey2Name(Owner);
llOwnerSay("Comms Unit Online. Use Channel " + (string)OnOffChannel + " to control. type Help for details");
llListen(OnOffChannel,"",Owner,"");
}
changed(integer change) { // something changed
if (change & CHANGED_OWNER)
{
llOwnerSay("Detected New User, resetting");
llResetScript();
}
}


listen(integer channel, string name, key id, string message)
{
if(channel == BroadcastChannel)
{
llOwnerSay(message);
}
else
{
string strlower = llToLower(message);
if("help" == strlower)
{
Help();
}
else if("on" == strlower)
{
On();
}
else if("off" == strlower)
{
Off();
}
else if(BroadcastListen != 0)
{
string str = OwnerName + " : " + message;
llShout(BroadcastChannel,str);
}
}
}
}

There, nasty hack of it but it now listens to commands on channel 3 for on/off/channel commands. Once turned on it begins listening to channel 0 for spoken text, once off I belive it stops listening to that channel... Mainly this is for Active wargames and Combat fighting when people cant waste that extra two seconds to type in a channel number after they turn on the unit.
_____________________
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
11-10-2006 15:00
Well I love how you even kept myspelling mistakes :)

You dont need the
CODE
if(BroadcastChannel == 0)ChangeBroadcastChannel( -(integer)(llFrand(32768)+1000) );

line as it is set to 300 by default.

The functions can also be optomsied a bit as they duplicate functionality.
You dont appear to be allowing for channel changes still, you never process the channel command

Kator Your llListenRemoves are incorrect. You remove the Listener not the channel.
Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 15:05
perhaps you can point out the nasty parts of the code? I'm still pretty new to LSL scripting but when I see other code I grasp it quite quickly
[edit]
I basically tried to handle the on/off switch for the open channel the same way you did the broadcast channel. However I'm still having trouble tracking down it not switching broadcast channel and breaking upon it needing to be turned back on...
_____________________
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
11-10-2006 15:53
Well not sure why you where doing the channel stuff the way you where.
If you unlisten the Comms Channel then it will obviously stop working as it isnt listening anymore.

Here is a re-Newgy-ised version

CODE
integer CommsChannel=4; 


integer BroadcastChannel=300;
integer BroadcastListen = 0;

key Owner;
string OwnerName;


Help()
{
llOwnerSay("To turn the unit on use/" + (string)CommsChannel + "on");
llOwnerSay("To shut the unit off use/" + (string)CommsChannel + "off");
llOwnerSay("To send a message use normal chat");
llOwnerSay("To switch Channels use /" + (string)CommsChannel + "channel=xxxxx where xxxxx is the desired channel.");
}

On()
{
Off();
llOwnerSay("Broadcasting On " + (string)BroadcastChannel);
BroadcastListen = llListen(BroadcastChannel,"","","");
}

Off()
{
if(BroadcastListen != 0)llListenRemove(BroadcastListen);
BroadcastListen = 0;
}

default
{
state_entry()
{
Owner = llGetOwner();
OwnerName = llKey2Name(Owner)+ " : ";
llOwnerSay("Comms Unit Online. Use Channel " + (string)CommsChannel + " to control. type Help for details");
llListen(CommsChannel,"",Owner,"");
}

changed(integer change)
{
// something changed
if (change & CHANGED_OWNER)
{
llOwnerSay("Detected New User, resetting");
llResetScript();
}
}


listen(integer channel, string name, key id, string message)
{
if(channel == BroadcastChannel)
{
integer check = llSubStringIndex(message,OwnerName);
if(check < 0) llOwnerSay(message);
}
else if(channel == CommsChannel)
{
string strlower = llToLower(message);
if("help" == strlower)
{
Help();
}
else if("on" == strlower)
{
On();
}
else if("off" == strlower)
{
llOwnerSay("Switching Off.");
Off();
}
else
{
list ldata = llParseString2List(message, ["="], [""]);
string command = llToLower(llList2String(ldata,0) );
string value = llList2String(ldata,1);
if("channel" == command)
{
integer newchannel = (integer)value;
if(newchannel > 0) newchannel = - newchannel;
if(newchannel < 0)
{
BroadcastChannel = channel;
On();
}
}
}
}
else if(0 == channel)
{
if(BroadcastListen != 0)
{
string str = OwnerName + message;
llShout(BroadcastChannel,str);
}
}
}
}
Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 16:08
I was basically trying to conquer the possibility of using a channel for the on/off/channel command but for transmitting it would switch to channel 0 for sending messages after it was turned on. Thats why I hacked it so horribly... heh
_____________________
Llauren Mandelbrot
Twenty-Four Weeks Old.
Join date: 26 Apr 2006
Posts: 665
11-10-2006 16:17
I`ve been following this with interest, and I thought I noted a missing feature.

Kator asked for the name of the speaker to be presented with the message, and I saw no provision for this. After reviewing your code, I see you did it in an entirely different manner than I had in mind.

My idea was to change the name of the helmet to the owner`s name, before shouting, and change it back after. When recieving the message from another helmet, the helmet would change its name to the name of the shouting helmet --thus matching the name of the original speaker-- before speaking the message to the owner, and again change it back after speaking.

_____________________
  1. ninjafoo Ng Says:
    November 4th, 2006 at 7:27 am
    We all love secondlife so much and were afraid that the magic will end, nothing this good can ever last…. can it?

Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 17:06
Yeah, that was the old script that would change the microphone part of the helmet to the users name then shout on a normal channel to other people, but we are planning on using this for special operations and a shouting helmet is rather stupid in that aspect yah know?
_____________________
Llauren Mandelbrot
Twenty-Four Weeks Old.
Join date: 26 Apr 2006
Posts: 665
11-10-2006 17:52
I`m confused.

I never said anything about what listen channel the helmet would shout on. I had assumed that it would shout [in the user`s name] on a "private" channel, not on public-chat channel 0, exactly as the script already does.

If I were to do this, I would make the helmet change its name dynamicaly, unless there were good reason to not do so.

With my idea, only wearers of the helmet would hear the shouting, and they would hear it as normal object chat, but under the name of the original speaker:

Fred Avitar says "Alpha Foxtrot Charlie, I`m in position!"
Fred Avitar`s "Helmet with built-in communications" hears this.
Fred Avitar`s helmet changes its own name to "Fred Avitar".
Fred Avitar`s helmet shouts "Alpha Foxtrot Charlie, I`m in position!"
Fred Avitar`s helmet changes its own name back to "Helmet with built-in communications".
Joe Avitar`s helmet hears Fred Avitar`s helmet shout.
Joe Avitar`s helmet changes its own name to "Fred Avitar".
Joe Avitar`s helmet uses llOwnerSay() to say "Alpha Foxtrot Charlie, I`m in position!"
Joe Avitar`s helmet changes its own name back to "Helmet with built-in communications".

Fred Avitar sees:
[12:34] You: Alpha Foxtrot Charlie, I`m in position!

Joe Avitar sees:
[12:34] Fred Avitar: Alpha Foxtrot Charlie, I`m in position!

People within chat range of Fred see:
[12:34] Fred Avitar: Alpha Foxtrot Charlie, I`m in position!

Nobody else sees anything at all.

Everyone who hears Fred direct sees the chat in avitar color.
Everyone who hears Fred through a helmet sees the chat in object color.

Does this work for you?
_____________________
  1. ninjafoo Ng Says:
    November 4th, 2006 at 7:27 am
    We all love secondlife so much and were afraid that the magic will end, nothing this good can ever last…. can it?

Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 18:04
well I meant the first version of my helmet used a generic shouter script and was pretty worthless...
_____________________
Llauren Mandelbrot
Twenty-Four Weeks Old.
Join date: 26 Apr 2006
Posts: 665
11-10-2006 18:09
So, what do you think of my idea? It would be a snap to integrate into Newgie`s script.
_____________________
  1. ninjafoo Ng Says:
    November 4th, 2006 at 7:27 am
    We all love secondlife so much and were afraid that the magic will end, nothing this good can ever last…. can it?

Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 19:00
It's possible, but that forces a change in the object every time which in effect can cause lag if communications is overly used. The way that the other one was done just checks to see who owns the object and goes with that name only responding to commands given to it By the owner.
seems that its not just listening to commands from the helmet owner, but anybody else as well... trying to squash this bug but getting nowhere and getting sleepy... FINALLY! lol... anyway, I'll be back in the morning to try to squash this dang thing.
_____________________
Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 21:10
dsfsadfsa
_____________________
Llauren Mandelbrot
Twenty-Four Weeks Old.
Join date: 26 Apr 2006
Posts: 665
11-10-2006 22:06
Eep, I wasn`t thinking about the lag aspect.:o As for the bug you mentioned, the only thing that needs doing there is to set the llListen() call to filter the command channel on the owner`s ID. You`re currently using

BroadcastListen = llListen(BroadcastChannel,"","","");

in function On() and

llListen(CommsChannel,"",Owner,"");

in event state_entry(),
if I`m reading the script right, and the script as posted is current. This is correct. After reviewing the script, I see one major flaw with Newgy`s latest script. It never sets up a listen for the open chat to transmit to other helmets. I would suggest adding

ChatListen = llListen(0,"","","");

to On() and

llListenRemove(ChatListen);

to Off(). You will also need to add

integer ChatListen;

to the declarations at the top.

If you`ve been messing with your copy of Newgy`s script in an attempt to debug it, I suggest you add these to a fresh copy, without the changes you`ve made. Everything else Newgy wrote looks correct.
_____________________
  1. ninjafoo Ng Says:
    November 4th, 2006 at 7:27 am
    We all love secondlife so much and were afraid that the magic will end, nothing this good can ever last…. can it?

Kator Bergson
I'm freakin out man!
Join date: 24 Nov 2005
Posts: 125
11-10-2006 23:06
Well at least by the 2nd or third incarnation I added a auto-update script to the dang thing... lol so whenever I tweak it to a point my 3 customers to the helmet (they arent paying for the script thats open source ^_^ but the time I took to painstakingly craft the prims and scripts that make up the rest of the helmet... yeah...) get updated with a new copy everytime I tweak they become by gueina pigs*insert evil psychotic grin here*.
But I'll try that trick out and see what goes when I get back on tomorrow, as for now, its 23:06 and time for me to go to bed.
_____________________
1 2 3