Build, Learn, Shop, Hangout
Arthur Fermi
Posts by Arthur Fermi
Site Redesign
Apr 22nd
We have had some site issues which I have resolved, but I figured while I was here I would make some changes. I have updated the template and am going through some of the other things to make it a little better. Please let me know if you have any problems.
Back off man. I’m a scientist
Apr 18th
This is old but I ran across it today and it made me laugh. It takes all kinds, and we get them
Let me preface this with a quote …
Dr. Peter Venkman: Alice, I’m going to ask you a couple of standard questions, okay? Have you or any of your family been diagnosed schizophrenic? Mentally incompetant?
Librarian Alice: My uncle thought he was Saint Jerome.
Dr. Peter Venkman: I’d call that a big yes. Uh, are you habitually using drugs? Stimulants? Alcohol?
Librarian Alice: No.
Dr. Peter Venkman: No, no. Just asking. Are you, Alice, menstruating right now?
Library Administrator: What’s has that got to do with it?
Dr. Peter Venkman: Back off, man. I’m a scientist.
And here was my funny convo tonight
How To: Presentation viewer/slide show
Apr 9th
The /presentation viewer/slide show. Has two modes, Auto and Manual. All settings are controlled through a simple dialog box. All you have to do is delete out the demo images in the viewer, put in your own images, then reset the system.
The slide show will run in alphabetical order, if you want a specific order, you will name accordingly. I recommend using something like a_PicName to get a sort that you want.
Auto Mode:
Automatically rotates through all images in the viewer. The default for Auto Mode is 5 seconds per slide. You can however, set the time to the following intervals.
2, 3, 5, 10, 15, 20, 30, 45, 60 (in Seconds
You can start, pause and stop the presentation.
Manual Mode:
You control the presentation, you can move forward and backwards through your presentation.
Switching modes:
Auto to Manual: Pause the presentation, then use the back and next normally.
Manual to Auto: Click Auto Start, it will wait the specified time, and then start rotating through the slides.
How to: Make an Online/Offline Indicator
Mar 5th
Learn how to script an online/offline indicator that accepts inventory from people. The information about the different commands is embedded directly in the code.
This begining level scrip will cover some basics of the following commands
- llSetTimerEvent
- llAllowInventoryDrop
- llListen
- llOwnerSay
- llResetScript
- llRequestAgentData
- llGetOwner
- llKey2Name
- llSetText
- llSetColor
and the following event handlers
- listen
- timer
- on_rez
- dataserver
Information will primarly pertain to the specifics needed for this event.
Give items in world from a web page!
Dec 7th
With SLX now charging for freebies (d-bags) I was thinking it would be nice to give items right from the web. The first problem was many web pages limit the code you can put in to a page. Next issue was keeping it simple so anyone can use it, and this is what I came up with the Web Freebie Giver. This is licensed under GPLv3, please click the link for the details, but basically you are free to use it as you wish, any changes need to be given back to the project. The code is available at google code, or in world at Fermi Sandbox. If you wish to contribute to this project please contact Arthur Fermi. More >
Fermi Single Item Vendor Code
Dec 7th
This is the code for the single item vendor its very old, probably could use some help but I’m sure someone can use it. All that is needed to make this functional is to copy the script, rez a prim, create a new script in the prim, delete everything out of the script and paste this in.
// Global Variables
string gstrDisplay; // Name of the Item to be Sold
string gstrNotecard; // Notecard to give out
integer gintPrice; // Price of Item
list glstSplitWith; // Key of the person who you are spliting the sale with
list glstPictures; // Texture you want on the box
string gstrFloatYes;
vector vecFloatColor; // Color for floating text
string gstrThankYou; // Thank you message
key gstrQueryID; // DataServer Query Info
integer gstrLine; // DataServer Line Number to get
integer intNumPics; // Number of pictures
integer gintNoteLine; // Notecard Line #
integer gintCurPic; // Current Picture
integer gintDCC; // Dialog Comm Channel
//Get Inventory
funGetImages()
{
intNumPics=llGetInventoryNumber(0);
//Setup a loop
integer x = 0;
// Get Inventory and add it to the list
for (x; x < intNumPics; ++x)
{
glstPictures += [llGetInventoryName(0, x)];
}
}
funStartup()
{
// Get Images
funGetImages();
//Get Configuration Info
gstrNotecard = "_Item Config";
gstrQueryID = llGetNotecardLine(gstrNotecard, gintNoteLine);
// Set Pay Amounts
llSetPayPrice(PAY_HIDE, [gintPrice, PAY_HIDE, PAY_HIDE, PAY_HIDE]);
// Set Offline Text
llSetText("~ Offline ~", <1,0,0>, 1);
}
funOnOff(integer status)
{
if (status == 0)
{
// Off
llResetScript();
}
else if (status == 1)
{
// Get Permissions
llRequestPermissions(llGetOwner(),PERMISSION_DEBIT);
// Set Pay Amounts
llSetPayPrice(PAY_HIDE, [gintPrice, PAY_HIDE, PAY_HIDE, PAY_HIDE]);
// Set First Picture
llSetTexture(llList2String(glstPictures,0), 1);
gintCurPic = 0;
// Set Description
llSetObjectDesc("Fermi Designs - " + gstrDisplay + " - Price: " + (string)gintPrice + "L - Right Click to Pay");
if (gstrFloatYes == "Yes")
{
llSetText("Fermi Designs\n" + gstrDisplay + "\nPrice: " + (string)gintPrice + "L\n Right Click to Pay", vecFloatColor,1);
}
else
{
llSetText("", <1,1,1>, 1);
}
}
}
funPaySplits(integer amount)
{
integer intNumSplits = llGetListLength(glstSplitWith);
string strTempData;
key keyPay;
integer intPayAmount;
float fltPayPercent;
integer x = 0;
llOwnerSay((string)glstSplitWith);
if (intNumSplits == 0)
{
// do nothing, no splits
llOwnerSay("No Splits");
}
else
{
for (x; x < intNumSplits; ++x)
{
// Clear values
keyPay = "";
strTempData = "";
intPayAmount = 0;
//Get Split person pay
strTempData = llList2String(glstSplitWith, x);
//Parse Data
//Get Key
keyPay = llGetSubString(strTempData, 0, 35);
// Get Percentage
fltPayPercent = (float)llGetSubString(strTempData, llSubStringIndex(strTempData, "(") + 1,llSubStringIndex(strTempData, "%") - 1) / 100;
// Set Amount
intPayAmount = llCeil(amount * fltPayPercent);
// Pay the split
llGiveMoney(keyPay, intPayAmount);
//llOwnerSay("\nKey: " + (string)keyPay + "\nPrecent: " + (string)fltPayPercent + "\nPayAmount: " + (string)intPayAmount);
}
}
}
default
{
state_entry()
{
// Set Random dialog channel
gintDCC = llCeil(llFrand(10000.0));
llListen(gintDCC, "", llGetOwner(), "");
funStartup();
llSay(0, "Hello, Avatar!");
}
touch_start(integer total_number)
{
list lstMenu = ["LastPic", "Info", "NextPic","On","Off","Reset"];
if(llDetectedKey(0) == llGetOwner())
{
llDialog(llDetectedKey(0), "Please select your option", lstMenu, gintDCC);
}
else
{
llDialog(llDetectedKey(0), "Please select your option", ["LastPic", "Info", "NextPic"], gintDCC);
}
}
listen( integer channel, string name, key id, string message )
{
if (message == "NextPic")
{
if (gintCurPic + 1 > intNumPics)
{
gintCurPic = 0;
}
else
{
gintCurPic ++;
}
llSetTexture(llList2String(glstPictures, gintCurPic), 1);
llDialog(id, "Please select your option", ["LastPic", "Info", "NextPic"], gintDCC);
}
else if(message == "LastPic")
{
if (gintCurPic == 0)
{
gintCurPic = intNumPics;
}
else
{
gintCurPic --;
}
llSetTexture(llList2String(glstPictures, gintCurPic), 1);
llDialog(id, "Please select your option", ["LastPic", "Info", "NextPic"], gintDCC);
}
else if(message == "Info")
{
llGiveInventory(id, llGetInventoryName(INVENTORY_NOTECARD, 1));
llDialog(id, "Please select your option", ["LastPic", "Info", "NextPic"], gintDCC);
}
else if (message == "On")
{
funOnOff(1);
}
else if (message == "Off")
{
funOnOff(0);
}
else if (message == "Reset")
{
llResetScript();
}
}
dataserver(key query_id, string data)
{
if (query_id == gstrQueryID)
{
if (data != EOF)
{
if (gintNoteLine == 11)
{
gstrDisplay = data;
}
if (gintNoteLine == 14)
{
gintPrice = (integer)data;
}
if (gintNoteLine == 17)
{
gstrFloatYes = data;
}
if (gintNoteLine == 20)
{
vecFloatColor = (vector)data;
}
if (gintNoteLine == 23)
{
gstrThankYou = data;
}
if (gintNoteLine > 38)
{
glstSplitWith += [data];
}
}
++gintNoteLine;
gstrQueryID = llGetNotecardLine(gstrNotecard, gintNoteLine);
}
}
money(key giver, integer amount)
{
if (amount == gintPrice)
{
llGiveInventory(giver,llGetInventoryName(INVENTORY_OBJECT, 0));
funPaySplits(amount);
}
else
{
llGiveMoney(giver,amount);
llWhisper(0, "I'm sorry, that was in the incorrect amount. This item sells for " + (string)gintPrice + "L.");
}
}
on_rez(integer start_param)
{
llResetScript();
}
}
Google Wave Invite!
Dec 4th
We have 8 google wave invites that we will give out on the 24th of December to 8 lucky people who register on the web site!
About Google Wave
Google Wave is an online tool for real-time communication and collaboration. A wave can be both a conversation
and a document where people can discuss and work together using richly formatted text, photos, videos, maps, and more.
What is a wave?
A wave is equal parts conversation and document. People can communicate and work together with richly formatted text, photos, videos, maps, and more.
A wave is shared. Any participant can reply anywhere in the message, edit the content and add participants at any point in the process. Then playback lets anyone rewind the wave to see who said what and when.
A wave is live. With live transmission as you type, participants on a wave can have faster conversations, see edits and interact with extensions in real-time.
Welcome to the new webiste
Dec 3rd
We are mostly finished with the new web site, mostly just some content and categories. All the features are fully functional, if we are missing something or you see a mistake please let me know. So outside of the new layout, and domain name we have some cool things.
- Rules and Rental Info online
- Store Directory, not limited to Fermi, all additions will be approved, make sure to add your store!
- Forums – We now have message forums, only a few categories at the moment, but there will be more over time
- Mingle – Is a profile/social network area, create a profile, add activites, great a friends list, kind of a simple facebook
We are looking forward to expanding this, and making it a place to go for all our friends at fermi and in SL