Bots Home
|
Create an App
Babo Dice beta2
Author:
babo1
Description
Source Code
Launch Bot
Current Users
Created by:
Babo1
/** * Babo Dice * based on Roll the Dice: Improved Version: 1.1.1 by kingchris_ */ cb.settings_choices = [{ name: 'tokens', type: 'int', minValue: 1, label: 'price (33)', defaultValue: 33 }, { name: 'prize_2', type: 'str', label: 'Prize for 2 (Pussy hair)', defaultValue: 'Pussy hair' }, { name: 'prize_3', type: 'str', label: 'Prize for 3 (Boobs)', defaultValue: 'Boobs' }, { name: 'prize_4', type: 'str', label: 'Prize for 4 (Stocking)', defaultValue: 'Stocking' }, { name: 'prize_5', type: 'str', label: 'Prize for 5 (Feet)', defaultValue: 'Feet' }, { name: 'prize_6', type: 'str', label: 'Prize for 6 (Spank)', defaultValue: 'Spank' }, { name: 'prize_7', type: 'str', label: 'Prize for 7 (Meow)', defaultValue: 'Meow' }, { name: 'prize_8', type: 'str', label: 'Prize for 8 (Doggy)', defaultValue: 'Doggy' }, { name: 'prize_9', type: 'str', label: 'Prize for 9 (Kiss)', defaultValue: 'Kiss' }, { name: 'prize_10', type: 'str', label: 'Prize for 10 (Act cute)', defaultValue: 'Act cute' }, { name: 'prize_11', type: 'str', label: 'Prize for 11 (Ass)', defaultValue: 'Ass 屁股' }, { name: 'prize_12', type: 'str', label: 'Prize for 12 (Camel toe)', defaultValue: 'Camel toe' }, { name: 'prize_13', type: 'str', label: 'Prize for 13 (Pussy))', defaultValue: 'Pussy' }, ]; /* modified by Derek */ var remove_winning_prize = 'No'; var die_type = 'Traditional'; var multirolls = 1; var minimum_rolls = 20; var rarechance = 5; var notice_wait_time = 2; var change_room_subject = 'No' var price = cb.settings.tokens; var langTokens = (price > 1) ? 'tokens' : 'token'; var numberOfSides = (die_type == 'Traditional') ? 6 : 10; var multiRolls = multirolls; var lastRoller = '--'; var lastPrizeWon = '--'; var rollCounter = 0; var tipCounter = 0; var winners = []; var prizes = []; var minimumRollsToGetRareDice = parseInt(minimum_rolls); var maxOutcome = (die_type == 'Traditional') ? 13 : 21; var dieImagePrefix = (die_type == 'Traditional') ? ':reddie___' : ':cdie'; var rareChance = parseInt(cb.settings.rarechance); // percent chance of rolling a RARE (minimum rolls must also be met) cb.onTip(function(tip) { var maxTip = multiRolls * price; var tipAmount = parseInt(tip['amount']); // check to see if tip was for a dice roll if (tipAmount >= price && (tipAmount <= maxTip) && (tipAmount % price === 0)) { var numberOfRolls = Math.floor(tipAmount / price); for (var i = 0; i < numberOfRolls; i++) { roll(tip['from_user']); lastRoller = tip['from_user']; } } else { // Tip was for something else, don't roll the dice var textColor = '#000000'; var bgColor = '#D9FAD7'; //cb.sendNotice('Tip was not for dice roll.', '', bgColor, textColor, 'bold'); //tipCounter += parseInt(tip['amount']); cb.drawPanel(); } }); cb.onDrawPanel(function(user) { return { 'template': '3_rows_12_22_31', 'row1_label': 'Last prize won:', 'row1_value': lastPrizeWon, 'row2_label': 'Last player:', 'row2_value': lastRoller, 'row3_value': tipCounter + ' ' + langTokens + ' received / rolled ' + rollCounter + ' time(s)' }; }); cb.onEnter(function(user) { showAppAd(user['user']); }); cb.onMessage(function(msg) { if (msg['m'].match(/!winners/i)) { msg['X-Spam'] = true; showPrizesWon(msg['user']); } else if (msg['m'].match(/!prizes/i)) { msg['X-Spam'] = true; if (msg['m'].match(/all/i) && ((msg['is_mod'] === true) || (msg['user'] == cb.room_slug))) { showPrizes(); } else { showPrizes(msg['user']); } } return msg; }); // https://stackoverflow.com/a/1527820 function getRandomInt(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; } function roll(username) { var prize = 'A Thank You!'; rollCounter++; var die1 = getRandomInt(1, numberOfSides); var die2 = getRandomInt(1, numberOfSides); // see if there's a chance we can roll a rare die if (rollCounter > minimumRollsToGetRareDice) { if (getRandomInt(0, 100) <= rareChance) { if (Math.random() <= 0.5) die1 = numberOfSides + 1; else die2 = numberOfSides + 1; } } var total = die1 + die2; var winner = false; if (total >= 1) { winner = true; prize = cb.settings['prize_' + total]; } else { winner = false; } var prizeIndex = (total == maxOutcome) ? prizes.indexOf(prize + ' (RARE)') : prizes.indexOf(prize); if (prizeIndex >= 0) { if (remove_winning_prize == 'Yes') prizes.splice(prizeIndex, 1); } else { prize = 'A Thank You!'; } var strPrize = (total == maxOutcome) ? 'RARE PRIZE' : 'Prize'; var dieImage1 = dieImagePrefix + die1; var dieImage2 = dieImagePrefix + die2; // 7th die image is missing from the :reddie_ emoticon set so use the the old :reddie set if (die_type == 'Traditional') { if (die1 == 7) dieImage1 = ":reddie7"; else if (die2 == 7) dieImage2 = ":reddie7"; } var msg = dieImage1 + " " + dieImage2 + "\n"; msg += username + " rolled " + total + "! \n"; msg += "Roll #" + rollCounter + " | " + strPrize + ": " + prize; var textColor = '#000000'; var bgColor = '#D9FAD7'; if (winner) textColor = '#067D00'; if (total == maxOutcome) { bgColor = '#FFDBF3'; textColor = '#A805A6'; } cb.sendNotice(msg, '', bgColor, textColor, 'bold'); lastPrizeWon = prize; prize = (total == maxOutcome) ? "(RARE) " + prize : prize; winners.push("Roll #" + rollCounter + " (" + total + "): " + username + " - " + prize); cb.drawPanel(); } function setPrizes() { var rareText = ''; for (var i = 2; i <= maxOutcome; i++) { if (i == maxOutcome) rareText = "(RARE) "; prizes.push(cb.settings['prize_' + i] + rareText); } } function showPrizes(username) { var msg = "SORRY! There are no prizes left in the list, but thank you for the tip."; if (prizes.length) { var rareText = ''; msg = "\n\u2666\u2666 Babo Dice Rewards \u2666\u2666\n\n"; for (var i = 2; i <= maxOutcome; i++) { // if (i == maxOutcome) rareText = "(RARE) "; if (prizes.indexOf(cb.settings['prize_' + i] + rareText) >= 0) msg += "Roll " + i + " - " + rareText + cb.settings['prize_' + i] + "\n"; } } cb.sendNotice(msg, username, '#222222', '#50e1f4', 'bold'); } function showPrizesWon(username) { var msg = "\n\u2666\u2666 Babo Dice Last 20 Winners \u2666\u2666\n\n"; msg += "List sorted in chronological order\n"; if (winners.length === 0) { cb.sendNotice('No one has won anything yet. Roll the dice to win a prize!', username, '', '', 'bold'); } else { var recentWinners = winners.slice(-20); for (var i = 0; i < recentWinners.length; i++) msg += recentWinners[i] + "\n"; cb.sendNotice(msg, username, '#FFF0DE', '#8A4900', 'bold'); } } function advertise() { showAppAd(); cb.setTimeout(advertise, parseInt(notice_wait_time) * 60000); } function showAppAd(username) { var msg = ":reddir\n"; msg += "Roll the Dice! \n"; msg += "\n\u2666 Tip exactly " + price + " " + langTokens + " to roll the dice. \n"; msg += "\u2666 Type \"!prizes\" to see the list of prizes. \n"; msg += "\u2666 Type \"!prizes all\" to send the list to all viewers if you're a mod or the broadcaster.\n"; msg += "\u2666 Type \"!winners\" to see a list of the last 20 winners.\n"; msg += "********************************************"; cb.sendNotice(msg, username, '#fff799', '#107888', 'bold'); } function init() { setPrizes(); advertise(); if (cb.settings.change_room_subject == 'Yes') { cb.changeRoomSubject('Tip ' + price + ' ' + langTokens + ' to roll the dice and win a prize!'); } } init();
© Copyright Chaturbate 2011- 2025. All Rights Reserved.