@@ -6,5 +6,6 @@ To run TheChaseBuzzer yourself, complete the following steps:
|
|||||||
2. Install node.js from https://nodejs.org/en/
|
2. Install node.js from https://nodejs.org/en/
|
||||||
3. Download all project files for TheChaseBuzzer from this github repository
|
3. Download all project files for TheChaseBuzzer from this github repository
|
||||||
4. Open the main folder of TheChaseBuzzer in cmd (this is the folder containing app.js)
|
4. Open the main folder of TheChaseBuzzer in cmd (this is the folder containing app.js)
|
||||||
5. Enter the command: `node app.js`
|
5. Install the node modules using the command: `npm install`
|
||||||
6. You should then be able to connect to the server in a browser by entering your public ip, followed by `:8080`
|
6. Run the app with the command: `node app.js`
|
||||||
|
7. You should then be able to connect to the server in a browser by entering your public ip, followed by `:8080`
|
||||||
@@ -122,9 +122,15 @@ io.on("connection", (socket) => {
|
|||||||
io.emit("userInfoToClient", userInfo);
|
io.emit("userInfoToClient", userInfo);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//used by the host when they refresh the page.
|
||||||
|
socket.on("refreshUserInfo", () => {
|
||||||
|
io.emit("userInfoToClient", userInfo);
|
||||||
|
});
|
||||||
|
|
||||||
socket.on("unregisterUsers", () => {
|
socket.on("unregisterUsers", () => {
|
||||||
userInfo = new Object();
|
userInfo = new Object();
|
||||||
io.emit("userInfoToClient", userInfo);
|
io.emit("userInfoToClient", userInfo);
|
||||||
|
io.emit("reconnectUsers");
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("objectionToServer", (userName) => {
|
socket.on("objectionToServer", (userName) => {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
function userInfoToClient(userInfo) {
|
function userInfoToClient(userInfo) {
|
||||||
for (const user in userInfo) {
|
for (const user in userInfo) {
|
||||||
const userId = user.replaceAll(" ","_");
|
re = new RegExp("\\W","g");
|
||||||
|
const userId = user.replaceAll(re,"_");
|
||||||
if ($("#userListPanel").find("#"+userId).length >= 1) {
|
if ($("#userListPanel").find("#"+userId).length >= 1) {
|
||||||
//update buzzer icon of existing user
|
//update buzzer icon of existing user
|
||||||
$("#userListPanel").find("#"+userId).find("img").attr("data-buzzerId",userInfo[user].buzzerId);
|
$("#userListPanel").find("#"+userId).find("img").attr("data-buzzerId",userInfo[user].buzzerId);
|
||||||
|
|||||||
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
After Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 243 KiB |
|
After Width: | Height: | Size: 170 KiB |
|
After Width: | Height: | Size: 309 KiB |
|
After Width: | Height: | Size: 230 KiB |
|
After Width: | Height: | Size: 152 KiB |
|
After Width: | Height: | Size: 162 KiB |
|
After Width: | Height: | Size: 147 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 457 B |
|
After Width: | Height: | Size: 420 B |
|
After Width: | Height: | Size: 397 B |
|
After Width: | Height: | Size: 314 B |
|
After Width: | Height: | Size: 393 B |
|
After Width: | Height: | Size: 409 B |
|
After Width: | Height: | Size: 444 B |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 32 KiB |
@@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>No, you do not need to mute this site anymore.</title>
|
<title>You may now put weird characters in your name.</title>
|
||||||
<link rel="stylesheet" href="styleMain.css">
|
<link rel="stylesheet" href="styleMain.css">
|
||||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
@@ -10,10 +10,13 @@
|
|||||||
const egg = new Audio('Egg.wav');
|
const egg = new Audio('Egg.wav');
|
||||||
$("#userName").change(function() {
|
$("#userName").change(function() {
|
||||||
okSsuka.play();
|
okSsuka.play();
|
||||||
$("#playerLink").attr("href", "/play?user="+this.value+"&team=Players");
|
|
||||||
|
re = new RegExp("\\#|\\&","g");
|
||||||
|
const userName = this.value.replaceAll(re,">:(");
|
||||||
|
$("#playerLink").attr("href", "/play?user="+userName+"&team=Players");
|
||||||
$("#playerLink").html("Players");
|
$("#playerLink").html("Players");
|
||||||
|
|
||||||
$("#chaserLink").attr("href", "/play?user="+this.value+"&team=Chasers");
|
$("#chaserLink").attr("href", "/play?user="+userName+"&team=Chasers");
|
||||||
$("#chaserLink").html("Chasers");
|
$("#chaserLink").html("Chasers");
|
||||||
});
|
});
|
||||||
$("#egg").click(function() {
|
$("#egg").click(function() {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>No, you do not need to mute this site anymore.</title>
|
<title>No, you do not need to mute this site anymore. (yes, even on firefox)</title>
|
||||||
<link rel="stylesheet" href="styleMain.css">
|
<link rel="stylesheet" href="styleMain.css">
|
||||||
<script src="browserFunctions.js"></script>
|
<script src="browserFunctions.js"></script>
|
||||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||||
@@ -10,6 +10,8 @@
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
var socket = io();
|
var socket = io();
|
||||||
|
|
||||||
|
socket.emit("refreshUserInfo");
|
||||||
|
|
||||||
socket.on("userInfoToClient", (userInfo) => {
|
socket.on("userInfoToClient", (userInfo) => {
|
||||||
userInfoToClient(userInfo);
|
userInfoToClient(userInfo);
|
||||||
});
|
});
|
||||||
@@ -46,6 +48,7 @@
|
|||||||
|
|
||||||
$("#unregisterUsers").click(function() {
|
$("#unregisterUsers").click(function() {
|
||||||
socket.emit("unregisterUsers");
|
socket.emit("unregisterUsers");
|
||||||
|
location.reload();
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("objectionToClient", (userName) => {
|
socket.on("objectionToClient", (userName) => {
|
||||||
@@ -84,7 +87,7 @@
|
|||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<button id="unregisterUsers" type="button" style="height: 30px;">Remove all players</button>
|
<button id="unregisterUsers" type="button" style="height: 30px;">Remove/Reconnect all players</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="userListPanel">
|
<div id="userListPanel">
|
||||||
<div id="PlayersList">
|
<div id="PlayersList">
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>No, you do not need to mute this site anymore.</title>
|
|
||||||
<link rel="stylesheet" href="styleMain.css">
|
<link rel="stylesheet" href="styleMain.css">
|
||||||
<script src="browserFunctions.js"></script>
|
<script src="browserFunctions.js"></script>
|
||||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||||
@@ -21,17 +20,17 @@
|
|||||||
["BuzzinLiveBuzzer"],
|
["BuzzinLiveBuzzer"],
|
||||||
["PlokJUMP","PlokWaa","PlokCLEAR","PlokBOSS","PlokGIFT","PlokBONUS"],
|
["PlokJUMP","PlokWaa","PlokCLEAR","PlokBOSS","PlokGIFT","PlokBONUS"],
|
||||||
["BKGuhHuh","BKKazooieJump","BKEekumBokum","BKJinjoGlaceWhistle","BKGrunty1","BKGoldenFeatherGet","BKHoneycombGet","BKEggGet"],
|
["BKGuhHuh","BKKazooieJump","BKEekumBokum","BKJinjoGlaceWhistle","BKGrunty1","BKGoldenFeatherGet","BKHoneycombGet","BKEggGet"],
|
||||||
["BubsyOhYeah","BubsyUhOh","BubsyLoser","BubsyWhatCouldPawsiblyGoWrong","BubsyImOuttaHere","BubsyCheckOutThatTime","BubsyMyContract"],
|
["BubsyOhYeah","BubsyUhOh","BubsyLoser","BubsyWhatCouldPawsiblyGoWrong","BubsyImOuttaHere","BubsyCheckOutThatTime"],
|
||||||
["SkunnyBoioing","SkunnyOw","SkunnyAttention","SkunnyIllBeBack","SkunnyPuddyCat","SkunnyCoocoo","SkunnyAwMan","SkunnyFroggo","SkunnyGhost"],
|
["SkunnyBoioing","SkunnyOw","SkunnyAttention","SkunnyIllBeBack","SkunnyPuddyCat","SkunnyCoocoo","SkunnyAwMan","SkunnyFroggo","SkunnyGhost"],
|
||||||
["Kirbeep","KirbyMic2","KirbySquishy","KirbyBugzzy","KirbyKracko"],
|
["Kirbeep","KirbyMic2","KirbySquishy","KirbyBugzzy","KirbyKracko"],
|
||||||
|
["Killer7Laugh"],
|
||||||
|
["TheNumberEight","TheNumberEight","TheNumberEight","TheNumberEight","TheNumberEight","TheNumberEight","TheNumberEight","TheNumberEight"],
|
||||||
|
["Jiggluigibat","SaturnHonk","Kirbeep","UltiFinishZoom","UltiChromSorry"],
|
||||||
["MarioBoing","MarioPenguin","MarioCoin","MPYosh","MPDogF","MPCatF","MarioPlum","WLHelloThere","WLAlright","WLHurryUp","WLOhBoy"],
|
["MarioBoing","MarioPenguin","MarioCoin","MPYosh","MPDogF","MPCatF","MarioPlum","WLHelloThere","WLAlright","WLHurryUp","WLOhBoy"],
|
||||||
["PizzaTowerTaunt1"],
|
["PizzaTowerTaunt1"],
|
||||||
["EBWow","EBAttack1","SaturnHonk"],
|
["EBWow","EBAttack1","SaturnHonk"],
|
||||||
["AAHoldIt","AATakeThat"],
|
["AAHoldIt","AATakeThat"],
|
||||||
["Ooh"],
|
["Ooh"],
|
||||||
["Killer7Laugh"],
|
|
||||||
["TheNumberEight","TheNumberEight","TheNumberEight","TheNumberEight","TheNumberEight","TheNumberEight","TheNumberEight","TheNumberEight"],
|
|
||||||
["Jiggluigibat","SaturnHonk","Kirbeep","UltiFinishZoom"],
|
|
||||||
["PikminThrow","Pikmin2LouieAMV","Pikmin2Olimar","Pikmin2President","Pikmin2Breadbug"],
|
["PikminThrow","Pikmin2LouieAMV","Pikmin2Olimar","Pikmin2President","Pikmin2Breadbug"],
|
||||||
["FF9Moogle"],
|
["FF9Moogle"],
|
||||||
["MGSAlert"],
|
["MGSAlert"],
|
||||||
@@ -40,10 +39,10 @@
|
|||||||
["SonicCheckpoint","SonicOhNo","SonicSusic"],
|
["SonicCheckpoint","SonicOhNo","SonicSusic"],
|
||||||
["EmergencyMeeting"],
|
["EmergencyMeeting"],
|
||||||
["PdPSeren","TAFroggy","TAKamek"],
|
["PdPSeren","TAFroggy","TAKamek"],
|
||||||
["PKMNLvlUp","PKMNCherrim"],
|
["PKMNLvlUp","PKMNCherrim","PKMNDitto","PKMNSkiploom"],
|
||||||
["MMShakeShake"],
|
["MMShakeShake"],
|
||||||
["AoEWololo"],
|
["AoEWololo"],
|
||||||
["P3Summon"],
|
["P3Summon","P2HeeHo"],
|
||||||
["SplatWoomy","SplatPing"],
|
["SplatWoomy","SplatPing"],
|
||||||
["OneShotSun","OneShotRam"],
|
["OneShotSun","OneShotRam"],
|
||||||
["TWEWYCrunch","TWEWYNoLimits","TWEWYVerywell"],
|
["TWEWYCrunch","TWEWYNoLimits","TWEWYVerywell"],
|
||||||
@@ -54,10 +53,17 @@
|
|||||||
["LoZHello","LoZYahaha"],
|
["LoZHello","LoZYahaha"],
|
||||||
["BSBunger","BSKweeble"],
|
["BSBunger","BSKweeble"],
|
||||||
["SourceNotification","SourceMedkit","SourceMeepMerp"],
|
["SourceNotification","SourceMedkit","SourceMeepMerp"],
|
||||||
["KHXBlade"],
|
["KHXBlade","KHRikuSorry"],
|
||||||
["GTMissileArf","GTGhostMode"],
|
["GTMissileArf","GTGhostMode"],
|
||||||
["FECrit"],
|
["FECrit"],
|
||||||
["RotTHereCatch"],
|
["RotTHereCatch"],
|
||||||
|
["TheChasePlayerBuzz","TheChaseChaserBuzz"],
|
||||||
|
["KlonoaWahoo"],
|
||||||
|
["PPTArleBAYOEN","PPTExHarddrop","PPTLemresDonuts","PPTOPipi","PPTRingoCosine","PPTSigKapow"],
|
||||||
|
["Touhou6Dead","Touhou61Up","Touhou11Orin"],
|
||||||
|
["AC7Missile"],
|
||||||
|
["TGM_S"],
|
||||||
|
["MvC2CyclopsOpticBlast","MvC3MagnetoMagneticBlast","MvC3DrDoomFootDive","MvC3ModokAnalyzeCube","MvC3MorriganSoulFist","MvC3DeadPoolYoMama","MvC3SentinelNeutralize","MvC3ChrisREatLead","MvC3VergilMotivated","MvC3PWMoreEvidence"],
|
||||||
["Mystery"],
|
["Mystery"],
|
||||||
];
|
];
|
||||||
let specialBuzzers = {
|
let specialBuzzers = {
|
||||||
@@ -77,12 +83,13 @@
|
|||||||
BubsyUhOh: ["BubsyUhOh","BubsyAwNuts","BubsyByeBye"],
|
BubsyUhOh: ["BubsyUhOh","BubsyAwNuts","BubsyByeBye"],
|
||||||
BubsyWhatCouldPawsiblyGoWrong: ["BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyDoYouBelieveInMiracles"],
|
BubsyWhatCouldPawsiblyGoWrong: ["BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyWhatCouldPawsiblyGoWrong","BubsyDoYouBelieveInMiracles"],
|
||||||
BubsyCheckOutThatTime: ["BubsyCheckOutThatTime","BubsyGreatScore"],
|
BubsyCheckOutThatTime: ["BubsyCheckOutThatTime","BubsyGreatScore"],
|
||||||
BubsyMyContract: ["BubsyMyContract","BubsyIsThereAVeterinarian","BubsyIsTheWritersStrikeOver","BubsyIAmATrainedPurrfessional","BubsyAPyramidScheme","BubsyWhoWroteThisStuff","BubsyAreYouStillPlayin"],
|
TGM_S: ["TGM_O","TGM_J","TGM_L","TGM_Z","TGM_S","TGM_T","TGM_I"],
|
||||||
|
// BubsyMyContract: ["BubsyMyContract","BubsyIsThereAVeterinarian","BubsyIsTheWritersStrikeOver","BubsyIAmATrainedPurrfessional","BubsyAPyramidScheme","BubsyWhoWroteThisStuff","BubsyAreYouStillPlayin"],
|
||||||
RotTHereCatch: ["RotTHereCatch","RotTEatLead"],
|
RotTHereCatch: ["RotTHereCatch","RotTEatLead"],
|
||||||
}
|
}
|
||||||
let animatedBuzzers = ["SF3KenParry","PlokCLEAR","FECrit"];
|
let animatedBuzzers = ["SF3KenParry","PlokCLEAR","FECrit"];
|
||||||
let buzzerOptionsCurrentRow = 0;
|
let buzzerOptionsCurrentRow = 0;
|
||||||
let buzzerOptionsTotalRows = 4;
|
let buzzerOptionsTotalRows = 5;
|
||||||
function displayBuzzerOptions() {
|
function displayBuzzerOptions() {
|
||||||
$("#buzzerOptions").html("");
|
$("#buzzerOptions").html("");
|
||||||
$("#buzzerOptions").append("<div class=buzzerGroup id='buzzerOptionsPrev'>\<</div>");
|
$("#buzzerOptions").append("<div class=buzzerGroup id='buzzerOptionsPrev'>\<</div>");
|
||||||
@@ -150,6 +157,10 @@
|
|||||||
userInfoToClient(userInfo);
|
userInfoToClient(userInfo);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
socket.on("reconnectUsers", () => {
|
||||||
|
location.reload();
|
||||||
|
});
|
||||||
|
|
||||||
socket.on("gameStateToClient", (currentTeam, currentScore) => {
|
socket.on("gameStateToClient", (currentTeam, currentScore) => {
|
||||||
gameStateToClient(currentTeam, currentScore);
|
gameStateToClient(currentTeam, currentScore);
|
||||||
});
|
});
|
||||||
|
|||||||