Apps Home
|
Create an App
Glow Crown
Author:
garterxxx
Description
Source Code
Launch App
Current Users
Created by:
Garterxxx
// Title: Glow Crown // Author: Garter XXX // Version: 1.0 // Desc: Tip goal + "Crown" (highest single tipper) // --- state --- var total_tipped = 0; var crown_user = null; // highest single tipper (name) var crown_amount = 0; // highest single tip (amount) var last_user = null; var last_amount = 0; var subject_set_at_zero = false; // --- settings --- cb.settings_choices = [ { name: 'tokens', type: 'int', minValue: 1, default: 100, label: 'Goal (tokens)' }, { name: 'goal_description', type: 'str', minLength: 1, maxLength: 255, label: 'Goal description' } ]; // --- events --- cb.onTip(function (tip) { var amt = parseInt(tip['amount'], 10) || 0; var usr = tip['from_user'] || null; // progress toward goal (cap at goal) total_tipped += amt; if (total_tipped > cb.settings.tokens) total_tipped = cb.settings.tokens; // latest tip last_amount = amt; last_user = usr; // highest single tip (Crown) if (amt > crown_amount) { crown_amount = amt; crown_user = usr; } updateSubject(); cb.drawPanel(); }); cb.onDrawPanel(function () { return { template: '3_rows_of_labels', row1_label: 'Tip Received / Goal :', row1_value: (total_tipped + ' / ' + cb.settings.tokens), row2_label: 'Glow Crown :', row2_value: (formatUser(crown_user) + ' (' + crown_amount + ')'), row3_label: 'Latest Tip :', row3_value: (formatUser(last_user) + ' (' + last_amount + ')') }; }); // Highlight Crown holder’s chat messages (soft gold) cb.onMessage(function (msg) { if (crown_user && msg['user'] === crown_user) { msg['background'] = '#ffe680'; } return msg; }); // --- helpers --- function updateSubject() { var remaining = Math.max(0, (parseInt(cb.settings.tokens, 10) || 0) - total_tipped); if (remaining === 0) { if (subject_set_at_zero) return; subject_set_at_zero = true; } else { subject_set_at_zero = false; } var subject = (cb.settings.goal_description || 'Goal') + ' [' + remaining + ' tokens remaining]'; cb.changeRoomSubject(subject); } function formatUser(val) { return val ? val.toString().substring(0, 12) : '--'; } // --- init --- (function init() { updateSubject(); })();
© Copyright Chaturbate 2011- 2026. All Rights Reserved.