Apps Home
|
Create an App
keno++
Author:
mistressadelle
Description
Source Code
Launch App
Current Users
Created by:
Mistressadelle
/* Super Easy Keno */ var timerCount = 0; var kenoOffTheBoardMsg = ''; var knAlreadyPickedMsg = 'Somebody already picked that one'; var knBoardClearedMsg = 'Keno Board Has Been Cleared!'; var knIsStartedMsg = 'Keno Board is Loaded and Ready! Enter !kb to see the board, !kp to see the remaining prizes'; var knIsStoppedMsg = 'Keno is Not Running'; var knIsStoppedMsg2 = 'Keno has been Stopped, the Board is cancelled'; var knWinnerMsg = '[tipper] wins: [prize]'; var knPrizeBgColor = 'gold'; var broadCaster = cb.room_slug; var kenoIsLoaded = false; var kenoIsOn = false; var knFortuneCookiesOn = false; var knFortuneCookieIx = 0; var knMin = 0; var knMax = 0; var knFill = 0; var knSpots = 0; var knBoard = []; var knPrize = []; var knTimer = 5; var knBoardDef = {Num: 01, Rand: 0, Name: ''}; var knPrizeDef = {Name: '', Count: 0}; var knTryAgainCount = 0; var knClearGoalMsg = cb.settings.knGoal; var knRemWinnerTips = 0; var knRemLoserTips = 0; var knRemWinners = 0; var knRemLosers = 0; cb.settings_choices = [ {name: 'knMin' , label: 'Lowest Number on Keno Board' , type:'int' ,minValue: 1, maxValue: 1000 ,defaultValue: 02} ,{name: 'knMax' , label: 'Highest Number on Keno Board' , type:'int' ,minValue: 1, maxValue: 1000 ,defaultValue: 02} ,{name: 'knFill' , label: 'Fill Percentage' , type:'int' ,minValue: 10, maxValue: 100 ,defaultValue: 80} ,{name: 'knGoal' , label: 'Optional - Cleared Board Reward' , type:'str' ,minLength: 1 ,maxLength: 255, required: false} ,{name: 'knTimer' , label: 'Minutes Between Keno Reminders' , type:'int' ,minValue: 1, maxValue: 1000 ,defaultValue: 5} ,{name: 'knFortuneCookies', label: 'Try Again or Fortune Cookie' , type:'choice', defaultValue: 'Fortune Cookies' ,choice1: 'Fortune Cookies', choice2: 'Try Again'} ,{name: 'kn00', type: 'str', required: true , minLength: 0 ,maxLength: 512, label:'Highest-Value (One only) Prize 01'} ,{name: 'kn01', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 02'} ,{name: 'kn02', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 03'} ,{name: 'kn03', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 04'} ,{name: 'kn04', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 05'} ,{name: 'kn05', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 06'} ,{name: 'kn06', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 07'} ,{name: 'kn07', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 08'} ,{name: 'kn08', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 09'} ,{name: 'kn09', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 10'} ,{name: 'kn10', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 11'} ,{name: 'kn11', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 12'} ,{name: 'kn12', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 13'} ,{name: 'kn13', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 14'} ,{name: 'kn14', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 15'} ,{name: 'kn15', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 16'} ,{name: 'kn16', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 17'} ,{name: 'kn17', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 18'} ,{name: 'kn18', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 19'} ,{name: 'kn19', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 20'} ,{name: 'kn20', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 21'} ,{name: 'kn21', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 22'} ,{name: 'kn22', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 23'} ,{name: 'kn23', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 24'} ,{name: 'kn24', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 25'} ,{name: 'kn25', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 26'} ,{name: 'kn26', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 27'} ,{name: 'kn27', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 28'} ,{name: 'kn28', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 29'} ,{name: 'kn29', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 30'} ,{name: 'kn30', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 31'} ,{name: 'kn31', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 32'} ,{name: 'kn32', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 33'} ,{name: 'kn33', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 34'} ,{name: 'kn34', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 35'} ,{name: 'kn35', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 36'} ,{name: 'kn36', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 37'} ,{name: 'kn37', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 38'} ,{name: 'kn38', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 39'} ,{name: 'kn39', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 40'} ,{name: 'kn40', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 41'} ,{name: 'kn41', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 42'} ,{name: 'kn42', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 43'} ,{name: 'kn43', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 44'} ,{name: 'kn44', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 45'} ,{name: 'kn45', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 46'} ,{name: 'kn46', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 47'} ,{name: 'kn47', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 48'} ,{name: 'kn48', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 49'} ,{name: 'kn49', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:'Lowest-Value Prize 50'} ]; function loadSettings() { } cb.onTip(function(tip) { var amt = tip.amount; var u = tip.from_user; var n = tip.message; var i; if (kenoIsOn && knMin <= amt && amt <= knMax) { kenoPlay(tip); } }); function kenoPlay(tip) { var amt = tip.amount; var knPlay = tip.amount - knMin; var u = tip.from_user; var m = tip.msg; var i; if (knBoard[knPlay].Name == 'X') { cb.sendNotice("Somebody already picked that one, sorry",'','','','bold'); return; } if (knBoard[knPlay].Name == 'TA') { if (knFortuneCookiesOn) { knFortuneCookieIx = (knFortuneCookieIx + 1) % fortuneCookies.length; cb.sendNotice(u + ' wins a Fortune Cookie: ' + fortuneCookies[knFortuneCookieIx],'','','','bold'); } else { cb.sendNotice(randPick(knTryAgainMsgs),'','','','bold'); } knBoard[knPlay].Name = 'X'; return; } for (i = 0; i < knPrize.length && knBoard[knPlay].Name != knPrize[i].Name; i++) {}; knPrize[i].Count--; cb.sendNotice(knWinnerMsg.replace('[tipper]',u).replace('[prize]',knBoard[knPlay].Name),'',colors[knPrizeBgColor],'','bold'); knBoard[amt - knMin].Name = 'X'; knRemWinnerTips -= amt; knRemWinners--; if (knRemWinners == 0) { cb.sendNotice(knBoardClearedMsg,'',colors[knPrizeBgColor],'','bold'); KenoIsLoaded = false; kenoIsOn = false; if (knClearGoalMsg != '') { cb.sendNotice('Prize won for clearing the Board: ' + knClearGoalMsg,'',colors[knPrizeBgColor],'','bold'); } cb.sendNotice('Enter /knew when ready to start a new Keno',broadCaster); } } cb.onMessage(function(msg) { var i; var iT = []; var m = msg.m; var u = msg.user; if (m.slice(0,1) == '/' && u == broadCaster) { return slashCmds(msg); } if (m.slice(0,1) == '!' && m != '!') { msg = exclamCmds(msg,u); } return msg; }); function slashCmds(msg) { var t = msg.m; var u = msg.user; var a = t.split(/\s+/); var a0 = a[0].toLowerCase(); if (a0 == '/knew') { kenoLoad(); msg['X-Spam'] = true; return msg; } if (a0 == '/klist') { kenoStatus(); cb.sendNotice(kenoBoard(),broadCaster); msg['X-Spam'] = true; return msg; } if (a0 == '/ksend') { kenoSend(); msg['X-Spam'] = true; return msg; } if (a0 == '/kstop') { kenoIsOn = false; cb.sendNotice(knIsStoppedMsg2); msg['X-Spam'] = true; return msg; } if (a0 == '/help') { var h = '' + '\n/knew (build new Keno board and start Keno)' + '\n/klist (send prize list to Cammer)' + '\n/ksend (send board to all)' + '\n/kstop (stop Keno and cancel the board)' ; cb.sendNotice(h,broadCaster,'','','bold'); return msg; } msg['X-Spam'] = false; return msg; } function exclamCmds(msg,u) { var t = msg.m; var u = msg.user;10 var a = t.split(/\s+/); var a0 = a[0].toLowerCase(); if (a0 == '!kb') { if (!kenoIsOn) { cb.sendNotice(knIsStoppedMsg,u); msg['X-Spam'] = true; return msg; } cb.sendNotice(kenoBoard(),u); msg['X-Spam'] = true; return msg; } if (a0 == '!kp') { if (!kenoIsOn) { cb.sendNotice(knIsStoppedMsg,u); msg['X-Spam'] = true; return msg; } cb.sendNotice(kenoRemPrizes(),u); msg['X-Spam'] = true; return msg; } msg['X-Spam'] = false; return msg; } function randPick(a) { return a[Math.floor(Math.random() * a.length)]; } function kenoRemPrizes() { var i; var prizeList = 'Keno Prizes Remaining: '; for (i = 0; i < knPrize.length; i++) { if (knPrize[knPrize.length - i - 1].Count) { prizeList = prizeList + ' | ' + knPrize[knPrize.length - i - 1].Name; } } return prizeList; } function kenoStatus() { if (!kenoIsLoaded) { cb.sendNotice('knIsStoppedMsg',broadCaster); return; } var i; var boardList = 'Prize List'; for (i = 0; i < knBoard.length; i++) { if (knBoard[i].Name != 'X' && knBoard[i].Name != 'TA') { boardList = boardList + '\n' + (i + knMin) + ': ' + knBoard[i].Name; } } cb.sendNotice(boardList,broadCaster); } function kenoSend() { cb.sendNotice(kenoBoard()); } function kenoBoard() { var i; var kndigits = knMax.toString().length; var kni = 10; var s; var myBoard = 'Keno Board Remaining'; var knt = 0; if (kndigits == 5) { kni = 5;} if (kndigits == 4) { kni = 8;} if (kndigits == 3) { kni = 10;} if (kndigits == 2) { kni = 10;} if (kndigits == 1) { kni = 10;} for (knt = 0; knt < knSpots; knt++) { if (knt % kni == 0) { myBoard = myBoard + '\n'; } if (knBoard[knt].Name == 'X') { myBoard = myBoard + 'xxxxx'.slice(5-kndigits) + ' '; } else { s = '00000' + (knt + knMin).toString(); myBoard = myBoard + s.slice(s.length-kndigits) + ' '; } } return myBoard; } function kenoLoad() { kenoIsLoaded = false; knGoal = cb.settings.knGoal; knMin = cb.settings.knMin; knMax = cb.settings.knMax; knSpots = knMax - knMin + 1; knFill = cb.settings.knFill + 10; knTimer = cb.settings.knTimer; knFortuneCookiesOn = cb.settings.knFortuneCookies == 'Fortune Cookies'; if (knSpots < 1) { cb.sendNotice('Number of Keno Spots must be at least 1',broadCaster); return; } var kCalc = {min: 0, max: 0}; var i,j,p; knTryAgainCount = Math.floor(knSpots * (100 - knFill) / 100); knRemWinnerTips = 0; knRemLoserTips = 0; knRemWinners = 0; knRemLosers = 0; knPrize=[]; i = 0; var cbs = [cb.settings.kn00,cb.settings.kn01,cb.settings.kn02,cb.settings.kn03,cb.settings.kn04 ,cb.settings.kn05,cb.settings.kn06,cb.settings.kn07,cb.settings.kn08,cb.settings.kn09 ,cb.settings.kn10,cb.settings.kn11,cb.settings.kn12,cb.settings.kn13,cb.settings.kn14 ,cb.settings.kn15,cb.settings.kn16,cb.settings.kn17,cb.settings.kn18,cb.settings.kn19 ,cb.settings.kn20,cb.settings.kn21,cb.settings.kn22,cb.settings.kn23,cb.settings.kn24 ,cb.settings.kn25,cb.settings.kn26,cb.settings.kn27,cb.settings.kn28,cb.settings.kn29 ,cb.settings.kn30,cb.settings.kn31,cb.settings.kn32,cb.settings.kn33,cb.settings.kn34 ,cb.settings.kn35,cb.settings.kn36,cb.settings.kn37,cb.settings.kn38,cb.settings.kn39 ,cb.settings.kn40,cb.settings.kn41,cb.settings.kn42,cb.settings.kn43,cb.settings.kn44 ,cb.settings.kn45,cb.settings.kn46,cb.settings.kn47,cb.settings.kn48,cb.settings.kn49 ] for (i = 0; i < cbs.length; i++) { if (cbs[i] != '') { knPrize[knPrize.length] = {Name: cbs[i], Count: 0}; } } if (knPrize.length > knSpots) { cb.sendNotice('You have more prizes than spots, increasing spots',broadCaster); knSpots = knPrize.length; knMax = knMin + knSpots - 1; } kCalc = knCalculateMultipliers(); knPrize[0].Count = kCalc.min; var h = kCalc.max; knTryAgainCount = knSpots; for (i = 1; i < knPrize.length; i++) { var s = (kCalc.max - kCalc.min) / (knPrize.length - 0); knPrize[i].Count = knPrize[0].Count + Math.round(i * s); knTryAgainCount = knTryAgainCount - knPrize[i].Count; } if (knTryAgainCount < 0) { knSpots += knSpots; cb.settings.knMax += knSpots; cb.sendNotice('You have more prizes than spots, increasing spots to ' + knSpots, broadCaster); kenoLoad(); return; } for (i = 0; i < (knSpots); i++) { knBoard[i] = {Num: 0, Rand: 0, Name: ''}; knBoard[i].Num = i + knMin; knBoard[i].Rand = i * (Math.random() - Math.random() + Math.random() - Math.random() + Math.random() - Math.random()); if (i > knSpots * 2 / 3) { knBoard[i].Rand = i + Math.sqrt(knSpots) * (Math.random() - Math.random()); } knBoard[i].Name = 'TA'; } knShuffle(); for (i = 0; i < knTryAgainCount; i++) { knBoard[i].Rand = -1; knRemLosers += 1; knRemLoserTips += knBoard[i].Num; } knBoard.sort(function(a,b) {return a.Rand - b.Rand;}); var k = knSpots; for (i = 0; i < knPrize.length; i++) { for (j = 0; j < knPrize[i].Count; j++) { knBoard[--k].Name = knPrize[i].Name; knRemWinners += 1; knRemWinnerTips += knBoard[k].Num; } } knBoard.sort(function(a,b) {return a.Num - b.Num;}); kenoIsLoaded = true; kenoIsOn = true; cb.sendNotice(knIsStartedMsg.replace('[knMin]',knMin).replace('[knMax]',knMax)); } function knShuffle() { var i,j,tNum,tRand,tName; for (i = knBoard.length; i; i--) { j = Math.floor(Math.random() * i); tNum = knBoard[i - 1].Num; tRand = knBoard[i - 1].Rand; tName = knBoard[i - 1].Name; knBoard[i - 1].Num = knBoard[j].Num; knBoard[i - 1].Rand = knBoard[j].Rand; knBoard[i - 1].Name = knBoard[j].Name; knBoard[j].Num = tNum; knBoard[j].Rand = tRand; knBoard[j].Name = tName; } } function knCalculateMultipliers() { if (knPrize.length >= knSpots / 2) { return {min: 1, max: 1}; } cSp = knSpots * knFill / 100; cPz = knPrize.length; var cTa = cSp * cSp; var cTop0 = 1; var cTopH = 0; var cTopTa = 0; var ct0,ctH,ta; var ctR = 0; while (++ctR < 5) { for (ct0 = 1; ct0 < cSp; ct0++) { for (ctH = 0; ctH < cSp; ctH++) { ta = ct0 * cPz + (ctH * cPz / 2); if ((Math.abs(ta - cSp)) < (Math.abs(cTa - cSp))) { cTop0 = ct0; cTopH = ctH; cTopTa = ta; cTa = ta; } } } } return {min: cTop0, max: cTopH}; } function oneMinuteTimer() { timerCount++; if (timerCount % knTimer == 0 && kenoIsOn) { cb.sendNotice(knIsStartedMsg.replace('[knMin]',knMin).replace('[knMax]',knMax)); } cb.setTimeout(oneMinuteTimer, 60000); } function shuffleCookies() { var i,j,t; for (i = fortuneCookies.length; i; i--) { j = Math.floor(Math.random() * i); t = fortuneCookies[i - 1]; fortuneCookies[i - 1] = fortuneCookies[j]; fortuneCookies[j] = t; } } function init() { cb.sendNotice('Super Easy Keno Bot \nEnter /help to see broadcaster-only commands, /knew to start keno',cb.room_slug); loadSettings(); oneMinuteTimer(); shuffleCookies(); } var colors = {stpatrickgreen: "#004000", aliceblue: "#f0f8ff", antiquewhite: "#faebd7", aqua: "#00ffff", aquamarine: "#7fffd4", azure: "#f0ffff", beige: "#f5f5dc", bisque: "#ffe4c4", black: "#000000", blanchedalmond: "#ffebcd", blue: "#0000ff", blueviolet: "#8a2be2", brown: "#a52a2a", burlywood: "#deb887", cadetblue: "#5f9ea0", chartreuse: "#7fff00", chocolate: "#d2691e", coral: "#ff7f50", cornflowerblue: "#6495ed", cornsilk: "#fff8dc", crimson: "#dc143c", cyan: "#00ffff", darkblue: "#00008b", darkcyan: "#008b8b", darkgoldenrod: "#b8860b", darkgray: "#a9a9a9", darkgrey: "#a9a9a9", darkgreen: "#006400", darkkhaki: "#bdb76b", darkmagenta: "#8b008b", darkolivegreen: "#556b2f", darkorange: "#ff8c00", darkorchid: "#9932cc", darkred: "#8b0000", darksalmon: "#e9967a", darkseagreen: "#8fbc8f", darkslateblue: "#483d8b", darkslategray: "#2f4f4f", darkslategrey: "#2f4f4f", darkturquoise: "#00ced1", darkviolet: "#9400d3", deeppink: "#ff1493", deepskyblue: "#00bfff", dimgray: "#696969", dimgrey: "#696969", dodgerblue: "#1e90ff", firebrick: "#b22222", floralwhite: "#fffaf0", forestgreen: "#228b22", fuchsia: "#ff00ff", gainsboro: "#dcdcdc", ghostwhite: "#f8f8ff", gold: "#ffd700", goldenrod: "#daa520", gray: "#808080", grey: "#808080", green: "#008000", greenyellow: "#adff2f", honeydew: "#f0fff0", hotpink: "#ff69b4", indianred: "# cd5c5c", indigo: "# 4b0082", ivory: "#fffff0", khaki: "#f0e68c", lavender: "#e6e6fa", lavenderblush: "#fff0f5", lawngreen: "#7cfc00", lemonchiffon: "#fffacd", lightblue: "#add8e6", lightcoral: "#f08080", lightcyan: "#e0ffff", lightgoldenrodyellow: "#fafad2", lightgray: "#d3d3d3", lightgrey: "#d3d3d3", lightgreen: "#90ee90", lightpink: "#ffb6c1", lightsalmon: "#ffa07a", lightseagreen: "#20b2aa", lightskyblue: "#87cefa", lightslategray: "#778899", lightslategrey: "#778899", lightsteelblue: "#b0c4de", lightyellow: "#ffffe0", lime: "#00ff00", limegreen: "#32cd32", linen: "#faf0e6", magenta: "#ff00ff", maroon: "#800000", mediumaquamarine: "#66cdaa", mediumblue: "#0000cd", mediumorchid: "#ba55d3", mediumpurple: "#9370db", mediumseagreen: "#3cb371", mediumslateblue: "#7b68ee", mediumspringgreen: "#00fa9a", mediumturquoise: "#48d1cc", mediumvioletred: "#c71585", midnightblue: "#191970", mintcream: "#f5fffa", mistyrose: "#ffe4e1", moccasin: "#ffe4b5", navajowhite: "#ffdead", navy: "#000080", oldlace: "#fdf5e6", olive: "#808000", olivedrab: "#6b8e23", orange: "#ffa500", orangered: "#ff4500", orchid: "#da70d6", palegoldenrod: "#eee8aa", palegreen: "#98fb98", paleturquoise: "#afeeee", palevioletred: "#db7093", papayawhip: "#ffefd5", pbchnd: "#f5fffa", peachpuff: "#ffdab9", peru: "#cd853f", pink: "#ffc0cb", plum: "#dda0dd", powderblue: "#b0e0e6", purple: "#800080", rebeccapurple: "#663399", red: "#ff0000", rosybrown: "#bc8f8f", royalblue: "#4169e1", saddlebrown: "#8b4513", salmon: "#fa8072", sandybrown: "#f4a460", seagreen: "#2e8b57", seashell: "#fff5ee", sienna: "#a0522d", silver: "#c0c0c0", skyblue: "#87ceeb", slateblue: "#6a5acd", slategray: "#708090", slategrey: "#708090", snow: "#fffafa", springgreen: "#00ff7f", steelblue: "#4682b4", tan: "#d2b48c", teal: "#008080", thistle: "#d8bfd8", tomato: "#ff6347", turquoise: "#40e0d0", violet: "#ee82ee", wheat: "#f5deb3", white: "#ffffff", whitesmoke: "#f5f5f5", yellow: "#ffff00", yellowgreen: "#9acd32", plcolor: "#ff3333" }; var fortuneCookies = [ "Actions speak louder than words, Tip!" ,"A good man is hard to find, be good and try again :)" ,"A journey of a thousand smiles begins with a single tip" ,"A leopard cannot change its spots" ,"A little of what you fancy does you good" ,"All is fair in love and keno" ,"All publicity is good publicity - click that Thumbs-up!" ,"All talk and no tips makes Jack a dull boy" ,"All the world loves a lover - show some love by Tipping!" ,"All things come to those who wait - NOT!" ]; var knTryAgainMsgs = [ "No prize, please try again :)" ,"No prize, next one for sure!" ,"No prize on that one, pick another?" ,"No prize, but odds just got better on the next one!" ,"No prize, but great ones are waiting to be picked!" ,"No prize - great ones remain, please try again" ,"No prize, don't be sad, try again!" ,"No prize, life is short, might as well try another :)" ,"Not a winner this time, try again?" ,"Plenty winners on the board, just not that one, sorry!" ,"Not a prize, try again?" ,"No prize won, don't give up?" ]; init(); /* all the best from pbchnd (@gmail.com) */
© Copyright Chaturbate 2011- 2024. All Rights Reserved.