Original creations in Second Life by Oggy Fink.

Sunday, October 16, 2011

Photo projector 1.0

A new creation is available at Oggy's scripted items : a (nice) photo projector. You can use it whenever you want to display your photographic memories, or to decorate a nice club, or to show off some of your items in your shop...

The displaying of photos is done randomly with an adjustable delay, and switching between two photos is done with a nice crossfade effect. The number of photos you can put into it is virtually unlimited.

This projector has a number of features, among which :
  • A control menu that allows a user (if allowed) to switch the projector on or off, and access to the administrator menu
  • An administrator menu which allows you to adjust the screen size (up to 64 x 64m) and ratio (eg 4/3, 16/9...), the lightbeam length (up to 50m), the beam colors (9 customizable colors and one color-cycling mode)
  • A configuration notecard to set numerous options, like :
    • user policy (open, allow, ban), allowed or banned users,
    • allowed administrators,
    • time each photo lasts on screen,
    • how fast and smooth the crossfade effect is when switching photos,
    • the custom colors for the light beam,
    • how often the lightbeam changes color when in color cycle mode,
    • how fast and smooth the color transition is,
    • default sizes for the screen and the beam.
The projector is copiable and modifiable, the scripts are only copiable. Feel free to ask for enhancements and new features, i'm open to all suggestions and constructive criticism : oggy.fink@gmail.com or send a notecard in world.

Monday, September 19, 2011

ShowHide-Multi script

Since the recent release of the ShowHide script, some people have asked me for a way to make some prims of an object vanish, but not others.

Guess what ? Here it comes !

It's called ShowHide-Multi. The "Multi" part means that you can use several copies of the script in several prims of your object to make them disappear at the same time. The script is either controlled by chat over a private channel, or by link messages.

Private chat will work from a distance and may be issued directly by the viewer but can cause some server lag if many scripts are listening. Link messages, on the other hand, will cause less lag but will work only among the prims of a same object. Moreover, link messages require a helper script.

All is customizable, and a control script is available to emit either private chat or link messages. Please be sure to read the options available at the beginning of both scripts.

Again, i warn you against using this script on partially transparent prims, because the alpha setting of all faces of the prim will be overwritten by the vanishing manoeuvers :) (usual disclaimers apply).

Here is the ShowHide-Multi script to be placed in every prim that is to disappear.
// ShowHide-Multi script by Oggy Fink

// text to set above the root prim
string text="here";    // modify me, use "" for no text
vector color=<1.0,1.0,1.0>;    // color of the text

// modifiable parameters

integer channel = 8;    // channel number
string showcmd="SHOW";    // show command - use uppercase only
string hidecmd="HIDE";    // hide command - use uppercase only

integer listen_active=TRUE;	// should I listen to chat commands in addition to link messages?

// do not touch below

show() {
	llSetAlpha(1.0,ALL_SIDES);
	llSetText(text,color,1.0);
}

hide() {
	llSetAlpha(0.0,ALL_SIDES);
	llSetText("",color,1.0);
}

interpret(string message) {	// detects if it is a show or hide command and reacts
	string m=llToUpper(llStringTrim(message,STRING_TRIM));
	if (m==showcmd) {
		show();
	} else if (m==hidecmd) {
		hide();
	}
}

default {
	state_entry() {
		if (listen_active) llListen(channel,"",NULL_KEY,"");
		show();
	}

	link_message(integer sender_number, integer number, string message, key id) {
		if (number!=channel) { // the channel number acts as a key here
			return;
		}
		interpret(message);
	}
	
	listen(integer channel, string name, key id, string message) {
		interpret(message);
	}
}
Then the ShowHide-Multi control script :
// www.lsleditor.org  by Alphons van der Heijden (SL: Alphons Jano)
integer channel=8;    // channel number / link key

string showtext="Show !";
string hidetext="Hide !";
vector color=<1.0,0.5,0.0>;    // color for the floating text : . Use <1.0,1.0,1.0> for white

string showcmd="SHOW";
string hidecmd="HIDE";

// the following parameter sets if the command should be "said" (0), "whispered" (1), "shouted" (2), "regionsaid" (3) or sent as a link message (4)
integer emittype=0;	// edit accordingly


// do not modify below
integer visible=TRUE;

emit(string m) { // send a command
	if (emittype==0) {
		llSay(channel,m);
	} else if (emittype==1) {
		llWhisper(channel,m);
	} else if (emittype==2) {
		llShout(channel,m);
	} else if (emittype==3) {
		llRegionSay(channel,m);
	} else if (emittype==4) {
		llMessageLinked(LINK_SET,channel,m,NULL_KEY);
	}
}

default {
	state_entry() {
		llSetText(hidetext,color,1.0);
	}

	touch_start(integer total_number) {
		if (visible) {
			emit(hidecmd);
			visible=FALSE;
			llSetText(showtext,color,1.0);
		} else {
			emit(showcmd);
			visible=TRUE;
			llSetText(hidetext,color,1.0);
		}
	}
}
All this is downloadable for free at my marketplace store.

Saturday, September 17, 2011

Unicode Box 3.2

This new item is dedicated to be a chat-helping gadget and, more generally, a tool to convert text from one form to another, with the idea of special unicode characters in mind. Now at Oggy's Scripted Items !

Specifically, using the unicode box or HUD, you can type ordinary text and get cool looking unicode characters as a result. Use it for a variety of purposes :
  • Type "everyone gets to party at <insert club name here>" and get "€♥ℯґ¥øηℯ ℊℯ☂ṧ ☂ø ℘@ґ☂¥ @☂ <insert club name here> !"
  • Ⓤⓢⓔ ⓒⓘⓡⓒⓛⓔⓓ ⓛⓔⓣⓣⓔⓡⓢ (and digits too)
  • ¡ uʍop ǝpısdn ʇuɐʍ noʎ ʇxǝʇ ʎuɐ ǝʇıɹM
  • Maкє уоцґ cнaт lоок cґazу aйd/оґ cооl
  • Usᴇ ɢʀᴇᴀᴛ-ʟᴏᴏᴋɪɴɢ Sᴍᴀʟʟ Cᴀᴘɪᴛᴀʟs ɪɴ ʏᴏᴜʀ ᴘʀᴏғɪʟᴇ
  • Wide letters to make your words clearer :)
  • Ḙṃḅḙḷḷḭṣḥ ẏṍṷṛ ṭḙẋṭ ẉḭṭḥ ḁ ṿḁṛḭḙṭẏ ṍḟ ḙḟḟḙḉṭṣ
You are not limited in the available effects : write and use your own translation tables !

This item comes bundled with 3 objects :
  • An easy-to-use standalone HUD. Wear it and go !
  • A rezzable unicode box, so that several people can use it, either through chat over a private channel or using the remote HUD,
  • A remote HUD, to easily control the unicode box from a distance.
 At any time you can select to whisper or shout instead of just talking, and issue control words like list, status, reset, etc.

All these actions are available as buttons in the HUD and the HUD itself may be iconified to take as little space as possible on your screen. The translation tables used by the HUD are defined in a solid configuration notecard, feel free to design your own ...

Numerous options are available, among which the channel number to use, the command mode (chat, link or both), user policy (who can use the box and who cannot), automatically use the name of the controlling avatar to emit chat...

The HUDs and the box are modifiable and copiable, but the scripts are only copiable. For the techies, full documentation is given on the format of the chat and link messages used to control the box, so that you can either design your own HUD or interface the box with your own objects.

I'll be happy to hear any remark or feature request : please drop me a notecard or send me an email at oggy.fink@gmail.com.

Special thanks to Carisma Alex for helping me testing the whole thing and for the general ideas... ♥♥

The original unicode box artwork uses graphic works from liftarn and Patrick Hoesly released under a creative commons license.

Saturday, August 27, 2011

ShowHide script

Here is a little script I quickly put together. Its job is to make an entire object (a whole link-set) disappear or appear upon "hearing" a command on a private channel. It also takes "care" of hiding and showing the text above the object (but see details below).

This script is very simple but proves useful for hiding simple things like pose balls. Do not use it however for things more complicated, like a house or a tent, because the mechanism the script uses to make the object disappear will alter the alpha (transparency) setting of all faces of all prims in the object, and will make them fully opaque again when reappearing.

If you plan to have this functionnality on objects with partial transparency on some faces, a way more subtle means to do this is required.

The channel number, as well as the SHOW and HIDE commands are customizable via easy parameters at the start of the script. Due to some limitation, the floating text, if any, to be set above the root prim has to be entered in the script too [Technical note : no apparent way of getting the text in a prim]. Currently the script is limitted to setting only the root prim's text (could be done in a different way but, well...). You can also set the color of said text in the parameters.

A second script (ShowHide control) is designed to be placed in an object (like a cube or a poster) to "toggle" the show and hide commands for objects in range that have the first script. That way, you can make all your poseballs appear or disappear at the same time by touching the control. Its parameters (channel and commands) should be the same as those of the ShowHide script.

One last useful tip : by setting the channel parameter to a negative number, you prevent avatars from issuing a direct command over the chat, and only the control script will be useable.

First, the ShowHide script :

// ShowHide script by Oggy Fink

// text to set above the root prim
string text="here";    // modify me, use "" for no text
vector color=<1.0,1.0,1.0>;    // color of the text

// modifiable parameters

integer channel = 8;    // channel number
string showcmd="SHOW";    // show command - use uppercase only
string hidecmd="HIDE";    // hide command - use uppercase only

// do not touch below

show() {
	llSetLinkAlpha(LINK_SET,1.0,ALL_SIDES);
	llSetText(text,color,1.0);
}

hide() {
	llSetLinkAlpha(LINK_SET,0.0,ALL_SIDES);
	llSetLinkPrimitiveParamsFast(LINK_SET,[PRIM_TEXT,"",color,0.0]);
}

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

	listen(integer channel, string name, key id, string message) {
		string m=llToUpper(llStringTrim(message,STRING_TRIM));
		if (m==showcmd) {
			show();
		} else if (m==hidecmd) {
			hide();
		}
	}
}

Then the ShowHide control script :

// www.lsleditor.org  by Alphons van der Heijden (SL: Alphons Jano)
integer channel=8;    // channel number

string showtext="Show !";
string hidetext="Hide !";
vector color=<1.0,0.5,0.0>;    // color for the floating text : . Use <1.0,1.0,1.0> for white

string showcmd="SHOW";
string hidecmd="HIDE";


// do not modify below
integer visible=TRUE;

default {
	state_entry() {
		llSetText(showtext,color,1.0);
	}

	touch_start(integer total_number) {
		if (visible) {
			llSay(channel,hidecmd);
			visible=FALSE;
			llSetText(showtext,color,1.0);
		} else {
			llSay(channel,showcmd);
			visible=TRUE;
			llSetText(hidetext,color,1.0);
		}
	}
}

All this is downloadable for free at my marketplace store.

Thursday, April 21, 2011

Oggy's gate 2

Here is another gate I designed recently. As the previous one, it's black forged iron gate with curvy patterns (see photo). It's available right now at Oggy's scripted items marketplace store.

However, it has one more feature that makes it quite unique : the fact that each of the panes sports one initial you can customize to match your own (or whoever's, for that matter).

To do this you have two options :

  1. use the enclosed HUD, that will just ask you to type the two initials you want in a text box. This is the easiest method but requires that you use a recent viewer that supports text box. The current official viewer does.
  2. In the chat, type :
    /79 INITIAL=A
    /80 INITIAL=B
    This will then set up the gate so that the left pane has an A and the right one has a B. Of course, replace A and B with what you want...

All uppercase letters from A to Z are available, plus 4 symbols : !?&$, all in a beautiful gothic font. Of course, once set you can safely detach your HUD...

WARNING : for technical reasons*, this gate does NOT support linking to another constructions. Do not use this if you can't afford to manually place the two parts (and optional pillar).

*Technical reason : both initials are textured on a prim that is linked to the opening pane. If you link it to a wall or house, what SL does is break the link between the initial and the opening pane, and link them individually to your wall. The gate will continue to open, but the initials will not move.

If you know an easy way around this SL limitation in handling prim trees please let me know.

Update ! Oggy's Iron Gate 1.2

I made an update for my iron gate, which is now released as version 1.2 on my marketplace store.

The main new feature is that it now supports linking, whereas the previous 1.1 version didn't.

All residents who bought the older version that i could make contact with have received the new 1.2 version. Others just need to contact me.

Still cheap : L$10. Mod|Copy|No Trans.

Thursday, April 7, 2011

PDF doc for Oggy's Rezzer 3.0

A full PDF version of the documentation file for Oggy's Rezzer version 3.0 is now available ! You can view or download it either from my Marketplace store or from this link on Google Documents. Many thanks to Katerina Brezoianu for proofreading !