Apps Home
|
Create an App
qwerty
Author:
xxcasaxx
Description
Source Code
Launch App
Current Users
Created by:
Xxcasaxx
players = []; healths = []; upgrades = []; golden = []; potion = []; gamephase = 3; winner = ""; cb.settings_choices = [ {name:'entry_price', label:"How many tokens to enter the game?", type:'int', minValue:1, maxValue:99999, default:25}, {name:'shot_price', label:"How many tokens to shoot someone?", type:'int', minValue:1, maxValue:99999, default:25}, {name:'heal_price', label:"How many tokens to heal?", type:'int', minValue:0, maxValue:99999, default:25}, {name:'grenade_price', label:"How many tokens for a grenade?", type:'int', minValue:0, maxValue:99999, default:25}, {name:'upgrade_price', label:"How many tokens for a gun upgrade?", type:'int', minValue:0, maxValue:99999, default:25}, {name:'potion_price', label:"How many tokens for a potion (stops a bullet or deals 25 damage)?", type:'int', minValue:0, maxValue:99999, default:25}, {name:'golden_gun_price', label:"How many tokens for a golden gun (one hit KO)?", type:'int', minValue:0, maxValue:99999, default:100}, {name:'prize', label:"What prize are you offering the winner?", type:'str', minLength: 2, maxLength: 25, required: false} ]; cb.tipOptions(function(user) { var options = []; var index = players.indexOf(user); if (gamephase==1){ if(index!=-1){ if(cb.settings.heal_price>0){ options.push({label:'Buy 50 health points for '+cb.settings.heal_price}); } if(cb.settings.grenade_price>0){ options.push({label:'Throw grenade for '+cb.settings.grenade_price}); } if(cb.settings.upgrade_price>0&&upgrades.indexOf(user)==-1&&golden.indexOf(user)==-1){ options.push({label:'Upgrade gun (40-50 damage) for '+cb.settings.upgrade_price}); } if(cb.settings.golden_gun_price>0&&(golden.indexOf(user)==-1)){ options.push({label:'Buy a golden gun (one hit KO) for '+cb.settings.golden_gun_price}); } if(cb.settings.potion_price>0&&(potion.indexOf(user)==-1)){ options.push({label:'Buy a pandora potion for '+cb.settings.potion_price}); } for (var i=0; i < players.length; i++){ if(i!=index){ options.push({label:"Shoot "+players[i]}); } } return {options:options, label:'To shoot somebody, tip at least ' + cb.settings.shot_price + '! Your health is: ' + healths[index]}; } else{ return; } } else { return; } }); cb.onTip(function(tip) { if(gamephase==0){ if(tip['amount'] >= cb.settings.entry_price){ add_player(tip['from_user']); cb.drawPanel(); } else{ cb.chatNotice("Incorrect tip amount so sent as a normal tip.", tip['from_user']); } } else if(gamephase==1){ if(players.indexOf(tip['from_user'])!= -1){ if(tip['message']==('Buy 50 health points for '+cb.settings.heal_price)){ if(tip['amount'] >= cb.settings.heal_price){ heal_player(tip['from_user']); cb.chatNotice("You've just healed for 50 health points!" , tip['from_user']); } else{ cb.chatNotice("Incorrect tip amount so sent as a normal tip.", tip['from_user']); } } else if(tip['message']==('Throw grenade for '+cb.settings.grenade_price)){ if(tip['amount'] >= cb.settings.grenade_price){ cb.chatNotice(tip['from_user'] + " threw a grenade!"); lob_grenade(tip['from_user']); } else{ cb.chatNotice("Incorrect tip amount so sent as a normal tip.", tip['from_user']); } } else if(tip['message']==('Upgrade gun (40-50 damage) for '+cb.settings.upgrade_price)){ if(tip['amount'] >= cb.settings.upgrade_price){ upgrades.push(tip['from_user']); cb.chatNotice("You've just upgraded your gun! Your shots now have a base damage of 40 to 50!", tip['from_user']); } else{ cb.chatNotice("Incorrect tip amount so sent as a normal tip.", tip['from_user']); } } else if(tip['message']==('Buy a golden gun (one hit KO) for '+cb.settings.golden_gun_price)){ if(tip['amount'] >= cb.settings.golden_gun_price){ golden.push(tip['from_user']); cb.chatNotice("You've just purchased a golden gun! All your shots are KO shots now!", tip['from_user']); } else{ cb.chatNotice("Incorrect tip amount so sent as a normal tip.", tip['from_user']); } } else if(tip['message']==('Buy a pandora potion for '+cb.settings.potion_price)){ if(tip['amount'] >= cb.settings.potion_price){ drink_potion(tip['from_user']); } else{ cb.chatNotice("Incorrect tip amount so sent as a normal tip.", tip['from_user']); } } else if (tip['message'].substring(0,6)=='Shoot '){ if(tip['amount']>=cb.settings.shot_price){ target = tip['message'].substring(6,tip['message'].length); if(golden.indexOf(tip['from_user'])!=-1){ if(potion.indexOf(target)!=-1){ cb.chatNotice(target + " just dodged a bullet with the help of Pandora's potion"); dodge_bullet(target); } else{ shoot_playerGolden(target); } } else if(upgrades.indexOf(tip['from_user'])==-1){ if(potion.indexOf(target)!=-1){ cb.chatNotice(target + " just dodged a bullet with the help of Pandora's potion"); dodge_bullet(target); } else{ shoot_player(target); } } else{ if(potion.indexOf(target)!=-1){ cb.chatNotice(target + " just dodged a bullet with the help of Pandora's potion"); dodge_bullet(target); } else{ shoot_playerUpgraded(target); } } } else{ cb.chatNotice("Incorrect tip amount so sent as a normal tip.", tip['from_user']); } } } } }); function dodge_bullet(player){ var index = potion.indexOf(player); potion.splice(index, 1); } function drink_potion(player){ if(Math.random()>=0.5){ cb.chatNotice("Not sure what that was, but it wasn't poison...", player); potion.push(player); } else{ cb.chatNotice("Bad luck, you just drank poison, you lose 25 health!", player); update_health(player, 25); if(players.length == 1){ endGame(); } } } function lob_grenade(player){ if(players.length <= 4){ for (var i=0; i < players.length; i++){ if(player!=players[i]){ shoot_player(players[i]); } } } else{ targets = []; while(targets.length <3){ if((targets.length + 1) >= players.length){ break; } targetIndex = Math.round(Math.random()*(players.length-1)); if(players[targetIndex]!=player && targets.indexOf(targetIndex)==-1){ targets.push(targetIndex); } } for (var i=0; i < targets.length; i++){ shoot_player(players[targets[i]]); } } } function add_player(user) { if(players.indexOf(user)==-1){ players.push(user); healths.push(100); cb.chatNotice(""+user+" has just entered the game!"); } } function shoot_player(player){ var index = players.indexOf(player) if(index!=-1){ if(Math.random()<0.8){ var damage = Math.round(20 + (Math.random()*10)); if(Math.random()<0.05){ damage *= 2; var dead = update_health(player, damage); if(dead){ cb.chatNotice("Critical Hit! " + player + " :shg100 hit for " + damage + " damage! "); cb.chatNotice(""+player+" died!"); } else{ cb.chatNotice("Critical Hit! "+ player + " " + healthGraphFromIndex(index)+ " hit for " + damage + " damage! "); } } else{ var dead = update_health(player, damage); if(dead){ cb.chatNotice(player + " :shg100 hit for " + damage + " damage! "); cb.chatNotice(""+player+" died!"); } else{ cb.chatNotice(player + " " + healthGraphFromIndex(index)+ " hit for " + damage + " damage! "); } } if(players.length == 1){ endGame(); } } else{ cb.chatNotice(""+player+" just got lucky! Missed!"); } } } function shoot_playerUpgraded(player){ var index = players.indexOf(player) if(index!=-1){ if(Math.random()<0.8){ var damage = Math.round(40 + (Math.random()*10)); if(Math.random()<0.05){ damage *= 2; var dead = update_health(player, damage); if(dead){ cb.chatNotice("Critical Hit! " + player + " :shg100 hit for " + damage + " damage! "); cb.chatNotice(""+player+" died!"); } else{ cb.chatNotice("Critical Hit! " + player +" " +healthGraphFromIndex(index)+" hit for " + damage + " damage! "); } } else{ var dead = update_health(player, damage); if(dead){ cb.chatNotice(player + " " +":shg100 hit for " + damage + " damage! "); cb.chatNotice(""+player+" died!"); } else{ cb.chatNotice(player + " " + healthGraphFromIndex(index) + " hit for " + damage + " damage! "); } } if(players.length == 1){ endGame(); } } else{ cb.chatNotice(player+ " " +healthGraphFromIndex(index)+" just got lucky! Missed!"); } } } function shoot_playerGolden(player){ var index = players.indexOf(player); if(index!=-1){ if(Math.random()>0.05){ cb.chatNotice(player + " :shg100 hit for " + healths[index] + " damage! "); cb.chatNotice(""+player+" died!"); update_health(player, healths[index]); if(players.length == 1){ endGame(); } } else{ cb.chatNotice(player+ " " +healthGraphFromIndex(index)+" just got lucky! Missed!"); } } } function heal_player(player){ var index = players.indexOf(player); if(index!=-1){ if(healths[index] <= 50){ healths[index] = healths[index]+50; } else{ healths[index] = 100; } } cb.chatNotice(player+ " " +healthGraphFromIndex(index) +" just healed himself! "); } function update_health(player, damage){ var index = players.indexOf(player); healths[index] = healths[index] - damage; if(healths[index]<= 0){ healths.splice(index, 1); players.splice(index, 1); return true; } return false; } cb.onMessage(function (msg) { if (msg['m'].indexOf("/") === 0){ msg['m'] = msg['m'].toLowerCase(); msg['X-Spam'] = true; if (msg['user'] == cb.room_slug){ if(msg['m'] == "/start"){ if(players.length > 1){ gamephase = 1; cb.drawPanel(); cb.chatNotice("** GAME STARTED. READY, AIM... SHOOT'EM! **"); } else{ cb.chatNotice("You need more than one player to be able to start the game.", msg['user']); } } if(msg['m'] == "/signup"){ if(gamephase==1){ cb.chatNotice("You can't start a sign up while there is a game going on.", msg['user']); } else{ gamephase = 0; cb.drawPanel(); cb.chatNotice("Sign up for shoot'em started!"); } } } if(msg['m'] == "/players"){ if(gamephase==1){ for(var i = 0; i < players.length; i++){ cb.chatNotice(" " + players[i] + " " + healthGraphFromIndex(i)); } } } } var index = players.indexOf(msg['user']); if(index!=-1){ msg['m'] = healthGraphFromIndex(index) +" " + msg['m']; } return msg; }); function healthGraphFromIndex(index){ var number = 100-healths[index]+1; return ":shg"+ number; } function endGame(){ gamephase = 2; if(players.length == 1){ winner = players[0]; } else{ var health = 0; for(var i = 0; i < players.length; i++){ if(healths[i] >= health){ if(healths[i] == health){ winner += ", " + players[i]; } else{ winner = players[i]; } health = health; } } } while(players.length > 0) { players.pop(); healths.pop(); } while(upgrades.length > 0){ upgrades.pop(); } while(golden.length > 0){ golden.pop(); } while(potion.length > 0){ potion.pop(); } cb.chatNotice("The winner is... " + winner); cb.drawPanel(); } cb.onDrawPanel(function (user) { if(gamephase==0){ return { 'template':'3_rows_11_21_31', 'row1_value':'Shoot\'em! Sign up Now! '+players.length+' sign ups.' , 'row2_value':'Sign up price: ' + cb.settings.entry_price, 'row3_value':'The winner gets: ' + cb.settings.prize }; } else if (gamephase==1){ return { 'template':'3_rows_11_21_31', 'row1_value':'Shoot\'em! Game On!', 'row2_value':'Shot price: ' + cb.settings.shot_price, 'row3_value':'Tip to shoot someone... Playing for: '+ cb.settings.prize }; } else if(gamephase==2){ return { 'template':'3_rows_11_21_31', 'row1_value':'Shoot\'em! Game over!', 'row2_value':'Thanks for playing.', 'row3_value':'The winner was: ' + winner } } else{ return { 'template':'3_rows_11_21_31', 'row1_value':'Shoot\'em!!', 'row2_value':'Stay tuned.', 'row3_value':'Stuff might happen soon.' } } });
© Copyright Chaturbate 2011- 2026. All Rights Reserved.