Hello, world. Please critique my frist attempt to scripting in Secod Life. // Donation Jar Script.
// Created by SIMPLE SCRIPT STUFF.
// version alpha.
// VARIABLES
string topMessage = "Please donate to us. \n Thanks"; // <--- CHANGE THIS MESSSAGE TO CHANGE llSetText MESSAGE.
// WARNING!!!
// DONATIONS VALUES SAVE DON'T WORK, IT MEANS WHEN YOUR OBJECT STATE CHANGE (MOVES TO OTHER REGION, OR TO YOUR INVENTORY SCRIPT RESET.
integer totalDonation = 0;
integer largestDonation = 0;
list payPrice = [10,20,30,40]; // <--- PLEASE CHANGE THIS VALUES TO SET PAY PRICE.
// DIALOG - UNDER DEVELOPMENT
integer CHANNEL = 42;
list MENU_MAIN = ["OPTIONS", "ABOUT" ,"EXIT"];
list MENU_OPTIONS = ["Change Values", "EXIT"];
list MENU_ABOUT = ["EXIT"];
// OPTIONS - UNDER DEVELOPMENT
default
{
on_rez(integer start_param)
{
llSetText("",<0,0,0>,0);
totalDonation = 0;
}
state_entry()
{
llListen(CHANNEL, "", llGetOwner(), ""); // DIALOG APPEARS ONLY WHEN OWNER TOUCH OBJECT
}
touch_start(integer x)
{
llDialog(llDetectedKey(0), "What do you want, owner?", MENU_MAIN, CHANNEL);
}
listen(integer channel, string name, key id, string message)
{
if (llListFindList(MENU_MAIN + MENU_OPTIONS + MENU_ABOUT, [message]) != -1)
{
if (message == "OPTIONS")
llDialog(id, "OPTIONS DIALOG", MENU_OPTIONS, CHANNEL);
else if (message == "ABOUT")
llDialog(id, "TODO : ABOUT" , MENU_ABOUT, CHANNEL); // TODO!
else if (message == "EXIT")
llOwnerSay("Good bye " + llKey2Name(id) + "!");
}
}
money(key giver, integer amount)
{
if(amount > largestDonation)
largestDonation = amount;
totalDonation = totalDonation + amount;
string donationText = topMessage + "\n" + "Last Donation by: " + llKey2Name(giver) + "." + " Amount: " + " L$" + (string)amount + " \nTotal Donation: " + (string)totalDonation + " L$" + "\n Largest Donation: " + (string)largestDonation + "L$";
string whisperMessage = "Thanks for donation " + llKey2Name(giver) + "!!!";
llWhisper(0, whisperMessage);
llSetText(donationText, <1,0,0>, 4.0);
}
}