Bots Home
|
Create an App
RollTheDice DeluxeGerman
Author:
lenchen_deluxe
Description
Source Code
Launch Bot
Current Users
Created by:
Lenchen_Deluxe
cb.settings_choices = [ { name: 'tokens', type: 'int', minValue: 1, label: 'Preis pro Wurf(Tokens)', defaultValue: 33 }, { name: 'remove_winning_prize', type: 'choice', label: 'Sollen gewonnene Preise entfernt werden?', choice1: 'Nein', defaultValue: 'Nein' }, { name: 'die_type', type: 'choice', label: 'Auswahl des Spielwürfels)', choice1: '2x 6-Seiten Wuerfel', defaultValue: '2x 6-Seiten Wuerfel' }, { name: 'multirolls', type: 'int', minValue: 1, label: 'Maximale anzahl von Wuerfen pro Tip', defaultValue: 3 }, { name: 'too_high_multiples', type: 'choice', label: 'Soll gewürfelt werden wenn Tip höher ist als das die Maximale Anzahl der erlaubten Wuerfe pro Tip?', choice1: 'Ja, maximal erlaubte Wuerfe ausfuehren', choice2: 'Nein, nicht wuerfeln', defaultValue: 'Ja, maximale erlaubte Wuerfe ausfuehren' }, { name: 'minimum_rolls', type: 'int', minValue: 0, maxValue: 50, label: 'Mindestanzahl von Wuerfen bis seltener Preis gewonnen werden kann', defaultValue: 0 }, { name: 'notice_wait_time', type: 'choice', label: 'In welchem Minutentakt soll Werbung vom Spiel gemacht werden', choice1: 5, choice2: 10, choice3: 15, choice4: 20, choice5: 25, choice6: 30, choice7: 45, choice8: 60, defaultValue: 10 }, { name: 'change_room_subject', type: 'choice', label: 'Soll der Raumname angepasst werden?', choice1: 'Ja', choice2: 'Nein', defaultValue: 'Nein' }, {name: 'prize_1', type: 'str', label: 'Preis Zahl 1', defaultValue: ' '}, {name: 'prize_2', type: 'str', label: 'Preis Zahl 2', defaultValue: ' '}, {name: 'prize_3', type: 'str', label: 'Preis Zahl 3', defaultValue: ' '}, {name: 'prize_4', type: 'str', label: 'Preis Zahl 4', defaultValue: ' '}, {name: 'prize_5', type: 'str', label: 'Preis Zahl 5', defaultValue: ' '}, {name: 'prize_6', type: 'str', label: 'Preis Zahl 6', defaultValue: ' '}, {name: 'prize_7', type: 'str', label: 'Preis Zahl 7', defaultValue: ' '}, {name: 'prize_8', type: 'str', label: 'Preis Zahl 8', defaultValue: ' '}, {name: 'prize_9', type: 'str', label: 'Preis Zahl 9', defaultValue: ' '}, {name: 'prize_10', type: 'str', label: 'Preis Zahl 10', defaultValue: ' '}, {name: 'prize_11', type: 'str', label: 'Preis Zahl 11', defaultValue: ' '}, {name: 'prize_12', type: 'str', label: 'Preis Zahl 12', defaultValue: ' '}, {name: 'prize_13', type: 'str', label: 'Preis Zahl 13 (SELTEN)', defaultValue: 'Special Preis'}, ]; var price = cb.settings.tokens; var langTokens = (price > 1) ? 'tokens' : 'token'; var numberOfSides = (cb.settings.die_type == '2x 6-Seiten Wuerfel') ? 6 : 10; var multiRolls = cb.settings.multirolls; var lastRoller = '--'; var lastPrizeWon = '--'; var rollCounter = 0; var tipCounter = 0; var winners = []; var prizes = []; var minimumRollsToGetRareDice = parseInt(cb.settings.minimum_rolls); var maxOutcome = (cb.settings.die_type == '2x 6-Seiten Wuerfel') ? 13 : 21; var dieImagePrefix = (cb.settings.die_type == '2x 6-Seiten Wuerfel') ? ':reddie' : ':cdie'; var rareChance = 15; // percent chance of rolling a RARE (minimum rolls must also be met) cb.onTip(function (tip) { var tipAmount = parseInt(tip['amount']); // check to see if tip was for a dice roll if (tipAmount >= price && (tipAmount % price == 0)) { var numberOfRolls = Math.floor(tipAmount / price); if (numberOfRolls > multiRolls) { if (cb.settings.too_high_multiples == 'Ja, maximale erlaubte Wuerfe ausfuehren'){ numberOfRolls = multiRolls; } else { numberOfRolls = 0; } } 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('Kein Tip fuer RolltheDice', '', 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(/!p/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']); } } if (msg['m'].match(/!info/i)) { msg['X-Spam'] = true; showappinformation(msg['user']); } if (msg['m'].match(/!log/i)) { msg['X-Spam'] = true; showchangelog(msg['user']); } return msg; }); function roll(username) { rollCounter++; var die1 = Math.floor(Math.random() * numberOfSides) + 1; var die2 = Math.floor(Math.random() * numberOfSides) + 1; // see if there's a chance we can roll a rare die if (rollCounter > minimumRollsToGetRareDice) { if (Math.random() <= (rareChance / 100)) { die1 = 7; } } var total = die1 + die2; var winner = false; if (total >= 1) { winner = true; var prize = cb.settings['prize_' + total]; } else { winner = false; var prize = 'Dankeschoen!!'; } var rareText = ''; if (total == maxOutcome) rareText = " (RARE)"; var prizeIndex = prizes.indexOf(prize + rareText); if (prizeIndex >= 0) { if (cb.settings.remove_winning_prize == 'Yes') prizes.splice(prizeIndex, 1); } else { prize = 'Dankeschoen!!'; } var msg = dieImagePrefix + die1 + " " + dieImagePrefix + die2 + "\n"; msg += username + " wuerfelte eine " + total + "! \n".toUpperCase(); msg += "Wurf #" + rollCounter + " | Gewinn: " + 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; winners.push("Wurf #" + rollCounter + " (" + total + "): " + username + " gewann " + prize); cb.drawPanel(); } function setPrizes() { var rareText = ''; for (var i = 1; i <= maxOutcome; i++) { if (i == maxOutcome) rareText = " (RARE)"; prizes.push(cb.settings['prize_' + i] + rareText); } } function showPrizes(username) { if (prizes.length) { var rareText = ''; var msg = "===== MOEGLICHE PREISE ====="; for (var i = 1; i <= maxOutcome; i++) { if (i == maxOutcome) rareText = " (Selten!!)"; if (prizes.indexOf(cb.settings['prize_' + i] + rareText) >= 0) msg += "\nWurf " + i + " - " + cb.settings['prize_' + i] + rareText; } } else { var msg = "Danke fuer den Tip aber alle Preise wurden bereits gewonnen. :thumbsup"; } if (rollCounter < minimumRollsToGetRareDice) { if ((minimumRollsToGetRareDice - rollCounter) == 1) { msg += "\nNur noch 1 Wurf noertig um den seltenen Preis gewinnen zu koennen." } else { msg += "\n" + (minimumRollsToGetRareDice - rollCounter) + " Wuerfe bis der seltene Preis gewonnen werden kann" } } cb.sendNotice(msg, username, '#DBFBFF', '#008596', 'bold'); } function showPrizesWon(username) { var msg = "===== Die letzen 20 Gewinner auf einem Blick! ====="; msg += "\nChronologische Reihenfolge"; if (winners.length == 0) { cb.sendNotice('Bis jetzt hat niemand etwas gewonnen, versuch dein Glueck und wirf die Wuerfel!', username, '#ffff00', '#000000', 'bold'); } else { var recentWinners = winners.slice(-20); for (var i = 0; i < recentWinners.length; i++) msg += "\n" + recentWinners[i]; cb.sendNotice(msg, username, '#000000', '#ffffff', 'bold'); } } function showappinformation(username) { var msg = "app info"; msg += "Schreib \"!p\" um Preisliste zu sehen \n"; msg += "Schreib \"!p all\" um Preisliste an alle zu senden(Nur Mod/Streamer)"; msg += "Schreib \"!winners\" um die letzten 20 Gewinner und Preise zu sehen "; cb.sendNotice(msg, username, '#000000', '#ffffff', 'bold'); } function advertise() { showAppAd(); cb.setTimeout(advertise, parseInt(cb.settings.notice_wait_time) * 60000); } function showAppAd(username) { var msg = ""; msg += "Wir spielen RolltheDice!! \n"; msg += "Jeder Wurf ein Preis, Es gibt " + prizes.length + " Preise zu gewinnen!\n"; if (cb.settings.remove_winning_prize == 'Ja') { msg += "Gewonnene Preise werden ENTFERNT!!\n"; } else { msg += "Gewonnene Preise bleiben weiterhin moeglich!\n"; } msg += "Tip " + price + " " + langTokens + " zum wuerfeln. \n"; if (multiRolls > 1) msg += "Du kannst maximal " + multiRolls + " pro Tip wuerfeln (" + (multiRolls*price) + " tokens). \n"; msg += "Schreib \"!p\" um die Preisliste zu sehen \n"; msg += "Schreib \"!p all\" um allen die Preisliste zu senden"; msg += "Schreib \"!winners\" um die letzten 20 Gewinner und Preise zu sehen"; cb.sendNotice(msg, username, '#000000', '#ffffff', 'bold'); } function init() { setPrizes(); advertise(); if (cb.settings.change_room_subject == 'Ja') { cb.changeRoomSubject('Tip ' + price + ' ' + langTokens + ' to roll the dice and win a prize! #german #lovense #domi #lush'); } } init();
© Copyright Chaturbate 2011- 2026. All Rights Reserved.