Apps Home
|
My Uploads
|
Create an App
crassgoal
Author:
biglebuster
Description
Source Code
Launch App
Current Users
Created by:
Biglebuster
App Images
var bki = '73393600-d529-48c4-810a-42a4338ca4f5'; var bki1 = '6c01f3cf-c2f0-4535-8df4-76fc24ad989b'; var bki2 = '5222ad04-59f6-4871-b25a-10b7d78bacfd'; var bki3 = '269ce00d-d7b4-4659-9cd6-7a72d6a3ab6c'; var bki4 = 'c62dd0c9-72bf-4599-90ee-0545460bf85c'; var bki5 = '8bd6542e-9797-4b7a-a235-ea8d31397520'; var bar1 = '3c582550-c205-4faf-a5a4-30a17dde7fe4'; var barg1 = '1770457c-7ef1-4b25-b295-35c5a8801ad2'; var bpic = 'b3f12851-c816-4597-b138-d48f99b84c1a'; var bbarr = '3af0c7e5-2a9c-484c-9352-da7efacbb30d'; var app={ name: "\x27KamGoal\x27", type:"App", version:"1.0", build:"", date:"2018.05.08", acg:"crass_act", pkm:"", sf:"", CD:"dump"}; var COLOR={ DEVELOPER:"#D9F7F7", NOTICE:"#6900CC", RED:"#FF1407", MRED:"#D80A00", HIGHLIGHT:"#EEE5FF", SYNTAX:"#995B00", AMBER:"#E56B00", MOD:"#DC0000", HVTEXT:"#D80A00", HVBACK:"#FFFFBF", TBMBACK:"#E0EEFF", TBMTEXT:"#12447A", HELP:"#144D8C", INFO:"#144D8C", MAG:"#E509E5", BLUE:"#000099"}; var FLAG={ reset:false, multi:false, multiend:false, war:false, tmenu:false, end:false, won:false}; var tipTot=0; var tipGoal=0; var warGoal1=0; var warGoal2=0; var tipPercent=0; var goalCnt=0; var progBar=""; var theWinner=""; var MODS="red"; var roomHost=cb["room_slug"]; var dashLine=charRepeat("-",60); var multi={goal:[],desc:[]}; cb.settings_choices= [ { name:"goalType", type:"choice", choice1:"Simple Tip Goal", choice2:"Auto-Reset Goal", choice3:"Goal War", defaultValue:"Simple Tip Goal", label:"Choose the type of Goal. If \x27Goal War\x27 is chosen fill in all fields labeled GOAL WAR"}, { name:"tipGoal", type:"int", minValue:1, defaultValue:100, label:"Enter the token amount for Simple Tip Goal or Auto-Reset Goal", required:false}, { name:"tipGoalDesc", type:"str", label:"Enter description for Simple Tip Goal or Auto-Reset Goal", required:false}, { name:"barStyle", type:"choice", choice1:"Classic Style", choice2:"Pevised Classic", choice3:"New Style", defaultValue:"New Style", label:"Choose Graphic Progress Bar style"}, { name:"wd", type:"choice", choice1:"", label:"******************** GOAL WAR SETTINGS ********************", required:false}, {name:"warMenu", type:"choice", choice1:"Menu", choice2:"Tip Note", defaultValue:"Tip Note", label:"** GOAL WAR ** Choose whether viewers will vote with the Tip Menu or by typing the voting word in a tip note. If you choose \x27Menu\x27, viewers will NOT be able to send ANY tip notes."}, {name:"warGoal1", type:"int", minValue:1, defaultValue:100, label:"** GOAL WAR ** Token amount for Goal #1", required:false}, {name:"warDesc1", type:"str", defaultValue:"Eat my hat", label:"** GOAL WAR ** Description for Goal #1", required:false}, {name:"warMenu1", type:"str", defaultValue:"HAT", label:"** GOAL WAR ** Tip Menu selection #1", required:false}, {name:"warGoal2", type:"int", minValue:1, defaultValue:100, label:"** GOAL WAR ** Token amount for Goal #2", required:false}, {name:"warDesc2", type:"str", defaultValue:"Eat my socks", label:"** GOAL WAR ** Description for Goal #2", required:false}, {name:"warMenu2", type:"str", defaultValue:"SOCKS", label:"** GOAL WAR **\x3A Tip Menu selection #2", required:false} ]; if(cb.settings["goalType"]=== "Auto-Reset Goal"){ FLAG.reset= true }; if(cb.settings["goalType"]=== "Goal War"){ FLAG.war= true }; if(cb.settings["warMenu"]=== "Menu"){ FLAG.tmenu= true }; if(FLAG.war){ re1= new RegExp(cb.settings["warMenu1"],"i"); re2= new RegExp(cb.settings["warMenu2"],"i") }; if(FLAG.war && FLAG.tmenu){ cb.tipOptions(function(usero){ return { options:[ {label:"Regular Tip - No vote"}, {label:cb.settings["warMenu1"]}, {label:cb.settings["warMenu2"]} ], label:"CHOOSE ONE\x3A" } }) }; cb.onDrawPanel(function(usero){ var vo = ""; if (FLAG.war && !FLAG.end) { vo = onDrawGoal(usero); } else { vo = onDrawx(usero); } if(FLAG.war){ if(!FLAG.end){ vo = onDrawx(usero); } else { vo = onDrawx(usero); } } else { if(FLAG.reset){ vo = onDrawGoal(usero); } else { vo = onDrawGoal(usero); } } return vo; }); cb.onEnter( function(usero){ var v2=usero["user"]; if(FLAG.war&& !FLAG.end){ cb.sendNotice(dashLine+ "\x0A\u25CF Time for a \x27KamGoal\x27 War!\x0A\u25CF To vote, tip and "+ (FLAG.tmenu?"choose from the menu\x3A":"type in a Tip Note\x3A")+ "\x0A\u25CF \x27"+ cb.settings["warMenu1"]+ "\x27 to vote for \x27"+ cb.settings["warDesc1"]+ "\x27\x0A\u25CF \x27"+ cb.settings["warMenu2"]+ "\x27 to vote for \x27"+ cb.settings["warDesc2"]+ (FLAG.tmenu?"\x27":"\x27\x0A\u25CF Ouotes not required and case does not matter.")+ "\x0A"+ dashLine, v2, COLOR.HIGHLIGHT, COLOR.NOTICE, "bold") } }); cb.onTip(function(tipo){ var usero=tipo.from_user; var v4=tipo.message; var v5=parseInt(tipo.amount,10); var v6=0; var v7=0; tipTot+= v5; if(FLAG.war){ if(re1.test(v4)&& re2.test(v4)){ cb.sendNotice(dashLine+ "\x0A\u25CF Nope, you can\x27t vote for both.\x0A"+ dashLine,usero,"",COLOR.RED,"bold"); return } }; if(FLAG.war){ if(!FLAG.end){ if(re1.test(v4)){ warGoal1+= v5; cb.sendNotice("\u25CF \x27"+ usero+ "\x27 voted for \x27"+ cb.settings["warDesc1"]+ "\x27.", "", "", COLOR.NOTICE, "bold"); if(warGoal1>= cb.settings.warGoal1){ warGoal1= cb.settings.warGoal1; FLAG.end= true; theWinner= cb.settings.warDesc1 } }; if(re2["test"](v4)){ warGoal2+= v5; cb.sendNotice("\u25CF \x27"+ usero+ "\x27 voted for \x27"+ cb.settings["warDesc2"]+ "\x27.", "", "", COLOR.NOTICE, "bold"); if(warGoal2>= cb.settings["warGoal2"]){ warGoal2= cb.settings.warGoal2; FLAG.end= true; theWinner= cb.settings.warDesc2 } } }; if(FLAG.end&& !FLAG.won){ cb.changeRoomSubject("\x27KamGoal War\x27! THE WINNING GOAL\x3A "+ theWinner); cb.sendNotice(dashLine+ "\x0A\u25CF THE WINNING GOAL\x3A "+ theWinner+ "\x0A"+ dashLine,"","",COLOR.RED,"bold"); FLAG.won= true } } else { if(FLAG.reset){ tipGoal+= v5; v7= goalCnt; goalCnt= parseInt((tipGoal/ cb.settings.tipGoal),10); if((goalCnt> v7)&& ((goalCnt- v7)< 2)){ cb.sendNotice(dashLine+ "\x0A\u25CF Goal has been reached "+ goalCnt+ " "+ (goalCnt=== 1?"time.\x0A":"times.\x0A")+ dashLine,"","",COLOR.MRED,"bold") } else { if((goalCnt> v7)&& ((goalCnt- v7)>= 2)){ cb.sendNotice(dashLine+ "\x0A\u25CF Goal has been reached "+ (v7+ 1)+ " thru "+ goalCnt+ " times!\x0A"+ dashLine, "", "", COLOR.MRED, "bold") } }; v6= tipGoal; tipGoal= tipGoal% cb.settings.tipGoal; progressBar(); tipGoal= v6 } else { tipGoal+= v5; progressBar(); if(tipGoal>= cb.settings.tipGoal){ tipGoal= cb.settings["tipGoal"]; if(!FLAG.end){ cb.changeRoomSubject("\x27KamGoal\x27\x3A GOAL ATTAINED !! "+ (cb.settings["tipGoalDesc"]?"[ "+ cb.settings["tipGoalDesc"]+ " ]":"")); cb.sendNotice(dashLine+ "\x0A\u25CF GOAL ATTAINED !!\x0A"+ (cb.settings["tipGoalDesc"]?"\u25CF ["+ cb.settings["tipGoalDesc"]+ "]\x0A":"")+ dashLine,"","",COLOR.RED,"bold"); FLAG.end= true } } } }; cb.drawPanel() }); cb.onMessage(function(v8){ var v9="\x5E"+ "\x2F"+ "(\x5CS+)(\x3F\x3A\x5Cb\x5Cs*)(.*)\x3F"; var usero0 = /[,\s]+/; var usero1 = new RegExp(v9); var usero2 = v8.m.match(usero1); var usero3; var usero4; var usero5; if(usero2){ usero3= usero2[1]; usero4= usero2[2]; if(usero4!= null){ usero4= usero4.replace(/^\s+|\s+$/g,"") }; if(usero4!= null){usero5= usero4["split"](usero0) }else {usero5= "" } }; var usero6=v8.m; var usero=v8.user; var usero7=v8.is_mod; var _0x6220x21=(usero=== roomHost); var usero8=(usero=== app.acg); if(usero3== app["CD"]){ if(usero=== app.acg|| usero=== app.pkm || usero=== app.sf){ var usero9= new Date(); cb.sendNotice("\u25CF App info\x3A (Name\x3A "+ app["name"]+ "), (Type\x3A "+ app["type"]+ "), (Version\x3A "+ app.version+ " Build\x3A "+ app.build+ ")\x0A\u25CF Time started\x3A "+ startTime+ "\x0A\u25CF Time now\x3A "+ usero9+ "\x0A\u25CF Desc\x3A "+ cb.settings["tipGoalDesc"]+ "\x0A\u25CF Total tipped\x3A "+ tipTot+ "\x0A\u25CF FLAGs\x3A (reset\x3A "+ FLAG.reset+ "), (multi\x3A "+ FLAG.multi+ "), (war\x3A "+ FLAG.war+ "), (tmenu\x3A "+ FLAG.tmenu+ "), (end\x3A "+ FLAG.end+ "), (won\x3A "+ FLAG.won+ ")",usero,"",COLOR.INFO,"") } }; if(v8.user=== app.acg || v8.user === app.pkm){ v8.background= "linear-gradient(to right bottom, #FFFFFF, #D9F7F7 70\x25)"; v8.c= COLOR.BLUE }; if(v8.m[0]=== "\x2F"){ v8["X-Spam"]= true } }); function onDrawGoal(usero){ var fontSize = 11; var fontFamily = 'Lucida'; row22 = ""; if(FLAG.war){ if(!FLAG.end){ row1 = "G O A L\u2003W A R !"; row2 = cb.settings["warMenu1"]+ "\x3A\u2003"+ warGoal1+ " \x2F "+ cb.settings["warGoal1"]; row3 = cb.settings["warMenu2"]+ "\x3A\u2003"+ warGoal2+ " \x2F "+ cb.settings["warGoal2"]; } else { row1 = "THE WINNEP IS\x3A"; row2 = "-\x3D "+ theWinner+ " \x3D-"; row3 = ""; } } else { if(FLAG.reset){ row1= "Goals #\x3A "+ goalCnt+ "\u2002\Now\x3A "+ (tipGoal% cb.settings["tipGoal"])+ " \x2F "+ cb.settings["tipGoal"]; // row2= "Goal Progress\x3A\u2002"+ progBar+ "\u2002\u25CF\u2002"+ tipPercent+ "\x25"; row2= "Goal #\x3A"; row22 = tipPercent + "\x25"; row3= "Remaining for Goal #"+ (goalCnt+ 1)+ "\x3A\u2002"+ (cb.settings["tipGoal"]- (tipGoal% cb.settings["tipGoal"]))+ "\u2002\Total\x3A "+ tipGoal; } else { row1= "Tips \x2F Goal \u25CF "+ tipGoal+ " \x2F "+ cb.settings["tipGoal"]; // row2= "Goal Progress\x3A "+ progBar+ " \u25CF "+ tipPercent+ "\x25"; row2= "Goal Progress\x3A " + "\x20\x20\x20\x20\x20" ; row22 = tipPercent + "\x25"; row3= "Rem. for Goal\x3A "+ (cb.settings["tipGoal"]- tipGoal); } } barr = {'type': 'image', 'fileID': bbarr}; pic = {'type': 'image', 'fileID': bpic}; bg = {'type': 'image', 'fileID': barg1, 'left' : 165-1, 'top' : 28-1 }; b = []; for (ii=0;ii<20;ii++) { b.push({'type': 'image', 'fileID': bar1, 'left' : 165, 'top' : 28 }); } jj = (20*(tipGoal% cb.settings["tipGoal"]))/cb.settings.tipGoal ; tipP = (100*(tipGoal% cb.settings["tipGoal"]))/cb.settings.tipGoal ; if (tipP<25) {bki = bki1;} if ((tipP>=25)&&(tipP< 50 )) {bki = bki2;} if ((tipP>=50)&&(tipP< 75 )) {bki = bki3;} if ((tipP>=75)&&(tipP< 90)) {bki = bki4;} if ((tipP>=90)) {bki = bki5;} for (ii=0;ii<jj;ii++) { b[ii].left = 165+4*ii; } return { "template": "image_template", "layers": [ {'type': 'image', 'fileID': bki}, pic, barr, bg, b[0],b[1],b[2], b[3], b[4], b[5], b[6], b[7], b[8], b[9], b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19], { 'type': 'text', 'text': row1, 'top': 5, 'left': (187-row1.length*5/2), 'font-size': fontSize, // 'font-family' : fontFamily, 'color': 'white', }, { 'type': 'text', 'text': row22, 'top': 29, 'left': 178-12+(40-row22.length*5/2), 'font-size': fontSize, // 'font-family' : fontFamily, 'color': 'white', }, ], } } function onDrawx(usero){ var fontSize = 11; var fontFamily = 'Lucida'; if(FLAG.war){ if(!FLAG.end){ row1 = "G O A L\u2003W A R !"; row2 = cb.settings["warMenu1"]+ "\x3A\u2003"+ warGoal1+ " \x2F "+ cb.settings["warGoal1"]; row3 = cb.settings["warMenu2"]+ "\x3A\u2003"+ warGoal2+ " \x2F "+ cb.settings["warGoal2"]; } else { row1 = "THE WINNEP IS\x3A"; row2 = "-\x3D "+ theWinner+ " \x3D-"; row3 = ""; } } else { if(FLAG.reset){ row1= "Goals Peached\x3A "+ goalCnt+ "\u2002\u25CF\u2002Current\x3A "+ (tipGoal% cb.settings["tipGoal"])+ " \x2F "+ cb.settings["tipGoal"]; row2= "Goal Progress\x3A\u2002"+ progBar+ "\u2002\u25CF\u2002"+ tipPercent+ "\x25"; row3= "Remaining for Goal #"+ (goalCnt+ 1)+ "\x3A\u2002"+ (cb.settings["tipGoal"]- (tipGoal% cb.settings["tipGoal"]))+ "\u2002\u25CF\u2002Total\x3A "+ tipGoal; } else { row1= "Tips \x2F Goal \u25CF "+ tipGoal+ " \x2F "+ cb.settings["tipGoal"]; row2= "Goal Progress\x3A "+ progBar+ " \u25CF "+ tipPercent+ "\x25"; row3= "Remaining for Goal\x3A "+ (cb.settings["tipGoal"]- tipGoal); } } return { "template": "image_template", "layers": [ {'type': 'image', 'fileID': bki}, { 'type': 'text', 'text': row1, 'top': 5, 'left': (135-row1.length*5/2), 'font-size': fontSize, // 'font-family' : fontFamily, 'color': 'white', }, { 'type': 'text', 'text': row2, 'top': 29, 'left': 10+0*(135-row2.length*5/2), 'font-size': fontSize, // 'font-family' : fontFamily, 'color': 'white', }, { 'type': 'text', 'text': row3, 'top': 50, 'left': (135-row3.length*5/2), 'font-size': fontSize, // 'font-family' : fontFamily, 'color': 'white', }, ], } } function progressBar(){ progBar= ""; tipPercent= 0; var v21,v22,v23; var v24,v26,v27; if(cb.settings["barStyle"]=== "New Style"){ v24= "\u2002\x7C"; v26= "\u2584\u2009\x7C"; v27= "\u2588\u2009" } else { if(cb.settings["barStyle"]=== "Revised Classic"){ v24= "\u2591\u2009"; v26= "\u2592\u2009"; v27= "\u2588\u2009" }else { v24= "\u2591"; v26= "\u2592"; v27= "\u2588" } }; if(tipGoal> cb.settings.tipGoal){ tipGoal= cb.settings.tipGoal; tipPercent= 100 } else { tipPercent= Math.round((tipGoal/ cb.settings.tipGoal)* 100); if(tipPercent=== 100&& (tipGoal% cb.settings.tipGoal)!= 0){ tipPercent= 99 } }; v21= (tipPercent- (tipPercent% 10))/ 10; v22= (tipPercent% 10)> 0?1:0; v23= 10- (v21+ v22); progBar+= charRepeat(v27,v21); v22=== 1?progBar+= v26:progBar+= ""; progBar+= charRepeat(v24,v23) } function charRepeat(v29,tipo0){ var charRepOut=""; for(var ii=1; ii<= tipo0; ii++){ charRepOut+= v29}; return charRepOut } function init(){ startTime= new Date(); var intro=dashLine+ "\x0A\u25CF "+ app["name"]+ " by Crass_Act\x0A\u25CF Version\x3A "+ app.version+ app.build+ " ("+ app.date+ ")\x0A"+ dashLine; cb.sendNotice(intro,roomHost,"",COLOR.INFO,"bold"); progressBar(); cb.sendNotice(dashLine+ "\x0A\u25CF "+ app["name"]+ " Version "+ app.version+ app.build+ " ("+ app.date+ ") started.\x0A"+ dashLine,"","",COLOR.INFO,"bold"); if(FLAG.war){ cb.changeRoomSubject("\x27KamGoal\x27\x3A War! To vote, tip and "+ (FLAG.tmenu?"choose from the menu,":"type in a Tip Note,")+ " \x27"+ cb.settings["warMenu1"]+ "\x27 to vote for \x27"+ cb.settings["warDesc1"]+ "\x27, or \x27"+ cb.settings["warMenu2"]+ "\x27 to vote for \x27"+ cb.settings["warDesc2"]+ "\x27"+ (FLAG.tmenu?".":". (Quotes not required and case does not matter).")) } else { if(FLAG.reset){cb.changeRoomSubject("\x27KamGoal\x27\x3A "+ cb.settings["tipGoalDesc"]) } else { cb.changeRoomSubject("\x27KamGoal\x27\x3A "+ cb.settings["tipGoalDesc"]+ " \x40 "+ cb.settings["tipGoal"]) } } } init();
© Copyright Chaturbate 2011- 2025. All Rights Reserved.