Personal ATM Machine

Thread Started By steadymobbin

1786
0
  • 30 Vote(s) - 2.7 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rate Thread
#1
PHP Code:
// ATM Machine script, Jessikiti Nikitin 2010
//
// Brief instructions for use:
//
// Give this script to your alt, ensuring their balance is L$0 (or setting the balance in the variable below),
// put it in an object and then allow debit permissions when the object requests them.
//
// You can then manage your alt's balance using the object, without the alt having to be logged in.
// To deposit lindens, pay the object. To withdraw lindens, touch the object for a menu.

key managerKey "00000000-0000-0000-0000-000000000000"// change this to your main avatar's key

list dialogAmounts = ["50""100""250""500""1000""5000""10000""50000""All"];
integer balance 0;

integer opChannel;
integer listenHandle;

presentDialog()
{
opChannel llFloor((llFrand(1000000) * -1)-1000000); // creates random operation channel to
// prevent spying on withdrawal amounts
listenHandle llListen(opChannel""managerKey"");
llSetTimerEvent(60);
llDialog(managerKey"Balance: L$"+(string)balance+"\n \nChoose amount to withdraw."validAmounts(), opChannel);
}

list 
validAmounts()
{
// this function prevents the script offering money that isn't available,
// which would result in a silent failure
list va;
integer i;
for(;
i<llGetListLength(dialogAmounts);++i)
{
if((integer)
llList2String(dialogAmounts,i)<=balance)
{
va+=llList2String(dialogAmounts,i);
}
}
return 
va;
}

removeListens()
{
llListenRemove(listenHandle);
llSetTimerEvent(0);
}

default
{
on_rez(integer omitted){ llResetScript(); }

state_entry()
{
opChannel llFloor((llFrand(1000000) * -1)-1000000);
llRequestPermissions(llGetOwner(),PERMISSION_DEBIT);
}

touch_start(integer number_detected)
{
integer n;
for(;
n<number_detected;++n)
{
if(
llDetectedKey(n)==managerKey)
{
if(
balance==0)llDialog(managerKey"Balance: L$0", [], opChannel);
else
{
presentDialog();
}
}
}
}

listeninteger channelstring namekey idstring message )
{
removeListens();
integer amountToGive = (integer)message;
if(
message == "All")amountToGive balance;
llGiveMoney(managerKeyamountToGive);
balance -= amountToGive;
llInstantMessage(managerKey"New balance = L$"+(string)balance);
}

money(key idinteger amount)
{
if(
id == managerKey// only display balance if money came from you
{
balance += amount;
llInstantMessage(managerKey"New balance = L$"+(string)balance);
}
else 
// remove this else block if you want to allow other people
// to put money into your safe
{
llGiveMoney(idamount);
llInstantMessage(id"You are not the owner of this safe.");
}
}

timer()
{
llInstantMessage(managerKey"timed out");
removeListens();
}

[Image: guns-bullet-shirt_recreated.jpg]
Reply




Forum Jump:

1 Guest(s)
Share this:

About Second Life Copybot

Second Life CopyBot Forum is a place where you can get items for Second Life and other vitual worlds for free. With our CopyBot viewers you can export and import any content from these virtual worlds and modify them in 3D software such as Blender, 3D studio Macx etc...