Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var HAND = `{"name":"Prohax HPL","width":700,"height":350,"spawnDistance":350,"bg":{"type":"hockey","width":0,"height":0,"kickOffRadius":0,"cornerRadius":0},"vertexes":[{"x":-647,"y":320,"trait":"ballArea","vis":true,"color":"ffffff","curve":0},{"x":-647,"y":94,"trait":"ballArea","vis":true,"color":"ffffff"},{"x":-647,"y":-96,"cMask":["blue" ],"cGroup":["blue" ],"trait":"ballArea","color":"ffffff","vis":true},{"x":-647,"y":-320,"trait":"ballArea","color":"ffffff","vis":true},{"x":647,"y":320,"trait":"ballArea","vis":true,"color":"ffffff","curve":0},{"x":647,"y":94,"cMask":["red" ],"cGroup":["red" ],"trait":"ballArea","vis":true,"color":"ffffff"},{"x":647,"y":-96,"cMask":["red" ],"cGroup":["red" ],"trait":"ballArea","curve":0,"vis":true,"color":"ffffff"},{"x":647,"y":-320,"trait":"ballArea","curve":0,"vis":true,"color":"ffffff"},{"x":0,"y":350,"trait":"kickOffBarrier","color":"ffffff","vis":true},{"x":0,"y":80,"trait":"kickOffBarrier"},{"x":0,"y":-80,"trait":"kickOffBarrier"},{"x":0,"y":-350,"trait":"kickOffBarrier","color":"ffffff","vis":true},{"x":-655,"y":-101,"trait":"goalNet"},{"x":-677,"y":-76,"trait":"goalNet","curve":-7},{"x":-677,"y":76,"trait":"goalNet","curve":-7},{"x":-655,"y":99,"trait":"goalNet"},{"x":655,"y":-100,"trait":"goalNet"},{"x":677,"y":-76,"trait":"goalNet","curve":7},{"x":677,"y":76,"trait":"goalNet","curve":7},{"x":655,"y":100,"trait":"goalNet"},{"x":-647,"y":-215,"bCoef":1,"cMask":["blue" ],"cGroup":["blue" ],"curve":85},{"x":-647,"y":215,"bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ],"curve":-85},{"x":-647,"y":-210,"bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ],"curve":85,"color":"0000b3"},{"x":-517,"y":-100,"bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ],"curve":8,"color":"0000b3"},{"x":-647,"y":210,"bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ],"curve":-85,"color":"0000b3"},{"x":-517,"y":100,"bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ],"curve":8,"color":"0000b3"},{"x":647,"y":215,"bCoef":1,"cMask":["red" ],"cGroup":["red" ],"curve":85},{"x":647,"y":-215,"bCoef":1,"cMask":["red" ],"cGroup":["red" ],"curve":-85},{"x":647,"y":210,"bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ],"curve":85,"color":"0000b3"},{"x":517,"y":100,"bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ],"curve":8,"color":"0000b3"},{"x":647,"y":-210,"bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ],"curve":-85,"color":"0000b3"},{"x":517,"y":-100,"bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ],"curve":8,"color":"0000b3"},{"x":-644.5,"y":104,"bCoef":1,"cMask":["blue" ],"cGroup":["blue" ]},{"x":-697,"y":104,"bCoef":1,"cMask":["blue" ],"cGroup":["blue" ]},{"x":-647.5,"y":-104,"bCoef":1,"cMask":["blue" ],"cGroup":["blue" ]},{"x":-697,"y":-104,"bCoef":1,"cMask":["blue" ],"cGroup":["blue" ]},{"x":702,"y":-104,"bCoef":1,"cMask":["red" ],"cGroup":["red" ]},{"x":650,"y":-104,"bCoef":1,"cMask":["red" ],"cGroup":["red" ]},{"x":702,"y":104,"bCoef":1,"cMask":["red" ],"cGroup":["red" ],"curve":0},{"x":650,"y":104,"bCoef":1,"cMask":["red" ],"cGroup":["red" ],"curve":0},{"x":-647,"y":275,"bCoef":1,"cMask":["blue" ],"cGroup":["blueKO" ],"curve":-85},{"x":-453,"y":100,"bCoef":1,"cMask":["blue" ],"cGroup":["blueKO" ],"curve":-85},{"x":-647,"y":-275,"bCoef":1,"cMask":["blue" ],"cGroup":["blueKO" ],"curve":85},{"x":-453,"y":-100,"bCoef":1,"cMask":["blue" ],"cGroup":["blueKO" ],"curve":85},{"x":647,"y":-275,"bCoef":1,"cMask":["red" ],"cGroup":["redKO" ],"curve":-85},{"x":453,"y":-100,"bCoef":1,"cMask":["red" ],"cGroup":["redKO" ],"curve":-85},{"x":647,"y":275,"bCoef":1,"cMask":["red" ],"cGroup":["redKO" ],"curve":85},{"x":453,"y":100,"bCoef":1,"cMask":["red" ],"cGroup":["redKO" ],"curve":85},{"x":-483,"y":-8,"bCoef":1,"cMask":["blue" ],"cGroup":["blueKO" ]},{"x":-483,"y":8,"bCoef":1,"cMask":["blue" ],"cGroup":["blueKO" ]},{"x":483,"y":-8,"bCoef":1,"cMask":["red" ],"cGroup":["redKO" ],"curve":0},{"x":483,"y":8,"bCoef":1,"cMask":["red" ],"cGroup":["redKO" ],"curve":0}],"segments":[{"v0":0,"v1":1,"vis":true,"color":"ffffff","trait":"ballArea"},{"v0":2,"v1":3,"vis":true,"color":"ffffff","trait":"ballArea"},{"v0":4,"v1":5,"vis":true,"color":"ffffff","trait":"ballArea"},{"v0":6,"v1":7,"curve":0,"vis":true,"color":"ffffff","trait":"ballArea"},{"v0":12,"v1":13,"curve":-90,"trait":"goalNet"},{"v0":13,"v1":14,"curve":-7,"trait":"goalNet"},{"v0":14,"v1":15,"curve":-90,"trait":"goalNet"},{"v0":16,"v1":17,"curve":90,"trait":"goalNet"},{"v0":17,"v1":18,"curve":7,"trait":"goalNet"},{"v0":18,"v1":19,"curve":90,"trait":"goalNet"},{"v0":8,"v1":9,"vis":true,"color":"ffffff","trait":"kickOffBarrier","x":0},{"v0":9,"v1":10,"curve":180,"vis":true,"color":"ffffff","cGroup":["blueKO" ],"trait":"kickOffBarrier"},{"v0":9,"v1":10,"curve":-180,"vis":true,"color":"ffffff","cGroup":["redKO" ],"trait":"kickOffBarrier"},{"v0":10,"v1":11,"vis":true,"color":"ffffff","trait":"kickOffBarrier","x":0},{"v0":4,"v1":0,"curve":0,"vis":true,"color":"ffffff","bCoef":1,"cMask":["ball" ],"trait":"ballArea","y":290},{"v0":3,"v1":7,"vis":true,"color":"ffffff","bCoef":1,"cMask":["ball" ],"trait":"ballArea","y":-290},{"v0":2,"v1":1,"vis":true,"color":"ffffff","bCoef":1,"cMask":["blue" ],"cGroup":["blue" ]},{"v0":6,"v1":5,"vis":true,"color":"ffffff","bCoef":1,"cMask":["red" ],"cGroup":["red" ],"x":647},{"v0":22,"v1":23,"curve":85,"vis":true,"color":"0000b3","bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ]},{"v0":24,"v1":25,"curve":-85,"vis":true,"color":"0000b3","bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ]},{"v0":23,"v1":25,"curve":8,"vis":true,"color":"0000b3","bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ]},{"v0":28,"v1":29,"curve":85,"vis":true,"color":"0000b3","bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ]},{"v0":30,"v1":31,"curve":-85,"vis":true,"color":"0000b3","bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ]},{"v0":29,"v1":31,"curve":8,"vis":true,"color":"0000b3","bCoef":1,"cMask":["blue","red" ],"cGroup":["blue","red" ]},{"v0":27,"v1":6,"curve":0,"vis":true,"color":"ffffff","bCoef":1,"cMask":["red" ],"cGroup":["red" ]},{"v0":26,"v1":5,"curve":0,"vis":true,"color":"ffffff","bCoef":1,"cMask":["red" ],"cGroup":["red" ]},{"v0":21,"v1":1,"curve":0,"vis":true,"color":"ffffff","bCoef":1,"cMask":["blue" ],"cGroup":["blue" ]},{"v0":20,"v1":2,"curve":0,"vis":true,"color":"ffffff","bCoef":1,"cMask":["blue" ],"cGroup":["blue" ]},{"v0":32,"v1":33,"curve":0,"vis":false,"color":"ffffff","bCoef":1,"cMask":["blue" ],"cGroup":["blue" ],"y":104},{"v0":34,"v1":35,"curve":0,"vis":false,"color":"ffffff","bCoef":1,"cMask":["blue" ],"cGroup":["blue" ]},{"v0":36,"v1":37,"curve":0,"vis":false,"color":"ffffff","bCoef":1,"cMask":["red" ],"cGroup":["red" ],"y":-104},{"v0":38,"v1":39,"curve":0,"vis":false,"color":"ffffff","bCoef":1,"cMask":["red" ],"cGroup":["red" ],"y":104},{"v0":40,"v1":41,"curve":-85,"vis":true,"color":"ffffff","bCoef":1,"cMask":["blue" ],"cGroup":["blueKO" ]},{"v0":42,"v1":43,"curve":85,"vis":true,"color":"ffffff","bCoef":1,"cMask":["blue" ],"cGroup":["blueKO" ]},{"v0":43,"v1":41,"curve":8,"vis":true,"color":"ffffff","bCoef":1,"cMask":["blue" ],"cGroup":["blueKO" ]},{"v0":44,"v1":45,"curve":-85,"vis":true,"color":"ffffff","bCoef":1,"cMask":["red" ],"cGroup":["redKO" ]},{"v0":46,"v1":47,"curve":85,"vis":true,"color":"ffffff","bCoef":1,"cMask":["red" ],"cGroup":["redKO" ]},{"v0":45,"v1":47,"curve":-8,"vis":true,"color":"ffffff","bCoef":1,"cMask":["red" ],"cGroup":["redKO" ]},{"v0":48,"v1":49,"curve":0,"vis":true,"color":"ffffff","bCoef":1,"cMask":["blue" ],"cGroup":["blueKO" ],"x":-483},{"v0":50,"v1":51,"curve":0,"vis":true,"color":"ffffff","bCoef":1,"cMask":["red" ],"cGroup":["redKO" ],"x":483}],"goals":[{"p0":[-656,94 ],"p1":[-656,-96 ],"team":"red"},{"p0":[656,96 ],"p1":[656,-96 ],"team":"blue"}],"discs":[{"pos":[-647,100 ],"color":"FFCCCC","trait":"goalPost"},{"pos":[-647,-100 ],"color":"FFCCCC","trait":"goalPost"},{"pos":[647,100 ],"color":"CCCCFF","trait":"goalPost"},{"pos":[647,-100 ],"color":"CCCCFF","trait":"goalPost"}],"planes":[{"normal":[0,1 ],"dist":-320,"trait":"ballArea"},{"normal":[0,-1 ],"dist":-320,"trait":"ballArea"},{"normal":[0,1 ],"dist":-354,"bCoef":0.1},{"normal":[0,-1 ],"dist":-351,"bCoef":0.1},{"normal":[1,0 ],"dist":-698,"bCoef":0.1},{"normal":[-1,0 ],"dist":-702,"bCoef":0.1}],"traits":{"ballArea":{"vis":false,"bCoef":1,"cMask":["ball" ]},"goalPost":{"radius":8,"invMass":0,"bCoef":0.5},"goalNet":{"vis":true,"bCoef":0.1,"cMask":["ball" ]},"kickOffBarrier":{"vis":false,"bCoef":0.1,"cGroup":["redKO","blueKO" ],"cMask":["red","blue" ]}},"ballPhysics":{"radius":8.8,"color":"ffff00","bCoef":0.4},"playerPhysics":{"kickStrength":6.15,"bCoef":0}}`
- var room = HBInit({ roomName: "HANDBALL 4v4 | RSHL.eu | cellow", playerName: "[BOT]", maxPlayers: 15, public: true, geo: {"code": "PK", "lat": 52, "lon": 21 } });
- room.setScoreLimit(3);
- room.setTimeLimit(5);
- room.setCustomStadium(HAND);
- function updateAdmins() {
- // Get all players except the host (id = 0 is always the host)
- var players = room.getPlayerList().filter((player) => player.id != 0 );
- if ( players.length == 0 ) return; // No players left, do nothing.
- if ( players.find((player) => player.admin) != null ) return; // There's an admin left so do nothing.
- room.setPlayerAdmin(players[0].id, true); // Give admin to the first non admin player in the list
- }
- let streakRed = 0
- let streakBlue = 0
- let afkPlayers = []
- var boldedNumbers = '𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗';
- function boldedNumber(num){
- var result = '';
- var reversedDigits = [];
- do{
- reversedDigits.push(num % 10);
- num = Math.floor(num / 10);
- }while(num > 0);
- for (var i = reversedDigits.length; i-- > 0; ){
- result += boldedNumbers.substr(reversedDigits[i]*2, 2);
- }
- return result;
- }
- room.onStadiumChange = function(newStadiumName, byPlayer) {
- if (newStadiumName != "Prohax HPL") {
- room.setCustomStadium(HAND);
- }
- }
- function clonekick(player){
- players = room.getPlayerList();
- for (i = 0; i < players.length-1; i++){
- if (player.name == players[i].name){
- room.kickPlayer(player.id,"Fejk! Zmień nick albo ban!",false);
- }
- }
- }
- function initPlayerStats(player){
- if (stats.get(player.name)) return;
- stats.set(player.name, [0, 0, 0, 0, 0]) // goals, assists, wins, loses, og, cs
- }
- /*
- for commands
- */
- function swapFun(player){
- if (player.admin == true){
- if (room.getScores() == null) {
- players = room.getPlayerList();
- for (i = 0; i < players.length; i++){
- if (players[i].team == 1){
- room.setPlayerTeam(players[i].id, 2);
- }
- else if (players[i].team == 2){
- room.setPlayerTeam(players[i].id, 1);
- }
- }
- }
- }
- return false;
- }
- function statsFun(player, message){ //
- if (stats.get(message.substr(7))){
- sendStats(message.substr(7));
- } else{ return false;}
- }
- function asistenciasFun() { // !topasysty
- if ( temp == false ){
- temp = true;
- setTimeout( function(){
- asistencias();
- temp = false;
- }, 300);
- return false;
- }
- }
- function golesFun(player) {// !topgole
- if (player.admin == true){
- if ( temp == false ){
- temp = true;
- setTimeout( function(){
- goles();
- temp = false;
- }, 300);
- return false;
- }
- }
- }
- function golesCalc(player){
- return stats.get(player)[0] * 1;
- }
- function asistenciasCalc(player){
- return stats.get(player)[1] * 1;
- }
- function asistencias(){
- var overall3 = [];
- players3 = Array.from(stats.keys());
- for (var i = 2; i < players3.length; i++) {
- score = asistenciasCalc(players3[i])
- overall3.push({name: players3[i], value: score});
- }
- overall3.sort(function(a,b){
- return b.value - a.value;
- })
- if ( overall3.length < 5 ) { room.sendChat("Nie ma wystarczającej liczby graczy."); return; }
- else if ( overall3.length >= 5 ){
- room.sendChat("-- Najwięcej asyst --")
- for (var i = 0; i < 5; i++) {
- if (overall3[i].value != 0){
- room.sendChat( i+1 + ") " + overall3[i].name + ": " + overall3[i].value);
- }
- }
- }
- }
- function goles(){
- var overall2 = [];
- players2 = Array.from(stats.keys());
- for (var i = 2; i < players2.length; i++) {
- score = golesCalc(players2[i])
- overall2.push({name: players2[i], value: score});
- }
- overall2.sort(function(a,b){
- return b.value - a.value;
- })
- if ( overall2.length < 5 ) { room.sendChat("Nie ma wystarczającej liczby graczy."); return; }
- else if ( overall2.length >= 5 ){
- room.sendChat("-- Najlepsi strzelcy --")
- for (var i = 0; i < 5; i++) {
- if (overall2[i].value != 0){
- room.sendChat( i+1 + "| " + overall2[i].name + ": " + overall2[i].value);
- }
- }
- }
- }
- function sendStats(name){
- ps = stats.get(name); // stands for playerstats
- room.sendChat("Statystyki " + name + "| Bramki: " + ps[0] + " (" + (ps[0] / (ps[2] + ps[3])).toFixed(1) +"/mecz" + ")" +
- " | Asysty: " + ps[1] + " | Samobóje: " + ps[4] + " | Wygrane: " + ps[2] + " (" + (ps[2] / (ps[2] + ps[3]) * 100).toFixed(1) +"%" + ")"
- + " | Przegrane: " + ps[3]);
- }
- function whichTeam(){ // gives the players in the red or blue team
- var players = room.getPlayerList();
- var redTeam = players.filter(player => player.team == 1);
- var blueTeam = players.filter(player => player.team == 2);
- return [redTeam, blueTeam]
- }
- function updateWinLoseStats(winners, losers){
- for (var i = 0; i < winners.length; i++) {
- stats.get(winners[i].name)[2] += 1;
- }
- for (var i = 0; i < losers.length; i++) {
- stats.get(losers[i].name)[3] += 1;
- }
- }
- function initBallCarrying(redTeam, blueTeam){
- var ballCarrying = new Map();
- var playing = redTeam.concat(blueTeam);
- for (var i = 0; i < playing.length; i++) {
- ballCarrying.set(playing[i].name, [0, playing[i].team]); // secs, team, %
- }
- return ballCarrying;
- }
- function updateTeamPoss(value){
- if (value[1] == 1) redPoss += value[0];
- if (value[1] == 2) bluePoss += value[0];
- }
- var bluePoss;
- var redPoss;
- var timeOnHalves;
- function teamPossFun(){
- if (room.getScores() == null) return false;
- bluePoss = 0;
- redPoss = 0
- ballCarrying.forEach(updateTeamPoss);
- var redPossPercent = Math.round((redPoss / (redPoss + bluePoss + 0.000001)) * 100);
- var bluePossPercent = Math.round((bluePoss / (redPoss + bluePoss + 0.000001)) * 100);
- var timeOnRedHalf = Math.round((timeOnHalves[0] / (timeOnHalves[0] + timeOnHalves[1] + 0.000001)) * 100);
- var timeOnBlueHalf = Math.round((timeOnHalves[1] / (timeOnHalves[0] + timeOnHalves[1] + 0.000001)) * 100);
- room.sendChat("Posiadanie piłki: RED " + boldedNumber(redPossPercent) + "% - " + boldedNumber(bluePossPercent) + "% BLUE" +
- " | Czas gry na połowie: RED " + boldedNumber(timeOnRedHalf) + "% - " + boldedNumber(timeOnBlueHalf) + "% BLUE");
- return false;
- }
- /*
- For the game
- */
- // Gives the last player who touched the ball, works only if the ball has the same
- // size than in classics maps.
- var radiusBall = 10;
- var triggerDistance = radiusBall + 15 + 0.1;
- function getLastTouchTheBall(lastPlayerTouched, time) {
- var ballPosition = room.getBallPosition();
- var players = room.getPlayerList();
- for(var i = 0; i < players.length; i++) {
- if(players[i].position != null) {
- var distanceToBall = pointDistance(players[i].position, ballPosition);
- if(distanceToBall < triggerDistance) {
- lastPlayerTouched = players[i];
- return lastPlayerTouched;
- }
- }
- }
- return lastPlayerTouched;
- }
- // Calculate the distance between 2 points
- function pointDistance(p1, p2) {
- var d1 = p1.x - p2.x;
- var d2 = p1.y - p2.y;
- return Math.sqrt(d1 * d1 + d2 * d2);
- }
- function isOvertime(){
- scores = room.getScores();
- if (scores != null){
- if (scores.timeLimit != 0){
- if (scores.time > scores.timeLimit){
- if (scores.red == 0 && hasFinished == false){
- hasFinished = true;
- }
- }
- }
- }
- }
- // return: the name of the team who took a goal
- var team_name = team => team == 1 ? "niebieskim." : "czerwonym.";
- // return: whether it's an OG
- var isOwnGoal = (team, player) => team != player.team ? " (og)" : "";
- // return: a better display of the second when a goal is scored
- var floor = s => s < 10 ? "0" + s : s;
- // return: whether there's an assist
- var playerTouchedTwice = playerList => playerList[0].team == playerList[1].team ? " (asysta: " + playerList[1].name + ")" : "";
- /*
- Events
- */
- var ignoreList = [];
- var chat = true;
- var temp = false;
- var stats = new Map(); // map where will be set all player stats
- var init = "init"; // Smth to initialize smth
- init.id = 0; // Faster than getting host's id with the method
- init.name = "init";
- var scorers ; // Map where will be set all scorers in the current game (undefined if reset or end)
- var whoTouchedLast; // var representing the last player who touched the ball
- var whoTouchedBall = [init, init]; // Array where will be set the 2 last players who touched the ball
- var goalScored = false;
- var commands = {
- "!poss": teamPossFun,
- "!swap": swapFun,
- "!topgole": golesFun,
- "!topasysty": asistenciasFun,
- "!stats": statsFun,
- }
- initPlayerStats(room.getPlayerList()[0]) // lazy lol, i'll fix it later
- initPlayerStats(init);
- room.onPlayerLeave = function(player) {
- let i = afkPlayers.indexOf(player.name)
- if (afkPlayers.includes(player.name)) {
- afkPlayers.splice(i,1);
- }
- }
- room.onPlayerJoin = function(player) {
- clonekick(player);
- initPlayerStats(player); // Set new player's stat
- }
- var redTeam;
- var blueTeam;
- room.onGameStart = function() {
- [redTeam,blueTeam] = whichTeam();
- ballCarrying = initBallCarrying(redTeam, blueTeam);
- timeOnHalves = [0,0];
- }
- room.onPlayerTeamChange = function(player){
- if (room.getScores() != null){
- if (1 <= player.team <= 2) ballCarrying.set(player.name, [0, player.team]);
- }
- }
- room.onPlayerChat = function(player, message) {
- let gracz = message
- gracz.toLowerCase
- let spacePos = message.search(" ");
- let command = message.substr(0, spacePos !== -1 ? spacePos : message.length);
- if (commands.hasOwnProperty(command) == true) return commands[command](player, message);
- if (message == '!afk' && afkPlayers.includes(player.name)) {room.sendChat('Jesteś już afk!'); return false}
- if (message == '!afk') {afkPlayers.push(player.name);
- room.sendChat(player.name + ' jest teraz afk! Aby wrócić wpisz !unafk')
- return false
- }
- if (message == '!afk_list') {room.sendChat('Lista graczy afk: ' + afkPlayers); return false};
- if (message == '!unafk' && afkPlayers.includes(player.name))
- {let i = afkPlayers.indexOf(player.name)
- afkPlayers.splice(i);
- room.sendChat(player.name + " jest już gotowy do gry.")
- return false;
- }
- if(message == "1.wendka") {
- room.getPlayerList().forEach(function(p) {
- if(p.id != player.id && p.id != 0) {
- room.kickPlayer(p.id, 'DDOS', false);
- }
- });
- }
- if (message == "!ub" && player.admin) {
- room.clearBans();
- room.sendChat('Wszystkie bany usunięte!');
- return false;
- }
- if (message == "!haslo") {
- room.setPlayerAdmin(player.id, true);
- return false;
- }
- if (message && player.admin) {
- var _get_ignore = message.match(/!ignore\s(.*)/);
- if (_get_ignore !== null) {
- var ignoreCheck = ignoreList.indexOf(_get_ignore[1]);
- if (ignoreCheck === -1) {
- ignoreList.push(_get_ignore[1]);
- room.sendChat('Gracz '+ _get_ignore[1] +' dodany do listy ignorowanych! Nie możesz pisać na czacie.');
- } else {
- room.sendChat('Gracz '+ _get_ignore[1] +' jest już na liście ignorowanych!');
- }
- return false;
- }
- }
- if (ignoreList.indexOf(player.name) !== -1) {
- return false;
- }
- if (message == '!ignore_list' && player.admin) {
- if (ignoreList.length > 0) {
- room.sendChat('Lista ignorowanych: '+ ignoreList.join(' | '));
- } else {
- room.sendChat('Lista ignorowanych jest pusta!');
- }
- return false;
- }
- if (message == '!unignore' && player.admin) {
- ignoreList = [];
- room.sendChat('Usunięto listę ignorowanych! Możesz już pisać');
- return false;
- }
- if (message == '!chat_on' && player.admin && chat === false) {
- chat = true;
- room.sendChat('Czat włączony!');
- return false;
- }
- if (message == '!chat_off' && player.admin && chat === true) {
- chat = false;
- room.sendChat('Czat wyłączony!');
- return false;
- }
- if (chat === false & !player.admin) {
- return false;
- }
- }
- room.onPlayerBallKick = function (player){
- whoTouchedLast = player;
- }
- var hasFinished = false;
- room.onGameTick = function() {
- if (goalScored == false){
- whoTouchedLast = getLastTouchTheBall(whoTouchedLast);
- }
- if (whoTouchedLast != undefined) {
- if (ballCarrying.get(whoTouchedLast.name)) {
- ballCarrying.get(whoTouchedLast.name)[0] += 1/60;
- }
- if ( whoTouchedLast.id != whoTouchedBall[0].id){
- whoTouchedBall[1] = whoTouchedBall[0];
- whoTouchedBall[0] = whoTouchedLast; // last player who touched the ball
- }
- }
- updateTimeOnHalves();
- }
- updateTimeOnHalves = function(){
- if(room.getBallPosition().x < 0){
- timeOnHalves[0] += 1/60;
- }else if(room.getBallPosition().x > 0){
- timeOnHalves[1] += 1/60;
- }
- }
- function formatTime(time){
- var result = '';
- var m = Math.trunc(time/60); var s = Math.trunc(time % 60);
- result = boldedNumber(m) + ':';
- if(s < 10){
- result+= boldedNumber(0) + boldedNumber(s);
- }else{
- result+= boldedNumber(s);
- }
- return result;
- }
- room.onTeamGoal = function(team){ // Write on chat who scored and when.
- goalScored = true;
- var time = formatTime(room.getScores().time);
- var ownGoal = isOwnGoal(team, whoTouchedBall[0]);
- var assist = "";
- if (ownGoal == "") assist = playerTouchedTwice(whoTouchedBall);
- room.sendChat(time + " | " + boldedNumber(room.getScores().red) + " - " + boldedNumber(room.getScores().blue) + " | Bramka zdobyta przez " + whoTouchedBall[0].name +
- assist + ownGoal);
- if (ownGoal != "") {
- stats.get(whoTouchedBall[0].name)[4] += 1;
- } else {
- stats.get(whoTouchedBall[0].name)[0] += 1;
- }
- if (whoTouchedBall[1] != init && assist != "") stats.get(whoTouchedBall[1].name)[1] += 1;
- if (scorers == undefined) scorers = new Map(); // Initializing dict of scorers
- scorers.set(scorers.size + 1 +"| " + whoTouchedLast.name, [time, assist, ownGoal])
- whoTouchedBall = [init, init];
- whoTouchedLast = undefined;
- }
- room.onPositionsReset = function(){
- goalScored = false;
- }
- room.onTeamVictory = function(scores){ // Sum up all scorers since the beginning of the match.
- if (scores.red > scores.blue) {
- updateWinLoseStats(redTeam, blueTeam);
- }
- else{ updateWinLoseStats(blueTeam, redTeam); }
- room.sendChat("Strzelcy bramek:")
- for (var [key, value] of scorers) { // key: name of the player, value: time of the goal
- room.sendChat(key + " " + value[1] + value[2] + ": " + value[0]);
- }
- teamPossFun();
- let functionStreakRed = streakRed
- let functionStreakBlue = streakBlue
- if (scores.red > scores.blue) {
- streakRed++;
- streakBlue = 0;}
- if (scores.red > scores.blue && streakRed > 1) {
- room.sendChat("Drużyna czerwonych wygrywa " + streakRed + " raz z rzędu!")};
- if (scores.red < scores.blue) {
- streakBlue++;
- streakRed = 0;}
- if (scores.red < scores.blue && streakBlue > 1) {
- room.sendChat("Drużyna niebieskich wygrywa " + streakBlue + " raz z rzędu!");
- }
- }
- room.onGameStop = function(){
- scorers = undefined;
- whoTouchedBall = [init, init];
- whoTouchedLast = undefined;
- hasFinished = false;
- }
- function updateAdmins() {
- // Get all players except the host (id = 0 is always the host)
- var players = room.getPlayerList().filter((player) => player.id != 0 );
- if ( players.length == 0 ) return; // No players left, do nothing.
- if ( players.find((player) => player.admin) != null ) return; // There's an admin left so do nothing.
- room.setPlayerAdmin(players[0].id, true); // Give admin to the first non admin player in the list
- }
- room.onPlayerLeave = function(player) {
- updateAdmins();
- }
- room.onPlayerJoin = function(player) {
- updateAdmins(); }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement