Difference between revisions of "User:Fox Diller/LottoMachine"
Jump to navigation
Jump to search
Fox Diller (talk | contribs) |
m (lsl code tagging) |
||
Line 1: | Line 1: | ||
< | <lsl> | ||
integer cost = 10; | integer cost = 10; | ||
Line 122: | Line 122: | ||
} | } | ||
} | } | ||
</ | </lsl> |
Latest revision as of 19:56, 30 March 2008
<lsl> integer cost = 10;
integer DialogChannel = 12; integer ListenHandle = 0; integer totalAmmount; integer i; integer j; integer pCount = 0;
list pKeys;
key agentKey; string lastWinner = "NONE";
// Functions integer find(key agentKey) {
for (i=0;i<llGetListLength(pKeys);i++) if (llList2String(pKeys,i) == agentKey) return i; return -1;
}
integer percAmount(integer amount) {
return llRound(amount * 0.9);
}
doText() {
llSetText( "FurNation Lottery\n" + "--------------------------------------\n" + "Current Price To Play: L$" + (string)cost + "\n" + "Current Players: " + (string)pCount + "\n" + "Current Prize Pot: L$" + (string)percAmount(totalAmmount) + "\n" + "Last Winner: " + lastWinner, // Color: Green <0,1,0>, //Alpha 1 );
}
//State default {
state_entry() { llRequestPermissions(llGetOwner(),PERMISSION_DEBIT); doText(); } touch_start(integer a) { if (llDetectedOwner(0) == llDetectedKey(0)) { ListenHandle = llListen(DialogChannel, "", llDetectedKey(0), ""); llSetTimerEvent(30); llDialog(llDetectedKey(0),"Are you sure you want to select a winner?", ["Yes", "pList"], DialogChannel); } } listen(integer channel, string name, key id, string message) { llSetTimerEvent(0); llListenRemove(ListenHandle); if ( message == "Yes" ) { pKeys = llListRandomize(pKeys,1); i = llFloor(llFrand(llGetListLength(pKeys))); llSay(0,"And the Winner is " + llKey2Name((key)llList2String(pKeys,i)) + "! There were " + (string)pCount + " participants."); llGiveMoney((key)llList2String(pKeys,i),percAmount(totalAmmount)); lastWinner = llKey2Name((key)llList2String(pKeys,i)); pKeys = []; pCount = 0; totalAmmount = 0; doText(); } if ( message == "pList" ) { for (i=0;i<pCount;i++) llOwnerSay(llKey2Name(llList2String(pKeys,i))); } else { return; } } money(key payee, integer amount) { if (amount == cost) { if (find(payee) == -1) { pKeys += (string)payee; llSay(0,llKey2Name(payee) + " has been entered."); totalAmmount += amount; pCount++; doText(); // llSay(0, "You paid " + (string)amount + // "L$, to enter the FurNation lottery! Good Luck, " + llKey2Name(payee)); } else { llSay(0,"You are already entered into the lottery"); llGiveMoney(payee,amount); } } else llGiveMoney(payee,amount); } timer() { llSetTimerEvent(0); llListenRemove(ListenHandle); }
} </lsl>