////////////////////////////////////////////////////////// // WaS (c) grimore.org - 2012, License: GPLv3 // // Please see: http://www.gnu.org/licenses/gpl.html // // for legal details, rights of fair usage and // // the disclaimer and warranty conditions. // ////////////////////////////////////////////////////////// list cGraphics = ["❶","❷","❸","❹","❺","❻","❼","❽","❾","❿","♠","♣","♥","♦"]; list cValues = [1,2,3,4,5,6,7,8,9,10,10,10,10,10]; integer player_amount = 0; integer house_amount = 0; string player_hand = ""; string house_hand = ""; string player_name = ""; default { state_entry() { llSetText("✪ Touch to play Quickjack! ✪", <1,1,1>, 1); } touch_start(integer num) { player_name = llDetectedName(0); state player; } } state player { state_entry() { integer rnd = (integer)llFrand(llGetListLength(cGraphics)); player_amount += llList2Integer(cValues, rnd); if(player_amount > 21) { llSay(0, player_name + " is busted."); llResetScript(); } player_hand += llList2String(cGraphics, rnd); llSetText(player_name + "'s hand is: " + player_hand, <1,1,1>, 1); llSetTimerEvent(10); } touch_start(integer total_number) { if(llDetectedName(0) != player_name) return; integer rnd = (integer)llFrand(llGetListLength(cGraphics)); player_amount += llList2Integer(cValues, rnd); if(player_amount > 21) { llSetText(player_name + " is busted: " + (string)player_amount + "!", <1,1,1>, 1); state busted; } player_hand += llList2String(cGraphics, rnd); llSetText(player_name + "'s hand is: " + player_hand, <1,1,1>, 1); llSetTimerEvent(10); } timer() { state player_house; } } state player_house { state_entry() { llSetTimerEvent(1+llFrand(4)); } timer() { integer rnd = (integer)llFrand(llGetListLength(cGraphics)); house_amount += llList2Integer(cValues, rnd); if(house_amount > 21) { llSetText("House is busted: " + (string)house_amount + "!", <1,1,1>, 1); state busted; } if(house_amount >= player_amount) state score; house_hand += llList2String(cGraphics, rnd); llSetText(player_name + "'s hand is: " + player_hand + "\nHouse hand is: " + house_hand, <1,1,1>, 1); } } state score { state_entry() { if(player_amount <= house_amount) { llSetText("House wins with: " + (string)house_amount, <1,1,1>, 1); llSetTimerEvent(10); return; } llSetText(player_name + " wins with: " + (string)house_amount, <1,1,1>, 1); llSetTimerEvent(10); return; } timer() { llResetScript(); } } state busted { state_entry() { llSetTimerEvent(10); } timer() { llResetScript(); } }