Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Ugly Sign/Billboard Hider

Yiffy Yaffle
Purple SpiritWolf Mystic
Join date: 22 Oct 2004
Posts: 2,802
01-23-2006 01:43
Ever want to Hide a sign or billboard? Since the lindens cant do anything to salve the problem i've made this billboard hider that scans the area for the billboard or anyone with the same last name *cough*. Then it waits till they arent around and covers their sign with a prim. I know this isnt the best way to handle it, but some of those signs are just too dang ugly and very bad. I just hope posting this dont violate any rules. After all there are other uses for this script. :p

Billboard Hider 1.0
-----
Instructions:

Create a new prim and place it over the billboard you wish to hide and resize it to fit over it and give it a name. Like BillboardHider or something (you may texture it if needed). Then copy the coordinates X Y and Z and paste them into the BBHider script in the following line...

vector location = <132.901,15.450,40.573>;

Now put the BBHider script in the prim and take it to your inventory. Create another new prim and put the BBRezer Script inside it. Open the BBRezer script and change the names in the following lines...

string FULLNAME = "Firstname Lastname"; <----- Persons name you wish to scan for.
string LASTNAME = "Linden"; <----- Other people you wish to scan for who share the same last name.
string PRIMNAME = "BillboardHider"; <----- The name of the Object you plan to rez that will hide the billboards.
integer sensorDistance = 96; <----- The sensor range in meters.

Now your ready to activate the billboard hider. Just click on the rezzer prim and it will rez the hider and send it to the coordinates of the billboard. The rezzer will then repeat a 5 second sensor timer to track the people you listed within its range. When those people come in range the rezzer will tell the hider to delete itself. It will not spawn a new hider untill it no longer sees those people in its range. Your Done now. Just make sure not to get in trouble. :)

BBRezer Script
CODE

string FULLNAME = "Firstname Lastname";
string LASTNAME = "Linden";
string PRIMNAME = "BillboardHider";
integer sensorDistance = 96;

string avFirstName;
string avLastName;
string avTarget;
string avName;
integer power;
integer mode;

default
{
state_entry()
{
power = FALSE;
mode = FALSE;
}
touch_start(integer total_number)
{
if(llDetectedKey(0) == llGetOwner())
{
if(!power)
{
llSetTimerEvent(5);
llOwnerSay("On");
llSensor("", NULL_KEY, AGENT, sensorDistance, PI);
power = TRUE;
}
else
{
llSetTimerEvent(0);
llOwnerSay("Off");
power = FALSE;
}
}
}
on_rez( integer startcode )
{
llResetScript();
}
link_message(integer sender_num, integer num, string message, key id)
{
if(message == "Nothing")
{
mode = FALSE;
llSensorRemove();
llRezObject(PRIMNAME,llGetPos(),<0,0,0>,ZERO_ROTATION,1);
}
if(message == "Found")
{
mode = FALSE;
llSensorRemove();
}
if(message == "check")
{
mode = TRUE;
llSensorRemove();
llSensor(PRIMNAME, NULL_KEY, ACTIVE + SCRIPTED + PASSIVE, sensorDistance, PI);
}
}
no_sensor()
{
if(!mode)
{

}
else
{
llMessageLinked(LINK_SET,0,"Nothing",NULL_KEY);
}
}
sensor(integer total_number)
{
if(!mode)
{
integer i = 1;
vector pos;
rotation rot;
if (llSubStringIndex(llToLower(llDetectedName(i)), avTarget) >= 0 && llDetectedKey(i) != llGetOwner())
{
avName = llDetectedName(i);
avFirstName = llGetSubString(avName, 0, llSubStringIndex(avName," ") - 1);
avLastName = llGetSubString(avName, llSubStringIndex(avName," ") + 1, llStringLength(avName));
if ((avName == FULLNAME)||(avLastName == LASTNAME))
{
llShout(5000,"DR");
}
else
{
llMessageLinked(LINK_SET,0,"check",NULL_KEY);
}
}
}
else
{
llMessageLinked(LINK_SET,0,"Found",NULL_KEY);
}
}
timer()
{
llSensor("", NULL_KEY, AGENT, sensorDistance, PI);
}
}


BBHider Script
CODE

vector location = <132.901,15.450,40.573>;

default
{
on_rez( integer startcode )
{
llResetScript();
}
state_entry()
{
llListen(5000,"","","");
vector pos = llGetPos();
while (pos != location)
{
llSetPos(location);
pos = llGetPos();
}
}
listen( integer channel, string name, key id, string message )
{
if(llGetOwnerKey(id) == llGetOwner())
{
if( message == "DR" )
{
llDie();
}
}
}
}
_____________________
Nada Epoch
The Librarian
Join date: 4 Nov 2002
Posts: 1,423
Legality of the script
02-09-2006 08:03
It took so long to validate this script because I was waiting to hear back from the Lindens about its legality.
  1. It is perfectly legal to post the script to the forums
  2. It is a violation of the TOS to use this script on the grid.
_____________________
i've got nothing. ;)
Nada Epoch
The Librarian
Join date: 4 Nov 2002
Posts: 1,423
Discussion Thread
02-09-2006 08:05
/54/c0/87305/1.html
_____________________
i've got nothing. ;)
Corporal Candour
Registered User
Join date: 3 Sep 2005
Posts: 38
03-19-2006 16:40
Wow...creative...but I won't use it...it sounds terribly illegal ;)
Kazuma Onizuka
Registered User
Join date: 23 Apr 2004
Posts: 13
06-14-2006 01:24
From: Yiffy Yaffle
copy the coordinates X Y and Z and paste them into the BBHider script in the following line...

vector location = <132.901,15.450,40.573>;
[/CODE]

Hey Yiffy, think ya can add a way to set the prims rotation as well? I can see many more uses for this like using a prim to say make a sign that shows "not home" at your home for example.