Apps Home
|
Create an App
Adams Hangman
Author:
fishmaster766
Description
Source Code
Launch App
Current Users
Created by:
Fishmaster766
word = []; answer_users = []; wrong = 0; finished = false; user_king = ""; set_word = ""; letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; choices = []; winner = ""; last_words = []; cb.settings_choices = [ {name:'goal', label:'Was bekommt der Sieger? (Goal)', type:'str', minLength: 2, maxLength: 25, required: true}, {name:'guess_tokens', label:"Kosten fuer erraten eines Buchstaben", type:'int', minValue:1, maxValue:99999, default:15}, {name:'answer_tokens', label:"Kosten fuer erraten des Loesungswort", type:'int', minValue:1, maxValue:99999, default:55}, {name:'word', type:'str', minLength: 2, maxLength: 25, required: false}, {name:'rand_word', label: "Soll zufaellig ein Loesungswort ausgewaehlt werden?", type:'choice', choice1:'Ja', choice2:'Nein', default:'Ja'}, {name:'wait_s', label:"Wie viele Sekunden soll nach einem Spiel gewartet werden, bis ein neues Loesungswort ausgewaehlt wird?", type:'int', minValue:5, maxValue:90, default:30}, {name:'end_when', label: "Soll das Spiel komplett beendet werden, wenn der Hangman gestorben ist?", type:'choice', choice1:'Ja', choice2:'Nein', default:'Ja'}, {name:'winner_is_king', label: "Darf der Sieger das neue Loesungswort aussuchen?", type:'choice', choice1:'Ja', choice2:'Nein', default:'Nein'}, {name:'mod_as_king', label: "Duerfen Mods das neue Loesungswort aussuchen?", type:'choice', choice1:'Ja', choice2:'Nein', default:'Nein'}, {name:'rm_used', label: "Sollen benutzte Buchstaben aus der Auswahlliste entfernt werden?", type:'choice', choice1:'Ja', choice2:'Nein', default:'Ja'} ]; cb.tipOptions(function(user) { var options = []; if (!finished){ options.push({label: 'Solve Hangman (tip at least ' + cb.settings.answer_tokens + ')'}); for (var i=0; i < choices.length; i++) options.push({label:choices[i]}); options.push({label: 'Normal Tip'}); return {options:options, label:'Hangman Options (To guess a letter tip at least ' + cb.settings.guess_tokens + '):'}; } else return {options:[{label: 'Normal Tip'}], label:'Game finished. New word will be choosen soon.'}; }); cb.onTip(function(tip) { if(tip['message'] == 'Solve Hangman (tip at least ' + cb.settings.answer_tokens + ')'){ if (tip['amount'] >= cb.settings.answer_tokens){ for (var i = 0; i < tip['amount']/cb.settings.answer_tokens; i++) answer_users[answer_users.length] = tip['from_user']; if (tip['amount'] == cb.settings.answer_tokens) cb.chatNotice(""+tip['from_user']+" Du kannst nun versuchen das Wort zu erraten, durch die Eingabe im Chatfeld von /solve dann ein Leerzeichen und danach deine Antwort.", tip['from_user']); else cb.chatNotice(""+tip['from_user']+" Du kannst nun versuchen das Wort zu erraten, " + tip['amount']/cb.settings.answer_tokens + " durch die Eingabe im Chatfeld von /solve dann ein Leerzeichen und danach deine Antwort.", tip['from_user']); } else { cb.chatNotice("Falscher Wert fuer einen Tipp um das Wort zu erraten. Daher wird er als normaler Tipp gewertet.", tip['from_user']); } } else if(tip['message'].length == 1 && tip['amount'] >= cb.settings.guess_tokens){ if (set_word != tip['from_user']) try_letter(tip['from_user'], tip['message']); else cb.chatNotice("Du kannst das Wort nicht erraten, welches Du selbst ausgewaehlt hast.", tip['from_user']); } else cb.chatNotice("Falscher Wert für einen Tipp. Daher wird er als normaler Tipp gewertet.", tip['from_user']); }); cb.onMessage(function (msg) { if (msg['m'].indexOf("/") === 0){ msg['m'] = msg['m'].toLowerCase(); msg['X-Spam'] = true; if (msg['user'] == cb.room_slug && msg['m'] == "/rmking") rm_king(); else if (msg['user'] == cb.room_slug && msg['m'].indexOf("/") === 0) run_command(msg['m'], msg['user']); else if (msg['user'] == user_king && msg['m'].indexOf('/word') === 0) run_command(msg['m'], msg['user']); else if (answer_users.indexOf(msg['user']) > -1 && msg['m'].indexOf('/solve') === 0 && set_word != msg['user']) run_command(msg['m'], msg['user']); else if (msg['is_mod'] == true && cb.settings.mod_as_king === "Yes" && msg['m'].indexOf("/word") === 0) run_command(msg['m'], msg['user']); else if (set_word == msg['user']) cb.chatNotice("Du kannst das Wort nicht erraten, welches Du selbst ausgewaehlt hast.", msg['user']); else cb.chatNotice("Man muss tippen um mitspielen zu koennen.", msg['user']); } return msg; }); cb.onDrawPanel(function (user) { var word_display = ""; word_display = word.join().replace(",", " "); while (word_display.indexOf(',') > 0){ word_display = word_display.replace(",", " "); } if (!finished) return { 'template':'3_rows_11_21_31', 'row1_value':'Willkommen zu Adams Hangman!', 'row2_value':'Wort: ' + word_display, 'row3_value':'Tippe 15/55 um einen Buchstaben/das Wort zu erraten .' }; else return { 'template':'3_rows_11_21_31', 'row1_value':'Willkommen zu Adams Hangman!', 'row2_value':'Wort: ' + word_display, 'row3_value':'Der Sieger ist ' + winner + '!' }; }); function init_word() { if (cb.settings.word != null && cb.settings.word != ""){ for (var i=0; i < cb.settings.word.length; i++) word[i] = "_"; cb.settings.word = cb.settings.word.toLowerCase(); wrong = 0; finished = false; choices = letters; cb.drawPanel(); cb.chatNotice("Ein neues Wort wurde ausgewaehlt! " + hangman_tag(wrong++)); } else if (cb.settings.rand_word == "Ja"){ get_word(); } } function run_command (msg, user){ var cmd = get_cmd(msg); if (cmd != "noleadspaces"){ var param = get_param(msg, cmd); if (cmd == "word"){ set_word = user; new_word(param); } else if (cmd == "setking") set_king(param); else if (cmd == "guess") try_letter(user, param); else if (cmd == "answer") check_answer(user, param); else if (cmd == "solve") check_answer(user, param); } else { cb.chatNotice("Setze ein Leerzeichen zwischen dem Befehl und der Antwort.", user); } } function get_cmd(str){ var end = str.indexOf(" "); cb.log("found space at: " + end); if (end > -1){ var cmd = str.substring(1, end).toLowerCase(); cb.log("cmd::" + cmd); return cmd; } else return "noleadspaces"; } function get_param(str, cmd){ var params = str.replace("/"+cmd+" ", ""); params = params.replace(" ", ""); cb.log("param::" + params); return params; } function try_letter(user, letter) { var adj = "ist leider falsch"; var m = ''; if (cb.settings.word.indexOf(letter) > -1 && word.indexOf(letter) == -1){ update_word(letter); adj = "ist richtig"; } else { m = hangman_tag(wrong++); } if (cb.settings.rm_used == "Ja") choices.splice(choices.indexOf(letter), 1); cb.chatNotice("Der von "+user+" geratene Buchstabe "+letter.toLowerCase().charAt(0)+" "+adj+"! :Bonnie0006" + m); } function update_word (letter) { for (var i=0; i < cb.settings.word.length; i++){ if (cb.settings.word.charAt(i) === letter) word[i] = letter; } if (word.indexOf('_') == -1) finished = true; cb.drawPanel(); } function check_answer (user, aword) { var adj = "ist leider falsch"; var m = ''; if (!finished){ if (cb.settings.word == aword.toLowerCase()){ word = cb.settings.word.split(""); winner = user; finished = true; cb.drawPanel(); adj = "ist richtig"; if (cb.settings.winner_is_king === "Ja") set_king(user); if (cb.settings.rand_word === "Ja") cb.setTimeout(get_word, cb.settings.wait_s*1000) else cb.chatNotice("Hey "+user+" das von Dir geratene Wort "+adj+"!\n Du kannst nun das neue Wort bestimmen durch die Eingabe von /word dann ein Leerzeichen und danach das Wort.", cb.room_slug); } else { m = hangman_tag(wrong++); } if (user != cb.room_slug) answer_users.splice(answer_users.indexOf(user), 1); cb.chatNotice("Das von "+user+" erratene Wort "+aword.toLowerCase()+" "+adj+"! " + m); } else { cb.chatNotice("Das Spiel ist vorbei.", user); } } function new_word (nword){ word = []; cb.settings.word = nword; init_word(); } function set_king (user){ user_king = user; cb.chatNotice(""+user+" ist nun der Hangman King."); cb.chatNotice("Hey, "+user_king+" "+cb.room_slug+" hat Dich als neuen Hangman King auserwaehlt.\n Gebe nun /word dann ein Leerzeichen und danach das neue Loesungswort ein.", user_king); } function rm_king (){ cb.chatNotice("Hey, "+user_king+" du bist nicht laenger der Hangman King.", user_king); user_king = null; } function hangman_tag(stage){ if (stage == 0) return " :BonnieHG001"; else if (stage == 1) return " :BonnieHG002"; else if (stage == 2) return " :BonnieHG003"; else if (stage == 3) return " :BonnieHG004"; else if (stage == 4) return " :BonnieHG005"; else if (stage == 5) return " :BonnieHG006"; else if (stage == 6) return " :BonnieHG007"; else if (stage == 7) return " :BonnieHG008"; else if (stage == 8) return " :BonnieHG009"; else if (stage == 9) return " :BonnieHG010"; else if (stage == 10){ if (cb.settings.end_when == "Ja"){ finished = true; cb.chatNotice(" :BonnieHG012"); if (cb.settings.rand_word === "Ja") cb.setTimeout(get_word, cb.settings.wait_s*1000) else cb.chatNotice("Das Spiel wurde verloren! Setze ein neues Wort durch die Eingabe von /word dann ein Leerzeichen und danach das neue Wort.", cb.room_slug); } return " Er ist tot! :BonnieHG012"; } else return " Er ist tot! :BonnieHG012"; } function get_word() { var rnumber = Math.floor(Math.random()*1000); if (last_words[0] == null || last_words.indexOf(rnumber) == -1){ last_words.push(rnumber); cb.settings.word = wordbank[rnumber]; cb.log("New word:: "+cb.settings.word); } else { get_word(); } init_word(); } wordbank = ["italien","weinen","keramik","schwingen","handeln","stampfen","ego","gilde","kampf","wasserfall","tshirt","messer","koffer","rucksack","flammen","zerknittern","salz","malen","tanzen","chips","lesen","bar","mantel","van","wagon","tour","dieb","hammer","bakterien","knopf","eltern","richtig","saft","judo","pirat","rose","croissant","trapez","fruehling","ball","sonnenbrand","tourist","orange","kreation","test","spielzeug","sex","taxi","mumu","eingang","wald","krank","nacht","moepse","rentier","kuscheltier","salamander","ohren","bluray","uni","holz","vater","skywalker","stift","fliegen","general","laufhaus","taschenrechner","stadt","bad","blume","briefkasten","puppe","bibel","wal","neuigkeiten","kugel","betrug","soldat","nacken","piano","training","comet","pranke","ameise","nadel","dove","pyjama","kind","album","storm","schlange","flucht","fluch","ausbruch","adresse","fussball","feuer","feuerwehrmann","limit","planen","cousin","giraffe","pudding","bildschirm","macht","bremsen","esel","affe","ziege","kuh","schlange","leopard","radar","wechsel","zucker","sex","lord","service","unterschrift","kreatur","pilze","springen","karneval","shrimps","nase","noten","notiz","tiger","passionsfrucht","buch","glocke","formel","planet","eier","bikini","song","boese","teufel","witz","minute","gefaengnis","thermometer","poster","atem","luft","anhalten","runde","garten","spaghetti","zoo","diamant","rubin","saphir","boxen","reisen"]; init_word();
© Copyright Chaturbate 2011- 2026. All Rights Reserved.