Apps Home
|
Create an App
Hangman_Test
Author:
schooltobecoool
Description
Source Code
Launch App
Current Users
Created by:
Schooltobecoool
var trec=""; var mintip=50; var frec=""; var oslova; var niz=[]; var passletters=[]; var antispam=false; var ttips=0; var remlet=true; var brpobanih=0; var blapped_users=[]; var blappon=false; var umessages=[]; var autoblapp=false; var abgreys=false; var abblues=false; var utipsunblapp=[]; var gemedstopped=false; var stopgame=true; var mintokword=200; var stopguess=25; var namesword=[]; cb.settings_choices = [ {name: 'goal_description', type: 'str', minLength: 1, maxLength: 240, label: "Goal description"}, {name: 'word_to_gues', type: 'str', minLength: 1, maxLength: 12, label: "Word to guess(only letters from english alphabet)"}, {name: 'min_tok_letter', type: 'int', minValue: 1, default: 50, label: "Minimal tip for letter"}, {name: 'min_tok_word', type: 'int', minValue: 1, default: 200, label: "Minimal tip for whole word"}, {name: 'stop_game', type:'choice',choice1:'yes',choice2:'no', default: 'yes', label: "Stop game after number of try"}, {name: 'numstop_guess', type: 'int', minValue: 1, default: 25, label: "Number of try till game ends"}, {name: 'rem_letters', type:'choice',choice1:'yes',choice2:'no', default: 'yes', label: "Remove the letters after they've already been guessed"}, {name: 'anti_spam', type:'choice',choice1:'yes',choice2:'no', default: 'no'}, {name: 'spam_words', type: 'str', minLength: 1, maxLength: 240 ,default: "bb", label: "Spam words",required: false}, {name: 'blapp_option', type:'choice',choice1:'yes',choice2:'no', default: 'no'}, {name: 'auto_blapp', type:'choice',choice1:'yes',choice2:'no', default: 'no'}, {name: 'auto_blapp_blues', type:'choice',choice1:'yes',choice2:'no', default: 'no'}, {name: 'auto_blapp_blues_num_messages', type: 'int', minValue: 1, default: 10, label: "Number of comments after blue will be blapped if dont tip"}, {name: 'unblapp_tok', type: 'int', minValue: 1, default: 25, label: "Amount tok to unblap for next amount of messages"}, {name: 'auto_blapp_grey', type:'choice',choice1:'yes',choice2:'no', default: 'no'}, {name: 'auto_blapp_grey_num_messages', type: 'int', minValue: 1, default: 5, label: "Number of comments after grey will be blapped"} ]; cb.tipOptions(function(user) { if(!gemedstopped) { var options = []; options.push({label: 'Tip to un blapp'}); options.push({label: 'Solve Hangman (tip at least ' + mintokword + ')'}); for (var i=0;i<26;i++) { if(remlet) { if(!passletters[i]) options.push({label:String.fromCharCode(i+65)}); } else options.push({label:String.fromCharCode(i+65)}); } options.push({label: 'Normal Tip'}); return {options:options, label:'Pick letter(To guess a letter tip at least ' + mintip + ' tok ):'}; } else return {label:'Game finished. New word will be choosen soon.'}; }); cb.onDrawPanel(function(user) { return { 'template': '3_rows_of_labels', 'row1_label': 'Tip for letter :', 'row1_value': '' + mintip, 'row2_label': 'Letters Left:', 'row2_value': ''+oslova, 'row3_label': 'Word:', 'row3_value': frec }; }); cb.onTip(function(tip) { if(autoblapp) if(typeof(utipsunblapp[tip['from_user']]) != "undefined") { utipsunblapp[tip['from_user']]+=tip['amount']; } else utipsunblapp[tip['from_user']]=tip['amount']; ttips+=tip['amount']; if(tip['message']==('Solve Hangman (tip at least ' + mintokword + ')') && tip['amount']>=mintokword) { namesword.push(tip['from_user']); cb.chatNotice(""+tip['from_user']+" you can now try to answer by typing /solve a space then the word.", tip['from_user']); } if (tip['message'].length==1) { radna(tip['message'],tip['amount']); update_subject(); cb.drawPanel(); } }); cb.onMessage(function (msg) { var string=msg['m']; if(string.charAt(0)=="/") { if(string=="/help") { cb.chatNotice("To be able to guess a letter, you need to enter the minimum value for the current letter (in goal box) and select letter.\nCurrent minimal tip for letter is : "+mintip, msg['user']); } msg['X-Spam'] = true; if(string.substring(0,6)=="/solve" && namesword.indexOf(msg['user'])!=-1) tryword(msg['user'],msg['m']); if(string.substring(0,8)=="/newword" && (msg['is_mod'] || msg['user'] == cb.room_slug)) newword(msg); if(string=="/stop" && (msg['is_mod'] || msg['user'] == cb.room_slug)) { cb.chatNotice("Game is stopped", msg['user']); gemedstopped=true; } if(blappon) { if(string.substring(0,6)=="/blapp" && (msg['is_mod'] || msg['user'] == cb.room_slug)) blapuser(msg); if(string.substring(0,8)=="/unblapp" && (msg['is_mod'] || msg['user'] == cb.room_slug)) unblapuser(msg); if(string.substring(0,12)=="/usrblapped" && (msg['is_mod'] || msg['user'] == cb.room_slug)) bloppedusers(msg); } if(string=="/stat" && (msg['is_mod'] || msg['user'] == cb.room_slug)) { var proslaslova=[]; for(var i=0;i<26;i++) if(passletters[i]) proslaslova.push(String.fromCharCode(i+65)); cb.chatNotice("Past letters: "+proslaslova+"\n Tried "+ brpobanih +" times\n Total tiped:"+ttips,msg['user']); msg['X-Spam'] = true; } } else { if(autoblapp) { if(typeof(utipsunblapp[msg['user']]) != "undefined" && abblues) if(utipsunblapp[msg['user']]>=0 && blapped_users.indexOf(msg['user'])!=-1) blapped_users.splice(blapped_users.indexOf(msg['user']),1); //cb.log(autoblapp); if(!(msg['is_mod'] || msg['user'] == cb.room_slug)) { if(typeof(umessages[msg['user']]) != "undefined") { umessages[msg['user']]++; //cb.log("nije prva poruka: "+umessages[msg['user']]); } else { //cb.log("prva poruka"); umessages[msg['user']]=1; } //cb.log(umessages[msg['user']]>cb.settings.auto_blapp_blues_num_messages && msg['has_tokens']); //cb.log(msg['has_tokens']); if(umessages[msg['user']]>cb.settings.auto_blapp_blues_num_messages && msg['has_tokens'] && abblues) { if(typeof(utipsunblapp[msg['user']]) != "undefined") { utipsunblapp[msg['user']]-=cb.settings.unblapp_tok umessages[msg['user']]-=cb.settings.auto_blapp_blues_num_messages; if(utipsunblapp[msg['user']]<0) { if(blapped_users.indexOf(msg['user'])==-1) blapped_users.push(msg['user']); cb.chatNotice("You need to tip "+(0-utipsunblapp[msg['user']])+ " to unblapp yoursel",msg['user']); } } else { blapped_users.push(msg['user']); utipsunblapp[msg['user']]=0; utipsunblapp[msg['user']]-=cb.settings.unblapp_tok umessages[msg['user']]-=cb.settings.auto_blapp_blues_num_messages; if(utipsunblapp[msg['user']]<0) { cb.chatNotice("You need to tip "+(0-utipsunblapp[msg['user']])+ " to unblapp yoursel",msg['user']); } } } //greys if(umessages[msg['user']]>cb.settings.auto_blapp_grey_num_messages && !msg['has_tokens'] && abgreys) { umessages[msg['user']]-=cb.settings.auto_blapp_grey_num_messages; if(blapped_users.indexOf(msg['user'])==-1) blapped_users.push(msg['user']); } } } if(blappon) { msg['m']=blabla(msg); } if(antispam && !msg['is_mod'] && msg['user'] != cb.room_slug) { if(antispam) { for (var i=0;i<niz.length;i++) { var reg=new RegExp('\\b'+niz[i]+'\\b','g'); if(string.match(reg)!=null) {msg['X-Spam'] = true; cb.chatNotice("Your message is not displayed in chat because it contains disallowed words",msg['user']); break; } } } } } }); function update_subject() { if(oslova==0) { var new_subject = cb.settings.goal_description + "[Word: "+frec+" GUESSED (for help type \"/help\")]"; //cb.log("Changing subject to: " + new_subject); cb.changeRoomSubject(new_subject); } else { var new_subject = cb.settings.goal_description + "[Word: "+frec+" "+oslova+" letters left to guess (for help type \"/help\")]"; //cb.log("Changing subject to: " + new_subject); cb.changeRoomSubject(new_subject); } } function tryword(usr,poruka) { stopguess--; namesword.splice(namesword.indexOf(usr),1); var pom=poruka.substring(7); if(pom.toUpperCase()==trec) { cb.chatNotice("User " +usr+" guessed the word"); frec=trec; oslova=0; cb.chatNotice("Game finished. New word will be choosen soon."); gemedstopped=true; update_subject(); cb.drawPanel(); } else cb.chatNotice("You didn't guess the word",usr); if(stopguess<=0) { cb.chatNotice("Game finished. New word will be choosen soon."); gemedstopped=true; } else { cb.chatNotice("You have "+stopguess+" tries to solve game"); } } function radna(slovo,tip) { if(gemedstopped) return; var ima=0; if(tip>=mintip && oslova>0) { brpobanih++; stopguess--; } if (frec.indexOf(slovo)==-1 && tip>=mintip && oslova>0) { for (var i=0;i<trec.length;i++) { if(trec[i]==slovo) { oslova--; frec=sreplace(i,slovo,frec); ima++; } } passletters[(slovo.charCodeAt(0)-65)]=true; if(ima==0 && tip>=mintip && oslova>0) { cb.chatNotice("There is no letter "+slovo+" in the word"); } else { cb.chatNotice("There is letter "+slovo+", "+ima+" times in word"); } } if(!stopgame) if(stopguess<=0) { cb.chatNotice("Game finished. New word will be choosen soon."); gemedstopped=true; } else { cb.chatNotice("You have "+stopguess+" try to solve game"); } } function sreplace(index, char, string) { return string.substr(0, index) + char + string.substr(index+char.length); } function blapuser(poruka) { var pom=poruka['m'].split(" "); if(pom.length!=2) { cb.chatNotice ("error in usage!! usage /blapp user_to_blapp",poruka['user']); return; } if(pom[1]==cb.room_slug) { cb.chatNotice ("Broadcaster cannot be blapped",poruka['user']); return; } blapped_users.push(pom[1]); cb.chatNotice ("User "+pom[1]+" is blaped",poruka['user']); } function bloppedusers(poruka) { cb.chatNotice ("Blopped users: "+blapped_users,poruka['user']); } function unblapuser(poruka) { var pom=poruka['m'].split(" "); if(pom.length!=2) { cb.chatNotice ("error in usage!! usage /unblapp user_to_blapp",poruka['user']); return; } if(blapped_users.indexOf(pom[1])==-1) { cb.chatNotice ("User " +pom[1]+ " is not blopped",poruka['user']); return; } blapped_users.splice(blapped_users.indexOf(pom[1]),1); cb.chatNotice ("User "+pom[1]+" is unblaped",poruka['user']); } function blabla(poruka) { if(!(blapped_users.indexOf(poruka['user'])==-1)) { var pom=poruka['m'].split(" "); var rmes=""; for(var i=0;i<pom.length;i++) { var blar=Math.round(pom[i].length/3); if(blar==0) blar=1; for(var j=0;j<blar;j++) rmes+="bla"; rmes+=" "; } return rmes; } else return poruka['m'] } function newword(poruka) { // cb.chatNotice(poruka,cb.room_slu); var str=poruka['m']; var reci=str.split(":"); cb.chatNotice(reci.length,cb.room_slu); if(reci.length==2) { trec=reci[1].toUpperCase(); oslova=trec.length; frec=""; gemedstopped=false; mintip=cb.settings.min_tok_letter; mintokword=cb.settings.min_tok_word; stopguess=cb.settings.numstop_guess; for(var i=0;i<26;i++) passletters[i]=false; for(var i=0;i<trec.length;i++) if(!(/^[A-Z]*$/.test(trec.charAt(i)))) { frec+=trec.charAt(i); oslova--; } else frec+="_"; if(stopguess<oslova) stopguess=oslova; update_subject(); cb.drawPanel(); } if(reci.length==3) { trec=reci[1].toUpperCase(); oslova=trec.length; frec=""; gemedstopped=false; mintip=parseInt(reci[2]); mintokword=cb.settings.min_tok_word; stopguess=cb.settings.numstop_guess; for(var i=0;i<26;i++) passletters[i]=false; for(var i=0;i<trec.length;i++) if(!(/^[A-Z]*$/.test(trec.charAt(i)))) { frec+=trec.charAt(i); oslova--; } else frec+="_"; if(stopguess<oslova) stopguess=oslova; update_subject(); cb.drawPanel(); } if(reci.length==4) { trec=reci[1].toUpperCase(); oslova=trec.length; frec=""; gemedstopped=false; mintip=parseInt(reci[2]); mintokword=parseInt(reci[3]); stopguess=cb.settings.numstop_guess; for(var i=0;i<26;i++) passletters[i]=false; for(var i=0;i<trec.length;i++) if(!(/^[A-Z]*$/.test(trec.charAt(i)))) { frec+=trec.charAt(i); oslova--; } else frec+="_"; if(stopguess<oslova) stopguess=oslova; update_subject(); cb.drawPanel(); } if(reci.length==5) { trec=reci[1].toUpperCase(); oslova=trec.length; frec=""; gemedstopped=false; mintip=parseInt(reci[2]); mintokword=parseInt(reci[3]); stopguess=parseInt(reci[4]); for(var i=0;i<26;i++) passletters[i]=false; for(var i=0;i<trec.length;i++) if(!(/^[A-Z]*$/.test(trec.charAt(i)))) { frec+=trec.charAt(i); oslova--; } else frec+="_"; if(stopguess<oslova) stopguess=oslova; update_subject(); cb.drawPanel(); } cb.chatNotice("new word:"+trec+" min letter tip:"+mintip+" min word tip:"+mintokword+" number of try to stop game: "+stopguess,cb.room_slug); cb.chatNotice("new word:"+trec+" min letter tip:"+mintip+" min word tip:"+mintokword+" number of try to stop game: "+stopguess,poruka['user']); } function pocni() { if(cb.settings.auto_blapp=="yes") autoblapp=true; if(cb.settings.blapp_option=="yes") blappon=true; if(cb.settings.auto_blapp_blues=="yes") abblues=true; if(cb.settings.auto_blapp_grey=="yes") abgreys=true; mintokword=cb.settings.min_tok_word; if(cb.settings.stop_game=="no") { stopgame=false; } else stopguess=cb.settings.numstop_guess; trec+=cb.settings.word_to_gues; mintip=cb.settings.min_tok_letter; trec=trec.toUpperCase(); oslova=trec.length; for(var i=0;i<trec.length;i++) if(!(/^[A-Z]*$/.test(trec.charAt(i)))) { frec+=trec.charAt(i); oslova--; } else frec+="_"; if(stopguess<oslova) stopguess=oslova; //cb.log(cb.settings.anti_spam); for(var i=0;i<26;i++) passletters[i]=false; if(cb.settings.rem_letters=="no") remlet=false; if(cb.settings.anti_spam=="yes") { antispam=true; spamws=cb.settings.spam_words; niz=spamws.split(" "); //cb.log("Anti spam on"); } //cb.log(cb.settings.anti_spam); update_subject(); } pocni();
© Copyright Chaturbate 2011- 2025. All Rights Reserved.