Apps Home
|
Create an App
fshgjkgfjhsd
Author:
gjhgjfhtreeeeeeeeee
Description
Source Code
Launch App
Current Users
Created by:
Gjhgjfhtreeeeeeeeee
//Bunny Keno based on Calvin06 var VERSION = '2.39'; var total_tipped = 0; var high_tip_username = null; var high_tip_amount = 0; var last_tip_username = null; var sentwin = false; var COMMAND_BOARD_STATUS = '/b'; var COMMAND_PRIZES = '/p'; var COMMAND_LB = "/lb"; var COMMAND_VERSION = "/version"; var CONFIG_ADVERT_MINUTES = 10; var EMOTE_TITLE = ' :kenoapp1 '; var EMOTE_STARS = ' :3star '; var EMOTE_STAR = ' :1star '; var nl = '\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501'; var description = '#tokenkeno '; var byline = 'by calvin06'; var firstTimeInit = true; var boardNumbers = new Array(); var boardPrizes = {}; var boardPrizesLeft = 0; var board = ''; var prizes = ''; var userPrizes = new Array(); var playerStats = {}; var gameStats = { firstplace: '', secondplace: '', thirdplace: '', firsttips: 0, secondtips: 0, thirdtips: 0 }; var partialTips = {}; cb.settings_choices = [{ name: 'boardnumbermax', type: 'int', minValue: 10, maxValue: 120, defaultValue: 69, label: 'Highest Number on Board' }, { name: 'boardnumbermin', type: 'int', minValue: 1, maxValue: 100, defaultValue: 1, label: 'Lowest Number on Board' }, { name: 'prizenumbermin', type: 'int', minValue: 1, maxValue: 119, defaultValue: 10, label: 'No random prizes below this number', required: false }, { name: 'goal_description', type: 'str', minLength: 1, maxLength: 255, defaultValue: 'Cum at Goal', label: 'Cleared Board Goal Description' }, { name: 'mvp_goal_description', type: 'str', minLength: 0, maxLength: 255, defaultValue: 'Snapchat or Video', label: 'Special prize for the MVP at game end', required: false }, { name: 'multitip', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Call multiple numbers with big tips?" }, { name: 'trackstats', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Show leader board?" }, { name: 'partialtips', type: 'choice', choice1: 'yes', choice2: 'no', defaultValue: 'yes', label: "Allow group tipping? (no wasted tips - small tips add to a progress goal towards the hightest number)" }, { name: 'prize1', type: 'str', minLength: 1, maxLength: 255, label: 'Prize 1 ', defaultValue: 'Blow a Kiss' }, { name: 'prize1num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 1 # (leave #\'s blank for random assignment)', defaultValue: 1, required: false }, { name: 'prize2', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 2 ', defaultValue: 'Spanks', required: false }, { name: 'prize2num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 2 #', defaultValue: 2, required: false }, { name: 'prize3', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 3 ', defaultValue: 'Awkward Dancing', required: false }, { name: 'prize3num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 3 #', defaultValue: 3, required: false }, { name: 'prize4', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 4 ', defaultValue: 'Boob Flash', required: false }, { name: 'prize4num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 4 #', defaultValue: 4, required: false }, { name: 'prize5', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 5 ', defaultValue: 'Spanks', required: false }, { name: 'prize5num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 5 #', defaultValue: 5, required: false }, { name: 'prize6', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 6 ', defaultValue: 'Request a Song', required: false }, { name: 'prize6num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 6 #', defaultValue: 6, required: false }, { name: 'prize7', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 7 ', defaultValue: 'Bend Over', required: false }, { name: 'prize7num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 7 #', defaultValue: 7, required: false }, { name: 'prize8', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 8 ', defaultValue: 'Up Close Bobbie Flash', required: false }, { name: 'prize8num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 8 #', defaultValue: 8, required: false }, { name: 'prize9', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 9 ', defaultValue: 'Bend Over', required: false }, { name: 'prize9num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 9 #', defaultValue: 9, required: false }, { name: 'prize10', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 10 ', defaultValue: 'Boob Spanks', required: false }, { name: 'prize10num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 10 #', required: false }, { name: 'prize11', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 11 ', defaultValue: '10 Spanks', required: false }, { name: 'prize11num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 11 #', required: false }, { name: 'prize12', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 12 ', defaultValue: '10 Spanks', required: false }, { name: 'prize12num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 12 #', required: false }, { name: 'prize13', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 13 ', defaultValue: '10 Spanks', required: false }, { name: 'prize13num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 13 #', required: false }, { name: 'prize14', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 14 ', defaultValue: '10 Spanks', required: false }, { name: 'prize14num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 14 #', required: false }, { name: 'prize15', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 15 ', defaultValue: '10 Spanks', required: false }, { name: 'prize15num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 15 #', required: false }, { name: 'prize16', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 16 ', defaultValue: '10 Spanks', required: false }, { name: 'prize16num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 16 #', required: false }, { name: 'prize17', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 17 ', defaultValue: '10 Spanks', required: false }, { name: 'prize17num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 17 #', required: false }, { name: 'prize18', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 18 ', defaultValue: 'Finger Suck', required: false }, { name: 'prize18num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 18 #', required: false }, { name: 'prize19', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 19 ', defaultValue: 'Finger Suck', required: false }, { name: 'prize19num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 19 #', required: false }, { name: 'prize20', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 20 ', defaultValue: 'Finger Suck', required: false }, { name: 'prize20num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 20 #', required: false }, { name: 'prize21', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 21 ', defaultValue: 'Finger Suck', required: false }, { name: 'prize21num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 21 #', required: false }, { name: 'prize22', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 22 ', defaultValue: 'Finger Suck', required: false }, { name: 'prize22num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 22 #', required: false }, { name: 'prize23', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 23 ', defaultValue: 'Finger Suck', required: false }, { name: 'prize23num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 23 #', required: false }, { name: 'prize24', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 24 ', defaultValue: 'Finger Suck', required: false }, { name: 'prize24num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 24 #', required: false }, { name: 'prize25', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 25 ', defaultValue: 'Bend Over', required: false }, { name: 'prize25num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 25 #', required: false }, { name: 'prize26', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 26 ', defaultValue: 'Bend Over', required: false }, { name: 'prize26num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 26 #', required: false }, { name: 'prize27', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 27 ', defaultValue: 'Bend Over', required: false }, { name: 'prize27num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 27 #', required: false }, { name: 'prize28', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 28 ', defaultValue: 'Bend Over', required: false }, { name: 'prize28num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 28 #', required: false }, { name: 'prize29', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 29 ', defaultValue: 'Bend Over', required: false }, { name: 'prize29num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 29 #', required: false }, { name: 'prize30', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 30 ', defaultValue: 'Bend Over', required: false }, { name: 'prize30num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 30 #', required: false }, { name: 'prize31', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 31 ', defaultValue: 'Bend Over', required: false }, { name: 'prize31num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 31 #', required: false }, { name: 'prize32', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 32 ', defaultValue: 'Up Close Bobbie Flash', required: false }, { name: 'prize32num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 32 #', required: false }, { name: 'prize33', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 33 ', defaultValue: 'Up Close Bobbie Flash', required: false }, { name: 'prize33num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 33 #', required: false }, { name: 'prize34', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 34 ', defaultValue: 'Up Close Bobbie Flash', required: false }, { name: 'prize34num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 34 #', required: false }, { name: 'prize35', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 35 ', defaultValue: 'Up Close Bobbie Flash', required: false }, { name: 'prize35num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 35 #', required: false }, { name: 'prize36', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 36 ', defaultValue: 'Up Close Bobbie Flash', required: false }, { name: 'prize36num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 36 #', required: false }, { name: 'prize37', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 37 ', defaultValue: 'Up Close Bobbie Flash', required: false }, { name: 'prize37num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 37 #', required: false }, { name: 'prize38', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 38 ', defaultValue: 'Up Close Bobbie Flash', required: false }, { name: 'prize38num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 38 #', required: false }, { name: 'prize39', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 39 ', defaultValue: 'Pussy Spread', required: false }, { name: 'prize39num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 39 #', required: false }, { name: 'prize40', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 40 ', defaultValue: 'Pussy Spread', required: false }, { name: 'prize40num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 40 #', required: false }, { name: 'prize41', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 41 ', defaultValue: 'Pussy Spread', required: false }, { name: 'prize41num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 41 #', required: false }, { name: 'prize42', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 42 ', defaultValue: 'Pussy Spread', required: false }, { name: 'prize42num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 42 #', required: false }, { name: 'prize43', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 43 ', defaultValue: 'Boob Spanks', required: false }, { name: 'prize43num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 43 #', required: false }, { name: 'prize44', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 44 ', defaultValue: 'Boob Spanks', required: false }, { name: 'prize44num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 44 #', required: false }, { name: 'prize45', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 45 ', defaultValue: 'Boob Spanks', required: false }, { name: 'prize45num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 45 #', required: false }, { name: 'prize46', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 46 ', defaultValue: 'Pussy Tease', required: false }, { name: 'prize46num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 46 #', required: false }, { name: 'prize47', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 47 ', defaultValue: 'Pussy Play', required: false }, { name: 'prize47num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 47 #', required: false }, { name: 'prize48', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 48 ', defaultValue: 'Blow Job Tease', required: false }, { name: 'prize48num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 48 #', required: false }, { name: 'prize49', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 49 ', defaultValue: '1 Random Video', required: false }, { name: 'prize49num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 49 #', required: false }, { name: 'prize50', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 50 ', defaultValue: '1 Video of your Choice', required: false }, { name: 'prize50num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 50 #', required: false }, { name: 'prize51', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 51 ', defaultValue: 'Snapchat', required: false }, { name: 'prize51num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 51 #', required: false }, { name: 'prize52', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 52 ', defaultValue: 'Butt Plug', required: false }, { name: 'prize52num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 52 #', required: false }, { name: 'prize53', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 53 ', defaultValue: 'Large Butt Plug', required: false }, { name: 'prize53num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 53 #', required: false }, { name: 'prize54', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 54 ', required: false }, { name: 'prize54num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 54 #', required: false }, { name: 'prize55', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 55 ', required: false }, { name: 'prize55num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 55 #', required: false }, { name: 'prize56', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 56 ', required: false }, { name: 'prize56num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 56 #', required: false }, { name: 'prize57', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 57 ', required: false }, { name: 'prize57num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 57 #', required: false }, { name: 'prize58', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 58 ', required: false }, { name: 'prize58num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 58 #', required: false }, { name: 'prize59', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 59 ', required: false }, { name: 'prize59num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 59 #', required: false }, { name: 'prize60', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 60 ', required: false }, { name: 'prize60num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 60 #', required: false }, { name: 'prize61', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 61 ', required: false }, { name: 'prize61num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 61 #', required: false }, { name: 'prize62', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 62 ', required: false }, { name: 'prize62num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 62 #', required: false }, { name: 'prize63', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 63 ', required: false }, { name: 'prize63num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 63 #', required: false }, { name: 'prize64', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 64 ', required: false }, { name: 'prize64num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 64 #', required: false }, { name: 'prize65', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 65 ', required: false }, { name: 'prize65num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 65 #', required: false }, { name: 'prize66', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 66 ', required: false }, { name: 'prize66num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 66 #', required: false }, { name: 'prize67', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 67 ', required: false }, { name: 'prize67num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 67 #', required: false }, { name: 'prize68', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 68 ', required: false }, { name: 'prize68num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 68 #', required: false }, { name: 'prize69', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 69 ', required: false }, { name: 'prize69num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 69 #', required: false }, { name: 'prize70', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 70 ', required: false }, { name: 'prize70num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 70 #', required: false }, { name: 'prize71', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 71 ', required: false }, { name: 'prize71num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 71 #', required: false }, { name: 'prize72', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 72 ', required: false }, { name: 'prize72num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 72 #', required: false }, { name: 'prize73', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 73 ', required: false }, { name: 'prize73num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 73 #', required: false }, { name: 'prize74', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 74 ', required: false }, { name: 'prize74num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 74 #', required: false }, { name: 'prize75', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 75 ', required: false }, { name: 'prize75num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 75 #', required: false }, { name: 'prize76', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 76 ', required: false }, { name: 'prize76num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 76 #', required: false }, { name: 'prize77', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 77 ', required: false }, { name: 'prize77num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 77 #', required: false }, { name: 'prize78', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 78 ', required: false }, { name: 'prize78num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 78 #', required: false }, { name: 'prize79', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 79 ', required: false }, { name: 'prize79num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 79 #', required: false }, { name: 'prize80', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 80 ', required: false }, { name: 'prize80num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 80 #', required: false }, { name: 'prize81', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 81 ', required: false }, { name: 'prize81num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 81 #', required: false }, { name: 'prize82', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 82 ', required: false }, { name: 'prize82num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 82 #', required: false }, { name: 'prize83', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 83 ', required: false }, { name: 'prize83num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 83 #', required: false }, { name: 'prize84', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 84 ', required: false }, { name: 'prize84num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 84 #', required: false }, { name: 'prize85', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 85 ', required: false }, { name: 'prize85num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 85 #', required: false }, { name: 'prize86', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 86 ', required: false }, { name: 'prize86num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 86 #', required: false }, { name: 'prize87', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 87 ', required: false }, { name: 'prize87num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 87 #', required: false }, { name: 'prize88', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 88 ', required: false }, { name: 'prize88num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 88 #', required: false }, { name: 'prize89', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 89 ', required: false }, { name: 'prize89num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 89 #', required: false }, { name: 'prize90', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 90 ', required: false }, { name: 'prize90num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 90 #', required: false }, { name: 'prize91', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 91 ', required: false }, { name: 'prize91num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 91 #', required: false }, { name: 'prize92', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 92 ', required: false }, { name: 'prize92num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 92 #', required: false }, { name: 'prize93', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 93 ', required: false }, { name: 'prize93num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 93 #', required: false }, { name: 'prize94', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 94 ', required: false }, { name: 'prize94num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 94 #', required: false }, { name: 'prize95', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 95 ', required: false }, { name: 'prize95num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 95 #', required: false }, { name: 'prize96', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 96 ', required: false }, { name: 'prize96num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 96 #', required: false }, { name: 'prize97', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 97 ', required: false }, { name: 'prize97num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 97 #', required: false }, { name: 'prize98', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 98 ', required: false }, { name: 'prize98num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 98 #', required: false }, { name: 'prize99', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 99 ', required: false }, { name: 'prize99num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 99 #', required: false }, { name: 'prize100', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 100 ', required: false }, { name: 'prize100num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 100 #', required: false }, { name: 'prize101', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 101 ', required: false }, { name: 'prize101num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 101 #', required: false }, { name: 'prize102', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 102 ', required: false }, { name: 'prize102num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 102 #', required: false }, { name: 'prize103', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 103 ', required: false }, { name: 'prize103num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 103 #', required: false }, { name: 'prize104', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 104 ', required: false }, { name: 'prize104num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 104 #', required: false }, { name: 'prize105', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 105 ', required: false }, { name: 'prize105num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 105 #', required: false }, { name: 'prize106', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 106 ', required: false }, { name: 'prize106num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 106 #', required: false }, { name: 'prize107', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 107 ', required: false }, { name: 'prize107num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 107 #', required: false }, { name: 'prize108', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 108 ', required: false }, { name: 'prize108num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 108 #', required: false }, { name: 'prize109', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 109 ', required: false }, { name: 'prize109num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 109 #', required: false }, { name: 'prize110', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 110 ', required: false }, { name: 'prize110num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 110 #', required: false }, { name: 'prize111', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 111', required: false }, { name: 'prize111num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 111 #', required: false }, { name: 'prize112', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 112 ', required: false }, { name: 'prize112num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 112 #', required: false }, { name: 'prize113', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 113 ', required: false }, { name: 'prize113num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 113 #', required: false }, { name: 'prize114', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 114 ', required: false }, { name: 'prize114num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 114 #', required: false }, { name: 'prize115', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 115 ', required: false }, { name: 'prize115num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 115 #', required: false }, { name: 'prize116', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 116 ', required: false }, { name: 'prize116num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 116 #', required: false }, { name: 'prize117', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 117 ', required: false }, { name: 'prize117num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 117 #', required: false }, { name: 'prize118', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 118 ', required: false }, { name: 'prize118num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 118 #', required: false }, { name: 'prize119', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 119 ', required: false }, { name: 'prize119num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 119 #', required: false }, { name: 'prize120', type: 'str', minLength: 0, maxLength: 255, label: 'Prize 120 ', required: false }, { name: 'prize120num', type: 'int', minValue: 1, maxValue: 120, label: 'Prize 120 #', required: false }]; var CONFIG_PRIZENUMBER = 120; cb.onTip(function (tip) { total_tipped += tip['amount']; last_tip_username = tip['from_user']; handleTip(tip['amount'], tip['from_user']); if (numbersRemaining() < 1) { if (!sentwin) { drawBoard(null); cb.changeRoomSubject(description + ' Board Cleared! Goal met [' + cb.settings.goal_description + ']') } sentwin = true } cb.drawPanel() }); cb.onDrawPanel(function (user) { return { 'template': '3_rows_of_labels', 'row1_label': 'Board Count:', 'row1_value': '' + numbersRemaining() + ' #s / ' + prizesRemaining() + ' prizes', 'row2_label': 'Tips / On Board:', 'row2_value': '' + total_tipped + ' / ' + getTipCount(), 'row3_label': 'MVP:', 'row3_value': formatUsername(gameStats.firstplace) + ' (' + gameStats.firsttips + ')' } }); cb.onMessage(function (msg) { if (msg['m'].match(/(^|\s)!b|\/b(\s|$)/)) { if (msg['user'] == cb.room_slug || msg['is_mod']) { msg['m'] = msg['m'] + " (token keno: board sent to all)"; drawBoard(null) } else if (msg['has_tokens']) { msg['m'] = msg['m'] + " (token keno: board sent to " + msg['user'] + ")"; drawBoard(msg['user']) } else { msg['m'] = msg['m'] + " (token keno: please buy tokens to play!)"; msg['X-Spam'] = true } } if (msg['m'].match(/(^|\s)!p|\/p(\s|$)/)) { if (msg['user'] == cb.room_slug || msg['is_mod']) { msg['m'] = msg['m'] + " (token keno: prize list sent to all)"; drawPrizes() } else if (msg['has_tokens']) { msg['m'] = msg['m'] + " (token keno: prize list sent to " + msg['user'] + ")"; drawPrizes(msg['user']) } else { msg['m'] = msg['m'] + " (token keno: please buy tokens to play!)"; msg['X-Spam'] = true } } if (msg['m'].match(/(^|\s)!lb|\/lb(\s|$)/)) { if (msg['user'] == cb.room_slug || msg['is_mod']) { msg['m'] = msg['m'] + " (token keno: leaderboard sent to all)"; cb.sendNotice(getLeaderBoard()) } else if (msg['has_tokens']) { msg['m'] = msg['m'] + " (token keno: leaderboard sent to " + msg['user'] + ")"; cb.sendNotice(getLeaderBoard(), msg['user']) } else { msg['m'] = msg['m'] + " (token keno: please buy tokens to play!)"; msg['X-Spam'] = true } } if (msg['m'].match(/(^|\s)!version|\/version(\s|$)/)) { cb.sendNotice(VERSION, msg['user']) } return msg }); cb.tipOptions(function (user) { return }); function handleTip(tip, user) { var out = ''; if (!sentwin) { if (user in playerStats) { playerStats[user].totaltips += tip } else { playerStats[user] = { totaltips: tip, winstreak: 0, losestreak: 0, numberscalled: 0 } } if (boardNumbers.indexOf(tip) > -1) { if (cb.settings.partialtips == 'yes' && tip == getPartialTip()) out += (out != '' ? '\n': '') + handlePartialTip(tip, user); else out += (out != '' ? '\n': '') + drawNumberCalled(tip, user, null) } else { var closeout = getPartialTip(); if (closeout > 0) { if ((cb.settings.partialtips == 'yes' && tip == closeout) || (cb.settings.partialtips == 'yes' && cb.settings.multitip == 'yes' && tip >= closeout)) { out += (out != '' ? '\n': '') + handlePartialTip(closeout, user); tip -= closeout } } var next = getNextBestNumber(tip); if (next > 0 && cb.settings.multitip == 'yes') { tip = tip - next; while (boardNumbers.indexOf(next) > -1) { out += (out != '' ? '\n': '') + drawNumberCalled(next, user, null); next = getNextBestNumber(tip); tip -= next } } if (tip > 0 && cb.settings.partialtips == 'yes' && tip < boardNumbers[boardNumbers.length - 1]) { if (hasPartial()) { if (tip <= getPartialTip() || cb.settings.multitip == 'yes') { out += (out != '' ? '\n': '') + handlePartialTip(tip, user) } } else { out += (out != '' ? '\n': '') + createPartialTip(tip, user) } } else { if (tip > 0 && hasPartial() && boardNumbers.length == 0) { var lastamount = getPartialTip(); if (tip <= lastamount) { out += (out != '' ? '\n': '') + handlePartialTip(tip, user) } else { out += (out != '' ? '\n': '') + handlePartialTip(lastamount, user) } } } } trackTips(user, tip); if (out != '') { updateBoard(); cb.sendNotice(out); cb.sendNotice(getAdvert(), '', '', '', 'bold') } } } function handlePartialTip(tip, user) { var out = ''; if (hasPartial()) { for (var p in partialTips) { if (!inArray(user, partialTips[p].users)) partialTips[p].users.push(user); if (tip >= getPartialTip()) { out += drawNumberCalled(p, null, partialTips[p].users); delete partialTips[p] } else { partialTips[p].tips += tip; out += '-- Added (' + tip + ') tokens to group number [ ' + p + ' ]. Remaining: ' + getPartialTip() } } } return out } function createPartialTip(tip, user) { var out = ''; var highestNum = boardNumbers[boardNumbers.length - 1]; boardNumbers.splice(boardNumbers.indexOf(highestNum), 1); var users = [user]; partialTips[highestNum] = { tips: tip, users: users }; out += '-- Group tips started for number [ ' + highestNum + ' ]. Remaining: ' + getPartialTip(); return out } function updateSubject() { var newSubject = description + ' Uncover prizes by tipping the numbers on the board. \nGoal is: [' + cb.settings.goal_description.replace("\'", "") + ']\nType ' + COMMAND_BOARD_STATUS + ' to see the board. Type ' + COMMAND_PRIZES + ' to see prizes. '; if (cb.settings.mvp_goal_description && cb.settings.mvp_goal_description != '') newSubject += ' MVP wins [' + cb.settings.mvp_goal_description.replace("\'", "") + '] '; cb.changeRoomSubject(newSubject) } function getAdvert() { var advert = 'Type ' + COMMAND_BOARD_STATUS + ' for the board. Type ' + COMMAND_PRIZES + ' for prize list.'; if (cb.settings.multitip == 'yes') advert += ' Big tips call multiples!'; if (cb.settings.partialtips == 'yes') advert += ' Group tips enabled.'; return advert } function getTipCount() { var count = 0; for (var i = 0; i < boardNumbers.length; i++) { count += boardNumbers[i] } count += getPartialTip(); return count } function formatUsername(val) { if (!val || val == 'undefined') { return "--" } else { return val.substring(0, 12) } } function drawNumberCalled(n, user, users) { var out = ''; if (user) { out += '-- Number called [ ' + n + ' ]\n'; boardNumbers.splice(boardNumbers.indexOf(n), 1) } else if (users) { out += '-- GROUP Number called [ ' + n + ' ]\n' } if (n in boardPrizes) { out += EMOTE_STARS + ' ** WINNER ** - Prize won: ' + boardPrizes[n]; if (user) userPrizes.push({ prize: boardPrizes[n], user: user, number: n }); else if (users) userPrizes.push({ prize: boardPrizes[n], user: arrayToString(users), number: n }); delete boardPrizes[n]; boardPrizesLeft--; updatePrizes() } else { out += '-------- No prize won, try again' } return out } function drawBoard(user) { if (user) { cb.sendNotice(board, user) } else { cb.sendNotice(board) } } function updateBoard() { var out = 'Token Board\n'; out += nl + '\n'; if (numbersRemaining() < 1) { out += EMOTE_STARS + ' Board Cleared!!! \n' + EMOTE_STARS + ' Goal met: ' + cb.settings.goal_description + '\n'; if (cb.settings.mvp_goal_description && cb.settings.mvp_goal_description != '') { out += EMOTE_STAR + ' CONGRATS ' + gameStats.firstplace + '! \n' + EMOTE_STAR + ' You won MVP prize: ' + cb.settings.mvp_goal_description + '\n' } if (cb.settings.trackstats == 'yes') out += getLeaderBoard() + '\n' } else { var mod = 10; var col = 1; if (cb.settings.boardnumbermax - cb.settings.boardnumbermin > 100) mod = 20; var gt = 0; if (cb.settings.partialtips == 'yes') gt = getPartialTipNumber(); for (var i = cb.settings.boardnumbermin; i <= cb.settings.boardnumbermax; i++) { out += ' '; if (boardNumbers.indexOf(i) > -1) { out += pad(i,2) } else { out += (i == gt ? 'gt': ':angie_blink') } out += ' '; if (col == mod) { out += '\n'; col = 1 } else { col++ } } } if (out.substring(out.length - 1) != '\n') out += '\n'; out += nl; for (var p in partialTips) { out += '\nGroup tipping open on [ ' + p + ' ]. Remaining: ' + getPartialTip() } board = out } function drawPrizes(user) { if (user) { cb.sendNotice(prizes, user) } else { cb.sendNotice(prizes) } } function updatePrizes() { var out = nl + '\nPrizes won (oldest to newest):\n'; if (userPrizes.length == 0) out += 'None\n'; for (var i = 0; i < userPrizes.length; i++) { out += ' ** ' + userPrizes[i].prize + ' [won by ' + userPrizes[i].user + ' on ' + userPrizes[i].number + ']\n' } out += '\nPrizes on the board (in random order):\n'; if (boardPrizesLeft == 0) out += 'None\n'; var randomizedKeys = Object.keys(boardPrizes); randomizedKeys = shuffle(randomizedKeys); for (var i = 0; i < randomizedKeys.length; i++) { out += ' ** ' + boardPrizes[randomizedKeys[i]] + '\n' } out += nl; prizes = out } function getNextBestNumber(tip) { var num = 0; for (var i = 0; i < boardNumbers.length; i++) { if (boardNumbers[i] <= tip) { num = boardNumbers[i] } } return num } function hasPartial() { var out = false; for (var p in partialTips) { out = true } return out } function getPartialTip() { var out = 0; for (var p in partialTips) { out = p - partialTips[p].tips } return out } function getPartialTipNumber() { var out = 0; for (var p in partialTips) { out = p } return out } function trackTips(user, tip) { var out = ''; var change = false; if (playerStats[user].totaltips > gameStats.firsttips) { if (gameStats.firstplace != user) { change = true; if (gameStats.secondplace != user) { gameStats.thirdplace = gameStats.secondplace; gameStats.thirdtips = gameStats.secondtips } gameStats.secondplace = gameStats.firstplace; gameStats.secondtips = gameStats.firsttips; gameStats.firstplace = user } gameStats.firsttips = playerStats[user].totaltips; if (change) out += user + ' is the new MVP! ' + getLeaderBoard() } else if (playerStats[user].totaltips > gameStats.secondtips) { if (gameStats.secondplace != user) { change = true; gameStats.thirdplace = gameStats.secondplace; gameStats.thirdtips = gameStats.secondtips; gameStats.secondplace = user } gameStats.secondtips = playerStats[user].totaltips; if (change) out += user + ' takes second! ' + getLeaderBoard() } else if (playerStats[user].totaltips > gameStats.thirdtips) { if (gameStats.thirdplace != user) { change = true; gameStats.thirdplace = user } gameStats.thirdtips = playerStats[user].totaltips; if (change) out += user + ' takes third! ' + getLeaderBoard() } if (cb.settings.trackstats == 'yes' && out != '') cb.sendNotice(out) } function getLeaderBoard() { var out = ''; if (gameStats.firstplace && gameStats.firstplace != '') out += 'Keno Tip Leaders - 1. ' + gameStats.firstplace + ' (' + gameStats.firsttips + ') '; if (gameStats.secondplace && gameStats.secondplace != '') out += ' 2. ' + gameStats.secondplace + ' (' + gameStats.secondtips + ') '; if (gameStats.thirdplace && gameStats.thirdplace != '') out += ' 3. ' + gameStats.thirdplace + ' (' + gameStats.thirdtips + ') '; if (out == '') out += 'No leaders yet. Please tip to play!'; return out } d = function (s) { var e = {}, i, b = 0, c, x, l = 0, a, r = '', w = String.fromCharCode, L = s.length; var A = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; for (i = 0; i < 64; i++) { e[A.charAt(i)] = i } for (x = 0; x < L; x++) { c = e[s.charAt(x)]; b = (b << 6) + c; l += 6; while (l >= 8) { ((a = (b >>> (l -= 8)) & 0xff) || (x < (L - 2))) && (r += w(a)) } } return r }; function pad(number, length) { var str = '' + number; while (str.length < length) { str = '0' + str } return str } function sanitize(str) { if (str == null) return ''; return str.replace(/[^a-zA-Z 0-9]+/g, '') } function inArray(str, arry) { for (var i = 0; i < arry.length; i++) { if (arry[i] === str) return true } return false } function arrayToString(arry) { var out = ''; for (var i = 0; i < arry.length; i++) { out += arry[i]; if (i < (arry.length - 1)) out += ', ' } return out } function shuffle(o) { for (var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); return o } function numbersRemaining() { return (hasPartial() ? boardNumbers.length + 1 : boardNumbers.length) } function prizesRemaining() { return boardPrizesLeft } function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min } function getRandomArrayVal(arry) { return arry[Math.floor(Math.random() * arry.length)] } function setupBoard() { var prizeTextArr = new Array(); var prizeNumberArr = new Array(); var availableSlotsArr = new Array(); var lowestPrizeNum = cb.settings.boardnumbermin; if (cb.settings.prizenumbermin && cb.settings.prizenumbermin > cb.settings.boardnumbermin) lowestPrizeNum = cb.settings.prizenumbermin; for (var x = 1; x <= CONFIG_PRIZENUMBER; x++) { prizeTextArr.push(eval('cb.settings.prize' + x)); prizeNumberArr.push(eval('cb.settings.prize' + x + 'num')) } for (var y = lowestPrizeNum; y <= cb.settings.boardnumbermax; y++) { availableSlotsArr.push(y) } for (var i = 0; i < prizeNumberArr.length; i++) { if (prizeNumberArr[i] != null && prizeNumberArr[i] != '') { if (prizeNumberArr[i] >= cb.settings.boardnumbermin && prizeNumberArr[i] <= cb.settings.boardnumbermax) { boardPrizes[prizeNumberArr[i]] = sanitize(prizeTextArr[i]); if (availableSlotsArr.indexOf(prizeNumberArr[i]) > -1) availableSlotsArr.splice(availableSlotsArr.indexOf(prizeNumberArr[i]), 1); prizeTextArr[i] = '' } else { if (prizeNumberArr[i] < cb.settings.boardnumbermin || prizeNumberArr[i] > cb.settings.boardnumbermax) { cb.sendNotice('WARNING: Board num specified for a prize does not exist. Randomly placing...', cb.room_slug) } } } } for (var i = 0; i < prizeTextArr.length; i++) { if (prizeTextArr[i] != null && prizeTextArr[i] != '') { if (availableSlotsArr.length > 0) { randomNum = getRandomArrayVal(availableSlotsArr); availableSlotsArr.splice(availableSlotsArr.indexOf(randomNum), 1); boardPrizes[randomNum] = sanitize(prizeTextArr[i]) } else { cb.sendNotice('WARNING: Board not big enough to place all the prizes. Some skipped...', cb.room_slug) } } } for (var j = cb.settings.boardnumbermin; j <= cb.settings.boardnumbermax; j++) { boardNumbers.push(j) } for (var k in boardPrizes) { if (boardPrizes.hasOwnProperty(k)) { boardPrizesLeft++ } } } function advert_gamerules() { if (!sentwin) { cb.sendNotice(EMOTE_TITLE + ' Tip a number on the board to play! Type ' + COMMAND_BOARD_STATUS + ' to see the board. Type ' + COMMAND_PRIZES + ' to see prizes remaining.', '', '', '', 'bold'); cb.setTimeout(advert_gamerules, (CONFIG_ADVERT_MINUTES * 70000)) } } function advert_mvp() { if (!sentwin) { if (cb.settings.mvp_goal_description && cb.settings.mvp_goal_description != '') { cb.sendNotice('MVP wins [' + cb.settings.mvp_goal_description.replace("\'", "") + '] with cleared board!'); cb.setTimeout(advert_mvp, (CONFIG_ADVERT_MINUTES * 80000)) } } } function advert_leaderboard() { if (!sentwin) { if (getLeaderBoard() != '') { cb.sendNotice(getLeaderBoard()) } cb.setTimeout(advert_leaderboard, (CONFIG_ADVERT_MINUTES * 60000)) } } function init() { if (d('YnkgY2FsdmluMDY=') == byline) { if (cb.settings.boardnumbermin <= cb.settings.boardnumbermax) { setupBoard(); updateBoard(); updatePrizes(); updateSubject(); drawBoard(null); cb.drawPanel(); cb.sendNotice(EMOTE_TITLE + ' ' + byline, '', '', '', 'bold'); cb.setTimeout(advert_gamerules, (CONFIG_ADVERT_MINUTES * 70000)); cb.setTimeout(advert_mvp, (CONFIG_ADVERT_MINUTES * 80000)); if (cb.settings.trackstats == 'yes') cb.setTimeout(advert_leaderboard, (CONFIG_ADVERT_MINUTES * 60000)) } else { cb.sendNotice('ERROR: Min number can\'t be bigger than max, restart the app', cb.room_slug) } } else { cb.sendNotice('ERROR: This is a copy of the original app. Please use Token Keno ' + d('YnkgY2FsdmluMDY='), cb.room_slug) } } init();
© Copyright Chaturbate 2011- 2024. All Rights Reserved.