User:Fox Diller/GiftCardSecurity

From Second Life Wiki
Jump to: navigation, search

<lsl> // House of Nyla's Gift Certificate Sub_System // 2006 by Crystal Studio // Remember kids, go hunting with Peter Rose for a shot in the dark!

// Main Attributes to Security -- The person who this gift cert will go to FOREVA // Who issued, and is reponsible for the issuance of the pretty cards!! key ISSUER_KEY = "42047785-d5d1-49e5-b2ca-743753207934"; string ISSUER_NAME = "Nyla Cheeky";

// The secret passphrase to utter in a silent IM to uniquely id the card. Keep it kinda short... string PASSPHRASE = "XYZ123";

// The price that this cert will be for... must just be numbers. No decimal, or nuffing... integer PRICE = 2500;

// Set the nice new formated price...-- I have to declare it here if I wanna use it everywhere else... string FORMATTED_PRICE;

// Neat function I wrote while stoned string llNumberFormat(integer number) {

   string output;    
   integer x;
   integer z;
   string numberString = (string)number;
   integer numberStringLength = llStringLength(numberString);
   
   if ((numberStringLength % 3) == 2) z = 1;
   else if ((numberStringLength % 3) == 0) z = 2;
   
   for(x=0;x<numberStringLength;x++)
   {
       output += llGetSubString(numberString, x, x);
       if ((x % 3) == z && x != (numberStringLength - 1))
           output += ",";
   }
   
   return output;

}

// Make the object pretty setup() {

   // Set the nice new formated price...
   FORMATTED_PRICE = llNumberFormat(PRICE);
   
   // Make the object's name all pretty.
   llSetObjectName("www.HouseOfNyla.com - L$"+FORMATTED_PRICE+" gift certificate");
   llSetObjectDesc("www.HouseOfNyla.com Gift Certificate System - Ohhh, someone must love you!");

}

// What to tell people who are not Nyla! notOwnerSpeech() {

   llSay(0, "Ho Ho Ho! Merry Christmas from the House of the Nyla!");
   llSay(0, "Please, have fun spending L$"+FORMATTED_PRICE+" at our exclusive boutiques!");
   llSay(0, "Remember, you must redeem this voucher with Nyla Cheeky.");

}

// MAIN() default {

   state_entry()
   {
       setup();
       notOwnerSpeech();
   }
   touch_start(integer total_number)
   {
       if (llDetectedName(0) == ISSUER_NAME && llDetectedKey(0) == ISSUER_KEY)
           if (llGetOwner() == ISSUER_KEY)
               llInstantMessage(ISSUER_KEY, "Hi, this is my passphrase { "+PASSPHRASE+" } and my official price is + { L$"+FORMATTED_PRICE+" }");
           else
           {
               notOwnerSpeech();
               llInstantMessage(ISSUER_KEY, "Remember! You must ask for for the user to send you this cert to get the passphrase inside...");
           }
       else
           notOwnerSpeech();
   }
   
   on_rez(integer stater)
   {
       llResetScript();
   }

} </lsl>