Apps Home
|
Create an App
Multi Goal Jet
Author:
cacho_gordo
Description
Source Code
Launch App
Current Users
Created by:
Cacho_Gordo
/************************************\ Multi Goal Jet (c)2017 (20/11/17) Author: cacho_gordo Version: v1.2 (18/12/2017) Jet Empty in Multi Goal - from Acoola base idea - \************************************/ "use strict";const version=["Multi Goal Jet (c)2017 (20/11/17)","Version: v1.1 (18/12/2017)","Author: cacho_gordo (cachotest)"];cb.settings_choices=[{name:"room_subject",type:"str",minLength:1,maxLength:255,label:"Room subject",defaultValue:"Play with me"},{name:"hash_tags",type:"str",maxLength:198,label:"Subject tags",defaultValue:"#nice #natural #nolimit #horny",required:false},{name:"get_it_going",type:"int",minValue:1,defaultValue:50,label:"Emptying hole level points"},{name:"reduce_tip_secs",type:"int",minValue:1,maxValue:60,defaultValue:10,label:"Emptying every x seconds"},{name:"reduce_tips_by",type:"int",minValue:1,maxValue:20,defaultValue:1,label:"Amount of points to reduce"},{name:"cmds_mods",type:"choice",choice1:"Yes",choice2:"No",defaultValue:"No",label:"Mods can execute same broadcaster commands?"},{name:"g1_tkns",label:"Goal 1 Token Amount",type:"int",minValue:10,defaultValue:100},{name:"g1_desc",label:"Goal 1 Description",type:"str",minLength:2,maxLength:255,defaultValue:"Show Boobs with Oil"},{name:"g2_tkns",label:"Goal 2 Token Amount",type:"int",minValue:10,defaultValue:200,required:false},{name:"g2_desc",label:"Goal 2 Description",type:"str",minLength:0,maxLength:255,required:false,defaultValue:"Pussy finger play"},{name:"g3_tkns",label:"Goal 3 Token Amount",type:"int",minValue:10,defaultValue:300,required:false},{name:"g3_desc",label:"Goal 3 Description",type:"str",minLength:0,maxLength:255,required:false,defaultValue:"Naked oil all body and sexy dance"},{name:"g4_tkns",label:"Goal 4 Token Amount",type:"int",minValue:10,defaultValue:400,required:false},{name:"g4_desc",label:"Goal 4 Description",type:"str",minLength:0,maxLength:255,required:false,defaultValue:"Dildo pussy play and more fuck"},{name:"g5_tkns",label:"Goal 5 Token Amount",type:"int",minValue:10,defaultValue:500,required:false},{name:"g5_desc",label:"Goal 5 Description",type:"str",minLength:0,maxLength:255,required:false,defaultValue:"Huge squirt cum"},{name:"g6_tkns",label:"Goal 6 Token Amount",type:"int",minValue:10,defaultValue:200,required:false},{name:"g6_desc",label:"Goal 6 Description",type:"str",minLength:0,maxLength:255,required:false},{name:"g7_tkns",label:"Goal 7 Token Amount",type:"int",minValue:10,defaultValue:200,required:false},{name:"g7_desc",label:"Goal 7 Description",type:"str",minLength:0,maxLength:255,required:false},{name:"g8_tkns",label:"Goal 8 Token Amount",type:"int",minValue:10,defaultValue:200,required:false},{name:"g8_desc",label:"Goal 8 Description",type:"str",minLength:0,maxLength:255,required:false},{name:"finality_message",label:"Final Goal Met Subject",type:"str",minLength:1,maxLength:255,defaultValue:"Goals reached! Thanks to all tippers!"}];const MAX_GOALS=8;const navy="#000080",colslug="#F04500",colfan="#008000",bggreen="#ADFF2F",palegreen="#98FB98",highlight="#ccff00",colnotice="#B22222",micolor="#2991f8";var bullets=" \u2022 \u2022 \u2022 ",nbsp="\xa0";function spaces(c){var b=nbsp;if(c>1){for(var a=1;a<c;a++){b+=nbsp}}return b}var tags=[];var isItGoing=false;var startGoalMet=false;var nJets=0;var totalTipped=0;var totalGoal=0;var currentTotalPoints=0;var current_goal=1;var reps_goal=1;var final_goal_met=false;var startApp=new Date();var holeLevel=cb.settings.get_it_going;var reduceTJ=cb.settings.reduce_tip_secs*1000;var reduceBy=cb.settings.reduce_tips_by;var resumeShow=reduceBy;var bigToks=0;var bigTipper="--";var commods=cb.settings.cmds_mods=="Yes";var topTipper=[];var roomSubject=cb.settings.room_subject;var multiGoalSubject=roomSubject+" - Goal "+current_goal+(reps_goal>1?"(*"+reps_goal+")":"")+": "+getCurrentGoalDescription()+" ["+getCurrentGoalAmount()+" points] \u2764 "+tags.join(" ");function resetApp(){bigToks=nJets=totalTipped=totalGoal=currentTotalPoints=0;current_goal=reps_goal=1;topTipper=[];isItGoing=startGoalMet=false;reduceTJ=cb.settings.reduce_tip_secs*1000;bigTipper="--";roomSubject=cb.settings.room_subject;multiGoalSubject=roomSubject+" - Goal "+current_goal+(reps_goal>1?"(*"+reps_goal+")":"")+": "+getCurrentGoalDescription()+" ["+getCurrentGoalAmount()+" points] \u2764 "+tags.join(" ");curReps()}function reInit(a){if(!final_goal_met){cb.sendNotice("No ended still!",a,"",colslug,"bolder");return}final_goal_met=false;update_goals();cb.drawPanel();startApp=new Date()}function checkJet(){if(final_goal_met){return}if(isItGoing){if(currentTotalPoints>holeLevel){currentTotalPoints-=reduceBy;if(currentTotalPoints<=holeLevel){resetMin()}}else{resetMin()}}cb.setTimeout(checkJet,reduceTJ);cb.drawPanel()}function indTipper(b){for(var a=0;a<topTipper.length;a++){if(topTipper[a].username==b){return a}}return -1}function checkTipper(b,a){var d=indTipper(b);if(d>=0){topTipper[d].amount+=a}else{var c={};c.username=b;c.amount=a;topTipper.push(c)}if(a>bigToks){bigTipper=b;bigToks=a}}function updateRoomSubject(){cb.changeRoomSubject(multiGoalSubject)}function resetMin(){isItGoing=false}function chageTimer(a){switch(a){case"Faster":if(reduceTJ>1000){reduceTJ-=1000}break;case"Slower":if(reduceTJ<60000){reduceTJ+=1000}break;case"Fastest":reduceTJ=1000;break;case"Slowest":reduceTJ=60000;break;case"Pause":reduceBy=0;break;case"Resume":reduceBy=resumeShow;break}}function lstGoals(a){var c=[];for(var b=1;b<=MAX_GOALS;b++){var d=cb.settings["g"+b+"_desc"];if(d===""){break}var e=cb.settings["g"+b+"_tkns"];c.push(b+".- "+d+" ["+e+"]")}cb.sendNotice(bullets+"Multi Goal Jet - List"+bullets+spaces(5),a,palegreen,colfan,"bolder");cb.setTimeout(function(){cb.sendNotice(c.join("\n"),a,palegreen,colfan,"bold")},22)}function printTokens(b){if(topTipper.length==0){return}topTipper.sort(function(g,f){return f.amount-g.amount});var e=[];for(var c=0;c<topTipper.length;c++){e.push(topTipper[c].username+" ("+topTipper[c].amount+")")}var a=((new Date()).getTime()-startApp.getTime())/1000;var d=Math.round(totalTipped/(a/3600)*100)/100;cb.sendNotice(bullets+"Multi Goal Jet - Tokens"+bullets+spaces(5),b,"",micolor,"bolder");cb.setTimeout(function(){cb.sendNotice(e.join("\n"),b,"",micolor)},22);cb.setTimeout(function(){cb.sendNotice("Total Tokens: "+totalTipped+"\nAverage Tips: "+d+" tokens/hour",b,"",micolor,"bold")},88)}function printStats(c){var b=((new Date()).getTime()-startApp.getTime())/1000;var e=Math.round(b/60);var a=Math.floor(e/60);e=e%60;var g=a+" hrs. "+e+" mins.";var f=Math.round(60*reduceBy/(reduceTJ/1000)*100)/100;var d=["App Started At: "+startApp.toString(),"App Runtime: "+g,"Current Goal: "+current_goal+". "+getCurrentGoalDescription(),"Emptying hole level: "+holeLevel+" points","Jet Emptying speed: "+f+" points/minute"];cb.sendNotice(bullets+"Multi Goal Jet - Stats"+bullets+spaces(5),c,"",micolor,"bolder");cb.setTimeout(function(){cb.sendNotice(d.join("\n"),c,"",micolor,"bold")},22)}function curReps(){var a=cb.settings["g"+current_goal+"_desc"];reps_goal=1;if(a&&a.charAt(1)=="/"){reps_goal=parseInt(a.charAt(0));if(isNaN(reps_goal)||reps_goal<1){reps_goal=1}}}function getCurrentGoalDescription(){var a=cb.settings["g"+current_goal+"_desc"];if(a&&a.trim().charAt(1)=="/"){a=a.substring(2).trim()}return a}function getCurrentGoalAmount(){return cb.settings["g"+current_goal+"_tkns"]}function checkFinality(){if(getCurrentGoalAmount()<=0||getCurrentGoalDescription()===""||current_goal>MAX_GOALS){final_goal_met=true;multiGoalSubject=roomSubject+"- "+cb.settings.finality_message+" \u2764 "+tags.join(" ")}}function format_username(a){return(a===null)?"--":a.substring(0,12)}function update_goals(){if(final_goal_met){roomSubject=roomSubject+" - "+cb.settings.finality_message+" \u2764 "+tags.join(" ");multiGoalSubject=roomSubject;cb.sendNotice(cb.settings.finality_message,"",bggreen,colnotice,"bolder")}else{multiGoalSubject=roomSubject+" - Goal "+current_goal+(reps_goal>1?"(*"+reps_goal+")":"")+": "+getCurrentGoalDescription()+" ["+getCurrentGoalAmount()+" points] \u2764 "+tags.join(" ");cb.setTimeout(function(){cb.sendNotice("New Goal "+current_goal+": "+getCurrentGoalDescription(),"",bggreen,colfan,"bolder")},232)}updateRoomSubject()}function upnext(a){var b=cb.settings["g"+(current_goal+1)+"_desc"];if(b&&b.trim()!==""){var c=cb.settings["g"+(current_goal+1)+"_tkns"];cb.sendNotice("Next Goal "+(current_goal+1)+": "+b.trim()+" ["+c+"]","",bggreen,colfan,"bolder")}else{cb.sendNotice("Not next, current last!",a,"",colslug,"bolder")}}function skip(a){var b=cb.settings["g"+(current_goal+1)+"_desc"];if(!b||b.trim()===""){cb.sendNotice("Not next to jump, current last!",a,"",colslug,"bolder");return}++current_goal;nJets=0;totalGoal=currentTotalPoints=0;isItGoing=startGoalMet=false;curReps();update_goals();cb.drawPanel()}function addtkns(e,b){if(!isNaN(e)){var a=getCurrentGoalAmount();var c=currentTotalPoints+e;if(c>=a){c=a-1}else{if(c<0){c=0}}currentTotalPoints=c;if(!isItGoing&&!startGoalMet){if(currentTotalPoints>=holeLevel){isItGoing=true;startGoalMet=true}}else{if(!isItGoing){isItGoing=true}}cb.drawPanel()}else{var d="add";if(e<0){d="remove"}cb.sendNotice("Not amount of tokens to "+d+"!",b,"",colslug,"bolder")}}cb.onDrawPanel(function(b){var a={};a.template="3_rows_of_labels";a.row3_label="Big Jet ("+bigToks+"):";a.row3_value=bigTipper;if(b.user==cb.room_slug){a.row1_label="Multi Goal Jet";if(final_goal_met){a.row1_value="Repeat: /reinit cmd."}else{a.row1_value="(info for model only)"}a.row2_label="Tokens goal/total (in jar):";a.row2_value=""+totalGoal+"/"+totalTipped+" ("+currentTotalPoints+" points)";return a}else{a.row2_label="Goal Jets (points/goal):";a.row2_value=""+nJets+" ("+currentTotalPoints+"/"+getCurrentGoalAmount()+")";if(isItGoing){a.row1_label="Multi Goal Jet:";a.row1_value="Don't Let It Empty";return a}else{if(startGoalMet){a.row1_label="Let's Get Going:";a.row1_value="Continue Tipping";return a}else{if(final_goal_met){a.row1_label="Multi Goal Jet";a.row1_value="waiting for reinit";return a}else{a.row1_label="Let's Get Going:";a.row1_value="Tipping";return a}}}}});cb.onTip(function(a){if(final_goal_met){return}++nJets;totalGoal+=parseInt(a.amount);totalTipped+=parseInt(a.amount);currentTotalPoints+=parseInt(a.amount);if(!isItGoing&&!startGoalMet){if(currentTotalPoints>=holeLevel){isItGoing=true;startGoalMet=true}}else{if(!isItGoing){isItGoing=true}}checkTipper(a.from_user,a.amount);while(currentTotalPoints>=getCurrentGoalAmount()){cb.sendNotice("Reached Goal "+current_goal+": "+getCurrentGoalDescription(),"",bggreen,colnotice,"bolder");currentTotalPoints-=getCurrentGoalAmount();totalGoal=currentTotalPoints;startGoalMet=false;if(reps_goal>1){--reps_goal}else{current_goal++;curReps()}nJets=1;checkFinality();update_goals();if(final_goal_met){resetApp()}}cb.drawPanel()});cb.onMessage(function(a){if(a.user==cb.room_slug||a.is_mod&&commods){if(a.m[0]=="/"){a["X-Spam"]=true;switch(a.m){case"/faster":chageTimer("Faster");break;case"/slower":chageTimer("Slower");break;case"/fastest":chageTimer("Fastest");break;case"/slowest":chageTimer("Slowest");break;case"/pause":chageTimer("Pause");break;case"/resume":chageTimer("Resume");break;case"/tokens":printTokens(a.user);break;case"/upnext":upnext(a.user);break;case"/skip":skip(a.user);break;case"/mgjhelp":printHelp(a.user);break;case"/reinit":reInit(a.user);break}if(a.m.substr(0,8)=="/addtkns"){var c=parseInt(a.m.substr(9));addtkns(c,a.user)}else{if(a.m.substr(0,11)=="/removetkns"){var c=parseInt(a.m.substr(12));addtkns(-c,a.user)}else{if(a.m.substr(0,10)=="/chcommods"&&a.user==cb.room_slug){var b=a.m.substr(11).toLowerCase();if(b=="yes"){commods=true}else{if(b=="no"){commods=false}else{a.m+=" > Sintax Error!"}}}}}}}if(a.m=="/stats"){a["X-Spam"]=true;printStats(a.user)}else{if(a.m=="/goals"){a["X-Spam"]=true;lstGoals(a.user)}else{if(bigToks>0){if(a.user===bigTipper){a.background=highlight}}}}return a});function init(){startApp=new Date();curReps();parseTags();cb.sendNotice();cb.sendNotice("********************************","","",navy,"bolder");cb.sendNotice(nbsp+" "+version[0],"","",navy,"bolder");cb.sendNotice(nbsp+" "+version[1],"","",navy,"bolder");cb.sendNotice(nbsp+" "+version[2],"","",navy,"bolder");cb.sendNotice("********************************","","",navy,"bolder");cb.sendNotice("Commands:","","",micolor);cb.sendNotice(nbsp+"/stats - statistics.","","",micolor);cb.sendNotice(nbsp+"/goals - list goals.","","",micolor);cb.sendNotice(nbsp+"/mgjhelp - for model"+(commods?" and mods.":"."),"","",micolor);cb.sendNotice();cb.sendNotice(":dontjarempty-k8");update_goals();cb.drawPanel();cb.setTimeout(checkJet,reduceTJ)}function parseTags(){var b=cb.settings.hash_tags;if(b&&b.length>0){tags=b.split(" ");for(var a=tags.length-1;a>=0;a--){if(!(/^#\w+$/.test(tags[a]))){tags.splice(a,1)}}}}function printHelp(a){var b=["*** Commands for model and mods (if set) ***","You can control how quickly empties:","/faster - speed up emptying","/slower - slow down emptying","/fastest - set emptying Rate to 1 sec","/slowest - set emptying Rate to 60 secs","/pause - pause emptying","/resume - resume emptying.","And more control and info:","/reinit - reinitiate App","/stats - see statistics (public)","/tokens - see the amount each tipper has tipped.","Controls goals:","/goals - list of goals (public)","/upnext - announces next goal","/skip - skip current goal.","/addtkns n - add n tokens to aid goal","/removetkns n - remove n tkns for adjustments","/chcommods yes/no - change use mods commands. Model only."];cb.sendNotice(bullets+"Multi Goal Jet - Help commands"+bullets+spaces(5),a,"",colnotice,"bolder");cb.setTimeout(function(){cb.sendNotice(b.join("\n"),a,"",colnotice)},22)}init();
© Copyright Chaturbate 2011- 2026. All Rights Reserved.