slot machine
Author: hilumu
Description Source Code Launch Bot Current Users

Short Description:

/** * Bot: Slot Machine * Version: 1.01 * Author: zingknaat * Date: 01.19.14 */

Full Description

cb.settings_choices = [
{name: 'tokens', type: 'int', label: 'Cost per spin (in tokens)', defaultValue: 25},
{name: 'notice_wait_time', type: 'choice', label: 'Notification Time (in minutes)',
choice1: 1, choice2: 2, choice3: 3, choice4: 4, choice5: 5, choice6: 10, choice7: 15, choice8: 20, choice9: 25, choice10: 30,
choice11: 45, choice12: 60, defaultValue: 10},
{name: 'jackpot_minimum', type:'int', label:'Minimum number tokens before jackpot',
defaultValue:1000},
{name: 'prize_1', type: 'str', label: 'Jackpot prize (3 dildos)', defaultValue:'cum'},
{name: 'prize_2', type: 'str', label: '2nd place prize (3 sevens)'},
{name: 'prize_3', type: 'str', label: '3rd place prize (3 fleshlights)'},
{name: 'prize_4', type: 'str', label: '4th place prize (3 bottles of lube)'},
{name: 'prize_5', type: 'str', label: '5th place prize (any object and 2 cherries)'},
{name: 'prize_6', type: 'str', label: '6th place prize (any combination of condom/dildo)'},
{name: 'prize_7', type: 'str', label: '7th place prize (any combination and 1 cherry)'}
];

var langTokens = (cb.settings.tokens > 1) ? 'tokens' : 'token';
var lastPlayer = '--';
var lastPrizeWon = '--';
var spinCounter = 0;
var tipCounter = 0;
var prizesWon = Array();
var dildo = ':sm_dildo';
var lube = ':sm_lube';
var seven = ':sm_seven';
var fleshlight = ':sm_fleshlight';
var cherry = ':sm_cherry';
var condom = ':sm_condom';
var slotPieces = Array(dildo, lube, seven, fleshlight, cherry, condom);

cb.onTip(function (tip) {
tipCounter += parseInt(tip['amount']);
if (parseInt(tip['amount']) >= cb.settings.tokens) {
var numberOfSpins = Math.floor(parseInt(tip['amount'])/cb.settings.tokens);
for(var i=1;i<=numberOfSpins;i++) {
cb.setTimeout(function() {
spin(tip['from_user']);
}, 2000*i);
}
}
});

cb.onEnter(function (user) {
var notices = "Welcome to my room, " + user['user'] + ". We are playing the slot machine.\n";
notices += 'Tip ' + cb.settings.tokens + ' ' + langTokens + ' to spin the reels.\n';
notices += 'Type "/p" to see the 7 possible prizes.\n';
notices += 'Type "/w" to see a list of the last 20 winners.';
cb.sendNotice(notices, user['user'], '', '#FF6600', 'bold');
});

cb.onMessage(function(msg) {
if(msg['m'].match(/\/w/i)) {
msg['X-Spam'] = true;
showPrizesWon(msg['user']);
} else if(msg['m'].match(/\/p/i)) {
msg['X-Spam'] = true;
showPrizes(msg['user']);
}

return msg;
});

function getSlotPiece() {
var piece = slotPieces[Math.floor(Math.random() * slotPieces.length)];
if((piece == dildo) && (spinCounter%2 != 0)) {
return cherry;
}
return piece;
}

function getRow() {
var row = getSlotPiece() + ' ' + getSlotPiece() + ' ' + getSlotPiece();
var dildoMatches = row.match(/dildo/g);
if(dildoMatches != null) {
var numberOfDildos = dildoMatches.length;
}
if((numberOfDildos == 3) && (cb.settings.jackpot_minimum > tipCounter)) {
getRow();
}
return row;
}

function spin(username) {
spinCounter++;
var prize = '--';
var row1 = getRow();
var row2 = getRow();
var row3 = getRow();

var dildoMatches = row2.match(/dildo/g);
if(dildoMatches != null) {
var numberOfDildos = dildoMatches.length;
}
var lubeMatches = row2.match(/lube/g);
if(lubeMatches != null) {
var numberOfLubes = lubeMatches.length;
}
var fleshlightMatches = row2.match(/fleshlight/g);
if (fleshlightMatches != null) {
var numberOfFleshlights = fleshlightMatches.length;
}
var condomMatches = row2.match(/condom/g);
if (condomMatches != null) {
var numberOfCondoms = condomMatches.length;
}
var sevenMatches = row2.match(/seven/g);
if (sevenMatches != null) {
var numberOfSevens = sevenMatches.length;
}
var cherryMatches = row2.match(/cherry/g);
if (cherryMatches != null) {
var numberOfCherries = cherryMatches.length;
}

var notices = row1 + "\n";
notices += row2 + " <-- pay line \n";
notices += row3;
cb.sendNotice(notices);

if (numberOfDildos == 3) {
prize = cb.settings.prize_1;
} else if (numberOfSevens == 3) {
prize = cb.settings.prize_2;
} else if (numberOfFleshlights == 3) {
prize = cb.settings.prize_3;
} else if (numberOfLubes == 3) {
prize = cb.settings.prize_4;
} else if (numberOfCherries == 2) {
prize = cb.settings.prize_5;
} else if ((numberOfCondoms == 1 && numberOfDildos == 2) || (numberOfCondoms == 2 && numberOfDildos == 1)) {
prize = cb.settings.prize_6;
} else if ((numberOfCherries == 1) || (numberOfCherries == 3)) {
prize = cb.settings.prize_7;
}

lastPlayer = username;

if(prize != '--') {
lastPlayer = username;
lastPrizeWon = prize;
prizesWon.push(prize + ' - ' + username);
cb.sendNotice(username + ' won a prize! Prize: ' + prize, '', '#99FF99', '', 'bold');
} else {
cb.sendNotice(username + ' did not win anything. :cry', '', '', '#996633', 'bold');
}

return prize;
}

function showPrizes(username) {
var notices = '**** Possible Prizes ****\n';
notices += '1st) 3 dildos (jackpot) = ' + cb.settings.prize_1 + '\n';
notices += '2nd) 3 sevens = ' + cb.settings.prize_2 + '\n';
notices += '3rd) 3 Fleshlights = ' + cb.settings.prize_3 + '\n';
notices += '4th) 3 bottles of Lube = ' + cb.settings.prize_4 + '\n';
notices += '5th) Any piece + 2 cherries = ' + cb.settings.prize_5 + '\n';
notices += '6th) Any combination of condom/dildo = ' + cb.settings.prize_6 + '\n';
notices += '7th) Any combination + 1 cherry = ' + cb.settings.prize_7;
cb.sendNotice(notices, username, '#D1F0FF', '', 'bold');
}

function showPrizesWon(username) {
prizesWon.reverse();
if(prizesWon.length == 0) {
cb.sendNotice('No one has won anything yet. Play the slot machine to win a prize!', username, '', '#CC0000', 'bold');
} else {
prizesWon.slice(0,20);
var notices = "**** Last 20 Winners ****";
var prizeNum = 1;
var totalWon = prizesWon.length;
if(prizesWon.length >= 20) totalWon = 20;
for(var i=0; i

© Copyright Chaturbate 2011- 2026. All Rights Reserved.